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