Як вибирати алгоритми машинного навчання Microsoft Azure

У статті ви знайдете шпаргалку по алгоритмів машинного навчання Microsoft Azure, яка допоможе вам вибрати відповідний алгоритм для ваших рішень предиктивної аналітики з бібліотеки алгоритмів Microsoft Azure. А також ви дізнаєтеся, як її використовувати.



Відповідь на питання «Який алгоритм машинного навчання використовувати?» завжди звучить так: «Дивлячись за обставинами». Вибір алгоритму залежить від обсягу, якості і природи даних. Він залежить від того, як ви розпорядитеся результатом. Він залежить від того, як з алгоритму були створені інструкції для реалізує його комп'ютера, а ще від того, скільки у вас часу. Навіть найдосвідченіші фахівці з аналізу даних не скажуть вам, який алгоритм краще, поки самі не спробують.

Шпаргалка по алгоритмів машинного навчання Microsoft Azure
Скачати шпаргалку по алгоритмів машинного навчання Microsoft Azure можна здесь.

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

Ці рекомендації створені на основі відгуків та порад безлічі фахівців з аналізу даних та експертів з машинного навчання. Ми не в усьому згодні один з одним, але постаралися узагальнити наші думки і досягти консенсусу. Більшість спірних моментів починаються зі слів «Дивлячись за обставинами...» :)

Як використовувати шрагалку

Читати мітки шляху і алгоритму на схемі потрібно так: «Для <мітка шляху> <алгоритм>». Наприклад, «speed two class logistic regression». Іноді можна використовувати кілька гілок. Іноді жодна з них не буде ідеальним вибором. Це всього лише рекомендації, тому не турбуйтеся про неточності. Деякі фахівці з аналізу даних, з якими мені вдалося поспілкуватися, кажуть, що єдиний вірний спосіб знайти кращий алгоритм — спробувати їх все.

Ось приклад експерименту Cortana Intelligence Gallery, в якому випробовуються кілька алгоритмів з одними і тими ж даними і порівнюються результати.

Завантажити та роздрукувати діаграму з оглядом можливостей Студії машинного навчання можна цієї статті.

Різновиди машинного навчання

Навчання з учителем

Алгоритми навчання з вчителем роблять прогнози на основі набору прикладів. Так, щоб передбачити ціни в майбутньому, можна використовувати курс акцій в минулому. Кожен приклад, використовуваний для навчання, отримує свою відмінну мітку значення, в даному випадку це курс акцій. Алгоритм навчання з вчителем шукає закономірності в цих тегах значень. Алгоритм може використовувати будь-яку важливу інформацію — день тижня, час року, фінансові дані компанії, вид галузі, наявність серйозних геополітичних подій, і кожен алгоритм шукає різні види закономірностей. Після того, як алгоритм знаходить відповідну закономірність, з її допомогою він робить прогнози щодо неразмеченным тестовими даними, щоб передбачити ціни в майбутньому.

Це популярний і корисний тип машинного навчання. За одним винятком всі модулі машинного навчання Azure є алгоритмами навчання з вчителем. У службах машинного навчання Azure представлено декілька конкретних видів машинного навчання з учителем: класифікація, регресія і виявлення аномалій.

  • Класифікація. Коли дані використовуються для прогнозування категорії, навчання з учителем називається класифікацією. В цьому випадку відбувається призначення зображення, наприклад «кіт» або «собака». Коли є тільки два варіанти вибору, це називається двохкласовому класифікацією. Коли категорій більше, наприклад, при прогнозуванні переможця турніру NCAA March Madness, це називається многоклассовой класифікацією.
  • Регресія. Коли прогнозується значення, наприклад, у випадку з курсом акцій, навчання з учителем називається регресією.
  • Фільтрація викидів. Іноді потрібно визначити незвичайні точки даних. Наприклад, при виявленні шахрайства під підозру потрапляють будь-які дивні закономірності витрат коштів з кредитної картки. Можливих варіантів так багато, а прикладів для навчання так мало, що практично неможливо дізнатися, як буде виглядати шахрайська діяльність. При фільтрації викидів просто вивчається нормальна активність (з допомогою архіву допустимих транзакцій) і знаходяться всі операції з помітними відмінностями.


Навчання без вчителя

В рамках навчання без вчителя у об'єктів даних немає міток. Замість цього алгоритм навчання без вчителя повинен організувати дані або описати їх структуру. Для цього їх можна згрупувати в кластери, щоб вони стали більш структурованими, або знайти інші способи спростити складні дані.

Навчання з підкріпленням

В рамках навчання з підкріпленням алгоритм вибирає дію у відповідь на кожен вхідний об'єкт даних. Через деякий час алгоритм навчання отримує сигнал винагороди, який вказує, наскільки правильним було рішення. На цій підставі алгоритм змінює свою стратегію, щоб отримати найвищу нагороду. В даний час в машинному навчанні Azure немає модулів навчання з підкріпленням. Навчання з підкріпленням поширене в роботехніці, де набір показань датчика в певний момент часу є об'єктом, і алгоритм повинен вибрати наступне дію робота. Крім того, цей алгоритм підходить для додатків в Інтернеті речей.

Поради щодо вибору алгоритму

Точність

Не завжди потрібен самий точний відповідь. Залежно від мети іноді достатньо отримати приблизну відповідь. Якщо так, то ви можете значно скоротити час відпрацювання, вибираючи наближені методи. Ще одна перевага наближених методів полягає в тому, що вони виключають перенавчання.

Час навчання

Кількість хвилин або годин, необхідних для навчання моделі, сильно залежить від алгоритмів. Найчастіше час навчання тісно пов'язане з точністю — вони визначають один одного. Крім того, деякі алгоритми більш чутливі до обсягу навчальної вибірки, ніж інші. Обмеження в часі допомагає вибрати алгоритм, особливо якщо використовується навчальна вибірка великого об'єму.

Лінійність

У багатьох алгоритмів машинного навчання використовується лінійність. Алгоритми лінійної класифікації припускають, що класи можна розділити прямою лінією (або її більш багатовимірним аналогом). Тут мова йде про логістичної регресії і метод опорних векторів (в машинному навчанні Azure). Алгоритми лінійної регресії припускають, що розподіл даних описується прямою лінією. Ці припущення підходять для вирішення ряду завдань, але в деяких випадках знижують точність.


Обмеження нелінійних класів — використання алгоритму лінійної класифікації знижує точність


Дані з нелінійної закономірністю — при використанні методу лінійної регресії виникають серйозні помилки, ніж це допустимо

Незважаючи на недоліки, до лінійних алгоритмів зазвичай звертаються в першу чергу. Вони прості з алгоритмічної точки зору, а навчання проходить швидко.

Кількість параметрів

Параметри — це важелі, з допомогою яких фахівці за даними налаштовують алгоритм. Це числа, які впливають на поведінку алгоритму, наприклад стійкість до помилок або кількість ітерацій, або відмінності у варіантах поведінки алгоритму. Іноді час навчання і точність алгоритму можуть змінюватися залежно від тих або інших параметрів. Як правило, знайти хорошу комбінацію параметрів алгоритмів можна шляхом проб і помилок.

Також у машинному навчанні Azure є модульний блок підбору параметрів, який автоматично пробує всі комбінації параметрів з вказаною вами ступенем деталізації. Хоч цей спосіб і дозволяє випробувати безліч варіантів, однак чим більше параметрів, тим більше часу йде на навчання моделі.

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

Кількість ознак

В деяких типах даних ознак може бути набагато більше, ніж об'єктів. Це зазвичай відбувається з даними з області генетики або з текстовими даними. Велика кількість ознак перешкоджає роботі деяких алгоритмів навчання, з-за чого час навчання неймовірно розтягується. Для подібних випадків добре підходить метод опорних векторів (див. нижче).

Особливі випадки

Деякі алгоритми навчання роблять припущення про структуру даних або бажані результати. Якщо вам вдасться знайти підходящий варіант для своїх цілей, він принесе вам відмінні результати, більш точні прогнози або скоротить час навчання.

Властивості алгоритму:
• — демонструє відмінну точність, короткий час навчання і використання лінійності.
○ — демонструє відмінну точність і середній час навчання.
Алгоритм Точність Час навчання Лінійність Параметри Примітка
Двухклассовая класифікація
Логістична регресія 5
Ліс дерев рішень 6
Джунглі дерев рішень 6 Низькі вимоги до пам'яті
Покращене дерево прийняття рішень 6 Високі вимоги до пам'яті
Нейронна мережа 9 Можлива додаткова настройка
Одношаровий перцептрон 4
Метод опорних векторів 5 Добре підходить для великих наборів ознак
Локальні глибинні методи опорних векторів 8 Добре підходить для великих наборів ознак
Байесовские методи 3
Многоклассовая класифікація
Логістична регресія 5
Ліс дерев рішень 6
Джунглі дерев рішень 6 Низькі вимоги до пам'яті
Нейронна мережа 9 Можлива додаткова настройка
Один проти всіх См. властивості обраного двухклассового методу
Многоклассовая класифікація
Регресія
Лінійна 4
Байесова лінійна 2
Ліс дерев рішень 6
Покращене дерево прийняття рішень 5 Високі вимоги до пам'яті
Швидкі квантильные регресійні лісу 9 Прогнозування розподілів, а не точкових значень
Нейронна мережа 9 Можлива додаткова настройка
Пуассона 5 Технічно логарифмічний. Для підрахунку прогнозів
Порядкова 0 Для прогнозування рейтингу
Фільтрація викидів
Методи опорних векторів 2 Відмінно підходить для великих наборів ознак
Фільтрація викидів на основі методу головних компонент 3 Відмінно підходить для великих наборів ознак
Метод k-середніх 4 Алгоритм кластеризації

Примітки до алгоритму

Лінійна регресія

Як ми вже говорили, лінійна регресія розглядає дані лінійно (або в площині, або в гіперплощини). Це зручна та швидка «робоча конячка», але для деяких проблем вона може бути надто простий. Здесь ви знайдете керівництво по лінійної регресії.


Дані з лінійним трендом

Логістична регресія

Нехай слово «регресія» в назві не вводить вас в оману. Логістична регресія — це дуже потужний інструмент для двохкласовому і многоклассовой класифікації. Це швидко і просто. Оскільки замість прямої лінії тут використовується крива у формі літери S, цей алгоритм чудово підходить для розділення даних на групи. Логістична регресія обмежує лінійний клас, тому вам доведеться змиритися з лінійною апроксимацією.


Логістична регресія для двухклассовых даних всього з однією ознакою — межа класу знаходиться в точці, де логістична крива близька до обох класів

Дерева, ліси і джунглі

Ліси розв'язуючих дерев (регресія, двухклассовые і многоклассовые), джунглі розв'язуючих дерев (двухклассовые і многоклассовые) і поліпшені дерева прийняття рішень (регресія і двухклассовые) засновані на деревах прийняття рішень, базової концепції машинного навчання. Існує багато варіантів дерев прийняття рішень, але всі вони виконують одну функцію — підрозділяють простір ознак на області з однією і тією ж міткою. Це можуть бути області однієї категорії або постійного значення, залежно від того, чи використовуєте ви класифікацію або регресію.


Дерево прийняття рішень поділяє простір ознак на області з приблизно однаковими значеннями

Оскільки простір ознак можна розділити на невеликі області, це можна зробити так, щоб в одній області був один об'єкт — це грубий приклад помилкової зв'язку. Щоб уникнути цього, великі набори дерев створюються таким чином, щоб дерева не були пов'язані один з одним. Таким чином, «дерево прийняття рішень» не повинно видавати помилкових зв'язків. Дерева прийняття рішень можуть споживати великі обсяги пам'яті. Джунглі вирішальних дерев споживають менше пам'яті, але при цьому навчання займе трохи більше часу.

Поліпшені дерева прийняття рішень обмежують кількість поділів і розподіл точок даних в кожній області, щоб уникнути помилкових зв'язків. Алгоритм створює послідовність дерев, кожне з яких виправляє допущені раніше помилки. В результаті ми отримуємо високу ступінь точності без великих витрат пам'яті. Повна технічний опис дивіться у наукової роботи Фрідмана.

Швидкі квантильные регресійні лісу — це варіант дерев прийняття рішень для тих випадків, коли ви хочете знати не тільки типове (середнє) значення даних в області, але і їх розподіл у формі квантилів.

Нейронні мережі і сприйняття

Нейронні мережі — це алгоритми навчання, які створені на основі моделі людського мозку і направлені на рішення многоклассовой, двохкласовому і регресійної завдань. Їх існує величезна безліч, але в машинному навчанні Azure нейронні мережі приймають форму спрямованого ациклічного графіка. Це означає, що вхідні ознаки передаються вперед через послідовність рівнів і перетворюються у вихідні дані. На кожному рівні вхідні дані вимірюються в різних комбінаціях, складаються і передаються на наступний рівень. Ця комбінація простих розрахунків дозволяє вивчати складні кордону класів і тенденції даних ніби за помахом чарівної палички. Такі багаторівневі мережі виконують «глибоке навчання», яке служить джерелом натхнення для технічних звітів і наукової фантастики.

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


Кордону, вивчаються нейронними мережами, бувають складними і хаотичними

Одношаровий перцептрон — це відповідь нейронних мереж на збільшення часу навчання. У ньому використовується мережева структура, яка створює лінійні класові кордони. За сучасними стандартами звучить примітивно, але цей алгоритм давно перевірений на ділі і швидко навчається.

Методи опорних векторів

Методи опорних векторів знаходять межу, яка розділяє класи настільки широко, наскільки це можливо. Коли неможливо чітко розділити два класи, алгоритми знаходять найкращу кордон. Згідно машинного навчання Azure, двухклассовый метод опорних векторів робить це з допомогою прямої лінії (кажучи мовою методів опорних векторів, використовують лінійне ядро). Завдяки лінійній апроксимації навчання виконується досить швидко. Особливо цікава функція роботи з об'єктами з безліччю ознак, наприклад, текстом або геномом. У таких випадках опорні векторні машини можуть швидше розділити класи і відрізняються мінімальною ймовірністю створення помилкової зв'язку, а також не вимагають великих обсягів пам'яті.


Стандартна кордон класу опорної векторної машини збільшує поле між двома класами

Ще один продукт від Microsoft Research — двухклассовые локальні глибинні методи опорних векторів. Це нелінійний варіант методів опорних векторів, який відрізняється швидкістю і ефективністю пам'яті, притаманною лінійної версії. Він ідеально підходить для випадків, коли лінійний підхід не дає достатньо точних відповідей. Щоб забезпечити високу швидкість, розробники розбивають проблему на кілька невеликих задач лінійного методу опорних векторів. Детальніше про це читайте в повному описі.

З допомогою розширення нелінійних методів опорних векторів одноклассовая машина опорних векторів створює кордон для всього набору даних. Це особливо корисно для фільтрації викидів. Всі нові об'єкти, які не входять в межі кордону, вважаються незвичайними і тому уважно вивчаються.

Байесовские методи

Байесовские методи відрізняються дуже потрібним якістю: вони уникають помилкових зв'язків. Для цього вони заздалегідь роблять припущення про можливий розподіл відповіді. Також для них не потрібно налаштовувати багато параметрів. Машинне навчання Azure пропонує Байесовские методи як для класифікації (двухклассовая класифікація Байєса), так і для регресії (Байесова лінійна регресія). При цьому передбачається, що дані можна розділити або розташувати вздовж прямої лінії.

До речі, точкові машини Байєса були розроблені в Microsoft Research. У їх фундаменті лежить чудова теоретична робота. Якщо вас зацікавить ця тема, читайте статтю в MLR, блог Кріса Бішопа (Chris Bishop).

Особливі алгоритми

Якщо ви переслідуєте конкретну мету, вам пощастило. У колекції машинного навчання Azure є алгоритми, які спеціалізуються на прогнозуванні рейтингів (порядкова регресія), прогнозування кількості (регресія Пуассона) і виявленні аномалій (один з них заснований на аналізі головних компонентів, а інший — на методах опорних векторів). А ще є алгоритм кластеризації (метод k-середніх).


Виявлення аномалій на основі PCA — безліч даних потрапляє під стереотипне розподіл; під підозру потрапляють точки, які сильно відхиляються від цього розподілу


Набір даних розділяється на п'ять кластерів за методом k-середніх

Також є многоклассовый класифікатор «один проти всіх», який розбиває проблему класифікації N-класу на двухклассовые проблеми класу N-1. Точність, час навчання і властивості лінійності залежать від використовуваних двухклассовых класифікаторів.


Два двухклассовых класифікатора формують трехклассовый класифікатор

Крім того, Azure пропонує доступ до потужній платформі машинного навчання під назвою Vowpal Wabbit. VW відмовляється від категоризації, оскільки може вивчити проблеми класифікації і регресії і навіть навчатися від частково позначених даних. Ви можете вибрати будь-який з алгоритмів навчання, функцій втрат і алгоритмів оптимізації. Ця платформа відрізняється ефективністю, можливістю паралельного виконання і неперевершеною швидкістю. Вона легко справляється з великими наборами даних. VW була запущена Джоном Ленгфордом (John Langford), фахівцем з Microsoft Research, і є болідом «Формули-1» в океані серійних автомобілів. Не кожна проблема підходить для VW, але якщо ви вважаєте, що це вірний для вас варіант, то витрачені зусилля обов'язково окупляться. Також платформа доступна у вигляді автономного відкритого вихідного коду на декількох мовах.

Якщо ви побачили неточність перекладу, повідомте будь ласка про це в особисті повідомлення.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.