Вступ
Машинне навчання – невід’ємна частина сучасного життя. Це унікальна технологія, яка змінює не тільки світ навколо, а й саму себе. Люди навчилися адаптувати світ під себе. А машинне навчання – наступний етап еволюції, коли світ передбачає наші бажання і змінюється відповідним чином. Поки що машинне навчання далеко не зовсім: алгоритми помиляються в розрахунках і не вміють зчитувати або інтерпретувати всю інформацію. Але це лише початок шляху.
Пошукова система знає, які результати показати нам, а які сусіду чи начальнику. Amazon і Netflix підбирають книги та фільми, які будуть до душі конкретній людині, а Facebook вибудовує стрічку новин відповідно до наших інтересів. Всі ці ресурси не програмуються під кожного користувача – неможливо до кожної людини приставити персонального програміста. Вбудований алгоритм самостійно аналізує дані, що оновлюються, і вносить зміни до своїх налаштувань.
Сучасні смартфони вже стали не просто засобами зв’язку, а персональними асистентами, що самонавчаються. Вони передбачають таку дію власника та повідомляють, що зустріч, запланована на 10:00, переноситься на дві години – саме на цей час затримується рейс замовника.
Ми надсилаємо резюме і дивуємось, що роботодавець його навіть не відкрив. Все просто: спеціальний алгоритм неупереджено відсортував 10 резюме, що найбільше відповідають вимогам, описаним у вакансії. На сайті знайомств ми насамперед бачимо людей, які відповідають нашим запитам.
“Верховний алгоритм” – путівник у світі машинного навчання. Автор вважає, що кожна людина, яка живе в наш час, повинна мати хоча б базове уявлення про навчальні алгоритми, просто щоб розуміти, в якому світі вона живе. Нові алгоритми виникають щодня, але вони базуються на фундаментальних ідеях, описаних у книзі.
Педро Домінгос упевнений, що найвищою стадією розвитку машинного навчання стане створення верховного алгоритму, який зуміє поєднати всю інформацію минулого, сьогодення та майбутнього та ефективно вирішити будь-яку проблему. З його появою людство вирішить усі складні проблеми: від створення універсальних домашніх помічників до перемоги над раком.
1. Вік алгоритмів
Наше життя – переплетення алгоритмів. Вони є не лише у смартфонах та комп’ютерах, а й у автомобілях, побутовій техніці та навіть іграшках. Алгоритми управляють літаками, виробництвом, постачанням та ведуть бухгалтерію. Якщо всі ці алгоритми зненацька перестануть працювати — без перебільшення, настане кінець світу.
1.1. Базові алгоритми
Найпростіший алгоритм – включення та вимкнення. Положення “один” – транзистор включений, і “нуль” – вимкнено. Одиниця в комп’ютерних базах банку показує, чи ви перевищили ліміт по карті, а одиниця в управлінні соціального забезпечення повідомляє, що ви живі.
Інший найпростіший алгоритм – “з’єднай два біти”. Він включає три логічні міркування:
• Транзистор A вмикається, лише якщо включені транзистори B і C.
• A вмикається, коли ввімкнено або B, або C.
• A вмикається завжди, коли вимкнено B, і навпаки.
Навіть найскладніший алгоритм зводиться до трьох операцій: І, АБО та НЕ. Поєднуючи безліч простих операцій, можна складати складні ланцюжки логічних міркувань та створювати програми.
1.2. Наростаюча складність
Написати алгоритм непросто: припущення програміста можуть виявитися помилковими, і тоді йому доведеться шукати інший підхід. Крім того, алгоритм треба висловити зрозумілою комп’ютеру мовою (наприклад, Java), потім налагодити так, щоб будь-який користувач міг з ним працювати.
Для створення складних програм одні алгоритми поєднуються з іншими. Але чим складніше та об’ємніше програми, тим важче їх використовувати.
• Якщо алгоритму потрібно більше пам’яті, ніж у комп’ютера, він не є корисним, і його доводиться відкидати. • Складні алгоритми виконуються довго. • Коли алгоритм стає занадто заплутаним і об’ємним, а зв’язки між елементами занадто численними, в ньому з’являються помилки. Людині складно їх знайти та виправити у мільйонах рядків коду.
Незначна помилка в алгоритмі, і ракета вартістю мільярд доларів вибухає, місто залишається без електрики та обрушується фондовий ринок.
1.3. Машинне навчання VS програмування
Машинне навчання називають по-різному: розпізнавання патернів, статистичне моделювання, вилучення даних, передбачувана аналітика, адаптивні системи, що самоорганізуються. Неправильно ставити знак рівності між машинним навчанням та штучним інтелектом. Спочатку машинне навчання було розділом науки про штучний інтелект, проте сьогодні машинне навчання — самостійна область, більш популярна, ніж штучний інтелект. Мета штучного інтелекту – навчити машини робити те, що люди вміють робити краще, а вміння самостійно навчатися – ключова навичка, без якої комп’ютери не зможуть розвиватися.
Машинне навчання – це програмування навпаки. У будь-якого алгоритму є вхід і вихід: дані надходять до комп’ютера, алгоритм робить з ними те, що потрібно, і видає результат. Машинне навчання, маючи у своєму розпорядженні дані та бажаний результат, створює алгоритм, який перетворює одне на інше. Алгоритми, що навчаються, створюють інші алгоритми, навчені на основі наявних даних. За допомогою машинного навчання комп’ютери самі пишуть собі програми.
Алгоритми машинного навчання напрочуд прості. Зазвичай вони складаються з кількох сотень рядків коду. У той же час програми, які вони замінюють, включають сотні тисяч чи мільйони рядків.
Якщо невеликий набір нескладних алгоритмів, що навчаються, може виконати практично будь-яке завдання, виникає питання: чи є єдиний алгоритм, який сам робив би все? Його створення стане одним із найбільших наукових досягнень в історії людства. У ерховний алгоритм — останнє, що винайде людина, бо решту верховний алгоритм винайде сам.
Еволюція – це наочний приклад того, на що здатний єдиний алгоритм навчання, якщо в нього достатньо даних. Вхідні дані для еволюції – це досвід і доля всіх живих істот, що колись жили на нашій планеті.
2. Як створити верховний алгоритм
Унікальна особливість машинного навчання в тому, що одні й самі алгоритми вміють вирішувати різні завдання.
За допомогою простого алгоритму, який можна виразити у вигляді короткого рівняння, можна за частку секунди діагностувати хворобу і відфільтрувати e-mail.
В інших областях для вирішення двох проблем потрібно написати дві різні програми. Вони можуть використовувати одну мову програмування і ту ж саму систему баз даних, але програма для гри в нарди не принесе користі, якщо потрібно обробити бюлетені голосування. У машинному навчанні обидві завдання можна вирішити за допомогою тих самих алгоритмів. Один алгоритм, що навчається, здатний породити необмежену кількість різних програм. За численними програмами машинного навчання стоять лише кілька алгоритмів.
2.1. Яким буде вищий алгоритм?
Ніхто точно не знає, що буде верховним алгоритмом. Ось лише кілька припущень:
• Верховний алгоритм буде схожим на запам’ятовування. Він фіксуватиме те, що бачить, і таким чином дізнається про все на світі. Однак у світі набагато більше речей, ніж ми можемо побачити. Знання – це не просто набір фактів. Знання буває узагальненим та структурованим. А запам’ятовування не дає ані узагальненості, ані структури.
Скільки б сніжинок ви не досліджували, наступна буде іншою. Навіть якби ви десять тисяч років спостерігали за життям на Землі, ви не зміли б передбачити, що буде завтра.
«Усі ми смертні» — це твердження узагальнює ідею неминучості смерті краще ніж сім мільярдів свідчень про смерть.
• Верховний алгоритм – це мікропроцесор. Процесор у комп’ютері – єдиний алгоритм, завдання якого – виконувати інші алгоритми. Він обмежений лише обсягом пам’яті та продуктивністю. Для мікропроцесора алгоритм – це один із видів даних. Проблема в тому, що мікропроцесор сам собою нічого не робить і нічого не вчиться. Він працює на алгоритмах, якими його постачає програміст.
• Верховний алгоритм — це рівняння U(X) = 0, де певна (ймовірно, складна) функція U якоюсь (можливо, дуже складною) змінною X дорівнює нулю. До цієї форми можна звести будь-яке рівняння. X може бути будь-якими вступними даними, а U – будь-яким алгоритмом. Ця гіпотеза вказує на реальну небезпеку в машинному навчанні: створення занадто загального алгоритму, що навчається, який виявиться недостатньо змістовним, щоб приносити користь.
2.2. П’ять шкіл машинного навчання
Кращі уми планети кілька десятиліть займалися розробкою алгоритмів, що навчаються, і деякі з них навіть стверджують, що знайшли універсальний алгоритм. Це малоймовірно, оскільки у вигляді універсального очікується алгоритм, який на основі мінімальних вихідних даних навчиться розуміти відео, звук і текст не гірше за людину, зробить важливі, неможливі раніше, відкриття в біології, соціології та інших науках. Поки що жоден алгоритм машинного навчання відповідає цим стандартам. Верховний алгоритм ні вирішувати нове завдання з нуля.
Він вчитиметься читати, спираючись на те, що раніше вже навчився бачити, чути і чим вміє керувати.
Він діятиме подібно до вченого, який не навмання підбирає моделі до даних, щоб вирішити проблему, а оперує всіма знаннями в даній галузі. Верховний алгоритм не пасивно споживатиме дані. Він зможе взаємодіяти з навколишнім середовищем та активно шукати потрібну інформацію, як дитина, яка навчається у процесі дослідження навколишнього світу.
Пошук верховного алгоритму супроводжується суперництвом різних наукових шкіл машинного навчання. Кожна школа має набір фундаментальних постулатів і проблему, якій вони приділяють найбільше уваги. Рішення перебуває з допомогою алгоритму, який вважається верховним у цій школі. Ось найбільш значущі на сьогоднішній день школи машинного навчання:
• Школа символістів. Тут вважають, що інтелект – це виключно маніпулювання символами. Наприклад, розв’язання рівнянь із заміною одних виразів іншими. Символісти розуміють, що не можна вчитися з нуля: нові дані мають підкріплюватися базовими знаннями. Вони навчилися вбудовувати накопичені знання в машинне навчання та блискавично поєднувати фрагменти цих знань для вирішення нових завдань. Їх верховний алгоритм — це дедукція навпаки: вона визначає знання, що бракує для дедукції, а потім якомога більшою мірою його узагальнює.
• Школа коннекціоністів. Для них навчання це те, чим займається головний мозок. Вони вважають, що його треба відтворити шляхом зворотної інженерії. Мозок навчається, коригує силу з’єднань між нейронами, усередині нього створюються нові зв’язки, його ділянки змінюють форму. Основна проблема коннекціоністів — зрозуміти, які сполуки призводять до помилок та як їх змінити. Верховний алгоритм коннекціоністів – метод зворотного поширення помилки, який порівнює вихідні дані системи з бажаними, а потім послідовно змінює з’єднання між нейронами, щоб максимально наблизити до потрібного результату.
• Школа еволюціоністів. Вони вірять, що природний відбір є основою будь-якого навчання. Оскільки ми самі його результат, нам залишається тільки симулювати його на комп’ютері. Ключова проблема, яку вирішують еволюціоністи, — створення структури, що навчається. Вони вважають, що потрібно не просто підібрати параметри, як при зворотному розповсюдженні помилки, а створити мозок, який налаштовуватиме уточнення. Верховний алгоритм еволюціоністів – це генетичне програмування, яке з’єднує та розвиває комп’ютерні програми, як природа поєднує та розвиває живі організми.
• Школа байєсівців. Ці вчені стурбовані тим, що всі засвоєні знання надто невизначені, а навчання ґрунтується на недостовірних висновках. Вони намагаються вирішити проблему: як працювати з неповною, неякісною та суперечливою інформацією? З погляду байєсовців, єдине вирішення проблеми — це ймовірнісний висновок, а верховний алгоритм — теорема Байєса та її похідні. Теорема Байєса пояснює, як вбудовувати у наші переконання нові докази, а алгоритми ймовірнісного висновку роблять це максимально ефективно.
Теорема Байєса – вона з основних теорем елементарної теорії ймовірностей, яка визначає ймовірність події, виходячи з того, що відбулася взаємозалежна подія. Ці алгоритми називають алгоритмами імовірнісного виведення.
• Школа аналогістів. Для них ключ до навчання – у пошуку подібності між різними ситуаціями та логічним виведенням інших подібностей. Якщо у двох пацієнтів схожі симптоми, швидше за все, у них те саме захворювання. Першочергова проблема – оцінити, наскільки схожі ці випадки. Верховний алгоритм аналогістів – це метод опорних векторів, який визначає, який досвід треба запам’ятати і як його співвіднести з іншими випадками, щоб зробити наступні прогнози.
Метод опорних векторів (англ. support vector machine) – Переведення вихідних векторів в простір вищої розмірності.
Успіхи всіх шкіл безперечні. Проте справжній верховний алгоритм має вирішувати всі п’ять проблем, а чи не одну.
2.3. Спроба створення верховного алгоритму
Педро Домінгос створив комплексний алгоритм Alchemy, який поєднує можливості всіх п’яти шкіл машинного навчання. Він докладно описує процес розробки цього алгоритму і ділиться його успіхами, ось деякі з них:
• вміє знаходити множинні послідовності формул, що ведуть до доказу теореми або її заперечення, та аналізує їх, щоб обчислити ймовірність того, що теорема вірна;
• пов’язує дві змінні між собою, якщо вони обидві присутні в якійсь формулі;
• може побудувати семантичну мережу.
Незважаючи на те, що Alchemy поєднує можливості п’яти шкіл, його ще не можна вважати верховним: доки не вдається масштабувати алгоритм так, щоб обробляти великі дані, він дає збої та надто складний для масового використання. Поки що з ним можуть впоратися лише вчені.
3. Машинне навчання: перспективи застосування
Промислова революція автоматизувала ручну працю, інформаційна революція — інтелектуальна, а машинне навчання автоматизувало процес автоматизації. Без нього програмування було монотонним трудомістким заняттям, яке стримує прогрес. Розвиток машинного навчання призведе до змін в економіці, науці, політичному та суспільному житті, не меншим, ніж свого часу принесли інтернет, персональні комп’ютери, автомобілі та паровий двигун.
3.1. Машинне навчання та бізнес
Компанії зазвичай розвиваються у три етапи.
• Все робиться вручну: власник маленької крамниці знає своїх клієнтів особисто. Він замовляє товари, виходячи з переваг постійних клієнтів.
Хазяїн булочной, який сам стоїть за прилавком, знає, що в Ганни чоловік і троє дітей. Глава сім’ї їсть житній хліб, а решта віддає перевагу багету. Уся сім’я їсть круасани на сніданок у вихідні дні.
• Компанія зростає і доводиться користуватися комп’ютерами. Господар наймає програмістів, менеджерів баз даних, які створюють тисячі рядків коду, щоб автоматизувати все, що можна. В результаті компанія обслуговує багато людей, але якість падає: немає індивідуального підходу до обслуговування, а комп’ютерні програми є недостатньо гнучкими, щоб підлаштуватися під зміну смаків аудиторії.
Програми для мережі супермаркетів не можуть передбачити усі коливання попиту. Наприклад, у супермаркеті на Квітковій вулиці час від часу розкуповують увесь хліб до 10:00, бо сусідня булочна закривається на санітарну годину.
• Бізнес розширюється, програмісти не справляються, і компанія приходить до машинного навчання.
Amazon не може помістити в стандартну комп’ютерну програму уподобання всіх клієнтів, а програмісти Walmart працювали б над програмою, в яку закладені мільйони уподобань покупців, цілу вічність. Торгові гіганти запускають алгоритми, що навчаються, засновані на накопичених даних і дозволяють їм передбачати бажання клієнтів.
Таким чином, машинне навчання є ефективним інструментом масштабування бізнесу , коли люди не справляються з обсягами, а програми не можуть забезпечити індивідуальний підхід і швидко зреагувати на зміну умов.
3.2. Машинне навчання та наука
Машинне навчання сприяє прискоренню та високій точності наукових досліджень. Самонавчальний алгоритм, як і вчений, узагальнює, перевіряє, виключає та уточнює гіпотези. Однак людина може висунути та протестувати лише кілька десятків припущень протягом життя, а система машинного навчання зробить це за секунду. Активне застосування машинного навчання у науці призведе до революції — щодня відбуватимуться численні відкриття. Для розвитку науки потрібні дані.
Нотатки Тихо Браге (датський астроном епохи Відродження) про становище планет і спостереження Галілео за маятником і похилими площинами містили дані, яких виявилося достатньо, щоб сформулювати закони Ньютона.
Соціальні науки потребують більше даних, ніж точні. Невелика вибірка буде неточною. Крім того, соціальні явища залежать від багатьох факторів.
Сьогодні завдяки інтернету та комп’ютерним технологіям ми маємо доступ до великих обсягів даних.
На Facebook більше мільярда користувачів різного віку, з різних країн та соціальних верств, які добровільно розповідають про своє життя. Коннектономіка (область досліджень нервової системи людини за допомогою картографування та аналізу архітектури нейронних зв’язків.) та МРТ дозволили вченим докладно вивчати головний мозок та нервову систему. У молекулярній біології в геометричній прогресії зростають бази даних. Навіть такі стародавні науки, як фізика та астрономія, одержують нові дані з прискорювачів частинок та досліджень неба.
Великі дані власними силами не принесуть користі, якщо їх не можна перетворити на знання. Але у світі надто мало вчених, щоб упоратися з цим завданням.
Едвін Хаббл (видатний астроном і космолог XX століття) відкривав нові галактики, вивчаючи фотографічні платівки, але його досягнення не йдуть ні в яке порівняння з 500 млн небесних тіл, про які ми дізналися завдяки проекту Digital Sky Survey. Можна самим сформулювати правила, як відрізнити галактики зірок та інших предметів, але вони не будуть точними. Тому в проекті SKICAT, що займається аналізом зображень неба, застосовували алгоритм, що навчається. Отримавши плати з об’єктами, які вже віднесені до певних категорій, він аналізував, що для кожної з них, а потім застосовував ці дані до непізнаних пластин. У результаті алгоритм зумів класифікувати слабкі об’єкти, які людина не змогла б розрізнити.
Завдяки великим даним та машинному навчанню можна відкрити і зрозуміти складніші феномени. Алгоритми машинного навчання визначають місцезнаходження генів у молекулі ДНК та з’ясовують, як захворювання впливають на гени, тому більше не потрібно тестувати у лабораторії безліч ліків. Алгоритм, що навчається, спрогнозує їх ефективність і вибере для тестування найперспективніші. Алгоритми також відсіватимуть ліки, які, ймовірно, дадуть побічні ефекти.
Найскладніше у сучасній науці – зібрати всю інформацію в єдине ціле. Обсяг знань збільшується, і вчені все частіше спеціалізуються на якійсь вузькій області, тому що даних дуже багато. Вчені намагаються стежити за іншими дослідженнями, однак публікацій так багато, що вони все більше відстають і губляться в інформаційному потоці. Часом повторити експеримент простіше, ніж знайти статтю, де він описаний. Машинне навчання допомагає просівати літературу у пошуках потрібної інформації та знаходити зв’язки як усередині наукової галузі, так і між областями.
У лабораторії Манчестерського інституту біотехнологій працює робот Адам. Його завдання – визначити, які гени кодують ферменти дріжджів. Адам має модель метаболізму дріжджової клітини і базові знання про білки і гени. Він висуває гіпотези, експериментує, аналізує результати. Сьогодні наукові висновки Адама перевіряють люди, але скоро цим займуться роботи.
3.3. Машинне навчання та політика
Для будь-якого політика особливо важливо розуміти своїх виборців. Машинне навчання дозволяє «влізти в голову» кожного голосуючого та впливати на його слабкі місця.
На президентських виборах 2012 року у США Барак Обама став президентом завдяки машинному навчанню. Його суперник Мітт Ромні мав схожі погляди на економіку і був не менш харизматичний. Результат виборів залежав від штатів, що вагаються. У Ромні була класична кампанія: опитування та вибір найважливіших цільових груп. У штабі Обами головним аналітиком був Раїд Гані, експерт з машинного навчання. Він зумів провернути геніальну аналітичну операцію. Його команда об’єднала інформацію про виборців у єдину базу даних, доповнила її відомостями із соціальних мереж та інших джерел. Після цього аналітики почали прогнозувати такі фактори для кожного виборця:
• які шанси, що він/вона підтримає Обаму;
• наскільки можливо, що він/вона прийде на вибори;
• чи відгукнеться він/вона на нагадування відвідати вибори;
• чи змінить він/вона думку про вибори після розмов на певні теми.
Щовечора машина проводила 66 тисяч симуляцій виборів, за підсумками яких формувалися завдання для волонтерів: кому дзвонити, в які будинки йти, що казати.
У політиці, як і на війні, немає нічого страшнішого, ніж дивитися, як противник робить щось незрозуміле, не мати уявлення, чим це загрожує, і не розуміти, що зробити у відповідь. У штабі Ромні бачили, що суперники запускають рекламу на конкретних телеканалах у певних містах, але не розуміли чому. В результаті Обама переміг у всіх ключових штатах, крім Північної Кароліни, з великою перевагою.
Незабаром політична боротьба може перетворитися на битву алгоритмів машинного навчання.
Висновок
Машинне навчання – унікальна технологія, яка здатна змінювати саму себе. Верховний алгоритм, який об’єднає всю інформацію минулого, сьогодення та майбутнього і зможе вирішити будь-яке завдання, — найвища стадія розвитку машинного навчання.
Поєднуючи безліч простих алгоритмів, програмісти складають складні ланцюжки логічних міркувань, та був об’єднують в програми. Але чим складніше та об’ємніше програми, тим важче їх використовувати.
Машинне навчання – це програмування навпаки. Воно створює оптимальний алгоритм отримання бажаного результату з наявних даних. Алгоритми машинного навчання зазвичай складаються з кількох сотень рядків коду, а програми, які вони замінюють, — із сотень тисяч чи мільйонів рядків. Одні й самі алгоритми вміють вирішувати різні завдання.
Верховний алгоритм – останнє, що винайде людина. Все інше винаходитиме сам верховний алгоритм.
Наукові школи машинного навчання прагнуть знайти верховний алгоритм, але жоден із них не можна назвати справді універсальним. Педро Домінгос створив універсальний алгоритм Alchemy, який має можливості алгоритмів п’яти шкіл. Але доки він не може переробляти великі дані, дає збої та занадто складний для звичайних користувачів, його не можна назвати верховним.
Розвиток машинного навчання змінить усі сфери життя:
• зможе масштабувати бізнес без втрати індивідуального підходу до клієнтів і швидко реагуватиме на зміни ринку;
• прискорить наукові дослідження та зробить їх точнішими;
• допоможе політикам краще зрозуміти виборців та впливати на них.