Користувач Medium Кріс І., fullstack-розробник і фахівець з даних, три роки вивчав машинне навчання та створював на його базі додатки в рамках стартапу. Кріс визнає: в процесі він не раз робив помилки і втратив багато часу. Він поділився шістьма порадами на основі свого досвіду, які будуть корисні починаючим фахівцям з МН.
Відмовтеся від навчання без учителя (unsupervised learning)
Це метод навчання моделей з немаркованих даних, зазвичай задіює кластеризацію. В теорії з його допомогою можна виявити невідомі раніше закономірності. У свою чергу, під час навчання з учителем (supervised learning) модель вивчає відносини між вхідними даними і поміченими вихідними даними.
Незважаючи на те, що цей метод рекомендують багато експертів зі ступенем PhD в ІІ, часто навчання без учителя не приносило ніякого результату. У разі Кріса, воно завжди поступалося людської інтуїції. І хоча у цього методу, ймовірно, є безліч способів застосування, але робота буде нелегкою і витратною з точки зору часу. Тому краще набрати більше досвіду і повернутися до нього пізніше.
Безкоштовні курси для ІТ-початківців: Front-End, JavaScript, Java, Python та основи програмування
Не використовуйте нейронні мережі
Нейросети можуть перевершити традиційні моделі, однак вони вимагають величезних зусиль і дають лише невеликі переваги.
У цій моделі є кілька недоліків, які будуть особливо помітні початківцям.
- Уповільнює ітерацію. Крива навчання – це функція швидкості, яка визначає час переходу до нового етапу. Як правило, нейромережі навчаються довше традиційних моделей. А значить, у вас буде менше часу на ітерації.
- Вимагає багато даних. При їх нестачі можна зіткнутися з перенавчанням моделі: вона буде добре працювати на навчальній вибірці, але погано справлятися з іншими прикладами. Зазвичай масивний об’єм даних є лише у багаторічних компаній. Але навіть в такому випадку він, ймовірно, буде немаркованим.
- Пропонує незліченну кількість параметрів. Логістична регресія має обмежене число комбінацій гіперпараметрів, а ось нейронну мережу можна налаштовувати незліченною кількістю способів. Ви з більшою вірогідністю заплутаєтеся, ніж знайдете рішення.
- Швидше за все, традиційної моделі МН буде досить. Для створення мінімально життєздатного продукту підійде готова модель з бібліотеки Scikit-learn. Звичайно, тижні налаштування нейромережі можуть подарувати пару додаткових балів за оцінкою f1. Однак на початку роботи це не варто витрачених зусиль.
- Важко знайти наставника. Практично кожен здатний пояснити, як нейронні мережі працюють на високому рівні. Однак лише у кількох є досвід вирішення реальних проблем з їх допомогою. Тому вам, ймовірно, доведеться розбиратися самостійно.
В цілому, не варто повністю уникати нейромереж – краще використовувати їх на більш пізніх етапах.
Структуруйте всі проблеми в двійковій класифікації
Максимально спростіть навчання моделі. Найлегше це зробити за допомогою двійкової класифікації. Така модель буде виводити 1 або 0 в залежності від того, чи є на фотографії, наприклад, собака чи ні. Многоклассовая класифікація повертає 0, 1, 2 або 3 з урахуванням того, хто представлений на фото: собака, кішка, папуга або ему.
За словами Кріса, він отримував кращі результати при паралельному запуску кількох довічних класифікаторів, ніж при використанні однієї багатоклассової моделі,яка обробляє всі випадки. Найбільші переваги дає не вибір відповідної моделі, а правильне структурування проблеми.
Налаштуйте гіперпараметри
Це налаштування на рівні моделі, наприклад коефіцієнт швидкості навчання. За умовчанням вони рідко бувають оптимальними.
Однак ручне налаштування вимагає багато часу, тому краще скористатися автоматизованим інструментом: GridSearchCV, TPOT і т. д. Зберігати експерименти можна в хмарі.
Порада: напишіть код, який буде періодично зберігати результати. Інакше, в разі збоїв, можна втратити роботу за кілька днів.
Встановіть терміни для спроб, а не для результатів
Машинне навчання – це не розробка ПО. Неможливо передбачити, скільки часу буде потрібно для вирішення проблеми і чи можна її вирішити в цілому.
Однак з точки зору бізнесу тимчасові рамки грають важливу роль. Тому краще відразу встановити термін тривалості експерименту.
Документуйте експерименти
Через півроку ви будете вдячні собі за це. Інформацію можна занести в електронну таблицю і відзначити в ній наступне:
- вибір моделі/архітектури;
- гіперпараметри;
- приблизний опис даних (джерело, розмір, дата, особливості і т. д.);
- результати (точність, оцінка f1 та інші);
- посилання на знімок даних (по можливості);
- коментарі та висновки.
Одного разу CEO компанії або новий керівник попросить вас виконати те, над чим ви вже працювали і не отримали бажаних результатів. Але, ймовірно, ви не згадаєте, чому так вийшло. Документація не тільки нагадає про це, але і дозволить представити минулі результати керівництву, що заощадить вам багато часу.
Крім того, замітки в ході роботи і періодичне підведення підсумків надають сил, допомагають побачити закономірності та розвивати інтуїцію. Саме це зробить вас досвідченим фахівцем в довгостроковій перспективі.