Що таке машинне навчання і як воно працює
Єдиного визначення для machine learning (машинного навчання) поки що немає. Але більшість дослідників формулюють його приблизно так: Машинне навчання - це наука про те, як змусити ІІ вчитися і діяти як людина, а також зробити так, щоб вона сама постійно покращувала своє навчання та здібності на основі наданих нами даних про реальний світ.
Ось як визначають машинне навчання представники провідних ІТ-компаній та дослідницьких центрів: Nvidia: «Це практика використання алгоритмів для аналізу даних, вивчення їх та подальшого визначення чи передбачення чогось». Університет Стенфорда: Це наука про те, як змусити комп'ютери працювати без явного програмування. McKinsey & Co: «Машинне навчання ґрунтується на алгоритмах, які можуть навчатися на даних, не покладаючись на програмування на основі базових правил». Вашингтонський університет: «Алгоритми машинного навчання можуть самі зрозуміти, як виконувати важливі завдання, узагальнюючи приклади, які вони мають». Університет Карнегі Меллон: «Сфера машинного навчання намагається відповісти на запитання: «Як ми можемо створювати комп'ютерні системи, які автоматично покращуються в міру накопичення досвіду та які фундаментальні закони, які керують усіма процесами навчання?»
Історія машинного навчання
- Перший комп'ютер із прототипом ІІ з'явився 1946 року — у рамках ЕНІАК, надсекретного проекту армії США. Його можна було використовувати для електронних обчислень та багатьох інших завдань;
- У 1950 році з'явився тест Алана Т'юрінга для оцінки інтелекту комп'ютера. З його допомогою вчений пропонував визначити, чи здатний комп'ютер мислити як людина;
- У 1958 році американський нейрофізіолог Френк Розенблатт вигадав Персептрон - першу штучну нейронну мережу, а також перший нейрокомп'ютер "Марк-1";
- 1959 року американський дослідник ІІ Марвін Мінський створив SNARC — першу обчислювальну машину на базі нейромережі;
- У тому ж році його колега Артур Самуель винайшов першу програму з гри в шашки, яка навчалася самостійно.
- У 1967 році було створено перший метричний алгоритм для класифікації даних, який дозволяв ІІ використовувати шаблони для розпізнавання та навчання;
- У 1997 році програма Deep Blue вперше обіграла чемпіона світу з шахів Гаррі Каспарова;
- У 2006 році дослідник нейромереж Джеффрі Хінтон запровадив термін «глибоке навчання» (deep learning);
- У 2011 році було засновано Google Brain - підрозділ Google, який займається проектами в області ІІ;
- У 2012 році в рамках іншого підрозділу Google X Lab розробили нейромережевий алгоритм для розпізнавання котів на фото і відео.
- У 2014 році Facebook (з 21 березня 2022 року соцмережа заборонена в Росії рішенням суду) розробила нейромережу DeepFace для розпізнавання облич на фото та відео. Її алгоритм працює з точністю 97%;
- У 2015 році Amazon запустила Amazon Machine Learning — платформу машинного навчання, через кілька місяців аналогічна з'явилася і у Microsoft: Distributed Learning Machine Toolkit.
Як пов'язані машинне та глибоке навчання, ІІ та нейромережі
Нейросети - Один з видів машинного навчання.
Глибоке навчання - Це один з видів архітектури нейромереж.
Так виглядають взаємозв'язки машинного навчання з іншими видами навчання у рамках технологій ІІ
Глибоке навчання також включає дослідження та розробку алгоритмів для машинного навчання. Зокрема навчання правильному поданню даних на декількох рівнях абстракції. Системи глибокого навчання за останні десять років досягли особливих успіхів у таких галузях як виявлення та розпізнавання об'єктів, перетворення тексту на мовлення, пошук інформації.
Які завдання розв'язує машинне навчання?
За допомогою машинного навчання ІІ може аналізувати дані, запам'ятовувати інформацію, будувати прогнози, відтворювати готові моделі та вибирати найбільш підходящий варіант із запропонованих.
Особливо корисні такі системи там, де необхідно виконувати величезні обсяги обчислень: наприклад, банківський скоринг (розрахунок кредитного рейтингу), аналітика в галузі маркетингових та статистичних досліджень, бізнес-планування, демографічні дослідження, інвестиції, пошук фейкових новин та шахрайських сайтів.
У Леруа Мерлен використовують Big Data та Machine Learning, щоб знаходити залишки товару на складах.
У маркетингу та електронній комерції машинне навчання допомагає налаштувати сервіси та програми так, щоб вони видавали персональні рекомендації.
Стрімінговий сервіс Spotify за допомогою машинного навчання складає для кожного користувача персональні вибірки треків на основі того, яку музику він слухає.
Сьогодні ключові дослідження сфокусовані на розробці машинного навчання з ефективним використанням даних, тобто систем глибокого навчання, які можуть навчатися більш ефективно, з тією ж продуктивністю, за менший час та з меншими обсягами даних. Такі системи потрібні в персоналізованому охороні здоров'я, навчанні роботів з підкріпленням, аналізі емоцій.
Китайський виробник «розумних» пилососів Ecovacs Robotics навчив свої пилососи розпізнавати шкарпетки, дроти та інші сторонні предмети на підлозі за допомогою багатьох фотографій та машинного навчання.
"Розумна" камера на базі мікрокомп'ютера Raspberry Pi 3B+ за допомогою фреймворку TensorFlow Light навчилася розпізнавати посмішку і робити знімок рівно в цей момент, а також виконувати голосові команди.
У сфері інвестицій алгоритми на базі машинного навчання аналізують ринок, відстежують новини та підбирають активи, які найвигідніше купувати саме зараз. При цьому за допомогою предикативної аналітики система може передбачити, як змінюватиметься вартість тих чи інших акцій за конкретний період та коригує свої дані після кожної важливої події у галузі.
Згідно з дослідженням BarclayHedge, понад 50% хедж-фондів використовують ІІ та машинне навчання для прийняття інвестиційних рішень, а дві третини – для генерації торгових ідей та оптимізації портфелів.
Зрештою, машинне навчання сприяє справжнім проривам у науці.
Нейросітка AlphaFold від DeepMind в 2020 році розшифрувала механізм згортання білка. Над цим завданням вчені-біологи билися понад 50 років.
Як влаштовано машинне навчання
За словами Дмитра Вєтрова, процес машинного навчання виглядає так.
Є велика кількість однотипних завдань, у яких відомі умова та правильна відповідь або одна з можливих відповідей. Наприклад, машинний переклад, де умова – фраза однією мовою, а правильна відповідь – її переклад іншою мовою.
Модель машинного навчання, наприклад, глибинна нейронна мережа, працює за принципом «чорної скриньки», який приймає на вхід умову завдання, а на виході видає довільну відповідь. Наприклад, будь-який текст другою мовою.
«чорна скринька» має додаткові параметри, які впливають на те, як оброблятиметься вхідний сигнал. Процес навчання нейромережі полягає у пошуку таких значень параметрів, при яких вона видаватиме відповідь, максимально близька до правильного. Коли ми налаштуємо параметри потрібним чином, нейромережа зможе правильно (або максимально близько до цього) вирішувати й інші завдання того самого типу навіть якщо ніколи не знала відповідей до них.
- Дані - Приклади рішень і все, що може допомогти в процесі навчання: статистика, приклади текстів, розрахунки, показники, історичні події. Дані збирають роками і об'єднують у величезні масиви - датасети, які є у всіх ІТ-корпорацій. Прикладом збору є капча, яка просить вас вибрати всі фото з автомобілями та запам'ятовує правильні відповіді;
- Ознаки - Вони ж властивості чи характеристики. Це те, на що має звернути увагу машина у процесі навчання. Наприклад, ціна акцій, зображення тварини, частотність слів чи стать людини. Чим менше ознак і чим чіткіше вони позначені та оформлені, тим простіше вчитися. Однак для складних завдань сучасним моделям доводиться враховувати десятки мільйонів параметрів, що визначають, як входи перетворюються на виходи;
- Алгоритми - Це спосіб вирішення завдання.Для однієї і тієї ж задачі їх може бути безліч і важливо вибрати найточніший і найефективніший.
Основні види машинного навчання
1. Класичне навчання
Це найпростіші алгоритми, які є прямими спадкоємцями обчислювальних машин 1950-х. Вони спочатку вирішували формальні завдання — такі, як пошук закономірностей у розрахунках та обчислення траєкторії об'єктів. Сьогодні алгоритми з урахуванням класичного навчання — найпоширеніші. Саме вони формують блок рекомендацій на багатьох платформах.
Але класичне навчання теж буває різним:
Навчання з учителем — коли машина має якогось вчителя, який знає, яка відповідь правильна. Це означає, що вихідні дані вже розмічені (відсортовані) належним чином, і машині залишається лише визначити об'єкт з необхідною ознакою або визначити результат.
Такі моделі використовують у спам-фільтрах, розпізнаванні мов та рукописного тексту, виявленні шахрайських операцій, розрахунку фінансових показників, скорингу при видачі кредиту. У медичній діагностиці класифікація допомагає виявляти аномалії, тобто можливі ознаки захворювань на знімках пацієнтів.
Навчання без вчителя — коли машина сама має знайти серед хаотичних даних правильне рішення та відсортувати об'єкти за невідомими ознаками. Наприклад, визначити де на фото собака.
Ця модель виникла в 1990-х роках і практично використовується набагато рідше. Її застосовують для даних, які просто неможливо розмітити через їх колосальний обсяг. Такі алгоритми застосовують для ризик-менеджменту, стиснення зображень, об'єднання близьких точок на карті, сегментації ринку, прогнозу акцій та розпродажів у ретейлі, мерчендайзингу.За таким принципом працює алгоритм iPhoto, який знаходить на фотографіях особи (не знаючи, чиї вони) та об'єднує їх у альбоми.
2. Навчання із підкріпленням
Це складніший вид навчання, де ІІ потрібно не просто аналізувати дані, а діяти самостійно в реальному середовищі — чи то вулиця, чи будинок, чи відеогра. Завдання робота - звести помилки до мінімуму, за що він отримує можливість продовжувати роботу без перешкод та збоїв.
Навчання із підкріпленням інженери використовують для безпілотників, роботів-пилососів, торгівлі на фондовому ринку, управління ресурсами компанії. Саме так алгоритму AlphaGo вдалося обіграти чемпіона з гри Го: прорахувати всі можливі комбінації, як у шахах, тут було неможливо.
3. Ансамблі
Це групи алгоритмів, які використовують відразу кілька методів машинного навчання та виправляють помилки один одного. Їх одержують трьома способами:
- Стекінг - коли різні алгоритми навчають окремо, а потім передають їх результати на вхід останньому, який і приймає рішення;
- Беггинг - коли один алгоритм багаторазово навчають на випадкових вибірках, а потім усереднюють відповіді;
- Бустинг — коли алгоритми навчають послідовно, у своїй кожен звертає особливу увагу помилки попереднього.
Ансамблі працюють у пошукових системах, комп'ютерному зорі, розпізнаванні осіб та інших об'єктів.
4. Нейросети та глибоке навчання
Найскладніший рівень навчання ІІ. Нейросети моделюють роботу людського мозку, що складається з нейронів, які постійно формують між собою нові зв'язки. Дуже умовно можна визначити їх як мережу з безліччю входів та одним виходом. Нейрони утворюють шари, якими послідовно проходить сигнал.Усе це пов'язано нейронними зв'язками — каналами, якими передаються дані. Кожен канал має свою «вагу» — параметр, який впливає на дані, які він передає.
ІІ збирає дані з усіх входів, оцінюючи їхню вагу за заданими параметрами, потім виконує потрібну дію та видає результат. Спочатку він виходить випадковим, але потім через безліч циклів стає дедалі точнішим. Добре навчена нейромережа працює як звичайний алгоритм або точніше.
Справжнім проривом у цій галузі стало глибоке навчання, що навчає нейромережі на кількох рівнях абстракцій
Тут використовують дві основні архітектури:
- Згорткові нейромережі першими навчилися розпізнавати нерозмічені зображення найскладніші об'єкти для ІІ. Для цього вони розбивають їх на блоки, визначають у кожному домінуючі лінії та порівнюють з іншими зображеннями потрібного об'єкта;
- Рекурентні нейромережі відповідають за розпізнавання тексту та мови. Вони виявляють у яких послідовності і пов'язують кожну одиницю — букву чи звук — з іншими.
Нейросети з глибоким навчанням вимагають великих масивів даних та технічних ресурсів. Саме вони лежать в основі машинного перекладу, чат-ботів та голосових помічників, створюють музику та дипфейки, обробляють фото та відео.
Проблеми машинного навчання
- Для того щоб ефективно навчати нейромережі та будь-які складні алгоритми, потрібні величезні масиви даних та технічні ресурси: сервери, спеціальні приміщення для них, високошвидкісний інтернет без збоїв, багато електроенергії. На отримання потрібних даних витрачаються роки роботи та мільйони доларів. Такі витрати може дозволити собі лише велика ІТ-корпорація. Відкритих датасетів зовсім небагато, деякі можна купити, але коштують вони дуже дорого;
- Зі зростанням потужностей для збирання та обробки датасетів зростають і шкідливі викиди, які виробляють найбільші датацентри;
- Дані потрібно не тільки зібрати, але й розмітити – так, щоб машина точно визначила, де якийсь об'єкт і які у нього ознаки. Це стосується числових даних, текстів, зображень. "Яндекса" є "Яндекс.Толока" - сервіс, де нерозмічені дані вручну обробляють мільйони фрілансерів. Таке теж може собі дозволити далеко не кожен. розробник;
- Навіть якщо даних багато і вони регулярно оновлюються, у процесі навчання може з'ясуватися, що алгоритм не працює. ;
- Незважаючи на всі прориви в глибокому навчанні нейромереж, ІІ поки що не може створювати щось абсолютно нове, виходити за рамки запропонованих умов і перевершити закладені в нього здібності.
Перспективи машинного навчання: чи ІІ не почне думати за нас?
Питання про те, чи не зробить машинне навчання ІІ розумнішою за людину, спочатку не зовсім коректне. Справа в тому, що в природі немає універсальної ієрархії в плані інтелекту. тисячі схованок із запасами, що не під силу навіть дуже розумній людині. восьминогів кожне щупальце здатне мислити та діяти самостійно.
Так само і з ІІ: він уже перевершує нас у всьому, що стосується складних обчислень, але, як і раніше, не здатний сам ставити собі нові завдання і вирішувати їх, підбираючи потрібні дані та умови. Це обмеження останніми роками намагаються подолати в рамках сильного ІІ, але поки що безуспішно. Надію на вирішення цієї проблеми вселяють квантові комп'ютери, які виходять за межі звичайних обчислень.
Зате ми в найближчому майбутньому зможемо помітно розширити свої можливості за допомогою ІІ, передаючи йому рутинні та затратні операції, спілкуючись та керуючи технікою за допомогою нейроінтерфейсів.
Що ще почитати про машинне навчання
- Стаття про машинне навчання Педро Домінгоса, почесного професора комп'ютерних наук та інженерії Вашингтонського університету (англ.)
- Відеолекції про машинне навчання від професора канадського Університету МакГілла (англ.).
- Стаття в AI Magazine про виклики та можливості машинного навчання від провідних дослідників (англ.)
- Дослідники та розробники Facebook відповідають на найактуальніші питання про машинне навчання (англ.)
- Стаття про перспективи та особливості репрезентативного навчання (англ.)
- Цикл статей у рамках проекту Machine Learning for Humans (англ.)
- Стаття про п'ять найактуальніших алгоритмів із кластеризацією (спосіб сортування даних у рамках класичного навчання) (англ.)
- Лекції "Яндекса" про те, як працюють рекомендаційні сервіси.
- Хронологія розвитку машинного навчання (англ.)
- Як виглядають різновиди нейромереж і чим вони відрізняються
Введення в машинне навчання
Навчання - це універсальна навичка, яка властива будь-якому живому організму на планеті.
Навчання – це набуття знань та навичок за допомогою досвіду чи навчання. Це те, що нас об'єднує та водночас робить унікальними.Це те, що розвивається з часом.
Що, якщо я скажу: "Машини теж можуть вчитися"?
Ми живемо у дивовижний час розвитку роботизації, штучного інтелекту та машинного навчання. Машинне навчання, як і раніше, досить нова концепція. Ми можемо навчити машини, як навчатися, а деякі машини можуть вчитися самостійно. Магія!
Ця стаття познайомить вас із основами машинного навчання.
Найголовніше, що ви повинні зрозуміти: машини можуть передбачати майбутнє, ґрунтуючись на минулому.
Що таке машинне навчання
Машинне навчання передбачає, що комп'ютер розпізнає шаблони на прикладах, а чи не програмується з допомогою певних правил. Ці шаблони містяться у даних.
Машинне навчання - створення алгоритмів (набору правил), які навчаються на складних функціях (шаблонах) з даних та робить прогнози.
Це відбувається в 3 етапи:
1) Аналіз даних
2) Знаходження шаблонів
3) Передбачення на основі шаблону
Застосування машинного навчання
Короткий огляд, де можна використовувати машинне навчання
- Охорона здоров'я: прогнозування діагнозів пацієнтів для лікарів
- Соціальна мережа: прогнозування сумісності на сайті знайомств
- Фінанси: прогнозування шахрайської діяльності за кредитними картками
- Електронна комерція: прогнозування відтоку клієнтів
- Біологія: пошук закономірностей генних мутацій, які можуть спричинити рак
Не хочу вас заплутати, тому просто скажу, що машини навчаються, знаходячи схожі дані у великих масивах даних. Чим більше даних передається машині, тим розумнішою вона стає.
Не всі дані однакові. Уявіть, що ви пірат і ваша мета знайти клад десь на острові. Для того щоб це зробити, знадобиться велика кількість інформації.Як і дані, ця інформація може вести вас у правильному напрямку, або в неправильному. Чим точніше отримана інформація/дані, тим більше шансів на успіх. Тому важливо враховувати тип даних, за допомогою яких проходитиме навчання.
Проте після достатнього обсягу даних машина може робити прогнози. Машини можуть передбачати майбутнє доти, поки майбутнє не сильно відрізнятиметься від минулого.
Типи машинного навчання
Існує три основні категорії машинного навчання:
Supervised learning (навчання з учителем): Машина навчається за вибраними даними Зазвичай дані відзначаються людьми.
Unsupervised learning (навчання без вчителя): Машина навчається не за вибраними даними Сенс у тому, що серед даних немає «правильної» відповіді, машина має знайти залежність між об'єктами.
Reinforcement learning (навчання з підкріпленням): Машина навчається через систему на основі винагороди
1. Supervised learning (навчання з учителем)
Навчання з учителем - найпоширеніший і вивчений тип машинного навчання, адже легше навчити машину з вибраними даними. Залежно від того, що ви хочете передбачити, навчання з учителем може використовуватися для вирішення двох типів завдань: завдання регресії та класифікації.
Завдання регресії:
Якщо ви хочете спрогнозувати безперервні значення, наприклад спробувати спрогнозувати вартість будинку або погоду на вулиці в градусах, використовуйте регресію. Цей тип завдань немає певного обмеження значень, оскільки значення може бути будь-яким числом без обмежень.
Завдання класифікації:
Якщо потрібно спрогнозувати дискретні значення, наприклад, класифікувати будь-що за категоріями, використовуйте класифікацію.Питання «Чи буде людина робити покупку», має відповідь, яка потрапляє у дві конкретні категорії: так чи ні. Число допустимих відповідей звісно.
2. Unsupervised learning (навчання без вчителя)
Оскільки машини не мають зазначених даних для навчання, мета машинного навчання без вчителя — виявлення закономірностей у даних та їх угруповання.
Навчання без вчителя вирішує 2 типи завдань: завдання кластеризації та завдання пошуку асоціативних правил.
Завдання кластеризації:
Навчання без вчителя вирішує завдання кластеризації, знаходячи схожість у даних. Якщо існує загальний кластер або група, алгоритм класифікуватиме їх у певній формі. Прикладом цього може бути угруповання клієнтів на основі їхніх попередніх покупок.
Завдання пошуку асоціативних правил:
Навчання без вчителя вирішує це завдання, намагаючись зрозуміти правила та зміст різних груп. Яскравий приклад – пошук взаємозв'язку між покупками клієнтів. Магазини можуть дізнаватись, які продукти були придбані разом та використовувати цю інформацію для продажу. Одне дослідження показало, що є тісний взаємозв'язок між покупкою пива та підгузків. З'ясувалося, що чоловіки, які вийшли купити підгузки для своїх дітей, також схильні купувати собі пиво.
3. Reinforcement learning (навчання з підкріпленням)
Цей тип машинного навчання потребує використання системи винагороди/штрафу. Мета - винагородити машину, коли вона вчиться правильно, і покарати машину, коли вона вчиться неправильно.
Приклади навчання із підкріпленням
- Навчання машини, як навчитися грати (Chess, Go)
- Super Mario, як вчитися і грати
Ми розповіли про основи машинного навчання, тема цікава та перспективна, тому не шкодуйте часу, щоб вивчити докладніше.