На это я отвечу: вы правы. Но разве не лучше вместо сотен вариантов многих алгоритмов пробовать сотни вариантов одного-единственного? Если выяснить, что в каждом алгоритме важно, а что нет, найти у важных элементов общее и посмотреть, как они дополняют друг друга, можно сложить из них Верховный алгоритм. Именно этим мы и займемся на страницах этой книги или хотя бы попытаемся как можно ближе к этому подойти. Наверное, у вас, дорогой читатель, по мере чтения тоже возникнут какие-то идеи на этот счет.
Насколько сложен будет Верховный алгоритм? Тысячи строк кода? Миллионы? Мы пока не знаем, но в машинном обучении бывало, что простые алгоритмы чудесным образом побеждали очень замысловатые. В известном эпизоде книги The Sciences of the Artificial[34] пионер искусственного интеллекта и нобелевский лауреат Герберт Саймон просит представить себе муравья, который упорно бежит по пляжу к себе домой. Путь муравьишки сложен не потому, что сложен он сам, а потому что вокруг полно маленьких дюн, на которые надо взбираться, и гальки, которую приходится обегать. Попытки смоделировать муравья, запрограммировав все возможные пути, будут обречены на провал. Аналогично самое сложное в машинном обучении — это данные. Все, что должен сделать Верховный алгоритм, — усвоить их, поэтому не надо удивляться, если сам он окажется несложным. Человеческая рука проста: четыре пальца вместе плюс отведенный в сторону большой. И несмотря на это, рука может делать и использовать бесконечное разнообразие инструментов. Верховный алгоритм по отношению к алгоритмам — то же, что рука по отношению к карандашам, мечам, отверткам и вилкам.
Как заметил Исайя Берлин[35], некоторые мыслители подобны лисам и знают много разного, а некоторые — ежам, которые знают что-то одно, но важное. То же самое с обучающимися алгоритмами. Я надеюсь, что Верховный алгоритм окажется ежом, но, даже если это лиса, ее все равно надо поскорее поймать. Самая большая проблема сегодняшних обучающихся алгоритмов не в том, что их много, а в том, что они, хоть и полезны, не делают всего, что мы от них хотим. И прежде чем начать открывать глубокие истины при помощи машинного обучения, надо как следует разобраться в самом машинном обучении.
Что на кону?
Предположим, человеку поставили диагноз «рак» и традиционные методы лечения — хирургия, химио- и лучевая терапия — не принесли желаемого эффекта. Дальнейший ход лечения станет для него вопросом жизни и смерти. Первый шаг — это секвенировать геном опухоли. Есть компании, например Foundation Medicine в Кембридже, которые этим занимаются: отправьте им образец опухоли, и они пришлют вам список мутаций в ее геноме, достоверно связанных с раком. Без этого не обойтись, потому что каждая раковая опухоль индивидуальна и нет лекарства, которое поможет во всех случаях. Распространяясь по организму человека, рак мутирует, и вследствие естественного отбора, скорее всего, будут выживать и размножаться клетки, наиболее стойкие к назначенным лекарствам. Возможно, нужный препарат помогает только пяти процентам пациентов, или необходимо сочетание лекарств, которое пока вообще не применяли. Может быть, придется разработать совершенно новое лекарство конкретно для данного случая или комплекс препаратов, чтобы подавить способность опухоли к адаптации. С другой стороны, у лекарств могут иметься побочные эффекты, смертельно опасные для данного пациента, но безвредные для большинства других людей. Ни один врач не может уследить за всей информацией, необходимой для выработки оптимальной терапии с учетом истории болезни и генома опухоли. Это идеальная работа для машинного обучения, и тем не менее на сегодняшний день обучающиеся алгоритмы не могут с ней справиться. У каждого из них есть какие-то из необходимых способностей, но не хватает других. У Верховного алгоритма будет все. Если применить его к большому объему данных о пациентах и лекарствах, а также информации, почерпнутой из литературы по биологии и медицине, мы сможем победить рак.
Универсальный алгоритм машинного обучения остро необходим во многих других областях и ситуациях — от невероятно важных до самых обыденных. Представьте себе, например, идеальную рекомендующую систему, которая посоветует именно те книги, фильмы и гаджеты, которые вы сами бы выбрали, будь у вас время проверить все варианты. Алгоритм Amazon очень далек от идеала. Отчасти дело в том, что у него просто недостаточно данных: в целом он знает только, какие предметы вы раньше покупали на этом сайте. Но если разойтись и предоставить ему полный доступ к потоку сознания человека начиная с рождения, он не будет знать, что с этим делать. Как преобразовать в связную картину мириады решений, калейдоскоп жизни? Как понять, кто этот человек и чего он хочет? Это выходит далеко за пределы кругозора сегодняшних обучающихся алгоритмов, но, если дать все эти данные Верховному алгоритму, он поймет вас примерно так же, как лучший друг.
В один прекрасный день в каждом доме появится робот. Он будет мыть посуду, заправлять кровать, даже присматривать за детьми, пока родители на работе. Как скоро это произойдет — зависит от того, как тяжело окажется отыскать Верховный алгоритм. Если лучшее, на что мы способны, — соединить много разных алгоритмов, каждый из которых решает лишь малую долю проблем искусственного интеллекта, вскоре мы наткнемся на стену сложности. Такой фрагментарный подход сработал в Jeopardy!, но лишь немногие верят, что домашние роботы будущего будут внуками компьютера Watson, победителя этой игры. Дело не в том, что Верховный алгоритм одной левой решит проблему искусственного интеллекта: нам по-прежнему понадобятся чудеса инженерии, и Watson в этом отношении — хороший пример. Однако здесь действует правило 80/20: Верховный алгоритм даст 80 процентов решения, и останется приложить 20 процентов труда, поэтому, несомненно, с него и надо начинать.
Влияние Верховного алгоритма на технологию не ограничится искусственным интеллектом. Универсальный обучающийся алгоритм — невероятно мощное оружие против Монстра Сложности. Нам поддадутся системы, которые сегодня слишком трудно построить. Компьютеры начнут делать больше и требовать меньше помощи с нашей стороны. Они не станут снова и снова повторять те же ошибки, а будут учиться на практике, как люди. Иногда, как старые дворецкие, они даже смогут угадывать, чего вы хотите, еще до того, как вы это выразите. Если компьютеры делают нас умнее, компьютеры с установленным Верховным алгоритмом заставят нас почувствовать себя настоящими гениями. Технологический прогресс заметно ускорится, причем не только в компьютерных науках, но и во многих других областях. Это, в свою очередь, будет способствовать экономическому росту и уменьшит нищету. С Верховным алгоритмом, помогающим синтезировать и распределять знания, интеллект организаций будет больше, а не меньше суммы интеллектов их подразделений. Типовые задачи станут автоматизированы, а люди найдут себе занятия поинтереснее. Все виды деятельности будут выполняться качественнее, чем сейчас: лучше обученными людьми, компьютерами или и теми и другими. Падения на рынках ценных бумаг будут происходить реже и без тяжелых последствий. Благодаря сети сенсоров, которые опутают нашу планету, и обученным моделям, которые станут моментально обрабатывать их данные, прогресс больше не будет идти вперед на ощупь: здоровье планеты пойдет на поправку. Модели начнут договариваться с миром от вашего имени, играя в замысловатые игры с моделями людей и организаций. А в результате всех этих улучшений мы окажемся счастливее, продуктивнее и долговечнее.
Поскольку потенциальная отдача так велика, нам стоит попробовать изобрести Верховный алгоритм, даже если шансы на успех невысоки. И даже если это займет много времени, поиски могут принести нам непосредственную пользу. Например, мы будем гораздо лучше понимать машинное обучение благодаря единому подходу к этой проблеме. Сегодня очень много деловых решений принимается на основе слабого понимания аналитики, но все может быть иначе. Чтобы пользоваться технологиями, не обязательно разбираться в механизмах их действия, однако нужно иметь хорошую концептуальную модель: это примерно то же, что уметь настроиться на радиостанцию и регулировать громкость. Сегодня люди, которые не занимаются машинным обучением, не имеют даже общего представления о том, что делают обучающиеся алгоритмы. Алгоритмы, которыми мы управляем, пользуясь Google, Facebook или современными аналитическими пакетами, немного похожи на загадочный черный лимузин с тонированными стеклами, который однажды вечером подъезжает к нашей двери. Стоит ли в него садиться? Куда он нас повезет? Настало время занять место водителя. Знание допущений, которые делают разные алгоритмы машинного обучения, поможет подобрать правильные инструменты для решения конкретной задачи, а не хвататься за первые попавшиеся и потом годами с ними мучиться, болезненно пытаясь открыть то, что надо было знать с самого начала. Понимая, что именно оптимизирует обучающийся алгоритм, можно гарантировать, что он будет оптимизировать важные вещи, а не что попадется под руку. Наверное, самое главное вот что: если знать, как именно пришел к выводам данный обучающийся алгоритм, легче понять, что делать с полученной информацией — чему верить, от чего отказываться, как получить в следующий раз лучший результат. А с универсальным обучающимся алгоритмом, который мы разработаем в этой книге в виде концептуальной модели, все это можно будет сделать без лишнего напряжения. Машинное обучение в своей основе — простая вещь. Надо всего лишь снять один за другим слои математики и научного жаргона и добраться до самой маленькой матрешки.