Machine Learning

Навіщо потрібен ML та які завдання він вирішує? Машинне навчання (ML). Частина 3

ML – це інструмент, за допомогою якого вирішується певний клас завдань.

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

Припустимо, ви хочете мати програму, яка, отримавши на вході фотографію фрукта, могла б сказати: це яблуко чи мандарин? (Замість яблука та мандарину може бути як ракова пухлина на рентгенівському знімку, так і визначення банком шахрайських транзакцій).

1) Найпростіший спосіб вирішити цю проблему – посадити людину з гострим зором, яка б підписувала отримане фото. Очевидно, що такий підхід має свої недоліки:
a. Людина може втомитися, не вийти на роботу
b. Людині потрібно платити заробітну плату, оформити страховку, їй потрібно шукати заміну, коли вона захоче у відпустку
c. Людина (порівняно з комп’ютером) досить повільно виконує поставлене їй завдання

2) Тоді ми вирішуємо замість людини написати програму, яка вирішувала б наше завдання. Ми навіть зберемо провідних експертів у світі з мандарин і яблук і попросимо їх описати програмісту всі можливі відмінності цих фруктів один від одного. В результаті, ми отримаємо програму, яка на основі кольору фрукта, довжини листа та довжини фрукта, каже нам – яблуко це або мандарин. Система працює якийсь час, доки нам не потрапить яблуко з формою листа мандарину або яблуко червоного (майже помаранчевого кольору) як мандарин або яблуко досить круглої форми. Людина відразу побачить, що це яблуко, але наша програма скаже: це мандарин! Тоді ми знову зберемо експертів, обговоримо, чому у нас тут помилка, додамо в програму ще низку правил і так триватиме щоразу, поки ми не досягнемо бажаного результату. Мінуси такого підходу:

а. Висока вартість розробки (оплата експертів, програмістів тощо)
b. Отримана програма буде дуже складною та важкою для підтримки.
c. Великі часові витрати на розробку
d. Неможливість одразу виловити всі можливі залежності у предметній галузі, та описати всі можливі випадки, відмінності.

3) Зрозумівши, що варіанти 1 та 2 нам не підходять, ми шукаємо альтернативні способи вирішення цього завдання та приходимо до алгоритмів машинного навчання. Використовуючи необхідні алгоритми машинного навчання, ми отримуємо програму, яка, навчившись на великій кількості фото яблук та мандарин, вирішує нашу проблему. Із мінусів, потрібна велика кількість розмічених даних (велика кількість фотографій яблук та мандаринів, позначених відповідно).

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

Визначившись із питанням навіщо нам потрібен ML, розберемо, для яких завдань він підходить.

Основні завдання, які вирішують алгоритми машинного навчання – це завдання, які важко або неможливо, або нераціонально вирішувати безпосереднім, “явним” (explicit) програмним або аналітичним способом. Серед цих завдань (на кшталт вирішуваних проблем) можна виділити наступні 4:

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

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

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

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