Шрифт:
Интервал:
Закладка:
Глубоким обучением называют методы тренировки “глубоких нейронных сетей”, то есть нейронных сетей, имеющих более одного скрытого слоя. Как вы помните, скрытыми называются слои нейронной сети, расположенные между входным и выходным слоями. Глубина сети определяется количеством скрытых слоев: “мелкая” сеть – такая, как мы видели в главе 2, – имеет всего один скрытый слой, а “глубокая” – более одного. Важно подчеркнуть, что слово “глубокий” в термине “глубокое обучение” не описывает сложность того, чему учится система, а относится только к глубине слоев тренируемой сети.
Исследования глубоких нейронных сетей продолжаются несколько десятилетий. Революционными их делает недавний феноменальный успех при выполнении многих задач ИИ. Исследователи заметили, что структура самых успешных глубоких сетей копирует части зрительной системы мозга. “Традиционные” многослойные нейронные сети, описанные в главе 2, создавались с оглядкой на мозг, но по структуре совсем на него не походили. Нейронные сети, господствующие в сфере глубокого обучения, напротив, непосредственно смоделированы на основе открытий нейробиологии.
Примерно в то же время, когда Минский и Пейперт выступили с идеей “Летнего проекта по зрению”, два нейробиолога вели растянувшееся на несколько десятилетий исследование, которое в итоге радикальным образом изменило наши представления о зрении – и особенно о распознавании объектов – в мозге. Позже Дэвид Хьюбел и Торстен Визель получили Нобелевскую премию за открытие иерархической организации зрительных систем кошек и приматов (включая человека) и за объяснение, каким образом зрительная система преобразует свет, падающий на сетчатку, в информацию об окружающей обстановке.
Рис. 8. Путь зрительного входного сигнала от глаз к зрительной коре
Открытия Хьюбела и Визеля вдохновили японского инженера Кунихико Фукусиму, который в 1970-х годах создал одну из первых глубоких нейронных сетей, названную когнитроном, а затем разработал его новую вариацию, неокогнитрон. В своих статьях[100] Фукусима сообщал об успехе в тренировке неокогнитрона для распознавания рукописных цифр (таких, как показаны на рисунке в главе 1), но методы обучения, которые он использовал, судя по всему, не подходили для более сложных зрительных задач. Тем не менее неокогнитрон стал отправной точкой для создания более поздних вариаций глубоких нейронных сетей, включая самые важные и широко распространенные сегодня – сверточные нейронные сети (СНС).
Сверточные нейронные сети стали главной движущей силой сегодняшней революции глубокого обучения в компьютерном зрении и других сферах. Хотя их часто называют следующим крупным прорывом ИИ, на самом деле они не слишком новы: впервые их еще в 1980-х годах предложил французский информатик Ян Лекун, вдохновленный неокогнитроном Фукусимы.
Я опишу принцип работы сверточных нейронных сетей, потому что, имея представление о них, можно понять, на каком этапе развития находится компьютерное зрение – и многие другие сферы ИИ – и каковы его ограничения.
Как и неокогнитрон, СНС сконструированы с учетом открытий Хьюбела и Визеля об устройстве зрительной системы мозга, сделанных в 1950-х и 1960-х годах. Когда ваши глаза фокусируются на сцене, они получают световые волны различной длины, которые отражаются от объектов и поверхностей сцены. Попадая в глаза, свет активирует клетки на каждой сетчатке, которая, по сути, представляет собой нейронную сеть в задней части глаза. Эти нейроны с помощью зрительных нервов сообщают о своей активации мозгу и в итоге активируют нейроны зрительной коры, которая находится в затылочной части головы (рис. 8). Условно говоря, зрительная кора состоит из иерархически организованных слоев нейронов, напоминающих ярусы свадебного торта, и нейроны каждого слоя сообщают о своей активации нейронам следующего слоя.
Хьюбел и Визель обнаружили, что нейроны разных слоев этой иерархии служат “детекторами”, которые реагируют на все более сложные особенности визуальной сцены, как показано на рис. 9: нейроны первых слоев активируются (то есть начинают чаще испускать сигналы), выявляя границы; их активация питает следующие слои, выявляющие простые формы с этими границами, – и так далее, к сложным формам и, наконец, целым объектам или конкретным лицам. Обратите внимание, что стрелками на рис. 9 обозначен восходящий поток информации (или прямая связь) с переходом от нижних слоев к верхним (на рисунке – слева направо). Важно отметить, что в зрительной коре наблюдается также нисходящий поток информации (или обратная связь) с переходом от верхних слоев к нижним, причем обратных связей почти в десять раз больше, чем прямых. Тем не менее нейробиологи плохо понимают роль этих обратных связей, хотя установлено, что накопленные знания и ожидания, предположительно хранящиеся в более высоких слоях мозга, оказывают существенное влияние на наше восприятие.
Рис. 9. Схема визуальных особенностей, выявляемых нейронами разных слоев зрительной коры
Как и иерархическая структура с прямой связью, показанная на рис. 9, сверточная нейронная сеть состоит из последовательности слоев искусственных нейронов. Я снова буду называть эти искусственные нейроны ячейками. Ячейки каждого слоя предоставляют входной сигнал следующему слою. Подобно нейронной сети, описанной в главе 2, при обработке изображения сверточной нейронной сетью каждая ячейка получает конкретную активацию – действительное число, вычисленное на основе входных сигналов ячейки и их весов.
Рис. 10. Схема четырехслойной СНС, разработанной для распознавания кошек и собак на фотографиях
В качестве иллюстрации представим гипотетическую СНС с четырьмя слоями и “модулем классификации”. Нам необходимо натренировать ее на распознавание кошек и собак на изображениях. Для простоты допустим, что на каждом изображении есть лишь одна кошка или собака. На рис. 10 показана структура нашей сверточной нейронной сети. Она достаточно сложна, поэтому я опишу все ее компоненты, чтобы объяснить, как работает эта сеть.