Машинне навчання

Підходи машинного навчання

Коли стикаєшся з величезною кількістю різних алгоритмів ML, найчастіше питання, яке виникає це ━ “Який алгоритм є правильним рішенням для даної проблеми?”. Відповідь на це питання варіюється в залежності від багатьох факторів, включаючи:

  1. розмір, якість і характер даних домену
  2. доступний обчислювальний час
  3. термін виконання 
  4. мета завдання

У багатьох випадках важко сказати, який алгоритм буде працювати краще, до того як випробувано різні алгоритми, після ретельного дослідження даних. Використання конкретного алгоритму зазвичай відбувається на основі характеристик і аналізу даних. Як і в цілому з DM, що використовують підхід машинного навчання, якість отриманих моделей сильно залежить від репрезентативності наданого набору даних. Взаємодоповнюваність методів призводить до того, що для побудови моделей випробовуються різні варіанти з широкого спектру доступних методів моделювання на основі характеристик і аналізу даних. Щоб досягти максимальної якості, у багатьох випадках необхідно навчати кожну модель декілька разів з різними параметрами і опціями. Іноді також доцільно комбінувати кілька незалежних моделей різних типів, тому що кожен тип може бути сильним у відповідних різних випадках. Повний потенціал даних може бути розкритий шляхом поєднання частково слабких моделей, тобто використання ансамблевих методів навчання, заснованих на таких принципах, як голосування, зважування передбачень, багаторазового процесу навчання або випадковий вибір. Тому правильна комбінація декількох типів моделей з різними перевагами і недоліками може бути використана для досягнення максимальної точності і стабільності в передбаченнях.

Найпростішим способом класифікації алгоритмів ML є поділ на кероване, спонтанне і часткове навчання [Goodfellow 2016], які описуються наступним чином:

  • Кероване навчання (або навчання з учителем) – це алгоритми навчання, які виводять функцію залежності деяких входів від відповідних їм виходів, використовуючи еталонні навчальні дані, які складаються з набору прикладів. Кожен приклад являє собою пару вхідних і вихідних значень. У багатьох випадках збір вихідних даних може бути ускладнений для автоматичного збору і відповідні мітки мають бути вручну визначені людиною (тобто промарковані). Знайдена в результаті роботи алгоритму функція називається класифікатором (якщо вихідні значення є дискретними) або функцією регресії (якщо вихідні значення є неперервними).
  • Спонтанне навчання (або навчання без учителя) намагається отримати інформацію з навчальних даних, що базується виключно на наборі вхідних даних (тобто без маркування). Цей тип навчання зазвичай використовується для оцінки щільності, навчання генерації прикладів з розподілу, видалення шуму з даних з деякого розподілу, знаходження многовиду, в якому знаходяться дані, або для кластеризації даних в групи пов’язаних прикладів. Різниця між керованими і спонтанними алгоритмами не визначена формально і жорстко, оскільки не існує об’єктивного тесту для визначення того, чи є вихідне значення ознакою або цільовою змінною, наданої супервізором.
  • Часткове навчання намагається використовувати немарковані дані для навчання, як правило, невелику кількість промаркованих даних та велику кількість немаркованих даних. Ці алгоритми з чимось середнім між керованим і спонтанним навчанням. Причиною є висока вартість процесу маркування, для якого необхідно залучення людини-експерта або фізичні експерименти, що робить створення повністю промаркованого набору тренувальних даних неможливим. Часткове навчання є цікавим з теоретичного боку ML бо схоже на модель навчання людини.

Цікаво зазначити, що алгоритми ML не мають строгої категоризації, деякі методи можуть бути зазначені як і в одній, так і в декількох категоріях. Наприклад, нейронні мережі можуть використовуватись як для деяких керованих проблем, так і для деяких спонтанних. Хоча проблема категоризації алгоритмів цікава, вона виходить за рамки цього документа.

Алгоритми попередньої обробки і пост-обробки також можна розділити на кілька підкатегорій, такі як зменшення розмірності, створення вибірки (отримання підвибірки, надлишкової вибірки), лінійні методи, статистичне тестування, створення нових ознак, кодування ознак, перетворення і вибір ознак (наприклад, взаємна інформація, статистика хі-квадрат). Тут можна перерахувати набагато більше алгоритмів для запобігання перенавчання (наприклад, регуляризація, встановлення порогів, обрізка (pruning),  виключення (dropout)), вибір моделі і оптимізація моделі (наприклад, налаштування гіперпараметрів, grid search, пошук локального мінімуму, оптимізація, натхненна біологічними факторами) і оцінка моделі (перехресна перевірка (cross-validation), k-fold, holdout) з різними метриками, такими як точність (accuracy, ACC), прецизійність, повнота, F1, коефіцієнт кореляції Метью (MCC), робоча характеристика приймача (receiver operating characteristic, ROC), площа під ROC-кривою (ROC AUC), середнє абсолютне значення помилки (mean absolute error, MAE), середньоквадратична помилка (mean squared error, MSE) і корінь середньоквадратичної помилки (root mean square error, RMSE).

На Малюнку 3 представлений вичерпний графічний огляд методів ML для моделювання, а також для попередньої обробки та пост-обробки даних. Проте, кількість алгоритмів ML постійно збільшується, тому цей огляд може бути розширено.

Малюнок 3 . Огляд методів ML