JavaRush /Java блог /Random UA /Deep Learning, штучний інтелект та машинне навчання для ч...

Deep Learning, штучний інтелект та машинне навчання для чайників: пояснення на прикладі

Стаття з групи Random UA
Бажаєте блиснути інтелектом у компанії колег чи вразити друзів у розмові на актуальні технічні теми? Згадайте у розмові «Штучний інтелект» або «Машинне навчання» — справа в капелюсі. Deep Learning, штучний інтелект та машинне навчання для чайників: пояснення на прикладі - 1Термін "Штучний інтелект" зараз на слуху. Програмісти хочуть вивчити ІІ. Керівники хочуть впроваджувати ІІ у своїх сервісах. Але на практиці навіть професіонали не завжди розуміють, що ж таке це «ІІ». Ця стаття покликана допомогти розібратися з термінами «штучний інтелект» та «машинне навчання». А ще ви дізнаєтеся, як працює Deep Learning, найпопулярніший тип машинного навчання. І, що важливо, ця інструкція написана цілком доступною мовою. Тут не буде надто складною для розуміння математики.

Основи

Першим кроком до розуміння того, що є Deep Learning, є розуміння різниці між ключовими термінами.
Deep Learning, штучний інтелект та машинне навчання для чайників: пояснення на прикладі - 2
Картинка: Datanami

Штучний інтелект vs Машинне навчання

Штучний інтелект (ІІ або AI агнл.) - Це спроба копіювання розумового процесу людини обчислювальною машиною. Коли дослідження в області Штучного інтелекту тільки починалися, вчені намагалися копіювати поведінку людського інтелекту строго у певних умовах, тобто заточувати його під вирішення певних завдань. Наприклад, щоб машина могла грати в ігри. Вони встановлювали низку правил, яким обчислювальна машина мала слідувати. У комп'ютера був перелік можливих дій, і він приймав рішення, виходячи з правил та обмежень, заданих на етапі розробки.
Машинне навчання (МО або ML англ.) означає можливість машини навчатися, обробляючи великі набори інформації замість чітко прописаних правил.
МО дозволяє обчислювальним машинам вчитися самостійно. Цей тип навчання використовує можливості сучасної обчислювальної техніки, здатної легко обробляти величезні масиви даних.

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

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

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

Отже, Deep Learning – це один із підходів до машинного навчання. Він дозволяє прогнозувати результати за заданими вхідними даними. Для тренування ІІ можна використовувати обидва описані варіанти: контрольоване і неконтрольоване навчання. Ми розбиратимемося з тим, як працює Deep Learning на наочному прикладі: припустимо, нам потрібно розробити сервіс передбачення цін на авіаперельоти. Навчати наш алгоритм ми будемо контрольованим методом. Ми хочемо, щоб наш сервіс з передбачення цін на авіапереліт передбачав ціну за такими вхідними даними (зворотний переліт ми не враховуємо для простоти подачі матеріалу):
  • аеропорт відправлення;
  • аеропорт прибуття;
  • запланована дата вильоту;
  • авіакомпанія.
Нейронні мережі Давайте заглянемо у мозок штучного інтелекту. Як і у випадку біологічних живих істот, у нашого провісника в голові є нейрони. На малюнку вони представлені у вигляді кіл. Нейрони з'єднані між собою.
Deep Learning, штучний інтелект та машинне навчання для чайників: пояснення на прикладі - 3
На зображенні нейрони об'єднані в три групи шарів:
  • вхідний шар (input layer);
  • прихований шар 1 (hidden layer 1) та прихований шар 2 (hidden layer 2);
  • вихідний шар (output layer).
На вхідний шар заходять деякі дані. У нашому випадку ми маємо чотири нейрони на вхідному шарі: аеропорт відправлення, аеропорт прибуття, дата вильоту, авіакомпанія. Вхідний шар передає дані перший прихований шар. Приховані шари виконують математичні обчислення, оперуючи вхідними отриманими даними. Одним з основних питань при побудові нейромереж є вибір кількості прихованих шарів та кількості нейронів у кожному шарі.
Слово Deep (глибокий) у словосполученні Deep Learning якраз і вказує на наявність більш ніж одного прихованого шару.
Вихідний шар повертає нам результуючу інформацію. У нашому випадку - очікувану ціну перельоту.
Deep Learning, штучний інтелект та машинне навчання для чайників: пояснення на прикладі - 4
Найцікавіше ми поки що пропустабо: як саме відбувається обчислення очікуваної ціни? Ось тут і розпочинається магія Deep Learning. Кожному з'єднанню між нейронами надається певна вага (коефіцієнт). Ця вага визначає важливість вхідного значення. Початкові ваги встановлюються випадковим чином. Коли прогнозуєш вартість авіаперельоту, дата відправлення впливає на ціну найбільше. Тому з'єднання нейрона «дата відправлення» мають більшу вагу.
Deep Learning, штучний інтелект та машинне навчання для чайників: пояснення на прикладі - 5
До кожного нейрона прив'язана функція активації. Що являє собою ця функція без математичних знань зрозуміти важко. Тому давайте підемо на деяке спрощення: сенс функції активації у тому, щоб «стандартизувати» вихідні дані від нейрона. Після того, як набір даних пройшов через усі шари нейромережі, вона повертає результат через вихідний шар. Поки що все зрозуміло, правда?

Навчання нейромережі

Навчання нейромережі – найскладніша частина Deep Learning! Чому? Тому що вам потрібний великий обсяг даних. Тому що вам потрібні великі обчислювальні потужності. Для нашого проекту нам необхідно знайти історичні дані вартості авіаквитків. Причому для різноманітних комбінацій аеропортів вильоту та призначення, дат відправлення та різних авіаліній. Нам потрібен дуже великий обсяг даних із цінами на квитки. Ми повинні подавати на входи нашої нейромережі вхідні дані з нашого набору та перевіряти, чи збігаються вони з тими результатами, які ми вже маємо. Якщо результати, що отримуються штучним інтелектом, відрізняються від очікуваних, це означає, що він ще недостатньо натренувався. Після того, як ми пропустабо через нашу нейромережу весь обсяг даних, ми можемо побудувати функцію, яка вкаже, наскільки результати ІІ відрізняються від фактичних результатів у нашому наборі даних. Така функція називаєтьсяфункцією вартості . В ідеальному випадку, якого ми всіма силами прагнемо, значення нашої функції вартості дорівнюють нулю. Це означає, що результати вартості, підібрані нейромережею, не відрізняються від реальної вартості квитків у наборі даних.

Як ми можемо зменшити значення вартості?

Ми змінюємо ваги з'єднань між нейронами. Це можна зробити випадковим чином, проте такий підхід не є ефективним. Натомість ми будемо використовувати метод, який називається Градієнтний спуск .
Градієнтний спуск – це метод, який дозволяє нам знайти мінімум функції. У нашому випадку ми шукаємо мінімум функції вартості.
Цей алгоритм працює шляхом поступового збільшення ваги після кожної нової ітерації обробки нашого масиву даних. Обчислюючи похідну (або градієнт) функції вартості для певних наборів ваг, ми можемо побачити, у якому напрямі є мінімум.
Deep Learning, штучний інтелект та машинне навчання для чайників: пояснення на прикладі - 6
На малюнку: Initial weight – початкова вага, Global cost minimum – глобальний мінімум вартісної функції. Для мінімізації функції вартості ми маємо провести обчислення над нашим масивом даних багато разів. Ось чому вам потрібно багато обчислювальних потужностей. Оновлення ваги за допомогою методу градієнтного спуску відбувається автоматично. Ось вона – магія Deep Learning! Після того, як ми навчабо наш ІІ-сервіс передбачення цін на авіаперельоти, ми можемо сміливо використовувати його для прогнозування цін у реальності.

Підведемо підсумки…

  • Deep learning використовує нейромережі для імітації інтелекту.
  • Існує три типи нейронів у нейромережі: вхідний шар, приховані шари, вихідний шар.
  • Кожне з'єднання між нейронами має вагу, що вказує на важливість цього входу.
  • Нейрони застосовують функцію активації для стандартизації даних на виході з нейрона.
  • Для навчання нейромережі вам потрібний великий обсяг даних.
  • Якщо обробити масив даних за допомогою нейромережі, і порівняти вихідні дані з фактично наявними, ми отримаємо функцію вартості, яка показує, наскільки ІІ помиляється.
  • Після кожної обробки даних ваги між нейронами коригуються з використанням методу градієнтного спуску, для досягнення зменшення функції вартості.
Посилання на оригінал
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ