Що таке машинне навчання?
Машинне навчання — це наука про те, як змусити комп'ютери навчатися з даних без явного програмування. Розуміння трьох основних парадигм — керованого, некерованого навчання та навчання з підкріпленням — плюс компромісу зсув–дисперсія достатньо, щоб ясно міркувати майже про будь-яку ML-систему у продакшені.
Що насправді робить машинне навчання
Класичне програмне забезпечення бере на вхід явні правила й видає відповіді. Машинне навчання перевертає це: воно бере приклади (входи + правильні відповіді) і видає правила (модель, що може відповідати на нові запитання).
ML: дані + відповіді → правила (модель)
Технічно ML знаходить функцію f таку, що f(x) ≈ y для всіх навчальних пар (x, y), а потім узагальнює на небачені значення x.
Кероване навчання
Найпоширеніша парадигма. Кожен навчальний приклад має розмічену відповідь. Алгоритм мінімізує різницю між своїми прогнозами та цими мітками.
Регресія
Прогнозувати неперервне число. Ціни на житло, температура, дохідність акцій.
Класифікація
Прогнозувати категорію. Спам/не спам, кіт/пес, хвороба/немає хвороби.
Ранжування
Упорядкувати елементи за релевантністю. Результати пошуку, стрічки рекомендацій.
Поширені алгоритми: лінійна/логістична регресія, дерева рішень, випадкові ліси, дерева з градієнтним бустингом (XGBoost), опорні векторні машини та нейронні мережі.
Некероване навчання
Без міток — алгоритм має сам знайти структуру в даних. Він групує схожі приклади, стискає представлення або виявляє аномалії, не маючи підказки про «правильну відповідь».
- Кластеризація (K-means, DBSCAN): групувати клієнтів за купівельною поведінкою; визначати типи клітин у даних одноклітинного RNA-seq.
- Зменшення розмірності (PCA, t-SNE, UMAP): стиснути 1000 ознак у 2D для візуалізації.
- Генеративні моделі (VAE, GAN, дифузійні): вивчити розподіл даних і семплувати нові приклади — основа синтезу зображень і мовних моделей.
- Виявлення аномалій: модель вивчає, як виглядає «нормальне»; відхилення сигналізують про шахрайство чи відмову обладнання.
Навчання з підкріпленням
Агент виконує дії в середовищі й отримує винагороди. Мета — навчитися стратегії (правилу вибору дій), що максимізує сукупну винагороду з часом.
На відміну від керованого навчання, тут немає пар (x, y) — агент має сам відкрити, які дії ведуть до винагороди, шляхом проб і помилок, часто з тривалими затримками між дією та винагородою.
Застосування: ШІ для ігор (AlphaGo, OpenAI Five), пересування роботів, оптимізація охолодження центрів обробки даних, RLHF (донавчання мовних моделей бути корисними та безпечними).
Компроміс зсув–дисперсія
Кожну похибку прогнозу моделі можна розкласти на:
- Зсув: похибка через хибні припущення в моделі (напр., припасування прямої до квадратичних даних). Модель з високим зсувом недонавчається — вона надто проста.
- Дисперсія: похибка через чутливість до малих коливань у навчальних даних. Модель з високою дисперсією перенавчається — вона запам'ятовує, а не узагальнює.
- Невід'ємний шум: випадковість у даних, яку жодна модель не може усунути.
Збільшення складності моделі (більше параметрів, вищий степінь полінома) знижує зсув, але підвищує дисперсію. Мистецтво ML — знайти оптимальну точку з урахуванням обсягу доступних даних.
Перенавчання та регуляризація
Перенавчена модель дуже добре працює на навчальних даних, але погано на нових прикладах — вона «запам'ятала», а не «навчилася».
Поширені способи виправлення
- Більше даних: найнадійніший спосіб. Моделі перенавчаються, коли навчальних даних мало відносно розміру моделі.
- L2-регуляризація (затухання ваг): додає до функції втрат штраф, пропорційний квадрату кожної ваги: L = L_data + λΣwᵢ². Змушує ваги лишатися малими.
- Dropout: випадково обнуляє нейрони під час навчання, щоб жоден окремий нейрон не став незамінним. Зменшує коадаптацію між нейронами.
- Рання зупинка: відстежувати втрати на валідації під час навчання й зупинятися, коли вони починають зростати.
- Аугментація даних: штучно розширити навчальний набір, перетворюючи приклади (відображення зображень, додавання шуму, зворотний переклад тексту).
Як моделі узагальнюють
Узагальнення — це головна загадка ML. Надпараметризовані моделі — як-от GPT-3 на 175 мільярдів параметрів, навчений на трильйоні токенів — за класичною теорією мали б катастрофічно перенавчатися.
Та цього не відбувається через те, що дослідники називають феноменом подвійного спуску: коли розмір моделі зростає за поріг інтерполяції, похибка на тесті знову зменшується. Свою роль відіграють і неявний зсув SGD у бік пласких мінімумів, і структурованість даних.
Практичний підсумок: якщо ваші дані достатньо великі й різноманітні, більші моделі часто узагальнюють краще, а не гірше. Це суперечить інтуїції, але нині добре підтверджено емпірично.
Вибір правильного методу
- Маєте розмічені дані, прогнозуєте число або клас? → Кероване навчання. Почніть з дерев із градієнтним бустингом (XGBoost/LightGBM) для табличних даних, нейронних мереж для зображень/тексту/аудіо.
- Немає міток, хочете знайти структуру? → Некероване. Кластеризуйте за допомогою K-means; візуалізуйте за допомогою UMAP; стискайте автокодувальником.
- Послідовні рішення з сигналом винагороди? → Навчання з підкріпленням. Значно складніше навчати; використовуйте лише тоді, коли задача за своєю природою послідовна.
- Дуже мало розмічених даних? → Напівкероване навчання або донавчання попередньо натренованої моделі (трансферне навчання). Базові моделі на кшталт GPT чи CLIP можна донавчити лише сотнями прикладів.