April 18, 2020

Верховный алгоритм: как машинное обучение изменит наш мир

Введение

Машинное обучение — неотъемлемая часть современной жизни. Это уникальная технология, которая меняет не только мир вокруг, но и саму себя. Люди научились адаптировать мир под себя. А машинное обучение — следующий этап эволюции, когда мир предугадывает наши желания и меняется соответствующим образом. Пока машинное обучение далеко не совершенно: алгоритмы ошибаются в расчетах и не умеют считывать или интерпретировать всю информацию. Но это лишь начало пути.

Поисковая система знает, какие результаты показать нам, а какие — соседу или начальнику. 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, который обладает возможностями алгоритмов пяти школ. Но пока он не может перерабатывать большие данные, дает сбои и слишком сложен для обычных пользователей, его нельзя назвать верховным.

Развитие машинного обучения изменит все сферы жизни:

• сумеет масштабировать бизнес без потери индивидуального подхода к клиентам и будет быстро реагировать на изменения рынка;

• ускорит научные исследования и сделает их более точными;

• поможет политикам лучше понять избирателей и влиять на них.