Шрифт:
Интервал:
Закладка:
Проще всего понять глубокое обучение в контексте конкретной задачи, например обучения умению отличать жирафов от лам. Получив некоторое количество подписанных фотографий тех и других животных, обучающийся алгоритм должен сформировать гипотезу, позволяющую ему классифицировать неподписанные изображения. С точки зрения компьютера изображение есть не более чем большая таблица с числами, каждое из которых соответствует одному из трех RGB-значений одного пикселя изображения. Итак, вместо гипотезы го, которая принимает позицию на доске и ход как входной сигнал и решает, является ли ход допустимым, нам нужна гипотеза «жираф−лама», которая брала бы таблицу чисел в качестве входа и предсказывала категорию (жираф или лама).
Возникает вопрос: что это должна быть за гипотеза? За последние 50 с лишним лет исследования компьютерного зрения было опробовано много подходов. Сегодня фаворитом является глубокая сверточная нейронная сеть. Разберем по пунктам. Она называется сетью, потому что представляет собой комплексное математическое выражение, составленное упорядоченным образом из множества меньших выражений, причем композиционная структура имеет форму сети. (Такие сети часто называют нейронными, потому что их разработчики вдохновляются сетями нейронов головного мозга.) Она называется сверточной, потому что это хитрый математический способ сказать, что структура сети повторяется согласно определенной закономерности по всему входному изображению. Наконец, она называется глубокой, потому что обычно у такой сети много слоев, к тому же это звучит впечатляюще и чуточку зловеще.
Упрощенный пример (упрощенный, потому что реальные сети могут иметь сотни слоев и миллионы узлов) представлен на рис. 23. Сеть в действительности является изображением комплексного корректируемого математического выражения. Каждый узел сети соответствует простому корректируемому выражению, как показано на рисунке. Корректировки осуществляются путем изменения веса каждого входного сигнала, о чем свидетельствует выражение «регулятор уровня». Взвешенная сумма входных сигналов затем проходит контрольную функцию, после чего достигает выходной стороны узла. Обычно контрольная функция подавляет малые значения и пропускает большие.
Сеть обучается, просто «подкручивая все ручки регулировки громкости», уменьшая ошибку прогнозирования по подписанным примерам. Все очень просто: ни магии, ни особенно хитрых алгоритмов. Выяснение того, в какую сторону крутить ручки, чтобы уменьшить ошибку, — это самый обычный случай вычисления того, как изменение каждого веса изменит ошибку в выходном слое. Это ведет к простой формуле проведения ошибки обратным ходом от выходного слоя к входному с подкручиванием ручек по пути.
Удивительно, но процесс работает! В задаче распознавания объектов на фотографиях алгоритмы глубокого обучения продемонстрировали потрясающие результаты. Первый намек на них дал конкурс 2012 г. ImageNet, участникам которого предлагались обучающие данные, состоящие из 1,2 млн подписанных изображений из 1000 категорий, на основании которых алгоритм должен был подписать категории 100 000 новых изображений[363]. Джефф Хинтон, британский специалист по вычислительной психологии, стоявший у истоков первой революции нейронных сетей в 1980-х гг., экспериментировал с очень большой глубокой сверточной сетью: 650 000 узлов и 60 млн параметров. Со своей группой в Университете Торонто он добился на ImageNet уровня ошибок в 15 % — резкое улучшение по сравнению с предыдущим рекордом — 26 %[364]. К 2015 г. десятки команд использовали методы глубокого обучения, и уровень ошибок упал до 5 %, что сопоставимо с результатами человека, потратившего несколько недель на обучение распознаванию тысяч категорий этого теста[365]. К 2017 г. уровень ошибок у машин составил 2 %.
Примерно в тот же период были достигнуты сравнимые улучшения в распознавании речи и машинном переводе на основе аналогичных методов. В совокупности это три самые важные сферы применения ИИ. Глубокое обучение сыграло важную роль и в приложениях для обучения с подкреплением, например в изучении функции ценности, с помощью которой AlphaGo оценивает желательность возможных будущих позиций, а также в освоении регуляторов сложного роботизированного поведения.
В то же время мы очень слабо понимаем, почему глубокое обучение так хорошо работает. Пожалуй, лучшее объяснение заключается в глубине глубоких сетей: поскольку они имеют много слоев, каждый слой может изучить относительно простое преобразование входного сигнала в выходной, и множество этих простых преобразований в совокупности дает сложное преобразование, необходимое для перехода от фотографии к определению категории. Кроме того, глубокие сети для распознавания визуальных образов имеют встроенную структуру, усиливающую трансляционную и масштабную инвариантность. Это означает, что собака является собакой, независимо от того, в каком месте изображения находится и насколько большой выглядит на нем.
Другим важным свойством глубоких сетей является то, что они часто находят внутренние представления, передающие элементарные признаки изображений, скажем, глаза, полосы и простые формы. Ни один из этих признаков не является встроенным. Мы знаем, что они есть, потому что можем поставить эксперимент с обученной сетью и увидеть, какие данные заставляют внутренние узлы (обычно ближние к внешнему слою) активироваться. В действительности можно запустить обучающийся алгоритм по-другому, так, чтобы он скорректировал само изображение, вызывая более сильный отклик в избранных внутренних узлах. Многократное повторение этого процесса приводит к явлению, ныне известному как глубокое сновидение, или инцепционизм, как на примере из рис. 24[366]. Инцепционизм стал самостоятельным видом искусства, в котором создаются изображения, не похожие ни на какие творения человека.