Печалби:
- Възможност за избор на метрика, подходяща за типа проблем и бизнес контекста (PR-AUC/извикване при небалансирани данни, MAE/RMSE при регресия) и разпознаване на свръх/недостатъчно обучение
- Възможност за интерпретиране на всеки показател спрямо базова линия и измерване на отклонението и отделяне на шума от напредъка с кръстосано валидиране
- Възможност за отчитане на неоптимистични резултати чрез настройка на хиперпараметри с набора за валидиране и използване на тестовия набор само в края
Обучението по модел (обучение: процесът на учене на модели от данни) е най-видимата, но най-подвеждащата стъпка на ML инженерството. Появява се, защото дава задоволително число като "точност 95%". Подвеждащо, защото това число често е правилният отговор на грешен въпрос. В тази единица образованието и оценката се обсъждат с инженерната дисциплина; Използваме изкуствения интелект като партньор в експерименталния дизайн и базираме решението на измерване.
Логика на тренировъчния цикъл
Един модел научава модела в данните чрез минимизиране на функция за загуба: функция, която числено измерва грешката на модела. Алгоритъмът за оптимизация (напр. градиентно спускане) намалява загубата чрез коригиране на параметрите стъпка по стъпка. Целта не е да се запомнят данните от обучението, а да се обобщят до безпрецедентни данни.
Две основни опасности:
- Пренастройване: Моделът запаметява данните за обучение и се проваля при нови данни. Успехът на обучение е висок, успехът на проверката е нисък.
- Недостатъчно прилягане: Моделът не може да улови шаблона; Както обучението, така и успехът при валидирането са ниски.
Намирането на баланса е изкуството на образованието. Наборът за валидиране е там, за да наблюдава този баланс: ако успехът на валидирането започне да намалява, докато успехът на обучението се увеличава, е започнало свръхобучаване.
Съвет: Начертайте заедно загубата на обучение и валидиране на всяка стъпка. Точката, в която двете криви започват да се разминават, е мястото, където започва свръхученето и е подходящият момент за „ранно спиране“.
Избор на показател: най-критичното решение
Грешният показател кара добрия модел да изглежда зле, а лошия модел да изглежда добре. Проблемът определя показателя:
- Небалансирана класификация (един клас е много рядък, напр. измама): Точността е подвеждаща. Модел, който казва „наречете всичко нормално“, ще получи 99% точност, но няма да улови нито една измама. Вместо това се използват прецизност (колко от това, което съм уловил, всъщност е положително), припомняне (колко от това, което съм уловил, е наистина положително) и техният баланс F1 или PR-AUC.
- Балансирана класификация: Точността и ROC-AUC може да са подходящи.
- Регресия (числова оценка): MAE (средна абсолютна грешка), RMSE (наказва големи грешки), MAPE (процентна грешка).
- Класиране/препоръка: NDCG, MRR, Recall@K.
Дали прецизността или припомнянето са важни зависи от бизнес контекста. Припомнянето (без пропускане на пациенти) е приоритет при скрининга за рак; Прецизността във филтъра за нежелана поща (да не се изпращат важни имейли до спам) е важна. Това е бизнес решение, а не техническо и се взема съвместно от инженера и собственика.
Слаба подкана / Силна подкана
Слаба подкана: „Оценете производителността на моя модел, точност 0,97.“
Мощна подкана: „Имам модел за откриване на измами; коефициентът на положителен клас е 1,5%. Точността се отчита като 0,97. Обяснете защо този показател може да е подвеждащ, кажете ми кои показатели (прецизност, припомняне, PR-AUC) трябва да предпочета и защо. Също така изчислете колко точен би бил базовият модел „обадете се на всичко отрицателно“ върху тези данни, за да мога да видя реалната добавена стойност.“
Разлика: мощна подсказка дава класово съотношение и бизнес контекст; той също изисква сравнение на базовия модел - това е най-важната котва за това дали даден показател има смисъл.
Базово ниво: показателят без сравнение е безсмислен
Един показател не е добър или лош сам по себе си; Добър или лош е според базов модел. Базовият модел е най-простото решение, което идва на ум: „винаги казвай на мнозинството“, „повторете стойността от миналата седмица“, „познайте средната стойност“. Ако вашият модел не може ясно да премине това просто решение, цялата сложност е за нищо.
Внимание: Изречението „Моят модел е 85% точен“ само по себе си не казва нищо. Ако базовият модел вече получава 84%, вашият модел е почти безполезен; Ако базовият модел получи 50%, вашият модел е перфектен. Винаги говорете от гледна точка на основния модел.
Кръстосано валидиране и доверие
Единично разделяне на обучение/тест може да се дължи на случайност. Кръстосано валидиране: разделянето на данните на k части и последователното тестване на всяка част показва колко стабилна е производителността. При 5-кратно кръстосано валидиране получавате пет различни резултата; Тяхното средно и стандартно отклонение са важни. Ако средната стойност е 80%, но отклонението е ±12%, вашият модел е нестабилен — той може да се държи съвсем различно в следващата партида от данни.
Това също е критично за „сравнението на два модела“. Ако модел A получи 81% и модел B получи 82%, B наистина ли е по-добър? Ако отклонението е ±3%, тази разлика може да е шум. Помислете дали разликата е значителна, преди да вземете решение.
Хиперпараметрична настройка: с валидиране, без тестване
Хиперпараметрите (настройки, определени ръчно преди обучението — скорост на учене, дълбочина на дървото и т.н.) се задават с набора за валидиране. Тестовият комплект се използва само накрая, веднъж. Ако изберете хиперпараметри, като разгледате набора от тестове, наборът от тестове ще бъде замърсен и представянето, което отчитате, ще бъде оптимистично, което не е така в действителност.
Изкуственият интелект е добър помощник при проектирането на пространството за търсене на хиперпараметър и писането на кода за търсене (търсене в мрежа, произволно търсене, байесова оптимизация). Но все пак вие решавате "кой показател ще оптимизираме?"
три мини калъфа
Случай 1 - Капан за точност. Медицински екип се гордее с модел, който открива рядко заболяване: 98% точност. Когато беше направено сравнението на основния модел, истината излезе наяве: тъй като процентът на заболяването беше 2%, моделът, който казваше „наречете всички здрави“, също получи 98%. Припомнянето на модела е само 11% - липсват повечето пациенти. След като показателят беше преобразуван в PR-AUC, действителната производителност беше измерена и моделът беше преработен.
Случай 2 - Погрешно приемане на шум за напредък. Екип прекара месеци в подобряване на модела от 86,2% на 86,9%. Кръстосаното валидиране показа, че отклонението е ±1,4% — така че „подобрението“ от 0,7 точки е статистически шум. Екипът беше пропилял три седмици в нереални печалби. Поука: не обявявайте победа, без да проверите дали подобрението е по-голямо от отклонението.
Случай 3 - Замърсяване на комплекта за тестване. Инженер многократно разглежда тестовия комплект, за да избере най-добрите хиперпараметри. Отчетените 91% спаднаха до 83% в производството. Защо: той несъзнателно беше избрал съответно модела, като гледаше тестовия набор отново и отново (прекомерно обучение върху тестовия комплект). Отчетената и действителната производителност се припокриват, когато се използва отделен набор за валидиране.
Копируеми шаблони
Помогнете ми да избера правилната метрика за този проблем с класификацията. Проблем: [какво се предвижда] Разпределение на класа: [положителен процент
Оценете сравнението на следните два модела. Кръстосано валидиране на модел A: [списък с резултати] Кръстосано валидиране на модел B: [списък с резултати] Изчислете средната стойност и стандартното отклонение. Статистически значима ли е разликата или е просто шум в рамките на отклонението? Кой бихте препоръчали да избера и защо?
Проверете този код за обучение за следното: 1) Хиперпараметрите избрани ли са с тестовия набор или набора за валидиране? 2) Ранното спиране наблюдава ли се с правилния набор? 3) Има ли някакви признаци на свръхобучаване (разлика в загубата на обучение/валидиране)? Код: [код]
Кое от MAE, RMSE и MAPE трябва да докладвам за този регресионен проблем? Мащаб на целевата променлива: [диапазон] Дали големите грешки са непропорционално лоши (RMSE) или всички са еднакви (MAE)? Има ли стойности, близки до нула (изкривяват ли MAPE)? Предложете с кратка обосновка.
Таблица за избор на показатели
Тип проблем
Подходящ показател
Да се избягва
защо
Небалансирана класификация
PR-AUC, F1, изземване
точност
Класата на мнозинството надува показателя
Балансирана класификация
Точност, ROC-AUC
—
Надежден в балансирани данни
Регресия (значително отклонение)
RMSE
MAPE (ако е нула)
Наказва големите грешки
Регресия (равно тегло)
MAE
—
Лесен за тълкуване
Класиране/препоръка
NDCG, Recall@K
точност
Редът е важен
Често срещани грешки
- Използване на точност при небалансирани данни. Най-честата метрична грешка.
- Не се правят сравнения на базовите модели. Това кара метриката да загуби значението си.
- Разглеждане на тестовия набор за хиперпараметри. Оптимистичен, нереалистичен резултат.
- Разчитайки на едно отделение. Без кръстосано валидиране няма да видите отклонението.
- Объркайте шума с напредъка. Малките "подобрения" от отклонението са най-вече късмет.
- Игнориране на бизнес контекста. Балансът за прецизност/припомняне е бизнес решение.
В обобщение
Истинското умение в обучението на модели не е да се произвежда голямо число, а да се знае какво означава това число. Проблемът и бизнес контекстът определят правилния показател; интерпретира всеки показател според базов модел; измервайте пристрастията с кръстосано валидиране и не бъркайте шума с напредъка; Използвайте тестовия комплект само накрая, веднъж. AI е вашият партньор в проектирането на експерименти, но решението „достатъчно добър“ зависи от вас и от вас.
Задача за приложение
За класификационен модел: (1) напишете класовото разпределение, (2) изградете подходящ базов модел и измерете резултата му, (3) оценете вашия модел с 5-кратно кръстосано валидиране и докладвайте средното и стандартното отклонение, (4) изчислете показателя, подходящ за проблема (напр. PR-AUC) вместо точност. Запишете дали вашият модел превъзхожда базовия модел с голяма разлика без пристрастия.
контролен списък
- [ ] Избрах показателя въз основа на типа проблем и бизнес контекста.
- [ ] Създадох базов модел и го сравних.
- [ ] Отчетох средната стойност и отклонението с кръстосано валидиране.
- [ ] Потвърдих, че подобрението е по-голямо от отклонението.
- [ ] Избрах хиперпараметрите с набора за валидиране.
- [ ] Използвах тестовия комплект само веднъж, в самия край.