Підручник з машинного навчання для початківців: що таке, основи ML

⚡ Розумний підсумок

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

  • 🔘 Правила вивчаються, а не пишуться: Традиційне програмування кодує кожне правило вручну, тоді як модель виводить правило з парних вхідних та вихідних даних.
  • ☑️ Два етапи: Навчання виявляє закономірності та узагальнює їх у модель; логічний висновок застосовує цю модель до ніколи не бачених даних.
  • ✅ Дві великі родини: Навчання з учителем потребує позначених результатів, тоді як навчання без учителя знаходить структуру без них.
  • 🧪 Вибір алгоритму відповідає меті: Регресія передбачає неперервні значення, класифікація призначає мітки, кластеризація групує подібні записи.
  • 🛠️ Дані – це справжнє обмеження: Занадто мало даних або дані без різноманітності створюють модель, яку неможливо узагальнити.
  • ️ Де це окупається: Виявлення шахрайства в банківській справі, виявлення зображень в охороні здоров'я, прогнозування попиту по всьому ланцюжку поставок.

Підручник з машинного навчання для початківців: основи машинного навчання

Що таке машинне навчання?

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

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

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

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

Машинне навчання проти традиційного програмування

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

Традиційний процес програмування: дані плюс написані вручну правила створюють результат
Традиційне програмування

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

Потік машинного навчання: дані плюс відомі відповіді створюють правило

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

Як працює машинне навчання?

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

Машинне навчання – це мозок, де відбувається все навчання. Спосіб, у якому навчається машина, подібний до того, як навчається людина. Люди вчаться на досвіді: чим більше ми знаємо, тим легше нам передбачати. ​​За аналогією, коли ми стикаємося з невідомою ситуацією, ймовірність успіху нижча, ніж у відомій ситуації. Машини навчаються так само. Щоб зробити точний прогноз, машина бачить приклад. Коли ми даємо машині подібний приклад, вона може з'ясувати результат. Однак, як і людина, якщо їй подають раніше не бачений приклад, машині важко передбачити.

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

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

Етап навчання: навчальні дані проходять через алгоритм для побудови моделі

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

Роблячи висновок

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

Етап висновку: нові дані проходять через навчену модель для отримання прогнозу.

Життя програми машинного навчання є простим і може бути підсумовано в наступних пунктах:

  1. Визначте питання
  2. Збір даних
  3. Візуалізуйте дані
  4. Алгоритм навчання
  5. Перевірте алгоритм
  6. Збирайте відгуки
  7. Уточніть алгоритм
  8. Виконуйте кроки з 4 по 7, доки результати не будуть задовільними.
  9. Використовуйте модель, щоб зробити прогноз

Коли алгоритм робить правильні висновки, він застосовує ці знання до нових наборів даних.

машинне навчання Algorithms і де вони використовуються?

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

Алгоритми машинного навчання, згруповані в контрольовані та неконтрольовані завдання

навчання за допомогою машини Algorithms

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

Контрольоване навчання

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

Ви можете використовувати контрольоване навчання коли вихідні дані відомі. Алгоритм потім прогнозуватиме на основі нових даних.

Існує дві категорії навчання з учителем:

  • Класифікаційне завдання
  • Регресійна задача

Класифікація

Уявіть, що ви хочете передбачити стать клієнта для рекламного ролика. Ви почнете зі збору даних про зріст, вагу, роботу, зарплату, кошик покупок тощо з вашої бази даних клієнтів. Ви знаєте стать кожного зі своїх клієнтів, і це може бути лише чоловік або жінка. Мета класифікатора — призначити ймовірність того, що клієнт буде чоловіком або жінкою (тобто мітку) на основі зібраної вами інформації (тобто характеристик). Коли модель навчиться розпізнавати чоловіка або жінку, ви можете використовувати нові дані для прогнозування. Наприклад, ви щойно отримали нову інформацію від невідомого клієнта і хочете знати, чи є клієнт чоловіком чи жінкою. Якщо класифікатор передбачає, що чоловік = 70%, це означає, що алгоритм на 70% впевнений, що цей клієнт чоловік, і на 30% впевнений, що клієнт жінка.

Мітка може мати два або більше класів. У наведеному вище прикладі машинного навчання є лише два класи, але якщо класифікатору потрібно передбачати об'єкти, він може мати десятки класів (наприклад, склянка, стіл, взуття — кожен об'єкт представляє клас).

Регресія

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

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

Алгоритм Опис тип
Лінійна регресія Знаходить спосіб співвіднести кожну функцію з результатом, щоб допомогти передбачити майбутні значення. Регресія
Логістична регресія Розширення лінійної регресії, що використовується для задач класифікації. Вихідна змінна є двійковою (наприклад, лише чорний або білий), а не неперервною (наприклад, нескінченний список потенційних кольорів) Класифікація
Дерево рішень Класифікація або регресійна модель, яка добре інтерпретується, розбиває значення ознак даних на гілки у вузлах прийняття рішень (наприклад, якщо ознака є кольором, кожен можливий колір стає новою гілкою), доки не буде прийнято остаточне рішення. Регресія
Класифікація
Наївні Баєси Метод Байєса — це метод класифікації, який використовує теорему Байєса. Теорема оновлює попередні знання про подію незалежною ймовірністю кожної функції, яка може вплинути на подію. Регресія
Класифікація
Підтримка векторної машини Для задачі класифікації зазвичай використовується метод опорних векторів, або SVM. Алгоритм SVM знаходить гіперплощину, яка оптимально розділяє класи. Його найкраще використовувати з нелінійним розв'язувачем. Регрес (не дуже часто)
Класифікація
Випадковий ліс Алгоритм побудовано на дереві рішень для значного підвищення точності. Випадковий ліс генерує багато простих дерев рішень і використовує метод «більшості голосів», щоб вирішити, яку мітку повернути. Для задачі класифікації остаточним прогнозом буде той, що має найбільшу кількість голосів; для задачі регресії остаточним прогнозом є середнє значення прогнозу всіх дерев. Регресія
Класифікація
AdaBoost Техніка класифікації або регресії, яка використовує безліч моделей для прийняття рішення, але зважує їх на основі їхньої точності в прогнозуванні результату Регресія
Класифікація
Дерева, що підвищують градієнт Дерева з градієнтним посиленням – це найсучасніший метод класифікації/регресії. Він зосереджується на помилці, допущеній попередніми деревами, та намагається її виправити. Регресія
Класифікація

Непідконтрольне навчання

У самонавчанні алгоритм досліджує вхідні дані, не отримуючи явної вихідної змінної (наприклад, він досліджує демографічні дані клієнтів для виявлення закономірностей).

Ви можете використовувати його, коли не знаєте, як класифікувати дані, і хочете, щоб алгоритм знайшов закономірності та згрупував дані за вас. Основні алгоритми без учителя наведено нижче.

Назва алгоритму Опис тип
K-означає кластеризацію Розміщує дані в декілька груп (k), кожна з яких містить дані зі схожими характеристиками (як визначено моделлю, а не заздалегідь людьми) ClusterІНГ
Модель суміші Гауса Узагальнення кластеризації k-середніх, що забезпечує більшу гнучкість у розмірі та формі груп (кластерів) ClusterІНГ
Ієрархічна кластеризація Розділяє кластери вздовж ієрархічного дерева для формування системи класифікації. Може використовуватися для кластеризації клієнтів карток лояльності. ClusterІНГ
Система рекомендацій Допомагає визначити відповідні дані для розробки рекомендацій. ClusterІНГ
PCA/t-SNE Здебільшого використовується для зменшення розмірності даних. Алгоритми зменшують кількість ознак до 3 або 4 векторів з найвищими дисперсіями. Зменшення розмірів

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

Існує безліч алгоритмів машинного навчання, і вибір алгоритму зумовлений метою, а не модою.

У наведеному нижче прикладі машинного навчання завдання полягає в тому, щоб передбачити тип квітки серед трьох різновидів. Прогнози базуються на довжині та ширині пелюстки. На зображенні зображено результати десяти різних алгоритмів. Зображення у верхньому лівому куті – це сам набір даних, дані якого класифіковано за трьома категоріями: червоний, світло-блакитний та темно-синій. Деякі групи...pings видно. Наприклад, на другому зображенні все у верхньому лівому куті належить до червоної категорії, середня частина містить суміш невизначеності та світло-блакитного, а нижня відповідає темній категорії. Інші зображення показують, як різні алгоритми намагаються класифікувати ті самі дані.

Десять алгоритмів порівняно на одному й тому ж наборі даних про квіти трьох класів

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

Проблеми та обмеження машинного навчання

Основною проблемою машинного навчання є брак даних або відсутність різноманітності в наборі даних. Машина не може навчатися, якщо немає доступних даних. Набір даних, якому бракує різноманітності, також створює труднощі для машини, оскільки машині потрібна неоднорідність, щоб засвоїти змістовну інформацію. Рідко трапляється, що алгоритм може...tracінформацію, коли немає або мало варіацій. Загальне правило полягає в тому, щоб мати щонайменше 20 спостережень на групу, щоб допомогти машині навчатися; нижче цього показника страждають як оцінка, так і прогнозування.

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

Застосування машинного навчання

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

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

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

Фінансова галузь: Машинне навчання набуває все більшої популярності у фінансовій галузі. Банки використовують машинне навчання переважно для пошуку закономірностей у даних, а також для запобігання шахрайству.

Державні організації: Уряди використовують машинне навчання (ML) для управління громадською безпекою та комунальними послугами. Візьмемо, наприклад, Китай та його масштабну програму розпізнавання облич, де програми штучного інтелекту використовуються для ідентифікації порушників правил дорожнього руху.

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

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

Приклад машинного навчання в ланцюжку поставок

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

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

Так, наприклад, IBMПлатформа Watson може визначити судноping пошкодження контейнера. Watson поєднує візуальні та системні дані для track, звітувати та надавати рекомендації в режимі реального часу.

У минулому менеджери з управління запасами значною мірою покладалися на ручні методи оцінки та прогнозування запасів. Поєднання великих даних та машинного навчання дозволяє використовувати кращі методи прогнозування, при цьому повідомляється про покращення на 20-30 відсотків порівняно з традиційними інструментами прогнозування. Що стосується продажів, то це означає збільшення на 2-3 відсотки завдяки потенційному зниженню витрат на зберігання запасів.

Приклад машинного навчання в Google автомобіль

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

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

Чому машинне навчання важливе?

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

Візьмемо такий приклад: агент з роздрібної торгівлі може оцінити ціну будинку на основі особистого досвіду та знань ринку.

Машину можна навчити перетворювати знання цього експерта на характеристики. Характеристики – це всі характеристики будинку, району, економічного середовища тощо, які впливають на різницю в ціні. Експерту, ймовірно, знадобилися роки, щоб опанувати мистецтво оцінки ціни будинку, і його досвід покращується після кожного продажу.

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

Більшість великих компаній усвідомили цінність машинного навчання та зберігання даних. Глобальний інститут McKinsey оцінив річну вартість усіх аналітичних методів у 9.5–15.4 трильйонів доларів, і приблизно 40 відсотків цієї вартості — близько 3.5–5.8 трильйонів доларів на рік — припадає на передові методи штучного інтелекту, засновані на глибоких нейронних мережах, як зазначено в його Нотатки з передового досвіду ШІ дослідження

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

Поширені запитання

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

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

Перенавчання відбувається, коли модель запам'ятовує навчальний набір, включаючи його шум, а потім не виконує тест на нових даних. Перехресна перевірка, простіші моделі, регуляризація, рання зупинкаping і більше навчальних прикладів є звичайними захисними прийомами.

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

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

Python веде, за допомогою scikit-learn для класичних моделей та TensorFlow або РуTorch для нейронних мереж. R залишається сильним для статистичного моделювання та візуалізації, тоді як SQL неминучий для отримання самих навчальних даних.

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

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

Підсумуйте цей пост за допомогою: