Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
Повторяющиеся локальные структуры первичной зрительной коры, приспособленные к выявлению различных признаков в потоке зрительной информации, невольно подталкивали разработчиков искусственных нейронных сетей к мысли, что крупномасштабные сети могут быть собраны из однотипных строительных элементов подобно тому, как сложные объекты могут быть собраны из детского конструктора, состоящего из сравнительно небольшого набора деталей. Локальность структур (т. е. такой характер связей, при котором нейроны преимущественно связаны внутри сравнительно небольших групп и лишь немногие нейроны содержат связи с другими группами) позволяла существенно уменьшить количество синаптических весов сети и, значит, сократить вычислительные затраты при её обучении и использовании. Кроме того, если целый слой сети состоит из однотипных элементов, то, возможно, они все могут быть написаны одним и тем же набором синаптических весов? Это позволит ещё сильнее сократить количество параметров модели.
5.2.4,2 Когнитрон и неокогнитрон Кунихико Фукусимы
Первой нейросетевой архитектурой, воплотившей в себе эти принципы, стал неокогнитрон (Neocognitron) японского учёного Кунихико Фукусимы. В 1970-е гг. Фукусима стал одним из наиболее ярких лидеров японских коннекционистов. Получив в 1958 г. степень бакалавра в области электроники, Фукусима устроился на работу в исследовательскую лабораторию Японской радиовещательной корпорации (NHK), а в 1966 г. защитил диссертацию в области электроники. Исследовательские интересы Фукусимы были сосредоточены на изучении алгоритмов обработки информации в мозге, создании искусственных нейронных сетей для распознавания образов, а также на других исследованиях в области машинного обучения. В 1970-е гг. доктор Фукусима стал автором ряда научных статей и двух монографий: «Физиология и бионика визуальных систем» (1976) и «Нейронные сети и самоорганизация» (1979) [1468].
Как несложно догадаться, неокогнитрон не был первой нейросетевой архитектурой, разработанной Фукусимой. Первой стал собственно когнитрон (Cognitron) — самоорганизующаяся многослойная нейронная сеть, описанная в статье 1975 г.
Идея, лежащая в основе когнитрона, была довольно простой. При обучении сети вес синапса, направленного от нейрона x к нейрону y, увеличивается, если x срабатывает в условиях, когда ни один из нейронов в окрестностях y не срабатывает сильнее, чем y. Основываясь на этом принципе, Фукусима описывает алгоритм обучения нейронной сети и предлагает основанную на нём самоорганизующуюся многослойную сеть под названием «когнитрон». В результате обучения каждая ячейка в последнем слое когнитрона начинает выборочно реагировать на определённую структуру стимула или на некоторый признак.
Рассуждая о процессах, происходящих в такой сети в процессе обучения, Фукусима поэтично сравнивает пространственную схему распределения выходов возбуждающих нейронов с горой Фудзи. Вообще работа Фукусимы интересна в данном случае не только и не столько в качестве описания нового метода обучения нейронных сетей без привлечения учителя, но и как исследование, уделяющее особое внимание принципам пространственной организации связей нейронов.
Фукусима провёл ряд компьютерных симуляций когнитрона с использованием цифровой вычислительной машины. В ходе симуляций он моделировал работу когнитрона, состоящего из четырёх слоёв, каждый из которых содержал 12 × 12 = 144 возбуждающих и столько же тормозящих нейронов.
Каждый нейрон мог иметь афферентные (входные) синапсы только от групп нейронов, расположенных в определённой области, называемой «соединимой областью» [connectable area]. В компьютерной симуляции Фукусимы соединимая область каждого из нейронов состояла из квадратной по форме зоны (5 × 5 нейронов) предыдущего слоя, центр которой непосредственно предшествовал данному нейрону. Окрестности нейрона, в пределах которых происходит сравнение уровня его возбуждения с другими нейронами, представляли собой зону в том же слое, имеющую форму ромба с диагональю 5 (включающую 12 соседних нейронов). Также каждый возбуждающий нейрон получал латеральное (боковое) торможение [lateral inhibition] от соседних тормозящих нейронов в пределах квадратной зоны размером 7 × 7 клеток.
В ходе экспериментов Фукусима циклически «предъявлял» когнитрону пять картинок (изображения цифр от 0 до 4) и наблюдал, как нейронная сеть формирует в последнем слое типичные отклики на эти стимулы. Также Фукусима осуществлял «обратное воспроизведение», направляя сигналы через обученную сеть в обратном направлении — от специфического нейрона последнего слоя, реагирующего выборочно на один из стимулов, к первому слою, чтобы наблюдать набор нейронов входного слоя, возбуждение которых приводит к возбуждению выбранного нейрона выходного слоя [1469]. В наши дни подобный способ также иногда применяют для поиска специфических визуальных структур, на которые реагирует обученная нейронная сеть.
Неокогнитрон представлял собой развитие идей, лежавших в основе когнитрона. Причём источником вдохновения для Фукусимы стали во многом работы Хьюбела и Визеля, ссылки на работы которых сопровождают рассуждения создателя неокогнитрона о принципах организации синаптических связей нейронной сети. Главной проблемой, которую решал Фукусима, стала способность сети реагировать на стимулы, предъявляемые с различным горизонтальным и вертикальным смещением. Стремясь добиться инвариантного (неизменного) относительно сдвига стимула ответа сети, Фукусима пришёл к выводу, что каждый слой сети можно составить из нейронов, использующих для своего набора входных синапсов один и тот же набор значений (весов). Такие нейроны будут похожи на клетки, которые в экспериментах Хьюбела и Визеля реагировали на предъявление глазу специфических геометрических структур. Вне зависимости от того, в каком именно участке слоя окажется искомая структура, один из нейронов, в соединимой области которого она окажется, среагирует на её появление. При этом реакция нейронов слоя будет единообразной, поскольку, благодаря общему набору входных синаптических весов для каждого из нейронов, их ответ на предъявление одной и той же геометрической структуры на входе будет одинаковым. С математической точки зрения операция, производимая таким слоем, называется операцией взаимной корреляции (или кросс-корреляции), применяемой к двум матрицам: матрице входных сигналов и «ядру» — вышеупомянутому набору значений входных синапсов, одинаковых для всех нейронов слоя (если строго, то это матрица синаптических весов, размерность которой равна размеру соединимой области нейронов, а её элементами являются значения данных синаптических весов). Из-за того что в названии «свёрточная сеть» присутствует слово «свёртка», возникла путаница: многие авторы вполне разумно предполагают, что в основе свёрточных сетей лежит именно операция свёртки. Настоящая свёртка почти идентична кросс-корреляции с той лишь разницей, что при свёртке происходит «переворот» ядра [1470], [1471]. Далее по тексту в отношении операции кросс-корреляции мы будем использовать термин «свёртка», поскольку он является устоявшимся среди специалистов по глубокому обучению.
Слой, составленный из описанных выше нейронов, в наши дни принято называть свёрточным слоем, а сеть с таким слоем — свёрточной сетью. Благодаря наличию в неокогнитроне такого способа соединения нейронов, по современной классификации его можно считать свёрточной нейронной сетью, хотя сам Фукусима в то время не употреблял этот термин и не использовал понятие свёртки, а сами свёрточные слои неокогнитрона получили у автора название S-слоёв.
По сравнению с полносвязным слоем или слоем когнитрона свёрточный слой описывается сравнительно небольшим числом параметров, что снижает вычислительные затраты на обучение. Фукусима сделал ещё один важный шаг вперёд, когда пришёл к выводу, что свёрточный слой может быть основан не на одном, а на нескольких ядрах свёртки. Каждому из ядер свёртки соответствует отдельная «плоскость» [cell-plane] следующего слоя сети. Выход свёрточного слоя сегодня принято называть «картой признаков» [feature map]. Карта признаков представляет собой трёхмерный массив (или, как модно говорить в наши дни, трёхмерный тензор), составленный из плоскостей для каждого из ядер свёртки (сейчас вместо термина «плоскость» чаще используется термин «канал»).