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