Как да създадете пътна карта за проект за машинно обучение

Какво е първото нещо, което правите, когато стартирате нов проект за машинно обучение?

Зададох този въпрос на различни лидери на ML в стартиращи компании и получих няколко различни отговора. Без определен ред:

  1. Изпробвайте един от нашите съществуващи модели, за да видите дали работи за новата задача.
  2. Започнете да изследвате и разбирате данните.
  3. Разровете се в изследователската литература, за да видите какво е направено преди.

Забележете, че нито една от тези първи стъпки не е кодиране и обучение на нов модел. И никой не е да проектира тръбопровод за предварителна обработка на данни.

Всеки от трите подхода има своите предимства. Ако новият проект е доста подобен на нещо, което преди това е било моделирано (както данните, така и задачата), изпробването на подходи за моделиране, които вече са внедрени, може да бъде много бърз начин за установяване на базова линия за задачата. Правейки това, можете също да откриете нови предизвикателства, които трябва да бъдат приспособени към предварителната обработка на данни или моделирането.

Това може да ви отведе до #2: изследване и разбиране на данните. Или може да сте започнали тук. Признаването на уникалните нужди на нов набор от данни е от съществено значение. Може би предварителната обработка или анотацията трябва да се обработват по различен начин. Може би има артефакти в данните, които трябва да бъдат почистени, или етикетите не винаги са правилни. Разбирането на предизвикателствата, с които предварителната обработка и моделирането ще трябва да се бори, е от съществено значение.

Но стъпката, която някои екипи пропускат и е най-важната при подготовката на един проект за успех, е търсенето на литература. Някой друг моделирал ли е подобна задача върху подобни данни? Ако типът данни, с които работите, е общ, тогава може да сте в състояние да приложите много стриктна дефиниция на „подобни“. Но ако работите с нова модалност за изображения, например, или се справяте с нова задача, може да се наложи да смекчите определението за „подобно“, за да намерите подходящи изследвания.

И трите от тези първи стъпки са важни в процеса, който използвам за планиране на нов проект: пътна карта за машинно обучение.

Когато работя с клиенти по нов проект, Пътната карта е първата стъпка. Пътната карта изяснява обхвата на работата за останалата част от проекта. Намалява несигурността относно това какво ще трябва да се приложи. Освен това намалява вероятността да се въртите в кръг или да губите време за неуспешни подходи. Спестява време и пари, като идентифицира съществуващите набори от инструменти, преди да приложи нещо от нулата. И това увеличава вероятността за успех на проекта.

Какво включва Пътна карта за машинно обучение? Нека ви преведа през основните компоненти.

1) Дефинирайте проблема

Започнете с ясно дефиниране на проблема, който искате да разрешите с помощта на машинно обучение. И докато го правите, направете крачка назад и помислете дали ML дори е правилният инструмент за вашия проблем. Това поставя основата за целия проект и помага да се гарантира, че проектът ще доведе до желаните резултати.

Дефинирането на проблема включва идентифициране на бизнес проблема, данните, които трябва да съберете, и целевата променлива. Ясното дефиниране на проблема и добре дефинираните цели ще ви помогнат да избегнете ненужните експерименти и да се съсредоточите върху най-важните аспекти на проблема.

Установяването на критерии за успех е ключово. Това може да включва показателите за оценка, но е повече за предвидения случай на употреба.

Някои неща, които трябва да имате предвид:

  • Уместно ли е вашето решение? Ще се интегрира ли в текущите работни потоци по начин, който ще разреши текущите затруднения или болезнени точки?
  • Колко точно трябва да бъде, за да се подобри текущият процес?
  • Към какви сценарии ще трябва моделът да може да се обобщава? Това може да включва неща като различни устройства за изображения, популации пациенти или условия на осветление.
  • Колко обясним трябва да бъде моделът? Разбирането как работи даден модел прави много по-лесно идентифицирането на области за подобрение. Но също така може да бъде важно за изграждане на доверие или получаване на регулаторно одобрение.
  • Ще има ли изчислителни ограничения, след като моделът бъде разгърнат? Предварителното разбиране на всяка обработка или ограничения на паметта може да стесни възможните подходи.

Като отделяте време да дефинирате проблема предварително, вие подготвяте основата за успешен проект за машинно обучение, който осигурява желаните резултати.

2) Работа, свързана с изследвания

Проучването на свързана работа е критична стъпка във всеки ML проект. Помага ви да идентифицирате съществуващи решения на подобни проблеми и да разберете състоянието на техниката в областта.

Можете да започнете с преглед на литературата. Това включва четене на научни статии, доклади от конференции и друга подходяща литература в областта.

Важно е да следите източниците, които сте прочели, и ключовите констатации от всеки източник. Това може да ви помогне да организирате мислите си и да идентифицирате модели и пропуски в съществуващите решения.

  • С какъв тип данни са работили?
  • Колко пациенти, изображения и т.н.?
  • Как анотират и структурират своите данни за обучение?
  • Каква моделна архитектура са използвали?
  • Как са тренирали своя модел?
  • Какви предизвикателства срещнаха?
  • Имаше ли проблеми с качеството или количеството на изображенията или етикетите?
  • Как са събрали независими данни за валидиране?

Това са всички важни аспекти, които трябва да разберете, преди да започнете да създавате собствено решение.

Проучването на свързана работа може също да помогне за идентифициране на съществуващи кодови бази, набори от данни или предварително обучени модели, които могат да стартират вашия проект, спестявайки ви време и ресурси.

3) Разберете данните

Разбирането на данните е решаваща стъпка в стартирането на всеки ML проект. Това е така, защото качеството и уместността на данните оказват значително влияние върху ефективността на модела за машинно обучение.

За някои проекти данните може вече да са събрани. За други процесът на събиране на данни трябва първо да бъде дефиниран и изпълнен. Вашият преглед на литературата може да ви помогне да насочите какъв тип данни трябва да събирате и колко данни може да са ви необходими за вашия проект.

След като данните бъдат събрани, те вероятно ще трябва да бъдат анотирани - също задача, която може да бъде прояснена от вашия преглед на литературата.

  • Какъв тип анотации са необходими? Най-често срещаните са пиксели, корекции и изображения.
  • Какви инструменти са използвани за подпомагане на анотацията? Могат ли анотациите да идват от друга модалност? Може би от молекулярен анализ на биологична проба или съществуващ набор от анотации като Open Street Map за сателитни изображения.
  • Колко субективни са вашите пояснения? Проучването или провеждането на ваш собствен експеримент за оценка на съгласието между наблюдателите може да разкрие степента на това предизвикателство.

Вие също трябва да разберете качеството на вашите данни. Това включва проверка за липсващи стойности, извънредни стойности и несъответствия в данните. Те могат да включват артефакти за подготовка на тъкани, дефекти в изображенията като шум или замъгляване или сценарии извън домейна. Чрез идентифициране на проблеми с качеството на данните можете да ги обработите предварително и почистите по подходящ начин и да планирате всички предизвикателства, които не можете да отстраните предварително.

Предварителната обработка на данни може да включва нормализиране, мащабиране или други трансформации. За големи изображения обикновено включва подреждане на малки части. Данните и анотациите трябва да се съхраняват във формат, който е ефективен за обучение на модели.

Разбирането на данните също ви помага да идентифицирате всякакви отклонения, които могат да повлияят на производителността и надеждността на модела. Отклоненията може да се дължат на липса на данни за обучение за определена подгрупа или фалшива корелация. Пакетни ефекти поради технически вариации като разлики в обработката в различни лаборатории или географски вариации. Или дори проби, етикетирани от различни анотатори.

За повечето приложения трябва да се консултирате с експерти по домейни, за да научите за данните:

  • Как са събрани данните?
  • Какво представлява?
  • Какви характеристики се разглеждат при изучаването на данните?
  • Какви вариации съществуват или могат да се очакват при използване в реалния свят?
  • Какви артефакти или проблеми с качеството може да са налице, които биха могли да объркат модел?

Някои от тези аспекти могат да бъдат доста нюансирани и да не са очевидни за някой, който не е обучен в определена област.

Тази критична стъпка за разбиране на данните помага да се оцени качеството и уместността, да се идентифицират и адресират пристрастията на данните и да се определят подходящите техники за предварителна обработка.

4) План за валидиране

Формирането на план за валидиране в началото на проекта е важно за разкриване на неочаквани предизвикателства. Очаква се окончателният модел да работи в някакъв сценарий от реалния свят и тестването на способностите му е от съществено значение.

Първата настройка за валидиране, която трябва да обмислите, е разделянето на данните за обучение на набори за обучение, валидиране и тест. Наборът за обучение обикновено е най-голямата част от данните и се използва за обучение на модела. Наборът за валидиране се използва за настройка на хиперпараметрите на модела, като скоростта на обучение или силата на регулиране. Наборът за тестване се използва за оценка на производителността на модела, осигурявайки безпристрастна оценка на способността на модела да обобщава невидими данни. Тестовият набор трябва да се съхранява напълно отделен от наборите за обучение и валидиране по време на процеса на разработване на модела.

Обикновено комплектите за обучение, валидиране и тестове обикновено се избират на случаен принцип от наличните данни, като същевременно се поддържа желаното разпределение на класове или целеви променливи, за да се избегнат всякакви непреднамерени отклонения. Когато данните се състоят от различни групи, като множество изображения от всеки пациент, проби, събрани от различни медицински центрове, или изображения от различни географски региони, е необходимо по-внимателно стратифициране на групите, за да се оцени възможността за обобщаване на модела. Всички примери от една и съща група трябва да попадат в комплекта за обучение, валидиране или тест и никога да не се разпределят между трите.

Техниките за кръстосано валидиране, като k-fold или leave-n-out кръстосано валидиране, също могат да бъдат използвани за получаване на по-стабилни оценки на производителността чрез систематично ротиране на данните в набори за обучение, валидиране и тестове. Тази настройка е особено обичайна за малки масиви от данни.

Оценяването на ефективността на модела включва изчисляване на един или повече показатели за наборите за обучение, валидиране и тестване. Подходящите показатели зависят от приложението, но могат да включват точност, чувствителност, специфичност, F1 резултат, AUC резултат, DICE или много други. Всеки от тези показатели сравнява прогнозите на модела с вашата основна истина.

В някои приложения изчисляването на показатели на вашия тестов набор може да бъде достатъчно валидиране. В други, тази задържана част от вашите данни може да не е достатъчно подобна на реалния свят. Може би вашият модел трябва да работи върху пациенти от различен географски регион или медицински център, отколкото е бил обучен, и нямате налични анотирани данни за обучение. Все още трябва да валидирате модела си на външна кохорта, за да симулирате представянето му в реалния свят и способността му да обобщава.

5) Разработване на базов модел

След много планиране и проучване най-накрая сте готови да започнете моделирането. Но не съветвам да започнете с най-сложния модел на дълбоко обучение. Започнете просто. Първо разработете проста базова линия. Това ще ви позволи да изпробвате вашите канали за обработка на данни, анотация и валидиране, разкривайки всички неочаквани предизвикателства.

Има много подходящи алгоритми за конкретен проект и изборът на най-добрия може да бъде предизвикателство. Най-простата базова линия може да бъде линеен класификатор или регресор, изграден върху прости функции. Или може да се използва трансферно обучение без фина настройка, за да се минимизира времето, прекарано в функциите за обучение. Не си правете труда да настройвате широко хиперпараметрите в този момент; тези по подразбиране може дори да са достатъчни за тази първа стъпка.

Разработването на базов модел ви помага да установите показател за ефективност, който може да се използва за оценка на ефективността на бъдещи модели. Той помага да зададете реалистични очаквания за изпълнение на вашия проект и ви позволява да определите колко подобрения са необходими, за да постигнете желано ниво на изпълнение.

Този базов модел не трябва да се счита за окончателен модел. По-скоро трябва да се използва като отправна точка за разработване на по-сложни модели, които могат да постигнат по-добра производителност.

6) Повторете и подобрете

Итерирането е от съществено значение за подобряване на производителността на модела, докато се постигне желаното ниво на точност.

Първата стъпка е да се анализира ефективността на модела. Това включва изследване на няколко различни аспекта:

  • Преглед на показателите за обучение и валидиране, за да се търсят признаци на пренастройване или проблеми с конвергенцията на модела.
  • Стратифициране на показателите за валидиране в различни подгрупи, за да се идентифицират области за подобрение или възможни отклонения.
  • Категоризиране на режимите на повреда, за да намерите области за подобрение.
  • Преглед на резултатите с експерти по домейни за обратна връзка относно това какви недостатъци са важни за тях.

След като сте анализирали представянето на модела, трябва да направите хипотеза защо се е представил лошо и как можете да разрешите проблемите. Решенията могат да бъдат ориентирани към данни, като събиране на повече данни или промяна на процедури за почистване, или ориентирани към модела, като промени в архитектурата на модела или хиперпараметрите. Прегледайте бележките от вашето търсене на литература за идеи.

Следващата стъпка е да тествате вашите хипотези, като внедрите промените и оцените ефективността на модела върху данните за валидиране. Приоритезирайте работата си, като коригирате проблеми, които са най-вредни за вашия модел или които са най-лесни за отстраняване първи.

Итерирането и подобряването на модел на машинно обучение е непрекъснат процес. Трябва да продължите да тествате и усъвършенствате модела, докато постигнете желаното ниво на точност. Поддържайте тези итерации стриктно, за да можете да коригирате курса възможно най-скоро — особено ако корекцията включва отнемащи време промени в събирането на данни или анотацията.

7) Внедряване, наблюдение и поддръжка

След като имате модел, който отговаря на вашето желано ниво на производителност, можете да го внедрите в производствена среда. Това включва интегриране на модела във вашето приложение или система и гарантиране, че работи според очакванията.

Първата стъпка е да се идентифицират изискванията за внедряване на модела. Това може да включва фактори като производителност, мащабируемост, сигурност и потребителски интерфейс. Трябва също така да изберете платформа за внедряване; типичните опции са базирани на облак услуги или локална инфраструктура.

Следващата стъпка е да опаковате модела във формат, който може да бъде внедрен, и да тествате внедряването, за да се уверите, че работи правилно. Това може да включва тестване на производителността, мащабируемостта и сигурността на модела. След като моделът бъде разгърнат, трябва да наблюдавате неговата производителност и да направите всички необходими корекции.

Внедряването на модел за машинно обучение е непрекъснат процес и трябва непрекъснато да подобрявате модела, за да сте сигурни, че той остава ефективен във времето.

И накрая, важно е да се документират всички промени, които се правят в модела или неговия процес на обучение. Това гарантира, че моделът остава прозрачен и възпроизводим във времето.

Резюме

Проектите за машинно обучение са сложни и повтарящи се. Този процес на пътна карта ви позволява да планирате всеки аспект от вашия проект. Въпреки че детайлите може да се променят, цялостните компоненти ще останат същите. От дефинирането на проблема до поддържането на вашия модел, всяка стъпка изисква внимателно планиране. Където е възможно, трябва също така да помислите как вашият планиран подход може да се провали и някои решения за справяне с тези възможни неуспехи.