Шрифт:
Интервал:
Закладка:
Возрождение нейронных сетей
Двухтомник Румельхарта и Маклелланда «Параллельная распределенная обработка», изданный в 1986 году, уже стал классикой. Джеффри Хинтон тоже планировал принять участие в работе над ним, однако его отвлекла машина Больцмана. Эта книга – первая, в которой описано влияние сетей и алгоритмов многослойного обучения на понимание умственных и поведенческих процессов. Было продано более 50 тысяч экземпляров, изданных MIT Press[193], – бестселлер по академическим меркам. У сетей, обученных методом обратного распространения ошибки, были скрытые блоки со свойствами, напоминающими свойства нейронов зрительной коры[194]. Кроме того, схемы распада нейронных сетей имели много общего с проблемами у человека после травмы мозга[195].
Фрэнсис Крик был членом группы параллельной распределенной обработки и посещал большинство встреч и семинаров. В спорах, насколько модели такой обработки схожи с биологическим процессом, он утверждал, что они должны рассматриваться как некий демонстрационный образец, а не как точная копия мозга. В книге, посвященной параллельной распределенной обработке, он написал главу о том, что на тот момент было известно о коре головного мозга. Я же добавил главу о том, чего мы не знали о ней. Пиши мы эти главы сегодня, обе вышли бы гораздо длиннее.
В 1980-х годах и истории успеха, о которых никто не знал. Одной из самых прибыльных компаний в сфере нейросетей стала HNC Software Inc., основанная Робертом Хехт-Нильсеном, который использовал нейронную сеть для предотвращения мошенничества с кредитными картами. Хехт-Нильсен преподавал на кафедре электрической и компьютерной инженерии Калифорнийского университета в Сан-Диего популярный курс по практическому применению нейронных сетей. Ежедневно в магазинах Южной Америки совершаются кражи с кредиток (что я лично испытал на себе), и они же являются объектами массовой киберпреступности. Мы проводим множество операций с картами, и порой сложно определить подозрительные транзакции. Например, отказ в оплате в ресторане в Рио-де-Жанейро может доставить проблем туристу. Людям в 1980-х годах приходилось принимать срочные решения. В итоге совершались мошеннические операции более чем на 150 миллиардов долларов в год. Компания HNC Software Inc. использовала алгоритмы обучения нейросетей, чтобы выявлять мошенничество с пластиковыми картами гораздо точнее, чем люди, экономя компаниям, выпускающим карты, миллиарды долларов в год. Компания HNC была приобретена в 2002 году за миллиард долларов компанией Fair Isaac and Company (FICO)[196], известной своими кредитными рейтингами.
Есть что-то волшебное в наблюдении за тем, как сеть учится, становится все лучше, делая небольшие шаги. Процесс медленный, но если хватает обучающих примеров и сеть достаточно велика, алгоритмы обучения могут найти такое представление, которое хорошо обобщается на новые входные данные. Когда процесс повторяется при случайно выбранном наборе весов, каждый раз учится другая сеть, но со схожими характеристиками. Разные сети могут решить одну и ту же проблему; это влияет на то, что мы должны ожидать, когда сумеем восстановить полный набор связей в мозге разных людей. Если у многих сетей одинаковое поведение, ключ к их пониманию – используемые мозгом алгоритмы обучения, найти которые легче.
Рис. 8.4. Невыпуклые и выпуклые функции стоимости. Графики показывают зависимость функции стоимости J (θ) от параметра θ. Выпуклая функция (справа) имеет только один – глобальный – минимум, которого можно достичь, двигаясь вниз по кривой из любого места на ней. Представьте, что вы лыжник и всегда разворачиваете свои лыжи к самому крутому спуску. Вы гарантированно доберетесь до низа. Напротив, невыпуклая функция стоимости (слева) может иметь локальные минимумы, которые являются ловушками, мешающими найти глобальный минимум при спуске. Как следствие, невыпуклые функции стоимости трудно оптимизировать. Однако этот одномерный пример вводит в заблуждение. Когда есть много параметров (обычно миллионы в нейронной сети), могут быть определенные (седловые) точки, выпуклые в одних измерениях и вогнутые в других. Когда вы находитесь в такой точке, всегда есть направление, чтобы спуститься вниз
Понимание глубокого обучения
В задачах с выпуклой оптимизацией отсутствуют локальные минимумы и гарантируется сходимость к глобальному минимуму (рис. 8.4). Эксперты по оптимизации утверждали, что, так как обучение сетей со скрытыми элементами было задачей невыпуклой оптимизации, мы попадали в локальные минимумы и впустую тратили время (рис. 8.4). Опыт показал, что они ошибались. Но почему? Теперь мы знаем, что в многомерных пространствах локальные минимумы функции стоимости редки, пока вы не дойдете до заключительных этапов обучения. На ранних стадиях почти все направления ведут под гору, и на этом пути есть седловые точки, где в одних измерениях можно пойти вверх по ошибке, а в других – вниз. Предположение, что вы застрянете в локальных минимумах, основано на решении проблем в пространстве с малым числом измерений (см. рис. 8.4), где меньше запасных выходов.
У современных моделей глубоких сетей миллионы элементов и миллиарды весов. Миллиардномерное пространство параметров – кошмар для статистики. Специалисты по статистике традиционно анализируют простые модели с несколькими характеристиками, чтобы доказать предположения, используя небольшие наборы данных. Они заверили нас, что при таком множестве параметров мы добьемся безнадежной переподгонки данных, или чрезмерного обучения, то есть сеть просто запомнит примеры и не сможет обобщить их на новые тестовые наборы. Но мы использовали методы, такие как принудительное снижение весов, если они не делали ничего полезного, что помогло бы избежать переподгонки. Сейчас, чтобы обойти эту проблему, для обучения глубоких сетей используются еще более сложные методы регуляризации.
Джеффри Хинтон изобрел отлично продуманный метод регуляризации – исключение (дропаут, dropout)[197]. Во время каждой эпохи обучения[198], когда градиент оценивается по ряду примеров и делает шаг в пространстве весов, половина единиц случайным образом вырезается из сети. А значит, в следующую эпоху обучается другая сеть. Как следствие, в каждую эпоху остается меньше параметров для обучения, и у полученной в результате сети меньше зависимостей между единицами, чем если бы в каждую эпоху обучалась одна и та же большая сеть. Дропаут уменьшает частоту ошибок в глубоких сетях на 10 процентов, что стало значительным прогрессом. В 2009 году компания Netflix провела