Верховный алгоритм. Как машинное обучение изменит наш мир - Педро Домингос Страница 11
Верховный алгоритм. Как машинное обучение изменит наш мир - Педро Домингос читать онлайн бесплатно
Ознакомительный фрагмент
Почему все это возможно? Как работают обучающиеся алгоритмы? Что им пока неподвластно и как будет выглядеть следующее поколение? Как развернется революция машинного обучения? Каких возможностей и опасностей нам следует ожидать? Именно этим вопросам посвящена эта книга. Читайте дальше!
ВЛАСТЕЛИН АЛГОРИТМОВ
Широта применения машинного обучения поразительна, но еще больше потрясает, что одни и те же алгоритмы умеют делать различные вещи. Во всех других областях для решения двух разных проблем приходится писать две разные программы. Они могут частично использовать одинаковую инфраструктуру, например те же языки программирования или ту же систему баз данных, но программа, скажем, для игры в шахматы совершенно бесполезна, если задача — обработать заявления о выдаче кредитных карт. В машинном обучении одни и те же алгоритмы могут делать и то и другое при условии, что вы дадите им соответствующие данные, на которых можно учиться. По сути, за огромным большинством приложений машинного обучения стоят всего несколько алгоритмов, с которыми мы познакомимся в следующих главах.
Посмотрите, например, на наивный байесовский классификатор — обучающийся алгоритм, который можно выразить в виде короткого уравнения. Если взять базу данных из историй болезни — симптомы, результаты анализов, наличие или отсутствие сопутствующих заболеваний, — этот алгоритм может научиться диагностировать болезнь в долю секунды, и часто лучше, чем врачи, которые много лет провели в медицинском институте. Он может победить и медицинские экспертные системы, на создание которых ушли тысячи человеко-часов. При этом тот же самый алгоритм широко используется для фильтрации спама, хотя на первый взгляд у спам-фильтров нет ничего общего с медицинской диагностикой. Другой простой обучающийся алгоритм, так называемый метод ближайших соседей, используют для массы задач — от распознавания почерка до управления манипуляторами в робототехнике и отбора книг и фильмов, которые могут понравиться клиенту. А обучающиеся алгоритмы дерева решений [19] одинаково искусно определят, можно ли выдать вам кредитную карточку, найдут границы сплайсинга в ДНК и выберут следующий ход в шахматной партии.
Одни и те же обучающиеся алгоритмы не только способны выполнять бесконечно разнообразные задачи. По сравнению с алгоритмами, на смену которым они приходят, алгоритмы машинного обучения потрясающе просты. Большинство из них можно выразить в нескольких сотнях строк кода или, может быть, нескольких тысячах, если добавить много «примочек». В то же время программы, которые они вытесняют, иногда занимают сотни тысяч или даже миллионы строк кода, а ведь один обучающийся алгоритм способен породить неограниченное количество различных программ.
Если столь малый набор обучающихся алгоритмов может так много, возникает логичный вопрос: реально ли, чтобы один такой алгоритм делал вообще все? Другими словами, сможет ли единственный алгоритм научиться всему, что можно узнать из данных? Эта проблема — очень крепкий орешек, ведь сюда входит все, что знает взрослый человек, все, что создала эволюция, весь комплекс научных знаний. По правде говоря, все важнейшие алгоритмы машинного обучения, включая метод ближайших соседей, дерево принятия решений и байесовские сети (обобщение наивного байесовского классификатора), универсальны, то есть, если дать им достаточно соответствующих данных, они смогут аппроксимировать любую функцию сколь угодно точно: на языке математики это значит «научиться чему угодно». Ловушка в том, что «достаточно данных» может означать «бесконечный объем данных». Для обучения на основе конечных данных нужны допущения, и, как мы увидим, разные обучающиеся алгоритмы делают их по-разному, поэтому хорошо подходят для решения одних задач и не очень — для других.
А если не оставлять эти допущения внутри алгоритма, а делать их явными входными данными, наряду с собственно данными, и предоставлять пользователю право выбора, какие из них подключать и, возможно, даже задавать новые? Есть ли алгоритм, который может взять любые данные и предположения и на выходе дать скрытые в них знания? Я думаю, такой алгоритм существует. Конечно, нужно как-то ограничить эти допущения, иначе можно обмануть самого себя, дав алгоритму все искомое знание или что-то схожее в виде допущений. Однако есть много способов этого избежать — от ограничения объема вводных до требования, чтобы исходные допущения не были больше, чем допущения текущего алгоритма.
В таком случае вопрос сводится к следующему: насколько слабыми могут быть допущения, чтобы все еще позволять получать из конечных данных все полезное знание? Обратите внимание на слово «полезное»: нас интересует только знание о нашем мире, а не о несуществующих мирах, поэтому изобретение универсального обучающегося алгоритма сводится к открытию глубочайших закономерностей нашей Вселенной, общих для всех явлений, а затем — к нахождению эффективного с точки зрения вычислений способа соединить их с данными. Как мы увидим, требование вычислительной эффективности не позволяет использовать в качестве таких закономерностей законы физики, однако оно не подразумевает, что универсальный алгоритм машинного обучения должен быть столь же эффективным, как более специализированные. Как часто бывает в информатике, мы готовы пожертвовать эффективностью ради универсальности.
Это также касается количества данных, необходимого, чтобы получить искомое знание: универсальному обучающемуся алгоритму в целом потребуется больше данных, чем специализированному, однако это не беда, при условии, что эти данные есть в нашем распоряжении, а чем больше становится общий объем данных, тем больше вероятность, что их для наших целей окажется достаточно.
Итак, вот центральная гипотеза этой книги:
Все знание — прошлое, настоящее и будущее — можно извлечь из данных с помощью одного универсального обучающегося алгоритма.
Я называю этот алгоритм Верховным. Если его создание оказалось бы возможным, это стало бы одним из величайших научных достижений за всю историю человечества. Более того, Верховный алгоритм — последнее, что нам придется изобрести, потому что, как только мы «спустим его с цепи», он сам изобретет вообще все, что только можно придумать. Все, что нам нужно, — дать ему достаточно подходящих данных, и он откроет соответствующее знание. Дайте ему видеопоток, и он научится видеть. Дайте библиотеку — и он научится читать. Дайте результаты физических экспериментов, и он сформулирует законы физики. Дайте данные кристаллографии ДНК, и он откроет структуру этой молекулы.
Наверное, это звучит неправдоподобно. Разве может один алгоритм получить так много разных знаний, причем таких сложных? Но на самом деле на существование Верховного алгоритма указывает много свидетельств. Давайте с ними познакомимся.
В апреле 2000 года группа нейробиологов из Массачусетского технологического института сообщила в журнале Nature о результатах удивительного эксперимента: они изменили мозг хорька, перенаправив нервы из глаз в слуховую кору (часть мозга, отвечающую за обработку звуков), а из ушей — в зрительную. Казалось бы, в результате этих манипуляций хорек должен был стать тяжелым инвалидом, но этого не произошло: слуховая кора научилась видеть, зрительная — слышать. У нормальных млекопитающих в зрительной коре есть карта сетчатки: нейроны, соединенные с близлежащими областями сетчатки, в коре расположены по соседству. У подопытных хорьков такая же карта сетчатки сформировалась в слуховой коре. Если зрительные данные направить в соматосенсорную кору, отвечающую за осязание, научится видеть и она. Такая способность есть и у других млекопитающих.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Комментарии