5 Предвестники весны искусственного интеллекта

Весною, когда земля оттает, люди тоже как будто становятся мягче.

Максим Горький. Пожар


В 1984 г. темой публичных дебатов, организованных на общем собрании Американской ассоциации искусственного интеллекта (American Association of Artificial Intelligence, AAAI, ныне известной как Ассоциация по развитию искусственного интеллекта, Association for the Advancement of Artificial Intelligence, AAAI), стала «зима искусственного интеллекта» (AI winter). Этот термин, отсылающий к активно обсуждавшейся в 1980-е гг. идее ядерной зимы, обозначает период сокращения финансирования и снижения интереса общества к исследованиям в области искусственного интеллекта. Цепочка событий, приводящая к наступлению зимы, начинается с роста пессимизма в профессиональном сообществе, за этим следует волна пессимистических материалов в прессе, затем происходит заметное сокращение финансирования, после чего резко снижается количество фундаментальных исследований.

На этих дебатах Роджер Шанк предупредил бизнес-сообщество о важной проблеме. Согласно его мнению, подкреплённому беседами с учёными, менеджерами и чиновниками, в отрасль устремились большие деньги, притом что хороших специалистов в сфере ИИ не так уж и много. Как следствие, компании часто нанимают сотрудников, знакомых с ИИ лишь по книгам. Ввиду этого через некоторое время окажется, что ожидания компаний не оправдались, что приведёт к разочарованию бизнеса в ИИ. Начавшийся спустя три года кризис некоторые исследователи склонны считать воплощением в жизнь предупреждений[1317] Шанка и Минского[1318].

В конечном счёте непосредственные эффекты зимы ИИ связаны в первую очередь с изменением в восприятии людей, принимающих решения о распределении средств на исследования и разработку, а именно правительственных чиновников и венчурных инвесторов[1319]. Несмотря на взлёт и падение репутации ИИ как области исследований, мы наблюдаем создание и развитие в её пределах новых и востребованных технологий. Родни Брукс в 2002 году заметил, что «существует этот глупый миф о том, что ИИ провалился, но ИИ каждую секунду находится вокруг вас». В том же духе высказался и Реймонд Курцвейл в 2005 году: «Многие наблюдатели всё ещё считают, что зима ИИ была концом истории и с тех пор область ИИ ничего не создала. Тем не менее сегодня в инфраструктуру каждой отрасли основательно встроены многие тысячи приложений ИИ, большинство из которых были исследовательскими проектами 10–15 лет назад»[1320].

Несмотря на то что термин «зима ИИ» активно используется и сегодня, не существует единой точки зрения относительно того, какие именно периоды и эпизоды в развитии отрасли следует считать полноценными зимами, «малыми зимами» и вообще существенными и системными явлениями. Похолодание часто не было глобальным и затрагивало лишь отдельные страны, сферы исследований и подходы.

Например, в 1973 г. по заказу британского Совета по научным и инженерным исследованиям математик Джеймс Лайтхилл подготовил отчёт «Искусственный интеллект: общий обзор» (Artificial Intelligence: A General Survey), известный также под названием «Отчёт Лайтхилла», в котором давались крайне пессимистичные прогнозы в отношении основных направлений исследований в области искусственного интеллекта[1321]. Отчёт широко обсуждался в средствах массовой информации, в частности на телеканале Би-би-си состоялись полуторачасовые дебаты с участием Лайтхилла, Мичи и Маккарти.

Основываясь на результатах отчёта, британское правительство прекратило финансирование большинства университетских исследовательских программ, сохранив их лишь в двух университетах[1322]. Безусловно, отчёт Лайтхилла и события вокруг него нанесли серьёзный удар по британским исследованиям в области ИИ, однако он лишь косвенно отразился на финансировании исследований в других странах. В тех же США, как было отмечено ранее, похолодание наступило за несколько лет до описываемых событий. Кроме того, каким бы пессимистичным по духу ни был отчёт Лайтхилла, он в первую очередь концентрировал свою критику на перспективах в области машинного перевода и робототехники, давая при этом скорее положительные оценки перспективам в области моделирования нейрофизиологических и психических процессов, то есть в большей мере работал против сторонников символьного подхода, обходя коннекционизм стороною.

Исследователи сегодня более-менее сходятся в том, что полноценной зимой можно называть период, начавшийся с принятия поправки Мэнсфилда (1969) (по другой версии — с выхода отчёта Лайтхилла в 1973 г.[1323]) и завершившийся в 1983 г., когда в ответ на старт японского проекта по созданию компьютеров пятого поколения[1324] правительство Великобритании «распечатало» военный бюджет и запустило программу Alvey. Названная в честь своего идейного вдохновителя Джона Элвея, старшего директора по технологиям компании British Telecom, программа сосредоточивала основной фокус на развитии следующих направлений: СБИС-технологии, архитектура систем (для параллельной обработки), разработка программного обеспечения, человеко-машинные интерфейсы (включая обработку естественного языка) и интеллектуальные системы, основанные на знаниях (Intelligent Knowledge-Based Systems, IKBS). Последнее и отчасти предпоследнее направления традиционно относятся к отрасли ИИ[1325].

Разработки в рамках программы Alvey были тесно увязаны с усилиями DARPA, запустившего аналогичный проект под названием «Стратегическая компьютерная инициатива» (Strategic Computing Initiative, SCI)[1326]. Впрочем, праздник продлился недолго. В 1987 г. Бюро технологий обработки информации (Information Processing Technology Office, IPTO) DARPA возглавил Джейкоб Шварц, который резко сократил финансирование исследований в области искусственного интеллекта.

Шварц сравнивал стратегию DARPA с поведением пловца, упорно плывущего к поставленной цели, невзирая на волны и течения. Он считал, что вместо этого DARPA нужно двигаться с изяществом сёрфера — дождаться большой волны, чтобы, оседлав её, двигаться к той же цели, но не затрачивая чрезмерных усилий. По мнению Шварца, в долгосрочной перспективе искусственный интеллект являлся многообещающим направлением, но время подъёма его волны ещё не пришло. Поэтому Шварц отказался от поддержки SCI и резко сократил финансирование ряда исследовательских центров, занимавшихся ИИ и робототехникой. Именно с политикой Шварца нередко связывают наступление очередной «глубокой зимы ИИ», но реальность, вероятно, как всегда несколько сложнее. Шварц в действительности скептически относился к экспертным системам: по его мнению, они были просто «умным программированием». Но в то же время он проявлял большой интерес к нейронным сетям и оказал финансовую поддержку возрождающемуся коннекционизму[1327].

Хотя ряд проектов в области ИИ, осуществлённых во время этой кратковременной оттепели, следует признать весьма успешными, — например, к их числу можно отнести создание «Системы динамического анализа и перепланирования» (Dynamic Analysis and Replanning Tool, DART), которая сэкономила американской армии миллиарды долларов во время осуществления операции «Буря в пустыне», — но конечные результаты трудно считать впечатляющими[1328]. Лежавшая в основе нового витка исследований концепция компьютеров пятого поколения с массовым параллелизмом и ставкой на логическое программирование потерпела неудачу — выяснилось, что ввиду действия законов Амдала и Густафсона — Барсиса (налагающих ограничения на рост производительности при распараллеливании вычислений) выгода от параллелизации оказалась весьма ограниченна. В это же время удалось преодолеть сложные барьеры на пути развития электроники, что привело в итоге в конце 1980-х гг. к довольно странной ситуации, когда развивавшиеся поступательно компьютеры четвёртого поколения заметно превзошли по производительности своих предполагаемых наследников[1329]. Также не последнюю роль в «похолодании» сыграло сокращение военных бюджетов из-за окончания холодной войны. Вторую половину 1980-х гг. многие исследователи или называют наступлением новой зимы после кратковременной весны, или же вообще не признают события середины 1980-х гг. за весну ИИ. Но, как мы увидим позже, многие исследования, важные для дальнейшего развития, были осуществлены именно в конце 1980-х — логика развития науки и технологий на деле плохо вписывается в упрощённые схемы.

По всей видимости, благодаря развитию интернета и социальных сетей многие общественные процессы сегодня рассматриваются и обсуждаются в первую очередь с медийной точки зрения: само общество представляется в роли своеобразной коллективной личности, страдающей от биполярного расстройства, — оно то энергично хватается за какую-то идею на волне безудержного хайпа, то отбрасывает её, утратив к ней всякий интерес. Затем очередной виток цикла из маниакальной и депрессивной стадии повторяется — и так далее снова и снова. Уважаемые консалтинговые компании рисуют глубокомысленные кривые, типа цикла хайпа от компании Gartner[1330], и некоторые люди, похоже, всерьёз поверили в то, что развитие любой технологии (или даже целого направления в науке и технологиях), вне зависимости от содержательной стороны дела, неизбежно подчиняется нехитрым закономерностям.


Рис. 100. Цикл хайпа от Gartner (Gartner Hype Cycle for Emerging Technologies) — графическое отображение цикла зрелости появляющихся технологий, состоящего из пяти стадий — от стадии ажиотажа до стадии продуктивного использования

Эти простые для понимания, но имеющие слабое отношение к действительности схемы придают силы мамкиным экспертам, готовым предсказать в скором времени очередную «зиму» или «весну» в какой-нибудь области, о которой они имеют лишь смутное представление. В декабре 2016 г. вице-президент инвестиционного фонда Icon Ventures Майкл Маллани решил составить ретроспективу кривой зрелости технологий (Gartner Hype Cycle) и проверить, как часто ошибались аналитики. После анализа циклов с 2000 по 2016 г. Майкл пришёл к выводу, что технологии не подчиняются кривой зрелости. Какие-то технологии просто умирают, другие — продолжают тихо развиваться, несмотря на громкие неудачи. Иногда верный подход становится жертвой плохой реализации, и, напротив, бесперспективное на первый взгляд направление становится главным в силу плохо предсказуемых обстоятельств[1331]. Это вовсе не значит, что прогнозы в отношении развития технологий или целых технологических направлений невозможны в принципе, это лишь означает, что такие прогнозы требуют содержательного анализа предметной области и даже в таких условиях не являются надёжными на все 100%.

В противоположность зимам искусственного интеллекта периоды подъёма общественного интереса к этой сфере называют вёснами искусственного интеллекта. Принимая во внимание тот факт, что на смену зиме приходит весна, а на смену весне — снова зима, можно сделать вывод, что климат в области ИИ довольно прохладный. Ведь никто ещё никогда не употреблял термин «лето искусственного интеллекта». Возможно, виной тому пресловутый эффект ИИ, упомянутый в первой части этой книги: обыватели быстро насыщаются чудесами, дарованными наукой, и начинают требовать большего, обесценивая уже достигнутое. Возможно, всё дело в сенсационной шумихе, раздуваемой прессой и социальными медиа в погоне за вожделенными кликами и просмотрами, в безудержном хайпе и завышенных ожиданиях, продаваемых недобросовестными стартаперами технически неграмотным инвесторам. Здесь можно попенять и на закономерности массового сознания и социодинамики, проводя параллели с явлениями, описанными в своё время Бехтеревым в его работе «Внушение и его роль в общественной жизни»[1332] или Чарльзом Маккеем в его знаменитой книге «Наиболее распространённые заблуждения и безумства толпы»[1333]. Кто-то, рассуждая о зимах искусственного интеллекта, припоминает события из недавнего прошлого, такие как крах доткомов или даже взлёт и падение интереса публики к блокчейн-технологиям. Однако за внешним сходством этих событий важно видеть и их фундаментальные различия. Искусственный интеллект не является технологией, на самом деле это огромная отрасль информатики, в рамках которой разрабатываются и используются сотни и тысячи моделей и технологий. Поэтому выражения «зима ИИ» и «весна ИИ» примерно эквивалентны выражениям «зима ядерной физики» или «весна органической химии». Конечно, и в этих областях случаются периоды прорывов и относительного застоя, но исследования от этого не прекращаются и прогресс не замирает, хотя он и происходит в атмосфере пониженного внимания медиа. Неслучайно, что зиму 1970-х гг. нередко называют не «зимой ИИ», а «коннекционистской зимой» или даже «зимой нейронных сетей». Хотя мода на подходы и парадигмы меняется, сама отрасль продолжает развиваться. Именно в периоды, часто относимые к зимам ИИ, шахматные и шашечные программы научились обыгрывать чемпионов мира, именно в одну из зим ИИ возникла мобильная робототехника. Именно в подобные периоды, о чём мы подробнее поговорим позже, ведутся исследования, приводящие затем к революционным прорывам в области искусственного интеллекта.

Даже если говорить об отдельных технологиях, то интерес к ним вовсе не обязан осуществлять строго периодические взлёты и падения. Много ли зим и вёсен было в истории двигателя внутреннего сгорания или, скажем, обыкновенной булавки? Конечно, век одних технологий долог, других — короток, иногда устаревшая, казалось бы, технология эффектно возвращается на сцену. Порой это сопровождается медийным шумом, а порой — нет. Вообще медийные образы технологий и отраслей науки и техники часто слабо соотносятся с реалиями, а некоторые понятия и вовсе лишены конкретного содержания и судьбою уготованы на роль очередных баззвордов из наборов для игры в булшит-бинго. Иногда завышенные ожидания негативно отражаются на развитии какой-либо отрасли, а иногда даже в какой-то мере помогают её развитию. Бешеная мода на радиоактивность в начале XX в. привела к появлению радиоактивного мыла, шоколада, кремов, зубной пасты и порошка с радием, напитков с торием, специальных приборов для добавления радия в питьевую воду и так далее[1334]. Но вся эта волна не только бесполезной, но в ряде случаев смертельно вредной ерунды, распространение которой сопровождалось чудовищным потоком рекламы, не помешала появлению ядерного оружия, атомной энергетики и других технологий, до неузнаваемости изменивших облик современного мира.

В мае 2016 г. на конференции EmTech Digital в MIT Эндрю Ын, доцент [associate professor] искусственного интеллекта Стэнфордского университета и один из основателей платформы онлайн-обучения Coursera, произнёс слова, позже продублированные в его твиттере и ставшие сегодня крылатыми: «ИИ — это новое электричество» [AI is the new electricity].

Использование человеком электричества поначалу воспринималось как некая второстепенная технология, неспособная быстро и существенно изменить нашу жизнь, отмечает Ын. Сейчас мы знаем, что в действительности электричество поменяло всё. Ын приводит два простых примера неожиданных эффектов, произведённых электричеством: заморозка продуктов изменила всю систему поставок продовольствия, а электродвигатели осуществили революцию практически во всех областях промышленности. Ын считает, что технологии ИИ окажут столь же масштабные воздействия на многие сферы человеческой деятельности[1335].

Множество специалистов во всём мире прошли онлайн-курсы Ына по машинному обучению, и авторитет этого учёного, особенно в среде молодых исследователей, чрезвычайно высок. Тематические сообщества в социальных сетях пестрят разнообразными мемами, героем которых является Ын и его знаменитые цитаты, начиная от слов про новое электричество и заканчивая взятым из его лекции эпическим «Если вы это не понимаете, то не переживайте об этом» [Don’t worry about it if you don’t understand].



Сегодня мы наблюдаем небывалый расцвет технологий машинного обучения, основанных на коннекционистских методах. Новая весна ИИ, которую, быть может, уже пора с полной ответственностью переименовать в лето, затронула множество областей общественной жизни. На протяжении нескольких лет произошли серьёзные прорывы в решении многих задач, традиционно являвшихся сложными для технологий искусственного интеллекта. Вполне осязаемые успехи и быстрый прогресс вызывают у людей множество вопросов. Что могут и чего не могут современные технологии ИИ? Какие проекты реалистичны, а какие — завиральные? Будет ли прогресс и дальше развиваться столь стремительными темпами? Как новая технологическая революция отразится на нашем обществе? С какими рисками мы можем столкнуться в ближайшее время? И наконец, почему всё это происходит именно сейчас? С последнего вопроса мы и начнём попытку размотать этот клубок несчётных «почему».



5.1 Три ключевых фактора успеха

Давно уже сказано, что без революционной теории не может быть и революционного движения, и в настоящее время вряд ли есть надобность доказывать подобную истину.

Владимир Ленин. Задачи русских социал-демократов


Каковы три источника и три составных части революции машинного обучения? Если мы посмотрим на процесс машинного обучения, то обнаружим, что он представляет собой применение к некоторым данным некоторого алгоритма, представленного в виде программы для некоторой машины. Из этой формулы легко вычленить три ключевых фактора успеха: наличие подходящего алгоритма, подходящей машины и подходящего набора данных. Анализ «анатомии» современных систем, успешно решающих задачи распознавания образов или обработки естественного языка, показывает, что создание подобных систем даже в сравнительно недалёком прошлом было просто невозможно по причине недостаточного развития каждого из трёх компонентов: у наших предшественников не было ни подходящих алгоритмов, ни достаточно быстрых машин, ни достаточных объёмов данных. Вряд ли можно всерьёз говорить о заметном влиянии медийных или личностных факторов на приближение или отдаление технологического прорыва в области ИИ — даже если бы Фрэнк Розенблатт каким-то чудом изобрёл современные алгоритмы машинного обучения, то ограничения современных ему технологий всё равно не позволили бы создать подходящую для них вычислительную машину и собрать необходимые объёмы информации для обучения моделей.

Давайте попробуем подробнее взглянуть на то, как за последние несколько десятилетий изменились перечисленные выше компоненты (алгоритмы, машины и данные) и как это привело к революционным достижениям в области машинного обучения. Это позволит нам лучше разобраться, что же именно произошло и на что мы можем рассчитывать в ближайшем будущем в жизненно важных для развития ИИ направлениях.

5.2 Модели и алгоритмы

Великий Метод позволяет распознавать в вещах процессы и использовать их. Он учит ставить вопросы, которые делают возможными действия.

Бертольд Брехт. Ме-ти. Книга перемен[1336]

5.2.1 СССР, Фрейд и котики приходят на помощь

1965 год был знаменательным для советской кибернетики не только потому, что в Советский Союз впервые приехал Джон Маккарти с коллегами, но и потому, что именно в этом году в издательстве «Мир» впервые увидел свет перевод на русский язык книги Фрэнка Розенблатта «Принципы нейродинамики». Идеи Розенблатта нашли в среде советских учёных как сторонников, так и критиков. Одним из самых горячих поклонников коннекционизма в СССР стал Алексей Ивахненко, профессор Киевского политехнического института. В 1965 г. Ивахненко уже был признанным учёным. Его книга «Техническая кибернетика» не только выдержала два издания на русском языке, но также была опубликована в английском, немецком, болгарском, польском и румынском переводах. Множество остроумно решённых прикладных задач сделало имя Ивахненко широко известным среди специалистов[1337], а его научный интерес к самоорганизующимся системам проявился ещё в 1950-е гг.: в 1959 г. Ивахненко успешно собрал и испытал собственную версию перцептрона — машину, получившую название «Альфа»[1338], по всей видимости в честь α-перцептрона Розенблатта. С 1963 г. Ивахненко работал под руководством академика Глушкова, с которым его, впрочем, связывали весьма непростые отношения. В 1959 г. Глушков раздражённо писал Ляпунову: «Вышедшая на днях книга Ивахненко „Техническая кибернетика“ содержит ряд грубых ошибок <…> Кроме того, там сделано программное заявление о том, что вычислительные машины имеют для автоматики весьма ограниченное значение и являются чуть ли не уже давно пройденным этапом. Говоря громкие слова о персептроне и самонастраивающихся системах, Ивахненко фактически склонен понимать под ними всё те же экстремальные регуляторы, которыми он занимается уже давно. В приведённой им таблице в качестве примеров самонастраивающихся систем приведён и трактор, и локомотив и т. п. В общем, сделана попытка объявить элементарные самонастраивающиеся системы более высокими кибернетическими устройствами, чем вычислительные машины, которые якобы способны реализовать лишь жёсткие алгоритмы». На фоне конкуренции разных групп исследователей за ресурсы и влияние Глушков обвинял Ивахненко в желании «подмять под себя кибернетику»[1339].

Сложно сказать, было ли в данном случае дело в непонимании Глушковым позиции Ивахненко, в стремлении в жанре полемики создать «соломенное чучело» оппонента, огрубив и доведя до абсурда его взгляды, или же Ивахненко в действительности перегибал палку, мечтая о создании нейроморфных машин, наилучшим образом приспособленных к воплощению коннекционистской парадигмы. Во всяком случае, один из сотрудников Ивахненко, Михаил Шлезингер, в 1960-е гг. работая в Институте кибернетики у Глушкова, активно занимался симуляцией нейронных сетей на цифровой электронной машине «Киев»[1340], что свидетельствует в пользу того, что Ивахненко не был радикальным противником цифровых машин. А тот факт, что после перехода Ивахненко под руководство Глушкова работы над нейронными сетями были продолжены, говорит о том, что и Глушков не был радикальным противником коннекционизма. В целом споры коннекционистов и их противников, которых в СССР называли соответственно сторонниками недетерминистического («подхода самоорганизации») и детерминистического подхода, носили, как и на Западе, весьма ожесточённый характер. Резюмируя свою позицию и подводя итоги спорам 1960-х и начала 1970-х гг., Ивахненко писал: «Подход самоорганизации в технической кибернетике открывает новые возможности решения задачи оптимизации сложности математических моделей различных объектов распознавания и управления. Будучи антиподом существующему детерминистическому подходу, самоорганизация является равноправной и необходимой частью комбинированного решения задач технической кибернетики: грубое по простоте решение дают детерминистические методы, а более точное и сложное дополнение принадлежит подходу самоорганизации. Через 10–20 лет индивидуальная вычислительная машина будет доступна каждому. Мы войдём в эпоху тесной связи — симбиоза человека и вычислительной машины. Но готовы ли мы воспользоваться огромными возможностями индивидуальных, национальных и межконтинентальных вычислительных систем? Увы, так называемое математическое обеспечение машин не соответствует нашим потребностям, а мышление исследователей направлено только на развитие детерминистических методов. Исходные идеи об общности метода кибернетики Винера забыты; решения задач становятся всё более специфическими, высоко специализированными, доступными всё более узкому кругу специалистов»[1341]. Удивительно, как Ивахненко удалось угадать важнейшие тренды в развитии вычислительной техники, в этих его строках можно увидеть и грядущее торжество персональных компьютеров, и триумфальное шествие интернета, и даже тенденцию к всё более тесному сращиванию человека с машиной, ярко проступившую в эпоху смартфонов и носимых устройств [wearables].

В наши дни советские коннекционисты 1950–1970-х гг. и их проекты в массе своей забыты, даже специалистам мало что скажут имена Автандила Квиташвили, Генриха Отхмезури, Сергея Даяна, В. С. Амирбекяна и других, хотя в своё время эти люди трудились над многослойными (как тогда говорили — многорядными) перцептронами.

Важным результатом, полученным Ивахненко, стало создание и развитие метода группового учёта аргументов (МГУА) — одного из первых в истории алгоритмов глубокого обучения. Уже в начале 1970-х Ивахненко и его коллегам удавалось обучать восьмислойные нейронные сети[1342], [1343], [1344], в основе которых, правда, лежал иной вид искусственного нейрона, основанного на интерполяционном полиноме Колмогорова — Габора (или, как его иногда называют, полином Вольтерра — Колмогорова — Габора). Метод группового учёта аргументов используется исследователями и в наши дни, хотя занимается им лишь небольшое количество специалистов на территории бывшего СССР и в дальнем зарубежье.

Некоторые исследователи на Западе примерно в то же время или несколько раньше Ивахненко обучали сети с одним промежуточным слоем. Например, этим занимались коллеги Розенблатта Сэм Виглион и Роджер Дэвид Джозеф, в честь которых получил название алгоритм Джозефа — Виглиона. Однако сети, содержащие восемь слоёв, полстолетия назад явно опережали своё время.

Впрочем, сами подходы, использованные Виглионом с Джозефом и Ивахненко в его МГУА, отдалённо напоминают друг друга. Алгоритм Джозефа — Виглиона шаг за шагом генерирует и оценивает двухслойные нейронные сети с прямым распространением, автоматически идентифицируя небольшие подмножества признаков, которые обеспечивают лучшую классификацию примеров из обучающей выборки. Полученные сети затем подвергаются валидации (проверке) на части данных, не включённых в обучающую выборку[1345], [1346], [1347]. В МГУА в нейронную сеть на каждом шаге добавляются дополнительные слои, обучаемые с использованием регрессионного анализа (таким образом, МГУА восходит к методам, разработанным ещё в XIX в. Лежандром и Гауссом). Затем применяется процедура сокращения слоя. Для этого точность предсказаний каждого из нейронов (Ивахненко, как и многие другие коннекционисты того времени, не использовал термин «нейрон», а писал просто о «переменных», слои сети называл рядами, а саму сеть — фильтром, но мы будем придерживаться современной терминологии) оценивается при помощи валидационной выборки, а затем наименее точные нейроны удаляются[1348], [1349].

Книга «Предсказание случайных процессов»[1350], написанная Ивахненко в соавторстве с Валентином Лапой и увидевшая свет в 1969 г., стала своеобразным компендиумом техник, исследовавшихся советскими коннекционистами, а книга 1971 г. «Системы эвристической самоорганизации в технической кибернетике» содержит не только подробное описание МГУА, но и множество примеров его применения для решения прикладных задач[1351]. Многие работы Ивахненко и его коллег были переведены на английский язык, и отсылки к ним мы можем увидеть в ряде современных работ по глубокому обучению.

Хотя нейросетевые модели наших дней, лежащие в основе новой коннекционистской весны, лишь отдалённо похожи на сети, построенные при помощи МГУА, но именно данный метод в некоторой степени стал поворотным пунктом в коннекционистских исследованиях. Исследователи в полной мере осознали, что обучение глубоких нейронных сетей в принципе возможно и что именно их использование может обеспечить прорывные результаты в решении тех или иных задач машинного обучения.

5.2.2 Исследования Румельхарта

Рост интереса к многослойным нейронным сетям в 1980-е гг. был во многом связан с работами Дэвида Румельхарта. Что примечательно, Румельхарт был психологом, так же как Хебб и Розенблатт, а если точнее, то математическим психологом. Он изучал математическую психологию в Стэнфордском университете и получил степень доктора философии в 1967 г.

Румельхарт разработал множество моделей, объясняющих различные аспекты человеческого познания, начиная от двигательного контроля и понимания текста и заканчивая зрительным распознаванием букв, пониманием метафор и аналогий[1352]. В 1975 г. он работал над исследованиями в области познания в составе исследовательской группы Калифорнийского университета в Сан-Диего (University of California, San Diego, далее UCSD), получившей название LNR — по первым буквам фамилий её основателей — Питера Линдсея, Дона Нормана, одного из знаменитых «грязнуль», и самого Румельхарта[1353].

Обобщавшая результаты группы книга «Исследования в области познания» (Explorations in Cognition, 1975) содержала предложение о создании новой области — «когнитивной науки» (когнитивистики) [cognitive science] — за счёт совместных усилий специалистов из области искусственного интеллекта, лингвистики и психологии[1354]. Этот же термин появился в том же году и в заголовке книги[1355], написанной информатиком Дэниелом Боброу и психологом Алланом Коллинзом. Идея довольно быстро завоевала популярность, и в ряде университетов при поддержке фонда Альфреда Слоуна были созданы соответствующие междисциплинарные центры.

Когнитивная наука — это междисциплинарное научное исследование психики и психических процессов. Она изучает природу, задачи и функции познания (в широком смысле этого слова). Когнитивисты изучают интеллект и поведение, уделяя особое внимание тому, каким образом нервная система представляет, обрабатывает и изменяет информацию. Психические явления (феномены), находящиеся в центре внимания когнитивистики, включают в себя язык, восприятие, память, внимание, рассуждение и эмоции[1356], [1357].

Хотя сам термин «когнитивная наука» появился только в 1970-е, многие исследователи придерживаются мнения, что эта дисциплина сформировалась значительно раньше. Например, Джордж Миллер считал днём рождения когнитивистики 11 сентября 1956 г. — второй день симпозиума Специальной группы по теории информации (Special Interest Group in Information Theory). В начале 2000-х Миллер вспоминал: «Я покинул симпозиум с убеждением, скорее интуитивным, чем рациональным, что экспериментальная психология, теоретическая лингвистика и компьютерное моделирование когнитивных процессов являются частями единого целого и что будущее покажет постепенную координацию и развитие их общих целей»[1358].

Одним из поворотных моментов в процессе возвращения интереса к нейронным сетям стала небольшая конференция, организованная Румельхартом и Норманом в 1979 г. По их приглашению в UCSD собрались нейробиологи, когнитивные психологи, исследователи искусственного интеллекта, математики и инженеры-электронщики[1359]. Двое из приглашённых соорганизаторов конференции — информатик Джеффри Хинтон и психолог Джеймс Андерсон — выпустили по итогам конференции книгу «Параллельные модели ассоциативной памяти» (Parallel Models of Associative Memory, 1981)[1360], заметно повлиявшую на отношение к нейронным сетям в научном сообществе.

В своей книге Хинтон и Андерсон показывают, как такой психологический феномен, как человеческая память, основанная на ассоциациях, может быть результатом работы нейросетевых моделей. В предисловии, написанном Румельхартом и Норманом, указываются три причины, по которым приведённые в книге модели человеческой памяти отличаются от описанных ранее.

Первая состоит в том, что новые модели построены на основе данных нейрофизиологии.

Вторая заключается в том, что предложенные Хинтоном и Андерсоном модели представляют собой альтернативу теориям, использующим для объяснения механизмов хранения и поиска в памяти «пространственные метафоры». Дело в том, что под влиянием развития вычислительной техники в XX в. многие нейрофизиологи, вольно или невольно, стали использовать компьютерные аналогии для объяснения принципов работы мозга человека. Например, человеческая память стала рассматриваться в виде множества ячеек, каждая из которых способна хранить те или иные данные. При этом подразумевалось, что ячейки, хранящие отдельные образы, можно локализовать в пространстве, то есть указать конкретный участок мозга, отвечающий за хранение соответствующих данных. А в новых моделях, предложенных Хинтоном и Андерсоном, различные образы могут соответствовать различным паттернам активности одних и тех же единиц (нейронов). То есть, согласно новым моделям, конкретные образы не локализованы в каких-либо отдельных участках мозга, а возникают в результате совместной активации распределённых ансамблей нервных клеток, причём отдельные клетки могут участвовать сразу в нескольких подобных ансамблях. Забегая вперёд, можно отметить, что современные научные данные в целом хорошо согласуются с идеями когнитивистов 1970-х гг. Например, в статье «Расшифровка подлежащей информационной структуры нейронных представлений понятий» (Decoding the information structure underlying the neural representation of concepts)[1361], увидевшей свет в журнале PNAS в феврале 2022 г., убедительно показано (с привлечением данных магнитно-резонансной томографии), что концептуальные знания хранятся в виде паттернов нейронной активности, которые кодируют сенсомоторную и эмоциональную информацию о каждом понятии.

И наконец, третья причина заключается в том, что предлагаемые модели работают без необходимости назначать центрального исполнителя или координатора обработки[1362], то есть в мозге отсутствует аналог центрального процессора компьютера и каждый нейрон выполняет обработку сигналов параллельно с другими нейронами. В некотором смысле работа Хинтона и Андерсона стала бунтом против подходов, составлявших главное направление в когнитивной психологии.

В 1982 г. была создана наследница группы LNR — группа PDP (Parallel distributed processing, Параллельная распределённая обработка). Помимо Румельхарта, в неё вошли доцент UCSD Джеймс Макклелланд, вышеупомянутый Хинтон, биолог Терренс Сейновски, когнитивист Пол Смоленский и психолингвист Джеффри Элман. В работе группы также принимал участие молодой аспирант Румельхарта и Нормана Майкл Джордан, будущий научный руководитель Эндрю Ына. Спустя четверть века, в 2016 г., журнал Science признает Джордана самым влиятельным в мире исследователем в области информатики, а, намекая в своём каламбуре на знаменитого баскетбольного тёзку и однофамильца Джордана, колумнист Science назовёт последнего «Майклом Джорданом от информатики»[1363].

Отправной точкой исследований группы стал тот факт, что в основе работы мозга лежат массовые параллельные вычисления, производимые сетями взаимосвязанных нейронов, что радикальным образом отличается от последовательных вычислений, лежащих в основе большинства методов, предложенных в рамках символьного подхода. Как позже отмечал Румельхарт: «Общей темой всех этих усилий был интерес к изучению мозга как модели параллельного вычислительного устройства, сильно отличающегося от традиционного последовательного компьютера»[1364].

Ранние исследования группы PDP заложили будущий фундамент дисциплины, известной сегодня под названием «глубокое обучение». Далее по тексту книги мы будем не раз возвращаться к различным исследованиям учёных, входивших в эту группу, результатами которых стало формирование современной науки в области искусственных нейронных сетей.

Забавно, что Румельхарт, по всей видимости, обладал в начале своей работы над перцептронами довольно поверхностными сведениями об исследованиях Розенблатта. В первой половине 1980-х гг. в учебной литературе, скорее всего во многом под влиянием работ Минского и Пейперта, утвердилось мнение о перцептроне как о тупиковой ветви развития, модели, представляющей разве что исторический интерес. Идеи Розенблатта тиражировались в крайне упрощённом виде, что создавало у учёных нового поколения впечатление о примитивности и ограниченности его модели. Строго говоря, практически все разновидности перцептрона, рассматривавшиеся Розенблаттом с 1958 г., являются по современной классификации многослойными. Однако в практических работах Розенблатт использовал в основном перцептрон, состоящий из трёх слоёв нейронов (и двух слоёв синаптических связей), причём веса первого слоя, как мы уже упоминали ранее, были равны 1 или −1 и устанавливались вручную. Выставление этих весов могло осуществляться по определённой, заданной исследователем закономерности или же случайным образом. Обычно (за исключением отдельных случаев) набор весов первого слоя определяет такое гиперпространство, в котором задача становится линейно разделимой, в результате чего гарантируется сходимость процесса обучения[1365]. Однако многие исследователи упустили из вида наличие такого настраиваемого слоя в перцептроне Розенблатта, поэтому считали, что Розенблатт изучал только однослойные перцептроны. К их числу относился, по всей видимости, и Румельхарт.

В 1986 г. Румельхарт публикует сборник статей (коллективную монографию), где возвращается к дискуссии о перцептронах. Рассуждая о необходимости обучения не только второго, но и первого слоя, Румельхарт приводит рисунок из книги Минского и Пейперта, снабдив его подписью: «Однослойный перцептрон, анализируемый Минским и Пейпертом»[1366]. Рассматривая перцептрон Розенблатта как однослойный, Румельхарт приходит к ошибочному выводу: «В своей известной книге „Перцептроны“ Минский и Пейперт (1969) документируют ограничения перцептрона. Самым простым примером функции, которая не может быть вычислена перцептроном, является „исключающее или“ (XOR)»[1367].

В действительности Минский и Пейперт, как мы знаем, никогда не утверждали, что перцептрон неспособен вычислить функцию XOR. Однако, интерпретируя высказывания авторов «Перцептронов» в таком ключе, Румельхарт бросается в решительную атаку на эту ветряную мельницу и успешно одолевает её.

Он видит решение проблемы в том, что необходимо «взять оригинальную двумерную задачу и преобразовать её в соответствующую трёхмерную задачу». Обосновывая принципиальную важность многослойности, Румельхарт исходил из ошибочной посылки, что перцептрон Розенблатта не обладает этим качеством. Отдельным курьёзным моментом в данном случае является то, что Розенблатт в «Принципах нейродинамики» рассматривал аналог предлагаемого Румельхартом многослойного перцептрона (так называемый перцептрон с переменными SA связями, часто просто «перцептрон Румельхарта»)[1368].

Однако одно принципиальное отличие у перцептрона Румельхарта всё-таки было. В перцептроне Розенблатта условием срабатывания нейрона было превышение нулевого порога суммой входных сигналов. Если сумма входов искусственного нейрона превышала 0, то на выход передавалась единица, в противном случае выходом нейрона был 0, то есть отсутствие сигнала. Такая пороговая функция носит название функции Хевисайда, она же единичная ступенчатая функция, функция единичного скачка, «включённая единица» или попросту «ступенька».

Однако при всей своей простоте «ступенька» обладает одним ярко выраженным недостатком: она не является непрерывной. Если на выходе перцептрона Розенблатта вы получаете 0 вместо 1 или 1 вместо 0, то вы не можете определить, насколько в действительности текущая конфигурация сети была близка к правильному ответу. Возможно, для получения правильного ответа было достаточно лишь небольшой коррекции одного из синаптических весов, а возможно — текущая конфигурация безнадёжно далека от той, которая способна эффективно решать поставленную перед ней задачу. Розенблаттовский перцептрон, по меткому замечанию Науа Кана, страдает от своеобразного биполярного расстройства: «Перцептрон с единичной ступенчатой функцией не слишком „стабилен“ в качестве „кандидата для серьёзных отношений“ с нейронными сетями. Подумайте об этом: у этой девушки (или парня) есть серьёзные биполярные проблемы! Он(а) то „тих(а)“ и „подавлен(а)“ (при z < 0) и вовсе не отвечает вам. А на другой день (при z ≥ 0), он(а) внезапно становится „разговорчивым(ой)“ и „живым(ой)“, болтая с вами без умолку. Чёрт, радикальные перемены! Нет никакого перехода в его (её) настроении, и вы не знаете, когда оно ухудшается или улучшается. Да… это шаговая функция»[1369].

Остроумный метод коррекции ошибки, использованный Розенблаттом, хорошо работал при наличии одного слоя обучаемых весов, но как быть с настройкой синаптических весов глубокой сети? Решая именно эту проблему, Уидроу в ADALINE использовал для коррекции ошибки величину сигнала до прохождения его через функцию активации. Ивахненко, как мы уже знаем, использовал нейроны, в основу которых был положен полином Колмогорова — Габора, являющийся непрерывной функцией от входных значений (при этом Ивахненко подбирал параметры полинома при помощи методов регрессионного анализа и не использовал ничего хотя бы отдалённо похожего на различные методы коррекции ошибки, применявшиеся Розенблаттом и Уидроу). В перцептроне Румельхарта роль функции активации играет логистическая функция[1370], график которой имеет форму сглаженной «ступеньки». Функции с подобными графиками иногда называют сигмоидами, поскольку их график напоминает букву S.

Кстати говоря, Оливер Хевисайд, человек, имя которого получила «ступенька», был весьма незаурядной личностью. Учёный-самоучка, инженер, физик и математик, он впервые применил комплексные числа для изучения электрических цепей, независимо от других математиков создал векторный анализ, получил множество других значимых результатов на стыке физики и математики. Он на всю жизнь заслужил репутацию научного смутьяна, однако его весьма неортодоксальные работы заметно изменили облик математики и физики. Возражая на обвинения в недостаточной математической строгости его работ, Хевисайд решительно заявил: «Математика — экспериментальная наука, и определения даются не в начале, а позже. Они возникают сами, когда природа предмета уже развита». А в другой раз высказался ещё более афористично: «Должен ли я отказаться от обеда, потому что не полностью понимаю процесс пищеварения?»

Использование непрерывной функции активации открыло перед глубокими нейронными сетями совершенно новые перспективы. В результате появления и повсеместного признания метода обратного распространения ошибки произошёл долгожданный прорыв в области обучения глубоких сетей. Однако эта революция удивительным образом растянулась почти на два десятилетия.

5.2.3 Метод обратного распространения ошибки

Две гирьки, мирно встав на блюдце,

Определяют жизни ход,

И дверь звенит, и рыбы бьются,

И жабры дышат наоборот.

Николай Заболоцкий. Рыбная лавка

5.2.3.1 Описание проблемы

Успех Розенблатта и его команды в деле доказательства теоремы о сходимости перцептрона оказал двоякое воздействие на коннекционистские исследования. С одной стороны, было получено строгое обоснование способности модели с одним обучаемым слоем разделять линейно разделимые множества. Однако реальные задачи не всегда являются линейно разделимыми. В таких случаях на помощь могут прийти глубокие модели (с несколькими слоями), но все попытки создать для них метод, который гарантировал бы сходимость, неизменно заканчивались неудачей. Конечно, в моделях, параметры которых могут принимать значения из конечного множества, мы теоретически можем перебрать все возможные сочетания этих величин. Однако применять этот метод на практике нельзя из-за его чрезвычайной вычислительной неэффективности. Например, если для хранения каждого из синаптических весов искусственной нейронной сети, реализованной при помощи цифровой машины, отводится 16 бит, а всего сеть содержит 100 синапсов, то нам придётся перебрать 21600 ≈ 10480 комбинаций, чтобы найти глобальный оптимум, что, разумеется, неосуществимо на практике, несмотря на весьма скромный размер сети. Теорема о сходимости перцептрона показала, что по крайней мере для некоторого частного случая можно найти метод, который будет не только практически применимым, но и математически строгим. До того как Розенблатту и его коллегам удалось доказать эту теорему, критики нейросетевых моделей фокусировали свой огонь именно на слабости математического фундамента перцептрона. Розенблатт, будучи психологом, покусился на «чужую» область и должен был быть наказан за дерзость! Когда же ему удалось представить формальное обоснование элементарного перцептрона, это хотя и стало веским ответом критикам, но в то же время и в некоторой степени легитимировало строгость последних, косвенно поддерживая предположение о том, что для «легализации» многослойных моделей необходимо столь же строгое обоснование их сходимости. Действительно, для Минского и Пейперта неспособность некоторых архитектур перцептронов решать задачи, подобные определению чётности, ставила крест на этих архитектурах. Однако при этом вопрос о том, насколько такие задачи типичны, насколько способность или неспособность той или иной модели находить решения в некоторых искусственно сконструированных случаях связана со способностью этой же модели эффективно решать типовые задачи, часто оставался за пределами дискуссии. Мы хорошо знаем, что человеческому зрению присущи различные ограничения, начиная от наличия слепого пятна и заканчивая множеством оптических иллюзий, но всё это тем не менее не означает, что человеческое зрение бесполезно.

Однако, даже если мы выйдем за пределы парадигмы математической строгости и согласимся на приближённые решения, открытым остаётся вопрос о том, как должна выглядеть эффективная процедура нахождения таких решений. Как ни странно, математики столкнулись с этой проблемой задолго до появления искусственных нейронных сетей и, более того, нашли для неё ряд весьма остроумных решений.

Давайте представим себе простейшую модель с двумя параметрами. Например, мы хотим обучить нейронную сеть, состоящую из трёх нейронов. Каждый из двух нейронов входного слоя будет связан синапсом с единственным нейроном выходного слоя, на выходе которого будет расположена функция активации. Таким образом, в модели будет всего два синапса, каждому из которых сопоставлено соответствующее значение синаптического веса. Эти веса и будут параметрами нашей модели. Трудно придумать задачу, которую может решать подобная примитивная сеть, но допустим, сеть должна будет по массе и длине тела животного определять, является это животное слоном или нет. Положим, в нашей обучающей выборке есть несколько тысяч примеров животных, для каждого из которых мы знаем массу и длину его тела, а также правильную метку класса, то есть нам известно, является ли каждое животное из обучающей выборки слоном или нет. Будем считать, что если на выходе наша сеть выдаёт единицу, то она считает животное слоном, а если ноль — не считает. Задачу обучения нашей сети можно представить в графической форме в виде некоторой поверхности. В трёхмерной системе координат по оси x отложим значение первого синаптического веса, по оси y — значение второго, а в качестве координаты z будем использовать количество неправильных ответов, выданных нашей сетью для обучающей выборки. Таким образом, задачей алгоритма обучения является нахождение самой низкой точки данной поверхности, то есть таких значений x и y, при которых количество неправильных ответов будет минимальным.

Понятно, что эту точку можно найти, перебрав все возможные пары x и y, то есть «осмотрев» всю поверхность, однако вычислительно это слишком затратная операция. Если каждый из весов может принимать 65 536 различных значений (именно столько их будет, если для хранения каждого из весов мы выделим 16 бит), то даже для нашей игрушечной задачи нам потребуется перебрать 232, то есть более 4 млрд значений. Существуют ли практичные альтернативы этому беспощадному просеиванию миллиардов вариантов?

Представим себе человека с завязанными глазами, оказавшегося на поверхности из нашей задачи в её случайной точке. Его цель — забраться в самую глубокую точку этой поверхности (по возможности за минимальное число шагов). Вполне естественным методом будет движение по этой поверхности в направлении её наибольшего уклона, пока мы не окажемся в точке с нулевым уклоном. Первым из математиков, использовавшим этот подход, стал Огюстен Луи Коши — французский математик и механик. Этот метод, предложенный Коши в 1847 г., а также множество придуманных позже его разновидностей сегодня часто объединяют в семейство, называемое «методами градиентного спуска».

Если мы приглядимся к нашей задаче повнимательнее, то заметим несколько свойственных ей досадных неприятностей. Во-первых, вся её поверхность состоит из уровней, соответствующих целым числам. Действительно, наша сеть может ошибаться в нуле, семи или 300 случаях, но не может ошибаться в ⅔ или 124,57 случая. Такая поверхность, словно бы вышедшая из игры Minecraft, почти во всех своих точках будет иметь нулевой уклон. Нам придётся долго ощупывать окрестности точки в поисках пути вниз — «биполярная» природа функции Хэвисайда играет с нами дурную шутку. Именно поэтому хитрый Уидроу, создавая ADALINE, использовал при обучении величину сигнала до прохождения его через пороговую функцию. По её значению мы можем установить, насколько наша сеть была далека от правильного ответа. Того же результата можно достичь, заменив функцию Хевисайда на какую-либо гладкую функцию активации. Теперь вместо количества ошибок мы можем использовать непрерывную метрику — например сумму квадратов отклонений прогнозов сети от правильных ответов. При выборе такой целевой функции наша поверхность становится гладкой, что упрощает задачу поиска направления наибольшего убывания функции. Во-вторых, хотя на бытовом уровне мы и понимаем, что такое направление наибольшего уклона поверхности, с математической точки зрения задача нахождения этого направления совсем нетривиальна. Коши имел дело с функциями, заданными в аналитической форме. Благодаря этому он мог использовать частные производные, посчитанные опять же аналитически, а геометрическим смыслом производной как раз и является угловой коэффициент касательной. В одномерном случае этот угловой коэффициент — скалярная величина, в нашем же — это вектор размерности 2, определяющий наклон касательной плоскости относительно каждой из двух осей, x и y. Однако наша функция, задающая зависимость ошибки сети от значения её синаптических весов, при задании аналитически становится довольно громоздкой, а способ расчёта её производной — не совсем очевидным.

Конечно, можно случайным образом ощупывать окрестности текущей точки и выбирать то направление из обследованных, которое связано с максимальным уменьшением значения целевой функции, либо, обнаружив в окрестностях текущей точки новую точку, связанную хотя бы с каким-то уменьшением, немедленно перемещаться в неё. Однако подобные методы, относимые к методам «случайного спуска» (или «случайного поиска»), обычно связаны с крайне медленной сходимостью, особенно при наличии большого количества параметров. Словом, будущее глубоких нейронных сетей во многом зависело от того, можно ли придумать вычислительно эффективный метод для расчёта градиента изменения целевой функции в пространстве весов сети. В результате такой метод был найден, хотя для его разработки и доводки до стадии зрелости потребовались усилия множества людей в течение нескольких десятилетий.

5.2.3.2 Начало поиска метода

Сегодня этот метод известен под названием «метод обратного распространения ошибки» [backward propagation of errors], причём в разговорном английском языке это название уже давно сократилось до backpropagation или даже жаргонного backprop. Хотя многие современные популярные источники относят появление этого метода к 1970-м или даже 1980-м гг., в действительности непрерывный вариант метода обратного распространения ошибки был описан ещё в начале 1960-х гг. в работах Генри Келли и Артура Брайсона[1371], [1372]. Вообще-то, Келли и Брайсон не занимались исследованиями в области нейронных сетей, их интересовал расчёт оптимальных траекторий летательных аппаратов. Например, в статье Келли «Градиентная теория оптимальных полётных маршрутов» (Gradient Theory of Optimal Flight Paths), опубликованной в 1960 г., в качестве примера рассматривалась задача управления космическим кораблём, использующим солнечный парус для путешествия между орбитами Земли и Марса[1373].

В 1962 г. Стюарт Дрейфус, младший брат Хьюберта Дрейфуса, смог несколько упростить метод Келли и Брайсона, используя принцип динамического программирования и цепное правило, применяемое при вычислении производной сложной функции[1374]. В 1960-е гг. решением сходных проблем, помимо Келли, Брайсона и Дрейфуса, занимался целый ряд учёных в разных странах. Например, в СССР исследования в этой области вёл один из самых знаменитых советских математиков — Лев Понтрягин[1375]. Потерявший в 14 лет зрение из-за несчастного случая (взрыва примуса), Понтрягин, благодаря собственному упорству и деятельной помощи матери, смог не только преодолеть выпавшие на его долю трудности, но и сделать выдающуюся научную карьеру[1376].

Однако работы этих учёных на тот момент оказались не замечены сообществом коннекционистов. В 1970 г. в магистерской диссертации финского исследователя Сеппо Линнайнмаа был представлен метод автоматического дифференцирования дискретных связанных сетей с помощью вложенных дифференцируемых функций. Описанный Линнайнмаа алгоритм фактически соответствует современной версии метода обратного распространения ошибки, однако и здесь данный метод рассматривался вне связи с нейросетевыми моделями[1377].

В наши дни неизвестны свидетельства того, что Розенблатт задумывался о применении методов градиентного спуска для обучения перцептронов. Впрочем, авторство самого термина back propagation принадлежит именно Розенблатту[1378]. Один из разделов «Принципов нейродинамики», озаглавленный «Процедуры коррекции ошибки с обратным распространением» (Back-Propagating Error Correction Procedures), посвящён описанию алгоритма обучения трёхслойного перцептрона с переменными SA-связями[1379]. Однако описанный Розенблаттом метод не имеет практически ничего общего с тем, что в наши дни называют методом обратного распространения ошибки. Использование функции Хевисайда в качестве функции активации в розенблаттовских перцептронах делало применение градиентного спуска невозможным. В несколько более выгодном положении оказался Уидроу: он успешно применял градиентный спуск при обучении однослойного ADALINE, однако в случае с MADALINE он наталкивался на ту же проблему — ступенчатая функция активации теряла важную для вычисления градиента информацию[1380].

Идея применить для обучения многослойных нейронных сетей метод, уже хорошо известный специалистам в области автоматического дифференцирования сложных функций, независимо возникла у советских и американских математиков. В США её впервые высказал Пол Вербос в диссертационной работе, увидевшей свет в 1974 г.[1381]

В начале 1970-х гг. Вербос посетил Минского в MIT и предложил ему совместную работу, идеей которой было продемонстрировать, что многослойные перцептроны могут преодолеть существующие ограничения за счёт модификации модели искусственного нейрона. Идея заключалась в замене функции активации на дифференцируемую функцию и применении метода обратного распространения ошибки для обучения многослойных сетей, составленных из таких нейронов. Однако Минский (сюрприз! сюрприз!) не выказал интереса. Вербосу не удалось заинтересовать этой идеей и других учёных из MIT, Гарварда и прочих вузов, с которыми он связывался.

По иронии судьбы Вербос черпал вдохновение отчасти в одной из ранних работ Минского, в которой тот предложил использовать обучение с подкреплением в качестве способа для создания универсального ИИ. Впрочем, первые попытки реализации этого метода были не более успешны, чем первые опыты с многослойными перцептронами[1382].

Другим неожиданным источником вдохновения для Пола Вербоса стала теория психодинамики Зигмунда Фрейда. Идеи Фрейда о принципах работы нервной системы привели Вербоса к мысли о том, что обучение в естественной нейронной сети основано на распространении подкрепления в направлении обратном нормальному течению сигнала при возникновении реакции на стимул. Это озарение, пришедшее в голову Вербоса в 1967 г., отражено в его набросках к диссертации, выполненных пятью годами позже. На тот момент ему, правда, не удалось придумать конкретный алгоритм, воплощающий этот принцип[1383].

5.2.3.3 Зигмунд Фрейд и его нейробиологические исследования

Как правило, первое, что приходит в голову неспециалисту при упоминании имени Зигмунда Фрейда, — это либидо, эго, сублимация, концепция зависти к пенису и другие сомнительные фрейдистские конструкты, научная ценность которых сегодня иногда вызывает серьёзные сомнения. Специалисты обычно обращают внимание на важный вклад Фрейда в дело становления научной психологии (например, на развитие концепции бессознательного). Но даже представители академической психологии не всегда в курсе того, что до того, как стать отцом-основателем психоанализа, Фрейд специализировался в области неврологии, занимался пионерскими нейробиологическими исследованиями, которые привлекли внимание Сантьяго Рамона-и-Кахаля и повлияли на становление нейробиологии как дисциплины. Более-менее полным собранием идей Фрейда в этой области является эссе, известное сегодня под названием «Проект научной психологии» (Project for a Scientific Psychology) или «Пролог к научной психологии» (Prologue to a Scientific Psychology). Разночтения в названии работы в данном случае вполне объяснимы: в немецком издании оно названо «Наброски психологии» (Entwurf einer Psychologie), однако название это было выбрано редакторами, оригинальная работа Фрейда оставлена без заголовка[1384].

Зигмунд Фрейд родился в 1856 г. в семье галицких евреев-хасидов Австро-Венгрии в городке Моравский Фрайберг (Freiberg in Mähren, сейчас город называется Пршибор, чеш. Příbor)[1385], расположенном неподалёку от подножия Моравско-Силезских Бескидов. Название это, в общем-то, более соответствовало историческому Vriburch — именно под таким именем город впервые упомянут в письменном источнике 1251 г.

Зигмунд был старшим из восьми детей, родившихся в браке небогатого торговца тканью Якоба Фрейда и его третьей жены Амалии. Мать Фрейда была родом из Бродов (Броды — город в Галичине, ныне Львовская область Украины) и часть своего детства провела в Одессе[1386]. Второй из детей Якоба и Амалии умер во младенчестве, а семеро, включая Зигмунда, дожили до весьма преклонных лет. Три сестры Фрейда закончили свою жизнь в концлагере Треблинка[1387].

У Якоба также было двое детей от первого брака, старший из которых сам стал отцом ещё за год до рождения Зигмунда. Таким образом, Фрейд от рождения был дядей, а его племянник стал его старшим другом в детских играх. При рождении мальчик не был, разумеется, ни Зигмундом, ни Фрейдом, поскольку фамилия его по звучанию скорее должна записываться на русском языке как Фройд, а именем, данным ему при рождении, было Сигизмунд Шломо (Шломо — в честь деда Зигмунда по отцовской линии).

Спустя четыре года после рождения мальчика семья Фрейда, находившаяся на грани разорения, была вынуждена покинуть Фрайберг. При этом дети Якоба от первого брака перебрались в Манчестер, а сам Якоб с женой и двумя детьми отправился сначала в Лейпциг, а затем — в Вену. Здесь Зигмунд окончил с отличием гимназию и в 17 лет поступил в Венский университет. Изначально Фрейд планировал изучать право, однако в итоге остановил выбор на медицинском факультете[1388]. На втором году обучения Зигмунд начал свои первые научные исследования, объектом которых стали половые органы угря. Эта работа, осуществлявшаяся под руководством знаменитого профессора-эволюциониста Карла Клауса, была, по общему мнению, весьма хорошей, однако сам Фрейд был разочарован её результатами и, возможно, встревожен перспективой расчленения в будущем ещё большего количества угрей[1389]. Поэтому в 1877 г. он перебирается в лабораторию знаменитого немецкого физиолога Эрнста фон Брюкке, где главным направлением его исследований становится изучение нервной ткани человека и других живых организмов.

Брюкке принадлежал к плеяде учёных, исследования которых в XIX в. радикальным образом изменили научную картину мира в области физиологии. В 1845 г. Брюкке, вместе с Эмилем Дюбуа-Реймоном и Германом фон Гельмгольцем, стал одним из сооснователей Немецкого физического общества (Deutsche Physikalische Gesellschaft), сыгравшего ключевую роль в ниспровержении витализма. В противовес виталистам, которые считали, что живые существа принципиально отличаются от неодушевлённых объектов тем, что обладают некоторой нефизической сущностью («жизненной силой», «витальной искрой», «энтелехией», «археей» и т. п.), Брюкке придерживался мнения, что в основе жизни лежат законы физики и химии. Этот подход был воспринят Фрейдом и воспроизведён им в его психодинамической теории.

Шесть лет Фрейд провёл в лаборатории Брюкке, занимаясь сравнительной анатомией нервной системы позвоночных и беспозвоночных. Изучая под микроскопом мозг лягушек, раков и миног, он совершил ряд важных открытий. В частности, именно Фрейд обнаружил, что нервные волокна берут своё начало в сером веществе, покрытом паутиноподобной тканью, и что спинной мозг миноги содержит недифференцированные клетки, которые впоследствии формируют корешки чувствительных нервов. Также он был первым, кто описал структуру и функции продолговатого мозга и проводящих путей, соединяющих спинной мозг и мозжечок.

Это было время острых дебатов, предшествовавших становлению нейронной доктрины. Ещё в 1830-е гг. Теодор Шванн и Маттиас Шлейден на основании данных микроскопии предположили, что все живые существа состоят из фундаментальных единиц, названных клетками. Однако вплоть до открытия «чёрной реакции» микроскопия была неспособна опровергнуть точку зрения сторонников Герлаха о том, что волокна, соединяющие клеточные тела в мозге, составляют структурно неразделимую сеть — ретикулум, поскольку синаптические щели были неразличимы в отсутствие подходящего способа окраски. Окончательное признание научным сообществом «нейронной доктрины» произошло в самом конце XIX в., когда британский нейробиолог Чарльз Шеррингтон исследовал явление синаптической связи.

Фрейд разработал свой оригинальный способ окраски ткани, напоминавший метод Гольджи. Первым компонентом окраски был, так же как и в случае «чёрной реакции», дихромат калия или жидкость Эрлицкого (2½ части дихромата калия и ½ части сульфата меди на 100 частей воды), а вот вторым — смесь равного (или половинного) объёма этилового спирта с однопроцентным водным раствором хлорида золота[1390], [1391]. В 1884 г. Фрейд публикует описание своего метода окраски в престижном научном журнале Brain[1392]. В лекции, прочитанной в том же году, Фрейд так описал свои наблюдения: «Если мы предположим, что фибриллы (нитевидные белковые структуры. — С. М.) нервного волокна играют роль изолированных проводящих путей, то мы должны признать, что пути, на которые разделены нервные волокна, сливаются в нервной клетке, — тогда нервная клетка становится „началом“ всех этих нервных волокон, анатомически связанных с ней… Я не знаю, достаточно ли существующих материалов для решения этой важной задачи. Если это предположение удалось бы подтвердить, это стало бы большим шагом вперёд в отношении физиологии нервных элементов: мы могли бы представить, что стимул определённой силы будет способен пробивать изолированные волокна так, что нерв, как единое целое, послужит проводником возбуждения и так далее»[1393], [1394].

Эта цитата показывает, что Фрейд вплотную приблизился к открытию нейронной доктрины, однако его суждения содержали изрядную степень неопределённости, которую спустя шесть лет смогли преодолеть Рамон-и-Кахаль и Вальдейер. В своей знаменитой работе «Гистология нервной системы человека и позвоночных» Рамон-и-Кахаль ссылается на наблюдения Фрейда как на свидетельства в пользу правильности нейронной доктрины[1395].

Чтение «Проекта научной психологии» Фрейда для современного читателя представляет немалую сложность примерно по тем же причинам, по которым довольно сложно разобраться в пионерских текстах Мак-Каллока и Питтса. Фрейд отчасти использует собственную оригинальную терминологию, делает множество серьёзных допущений, применяет витиеватые синтаксические конструкции. И всё же в его тексте видна опередившая своё время попытка создания непротиворечивой модели, основанной на данных физиологии и призванной объяснить возникновение различных психических феноменов физическими процессами, протекающими в нервной системе. Аналогом синапса у Фрейда является «контактный барьер». Фрейд выделяет несколько типов нейронов, в частности: Φ-нейроны, неизменно и беспрепятственно пропускающие сквозь себя возбуждающие импульсы так, как будто контактные барьеры в них полностью отсутствуют, а также Ψ-нейроны, которые пропускают импульсы частично или с затруднением и могут изменять своё состояние после каждого возбуждения, на чём, по мнению Фрейда, может быть основан феномен памяти[1396]. Впрочем, эта революционная идея вряд ли является единоличным изобретением Фрейда. Аналогичные идеи до него высказывал психиатр, невропатолог и анатом Теодор Мейнерт, директор психиатрической клиники при Венском университете, в которой с 1883 г. работал Фрейд.

Среди других известных учеников Мейнерта были друг и наставник Фрейда Йозеф Бройер; будущий нобелевский лауреат в области физиологии и медицины Юлиус Вагнер-Яурегг; русский психоневролог, один из основоположников нозологического направления в психиатрии и московской научной школы психиатрии Сергей Корсаков; немецкий невропатолог, автор психоморфологического направления в психиатрии Карл Вернике, а также уже упоминавшийся нами швейцарский психиатр и один из герольдов нейронной доктрины Огюст-Анри Форель[1397].

Словом, идея о том, что феномен памяти и, следовательно, обучения может быть основан на способности нейронов изменять способ преобразования проходящих через них нервных импульсов, в 1895 г. уже не была новинкой. Фрейд называет изменение проходимости контактных барьеров (в одном из мест прямо говорится о снижении сопротивления) словом Bahnung (дословно: «облегчение», на русский язык сейчас передаётся как «фасилитация», от англ. facilitate) и пишет о том, что память представлена в виде разницы в фасилитации контактных барьеров между Ψ-нейронами. Дальше он делает важное умозаключение: фасилитация не может быть основана только на нервном импульсе, получаемом нейроном при возбуждении (Фрейд употребляет термин Besetzung или греческий эквивалент «катексис», дословно означающий «захват, удержание, задержание»), — ведь такой импульс либо распределяется равномерно по всем контактным барьерам (синапсам) нейрона, либо проходит через наиболее фасилитированный барьер и, следовательно, не может породить необходимую разницу в фасилитации контактных барьеров. Действительно, нейрон должен каким-то образом узнать, какой именно контактный барьер должен быть фасилитирован, но это невозможно без обратного распространения сигнала. По мнению Фрейда, контактные барьеры при прохождении через них эндогенного (внутреннего) импульса удерживают его часть, чтобы затем под влиянием экзогенных (внешних) импульсов, таких как, например, боль, изменять уровень своей фасилитации[1398].

Таким образом, взятая из фрейдовских работ идея об обратном распространении в нейронной сети корректирующего сигнала послужила для Вербоса отправной точкой его размышлений, итогом которых стало изобретение алгоритма обратного распространения ошибки для обучения многослойных нейронных сетей.

Несмотря на успешное решение вопроса о том, как можно обучать многослойные нейронные сети, Вербос в своей диссертации в 1974 г. ограничился лишь короткими замечаниями по этому поводу. Подробное описание применения метода обратного распространения ошибки к обучению нейронных сетей было опубликовано[1399] Вербосом только в 1982 г. Сказывался невысокий интерес научного окружения Вербоса к этому вопросу[1400]. Возможно, отсутствие интереса Минского к ранней работе Вербоса по гамбургскому счёту оказалось куда большим вкладом первого в наступление коннекционистской зимы, чем пресловутые «Перцептроны». Впрочем, не стоит переоценивать роль личности Минского в этой истории, ведь его пессимизм лишь суммировал опыт множества исследователей, безрезультатно пытавшихся найти эффективные способы обучения многослойных перцептронов. Конечно, теплились некоторые искорки надежды, такие как идеи об обратном распространении ошибки у Розенблатта или высказанное вскользь предложение Сюнъити Амари о том, что для обучения нейронных сетей можно попробовать использовать метод наименьших квадратов[1401], [1402], являющийся основой простой линейной регрессии (без рассуждений о том, как вычислять производные, и с оговоркой, что он не ожидает многого от этого подхода)[1403], [1404]. И всё же пессимизм во второй половине 1970‑х — начале 1980-х гг. достиг своего апогея, поэтому работы Вербоса так и остались практически не замеченными научным сообществом. Повсеместное признание метода обратного распространения ошибки произошло только вслед за публикацией в 1986 г. в журнале Nature статьи Румельхарта, Хинтона и Уильямса «Выучивание представлений путём обратного распространения ошибок» (Learning representations by back-propagating errors). Её авторы упоминают в тексте Дэвида Паркера и Яна Лекуна в качестве исследователей, которые независимо открыли процедуры обучения, аналогичные описанным в статье[1405].

Не оставались в стороне и советские учёные. Диссертация Вербоса увидела свет в январе 1974 г., а в августе того же года в СССР тиражом 8000 экземпляров из печати вышла книга Александра Галушкина под названием «Синтез многослойных систем распознавания образов». Хотя Галушкин несколько раз использует в своей книге термин «нейронная сеть», в большинстве случаев он применяет более нейтральный термин — «система распознавания» (СР). Искусственные нейроны у Галушкина становятся «линейно-пороговыми элементами» (ЛПЭ), обученная сеть (т. е. сеть, предназначенная только для выполнения [inference]) — «сетью с разомкнутым контуром» и так далее[1406]. С точки зрения современной терминологии название книги Галушкина можно понимать как «Обучение многослойных нейронных сетей». Книга Галушкина стала первым систематическим изложением идей учёного, развитых им и его коллегами в предшествующие годы. Первые публикации[1407], [1408], [1409], [1410] Галушкина на тему создания и обучения многослойных нейронных сетей относятся к 1971–1973 гг.

Диссертация Вербоса, вне всякого сомнения, не была известна Галушкину. По большому счёту она в те годы не была известна, по всей видимости, никому из коннекционистов. Действительно, вряд ли кто-то всерьёз ждал фундаментального прорыва от работы под названием «После регрессии: новые инструменты для предсказания и анализа в поведенческих науках» (Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences). Термин «нейронные сети» не использовался в те времена в названиях работ ни Вербоса, ни Галушкина (как недостаточно строгий и являвшийся на тот момент обозначением модели, представлявшей, по мнению многих, лишь исторический интерес). Даже Румельхарт, Хинтон и Уильямс в 1986 г. в своей знаменитой статье[1411] следовали этому принципу.

В то же время Галушкин прекрасно знал о работах западных коннекционистов. Полюбуйтесь списком западных систем распознавания образов, который приводит Галушкин в своей книге: Mark-I, Mark-II, Papa, Kybertron, Altron, Konflex, Albert-1, Adalin, Madalin (написано именно так, без «e» на конце. — С. М.), Minos-2, Illiak-2, Illiak-3, Tobermory, GHILD, Astropower, Adapt-1, Adapt-2, DSK, Ziklop-1, Simisor, Auditran, Shubocs, Gaku и др. (sic!). В тексте книги также упоминается алгоритм обучения Штейнбуха Lernmatrix.

Галушкин рассматривает использование в нейронных сетях функций активации, отличных от функции Хевисайда и сигнума (обозначается sgn, функция знака, имеющая три возможных значения: 0, 1 и −1). Необходимость применения функций с континуумом решений у Галушкина обосновывается следующим образом: «Экспериментальное исследование данного алгоритма показало, что скорость сходимости при нахождении некоторой локальной моды мала и причиной этого является применение в многослойной СР ЛПЭ с двумя решениями, которые в значительной степени „загрубляют“ информацию о градиенте функционала вторичной оптимизации при квантовании входного сигнала. В связи с этим основным предметом исследования являлась двухслойная СР, по структуре подобная описанной выше, но состоящая из ЛПЭ с континуумом решений». В итоге выбор автора останавливается на арктангенсе, умноженном на 2/π для приведения значений функции к диапазону (−1; 1). График арктангенса, как и график популярных в наши дни логистической функции и гиперболического тангенса, является сигмоидой.

Галушкин рассматривает задачу обучения нейронной сети в качестве задачи градиентного спуска. Он применяет цепное правило для вычисления градиента, подробно рассматривает случай обучения сетей с двумя обучаемыми слоями, а также коротко показывает, как следует решать задачу в случае многослойных сетей и сетей с рекуррентными связями, но не даёт используемому им методу какого-либо собственного названия. При этом вопрос конкретной топологии сетей в книге практически не затрагивается, зато уделено внимание сетям с переменным числом слоёв — Галушкин описывает подход, напоминающий МГУА с послойным обучением и постепенно наращиваемыми слоями. Автор также приводит результаты множества экспериментов по обучению сетей с различными параметрами процесса обучения, стремясь оценить их влияние на сходимость модели[1412]. Кроме математических моделей, Галушкин совместно с В. Х. Наримановым ещё в начале 1970-х сконструировал собственную версию аппаратного перцептрона[1413].

Александр Иванович Галушкин продолжал работу над нейросетевыми технологиями до конца своей жизни и был одним из наиболее ярких лидеров этого направления в Советском Союзе, а затем и в России на протяжении более чем сорока лет. В 2007 г. издательство Springer Science & Business Media выпустило книгу[1414] Галушкина «Теория нейронных сетей» (Neural Networks Theory) на английском языке с отзывами Лотфи Заде, Сюнъити Амари и одного из знаменитых пионеров нейросетевого подхода Роберта Хехта-Нильсена. В новом тысячелетии работы Галушкина неоднократно выходили в международных научных изданиях и оказали влияние на состояние современной нейросетевой науки.

Непросто, пожалуй, найти в истории науки другой такой метод, для утверждения которого потребовались бы столь длительные и повторяющиеся усилия такого количества учёных, работавших зачастую в изоляции друг от друга. И всё-таки в итоге лёд тронулся, и нейронные сети возвратились в область видимости основного направления науки.

5.2.3.4 Теория расчёта весов и описание метода обратного распространения ошибки

Теперь, когда мы обсудили историю возникновения этого метода, самое время познакомиться с ним поглубже.

В целом задача поиска направления наибольшего убывания ошибки в пространстве весов нейронной сети соответствует задаче поиска направления коррекции каждого из синаптических весов и степени влияния изменения этого веса на величину ошибки. Любую нейронную сеть можно представить в виде алгебраического выражения, описывающего функцию ответа сети на полученные её рецептивным (входным) слоем входы. В простейшем варианте, когда сеть состоит из одного нейрона, это выражение будет иметь вид:



где x0xn — входы сети, w0wn — веса входных синапсов нейрона, а f — функция его активации. То есть все входы перемножаются на соответствующие веса, суммируются, а затем подставляются в функцию активации, значение которой и будет выходом нашего нейрона. Если одним из входов нашего нейрона является, в свою очередь, выход другого нейрона, то вместо соответствующей переменной xi мы должны будем подставить выражение, описывающее этот нейрон. Представим себе сеть из трёх нейронов:


Функция ответа такой сети будет иметь вид g(x0,x1,x2,x3)=f2 (w4 f0 (w0 x0+w1 x1 )+w5 f1 (w2 x2+w3 x3)), то есть мы подставили выражения f0(w0x0+w1x1) и f1(w2x2+w3x3), описывающие нейроны входного слоя, в выражение, описывающее нейрон второго слоя. По мере увеличения числа нейронов и синапсов эта формула будет становиться всё более и более огромной, но общий принцип будет оставаться неизменным. Трудно вообразить формулу, описывающую сеть из миллиона нейронов, но нет никаких сомнений в том, что при наличии необходимого числа карандашей, бумаги, свободного времени, слабоумия и отваги её всё-таки можно записать. Несложно сообразить, что, обладая формулой, позволяющей рассчитать ответ нейронной сети при заданном наборе входных данных, можно также составить функцию для расчёта ошибки этой сети для одного прецедента, для некоторого набора прецедентов, да даже для всей обучающей выборки. Например, в случае задачи с распознаванием слонов по массе и длине тела мы можем использовать сумму квадратов разниц ответов сети и действительных значений метки. Несложно заметить, что если наша сеть выдаёт только нули и единицы, то величина такой функции ошибки будет представлять собой количество случаев, в которых сеть выдала ответ, не соответствующий действительной метке класса. Если же наша сеть способна выдавать какие-либо величины, отличные от нулей и единиц, то такая функция ошибки позволит нам оценить близость выдаваемых сетью ответов к правильным меткам. Если все функции активации нейронной сети непрерывны и дифференцируемы, то есть имеют производную (хотя бы в текущей точке, но в идеале на всём пространстве параметров), значит дифференцируемой будет и наша функция ошибки, ведь суперпозиция дифференцируемых функций также является дифференцируемой. Следовательно, мы можем вычислить частные производные функции ошибки вдоль всех осей пространства весов нейронной сети. При расчёте частной производной все веса, кроме того, который соответствует расчётной оси, принимаются за константы, а затем применяется цепное правило для вычисления производной композиции функций.

Алгоритм обратного распространения ошибки заключается в последовательном расчёте частных производных послойно: начав с выходного слоя сети, он переходит к предпоследнему слою, затем к предшествующему ему слою и так далее. Движение в обратном направлении позволяет избежать избыточных вычислений промежуточных членов в цепном правиле и по сути представляет собой применение метода динамического программирования к вычислительному графу.

Полный набор частных производных составляет так называемую матрицу Якоби [Jacobian matrix], получившую своё имя в честь немецкого математика Карла Густава Якоба Яко́би. Каждая из частных производных определяет уклон функции ошибки в направлении соответствующей оси пространства весов сети, поэтому матрица Якоби описывает вектор направления наибольшего возрастания (а взятая с противоположным знаком — убывания) функции. Знание этого направления позволяет применить широкий арсенал методов градиентного спуска, суть которых сводится к движению в пространстве параметров модели в поиске точки с минимальным значением ошибки.

Метод обратного распространения ошибки, строго говоря, относится только к алгоритму вычисления градиента, а не к тому, как затем будет использоваться полученный градиент. Однако в современной литературе это понятие нередко применяется для обозначения всего алгоритма обучения, из-за чего возникает некоторая путаница, которой мы постараемся избежать.

Используемые в наши дни на практике алгоритмы градиентного спуска содержат множество нюансов, описание которых выходит далеко за границы этой книги, но всё же обратим внимание на некоторые из них.

Во-первых, смещение в пространстве поиска может происходить с разным шагом. Этот шаг представляет собой скалярный коэффициент, на который домножается градиент функции ошибки для вычисления смещения относительно текущей точки. Этот коэффициент принято называть скоростью обучения [learning rate]. Слишком маленькое значение скорости обучения может приводить к излишне медленному движению в сторону минимума, а также к попаданию в локальные минимумы. Вообще, локальные оптимумы являются одним из главных проклятий задач нелинейной оптимизации, ведь целевая функция совершенно не обязана быть монотонной. Если вы выйдете из своего дома и будете двигаться в направлении наибольшего уклона поверхности вниз, то, скорее всего, закончите свой путь в ближайшем овраге, а вовсе не на дне Марианской впадины, являющейся наиболее глубокой точкой на поверхности Земли.



Скорость обучения — это длина вашего шага. Если ваши шаги будут микроскопическими, то вы, скорее всего, застрянете в ближайшей выемке на асфальте. С другой стороны, слишком большие шаги могут привести к тому, что вы просто проскочите глобальный минимум. Современные алгоритмы оптимизации обычно постепенно изменяют скорость обучения. Например, на старте обучения размер шага может постепенно возрастать (этот процесс называют «разогревом» [warmup]), а затем плавно сокращаться, иногда в зависимости от изменения величины целевой функции, — в таком случае говорят об «адаптивной скорости обучения» [adaptive learning rate].

Во-вторых, распространённым трюком для борьбы со сваливанием в локальный минимум является так называемый «момент». Его проще всего понять как аналогию инерции движущегося объекта — вы не просто идёте в направлении наибольшего уклона поверхности, но и обладаете некоторой инерцией, которая позволяет вам «проскакивать» небольшие неровности. Вместо моментов первого порядка (матрицы Якоби) было бы неплохо использовать моменты второго порядка, так называемую матрицу Гессе [Hessian matrix], названную так в честь другого немецкого математика XIX в. — Людвига Отто Гессе. Использование моментов второго порядка, то есть не просто направления наибольшего изменения функции, а направления наибольшего изменения самого этого уклона, обещает более быструю сходимость. На деле вычисление моментов второго порядка связано с большими вычислительными затратами, поэтому было изобретено множество способов их приблизительного расчёта.

Важной особенностью алгоритмов оптимизации является выбор множества прецедентов, используемых для расчёта ошибки. Ошибка может быть рассчитана на всём множестве прецедентов обучающей выборки. Но в этом случае количество прецедентов очень велико и вычислительный граф, используемый для представления получившейся в итоге циклопической функции ошибки, оказывается слишком большим. В результате он может просто не вместиться в оперативную память машины, что приведёт к фатальному замедлению процесса обучения.

Другой крайностью может быть использование для расчёта ошибки случайно выбранного единичного прецедента из обучающей выборки. Но в этом случае полученное значение ошибки может слабо коррелировать с величиной ошибки на всей выборке в целом — обобщения, основанные лишь на одном примере, чаще всего являются некорректными. Кроме того, современные вычислительные машины устроены таким образом, что многие вычисления они более эффективно производят «оптом». Как и в промышленном производстве, эти современные вычислительные фабрики обеспечивают более низкую себестоимость единицы продукции тогда, когда их производственные мощности загружены на 100%. Поэтому на деле данные обучающей выборки обычно «скармливаются» нейронной сети в виде пакетов, содержащих в себе случайные подмножества прецедентов. Такие пакеты называют «мини-батчами» [mini batch] или просто «батчами». Случайное разбиение обучающей выборки на батчи, а также случайный порядок обработки батчей позволяют алгоритмам оптимизации более эффективно справляться с проблемой локальных минимумов, чем в случае с расчётом градиента на базе всей обучающей выборки. Даже если в ходе оптимизации мы оказались в таком минимуме, всегда есть шанс, что текущая точка уже не будет таким локальным минимумом для другого батча. Оптимальный размер батча зависит от конкретной задачи оптимизации, в частности от степени однородности данных в обучающей выборке (чем однороднее данные, тем величина ошибки для случайно отобранного батча будет более точным приближением для величины ошибки на всей обучающей выборке). Некоторые современные алгоритмы оптимизации могут использовать при обучении переменный размер батча, в ряде случаев это позволяет улучшить сходимость. Поскольку батч, используемый на очередном шаге оптимизации, выбирается случайным образом[1415], то алгоритмы, использующие данный подход, относятся к числу методов «стохастического градиентного спуска» (Stochastic Gradient Descent, SGD). Наиболее ранними алгоритмами данного семейства стали алгоритмы Роббинса — Монро (Robbins—Monro)[1416] и Кифера — Вольфовитца (Kiefer—Wolfowitz)[1417], созданные соответственно в 1951 и 1952 гг., разумеется, безо всякой связи с нейронными сетями. С 1960-х гг. различные варианты SGD использовались для обучения линейных регрессионных моделей, а с 1980-х — для обучения искусственных нейронных сетей. В уже упомянутой нами статье Румельхарта, Хинтона и Уильямса 1986 г.[1418] содержатся предложения об усовершенствовании стохастического градиентного спуска путём добавления так называемого момента, или, как правильнее было бы сказать по-русски, импульса (от англ. momentum — импульс). Это дополнение часто называют также методом тяжёлого шара, что отсылает нас к интуитивно понятному примеру из физического мира. Представим себе процесс оптимизации как качение массивного шара по поверхности целевой функции. Скатываясь вниз в направлении уклона, наш шар будет по инерции проскакивать локальные минимумы, поскольку обладает некоторым импульсом. Эту идею классики машинного обучения позаимствовали из написанной в 1964 г. статьи[1419], [1420] советского математика Бориса Поляка, посвящённой решению функциональных уравнений. Данный подход был позже доработан советским и бельгийским математиком Юрием Нестеровым и сегодня является частью многих современных вариантов SGD.

В наши дни для обучения нейронных сетей применяется множество различных алгоритмов стохастического градиентного спуска: AdaGrad[1421], ADADELTA[1422], RMSProp[1423], Adam[1424], Nadam[1425], AdamW[1426], Adan[1427], Neograd[1428], NovoGrad[1429], Adai[1430], Shampoo[1431], Distributed Shampoo[1432], Sophia[1433], Lion[1434] и так далее. Их количество сегодня уже перевалило за сотню[1435].

Выбор наилучшего оптимизатора сильно зависит от особенностей конкретной задачи, и, к сожалению, не существует универсального рецепта на все случаи жизни. Кроме того, успех оптимизации может сильно зависеть от выбора начальной точки (или множества начальных точек), поэтому отдельным важным вопросом является вопрос об инициализации весов нейронной сети. В начале процесса обучения сети её веса обычно инициализируют псевдослучайными значениями, но какими должны быть параметры распределения этих значений? Должны ли они быть одинаковыми во всех слоях или же должны каким-то образом зависеть от глубины слоя? Как это ни странно, от ответа на этот, казалось бы, второстепенный вопрос в действительности зависит многое.

5.2.4 Глубокое обучение: многослойные нейронные сети с регулярной структурой

Генетический код не определяет и не может определять природу и положение каждого капилляра в организме или каждого нейрона в мозге. Что он может сделать, так это описать базовый фрактальный паттерн, который их создаёт.

Академик Прохор Захаров. Нелинейная генетика

Трудно в наши дни найти человека, который хотя бы раз не слышал термин «глубокое обучение». Популярность этого понятия так велика, что оно, казалось бы, не требует определения, все и так знают, что глубокое обучение — это область машинного обучения, основанная на применении глубоких нейронных сетей. Но что такое «глубокая нейронная сеть»? На каком количестве слоёв заканчиваются неглубокие и начинаются глубокие сети? Вопрос этот не менее сложен, чем вопрос, с какого количества зёрен начинается куча.



Дальше — больше. Считаем ли мы слоями именно слои нейронов или же слои синаптических связей, содержащих параметры модели? И если второе, то должны ли эти слои всенепременно содержать обучаемые параметры? Вспомним перцептрон Mark I Фрэнка Розенблатта, в котором было три слоя нейронов (S, A, R) и два слоя синаптических связей: SA и AR, из которых связи AR были обучаемыми, а связи SA настраивались вручную. И наконец, можно ли считать нейронными сетями модели, в основе которых лежат не «классические» нейроны со взвешенным суммированием входов и последующей подстановкой суммы в функцию активации, а какие-нибудь «неклассические» элементы, например элементы, основанные на полиномах Колмогорова — Габора, как в методе учёта групповых аргументов Ивахненко? В зависимости от ответов на эти вопросы родоначальниками глубокого обучения можно считать и Мак-Каллока с Питтсом, и Эшби, и Розенблатта, и Уидроу, и даже Хинтона с Румельхартом. Как часто бывает, в некоторой «пограничной» зоне даже общепринятые термины порой становятся ненадёжными из-за некоторой размытости их границ. Конечно, сеть с двумя слоями нейронов (S и R) и одним слоем синаптических связей никто не назовёт глубокой, и, конечно же, современная нейросетевая архитектура с десятками или даже сотнями слоёв, безусловно, является глубокой, но весьма сложно провести чёткую формальную границу, отделяющую глубокие сети от неглубоких.

Не добавляет ясности и история происхождения самого термина. Впервые он появился в работе[1436] израильской исследовательницы Рины Дехтер в 1986 г. Проблема, правда, заключается в том, что использован он был хотя и в контексте машинного обучения, но не по отношению к нейросетевым моделям. В работе Дехтер рассматриваются задачи поиска решения, удовлетворяющего некоторым ограничениям (constraint-satisfaction-problems, CSP), при этом способом решения является перебор вариантов. Deep learning — название, которое автор работы дала одной из разновидностей этого перебора. В 1980-е и 1990-е гг. слово deep в мире ИИ принадлежало скорее к области переборных алгоритмов — появившись в названии Deep Thought (затем Deep Blue), оно быстро утвердилось как приставка в названии шахматных программ, использовавших параллельные вычисления (Deep Fritz, Deep Shredder, Deep Junior и т. д.).

Широко распространено мнение[1437], [1438], [1439], что первое применение определения «глубокий» в отношении искусственных нейронных сетей (и/или их обучения) относится к 2000 г., когда свет увидела книга «Многоуровневые и универсальные бинарные нейроны» (Multi-Valued and Universal Binary Neurons. Theory, Learning and Applications)[1440], написанная Игорем Айзенбергом, Наумом Айзенбергом и Йосом Вандевалле. Однако, по моему мнению, в данном случае речь вовсе не идёт о глубоких нейросетевых моделях. Судите сами, вот как выглядит фрагмент, в котором современные историки нейронных сетей видят первое упоминание глубокого обучения: «1960-е — интенсивное развитие пороговой логики, начало которому было положено предшествующими результатами в теории перцептронов. Глубокое изучение свойств пороговых булевских функций, как одних из наиболее важных объектов, рассматриваемых теорией перцептронов и нейронных сетей» [1960-s — intensive development of the threshold logic, initiated by previous results in perceptron theory. A deep learning of the features of threshold Boolean functions, as one of the most important objects considered in the theory of perceptrons and neural networks]. Далее в качестве примеров этого «глубокого изучения» идут ссылки на монографии Дертоузоса[1441] и Муроги[1442], в которых действительно исследуются вопросы синтеза схем, построенных из пороговых элементов (аналогичных нейронам перцептрона Розенблатта). В этих забытых образчиках исследований времён первой коннекционистской весны действительно можно найти некоторые архитектуры, которые можно было бы отнести к глубоким нейронным сетям. Например, на рисунке ниже показана любопытная архитектура, рассматриваемая в монографии Дертоузоса, — так называемая порогово-каскадная сеть (Threshold-Cascade Network).


Рис. 101. Архитектура порогово-каскадной сети из монографии Дертоузоса

Сигналы входов этой сети транслируются сразу во все её слои. Эти «перепрыгивающие» соединения роднят порогово-каскадную сеть с некоторыми современными нейросетевыми архитектурами, однако в каждом слое порогово-каскадной сети есть всего один нейрон. В целом работы Дертоузоса и Муроги посвящены детальному анализу свойств сетей (при помощи весьма оригинальных математических методов, таких, например, как спектральный анализ), состоящих из одного или крайне небольшого числа элементов. Хотя некоторые из изученных в вышеозначенных работах архитектур можно отнести к многослойным нейронным сетям, внимательное чтение «Многоуровневых и универсальных бинарных нейронов» позволяет понять, что авторы этой книги не пытались ни ввести новое понятие, ни сказать, что работы Дертоузоса и Муроги стали началом нового направления. Напротив, авторы повторяют широко распространённое заблуждение о том, что Минский и Пейперт в «Перцептронах» указали на наличие ограничений у «однослойных» перцептронов и что в результате одним из направлений дальнейшего развития искусственных нейронных сетей стало создание многослойных перцептронов. Это выглядит вдвойне странно, если учесть, что монография Дертоузоса была написана за четыре года до книги Минского и Пейперта. Словом, ни «Многоуровневые и универсальные бинарные нейроны», ни тем более работа Дины Рехтер не имеют отношения к появлению термина «глубокое обучение» в его современном значении. Но тогда возникает вопрос: кто и когда на самом деле ввёл в оборот это понятие?

По всей видимости, первенство здесь принадлежит Джеффри Хинтону и его коллегам. В 2006 г. в своих работах[1443], [1444] они используют термины «глубокий автокодировщик» [deep autoencoder], «глубокая сеть» [deep network], а также вводят в оборот новую модель — «глубокие сети доверия» (Deep Belief Networks, DBN). Интересно, что в том же году авторы статьи «Цифровая многослойная нейронная сеть, устойчивая к сбоям множества весов и нейронов» (A Multiple-Weight-and-Neuron-Fault Tolerant Digital Multilayer Neural Network)[1445] Тадаёси Хорита, Такуроу Мурата и Ицуо Таканами используют в ней термин «метод глубокого обучения» [deep learning method] в качестве названия для созданного ими алгоритма обучения многослойных нейронных сетей. Термин «глубокое обучение» окончательно утвердился в среде специалистов по нейронным сетям только с выходом в 2016 г. одноимённой статьи[1446] в журнале Nature. Словом, несмотря на то что сами многослойные искусственные нейронные сети были известны уже давно, понятие «глубокое обучение» является довольно молодым. Вообще, идея, что для решения сложных задач ИИ, по всей видимости, нужно стремиться к созданию больших многослойных сетей, была очевидна ещё на заре коннекционизма — решение подсказывала сама природа. Однако проблема заключалась в том, чтобы научиться эффективно обучать такие сети. В первую очередь стоял вопрос о том, как нужно изменить сами многослойные сети, чтобы сделать их обучаемыми.

Среди шутливых хакерских коанов есть один, в котором упоминаются одновременно Марвин Минский и нейронные сети:

Однажды, когда Сассман, будучи ещё простым послушником, сидел за терминалом PDP-6, к нему подошёл Минский.

— Что ты делаешь? — спросил Минский.

— Я обучаю случайно соединённую нейронную сеть играть в крестики-нолики, — ответил Сассман.

— А почему твоя сеть соединена случайным образом? — поинтересовался Минский.

— Чтобы у неё не было никаких предубеждений о том, как нужно играть.

Тогда Минский закрыл глаза.

— Зачем ты закрыл глаза? — спросил Сассман своего учителя.

— Чтобы эта комната стала пуста.

В этот момент Сассман просветлился[1447].



По всей видимости, в основе этого коана лежит реальная история. Сассман действительно сказал Минскому, что использует в своей программе метод рандомизации, поскольку хочет, чтобы у машины не было никаких предзаданных представлений о задаче. Минский ответил: «Ну, они у неё есть, просто ты не знаешь, какие именно». Эти слова произвели большое впечатление на Сассмана. Затем Минский продолжил, сказав Сассману, что мир построен определённым образом и самое важное, что мы можем сделать с этим миром, — это избежать случайности и выяснить способы, с помощью которых можно было бы осуществлять планирование[1448].

Важность проблемы топологии нейронных сетей осознавалась как Розенблаттом, который посвятил этой теме немалую долю текста «Принципов нейродинамики», так и Минским в его анализе способности нейронных сетей вычислять предикаты чётности и связности. Каким бы мощным инструментом ни был метод обратного распространения ошибки, задача обучения больших полносвязных сетей довольно быстро становится неподъёмной по мере увеличения количества их нейронов. Да и естественные нейронные сети в своей топологии явно далеки от полносвязных: каждый нейрон человеческого мозга связан лишь с несколькими тысячами из почти сотни миллиардов других нейронов. В своих поисках эффективных архитектур искусственных сетей Розенблатт, вполне ожидаемо, обратился к данным нейрофизиологии.

В «Принципах нейродинамики» содержатся ссылки на наиболее передовые для начала 1960-х исследования в области нейрофизиологии. Здесь мы находим отсылки к работам Роджера Сперри; Летвина, Мак-Каллока, Питтса и Матураны (та самая работа про глаз и мозг лягушки); Стюарта Сазерленда (исследование зрения осьминогов) и замечательным результатам, полученным Торстеном Визелем и Дэвидом Хьюбелом в процессе изучения зрительной коры кошек[1449]. Примечательно, что Сперри, Визель и Хьюбел в 1981 г. разделят Нобелевскую премию в области физиологии и медицины.

Существует мнение, что Розенблатт вплотную приблизился к идее создания свёрточных нейронных сетей[1450]. Как показывают его статьи[1451], [1452], он пытался построить нейронную сеть, которая бы моделировала работу зрительного аппарата живого существа. Эксперименты Розенблатта с элементарными перцептронами явственно демонстрировали, что полносвязная или связанная случайным образом сеть обладает низкой эффективностью, то есть неспособна учиться достаточно быстро. Розенблатт искал механизмы, позволяющие сократить число параметров модели, а также объяснить существование механизма долгосрочной памяти. Эти теоретические размышления, а также результаты опытов по переносу памяти у крыс убедили его в том, что в мозге существует механизм, позволяющий передавать информацию о величинах синаптических весов из одной области в другую. Розенблатт предположил, что это может происходить химическим путём, но в итоге наука нашла другие объяснения (хотя и отдалённо похожие на идеи Розенблатта). Этому как раз способствовали результаты, полученные Хьюбелом и Визелем.

5.2.4.1 Роль котиков в развитии нейронных сетей

Хьюбел и Визель занимались изучением первичной зрительной коры (V1), также называемой «полем Бродмана 17» или же «стриарной корой». Последнее название происходит от латинского слова stria, то есть «полоса», и отражает тот факт, что здесь отчётливо видна полоска Дженнари (наружная полоска Байярже), образованная конечными отделами покрытых миелиновой оболочкой аксонов, отходящих от нейронов латерального коленчатого тела и заканчивающихся в IV слое серого вещества. Выучив все эти термины, вы сможете без особого труда подавлять в споре недостаточно уверенных в себе оппонентов.

Именно в зрительную зону V1 попадают нервные импульсы нейронов зрительного нерва, генерируемые сетчаткой. Все остальные чувствительные к зрительным сигналам участки мозга связаны с глазами строго через зону V1. У млекопитающих зона V1 занимает задний полюс затылочной доли каждого полушария. Это наиболее простая и по происхождению более «древняя» из зон коры головного мозга, связанных со зрением.



Но перед рассмотрением эксперимента Хьюбела и Визеля надо обсудить важные особенности строения коры головного мозга.

Кора головного мозга человека представляет собой плотно уложенный складками слой нервной ткани толщиной около двух — четырёх миллиметров[1453]. Если развернуть этот слой, то площадь коры одного полушария составит порядка 1000–1400 квадратных сантиметров[1454]. Под микроскопом в ткани коры можно разглядеть множество нейронов — примерно 100 000 на квадратный миллиметр.

Клеточные тела образуют несколько слоёв, в каждом из которых плотность их размещения практически постоянна, но более плотные слои перемежаются менее плотными. Ещё в конце XIX в. учёным удалось установить, что кора подразделяется на области, выполняющие различные функции (локализация функций). Обширным источником знаний о функциональных зонах коры стали клинические данные. Врачи неоднократно отмечали, что черепно-мозговые травмы, в зависимости от их локализации, могут вызвать слепоту, паралич, онемение или потерю речи, при этом слепота может быть как полной, так и ограниченной некоторой частью зрительного поля, а онемение может затрагивать как всю конечность, так и только несколько пальцев. Изучение взаимосвязей между местом повреждения коры и участком проявления на теле позволило со временем составить общую карту коры, выделив тем самым зрительную, слуховую, соматосенсорную (отвечающую за ощущения тела), речевую и моторную кору.

Тщательный анализ коры с помощью микроскопа и улучшенных способов окраски показал, что, несмотря на относительную однородность, в коре существуют структурные различия, хорошо коррелирующие с картой локализации функций. Дополнительные подтверждения этого были получены в ходе изучения электрической активности мозга, возникающей при стимуляции организма при помощи прикосновений, звуков или световых раздражителей. Сходным образом, наблюдая за движениями тела в ответ на электрическую стимуляцию коры, удалось также составить и карту двигательных зон. Это систематическое картирование коры вскоре привело к фундаментальному выводу: в большинстве случаев сенсорные и моторные зоны мозга представляли собой «проекции» соответствующих областей тела. Стало ясно, что тело сопоставлено соматосенсорной и моторной областям коры, при этом полю зрения соответствует первичная зрительная кора площадью около 15 квадратных сантиметров. В первичной зрительной коре карта достаточно проста, поскольку не содержит НИ ЕДИНОГО РАЗРЫВА, за исключением примечательного разделения поля зрения посередине, причём левая его половина проецируется на кору правого полушария головного мозга, а правая — на кору левого полушария.

Важной особенностью корковых (также говорят «кортикальных», от лат. corticalis — кора) карт является их переменный масштаб: одна и та же площадь поверхности тела, в зависимости от конкретного участка, может отображаться в различные по площади участки коры. Например, квадратному миллиметру поверхности пальцев, губ или языка соответствует бóльшая площадь коры, чем квадратному миллиметру поверхности ягодиц или спины, а квадратный миллиметр центральной части сетчатки глаза представлен в коре мозга примерно в 35 раз детальнее, чем квадратный миллиметр её периферической части.

Во многих учебниках по нейрофизиологии можно обнаружить изображение удивительного существа — соматосенсорного гомункулуса. В основу гомункулуса положена фигурка человека, но размеры разных анатомических областей его тела выполнены в масштабе, пропорциональном числу находящихся в них рецепторов и, соответственно, площади, приходящейся на эти анатомические области зоны соматосенсорной коры.


Рис. 102. Соматосенсорный гомункулус

Эта особенность кортикальных карт была задокументирована в начале 1940 гг. — в пионерских исследованиях Клинтона Вулси[1455] и Эдгара Эдриана[1456], в которых было отмечено, что частям тела, обладающим наибольшей чувствительностью, соответствуют наибольшие по площади зоны кортикальных проекций[1457].

Иногда части тела гомункулуса располагают вдоль схематического изображения коры, что делает его ещё страшнее.


Рис. 103. Схематичное изображение коры мозга и соответствующих ей частей тела

Следующим важным шагом в изучении структуры и функций коры (вслед за открытием кортикальных карт) мы обязаны Рамону-и-Кахалю и его ученику Рафаэлю Лоренте де Но — им удалось установить, что операции, выполняемые корой над получаемой информацией, локальны. Чтобы понять это, можно взглянуть на схемы соединения нейронов в коре, построенные с использованием «чёрной реакции», и увидеть следующее: пучки нервных волокон (длинных отростков нейронов) приносят информацию в некоторую область коры, затем, пройдя через несколько синапсов, сигналы распространяются на всю её глубину, информация обрабатывается, и после этого другие пучки волокон передают модифицированную информацию за пределы данной области. Конкретные схемы связей между входами и выходами различаются между областями коры, но в пределах одной области они выглядят довольно похожими. Общим для всех областей коры является локальный характер связей: информация, передаваемая в кору одним волокном, может распространиться на всю глубину коры, пройдя всего три или четыре синапса, но боковое распространение сильно меньше (несколько миллиметров, небольшая часть обширной протяжённости коры)[1458].

Именно из этого наблюдения возникла идея создания искусственных нейронных сетей с несколькими слоями «локальных» нейронов. На ограничения именно таких сетей Минский и Пейперт указывали[1459] в своих «Перцептронах», получив[1460] в ответ на свою критику замечание Генри Блока, что человеческое зрение также не свободно от упомянутых ограничений.

В 1920-е гг. в работах Ивана Павлова была высказана гипотеза о том, что различные зоны коры больших полушарий головного мозга выполняют функции анализаторов: «Таким образом, после всех наших опытов мы можем сказать, что большие полушария представляют собой совокупность анализатора, с одной стороны, для анализа внешнего мира, как, например, глазной, ушной анализаторы, с другой стороны — для анализа внутренних явлений, как, например, двигательный анализатор». Основной функцией анализатора, по Павлову, является его способность «разлагать сложные явления на отдельные элементы»[1461]. Современный специалист по глубокому обучению сказал бы, что различные зоны коры являются по сути «экстракторами фичей» (т. е. отвечают за выделение признаков).

Гипотеза Павлова нашла подтверждение в исследованиях Хьюбела и Визеля, которые смогли детально разобраться в конкретных функциях, выполняемых первичной зрительной корой. Выяснилось, что её нейроны реагируют не просто на наличие или отсутствие света, падающего на сетчатку. В действительности их активация зависит от схемы освещения. Конкретные визуальные структуры являются необходимыми и достаточными стимулами для разных типов нейронов коры. Например, один из типов клеток избирательно реагирует на полосу света с определённой ориентацией (вертикальной, наклонной или горизонтальной), перемещающуюся в определённом направлении в определённой части поля зрения. На срабатывание этих клеток не влияет рассеянный свет, полоса неправильной ориентации или полоса, движущаяся в неправильном направлении. Следовательно, потенциалы действия клеток первичной зрительной коры передают высшим центрам мозга информацию о тех или иных структурах, выявленных в поле зрения.

Эксперименты Хьюбела и Визеля стали продолжением исследований Штефана Куффлера[1462], американского нейрофизиолога венгерского происхождения, которого иногда называют отцом современной нейрофизиологии[1463]. Именно Куффлер в 1953 г. провёл первый экспериментальный анализ зрительной системы млекопитающих, сосредоточившись на организации рецептивного поля и значении сигналов в зрительном нерве кошки.

Как и Куффлер, Хьюбел и Визель использовали единичные электроды для регистрации активности отдельных нейронов. Эта процедура может показаться весьма неплодотворным способом изучения функций, в которых участвует большое количество клеток. Какова вероятность того, что исследователи смогут понять сложные закономерности работы мозга, наблюдая активность безнадёжно малой доли общего числа нейронов? Однако упорядоченный характер структуры связей клеток зрительной коры существенно упростил задачу Хьюбела и Визеля: смежные точки сетчатки соответствуют смежным точкам поверхности коры. Первичная зрительная зона коры устроена таким образом, что каждому крошечному сегменту поля зрения соответствует идентичный набор нейронных анализаторов. Задача, с которой столкнулись Хьюбел и Визель в 1958 г., состояла в том, чтобы выяснить, как сигналы, обозначающие маленькие, яркие, тёмные или цветные пятна в сетчатке, преобразовываются в сигналы, которые передают информацию о форме, размере, цвете, движении и глубине объектов, в то время как современные методы нейровизуализации (пометка нейронов при помощи инъекции пероксидазы хрена, диффузная оптическая томография и другие) ещё не были созданы[1464].

И всё-таки исследователей ждал успех. Вот так Хьюбел описал в своей нобелевской речи эксперимент, который привёл к прорыву в понимании функций первичной зрительной коры:

Наше первое настоящее открытие случилось совершенно неожиданно. На протяжении двух или трёх часов у нас ничего не получалось. Затем постепенно мы начали различать какие-то смутные и непостоянные ответы при стимуляции где-то на границе между центром и периферией сетчатки. Мы как раз вставляли слайд на стекле в виде тёмного пятна в разъём офтальмоскопа, когда внезапно, через аудиомонитор (по сути обычный динамик — устройство, преобразующее электрические импульсы в звуковые сигналы. — С. М.), клетка зарядила как пулемёт. Спустя некоторое время, после небольшой паники, мы выяснили, что же случилось. Конечно, сигнал не имел никакого отношения к тёмному пятну. Во время того, как мы вставляли слайд на стекле, его край отбрасывал на сетчатку слабую, но чёткую тень в виде прямой тёмной линии на светлом фоне. Это было именно то, чего хотела клетка, и, более того, она хотела, чтобы эта линия имела строго определённую ориентацию. Это было неслыханно. Сейчас даже трудно подумать и представить себе, насколько далеко мы были от какой-либо идеи относительно того, какую роль могут играть клетки коры в обычной жизни животного[1465].

Статья Хьюбела и Визеля «Рецептивные поля отдельных нейронов в стриарной коре кошки» (Receptive fields of single neurons in the cat’s striate cortex)[1466] увидела свет в 1959 г., практически одновременно со статьёй Летвина и Матураны о глазе и мозге лягушки и за два года до «Принципов нейродинамики» Розенблатта. Производя обзор находок нейрофизиологов, Розенблатт отмечает, что высказанная им в статье 1958 г. идея об архитектуре сети, способной распознавать контуры объектов и основанной на нейронах A‑слоя с круговыми или эллиптическими распределениями входящих синапсов, вполне соотносится с данными Хьюбела и Визеля. Рассуждая о перспективных способах построения сложных искусственных нейронных сетей, Розенблатт среди прочего предлагает использовать «простые пространственные ограничения (градиенты, направленное смещение или распределения соединений, заданных небольшим количеством параметров)»[1467]. Это предложение, как и многие другие идеи Розенблатта, несмотря на свой общий характер, во многом опередило своё время. К сожалению, в работах Розенблатта эта мысль не получила дальнейшего развития, однако результаты, полученные Хьюбелом и Визелем, не были забыты коннекционистами.

Повторяющиеся локальные структуры первичной зрительной коры, приспособленные к выявлению различных признаков в потоке зрительной информации, невольно подталкивали разработчиков искусственных нейронных сетей к мысли, что крупномасштабные сети могут быть собраны из однотипных строительных элементов подобно тому, как сложные объекты могут быть собраны из детского конструктора, состоящего из сравнительно небольшого набора деталей. Локальность структур (т. е. такой характер связей, при котором нейроны преимущественно связаны внутри сравнительно небольших групп и лишь немногие нейроны содержат связи с другими группами) позволяла существенно уменьшить количество синаптических весов сети и, значит, сократить вычислительные затраты при её обучении и использовании. Кроме того, если целый слой сети состоит из однотипных элементов, то, возможно, они все могут быть написаны одним и тем же набором синаптических весов? Это позволит ещё сильнее сократить количество параметров модели.

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]. Карта признаков представляет собой трёхмерный массив (или, как модно говорить в наши дни, трёхмерный тензор), составленный из плоскостей для каждого из ядер свёртки (сейчас вместо термина «плоскость» чаще используется термин «канал»).

Если сеть составить только из описанных выше свёрточных слоёв, то каждый следующий слой будет содержать всё большее и большее количество нейронов, ведь входу каждого свёрточного слоя размером w × h нейронов (где w — ширина, а h — высота слоя) будет соответствовать выход размером w × h × d (где d — количество каналов карты признаков). Понимая это, Фукусима использовал также специальные слои сети для понижения размерности данных, так называемые C-слои. Каждый C-нейрон, так же как и S-нейрон, получал сигналы от нейронов в квадратной по форме зоне предыдущего слоя, однако эти соединимые области C-нейронов не пересекались между собой. Далее C-нейрон усреднял сигналы, полученные им на вход, и передавал в следующий слой полученное усреднённое значение. Производимая им операция напоминает понижение размера картинки в графическом редакторе: уменьшая картинку размером 100 × 100 пикселей до размера 50 × 50, графический редактор обычно просто разделяет исходную картинку на квадратики размером 2 × 2 пикселя, усредняет цвет внутри квадратика и этот усреднённый цвет делает цветом соответствующего пикселя результирующего изображения. Сегодня такие слои называют слоями «пулинга» [pooling] или «субдискретизации» [subsampling]. Вместо функции усреднения в наши дни чаще всего используют операцию «максимизирующего пулинга» [max pooling], при котором C-нейрон не усредняет входные значения, а отбирает среди них максимальное, а разновидность пулинга, использованная Фукусимой, сегодня называется «усредняющим пулингом» [mean pooling].

На момент изобретения неокогнитрона Фукусима не был знаком с методом обратного распространения ошибки. Фокус его исследований был сосредоточен на собственном методе обучения сети без учителя — и это, конечно, серьёзно ограничивало возможности новой модели.

5.2.4.3 Ян Лекун: внедрение метода обратного распространения ошибки для обучения свёрточных нейронных сетей

Первые применения метода обратного распространения ошибки для обучения свёрточных нейронных сетей относятся ко второй половине 1980-х. В области компьютерного зрения первым исследователем, которому удалось совместить две решающие новации в одной модели, стал франко-американский исследователь Ян Лекун, в ту пору являвшийся сотрудником Исследовательского подразделения адаптивных систем в AT&T Bell Laboratories в Холмделе (Нью-Джерси, США). Именно здесь Лекун разработал ряд новых моделей машинного обучения, созданных под влиянием данных об устройстве биологических систем. К числу этих моделей относились и свёрточные нейронные сети, постепенное совершенствование которых в последующем и привело к прорыву в области компьютерного зрения. В 2018 г. вклад Яна Лекуна в дело революции глубокого обучения был отмечен престижной премией Тьюринга, которую Лекун разделил с Джеффри Хинтоном и Йошуа Бенджио. Премия была вручена с формулировкой «За концептуальные и инженерные прорывы, которые сделали глубокие нейронные сети критически важным компонентом вычислений»[1472].

Ян Лекун родился в коммуне Суази-су-Монморанси, в 15 км от Парижа. Его фамилия в прошлом писалась раздельно — Le Cun — и произошла от старой бретонской формы Le Cunff, что буквально означало «хороший парень»[1473]. В англоязычных источниках фамилия Лекун обычно записывается с заглавной буквой C в середине — LeCun, но русский язык не любит таких вольностей, поэтому в русскоязычных источниках он стал просто Лекуном. Окончив Высшую инженерную школу (École Supérieure d’Ingénieurs en Électrotechnique et Électronique, ESIEE) в Париже, Лекун в 1983 г. поступил на программу углубленного обучения [d’etudes approfondies] в Университет Пьера и Марии Кюри (Université Pierre et Marie Curie), где в 1987 г. получил степень доктора философии по информатике. Его диссертация была посвящена разработке одной из ранних разновидностей метода обратного распространения ошибки. С 1987 по 1988 г. Лекун был постдокторантом в Университете Торонто, где работал под началом Джеффри Хинтона, после чего устроился на работу в AT&T Bell Laboratories[1474]. Лекун так в шутку формулирует своё кредо: «Я воплощаю в себе всё, что так раздражает религиозных правых: учёный, атеист, левый (по американским меркам, по крайней мере), профессор университета и француз»[1475].

Руководителем подразделения, в котором оказался Лекун, был Лоуренс Джекел — один из разработчиков системы для распознавания цифр в рукописных почтовых индексах. Основой этой системы, воплощённой в виде отдельной специализированной СБИС, был «экстрактор признаков», напоминавший неокогнитрон, свёрточные ядра которого (размером 7 × 7) подбирались создателями системы вручную. Выходы экстрактора признаков изначально анализировались при помощи классических алгоритмов кластеризации, таких как метод k‑ближайших соседей и метод окна Парзена — Розенблатта. Однако затем создатели системы заменили выход экстрактора признаков на небольшую полносвязную нейронную сеть, которая справлялась с задачей классификации цифр значительно лучше. Создателям системы удалось достичь уровня ошибки в 6% на тестовом наборе данных[1476], что стало небольшим, но всё же улучшением предшествующего результата.

Лекун совершил ещё один шаг вперёд — он сделал все веса нейронной сети изменяемыми в процессе обучения, отказавшись от вручную подобранных свёрточных ядер, и применил для вычисления синаптических весов метод стохастического градиентного спуска, основанный на методе обратного распространения ошибки. В результате уровень ошибки на тестовой выборке снизился ещё на один процентный пункт — до 5%[1477].



В 1998 г. в результате исследований Лекуна, Леона Ботту, Йошуа Бенджио и Патрика Хаффнера увидела свет архитектура свёрточной нейронной сети LeNet-5, ставшая классической. Эта сеть состоит из трёх свёрточных слоёв, перемежаемых слоями максимизирующего пулинга, и завершается на выходе двумя полносвязными слоями. Данная сеть оказалась способна распознавать рукописные цифры размером 32 × 32 пикселя, достигнув уровня ошибки в 0,8% на тестовой выборке при использовании датасета MNIST[1478].

Основным «классическим» конкурентом LeNet-5 на тот момент был метод опорных векторов [support vector machines или support vector method, SVM], а точнее — его разновидность под названием V-SVM, разработанная Бернхардом Шёлькопфом и его коллегами. В основе SVM лежит идея построения оптимальной разделяющей гиперплоскости, предложенная в 1963 г. Владимиром Вапником и Алексеем Червоненкисом. В 1992 г. Бернхард Босер, Изабель Гийон и Вапник придумали способ создания нелинейного классификатора за счёт объединения этой идеи с идеей перехода от скалярных произведений к произвольным ядрам[1479]. Последняя идея известна в наши дни под названием kernel trick, она была предложена впервые Марком Айзерманом, Эммануилом Браверманом и Львом Розоноэром для метода потенциальных функций[1480]. Звезда SVM взошла в середине 1990-х гг. — новый метод обучения с учителем, благодаря своей математической изящности и впечатляющим результатам, пленил сердца многих специалистов в области машинного обучения. Вообще вклад Вапника и Червоненкиса в математический фундамент современной теории машинного обучения трудно переоценить. Например, ими был разработан способ оценки выразительной силы (иногда также употребляют термины: ёмкость, сложность, богатство, гибкость) моделей-классификаторов на основе так называемой комбинаторной размерности, более известной в наши дни под названием размерность Вапника — Червоненкиса или VC-размерность[1481]. Лучший результат метода V-SVM (модификация SVM) на MNIST в 1998 г. совпадал с результатом Лекуна, обеспечивая те же 0,8% ошибки на тестовой выборке. Однако объём вычислений, необходимый V-SVM для достижения такой точности, многократно превышал[1482] объём вычислений, необходимый LeNet-5. В очередной раз научное сообщество было поставлено перед фактом: нейронные сети, как ту стюардессу из анекдота, не стоило хоронить так быстро.

Свёрточные нейронные сети Лекуна не были первой моделью, воплощающей в себе принцип построения глубоких нейронных сетей на основе параметризованных слоёв с регулярной структурой и обучающейся с применением метода обратного распространения ошибки. Первой такой моделью стала нейронная сеть с временно́й задержкой (Time delay neural network, TDNN), впервые представленная научной общественности в 1987 г. Её создатели — Александр Вайбель, Тосиюки Ханазава, Киёхиро Сикано, Кевин Лэнг и вездесущий Джеффри Хинтон — использовали эту архитектуру в задачах распознавания речи. Входным представлением для TDNN является спектрограмма анализируемого звука, к которой последовательно применяются операции свёртки вдоль осей времени и частотных диапазонов. Именно для TDNN в 1990 г. Коуити Ямагути и его коллеги впервые предложили использовать максимизирующий пулинг. Целью этой работы было создание системы для качественного распознавания речи без привязки к конкретному голосу. TDNN-сети нередко применяются для решения задач в области обработки речи и в наши дни. По всей видимости, в силу того, что TDNN-сети использовались для обработки звука, а не изображений, про них иногда забывают, рассуждая об истории свёрточных нейронных сетей. По современной классификации TDNN-сети считаются свёрточными, что создаёт видимый парадокс: TDNN‑сети были свёрточными сетями ещё до того, как это стало мейнстримом появились свёрточные сети.

Конструктор, из которого современные разработчики собирают свёрточные нейронные сети, за последние два десятилетия обзавёлся множеством новых деталей. Различными могут быть размеры и формы (форма задаётся за счёт введения маски для ядра свёртки) свёрточных ядер, вертикальный и горизонтальный шаг [stride] между ними (а также шаги в других измерениях, если используется свёртка с большим числом измерений), поле свёртки может выходить за границы слоя с различным размером дополняющего [padding] поля. Сеть может включать в себя разное количество слоёв свёртки, пулинга (максимизирующего, усредняющего, пулинга с областью интереса и т. д.), полносвязных слоёв, слоёв нормализации и так далее. В особо глубоких нейронных сетях могут существовать синаптические связи, огибающие отдельные слои (их обычно называют skip connections — «перепрыгивающие связи»). В различных слоях могут использоваться различные функции активации, слои могут группироваться в более крупные блоки, а при обучении сетей могут применяться различные способы инициализации синаптических весов и другие трюки, направленные на улучшение сходимости и достижение лучших результатов. В 2010-е гг. глубокое обучение стало своеобразным экспериментальным разделом математики, где полученный результат в некоторой мере может зависеть от случая и от удачи исследователей и разработчиков в процессе применения метода проб и ошибок. Этот факт породил сравнение глубокого обучения со средневековой алхимией и множество остроумных мемов на эту тему. К счастью, в отличие от алхимиков, архитекторы нейронных сетей всё-таки неплохо справляются с достижением поставленных целей, а применение объективных метрик успеха при создании моделей исключает субъективизм в трактовке результатов.

5.2.5 Рекуррентные нейронные сети

5.2.5.1 Обсуждение теоретической возможности

Возможность создания рекуррентных нейронных сетей, то есть таких сетей, в которых цепи распространения сигнала могут образовывать петли, рассматривалась ещё Мак-Каллоком и Питтсом. Рекуррентная нейронная сеть, по сути дела, обладает памятью, а значит, удобна для обработки последовательностей стимулов. Получая стимул на вход, рекуррентная нейронная сеть использует для вычисления выходного сигнала не только входные сигналы, соответствующие данному импульсу, но и сигналы, циркулирующие в контурах сети. Можно сказать, что под влиянием входных сигналов рекуррентная сеть может изменять своё внутреннее состояние, которое влияет затем на выходы сети.

Всё это довольно сильно напоминает работу конечного автомата, и неслучайно. Стивен Клини, один из пионеров теории конечных автоматов, был хорошо знаком с работами Мак-Каллока и Питтса и использовал их идеи в качестве отправной точки собственных исследований. Клини формализовал наборы входных последовательностей, которые приводили сеть Мак-Каллока — Питтса в заданное состояние, а позже Минский показал, что любой конечный автомат может быть смоделирован с помощью рекуррентной нейронной сети с дискретным временем, основанной на искусственных нейронах Мак-Каллока и Питтса[1483].

Сети с рекуррентными связями упоминаются в работах классиков коннекционистского подхода, например у Розенблатта и Галушкина, причём у первого их анализу посвящена значительная часть его основного теоретического труда. Однако на практике рекуррентные сети в 1960-е и 1970-е гг. использовались крайне редко. Действительно, довольно очевидно, что естественные нейронные сети содержат циклы. Но как должен выглядеть эффективный способ обучения такой сети, если даже для нерекуррентных глубоких сетей он на тот момент не был известен? Для реализации механизма памяти вполне подходят изменяемые синаптические веса. При обработке последовательностей в большинстве случаев можно использовать фиксированное окно (т. е. на каждом шаге обработки на вход модели подаётся фрагмент последовательности фиксированной длины, заканчивающийся текущей позицией), охватывающее достаточный по длине фрагмент последовательности, как это делается, например, в TDNN. И тем не менее рекуррентные нейронные сети привлекали внимание коннекционистов с самого начала — благодаря своей универсальности.

В «Принципах нейродинамики» Розенблатт вводит понятие перцептрона с перекрёстными связями [cross-coupled], то есть такого перцептрона, в котором некоторые связи соединяют нейроны одного и того же типа (S, A или R), находящиеся на одинаковом «логическом расстоянии» от S-блоков, причём все другие соединения относятся к последовательному типу. Это определение допускает наличие циклов распространения сигнала в пределах одного слоя (сигнал не может вернуться из A-слоя в S-слой, но может циркулировать между нейронами A-слоя, однако в такой сети понятие A-слоя становится достаточно условным, поскольку этот слой топологически может объединять в себе произвольное число слоёв нерекуррентной сети). По этому поводу Розенблатт пишет следующее: «Наиболее интересными свойствами перцептронов с перекрёстными связями являются те, которые возникают в результате возможности создания замкнутых цепей обратной связи (циклов) в сети». Он также отмечает, что при наличии циклов состояние сети в каждый момент времени становится функцией не только текущего сенсорного входа и сигналов, передаваемых в моменте, но и предыдущей последовательности входов и прошлых состояний активности. В свете этого становится важным вопрос о стабильности сети: некоторые подобные сети, единожды получив на вход стимул, перейдут в состояние полной активности, которая не даст каким-либо дополнительным стимулам произвести какое-либо воздействие на них, другие будут порождать колебания, а третьи придут в стабильное неизменное состояние. Изучению адаптивных процессов в перцептронах с перекрёстными связями и замкнутыми цепями Розенблатт посвящает всю 19-ю главу «Принципов нейродинамики». И это не всё — в тексте упомянуты ещё и перцептроны с обратными связями [back-coupled], в которых сигнал может возвращаться в предшествующие слои сети[1484]. Вообще, книга Розенблатта прекрасна тем, что её автор в некотором роде изобрёл практически всё, что только можно. Здесь вы найдёте и идею внимания [attention], благодаря развитию которой в последние годы удалось продвинуться в решении многих сложных задач искусственного интеллекта, и рекуррентные сети, и сети с изменяемой топологией, и зачатки идей о свёрточных сетях и обратном распространении ошибки, и даже бимодальные перцептроны, получающие на вход одновременно визуальные и звуковые стимулы[1485]. Многие идеи Розенблатта всё ещё ждут тех, кто изучит их с применением современных методов и аппаратных ресурсов и, возможно, найдёт в них зачатки новых, более продвинутых нейросетевых моделей и методов.

Самому Розенблатту не довелось на практике продвинуться в изучении рекуррентных сетей, и в этой сфере на многие годы воцарилось относительное затишье, нарушенное только в 1980-е гг.

К тому времени исследования первой волны коннекционистов были во многом забыты. Некоторые специалисты в области нейронных сетей считали тогда, что вклад Розенблатта ограничивался созданием лишь однослойного перцептрона. Весьма характерна переписка на Stack Exchange по поводу истоков рекуррентных нейронных сетей. Один из пользователей жалуется, что может найти исходную публикацию по одной из современных рекуррентных нейросетевых архитектур, но никак не может отыскать работу, которая ввела в оборот стандартную («ванильную», vanilla) рекуррентную сеть (Recurrent neural network, RNN)[1486]. Словом, с улучшенным брендированным стиральным порошком всё ясно, но кто же изобрёл знаменитый обычный порошок?

Если не принимать в расчёт Фукусиму, у которого при описании архитектуры когнитрона упоминается механизм обратного латерального торможения [backward lateral inhibition] (когда активация нейрона вызывает ослабление сигнала в смежных нейронах предыдущего слоя) лишь для того, чтобы получить немедленную замену в виде прямого [forward] латерального торможения (когда активация нейронов вызывает ослабление сигнала в соседних нейронах того же слоя) в целях ускорения вычислений, то серьёзные исследования в отношении рекуррентных нейронных сетей были предприняты лишь через два десятилетия после выхода в свет «Принципов нейродинамики». Ими заинтересовалась исследовательская группа PDP Румельхарта, в которую среди прочих входили психолингвист Джеффри Элман и когнитивист Майкл Джордан[1487].

5.2.5.2 Предложения и проблемы

В университетском курсе по искусственному интеллекту две фамилии непрестанно следуют друг за другом: Элман и Джордан, Джордан и Элман. Прямо как Бивис и Баттхед — в наши дни их почти невозможно встретить поодиночке. О сетях Элмана и Джордана, в силу их архитектурного сходства, всегда рассказывают в одной лекции, для них даже изобретено обобщающее название — простые рекуррентные нейронные сети (Simple recurrent neural network, SRNN).



И всё-таки, несмотря на название, сети Элмана и Джордана не так уж просты, в их основе лежит определённая регулярная структура. От простой рекуррентной сети можно было бы ожидать наличия у неё полносвязной рекуррентной архитектуры — например, это могла бы быть полносвязная сеть с одним промежуточным слоем, в которой каждый нейрон промежуточного слоя, помимо связи с нейронами выходного слоя, имел бы рекуррентную связь с каждым другим нейроном промежуточного слоя. Такая сеть вполне ожидаемо называется полносвязной рекуррентной нейронной сетью (Fully connected recurrent neural network, FCRNN). Эти сети обычно не представляют особого интереса для исследователей, и из редких исследований, посвящённых полносвязной рекуррентной архитектуре, мы можем узнать немногим более одного вполне очевидного факта — обучение такой сети требует очень больших вычислительных затрат[1488].


Рис. 104. Полносвязная рекуррентная нейронная сеть

Идея сети Элмана заключается в том, чтобы к обычной нерекуррентной полносвязной сети с l нейронами (и Элман и Джордан используют для нейронов термин «единицы», «блоки» [units], что подчёркивает тот факт, что речь в данном случае идёт не о биологических нейронах) в ассоциативном слое добавить ещё l специальных нейронов состояния [state neurons]. Каждый из этих нейронов связан с соответствующим ему нейроном ассоциативного слоя парой связей — прямой и обратной. Таким образом, на каждом шаге каждый ассоциативный нейрон будет с некоторым весом получать вход от соединённого с ним нейрона состояния, а затем с некоторым весом передавать в него свой выход. Фактически нейроны состояния в данном случае выполняют роль памяти модели[1489].


Рис. 105. Сеть Элмана

Сеть Джордана отличается от сети Элмана только тем, что нейроны рекуррентного слоя получают входы не от нейронов ассоциативного слоя, а от нейронов выходного слоя сети. Таким образом, в рекуррентный контур включаются не два нейрона (ассоциативный и рекуррентный), а три (ассоциативный, выходной и рекуррентный).

Важно отметить, что сети Элмана и Джордана часто изображают в виде неполных диаграмм, включающих в себя не все имеющиеся в них связи. Начало этой порочной практике положили сами авторы — диаграмма, приведённая в статье Джордана, содержит в подписи соответствующее предупреждение. Чтобы избежать путаницы, автор приводит отдельную табличку, в которой перечислены все имеющиеся в сети связи. Все нейроны сети Джордана (как и сети Элмана) разделены на четыре группы: плановые [plan], нейроны состояния [state], скрытые [hidden] и выходные [output]. Плановые нейроны и нейроны состояния в сумме составляют входные нейроны сети, такая группировка использована, по всей видимости, для того, чтобы подчеркнуть порядок выполняемых сетью вычислений. Давайте вместе попробуем разобраться в табличке Джордана.

Обзор соединительных структур сети

В ячейке таблицы знак «×» стоит тогда и только тогда, когда нейроны, тип которых указан в заголовке столбца, получают входы от нейронов, тип которых указан в первой ячейке строки. Плановые нейроны, являясь рецептивными нейронами сети, получают входы только извне сети, поэтому первый столбец таблицы пуст. Каждый из нейронов состояния получает входы от выходных нейронов, а также от опять же нейронов состояния и так далее.

Если внимательно взглянуть на диаграмму сети, представленную Джорданом, можно отметить один интересный нюанс — наличие связей, соединяющих одни нейроны состояния с другими. Если подумать, то такая структура соединений вполне ожидаема, ведь нейроны состояния в некотором роде являются следующим слоем для самих себя, поэтому структура их связей с собой же повторяет, например, структуру связей между нейронами скрытого и выходного слоёв. В тексте статьи Джордан отмечает, что «рекуррентные связи между выходными блоками и блоками состояния не являются необходимыми для работы сети при наличии соединений между блоками состояния»[1490]. Эта ремарка Джордана показывает, что, по сути, его работа вводит в оборот не одну, а несколько возможных архитектур сетей. В общем, копаясь в манускриптах древних, можно найти множество занятных подробностей.

Не менее, чем вопрос о топологии рекуррентных сетей, интересен вопрос: каким образом такие сети могут быть обучены? Трюки, позволяющие применять метод обратного распространения ошибки к рекуррентным сетям, изобретались разными исследователями неоднократно. Наверное, самый популярный из них получил название «метод обратного распространения ошибки сквозь время» [backpropagation through time]. Идея заключается в том, чтобы развернуть рекуррентную сеть вдоль временно́й шкалы, дублируя её для каждого момента времени и заменяя рекуррентные связи на прямые, соединяющие сеть, относящуюся к моменту времени t, с копией сети, относящейся к моменту времени t + 1. Однако применение этого метода на практике обнажает ахиллесову пяту метода обратного распространения ошибки — «проблему исчезающего (или затухающего) градиента» [vanishing gradient problem]. Поскольку производные сигмоидальных функций на краях достаточно малы, абсолютный размер ошибки (а значит, и величин коррекции весов сети) быстро уменьшается по мере удаления слоя, для которого производится расчёт, от выходного слоя сети. В принципе, эта проблема характерна не только для сигмоидальных функций, поскольку в процессе обратного распространения ошибки градиент для каждого i-го слоя рассчитывается на базе градиента для i + 1-го слоя, отдельные компоненты градиента могут легко стать слишком малыми величинами. Таким образом, острота проблемы растёт по мере увеличения количества слоёв обучаемой сети. В случае развёрнутой на множество шагов во времени рекуррентной сети, как и в случае других сверхглубоких архитектур, мы неизбежно будем сталкиваться с ситуацией, когда точности выбранного для хранения весов типа данных перестанет хватать для хранения сверхмалых компонент градиента. И даже если мы сможем преодолеть эту проблему, скажем за счёт использования специальных типов, скорость обучения такой сети будет, скорее всего, неудовлетворительной, ведь синаптические веса в передних слоях сети будут корректироваться крайне медленно. Вообще, градиенты весов нейронных сетей штука чрезвычайно капризная — при некоторых условиях они могут не только исчезать, но и, напротив, «взрываться» [exploding gradient problem]. Взрывающиеся или затухающие градиенты могут привести к стагнации или, напротив, слишком быстрому изменению синаптических весов и тем самым сделать обучение нейронной сети нестабильным. Поэтому архитекторы нейронных сетей нередко вынуждены применять для решения подобных проблем особую «уличную магию», например «обрезку градиента» [gradient clipping][1491], уже упоминавшиеся нами «перепрыгивающие связи» и так далее.

Из-за проблемы исчезающего градиента на границе 1980–1990-х гг. исследователи могли позволить себе рекуррентные сети, способные различать лишь сравнительно короткие зависимости в обрабатываемых последовательностях[1492], [1493]. Было трудно поверить в то, что когда-нибудь появятся сети, способные улавливать закономерности в событиях, разделённых десятками или даже сотнями шагов. Однако через некоторое время появилась новая нейросетевая архитектура, способная существенно снизить остроту этой проблемы. О ней мы и поговорим в следующем разделе.


Рис. 106. Схематическое изображение блока рекуррентной нейронной сети (RNN). Обозначения: ht1 — предыдущее скрытое состояние, ht — текущее скрытое состояние, xt — обрабатываемый элемент последовательности, ot — текущий выход, th — функция активации (гиперболический тангенс)

5.2.5.3 Сети с долгой краткосрочной памятью (LSTM) и другие модели

Решительный шаг вперёд в области рекуррентных нейронных сетей удалось сделать в 1997 г., когда Юрген Шмидхубер и Зепп Хохрайтер предложили[1494] принципиально новую архитектуру, получившую весьма оригинальное название — «долгая краткосрочная память» (Long short-term memory, LSTM).

Сталкиваясь с памятью людей, можно заметить, что люди помнят только важные события, а многое старое и ненужное забывается. Можно представить, что было бы, если бы человек запоминал абсолютно всё. Например, такая ситуация описана в рассказе «Фунес, чудо памяти» (Funes el memorioso)[1495], принадлежащем перу аргентинского писателя Хорхе Луиса Борхеса. Чтобы убить время, главный герой рассказа восстанавливает в своей памяти переживания целого дня, на что у него уходит также целый день. Фунес изобретает собственную систему счисления, где каждое число имеет своё название, например число 7030 получает имя «Максимо Перес», а 7040 — имя «поезд». Лирический герой автора пытается объяснить Фунесу, что такая система противоречит самой идее счёта, но Фунес не понимает его или не хочет понимать.

Действительно, способность к обобщению, к абстракции основывается на отвлечении от конкретных деталей, на их забвении. Избавившись от неважных деталей, мы можем находить аналогии, и именно они позволяют нам сложить 7030 и 7040, в то время как трудно представить себе операцию сложения «Максимо Переса» и «поезда». Поэтому возникает вполне резонный вопрос: нельзя ли реализовать в нейронных сетях такой механизм забывания, который позволял бы сети запоминать важные признаки последовательности, игнорируя не влияющие ни на что мелочи? Именно эта идея лежит в основе «долгой краткосрочной памяти» Шмидхубера и Хохрайтера.

Основой LSTM-сети являются так называемые LSTM-блоки (LSTM units). Такой блок представляет собой рекуррентный элемент сети, способный запоминать значения как на короткие, так и на длинные промежутки времени. Это достигается благодаря тому, что LSTM‑блок не использует функцию активации внутри своих рекуррентных компонентов, благодаря чему хранимое значение не размывается во времени и при использовании метода обратного распространения ошибки во времени градиент не исчезает.

Обычно LSTM-блоки содержат три вентиля [gate], предназначенных для управления потоками информации на входе, выходе и внутри блока. Эти вентили называются соответственно «входным» [input gate], «выходным» [output gate] и «вентилем забывания» [forget gate].

Основной функцией, выполняемой LSTM-блоком, является отслеживание зависимостей между элементами поступающей на вход последовательности. Входной вентиль определяет меру, в которой новые значения поступают в ячейку памяти [cell], вентиль забывания — меру, в которой значения сохраняются в ячейке от шага к шагу, а выходной вентиль отвечает за меру, в которой значения в ячейке используются для вычисления выходного значения. Обученный блок должен понимать, что именно и в какой мере стоит замечать, запоминать и использовать для ответа на каждом из шагов.

LSTM-блок может содержать несколько ячеек памяти, управляемых одними и теми же вентилями. К сожалению, в отношении терминологии в данном случае существует некоторая путаница[1496], но мы будем придерживаться именно этих наименований — LSTM-блок для обозначения совокупности ячеек памяти и управляющих вентилей и LSTM-ячейка для обозначения одного скалярного компонента памяти LSTM-блока.


Рис. 107. Схематическое изображение блока LSTM

Некоторые варианты LSTM-блоков могут не иметь одного или нескольких вентилей. Например, стробированные (или управляемые) рекуррентные блоки (gated recurrent units, GRU) не имеют выходного вентиля.

Это напомнило мне животрепещущий эпизод из книги Святослава Сахарнова «Путешествие на „Тригле“», которую я очень любил в детстве. В нём главный герой, молодой художник, решил примерить на себя роль исследователя веслоногих рачков. Острым кухонным ножом он соскоблил отфильтрованный планктон с марли и поместил его на приборное стекло микроскопа.

Вот стекло под микроскопом. На светлом поле копошились прозрачные многорукие твари.

— Что это?!

Мои глаза полезли на лоб.

Прямо посередине светлого поля судорожно двигался по стеклу пятиногий рачок.

— Ого!

Я поперхнулся от радости.

А вон ещё… ещё… Шестиногие, четырёхногие, семиногие рачки так и кишели под микроскопом. Один из них был даже одноногий.

КАКОЕ ЗАМЕЧАТЕЛЬНОЕ ОТКРЫТИЕ!



Иногда мне кажется, что эксперименты, проводимые в целях создания новых разновидностей LSTM-блоков, напоминают вышеупомянутые художества, произведённые над ни в чём не повинными представителями зоопланктона при помощи острого кухонного ножа. После удаления различных вентилей выясняется, что наиболее важным является вентиль забывания. Без остальных вентилей LSTM-блок худо-бедно способен выполнять свои основные функции. Лишь после удаления вентиля забывания приходится констатировать: таракан оглох[1497].


Рис. 108. Схематическое изображение блока GRU

По сравнению с простыми рекуррентными сетями LSTM-сети гораздо лучше приспособлены к ситуациям, когда важные события разделены временными лагами с неопределённой продолжительностью и границами. Неудивительно, что в начале нового тысячелетия они стали основой многих систем, предназначенных для обработки естественного языка, прогнозирования временных рядов, распознавания речи и решения других задач, связанных с обработкой последовательностей. Сегодня идеи, положенные в основу LSTM, получили развитие в новом поколении рекуррентных нейросетевых архитектур, к которому относятся, например, такие модели, как AWD-LSTM[1498], Mogrifier LSTM[1499] и LEM[1500].

Конечно, на заре новой весны искусственного интеллекта арсенал коннекционистских инструментов не ограничивался упомянутыми выше моделями. Определённую популярность среди исследователей имели сети Кохонена, эхо-сети (Echo State Network, ESN), сети Хопфилда и модели на их основе — сети Коско, машина Больцмана (Boltzmann machine), а затем и ограниченная машина Больцмана (Restricted Boltzmann Machine, RBM), глубокие сети доверия (Deep Belief Networks, DBN) и даже машина Гельмгольца (Helmholtz machine).

Хотя сегодня редко используют машины Больцмана, Гельмгольца или DBN непосредственно, да и мало кто из специалистов-практиков в области глубокого обучения с ходу вспомнит особенности этих моделей, они сыграли в истории нейронных сетей важную роль, став предшественниками современных глубоких сетей-автокодировщиков, о которых мы поговорим в следующем разделе.

5.2.6 Автокодировщики, контрастное обучение и близнецы Барлоу

Истратил я зарплату на новый пылесос.

Шумит как экскаватор, свистит как паровоз.

Вся пыль в него влетает с ковров и со стены…

И тут же вылетает с обратной стороны.

Павел Рудаков и Вениамин Нечаев. С обратной стороны

Современный прогресс в машинном обучении трудно представить без ещё одного важного класса нейросетевых моделей, а именно без автокодировщиков [autoencoder], которых также называют автоэнкодерами или иногда — автоассоциаторами.

Обсуждая в начале книги типы задач, решаемых при помощи методов машинного обучения, мы упоминали задачу сокращения размерности. Например, словесное описание объекта куда компактнее фотографии, сделанной с высоким разрешением, однако по этому описанию можно, пусть и с некоторыми потерями, восстановить внешний вид описанного объекта. Представьте себе многослойную нерекуррентную нейронную сеть, в которой размерность рецептивного слоя в точности равна размерности выходного слоя. При этом слой, находящийся в середине сети, обладает существенно меньшей размерностью (либо при обучении такой сети используются какие-либо штрафы или ограничения для значений в этом слое). Например, на вход сети подаётся изображение размером 100 × 100 пикселей, стало быть, в её рецептивном слое, как и в выходном, 10 000 нейронов. В промежуточном же слое сети всего 500 нейронов. Мы будем обучать эту сеть таким образом, чтобы изображение, полученное на выходе сети, было максимально похоже на изображение, подаваемое на вход. Важной особенностью такой процедуры обучения является отсутствие учителя: данные, используемые для обучения автокодировщика, в общем случае не требуют разметки. Предъявив автоэнкодеру в ходе обучения десятки или сотни тысяч изображений, мы таким образом вынудим сеть придумать такой способ компактного представления картинок, который позволит добиться минимальных потерь в изображении при последующем его декодировании. При этом часть сети, начинающаяся с рецептивного слоя и заканчивающаяся самым узким слоем (своеобразным «бутылочным горлышком»), будет выполнять функцию кодировщика, а часть сети, начинающаяся с самого узкого слоя и заканчивающаяся выходным слоем, — роль декодера. Совокупность сигналов в нейронах самого узкого слоя, при поступлении на вход некоторого образа, называется латентным вектором [latent vector] или латентным представлением [latent representation] образа, а пространство возможных значений латентного вектора — латентным пространством. Описанная нами нейронная сеть называется, как вы уже, наверное, догадались — автокодировщиком.


Рис. 109. Схема автокодировщика

Сама архитектура связей такой сети может быть различной. Например, для обработки изображений чаще всего применяют свёрточные автокодировщики, то есть на входе такой модели присутствуют слои свёртки, а на выходе — обратные им по выполняемой функции слои развёртки. При обработке последовательностей могут использоваться рекуррентные автокодировщики. Ничто не мешает использовать и полносвязные архитектуры, архитектуры с какими-то особенными вычурными слоями.

Почему и за счёт чего автокодировщики работают? На этот вопрос можно ответить по-разному, но важно, что на практике данные, обрабатываемые при помощи автоэнкодеров, содержат некоторую избыточность, они отличаются от равномерно распределённого шума. В них присутствуют закономерности, которые и учится выявлять автокодировщик в процессе обучения.

Чем могут быть полезны автокодировщики? Конечно, первое напрашивающееся применение — это сжатие данных с потерями. Однако потенциальная польза от автокодировщиков куда шире. Автокодировщик может применяться в качестве генеративной модели. Например, обучив его на большом наборе фотографий людей, можно затем сгенерировать латентный вектор случайным образом, подставить его в декодер и получить совершенно новое фото (для таких задач в наши дни обычно используются так называемые вариационные автокодировщики (Variational Autoencoders, VAE)[1501] или методы вроде «состязательно ограниченных интерполяций автокодировщиков» (Adversarially Constrained Autoencoder Interpolation)[1502], которые накладывают некоторые дополнительные ограничения на латентные векторы автокодировщика, чтобы улучшить сходимость модели и качество генерируемых данных). Латентные векторы автокодировщика могут быть входом для моделей, решающих задачи классификации и регрессии — ведь компоненты такого вектора представляют собой, по сути дела, набор абстрактных признаков образов, использованных при обучении автоэнкодера. Потратив единожды вычислительные ресурсы на обучение автокодировщика, можно затем «недорого» строить множество «лёгких» моделей, решающих широкий спектр задач.

В начале нашего тысячелетия автокодировщики применялись для каскадного обучения глубоких сетей. Этот метод, предложенный[1503] Джеффри Хинтоном и Русланом Салахутдиновым, заключается в том, что слои нейронной сети обучаются последовательно слева направо. К очередному необученному слою на время обучения подключается декодер, дополняющий сеть до архитектуры автокодировщика. Затем полученный автокодировщик обучается, причём веса в уже обученных ранее слоях на время обучения фиксируются, этот приём называется заморозкой [freezing]. Описанная процедура повторяется для всех слоёв сети, кроме последних, которые обучаются в обычном режиме — с учителем и с применением метода обратного распространения ошибки. В наши дни этот способ обучения глубоких сетей применяется редко, поскольку были найдены другие, более удобные для практического применения способы борьбы с исчезновением градиента. Однако в отдельных случаях послойное предобучение всё-таки позволяет добиться наилучших результатов.

Также автоэнкодеры могут применяться для очистки сигнала от шума, в таком случае используют термин «шумоподавляющие автокодировщики» (Denoising Autoencoders, DAE)[1504]. При обучении такого автокодировщика мы можем добавлять на вход сети некоторый шум, стремясь на выходе получить образ до внесения в него шума.

К латентному пространству автокодировщика можно присоединить какую-либо семантическую информацию относительно входного образа, например возраст человека на фото или наличие у него бороды. Затем, на этапе работы декодера, можно подменить эти значения другими, тем самым заставив сеть изменить возраст человека на фото или пририсовать ему бороду. Нередко отдельные компоненты латентного представления сами по себе в результате обучения оказываются интерпретируемыми параметрами: их смысл можно обнаружить, наблюдая изменения, происходящие с образом при изменении отдельных компонентов латентного вектора. Словом, значение автокодировщиков для республики машинного обучения огромно. Их вклад в достижение WOW-эффекта от многих демонстраций возможностей современных технологий искусственного интеллекта трудно переоценить.

Разобраться в том, кто именно изобрёл автокодировщики, не так уж просто. Сама идея сокращения размерности данных не нова. Ещё в 1901 г. Карл Пирсон, основатель математической статистики, предложил свой знаменитый метод главных компонент (Principal component analysis, PCA)[1505] — один из наиболее популярных «классических» способов уменьшения размерности данных с потерей наименьшего количества информации. Первые коннекционистские модели, адресующие эту проблему, появились в начале 1980-х. Ими стали самоорганизующиеся карты Кохонена (Self-organizing map, SOM) — одна из разновидностей сетей Кохонена. Их создатель, финский учёный, специалист в области искусственных нейронных сетей и машинного обучения Теуво Кохонен, опубликовал в 1981–1984 гг. первые работы, посвящённые развитию своей модели[1506], [1507], [1508].

В 1984 г. Экли, Хинтон и Сейновски предложили[1509] решение, в котором набор входных образов сопоставляется с набором выходных образов через небольшой набор скрытых нейронов. В последующем году появилась публикация[1510], посвящённая исследованию методов обучения такой сети.

Эта модель и получила название «машина Больцмана», в честь австрийского физика Людвига Больцмана, одного из основоположников статистической физики. Все синаптические связи между нейронами больцмановской машины — симметричные, а сами нейроны разделены на два множества — скрытые и видимые, где последние выполняют роль рецептивного слоя. Каждый нейрон может находиться в одном из двух состояний — «включённом» [on] и «выключенном» [off], причём это состояние он приобретает на основе некоторой функции вероятности от состояний нейронов, соединённых с нашим нейроном, и от синаптических весов этих связей. Синаптические веса являются действительными числами и могут принимать также и отрицательные значения. Довольно интересно здесь то, что авторы статьи не говорят о том, какая именно функция вероятности может быть использована в машине, что позволяет конструировать машины Больцмана на основе самых разных функций. Понятно, что классическим решением будет логистическая функция от суммы произведений состояний связанных нейронов (где «включённое» состояние соответствует 1, а «выключенное» — 0) на веса соответствующих связей. Каждый нейрон также имеет индивидуальную величину «смещения» [bias] (иногда также используется термин «порог» [threshold]), обозначаемую традиционно буквой θ. Смещение можно рассматривать как вес синапса, связывающего наш нейрон с особенным нейроном, находящимся в постоянно включённом состоянии.

Хинтон и его коллеги рассматривали машину Больцмана как модель для решения задачи «удовлетворения ограничений» [constraint satisfaction], то есть задачи поиска набора значений переменных, удовлетворяющих определённому набору ограничений.


Рис. 110. Схема машины Больцмана

В математической статистике модели, подобные машине Больцмана, называют марковскими случайными полями.

Впрочем, достижением Хинтона и его коллег стало не только и не столько создание прямого нейросетевого аналога случайных марковских полей и присвоение ему имени австрийского физика (тем более что некоторые исследователи склонны рассматривать машину Больцмана в качестве разновидности сети Хопфилда), сколько идея использования для обучения таких сетей так называемого алгоритма имитации отжига [simulated annealing].

Название этого алгоритма отсылает нас ВНЕЗАПНО к металлургии, в которой отжигом называется вид термической обработки стали, заключающийся в нагреве заготовки до определённой температуры, выдержке в течение некоторого времени и последующем, обычно медленном, охлаждении до комнатной температуры. Из школьного курса физики мы знаем, что температура вещества пропорциональна средней кинетической энергии составляющих его частиц. Чем выше температура, тем быстрее движутся частицы, по мере же остывания их движение становится всё более медленным, и в случае с кристаллическими телами частицы постепенно всё ближе и ближе перемещаются к позициям, соответствующим узлам кристаллической решётки. В процессе остывания система приближается к состоянию, соответствующему энергетическому минимуму. В машине Больцмана таким энергетическим минимумом является состояние, при котором набор синаптических весов (включая смещения) и состояний нейронов находится в «полностью непротиворечивом состоянии» (когда состояния нейронов видимого слоя, установленные в результате инициализации сети, совпадают с их состояниями, рассчитанными на основе синаптических входов). Энергию системы создатели модели описывают при помощи следующей нехитрой формулы:




где wij — вес синапса, соединяющего нейроны i и j; si — состояние нейрона (0 или 1); θ — смещение. Условие i < j при суммировании нужно для того, чтобы исключить повторное суммирование для одних и тех же синапсов (поскольку синаптические связи в машине Больцмана полностью симметричны). Энергия суммируется для всего набора имеющихся у нас прецедентов. Процесс обучения начинается с точки, соответствующей случайному набору весов и некоторой величины температуры T. Затем на каждом шаге мы выбираем случайным образом новую точку в окрестностях текущей и рассчитываем величину энергии для неё. Если энергия в новой точке меньше, то мы переходим в неё со стопроцентной вероятностью. Если же величина энергии в новой точке больше или равна текущей, то мы переходим в неё или остаёмся в старой точке с некой вероятностью, зависящей от текущей температуры и энергии в старой и новой точках. Эта зависимость называется функцией вероятности принятия [acceptance probability function]. Можно использовать различные функции принятия, но классическая такова:


где P — вероятность перехода, E — энергия в текущей точке, E’ — энергия в новой точке, T — температура.


На следующем шаге мы уменьшаем величину T и повторяем процедуру, пока температура не достигнет нуля, а энергия — минимума.

Обученную машину Больцмана можно использовать так же, как и любой другой автокодировщик, — либо для расчёта латентного вектора для прецедента, либо для генерации нового прецедента на основе заданного (например, случайного) латентного вектора.

Ограниченная машина Больцмана, предложенная изначально в 1986 г. Полом Смоленским под названием Harmonium, представляет собой частный случай машины Больцмана, получаемый путём добавления следующего ограничения: синаптические связи могут связывать только скрытые нейроны с видимыми (но не скрытые со скрытыми или видимые с видимыми).

Рис. 111. Синаптические связи в ограниченной машине Больцмана

Завершённая в 1987 г. диссертация[1511] Лекуна, публикации[1512] Галлинари и его коллег, а также Бурлара и Кампа[1513] заложили основы применения автокодировщиков.

В 1990-е и начале 2000-х гг. исследования автокодировщиков продолжались. Например, в 1991 г. свет увидела работа[1514] Марка Крамера из MIT, в которой было показано преимущество автоэнкодеров (сам Крамер использовал термин «автоассоциативные нейронные сети» (Autoassociative Neural Networks)) над классическим методом главных компонент. В 1990-е и начале 2000-х гг. основным центром исследования автокодировщиков была группа Джеффри Хинтона в Торонто. В это время активно изучаются[1515], [1516] различные способы обучения таких сетей, позволяющие добиться наилучших результатов. Важным шагом вперёд становится появление глубоких сетей доверия — варианта ограниченной машины Больцмана с несколькими слоями скрытых нейронов (при этом допускаются связи между нейронами различных скрытых слоёв, но не внутри отдельного слоя). Для обучения таких сетей в начале 2000-х гг. в группе Хинтона применяли[1517] алгоритмы послойного обучения. Однако в целом можно сказать, что автокодировщики оставались в тени других нейросетевых моделей того времени (в первую очередь свёрточных и рекуррентных сетей). По всей видимости, в те годы многим исследователям казалось, что автокодировщики представляют главным образом теоретический интерес, а на практике могут применяться лишь в небольшом числе весьма специфических задач.

Резкий рост интереса к автоэнкодерам начался уже в 2010-е гг. В 2011 г. была опубликована революционная работа исследователей из группы Юргена Шмидхубера в лаборатории искусственного интеллекта швейцарского института IDSIA (Istituto Dalle Molle di Studi sull’Intelligenza Artificiale, Институт исследований искусственного интеллекта Далле Молле) под названием «Сгруппированные свёрточные автокодировщики для извлечения иерархических признаков» (Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction)[1518], в которой впервые описаны свёрточные автоэнкодеры [convolutional autoencoders], ставшие результатом комбинации автокодировщиков со свёрточными нейронными сетями. В свёрточном автоэнкодере роль кодировщика выполняет свёрточная сеть, а обратную ей роль декодера — развёрточная [deconvolutional].

В дальнейшем, по мере развития свёрточных нейронных сетей, совершенствовались и свёрточные автокодировщики. Также было придумано множество модификаций целевых функций, позволяющих улучшить результаты подобных моделей при решении различных задач. В целом за три последних десятилетия автокодировщики прошли большой путь — от теоретических моделей до гигантских нейронных сетей, предназначенных для обработки самых разных видов данных — от текстов до изображений и звуков.

Концепция кодировщиков и декодеров легла в основу многих важных моделей глубокого обучения. Фактически на её базе возникла целая подотрасль, получившая название «обучение представлениям» (или «обучение признакам») [representation learning] и занимающаяся изучением и разработкой техник, позволяющих системам машинного обучения автоматически находить представления, необходимые для выявления отдельных признаков или классификации данных. Благодаря обучению представлениям в наши дни активно развиваются методы машинного обучения с частичным привлечением учителя. К их числу относится, например, «контрастное обучение» [contrastive learning], о котором мы расскажем немного подробнее.

Контрастное обучение — это метод машинного обучения, используемый для изучения общих характеристик набора неразмеченных данных путём обучения модели тому, насколько похожи друг на друга его отдельные элементы (прецеденты). При этом контрастное обучение принято рассматривать как часть более широкой области, получившей название «метрическое обучение» [metric learning].

Представим себе маленького ребёнка, играющего в детский деревянный конструктор, в составе которого есть детали в форме куба, цилиндра, шара, прямоугольного параллелепипеда, тетраэдра и так далее. Ребёнок никогда не слышал этих слов, но в процессе игры его мозг способен изучить различные высокоуровневые признаки этих объектов: наличие или отсутствие плоских граней, их число, соотношения длин сторон и так далее. Благодаря этому позже, узнав, например, слово «куб», ребёнок сможет соотнести его сразу со всеми кубами, включая даже те, которые он раньше никогда не видел и не держал в руках.

Решая эту задачу при помощи автокодировщика, мы хотим добиться того, чтобы выучиваемые им представления (т. е. латентные векторы) обладали следующим свойством: для двух похожих предметов расстояние между соответствующими им векторами должно быть по возможности минимальным, в то время как расстояние между различающимися предметами должно быть по возможности максимальным. То есть мы, по сути, стремимся расположить соответствующие представлениям точки таким образом, чтобы границы между различными классами объектов были максимально «контрастными».

Однако по условию задачи у нас изначально нет метки класса как таковой. Ввиду этого исследователи применяют хитрый приём: каждый прецедент подвергается множеству трансформаций, которые не должны привести к смене метки целевого класса. Например, если мы имеем дело с изображениями, то к числу таких трансформаций могут относиться повороты, зеркальные отражения, размытие, добавление различных видов шума, изменение яркости, контраста, сдвиги цветов и так далее. При помощи таких трансформаций из одного изображения можно получить множество, составляющее отдельный псевдокласс. Теперь, имея полученный обогащённый набор данных, можно приступать к задаче обучения модели. В качестве целевой функции мы будем использовать такую функцию, которая будет максимизировать расстояние между представлениями прецедентов, относящихся к разным псевдоклассам, и минимизировать расстояние между представлениями, соответствующими прецедентам из одного и того же псевдокласса. В последние годы был разработан целый ряд разновидностей контрастного обучения. Например, можно составить обучающую выборку из пар прецедентов и обучать на ней сеть, состоящую из двух подсетей-кодировщиков с одинаковыми весами, выходы которых будут пропускаться через третью подсеть, вычисляющую расстояние между выходами двух первых подсетей. На выходе третья подсеть должна будет сделать предсказание — относятся прецеденты в паре к одному или тому же псевдоклассу или нет. Такой подход получил название «сиамских сетей» (поскольку веса сетей-кодировщиков идентичны, они являются как бы сиамскими близнецами)[1519]. Вместо вычисления расстояний можно использовать и более хитрые способы оценки представлений, выучиваемых кодировщиками. В результате развития этой идеи в последние годы появилось множество интересных архитектур (MoCo[1520], MoCo v2[1521], SwAV[1522], BYOL[1523], SimCLR[1524], SimCLR v2[1525] и др.).

Остановимся для примера на одной из них. В 2021 г. целый ряд работ был посвящён новому подходу, получившему название «близнецы Барлоу» [Barlow twins][1526]. Он был создан командой исследователей из компании Facebook под впечатлением от исследования нейрофизиолога Хораса Барлоу. В его статье[1527], написанной ещё в 1961 г., была предложена смелая гипотеза о кодировании сенсорной информации в нервной системе, в соответствии с которой цель обработки сенсорной информации мозгом — избавиться от избыточности и перекодировать сигнал в код, компоненты которого будут статистически независимы. Для того чтобы оценить статистическую независимость представлений двух прецедентов, относящихся к одному псевдоклассу, создатели «близнецов Барлоу» заставляют сеть вычислить матрицу взаимной корреляции (кросс-корреляции) двух представлений. В идеальном случае главная диагональ этой матрицы должна быть заполнена единицами (соответствующие элементы двух представлений линейно зависимы, что означает, что представление оказалось инвариантным относительно внесённых искажений), а остальные элементы — нулями (отсутствует корреляция между всеми другими парами компонентов представления). Степень отклонения от этого идеального случая и есть функция потерь, которая в процессе обучения должна быть подвергнута минимизации. При этом второй компонент функции потерь (отличие от нуля недиагональных элементов матрицы) включается в неё с некоторым заданным весом, который можно настраивать. Такой подход позволяет при обучении обойтись без отрицательных примеров и хорошо работает с представлениями достаточно большой размерности. Почему это работает? Как и в случае других методов глубокого обучения, исследователи уже придумали несколько весьма остроумных объяснений наблюдаемому эффекту, отталкиваясь от метода «информационного бутылочного горлышка» [Information bottleneck method] Нафтали Тишби[1528], критерия независимости Гильберта — Шмидта [Hilbert-Schmidt Independence Criterion][1529], [1530] и других страшных слов и фамилий.

Обучение представлениям — одна из быстроразвивающихся областей глубокого обучения в наши дни, и не исключено, что в ближайшем будущем здесь нас ждёт ещё множество замечательных открытий.

5.3 Машины

Здесь стоял мой «Алдан». Я немножко полюбовался на него, какой он компактный, красивый, таинственно поблёскивающий. В институте к нам относились по-разному. Бухгалтерия, например, встретила меня с распростёртыми объятиями, и главный бухгалтер, скупо улыбаясь, сейчас же завалил меня томительными расчётами заработной платы и рентабельности. Жиан Жиакомо, заведующий отделом Универсальных Превращений, вначале тоже обрадовался, но, убедившись, что «Алдан» не способен рассчитать даже элементарную трансформацию кубика свинца в кубик золота, охладел к моей электронике и удостаивал нас только редкими случайными заданиями.

Аркадий и Борис Стругацкие. Понедельник начинается в субботу

5.3.1 Гордон Мур и его закон

Технический прогресс не стоит на месте, и человечество создаёт всё более новые и совершенные вычислительные машины. В популярной литературе нередко можно встретить утверждение, что вычислительная мощность машин возрастает в экспоненциальной прогрессии и что эта закономерность называется законом Мура. Дошло до того, что некоторые люди считают, что «закон Мура» — это просто другое название экспоненциального роста (например, в сетевой дискуссии один из пользователей Facebook недавно заявил, что коронавирус COVID-19 распространяется в соответствии с законом Мура). Оставим на этом моменте эпидемиологов наедине с их фейспалмом, а сами попробуем разобраться, что же такое закон Мура, чем он является и чем совершенно точно не является.

Мы знаем Гордона Мура (не путать с Эдвардом!) как американского бизнесмена, инженера, сооснователя и почётного председателя корпорации Intel. В 1965 г., когда Мур опубликовал работу[1531], посвящённую своему знаменитому наблюдению, он был известен как директор по исследованиям и разработке компании Fairchild Semiconductor и один из членов так называемой «Вероломной восьмёрки» (The Traitorous Eight). История самого знаменитого «предательства» в истории вычислительной техники началась в 1956 г., когда лауреат Нобелевской премии по физике 1956 г. Уильям Шокли при поддержке калифорнийского предпринимателя Арнольда Бекмана основал производственную лабораторию, которая стала одним из истоков Кремниевой долины[1532].

Для разработки и организации производства новых полупроводниковых приборов Шокли собрал команду, состоявшую из молодых специалистов — физиков и инженеров. По мнению современников, в личности Шокли сочетались неоспоримый талант учёного, а также тяга к постоянному соперничеству и глухота к интересам и мнениям других людей. Шокли гордился своим интеллектуальным превосходством над другими людьми, а также собственным телом. Позже, в 1960-е гг., — по всей видимости под влиянием этих мыслей, а также, вероятно, полученных в автокатастрофе повреждений головного мозга — он придёт к идеям евгеники и начнёт публичную кампанию против «вырождения» американской нации, что в итоге окончательно разрушит его репутацию и сделает его персоной нон грата в научном сообществе.

Особенности характера Шокли не единожды приводили к конфликтам с другими людьми — человеколюбие никогда не было его сильной стороной.

Противоречивый характер Шокли проявлялся с самого детства. Раннее развитие (в пять месяцев он научился произносить собственное имя, а в двенадцать уже умел считать до четырёх и узнавал буквы алфавита) сочеталось в нём с приступами неуправляемой агрессии, во время которых он кусал родителей и бился в конвульсиях. Родители Шокли были довольно необычными людьми. Отец — потомок пилигримов с «Мейфлауэра», сын шкипера-китобоя и выпускник MIT — сколотил небольшое состояние, работая горным инженером, и занялся биржевой торговлей. Мать — выпускница Стэнфорда и первая в США женщина, ставшая горным инспектором. Отец был старше матери на 22 года. После свадьбы супруги перебрались в Лондон, где в 1910 г. и появился на свет Уильям Шокли. Родители мальчика пытались решить проблему приступов агрессии у сына различными способами, включавшими в себя телесные наказания и различные психологические эксперименты, они меняли нянек и ограничивали его общение со сверстниками. Биржевая торговля Шокли-старшего не принесла ему желаемых доходов, и в 1913 г. семья из-за финансовых проблем была вынуждена вернуться в США и обосноваться в Калифорнии. Только в восемь лет родители Шокли отдали его в школу, а год спустя — в Военную академию Пало-Алто (Palo Alto Military Academy, PAMA). К удивлению родителей, мальчик смог достаточно быстро адаптироваться в учебном заведении, где не только отлично учился, но и вполне прилично себя вёл. В 1927 г., после окончания школы (несколько классов которой он пропустил из-за планов родителей вернуться в Лондон), он поступил в Калифорнийский университет в Лос-Анджелесе (University of California, Los Angeles, UCLA), а осенью следующего года перешёл в Калифорнийский технологический институт (California Institute of Technology, Caltech), в те годы фокусировавшийся исключительно на фундаментальных научных исследованиях под руководством нобелевского лауреата Роберта Милликена. Это были годы формирования фундамента квантовой механики, которая и стала основной специализацией Шокли. Его учебный план составил лично Лайнус Полинг — в будущем дважды нобелевский лауреат, а наибольшее влияние на Шокли, по его собственному признанию, оказали преподаватели теоретической физики Ричард Толмен и Уильям Хьюстон. Именно в университетские годы в полной мере проявилась доминирующая черта характера Шокли — его постоянное стремление к соперничеству[1533], [1534].

В годы Второй мировой Шокли участвовал в разработке тактики стратегических бомбардировок и в других военных исследованиях. Придя к выводу, что эффективность бомбовых налётов на Японию была крайне низкой, Шокли порекомендовал «изучить альтернативы». Доподлинно неизвестно, имел ли Шокли в виду атомную бомбардировку, однако он, несомненно, был в курсе прогресса в этой области. Ещё летом 1940 г., будучи сотрудником Bell Labs, Шокли совместно с Джеймсом Фиском представил руководству доклад, в котором указал, что уран может служить источником изотопов для «грязных» бомб, а также на принципиальную возможность создания атомной бомбы. По мнению командующего ВВС США генерала Генри Арнольда, столь раннее окончание войны с Японией было в том числе личной заслугой Шокли[1535].

В начале 1945 г. Шокли создал в Bell Labs рабочую группу для разработки полупроводниковых приборов. К сентябрю того же года корпоративные исследователи, основываясь на работах Карла Ларка-Хоровица из Университета Пёрдью (Purdue University), сузили выбор перспективных проводников до двух — германия и кремния. В январе следующего года Шокли выбрал единственно возможное, как ему тогда казалось, направление разработок — гипотетический на тот момент полевой транзистор, то есть элемент, в котором внешнее электростатическое поле затвора управляет током в массиве полупроводника. Однако, вопреки расчётам, эксперименты завершились неудачно. Объяснить произошедшее смог Джон Бардин, присоединившийся к команде в октябре 1945 г., для чего ему пришлось привлечь теорию поверхностных состояний. Совместно с Уолтером Браттейном Бардин смог экспериментально подтвердить свою гипотезу. Для Шокли это было ударом по самолюбию: до войны он сам занимался поверхностными состояниями, но не учёл их в своих расчётах. Вероятно, поэтому он устранился от участия в работе над «полевым транзистором» и вновь проявил интерес к опытам Бардина и Браттейна только в конце 1947 г., когда исследователи представили руководству Bell Labs транзисторный усилитель, в основе которого лежал первый работающий точечный транзистор. Патентные эксперты компании пришли к выводу, что все личные права на изобретение принадлежат Бардину и Браттейну, но не Шокли. Осознав, что из рук выскальзывает, возможно, главное открытие его жизни, Шокли попытался надавить на Бардина и Браттейна, чтобы они отозвали свою патентную заявку. Он считал, что сможет сам запатентовать всё, начиная с полевого эффекта. Впрочем, эта идея провалилась, поскольку патент на принцип действия полевого транзистора на тот момент уже принадлежал Юлию Лилиенфельду. В итоге Шокли смог добиться от Bell Labs того, что, хотя авторство изобретения осталось за Бардином и Браттейном, в публичных заявлениях компании в качестве изобретателей указывались трое: Бардин, Браттейн и Шокли. В соответствии с внутренней инструкцией на всех фото, предназначенных для прессы, Бардин, Браттейн и Шокли появлялись вместе. В ходе первой открытой демонстрации транзистора именно Шокли отвечал на вопросы журналистов. В итоге публика утвердилась во мнении, что у первого транзистора было три изобретателя и самый значимый вклад в изобретение внёс именно Шокли.

Вся эта история, судя по всему, не на шутку уязвила самолюбие Шокли, и он с удвоенным рвением принялся за работу, вернувшись к идее создания монолитного транзистора. Слабым местом конструкции Бардина и Браттейна были нестабильные и ненадёжные точечные контакты. Результатом работы Шокли стала трёхслойная конфигурация, которая легла в основу биполярного (плоскостного) транзистора. В апреле 1949 г. сотрудники Шокли — Морган Спаркс, Гордон Тил и Боб Микуляк — вырастили в тигле первую трёхслойную p-n-p-структуру для демонстрации «транзисторного эффекта».

В январе 1950 г. Спаркс и Тил смогли изготовить трёхслойную структуру, пригодную для изготовления радиочастотных транзисторов. Через год началось серийное производство транзисторов Шокли, которые вскоре полностью вытеснили с рынка точечные транзисторы.

Несмотря на достигнутый успех Шокли, руководство Bell Labs относилось к нему с изрядной долей осторожности. Хотя он и получил должность директора по найму новых сотрудников, это не могло в полной мере удовлетворить его амбиции. Руководители компании ценили в Шокли его умение распознавать таланты, но считали, что ему нельзя доверять руководство коллективом. Из-за Шокли компанию покинул Бардин, а также десятки менее известных специалистов. Поэтому, когда Шокли объявил об уходе из Bell Labs, многие в компании вздохнули с облегчением.

Готовясь покинуть Bell Labs, Шокли уже держал в уме идею собственного полупроводникового бизнеса. Сначала ему удалось договориться о финансировании с военно-промышленной корпорацией Raytheon, но после месяца сотрудничества инвесторы свернули проект. В поисках финансирования в августе 1955 г. Шокли обратился к химику и предпринимателю Арнольду Бекману. Тот согласился вложить средства в создание лаборатории под обещание Шокли за два года организовать серийный выпуск элементов. Новое предприятие, ставшее филиалом Beckman Instruments, получило название «Полупроводниковые лаборатории Шокли» (Shockley Semi-Conductor Laboratories). Бекман и Шокли оформили сделку, приобрели необходимые патенты и подобрали в Маунтин-Вью, близ Пало-Альто, площадку для организации опытного производства. Мало кто из квалифицированных специалистов хотел в те годы перебираться в такую глухомань. Шутка ли: здесь не было даже междугородного телефона! Сотрудников пришлось отчасти набирать буквально по объявлению, а точнее, по объявлениям — в The New York Times и New York Herald Tribune. Благодаря объявлениям было получено около трёхсот откликов, а ещё полтора десятка человек, включая Мура, Шокли нашёл в Американском физическом обществе.

Весь 1956 г. Шокли испытывал на кандидатах свои бесчеловечные HR-технологии. Например, он заставил каждого пройти психологическое тестирование. В отношении Мура эксперты Шокли пришли к выводу, что тот является «весьма одарённым, но не способным к управлению». Затем каждого из отобранных кандидатов ожидал утомительный устный экзамен[1536].

В итоге к осени 1956 г. в лабораторию было принято более 30 человек, к числу которых и относились будущие участники «восьмёрки».

Шокли сфокусировал внимание команды на проекте по созданию четырёхслойного диода. В ноябре 1956 г. Нобелевский комитет объявил о награждении Бардина, Браттейна и Шокли Нобелевской премией по физике. По всей видимости, из-за утомления, вызванного вниманием прессы, официозом и путешествием на другой континент, худшие стороны личности Шокли в это время стали проявляться всё отчётливее. К весне 1957 г., когда стало понятно, что проект с четырёхслойным диодом зашёл в тупик, Шокли отстранился от работы, стал раздражительным и чрезвычайно подозрительным. Он организовал запись всех телефонных звонков, поступающих в лабораторию. Внутри самой лаборатории соблюдался режим внутренней секретности — сотрудникам запрещалось делиться результатами своих работ с коллегами. Шокли провоцировал конфликты и постоянно придирался к подчинённым. Когда его секретарша случайно уколола палец канцелярской кнопкой, занялся поисками «вредителя» и потребовал, чтобы сотрудники прошли проверку на детекторе лжи. Считается, что это «дело о кнопке» стало спусковым крючком последовавшего конфликта. Вдобавок ко всему Шокли открыто поссорился с Бекманом: отвечая на упрёки в превышении сметы, он стал угрожать тем, что вместе со своей командой найдёт другого инвестора. Реалии, однако, были таковы, что команда вовсе не горела желанием продолжать работу под руководством Шокли. В итоге несогласные во главе с Муром обратились к Бекману и предложили ему отстранить Шокли, сосредоточив все усилия на производстве биполярных транзисторов. Бекман, впрочем, не решился на столь радикальный шаг и предпринял попытку сохранить команду в прежнем составе. Однако выдернутые волосы уже нельзя было вставить назад — лаборатория разделилась на две группы. Часть сотрудников продолжила работу над четырёхслойным диодом, а вторая, втайне от Шокли, работала над совершенствованием биполярного транзистора и пыталась найти инвесторов среди нью-йоркских финансистов. «Заговор» против Шокли, в котором участвовали восемь ведущих специалистов, был составлен по всем приключенческим канонам. «Заговорщики» встретились с финансистами компании Hayden Stone в ресторане Redwood Room. Здесь один из финансистов, «краснолицый ирландец» Альфред Койл, выложил на стол десять однодолларовых банкнот: «Пусть каждый из нас распишется на каждой купюре. Это и будет наш учредительный договор»[1537].


Рис. 112. Однодолларовая купюра с подписями «заговорщиков»

Результатом сотрудничества «восьмёрки» с финансистами из Hayden Stone стало создание на деньги Шермана Фэйрчайлда компании Fairchild Semiconductor. Вскоре к «восьмёрке» примкнули ещё двое из колебавшихся сотрудников Шокли[1538].

Через три года Fairchild Semiconductor стала одним из технологических лидеров отрасли, а в середине 1960-х — вторым, после Texas Instruments, производителем полупроводниковых устройств в мире. По сути, Fairchild Semiconductor 1960-х гг. стала важнейшим бизнес-инкубатором Кремниевой долины и была в той или иной мере причастна к созданию множества корпораций, включая, например, AMD и Intel[1539].

Оказавшись на посту директора по исследованиям и разработке ведущей инновационной корпорации, Мур глазами стратега взглянул на растущую не по дням, а по часам полупроводниковую индустрию. Какие закономерности скрывает этот рост? Что происходит в производственных цехах и лабораториях конкурентов? Как следует действовать, чтобы соответствовать требованиям рынка?

Принято считать, что наблюдение Мура, сделанное им в 1965 г., заключалось в том, что с каждым годом число транзисторов в одной интегральной микросхеме удваивается, а также что спустя десять лет Муру пришлось скорректировать свою оценку — в действительности за прошедший период удвоение происходило не каждый год, а раз в два года[1540], [1541], [1542]. На деле это не совсем точно. Первоначальное утверждение Мура можно найти в его публикации «Втискивание большего количества компонентов в интегральные микросхемы» (Cramming More Components onto Integrated Circuits) в Electronics Magazine за 19 апреля 1965 г. Оно гласит: «Для минимальной стоимости компонентов сложность [схем] возрастала примерно в два раза за год (см. график). Конечно, в краткосрочной перспективе можно ожидать, что этот темп сохранится, если не увеличится. В более долгосрочной перспективе темпы роста менее предсказуемы, хотя нет никаких оснований полагать, что они не будут оставаться почти постоянными в течение по крайней мере десяти лет. Это означает, что к 1975 г. количество компонентов интегральной схемы при минимальной стоимости составит 65 000. Я считаю, что такая большая схема может быть построена на единой полупроводниковой пластине [wafer]»[1543].


Рис. 113. Зависимость относительной стоимости производства в расчёте на компонент
от количества компонентов на интегральной схеме

Чтобы лучше понимать контекст этого высказывания Мура, надо отметить, что первые прототипы интегральных микросхем появились на границе 1958–1959 гг. График в статье Мура построен по пяти точкам. Мур говорит не об интегральных схемах вообще, а об интегральных схемах с минимальной стоимостью производства в расчёте на один компонент, поэтому продемонстрированный им тренд не чисто технологический, а скорее технико-экономический. Конечно, разделить технологию и экономику на деле практически невозможно, однако Мура, как менеджера производственной корпорации, в первую очередь интересуют параметры зрелой, промышленной технологии. И наконец, Мур не пишет о транзисторах, он говорит о компонентах схемы, в число которых входят не только транзисторы, но и пассивные компоненты: резисторы, диоды и конденсаторы. Развитие производственных технологий обусловлено существующим запросом на продукты производства — индустрия не пытается увеличить количество компонентов интегральной схемы любой ценой, схемы создаются для эффективного решения востребованных в хозяйстве задач. Как заметил футуролог и экономист Шон Дюбравак, начало закону Мура положила экономика и она же приведёт к его окончанию[1544]. С физической точки зрения ничто особенно не препятствует увеличению размеров интегральной микросхемы. Достаточно продвинутая цивилизация вполне могла бы создать микросхему размером с Луну, ну или по крайней мере с книжный шкаф, не опасаясь кары со стороны законов физики. Особенно если снизить рабочую частоту такой схемы и ограничить таким образом тепловыделение. Мы не знаем, как будут выглядеть вычислительные устройства через полстолетия и будут ли лежать в их основе элементы, которые мы по-прежнему будем называть интегральными схемами. Быть может, на смену матрицам кремниевых транзисторов придут совершенно иные физические структуры, быть может, наши потомки будут выращивать биологические компьютеры, используя «мокрые» технологии (wetware — компьютерные технологии, интегрированные с биологическим организмом, образовано аналогично hardware). Быть может, прогресс в устройстве самих схем прекратится и человечество сконцентрирует внимание на оптимизации крупномасштабной архитектуры вычислительных устройств.

Из текста Мура видно, что сам автор никогда не претендовал на универсальную значимость своего закона, да и само название «закон Мура» не было его изобретением. Оно было предложено в 1970 г. Карвером Мидом, исследователем из Калифорнийского технологического института. И всё же трудно найти другой пример столь же живучего технико-экономического тренда. Попытки похоронить закон Мура предпринимались неоднократно. В 1996 г. Филип Росс в статье для журнала Forbes под названием «Второй закон Мура» писал: «Цена за один транзистор достигнет дна где-то между 2003 и 2005 годами. С этого момента не будет никакого экономического смысла делать транзисторы меньше. Таким образом, закон Мура прекратит своё действие через семь лет».

Сегодня «вторым законом Мура» принято называть утверждение о том, что стоимость фабрик по производству микросхем удваивается каждые четыре года. Сам Мур называл эту закономерность «законом Рока» — в честь американского бизнесмена и одного из первых инвесторов Intel Артура Рока, который обратил внимание на эту закономерность.

Впрочем, современные 10- и 7-нанометровые микросхемы от Samsung и TSMC находятся всё ещё в непосредственной близости от кривой, заданной скорректированной в 1975 г. версией закона. В качестве очередной даты запланированной смерти закона Мура многие исследователи (включая самого Мура) в наши дни называют 2025 год. Между тем в декабре 2022 г. компания TSMC уже начала выпуск схем по 3-нанометровой технологии[1545], а IBM уже анонсировала начало производства интегральных микросхем на основе 2-нанометровой технологии в четвёртом квартале 2024 г.[1546] Возможно, пора ввести какую-нибудь универсальную константу: например, вне зависимости от текущей даты прогнозы об окончании действия закона Мура составляют 5–7 лет от сегодняшнего дня.

Популярность закона Мура привела к появлению множества сходных утверждений разной степени серьёзности и актуальности. Закон Кека (Keck’s law) утверждает, что скорость передачи данных по оптоволокну растёт экспоненциально и по более крутой экспоненте, чем в законе Мура. Закон Мэкрона (Machrone’s law) гласит: персональный компьютер, который вы хотите купить, всегда стоит 5000 долларов. Согласно закону Вирта (Wirth’s law) программное обеспечение замедляется быстрее, чем ускоряется аппаратное, и так далее[1547].

В 1983 г. журнал «В мире науки» писал: «Если бы авиапромышленность в последние 25 лет развивалась столь же стремительно, как промышленность средств вычислительной техники, то сейчас самолёт Boeing 767 стоил бы 500 долл. и совершал облёт земного шара за 20 минут, затрачивая при этом пять галлонов (≈19 л) топлива. Приведённые цифры весьма точно отражают снижение стоимости, рост быстродействия и повышение экономичности ЭВМ».

Итак, закон Мура — это эмпирическое наблюдение относительно одного из параметров интегральных схем. Во-первых, оно не имеет прямого отношения к производительности машин, во-вторых, не является законом в том смысле, в котором законом является первый закон термодинамики или закон сохранения энергии. Количество элементов интегральных схем не обязано и дальше увеличиваться теми же темпами. Своё отношение к физической стороне вопроса Мур высказал в 2003 г., опубликовав работу под названием «Ни одна экспонента не вечна: но „вечность“ можно отсрочить!» (No Exponential Is Forever: But We Can Delay “Forever”!), в которой среди прочего указал на то, что рост физических величин по экспоненте в течение длительного временно́го периода невозможен. В 2007 г. Мур выразился ещё более конкретно, указав на атомарную природу вещества и ограничение скорости передачи сигнала скоростью света как на фундаментальные физические лимиты, которые рано или поздно встанут на пути совершенствования вычислительной техники.

5.3.2 Пределы роста

Достаточно часто динамику роста чего-либо, например параметров какой-либо развивающейся технологии или общественного явления, характеризуют как экспоненциальную. Однако в действительности, в силу существования фундаментальных ограничений, реальные кривые роста обычно являются S-образными. По мере приближения величины к фундаментальному лимиту рост замедляется, асимптотически приближаясь к своей границе. Логистическая функция (напомним, что это s(x) = 1 / (1 + ekx), где k — некоторый масштабный коэффициент, e — основание натурального логарифма), используемая в качестве функции активации в нейронных сетях, является хорошим примером подобной динамики[1548], [1549].

Если вместо динамики показателя, используемого в законе Мура, рассматривать динамику вычислительных характеристик машин — скажем, способность машины фиксированной массы выполнять в единицу времени некоторое количество стандартных операций, например арифметических действий с числами с плавающей точкой или базовых операций двоичной логики, то физические лимиты роста становятся более определёнными. Ограничение, на которое указал Мур, носит название «предела Бремерманна» — в честь американского физика немецкого происхождения Ханса-Йоахима Бремерманна, который ввёл этот предел в научный оборот в начале 1960-х гг. Данный предел скорости вычислений автономной вычислительной системы в материальной вселенной возникает вследствие действия эйнштейновского принципа эквивалентности массы и энергии, а также принципа неопределённости Гейзенберга, а его значение несложно рассчитать по формуле c2/ħ ≈ ≈ 1,36 × 1050 бит в секунду на килограмм (здесь c — скорость света, ħ — постоянная Планка).

Развитие идеи квантовых вычислений привело на границе тысячелетий к переосмыслению лимита Бремерманна. Сегодня фундаментальный предел производительности вычислительного устройства интерпретируется как максимальная скорость, с которой система с энергетическим разбросом {\displaystyle \Delta E}ΔΔE может трансформироваться из одного различимого состояния в другое: Δt = πħ/2ΔE. Это соотношение носит название «теорема Марголуса — Левитина» — в честь открывших его Нормана Марголуса и Льва Левитина. Данная теорема обобщает лимит Бремерманна на случай с квантовыми машинами, определяя минимальное время, чтобы перейти из одного состояния в другое, ортогональное начальному, для квантовой системы со средней энергией Е. Таким образом, скорость вычислений не может быть больше, чем 6 × 1033 двоичных операций на один джоуль энергии.

Впрочем, эти пределы довольно далеко отстоят от возможностей современных технологий. Прогресс в этой области можно оценивать по рейтингу Green500, обновляющемуся раз в два года. Этот рейтинг представляет собой список 500 наиболее производительных суперкомпьютеров в мире, отсортированный по энергоэффективности производимых ими вычислений. На июнь 2023 г. первое место в нём занимает машина Henri, производящая около 65 млрд операций с плавающей запятой в секунду на один ватт мощности[1550]. Обычно под операцией над числами с плавающей запятой понимают операции с 32-битными представлениями чисел, а один ватт равен одной джоуль-секунде. Таким образом, MN-3 производит 32 × 65 × 109 ≈ 2,1 × 1012 двоичных операций на один джоуль энергии. За десять последних лет этот показатель вырос в двадцать раз, то есть более чем на порядок[1551], но до достижения предела остаётся ещё около 21 порядка.

Более неприятный сюрприз подготовила разработчикам вычислительных машин термодинамика. Дело в том, что в соответствии с принципом Ландауэра в любой вычислительной системе, независимо от её физической реализации, при потере одного бита информации выделяется теплота в количестве по крайней мере kBT ln 2, где kB — константа Больцмана, T — абсолютная температура вычислительной системы в кельвинах (мы же не хотим, чтобы наш компьютер расплавился или даже испарился в процессе работы). Выражением Шеннона — фон Неймана — Ландауэра называют минимальную энергию Ebit > ESNL = kBT ln 2. При T = 300K энергия ESNL ≈ 0,018 эВ ≈ 2,9 × 10−21 Дж. На 2006 г. транзисторы электронных вычислительных машин рассеивали примерно в 10 000 раз больше тепла, с трендом уменьшения на порядок за десятилетие[1552]. Исходя из графика в том же источнике, современная технология 7-нанометровых процессоров соответствует рассеиванию примерно в 400 раз больше лимита. Таким образом, лимит, проистекающий из принципа Ландауэра, уже не за горами. Отчасти проблему с этим лимитом могут решить обратимые вычисления, однако они требуют привлечения дополнительных объёмов памяти. В данной области тоже есть предел упаковки информации в материальный объект, который называется «предел Бекенштейна» — в честь открывшего его израильского физика Яакова Бекенштейна.

Если вас интересует проблема фундаментальных лимитов вычислений, то я рекомендую книгу Пола Кокшотта, Льюиса Маккензи и Грэга Микаэльсона «Вычисление и его лимиты» (Computation and Its Limits)[1553], в которой представлен наиболее полный анализ этой проблемы из числа известных мне.

Иной раз, когда я задумываюсь о проблеме великого молчания Вселенной (известной также под названием парадокса Ферми), мне в голову приходит мысль о том, что на самом деле инопланетяне не связываются с нами заметными нам способами, потому что среднее время существования технологической цивилизации на нашем уровне ничтожно мало. Зачем мы им? Всякая цивилизация в результате своего технологического развития строит свою собственную чёрную дыру, которая просто является вычислительной машиной, работающей с эффективностью, равной лимиту Бремерманна (в обобщении Марголуса — Левитина). Информация там упаковывается до предела Бекенштейна, поэтому для внешнего наблюдателя это и выглядит как обычная чёрная дыра. Такие машины обмениваются друг с другом информацией в виде пакетов гравитационных волн; скорее всего, и решают задачи, интересующие цивилизации на том технологическом уровне: может быть, симулируют виртуальные вселенные, запускают виртуальных птиц в виртуальных свиней… Какие ещё могут быть задачи у сверхцивилизаций?..

5.3.3 Оборудование для нейронных сетей: GPU, TPU, FPGA

Но пока мы не достигли таких сияющих высот, не время пребывать в праздности, нужно искать пути дальнейшего развития. Брутто-быстродействие машин пока что растёт примерно теми же темпами, что и количество элементов интегральных схем. Если из написанной в 2005 г. книги Реймонда Курцвейла «Сингулярность близко» (The Singularity Is Near) взять график ожидаемого роста производительности вычислительных машин (на котором также приведена и оценка производительности, необходимой для симуляции работы человеческого мозга в реальном времени) и поместить на него точки, соответствующие двум самым быстрым суперкомпьютерам в мире на середину 2023 г., то они будут находиться почти внутри нарисованного Курцвейлом «коридора».

Пиковая производительность предыдущего лидера — компьютера, созданного при участии корпорации Fujitsu для использования в Центре вычислительных наук Института физико-химических исследований (яп. 理化学研究所 Rikagaku Kenkyūsho, сокращенно RIKEN, яп. 理研) и получившего название «Фугаку» (Fugaku), — достигает 537 Пфлопс, то есть 537 квадриллионов арифметических операций над числами с плавающей точкой в секунду. В тесте LINPACK производительность (Rmax) этой машины составляет 442 Пфлопс. «Фугаку» переместился на второе место рейтинга в мае 2022 г., когда в Ок-Риджской национальной лаборатории (Oak Ridge National Laboratory, ORNL) был запущен в эксплуатацию новый чемпион — суперкомпьютер Frontier (более официально Hewlett Packard Enterprise Frontier) или OLCF-5 (Oak Ridge Leadership Computing Facility, Ок-Риджская ведущая вычислительная установка) — первая машина, которая преодолела порог в один экзафлопс: пиковая производительность Frontier в тестах составила около 1,680 квинтиллиона операций с плавающей запятой в секунду (превысив прогнозное значение почти на 200 Пфлопс)[1554], [1555].


Рис. 114. Рост производительности суперкомпьютеров (логарифмическая шкала). Оригинальный рисунок из книги «Сингулярность близко» 2005 года, дополненный двумя новыми точками

Современные суперкомпьютеры состоят из множества вычислительных узлов, каждый из которых объединяет множество интегральных схем. И в отличие от аналогичных машин, создававшихся несколько десятилетий назад, эти схемы способны выполнять специфические операции, позволяющие более эффективно применять коннекционистские модели.

Такими схемами стали так называемые тензорные процессоры. Бум параллельных вычислений в 1980-е гг. совпал по времени с быстрым развитием технологий СБИС. Уже тогда исследователи осуществили первые опыты по созданию специализированных интегральных схем для искусственных нейронных сетей. Распространение сигнала в сети может быть описано в виде последовательных матричных операций: сложения, умножения, применения функции активации и так далее. Поэтому микросхема, реализующая такие операции на аппаратном уровне, может обеспечить существенный прирост скорости как при тренировке, так и при исполнении обученных нейронных сетей. Поскольку матричные операции в ряде случаев можно эффективно распараллелить (например, при сложении матриц суммирование элементов в различных областях можно осуществлять одновременно), можно добиться выполнения таких операций за гораздо меньшее число тактов, чем при последовательной обработке. Фактически речь идёт о многократном ускорении расчётов без замены элементной базы и технологии производства микросхем. Специализированные для решения тех или иных задач микросхемы сегодня принято называть интегральными схемами специального назначения (application-specific integrated circuit, ASIC).

Однако в 1980-е и 1990-е нейронные сети не были достаточно популярны, чтобы производители крупносерийных микросхем озаботились массовым выпуском ASIC’ов для нейросетевых моделей. К счастью, матричные операции оказались востребованы в области компьютерной графики — аппаратные графические ускорители, по сути дела, реализовывали изрядную долю необходимого набора инструкций. Ядра GPU изначально были предназначены для физических и графических вычислений, которые включают матричные операции.

В 2000-е и начале 2010-х видеокарты стали наиболее популярным видом оборудования, используемым для обучения искусственных нейронных сетей. По мере роста нейросетевых моделей производители GPU стали обращать больше внимания на нужды их разработчиков — архитектуры новых видеокарт учитывали требования, предъявляемые такими «нецелевыми» сценариями их применения. Более того, в середине 2010-х гг. стали появляться карты, для которых решение задач машинного обучения стало главной функцией устройства.

В мае 2016 г. компания Google представила устройство под названием Tensor processing unit (TPU) — тензорный процессор. Представители компании сообщили, что к этому моменту TPU уже использовался внутри дата-центров Google более года. Процессор был специально разработан для работы с фреймворком (программной платформой) Google TensorFlow, предназначенным для решения задач в области машинного обучения. В мае 2017 г. была выпущена вторая версия TPU, в мае 2018-го — третья, а в мае 2021-го — четвёртая[1556].

Устройства от Google нельзя приобрести, но можно арендовать через облачные сервисы компании. Поэтому на текущий момент наиболее популярным оборудованием для обучения нейронных сетей остаются GPU от компании Nvidia, которая собирает на их основе специализированные серверы линейки DGX (в настоящее время свет увидели уже две версии таких машин). Участвуют в этой гонке и другие производители компьютерного «железа». Например, компания Intel в 2016 г. приобрела за 400 млн долларов стартап Nervana, в арсенале которого имеются два тензорных процессора: NNP-T (для обучения моделей, «T» в названии означает training) и NNP-I (для исполнения обученных моделей, «I» означает inferencing). В декабре 2019 г. Intel приобрёл ещё одну компанию, специализирующуюся на разработке TPU, ею стал израильский стартап Habana, в портфолио которого также содержатся два флагманских продукта: Habana Gaudi и Habana Goya. Сумма этой сделки составила уже 2 млрд долларов[1557].

В настоящее время более ста компаний по всему миру создают интегральные схемы специального назначения (ASIC) и однокристальные системы (System-on-a-Chip, SoC), предназначенные для применения в области глубокого обучения. Некоторые из этих чипов просто умеют быстро умножать и складывать векторы и матрицы, другие (такие как, например, прототипы устройств от английского стартапа Graphcore) претендуют на более тонкий учёт специфики нейросетевых вычислений[1558]. Американская компания Cerebras специализируется на изготовлении экспериментальных схем (язык не поворачивается сказать «микросхем») для тензорных вычислений размером с целую кремниевую пластину. Ещё в 2021 г. компания представила публике процессор под названием Wafer Scale Engine 2 (Машина масштаба кремниевой пластины 2, WSE-2), предназначенный для решения задач в области ИИ, выполненный на основе 7-нанометровой технологии и содержащий целых 2,6 трлн транзисторов и 850 000 вычислительных ядер[1559]. Практически все крупные высокотехнологические компании имеют свои проекты подобных устройств. Помимо Google, Nvidia и Intel, в их число входят Facebook, Amazon (Inferentia), AMD, Tesla и многие другие[1560].

Специализированные серверы, предназначенные для задач машинного обучения, обычно включают в себя несколько GPU или TPU, связанных специализированными быстрыми шинами для обмена данными. Например, сервер DGX-2 объединяет 16 GPU Tesla V100 и имеет суммарную заявленную производительность в 2 Пфлопс. Самый быстрый на данный момент российский суперкомпьютер «Кристофари», построенный Сбербанком совместно с Nvidia, включает в себя 75 узлов DGX-2, связанных сверхбыстрой шиной Infiniband. Именно скорость передачи данных между исполняющими ядрами и хранилищами данных является ахиллесовой пятой тензорных архитектур при решении ряда практических задач машинного обучения. Поэтому для GPU и TPU так важен объём оперативной памяти, доступной каждому из тензорных ядер. Выпустив свои тензорные процессоры третьей версии, компания Google удвоила объём памяти на одной плате TPU — с 64 до 128 GiB (в четвёртой версии предположительно увеличила до 256 GiB, однако на момент написания этих строк официальные данные ещё не были опубликованы). Но даже при таких объёмах обучение свёрточных нейронных сетей, предназначенных для обработки трёхмерных изображений или видео, — непростая задача. Обычно каждый GPU или TPU в таких случаях рассчитывает градиент параметров модели на небольшой порции данных, после чего полученные градиенты усредняются. При этом GPU/ TPU должны обменяться градиентами, а их размер при достаточно большом размере модели может быть весьма существенным.

Использование термина «тензорные процессоры» нередко вызывает нехилый баттхёрт у математиков, которые знают, что понятие тензора не эквивалентно понятию многомерного массива. Конечно, если вы не математик, то довольно удобно считать, что единичное число — это скаляр, одномерный массив — вектор, двумерный — матрица, а произвольный n-мерный массив — это тензор. Но всё-таки тензоры и многомерные массивы (они же многомерные таблицы) — это разные типы объектов. Тензор — это особый тип функции, а многомерный массив — структура данных, подходящая для представления тензора в системе координат, в таком случае отдельное число в таблице называют компонентом тензора. Математики обычно определяют тензор как полилинейную функцию, то есть функцию нескольких векторных переменных, которая линейна по каждому из аргументов. Тензор линейно преобразует элементы одного линейного пространства в элементы другого, что бы это ни значило. Частными случаями тензоров являются скаляры, векторы, билинейные формы и так далее. Число измерений таблицы, представляющей тензор, называют его валентностью или рангом тензора. Это была минутка полезных математических знаний.

«„Тензоры“ в TensorFlow не имеют ничего общего с тензорами! — пишет рассерженный пользователь Locken Lui в комментарии к посту на платформе Medium. — Это злоупотребление использованием термина тензор. „Тензоры“ в смысле, используемом в TensorFlow, являются просто многомерными матрицами и не имеют ничего (!) общего с реальными тензорами в физике, континуальных теориях или теориях поля. Вы смешиваете эти понятия в своём посте. Возможно, название „Tensor“ было выбрано потому, что оно звучит проще, чем “MultidimensionalMatrixFlow”»[1561]. Мы понимаем вашу боль, Locken Lui, и разделяем её.

В последние годы производители электроники уделяют большое внимание созданию так называемых граничных [edge] устройств. Под граничными вычислениями [edge computing] обычно понимают децентрализованную обработку данных, при которой вычисления производятся на «последней миле» компьютерной сети. Вычислительные процедуры, производящие объёмный и в то же время индивидуализированный пользовательский контент, в ряде случаев выгодно располагать ближе к точке его потребления. Поэтому возникает необходимость в устройствах, способных выполнять необходимые вычисления в составе мобильных устройств, систем «умных домов», узлов игрового стриминга [edgelets] и так далее.

В июле 2018 г. Google анонсировала Edge TPU — специализированную микросхему ASIC, предназначенную для запуска моделей машинного обучения для граничных вычислений. Edge TPU имеет значительно меньший размер и потребляет гораздо меньше энергии по сравнению с облачными TPU.

Смешная третья опция для современного проектировщика нейронных сетей (помимо GPU/TPU и CPU, обычных центральных процессоров, которые, кстати сказать, сегодня тоже активно развиваются в направлении расширения наборов инструкций за счёт быстрых векторных операций) — это использование FPGA — устройств, относящихся к категории программируемых логических интегральных схем (ПЛИС). FPGA в наши дни часто используют для прототипирования ASIC: удобно сперва испытать ту или иную архитектуру микросхемы, прежде чем отправить её в серийное производство.

Если вас интересует более подробный анализ состояния дел в мире оборудования, предназначенного для задач глубокого обучения, то рекомендую регулярно дополняемый обзор[1562] от Григория Сапунова, в котором можно найти сведения о последних проектах в чудесном мире CPU, GPU и TPU, ПЛИС и ASIC.

5.3.4 Импульсные нейронные сети

В целом поступательный рост производительности цифровых вычислительных устройств в совокупности с созданием специализированных процессоров, способных более эффективно выполнять алгоритмы, используемые при обучении и выполнении нейронных сетей, оказали чрезвычайно мощное воздействие на прогресс в области нейросетевых технологий. Нередко приходится слышать, что это стало чуть ли не единственным фактором, определившим прогресс в данной области. Такая точка зрения, безусловно, грубо упрощает информацию о состоянии дел в отрасли и обесценивает усилия разработчиков новых моделей и алгоритмов. Но в то же время глупо было бы отрицать, что некоторые модели и методы просто не могут эффективно применяться в отсутствие соответствующих вычислительных ресурсов. Развитие моделей связано с организацией множества вычислительных экспериментов, для постановки которых необходим доступ к подходящему оборудованию.

Иногда устройства, предназначенные для ускорения работы нейронных сетей, называются также ИИ-ускорителями (AI accelerators) или NPU (Neural Processing Unit, Нейронный процессор). В их число обычно включают также и нейроморфные процессоры, которые мы коротко упомянули в подглаве 4.4.6. Современные нейроморфные системы можно условно разделить на два класса: системы, целью которых является моделирование процессов, происходящих в нервной ткани живых существ, и системы, ставящие своей целью решение прикладных задач искусственного интеллекта на основе импульсных нейронных сетей (spiking neural networks, SNN). Для удобства мы будем называть первые нейроморфными системами типа I, а вторые — нейроморфными системами типа II.

Термин «импульсные нейронные сети» появился с лёгкой руки профессора Вольфганга Маасса, который в своей статье 1997 г. предложил разделить нейронные сети на три поколения. К первому он относил нейронные сети на основе нейронов с пороговой функцией активации, ко второму — сети на основе нейронов с непрерывными функциями активации (сигмоидальными, полиномиальными и т. д.), а к третьему — сети, которые в качестве вычислительных единиц используют так называемые импульсные нейроны[1563].

Импульсные нейроны, в отличие от нейронов обычного перцептрона, срабатывают не на каждом из циклов распространения сигнала, а только тогда, когда их мембранный потенциал (т. е. разница в электрическом заряде внутренней и внешней поверхностей клеточной оболочки) достигает определённого значения. Когда нейрон срабатывает, он генерирует сигнал, который передаётся другим нейронам, которые, в свою очередь, увеличивают или уменьшают свои мембранные потенциалы в соответствии с этим сигналом. Несложно убедиться, что источником вдохновения для импульсной модели нейрона послужили работы Луи Лапика, Ходжкина, Хаксли и других нейрофизиологов, занимавшихся изучением распространения электрических сигналов в нервной ткани. Системы уравнений, описывающие накопление потенциала, его утечки, срабатывание нейрона и так далее, могут различаться в различных импульсных моделях. Обычно выбор конкретной модели зависит от области применения нейроморфной системы, именно поэтому модели, лежащие в основах систем типа I, тяготеют к большей биологической достоверности; модели же, лежащие в основе систем типа II, обычно выбираются таким образом, чтобы обеспечить снижение вычислительных затрат и большее удобство применения в используемом типе оборудования. Среди преимуществ систем типа II по сравнению с тензорными процессорами можно назвать их крайне низкий уровень энергопотребления и тепловыделения.

Первые сети третьего поколения (далее — импульсные сети) появились задолго до работ Маасса. Их история не менее интересна, чем история «конвенциональных» искусственных нейронных сетей. У истоков этого направления стоял биофизик Отто Шмитт, известный в качестве автора термина «биомиметика». Старший брат Отто, Фрэнсис, был биологом и изучал в MIT «молекулярную организацию клеток и тканей с особым акцентом на нервные волокна». Отто выбрал близкую тему для исследований в аспирантуре. Он использовал свои знания в области электротехники, стремясь создать искусственные конструкции, способные имитировать распространение импульсов по нервным волокнам. В результате в 1934 г. увидел свет так называемый триггер Шмитта, реализованный на базе электровакуумных триодов. В 1937 г. Шмитт описал его в диссертации под названием «термионный триггер»[1564]. Как и для Ходжкина и Хаксли, источником вдохновения для Шмитта стала нервная система кальмара. В 1940 г. собственную электрическую схему для моделирования работы нерва создал французский исследователь Филипп Фабр, известный в наши дни как изобретатель электроглоттографии[1565]. В своей работе Фабр ссылается на Лапика, а также на ряд исследователей, изучавших нервную проводимость в 1920–1930‑е гг.[1566], [1567] Конечно, все эти ранние работы (как и ряд более поздних) не ставили перед собой задачу создания вычислительных устройств. Действующие электрические модели нейрона в те годы создавались главным образом для исследований в области физиологии и медицины[1568]. Позже, в 1960 г., на заре эпохи интегральных схем, американский инженер Хьюитт Крейн из Стэнфордского исследовательского института предложил концепцию нейристора [neuristor], способного заменить собой все логические элементы цифровой схемы. Впрочем, признавая, что сам по себе нейристор пока что не создан, автор в качестве варианта предлагал ссылаться на его модель как на «эвристор» [heuristor], чтобы приберечь название «нейристор» до того момента, когда такие устройства будут созданы[1569]. Появление таких устройств не заставило себя ждать. Пионерскими работами в этой области стали конструкции Коута и Нагумо.

В 1960–1970-е гг. было предложено множество различных схем реализации нейронных систем, ряд из которых можно отнести к импульсным сетям. Среди интересных проектов в этой области, осуществлявшихся в то время, стоит упомянуть исследования, выполненные в рамках американо-польского научного сотрудничества. Обширная программа совместных исследований финансировалась в начале 1970-х гг. Национальным научным фондом США с использованием польских займов на покупку пшеницы (Польша приобретала американскую пшеницу, что увеличивало её долг перед США, которые снижали размер этого долга на сумму бюджета польской части исследований).

Эта уникальная программа, в рамках которой совместно работали учёные из стран, принадлежавших к разным военно-политическим блокам, была направлена на разработку биполярных и МОП-схем (металл — оксид — полупроводник), подходящих для построения специализированных интегральных схем для искусственных нейронных сетей. Последние с лёгкой руки профессора Николаса Деклариса стали называть микросхемами нейронного типа [neural-type]. С польской стороны проектом руководил доктор Михал Бялко из Гданьского политехнического университета (Politechnika Gdańska), с американской — профессора Декларис и Роберт Ньюкомб из Мэрилендского университета в Колледж-парке (University of Maryland, College Park).

Основными результатами этого исследования в области аппаратного обеспечения стали разработки: на польской стороне — биполярного контура, функционирующего как генератор импульсов, подобный потенциалу действия; на американской стороне — сопутствующей схемы МОП; совместными усилиями — схемы импульсной обработки. Хотя этот проект и не привёл к производству серийных нейроморфных процессоров, некоторые элементы изобретённых в его рамках схем были впоследствии доработаны и использованы в более поздних нейроморфных проектах. Как писал в 2012 г. Ньюкомб: «…все исторические схемы, которые были в основном импульсными, вплоть до 1980-х годов, служили цели шаг за шагом вести нас к более совершенным искусственным нейронным сетям»[1570].

В 1970-е гг. советские учёные рассматривали возможность создания оптической нейристорной логики на основе эффекта индуцированной самопрозрачности[1571]. В наши дни создание оптических нейронных сетей (Optical neural network, ONN) является важной областью фотоники, и в частности нанофотоники[1572].

В конце 1980-х — начале 1990-х годов для создания ONN стали применять голографию[1573]. Используя метод лазерного выжигания стабильных спектральных провалов, можно было добавить ещё одно измерение в голографическую запись, обеспечив тем самым реализацию попарных синаптических соединений для всех точек двух двумерных областей. Таким образом, можно было создать полносвязную оптическую нейронную сеть с двумя слоями — входным и выходным[1574]. За последние 20 лет были созданы оптические аналоги многих нейросетевых моделей, таких как, например, сети Хопфилда[1575], [1576], [1577] или самоорганизующиеся карты Кохонена на базе жидкокристаллических пространственных модуляторов света[1578]. Используя лазеры в качестве источников импульса, можно создать оптические аналоги импульсных нейронных сетей. В качестве элементов фотонных схем для реализации нейронных сетей могут быть использованы электроабсорбционные фотонные модуляторы[1579], оптоэлектронные системы на основе сверхпроводящих джозефсоновских переходов[1580], системы на основе резонансно-туннельных диодов[1581], а также лазеры поверхностного излучения с вертикальным резонатором[1582], [1583]. Раздел фотоники, использующий схемы на основе таких лазеров, называется «викселоникой» (от аббревиатуры VCSEL (Vertical-cavity surface-emitting laser, поверхностно излучающий лазер с вертикальным резонатором) и слова «фотоника»)[1584]. Также в современных оптических сетях линейные операции могут выполняться пространственными модуляторами света и линзами Фурье, а нелинейные функции оптической активации могут быть реализованы в атомах с лазерным охлаждением и электромагнитно индуцированной прозрачностью[1585]. В последние годы созданы весьма продвинутые рабочие прототипы систем компьютерного зрения на базе оптических нейронных сетей[1586], [1587].

Такая разновидность импульсных нейронных сетей, как импульсно связанные нейронные сети (Pulse-coupled neural networks, PCNN), была описана[1588] в 1994 г. Джоном Джонсоном — загадочным исследователем из американской армии. Джонсон, в свою очередь, основывался на более ранней модели Экхорна (модель связующего поля; linking-field model, LFM) и его коллег, имитировавшей, как обычно, работу зрительной коры кошки[1589], [1590].

Хотя большая часть импульсных устройств и моделей, разработанных в 1930–1990-е гг., представляет сегодня по большей мере лишь исторический интерес, эти пионерские работы позволили науке и технологиям шаг за шагом прийти к современным эффективным нейросетевым моделям и устройствам. Коннекционистская зима во многом переформатировала поле нейросетевых исследований, что в итоге привело к появлению нового поколения исследователей и нового набора идей, большинство из которых не были основаны на импульсной парадигме. Однако сегодня наблюдается заметный рост интереса к импульсным нейронным сетям.

По мере прогресса в области свёрточных нейронных сетей появились и их импульсные аналоги — импульсные свёрточные нейронные сети (spiking convolutional neural networks, SCNN)[1591]. В целом в наши дни между «классическими» и импульсными сетями наблюдается определённый параллелизм в части структуры синаптических связей: существуют не только импульсные аналоги свёрточных нейронных сетей, но и импульсная версия LSTM[1592], импульсные автоэнкодеры[1593], импульсные трансформеры[1594] и так далее.

Системы типа I обычно применяются в научных и медицинских проектах, направленных на изучение работы мозга и того, каким образом физиологические процессы, протекающие в нём, связаны с различными психическими явлениями. Учёные рассчитывают, что рано или поздно, используя адекватные модели и подходящее оборудование, мы сможем в реальном времени симулировать работу мозга и добиться появления в ходе такой симуляции соответствующих психических феноменов.

5.3.5 Нейроморфные системы типа I. Начало

27 октября 2005 г. Евгений Ижикевич выполнил на цифровой машине симуляцию работы импульсной нейронной сети, по размерам превосходящей среднестатистический человеческий мозг. Модель состояла из 100 млрд нейронов и около квадриллиона синапсов. В процессе работы модели возникли альфа- и гамма-ритмы, а также другие интересные явления. Одна секунда симуляции потребовала около 50 дней расчётов на 27-процессорном кластере Beowulf[1595], [1596].

Более масштабная симуляция была осуществлена только в конце 2012 г. Общественность узнала о ней из записи в блоге американского исследователя индийского происхождения Дхармендры Модхи. В ней учёный сообщил, что, используя 96 стоек Blue Gene/Q суперкомпьютера Sequoia Ливерморской национальной лаборатории им. Э. Лоуренса (Lawrence Livermore National Laboratory, LLNL) (1 572 864 процессорных ядра, 1,5 Пб памяти, 98 304 процесса), работавшие в 6 291 456 потоков, удалось достичь беспрецедентного масштаба симуляции 530 млрд нейронов и 137 триллионов синапсов, работающих всего в 1542 раза медленнее, чем в реальном времени. При этом важно понимать, что модель нейрона, использованная исследователями, была крайне упрощённой — сама симуляция осуществлялась в рамках проекта по созданию системы TrueNorth, подробнее о которой мы поговорим в этой главе позже[1597].

Хотя эти результаты и стали рекордными, было ясно, что серьёзные эксперименты, направленные на изучение высших нервных функций, при таких скоростях симуляции вряд ли возможны. Диванные эксперты нередко высказывают суждение о том, что учёные не знают, каким образом работает человеческий мозг. Конечно, это суждение очень наивно. Учёные неплохо знают детали физиологических процессов, протекающих в мозге. Однако сложнее дело обстоит с тем, чтобы объяснить, каким именно образом эти процессы связаны с наблюдаемыми нами психическими феноменами и поведением обладателей мозга. Как устроена память? Как человек или животные распознают или воссоздают образы? Как устроен процесс обучения? Откуда берётся самосознание? И хотя эти вопросы и представляют в ряде случаев затруднения для современных исследователей, проблема заключается вовсе не в том, что у учёных недостаточно объяснений. Скорее в том, что этих объяснений в настоящее время предложено слишком много, и в силу этого они нередко носят спекулятивный характер. Чтобы отсеять неудачные гипотезы, наука нуждается в экспериментальных данных, и важным их источником могут стать вычислительные эксперименты. Для того чтобы создать оборудование, подходящее для подобных задач, необходимо решить проблему пресловутого «бутылочного горлышка фон Неймана» (барьера в скорости вычислений, возникающего из-за задержек в передаче данных через шину). Именно для этого и создаются нейроморфные машины типа I.

В конце 2009 г. лаборатория Brains in Silicon [дословно: мозги в кремнии] Стэнфордского университета под руководством профессора биоинженерии и электротехники Квабены Боаэна представила первую версию машины, получившей название Stanford Neurogrid. Научным руководителем Боаэна во время его работы над диссертацией в Caltech во второй половине 1990-х гг. был уже знакомый нам Карвер Мид, которого считают одним из отцов-основателей современной нейроморфной инженерии. На создание Neurogrid Боаэна и его коллег вдохновил успех проекта по созданию сравнительно недорогого (стоимостью около 60 000 долларов) суперкомпьютера GRAPE-6, предназначенного для решения астрофизических задач, благодаря которому были получены новые важные результаты в области астрофизики[1598].

Neurogrid использует аналоговые схемы для имитации работы ионных каналов и цифровой обмен данными между программируемыми синаптическими соединениями. Система состоит из шестнадцати «нейросинаптических ядер», каждое из которых представляет собой отдельную интегральную микросхему размером 11,9 × 13,9 мм. Каждое ядро способно эмулировать работу 65 536 нейронов, что в сумме даёт более миллиона нейронов для системы в сборке.

Нейросинаптические ядра объединены в двоичное дерево при помощи каналов с пропускной способностью 80 Мбит/с. Встроенная память нейросинаптических ядер и внешняя оперативная память дочерней платы используются соответственно для программного конфигурирования вертикальных и горизонтальных кортикальных соединений.

Каждый из искусственных нейронов Neurogrid эмулирует работу биологического нейрона, который в расчётной модели разделяется на две условные части — так называемые «субклеточные компартменты». Один компартмент включает в себя сому (тело клетки) и её окрестности (так называемую базальную зону), второй — апикальный дендрит. Термины «базальный» (от лат. basis — основа) и «апикальный» (от лат. apex — вершина) используются в науке для обозначения частей, составляющих основу чего-либо (в данном случае — клетки), и соответственно частей, удалённых от основы.

Связи между отростками нейронов, заканчивающимися в различных слоях, воспроизводятся благодаря использованию модели пирамидальных нейронов, каждый из которых также условно разделён на два компартмента.

Пирамидальные, или пирамидные, нейроны — это самые многочисленные клетки в коре (присутствующие также и в некоторых других отделах головного мозга), начало исследованию которых положил ещё Рамон-и-Кахаль. Сома (клеточное тело) пирамидальных нейронов имеет коническую форму, из-за чего они и получили своё название. Со стороны основания конуса из клетки выдаётся длинный аксон, а также множество разветвлённых базальных дендритов. Вершина же конуса продолжается большим апикальным дендритом.

Для воспроизводства работы различных типов пирамидальных нейронов в Neurogrid предусмотрена возможность изменения типа электрического соединения между компартментами. Использование при моделировании взаимодействий нейронов лишь двух компартментов позволяет минимизировать количество различных популяций (типов) ионных каналов, которые необходимо симулировать, что позволяет максимизировать количество нейронов в модели. Общее число синапсов в симулируемых моделях может достигать 6 млрд, при этом суммарное энергопотребление системы в процессе работы составляет всего 5 ватт[1599], [1600].

В основе другой системы, BrainScaleS (NM-PM-1), разработанной в рамках Human Brain Project, находится 20 неразрезанных кремниевых пластин диаметром 200 мм, каждая из которых включает в себя 384 микросхемы со смешанным типом сигналов — так называемые микросхемы аналоговых нейронных сетей с большим количеством входов (High Input Count Analog Neural Network chip, HICANN). Эти микросхемы физически эмулируют работу сети импульсных нейронов с настраиваемыми синапсами. Единая пластина позволяет организовать широкополосную асинхронную инфраструктуру передачи сигналов. Пластина также соединена с 48 модулями связи на базе FPGA (т. е. каждый модуль соединён с восьмью микросхемами HICANN), обеспечивающими возможность подключения к другим модулям на основе таких же пластин [wafer modules], а также к центральной ЭВМ, используемой для настройки и управления системой. Каждая микросхема HICANN реализует как минимум 114 688 программируемых динамических синапсов и до 512 нейронов, что даёт в сумме около 44 млн синапсов и до 196 608 нейронов на один модуль пластины. Точное количество нейронов зависит от конфигурации системы, которая позволяет объединять несколько нейронных ячеек для увеличения количества входных синапсов в одной клетке.

В сумме система из 20 модулей позволяет симулировать сеть размером до почти 4 млн нейронов. Это немногим меньше, чем содержится в мозге рыбки гуппи, счастливой обладательницы примерно 4,3 млн нейронов. Несмотря на сравнительно скромный по меркам животного мира размер сети, эмулируемой BrainScaleS, машина обладает важным преимуществом: скорость её работы в 1000–10 000 раз выше, чем у биологических систем[1601], [1602], [1603].



В феврале 2017 г. группа учёных, занятых в Human Brain Project, представила работу, описывающую прогресс в области создания второй версии BrainScaleS. В экспериментальных микросхемах на смену 180-нанометровой технологии пришла более совершенная, 65‑нанометровая технология. Кроме того, большое внимание учёные уделяют реализации на аппаратном уровне алгоритмов обучения импульсных нейронных сетей[1604], [1605].

В настоящее время в рамках Human Brain Project на основе тесного сотрудничества специалистов по микроэлектронике с нейробиологами ведётся разработка следующего поколения микросхем для симуляции происходящих в мозге процессов. Эти микросхемы станут основой для следующего поколения больших машин, которые будут введены в эксплуатацию приблизительно в 2023 г.[1606] Новые машины позволят ещё больше увеличить масштаб симуляций и повысить скорость их выполнения.

5.3.6 Нейроморфные системы типа I. Исследования мозга и принцип STDP

Конечно, успехи, достигнутые в области обучения традиционных искусственных нейронных сетей при помощи метода обратного распространения ошибки, создают соблазн применить этот же метод при обучении импульсных сетей. Импульсная версия метода обратного распространения ошибки показала свою жизнеспособность — сегодня импульсные сети, обученные при помощи этого метода, лишь незначительно уступают в точности традиционным нейронным сетям.

Однако для достоверной симуляции мозга нужно использовать методы, аналогичные тому, что происходит собственно в мозге. Одна из проблем заключается в том, что современной науке неизвестны бесспорные физиологические аналоги метода обратного распространения ошибки. Если вам хочется позлить нейрофизиолога, заведите с ним дискуссию о методе обратного распространения ошибки в мозге, но хочу сразу предупредить, что за последствия этой авантюры я не несу никакой ответственности. Ввиду этого пришлось искать для обучения импульсных сетей методы, для которых всё-таки обнаруживаются аналоги в физиологии. В конечном счёте эта одиссея завершилась успехом, и сегодня таковые нам известны. Более того, выяснилось, что в ряде экспериментов они не слишком уступают методу обратного распространения ошибки[1607], а при правильно подобранных параметрах могут оказаться даже более эффективными.

В первую очередь речь идёт о процессе, получившем название «синаптическая пластичность, зависящая от времени импульса» (Spike-timing-dependent plasticity, STDP). Это биологический процесс, который регулирует силу связей между нейронами на основе относительной синхронизации входного и выходного потенциалов конкретного нейрона.

Сам термин «синаптическая пластичность» был введён польским психиатром и нейрофизиологом Ежи Конорским для обозначения долгосрочных изменений эффективности синаптических связей в результате кратковременных изменений синаптической активности. В настоящее время значение этого термина расширилось и теперь включает не только изменение эффективности, но также вырастание новых и активацию ранее неактивных синапсов[1608].

В чём же особенность такого механизма синаптической пластичности, как STDP?

Если импульсы, поступающие через некоторый входной синапс нейрона, имеют тенденцию возникать непосредственно перед срабатыванием нейрона, то этот конкретный синапс получает положительное подкрепление, усиливающее соответствующую связь. Если же входные импульсы имеют тенденцию возникать уже после срабатывания нейрона, то соответствующий входной синапс получает отрицательное подкрепление и соответствующая синаптическая связь ослабляется. Нетрудно заметить, что STDP является дальнейшим развитием идеи хеббовского обучения.

Уже полстолетия назад большинство нейробиологов считало утверждение о том, что синаптическая пластичность обеспечивает физиологическую основу для обучения и памяти, практически самоочевидным. Но, несмотря на почти всеобщее признание этой точки зрения, экспериментальных доказательств было найдено не так уж много. Одним из первых стала новаторская работа[1609] Эрика Кандела, опубликованная в 1965 г. В ней Канделу и его коллегам удалось продемонстрировать прямую связь между синаптической пластичностью и изменением поведения морского беспозвоночного Aplysia californica.

В 1973 г. канадский исследователь Морис Тейлор предположил, что если бы синапсы, для которых импульс предшествующего нейрона (пресинаптический) чаще происходил непосредственно перед импульсом следующего нейрона (постсинаптическим), усиливались (хеббовское обучение), а синапсы, для которых это условие не соблюдалось, — ослаблялись (антихеббовское обучение), то данный механизм позволил бы объяснить эффективное кодирование образов мозгом[1610]. Однако работа Тейлора, как и диссертация Вербоса, не была в то время замечена коннекционистским сообществом.

Процесс, соответствующий хеббовскому обучению в биологических и импульсных нейронных сетях, в наши дни обычно называют долговременной потенциацией (ДВП, Long-term potentiation, LTP), а антихеббовскому обучению — долговременной депрессией (ДВД, Long-term depression, LTD).

Долговременная потенциация в живом организме открыта норвежским учёным Терье Лёмо в 1966 г. в ходе опытов на гиппокампе кроликов. Первая научная статья с описанием процесса ДВП опубликована[1611] Лёмо совместно с британским нейробиологом Тимоти Блиссом в 1973 г.

Хотя Лёмо и Блиссу и удалось обнаружить само явление долговременной потенциации, скудность экспериментальных данных не позволила им с уверенностью говорить о конкретных биохимических механизмах, лежащих в основе этого эффекта. Однако ряд важных предположений, подтвердившихся в будущем, они всё же сделали. Для того чтобы лучше понять их, давайте более подробно рассмотрим устройство синапса.

Как мы уже знаем, нервные клетки имеют обычно несколько отростков. Напомним, что разветвлённые тонкие отростки нейронов называются дендритами. Именно дендрит является «входом» нейрона, через который он получает электрические импульсы от других клеток. Если рассмотреть дендрит типичного нейрона под микроскопом, на нём можно заметить множество коротких отростков (обычно грибовидной формы), называемых «дендритными шипиками» [spines]. Тонкая ножка шипика называется «дендритной шейкой» [spine neck], а утолщение на конце шипика — «головкой» [spine head]. Вообще говоря, дендритные шипики не всегда имеют грибовидную форму. Специалисты по морфологии нейронов способны разглядеть, помимо грибовидных шипиков, также «протошипики», «тонкие шипики», «пеньковые шипики», «разветвлённые шипики» и даже загадочные «филоподии», но мы постараемся всё-таки избежать погружения в пучины знаний о дендритных шипиках. Достаточно отметить, что большая часть синапсов расположена именно на них.

Синаптическая щель разделяет участки мембран (оболочек) двух нейронов. При этом участок мембраны со стороны аксона называется пресинаптической мембраной, а со стороны дендрита — постсинаптической. Синапсы разделяют на электрические и химические. Электрические синапсы характеризуются очень узким просветом между пресинаптической и постсинаптической мембранами (менее 4 нм) и наличием специальных каналов, пересекающих обе мембраны. Через эти каналы клетки могут обмениваться ионами и небольшими молекулами. Электрические синапсы способны очень быстро передавать сигнал, но не способны усиливать его. Электрические синапсы обычно двунаправленны, то есть нервный импульс может проходить по ним в обоих направлениях. Но нас больше интересуют более сложные, химические синапсы. Зазор между пресинаптической и постсинаптической мембранами в них может составлять порядка 20–40 нм. Постсинаптическая мембрана химического синапса оснащена набором рецепторов — белковых структур, реагирующих на присоединение к ним молекул определённого химического вещества и вызывающих в результате этого некоторые изменения внутри клетки. Самый распространённый способ вызвать эти изменения используют так называемые ионотропные рецепторы, открывающие в ответ на присоединение к ним определённой молекулы ионный канал, что приводит к возникновению перетока ионов сквозь постсинаптическую мембрану.

Мы не будем углубляться в разновидности рецепторов (их десятки) и детали их работы (они весьма поучительны и разнообразны) и отметим лишь, что в соответствии с доминирующими в наши дни представлениями наиболее важную роль в ДВП играют так называемые NMDA-рецепторы (ионотропные рецепторы глутамата, связывающие N-метил-D-аспартат). Это довольно интересные молекулярные машины, в основе работы которых лежит несколько занятных химических механизмов. В неактивированной форме канал рецептора закрыт ионом магния или цинка. Они покидают просвет канала при деполяризации постсинаптической мембраны. Для того чтобы ионный канал начал функционировать, две молекулы глутамата (глутаминовой кислоты, также называемой 2-аминопентандиовой кислотой) из синаптической щели должны соединиться со специальным участком рецептора (так называемым участком (сайтом) связывания глутамата [glutamate binding site]), а две молекулы глицина, или D-серина, должны соединиться с участком связывания глицина. В открытом состоянии канал, при наличии соответствующей разницы потенциалов, допускает приток положительно заряженных ионов натрия (а также, в небольших количествах, кальция) в клетку и отток из неё положительно заряженных ионов калия.

Во времена исследований Лёмо и Блисса NMDA-рецепторы были известны науке лишь в роли теоретической концепции. Гипотезу об их существовании выдвинули в 1960 г. нейробиологи Джеффри Уоткинс и Дэвид Кёртис. Сам Уоткинс называл эти времена «тёмными веками» [dark ages] в исследовании роли глутамата в мозге. Тогда лишь немногие учёные всерьёз относились к гипотезе о том, что эта аминокислота может выполнять роль химического посредника в передаче нервных импульсов (так называемого нейротрансмиттера). Вполне вероятно, что Лёмо и Блисс в те годы могли не знать о существовании такой гипотезы. Рассуждая о механизмах, стоящих в основе увеличения пропускной способности синаптических связей, они сделали предположение, что в её основе могут лежать следующие механизмы.


1. Окончание аксона часто распадается на тонкие веточки, называемые телодендриями, которые заканчиваются специализированными нервными окончаниями, называемыми терминалями. Увеличение количества терминалей, через которые распространяется импульс, Лёмо и Блисс рассматривали в качестве первой возможности для увеличения пропускной способности нервного пути в процессе ДВП.


2. Увеличение количества нейротрансмиттера, поступающего в соответствующие синаптические щели. Лёмо и Блисс при этом не строили никаких гипотез в отношении того, о каком именно нейротрансмиттере идёт речь.


3. Увеличение чувствительности постсинаптической мембраны.


4. Увеличение проводимости дендритных шеек. Саму идею о том, что изменение проводимости дендритных шеек лежит в основе изменения синаптических весов, высказали[1612] за два года до Лёмо и Блисса Уилфред Ролл и Джон Ринцель. Сегодня их имена увековечены в названиях ряда моделей биологического нейрона, таких как модель Ролла (другое название кабельной теории дендритов), модель Фитцхью — Ринцеля (FitzHugh—Rinzel, FH-R) (усовершенствованная версия модели Фитцхью — Нагумо)[1613], а также модель Пинского — Ринцеля (нелинейная двухкомпартментная модель пирамидальных клеток CA3)[1614].


Лёмо и Блисс писали, что у них нет доказательств, позволяющих предпочесть один из четырёх описанных выше механизмов. Интересно, что современные научные данные свидетельствуют в пользу того, что задействованы все четыре. Первый связан с прорастанием новых дендритных шипиков, что приводит к росту числа синаптических контактов[1615], [1616]. Второй — с увеличением числа везикул (крошечных внеклеточных пузырьков), содержащих нейротрансмиттеры, и вероятности их высвобождения в синаптическую щель[1617]. Третий связан с увеличением количества рецепторов на постсинаптической мембране, а также ростом их активности[1618], [1619]. Причём речь не только о NMDA-рецепторах, но и о других рецепторах глутамата, таких как ионотропные АМРА-рецепторы (рецепторы α-амино-3-гидрокси-5-метил-4-изоксазолпропионовой кислоты)[1620] и метаботропные глутаматные рецепторы (mGluR)[1621]. Последние, в отличие от «быстродействующих» ионотропных рецепторов, обеспечивают медленную реакцию на опосредованные глутаматом (глутаматергические) сигналы. Они активируют внутриклеточные сигнальные реакции, ведущие к модификации других белков, например тех же ионных каналов. Четвёртый механизм связан с изменением морфологии дендритных шеек[1622].

Ажиотаж, вызванный открытием синаптической пластичности в гиппокампе, вызвал настоящую лавину исследований. Дуглас и Годдард в 1975 г. показали[1623], что быстро повторяющиеся импульсы были более эффективными в вызове (индукции) ДВП, чем одиночное длинное (так называемое тетаническое) возбуждение. Это было важной вехой в истории изучения синаптической пластичности не только потому, что повторяющиеся короткие импульсы стали популярным способом для вызова ДВП, но также и потому, что была продемонстрирована важность повторных и постоянных периодов стимуляции для индукции ДВП, что вполне подтверждало догадки Хебба и других пионеров нейрофизиологии. Дуглас и Годдард также ввели сам термин ДВП (LTP), отталкиваясь от предложения Пера Андерсена. Множество экспериментальных и теоретических исследований, вызванных к жизни новыми открытиями, было направлено на то, чтобы проверить различные аспекты постулата Хебба и выявить конкретные механизмы, лежащие в основе синаптической пластичности. Активные споры велись по поводу того, лежат ли в её основе пре- или постсинаптические изменения или же синапсы могут изменяться разными способами.

Следующий важный шаг в расширении знаний о синаптической пластичности сделал Брюс Макнафтон, будущий научный руководитель будущего нобелевского лауреата Эдварда Мозера, подарившего нам знание о «нейронах решётки» (системе клеток в мозге, которая позволяет ориентироваться в пространстве). Макнафтон показал, что в случае одновременной тетанической стимуляции двух нервных путей может происходить ДВП, которая не происходит при их неодновременной стимуляции аналогичными импульсами («нервный путь», или «проводящий путь» [neural pathway], — цепочка нейронов, обеспечивающая проведение одинаковых нервных импульсов в определённом направлении). Данный эффект обусловлен совместным действием нервных путей[1624]. Это стало важным подтверждением идеи Хебба о клеточных ансамблях, в которых возбуждение одного нейрона приводит в возбуждение весь ансамбль и благодаря которым компоненты воспоминания могут усиливать друг друга и даже укреплять другие связанные воспоминания. Макнафтон и его соавторы были также, вероятно, первыми, кто экспериментально исследовал важность нахождения постсинаптического и пресинаптического импульсов в близком временном интервале.

Примерно в это же время Гэри Линч и его коллеги обнаружили явление ДВД в гиппокампе: в то время как тетаническая стимуляция вызывала ДВП активированного нервного пути, неактивированный нервный путь подвергался ДВД (гетеросинаптическая ДВД)[1625]. Кроме того, они обнаружили, что ДВД постепенно происходит и в самом активированном нервном пути, если он редко подвергается активации (гомосинаптическая ДВД)[1626]. В психологическом плане это явление можно рассматривать как нейронный механизм постепенного угасания воспоминаний[1627].

В 1982 г. в работе[1628] Масао Ито и его коллег было показано существование гетеросинаптической ДВД параллельных волокон в мозжечке, вызываемой их одновременной активацией. Некоторые исследователи в наши дни считают, что параллельные волокна передают в обратном направлении сигналы для коррекции эффективности синапсов. Не забудьте упомянуть эту работу, когда будете троллить знакомого нейрофизиолога вопросом о наличии в мозге механизма для обратного распространения ошибки. К слову сказать, мозжечок является очень важной частью нервной системы. Хотя он занимает у человека всего около 10% объёма головного мозга, на долю этого отдела приходится около 80% его нейронов![1629] В соответствии с современными научными представлениями в хитросплетениях связей нервных клеток мозжечка закодированы модели всего, с чем на протяжении жизни сталкивается двигательная система организма[1630], [1631].

В 1983 г. Освальд Стюарт и Уильям Леви исследовали[1632] влияние на синаптическую пластичность относительной синхронизации в пределах нескольких миллисекунд потенциалов пре- и постсинаптического действия. Для этого они взяли два нервных пути, оканчивающихся в одном постсинаптическом нейроне, — «слабый» и «сильный», то есть с меньшей эффективностью и с большей, — и вызывали в них стимулы, варьируя время вызова импульса. Хотя им и удалось обнаружить в опытах существенную асимметрию: активация слабого нервного пути раньше сильного вызывала ДВП в слабом нервном пути, в то время как активация сильного нервного пути раньше слабого вызывала ДВД в слабом нервном пути, но авторы, как и многие другие исследователи в 1980-е гг., не усмотрели в этом явлении системы.

В 1990 г. немецкий исследователь Вольф Зингер и его коллеги сообщили[1633], что наступление ДВП или ДВД обусловлено гиперполяризацией или деполяризацией постсинаптического нейрона (напомним, что гиперполяризация — это смещение мембранного потенциала относительно потенциала покоя в более отрицательную сторону, а деполяризация — в положительную). ДВП происходит, если после стимуляции мембранный потенциал постсинаптического нейрона не достигает определённого порога («критический уровень деполяризации»), а ДВП происходит, если данный порог достигается, ввиду чего происходит последующая гиперполяризация.


Рис. 115. Зависимость мембранного потенциала от времени, прошедшего после стимуляции

Это исследование привлекло внимание к более пристальному изучению постсинаптического нейрона, поскольку именно его мембранный потенциал является ключевым для ДВП или ДВД, которые необязательно зависят от поступления сигнала через входящий синапс[1634]. Четырьмя годами спустя Доминик Дебанн и его коллеги сделали[1635] ещё один шаг вперёд: они вначале направляли деполяризующие импульсы тока непосредственно в постсинаптический нейрон, меняя его мембранный потенциал, а потом стимулировали нервный путь. Их исследования показали, что при небольшой разнице по времени между искусственной деполяризацией и входными импульсами происходит ДВП, а при большой — ДВД. Это добавило к исследованию Зингера тот факт, что именно уровень деполяризации и гиперполяризации, вызванный каким-либо образом (даже искусственно), и определяет направление синаптической пластичности.

Наконец, в 1991 г. Роберто Малиноу провёл завершающее исследование. Он смог в тонком срезе гиппокампа выделить четыре пары пирамидальных нейронов CA3 и CA1, каждая из которых была связана через единственный синапс. Затем он, одновременно вызывая серии импульсов в пре- и постсинаптическом нейронах, получил ДВП в этих соединениях[1636]. Эта работа стала первой (спустя более сорока лет после выхода в свет ключевой работы Хебба!) прямой демонстрацией того, что синаптические связи между двумя нейронами могут изменяться, ведь здесь удалось полностью исключить влияние на ход эксперимента сторонних воздействий.

В наши дни продолжается активное изучение биологических механизмов, лежащих в основе ДВП и ДВД. В частности, учёные вырабатывают подходы, позволяющие рассчитывать эффективность каждого отдельно взятого синапса на основе данных микроскопии[1637], [1638], [1639].

Важной вехой в истории изучения механизмов ДВП и ДВД стало выступление Генри Маркрама на ежегодном собрании Общества нейронаук (Society for Neuroscience) в 1995 г. В ходе этого выступления Маркрам рассказал научной общественности о первом экспериментальном исследовании[1640], показавшем, что ДВП и ДВД зависят от разницы во времени возникновения одиночных импульсов, испускаемых пре- и постсинаптическими нейронами в моносинаптических связях между парами нейронов неокортекса. Водораздел, задаваемый относительной синхронизацией отдельных импульсов на временно́м масштабе в несколько десятков миллисекунд, определял направление (потенциация или депрессия) и степень изменения эффективности синаптической связи. Именно это выступление Маркрама (ныне директора Blue Brain Project и основателя Human Brain Project) стало моментом окончательного оформления STDP в качестве модели синаптической пластичности биологических нейронов и одновременно как алгоритма обучения импульсных нейронных сетей[1641], хотя сам термин STDP появился только в 2000 г. в работе[1642] Сена Сонга, Кеннета Миллера и Ларри Эбботта. Таким образом, спустя полстолетия после основополагающей работы Хебба его знаменитое «возбуждаются вместе — связываются вместе» [fire together, wire together] (соответствующее ДВП), как оказалось, можно дополнить ещё одним принципиальным афоризмом, предложенным Карлой Шатц: «Сработал несинхронно — потерял свою связь» [fire out of sync, lose your link][1643] (соответствующее ДВД).

Важными параметрами STDP являются конкретные значения временных интервалов синхронизации импульсов. В ходе экспериментов по обучению больших импульсных сетей для решения прикладных задач были созданы такие методы, как R-STDP (версия STDP, в которой обучение модулируется при помощи внешнего подкрепления, основанного на фазовой активности дофаминовых нейронов)[1644], TD-STDP (версия STDP, использующая метод временных разниц [temporal difference])[1645] и даже BP-STDP, а также другие похожие методы, эмулирующие работу метода обратного распространения ошибки за счёт особого подбора параметров STDP[1646], [1647], [1648]. Эти методы для ряда задач демонстрируют эффективность, сходную с эффективностью метода обратного распространения ошибки[1649], [1650], [1651].

5.3.7 Нейроморфные системы типа I. Перспективы

Одним из потенциальных преимуществ импульсных нейронных сетей является, по всей видимости, то, что они меньше подвержены так называемой проблеме катастрофической интерференции [catastrophic interference] или, как её ещё называют, проблеме катастрофического забывания [catastrophic forgetting][1652].

Суть этой проблемы заключается в том, что искусственные нейронные сети, обученные на некоторой выборке, имеют склонность внезапно полностью забывать ранее изученную информацию при попытке «доучить» их на другой выборке, содержащей прецеденты, с точки зрения человека отличающиеся от прецедентов в оригинальной выборке. Это существенно осложняет перенос обучения (знаний) [transfer learning] между близкими областями и создаёт проблемы при дообучении моделей [fine-tuning, дословно — тонкая настройка]. Впрочем, для классических нейронных сетей в настоящее время существует несколько рабочих рецептов, предназначенных для борьбы с этой проблемой (мы поговорим о них позже).

Учитывая тот факт, что Генри Маркрам был основным идеологом Human Brain Project на его старте, было бы удивительно, если бы разработчики BrainScaleS не заложили бы в созданную ими аппаратную архитектуру, помимо краткосрочной синаптической пластичности, поддержку STDP. Причём прототип второй версии BrainScaleS позволяет реализовать принцип R-STDP, что делает возможным моделирование таких сложных явлений, как, например, формирование павловского условного рефлекса[1653].

Вторая аппаратная линейка, разработанная в рамках Human Brain Project, носит название SpiNNaker. В отличие от BrainScaleS в основе SpiNNaker лежит многоядерная цифровая архитектура. Система состоит из 57 600 процессоров ARM9 (а именно ARM968), каждый из которых имеет 18 ядер и 128 Мб мобильной памяти DDR SDRAM, что в сумме даёт 1 036 800 ядер и более 7 Тб оперативной памяти.

Вся эта монструозная конструкция, потребляющая около 100 кВт, размещена в десяти 19-дюймовых стойках, каждая из которых содержит более 100 000 вычислительных ядер, а каждое ядро способно эмулировать работу 1000 нейронов. Конечной целью системы является моделирование в реальном времени импульсных нейронных сетей, содержащих до миллиарда нейронов[1654], [1655].

В сентябре 2019 г. было принято решение о том, что новый грант в размере 8 млн евро для финансирования строительства машины SpiNNaker второго поколения (названной SpiNNcloud) получит Технический университет Дрездена (Technische Universität Dresden)[1656].

Полномасштабный SpiNNcloud будет состоять из десяти серверных стоек с пятью шасси, в каждом из которых будет установлено по 25 плат, на каждой из которых, в свою очередь, размещено по 56 процессоров. Каждый из процессоров модели SpiNNaker 2 содержит 144 ядра ARM A4F, выполненных по технологии 22-нм FDSOI. Итого SpiNNcloud будет содержать 10 080 000 вычислительных ядер. При этом каждое из этих новых ядер будет способно симулировать в пять раз больше нейронов, чем старое, что в итоге позволит полномасштабной системе в сборке симулировать в реальном времени работу биологических нейронных сетей, состоящих из приблизительно 50 млрд нейронов[1657], [1658]. Напомним, что мозг человека содержит около 86 млрд нейронов.

При перечислении всех этих чисел создаётся впечатление об огромном масштабе проекта, сопоставимом чуть ли не с ядерной и космической программами. В действительности 8 млн евро — это сумма, составляющая менее одной десятой части рыночной цены самой дорогой московской квартиры[1659]. Сумма двухлетнего (с апреля 2018 г. по март 2020 г.) финансирования Human Brain Project со стороны Европейского союза составляет 88 млн евро[1660], что всё ещё меньше цены шикарного пятиуровневого пентхауса в Неопалимовском переулке. Расходы на Human Brain Project в год немного превышают две миллионные доли от мировых военных расходов[1661]. Самый богатый в мире проект по исследованию мозга (Brain Initiative), бюджет которого десятикратно превышает бюджет Human Brain Project[1662], выглядит в подобном сравнении едва заметной букашкой.

5.3.8 Нейроморфные системы типа II. Начало

Пока научные коллаборации заняты развитием нейроморфных систем типа I, моделируя биологические процессы, параллельно происходит развитие систем типа II, дающее осторожные надежды на то, что нейроморфное «железо» вскоре может стать частью массовых пользовательских устройств. В первую очередь оно может быть востребовано там, где особенно важно повысить мобильность машин — в носимых устройствах (например, смартфонах или фитнес-трекерах), в бионических протезах (здесь применение импульсных нейронных сетей может быть особенно полезным, поскольку такая сеть способна «общаться» с нервной системой «на одном языке»), на борту дронов и других автономных или полуавтономных устройств (например, пользовательских роботов). Серьёзный интерес проявляют к нейроморфным системам типа II и военные. Во всяком случае, наиболее заметный проект 2010-х гг. в этой области — нейроморфный чип от IBM под названием TrueNorth — был создан в рамках военной программы DARPA SyNAPSE (Systems of Neuromorphic Adaptive Plastic Scalable Electronics, Системы нейроморфной адаптивной пластичной масштабируемой электроники).

Сложно сказать, какой именно проект нейроморфной системы типа II можно считать первым. В конце концов своё применение в технике нашли и триггеры Шмитта, да и контуры памяти первых ЭВМ, как мы знаем из «Первого проекта отчёта об EDVAC», создавались под влиянием исследований Мак-Каллока и Питтса. Как мы уже заметили ранее, граница, разделяющая нейроморфные системы и классические, во многом размыта. Если за неё принять использование импульсных нейронных сетей в качестве математической модели, лежащей в основе вычислительного устройства, то отсчёт, видимо, следует начать с американо-польского проекта Бялко, Ньюкомба и Деклариса. Эта практика создания устройств на основе импульсных нейронных сетей получила своё развитие в 1980-е гг. Например, ряд публикаций конца 1980-х — начала 1990-х гг. за авторством классика нейроморфной инженерии Алана Мюррея и его коллег описывает создание импульсных нейронных сетей на основе СБИС.

Продолжал работу в этой области и Ньюкомб. Например, в 1992 г. в его статье[1663], написанной в соавторстве с Гью Муном и Моной Заглул, описывается СБИС-реализация синаптических весов и суммирования в импульсных нейронах. Одним из важных этапов работы группы Ньюкомба стала публикация в 1994 г. книги[1664] под названием «Исполнение импульсно связанных нейронных сетей в кремнии» (Silicon Implementation of Pulse Coded Neural Networks). Исследования Ньюкомба и его коллег заложили фундамент для будущих инженерных проектов нейроморфных вычислений.

В 1990-е и начале 2000-х гг. свет увидело немало работ, в которых рассматривалось создание экспериментальных нейроморфных микросхем, в том числе предназначенных для решения прикладных задач. Например, в статье Ясухиро Оты и Богдана Виламовски, опубликованной в 2000 г.[1665], предлагается CMOS‑архитектура синхронной импульсной нейронной сети и рассматривается её применение в обработке изображений. Аппаратная конструкция была основана на модели нейрона «интегрировать-и-сработать» с утечками и обеспечивала динамическое связывание синапсов. Впрочем, размеры сетей, реализуемых нейроморфными микросхемами в 1990-е и в начале 2000-х гг., были довольно скромными, а сами микросхемы если и доводились до стадии выполнения «в кремнии», то выпускались обычно крайне малыми сериями, а то и в единичных экземплярах.

Конечно, очень круто изготовить нейроморфный чип[1666], симулирующий работу верхнего двухолмия (Superior colliculus) мозга амбарной совы (сипуха обыкновенная, Tyto alba), но хочется всё-таки увидеть подобный процессор встроенным в какое-нибудь пользовательское устройство, хотя бы в электронный глобус.



Старт программы SyNAPSE в 2008 г. подстегнул новую волну интереса к нейроморфной инженерии. Основными получателями финансирования от DARPA стали HRL Laboratories, IBM и Hewlett-Packard. От IBM исследовательскую группу возглавил Дхармендра Модха, от HRL — Нарьян Шриниваса, от HP — Грегори Снайдер. Компании, в свою очередь, привлекли в качестве субподрядчиков ряд ведущих американских университетов.

5.3.9 Открытие мемристора

Именно в 2008 г. компания Hewlett-Packard (далее — HP) привлекла к себе внимание благодаря заявлению о создании мемристора [memristor] — «недостающего звена» электронной схемотехники.

Теория электронных схем до начала 1970-х гг. вращалась вокруг трёх известных фундаментальных двухполюсных элементов, известных как резистор, конденсатор и катушка индуктивности. Эти элементы отражают отношения между парами четырёх основных электрических величин: заряда, силы тока, напряжения и потока магнитной индукции.

Несложно заметить, что в списке элементов отсутствует такой, который обеспечивал бы связь между зарядом и магнитным потоком. Профессор Леон Чуа из Калифорнийского университета в Беркли в 1971 г. был первым, кто обратил внимание на это недостающее звено, предположив возможность создания четвёртого фундаментального элемента. Этот четвёртый элемент был назван мемристором (не путать с мемистором Уидроу!): от слов memory — память и resistor — резистор. Чуа показал, что переменный мемристор, по сути дела, является резистором с памятью, поскольку его сопротивление меняется в зависимости от прошедшего через него заряда.

В течение многих лет после выхода в свет пионерской работы Чуа исследователи считали, что мемристор является лишь теоретическим конструктом. Конечно, в оригинальной статье Чуа было продемонстрировано устройство, состоящее из операционных усилителей и дискретных нелинейных резисторов, но мало кто надеялся в те годы на то, что этот же принцип может быть воплощён в простом физическом элементе. Громом среди ясного неба стала публикация в Nature исследователей Hewlett-Packard под руководством Ричарда Стэнли Уильямса из лаборатории в Пало-Альто под названием «Найден пропавший мемристор» (The missing memristor found)[1667], объявившая, что физическая модель мемристора создана. Наличие эффекта памяти было продемонстрировано в твердотельном тонкоплёночном двухполюсном устройстве[1668], состоящем из тонкой (50 нм) плёнки диоксида титана, разделяющей два электрода толщиной 5 нм (один изготовлен из титана, второй — из платины). Плёнка диоксида титана имела два слоя, в одном из которых существовал небольшой дефицит атомов кислорода. Отсутствие атома в одном из узлов кристаллической решётки называют «вакансией», а отсутствие атома кислорода соответственно «кислородной вакансией». Кислородные вакансии действуют как носители заряда, поэтому обеднённый слой имеет меньшее сопротивление, чем необеднённый. Приложение электрического поля вызывает дрейф кислородных вакансий, что приводит к смещению границы между слоями. Это изменение можно обратить, изменив направление тока. Таким образом, сопротивление плёнки в целом зависит от заряда, прошедшего через неё в определённом направлении[1669].

Сам по себе эффект изменения сопротивления диоксида титана был первоначально описан в 1960-е гг., однако в те годы не привлёк внимания инженеров.

Не все специалисты согласны с тем, что в 2008 г. команда исследователей HP создала именно мемристор. В конце концов, количество кислородных вакансий в плёнке ограниченно. Устройство будет работать в течение определённого времени как своеобразный «химический конденсатор», пока химическая неоднородность не будет сбалансирована, что приведёт к нарушению основного требования к подлинному мемристору, так называемого «свойства разряда без энергии»[1670]. Есть и другие претензии к «мемристору» на основе диоксида титана (как и к другим существующим устройствам, претендующим на высокое звание мемристора). Впрочем, сам создатель термина «мемристор» Леон Чуа выступил в поддержку своих коллег из HP, предложив относить к мемристорам все «двухполюсные устройства энергонезависимой памяти, основанные на изменении сопротивления <…> независимо от материала устройства и физических механизмов его действия»[1671]. Впрочем, при такой расширительной трактовке понятия к мемристорам можно отнести и мемистор Уидроу, и даже потенциометры с электромоторами, использовавшиеся Розенблаттом. Отечественные остряки из Томской группы и студенческого отделения Института инженеров по электротехнике и радиоэлектронике вообще предлагают называть мемристоры «пизасторами» (по первым буквам в выражении «Поток И ЗАряд», поскольку эти устройства связывают магнитный поток и заряд), а явление, лежащее в его основе, — «пизастансом»: «…гипотетическое устройство было главным образом описано как математическое развлечение. Тридцать лет спустя, старейшина Хулетт-Поцкард Стэн Уильямс и его группа работала над молекулярной электроникой, когда они стали обращать внимание на странное поведение в их устройствах. „Они делали действительно забавные вещи, и мы не могли выяснить, что это за хрень“, — говорит Уильямс. Тогда сотрудник Хулетт-Поцкард Грэг Стукач открыл вновь работу Хуа 1971 г. Уильямс вспоминает: „Он сказал: «Эй, чуваки, я не знаю, что за говно мы получили, но это то, что мы хотели»“. Уильямс потратил несколько лет, читая и перечитывая статьи Хуа. „Это были несколько лет чесания затылка и размышления об этом“. Тогда Уильямс понял, что их босхианская коллекция устройств были действительно пизасторами. Это поражало воображение до самых корней»[1672].


Рис. 116. Фундаментальные двухполюсные элементы электронной схемотехники

По крайней мере, с последним утверждением электронщиков из Томска трудно поспорить — открытие Уильямса и его коллег поразило воображение «до самых корней».

Выход статьи в Nature спровоцировал быстрый рост интереса к данной области, и вскоре появилось множество альтернативных схем реализации мемристора. Более того, выяснилось, что некоторые из них были предложены до публикации исследователями HP своих результатов.

Рост интереса к мемристивным устройствам спровоцировал увеличение интереса к нейроморфной инженерии. Действительно, появление недорогих и компактных мемристоров могло бы серьёзно упростить сборку технических аналогов нейронов и сделать их более эффективными. Разработка подобных технологий активно ведётся в наши дни. Например, в 2018 г. одна из трёх компаний, составивших ядро программы SyNAPSE, а именно HRL, сообщила о создании искусственного нейрона, в основе которого лежат мемристоры на базе диоксида ванадия. Нейроны от HRL успешно симулируют работу известных типов биологических нейронов, что делает их одним из перспективных строительных блоков нейроморфных систем[1673].

Программа SyNAPSE произвела на свет много интересных проектов, здесь мы ограничимся упоминанием двух из них. В 2010 г. свет увидел анимат MoNETA (MOdular Neural Exploring Traveling Agent, Модулярный нейронный исследующий путешествующий агент). Аниматами называют искусственные поведенческие модели животных, предназначенные для изучения интеллекта на примитивном уровне[1674]. Фактически аниматы — это автоматизированные агенты, действующие в виртуальном или реальном мире, своеобразные искусственные животные.

Взаимодействуя с реальным миром, анимат MoNETA учится принимать решения, направленные на увеличение вознаграждения и уклонение от опасностей. Программный «мозг» анимата создан при помощи фреймворка Cog Ex Machina (Cog), разработанного HP совместно с Бостонским университетом, и предназначен для запуска на разрабатываемых HP нейроморфных чипах на основе мемристоров[1675], [1676].

В ноябре 2020 г. в журнале Nature Nanotechnology была опубликована статья[1677], сообщившая о создании инженерами Техасского университета в Остине (University of Texas at Austin, UT) самого маленького на текущий момент мемристора. В качестве основного материала в этом устройстве используется дисульфид молибдена. Не исключено, что в ближайшие годы именно этот тип мемристоров станет базовым строительным элементом новых нейроморфных устройств.


5.3.10 Нейроморфные системы типа II сегодня

В 2014 г. IBM представила нейроморфный процессор TrueNorth, хотя и созданный без применения мемристоров, но обладающий весьма впечатляющими характеристиками.

Микросхема TrueNorth содержит 4096 вычислительных (так называемых нейросинаптических) ядер, каждое из которых обеспечивает работу 256 искусственных нейронов, что в сумме даёт чуть более миллиона нейронов. В свою очередь, каждый нейрон обладает 256 конфигурируемыми «синапсами»; таким образом, общее количество программируемых синапсов составляет чуть более 268 млн. Потребляемая мощность этого устройства, состоящего из 5,4 млрд транзисторов, составляет всего 70 милливатт[1678].

Несмотря на столь впечатляющие показатели, создание TrueNorth стало лишь промежуточным этапом проекта. Для достижения ещё более высокой энергоэффективности было бы предпочтительно заменить цифровые синаптические веса, хранимые TrueNorth в массивах статической памяти с произвольным доступом (static random access memory, SRAM), на аналоговые устройства, способные обеспечить более высокую плотность записи за счёт представления синаптических весов в виде электрического сопротивления отдельных элементов.

Главной проблемой для инженеров из IBM было то, что к моменту начала работы над проектом не было убедительно доказано, что аналоговый подход может обеспечить ту же точность при решении задач, что и существующее программное обеспечение на обычном цифровом оборудовании. Эксперименты с обучением глубоких нейронных сетей на основе аналоговой памяти показывали более низкую точность классификации, связанную с несовершенством существовавших на тот момент аналоговых устройств.

Уже к 2018 г. исследователи успели перепробовать множество удивительных мемристивных устройств, основанных на самых разных принципах, таких, например, как резистивная оперативная память (Resistive random-access memory, ReRAM или RRAM)[1679], [1680], [1681], [1682] различных типов, оперативная память с проводящим мостом (Conductive-bridging random-access memory, CBRAM)[1683], ENOD (Electrochemical neuromorphic organic device, электрохимическое нейроморфное органическое устройство)[1684], LISTA (lithium-ion synaptic transistor for analogue computing, литий-ионный синаптический транзистор для аналоговых вычислений)[1685], [1686].

В марте 2021 г. учёные из Калифорнийского университета в Сан-Диего представили общественности «моттовский активационный нейрон» (Mott activation neuron) — наноустройство, реализующее кусочно-линейную функцию активации ReLU (о ней мы поговорим позже), являющуюся элементом многих современных нейронных сетей. В основе данного элемента лежит эффект, называемый «переходом Мотта» — в честь открывшего его английского физика Невилла Мотта, лауреата Нобелевской премии по физике 1977 г. Устройство нового элемента весьма изящно: над нанометровым слоем диоксида ванадия расположен нагреватель на основе нанопроволоки из титана и золота. Когда ток течёт через нанопроволоку, слой диоксида ванадия медленно нагревается, что, ввиду вышеуказанного эффекта, приводит к его постепенному превращению из изолирующего в проводящий[1687].

Впрочем, между прототипом мемристивного элемента и полноценным процессором на его основе лежит довольно долгий путь, полный различных инженерных трудностей. Например, необходимо научиться создавать не просто единичные элементы, а полноценные массивы таких элементов. Для того чтобы процессор на основе мемристивных элементов мог конкурировать с традиционными интегральными микросхемами, он должен управляться очень короткими и низкоэнергетическими импульсами — иначе устройство будет слишком медленным и будет выделять слишком много тепла. Успеха удалось добиться за счёт создания устройства, сочетающего в себе энергонезависимую память на базе технологии PCM (Phase-change memory, Память с изменением фазового состояния) с классической энергозависимой памятью на основе CMOS для хранения синаптических весов. При этом PCM применялось для осуществления аналоговых операций умножения и накопления, используемых для коррекции весов в методе обратного распространения ошибки. Эксплуатируя это чудо современной технологии, специалисты IBM смогли обучить глубокие нейронные сети решению задач классификации изображений на популярных датасетах (MNIST, зашумлённая версия MNIST, CIFAR-10, CIFAR-100). При этом обученные сети не уступали в точности аналогам, обученным при помощи тензорных процессоров, а потребление электроэнергии в процессе обучения оказалось почти в 300 раз меньше. Результаты исследования, опубликованные[1688] в Nature в 2018 г., продемонстрировали возможность создания нейроморфных устройств, способных превзойти тензорные процессоры при решении классических задач глубокого обучения.

В нейроморфную гонку включились и другие производители компьютерного оборудования. Компания Intel продемонстрировала опытный образец процессора Loihi, состоящего из 128 нейросинаптических ядер и трёх ядер Lakemont x86 (Quark). Каждое нейроморфное ядро, созданное на базе 14-нанометрового техпроцесса, обеспечивает работу 1024 искусственных нейронов — каждый с 1024 искусственными синапсами, что даёт в сумме более 130 000 нейронов и 130 млн синаптических связей. Правила обучения сети программируются при помощи системы микрокодов. Intel сообщает, что энергоэффективность Loihi при обучении нейронных сетей примерно в 1000 раз выше, чем при использовании обычных CPU[1689], [1690], [1691]. Первые тестовые чипы были выпущены в ноябре 2017 г. и с 2018 г. стали передаваться ведущим университетам и исследовательским лабораториям[1692].

Процессоры Loihi могут быть объединены в вычислительные массивы с помощью плат Intel Nahuku, каждая из которых может нести на себе от 8 до 32 процессоров. Система Pohoiki Beach, запущенная Intel в начале 2019 г., состоит из нескольких плат Nahuku, объединяющих 64 процессора Loihi (в сумме более 8 млн нейронов). В конце 2019 г. компания закончила сборку ещё более грандиозной машины — Pohoiki Springs, объединяющей 768 процессоров Loihi и обеспечивающей работу около 100 млн нейронов (примерно как в мозге мыши)[1693].

30 сентября 2021 г. Intel представила Loihi 2 — нейроморфный исследовательский чип второго поколения и Lava — программную среду с открытым исходным кодом для разработки нейроморфных приложений. Усовершенствования в архитектуре Loihi 2 позволили добиться примерно десятикратного ускорения при обработке данных, увеличить число искусственных нейронов до миллиона, а также повысить энергоэффективность системы[1694].

О своих нейроморфных амбициях заявляет и другой крупнейший производитель интегральных микросхем — корейская компания Samsung[1695].

В августе 2023 г. исследователи из компании IBM на страницах журнала Nature рассказали о новом нейроморфном процессоре, предназначенном для задач распознавания речи[1696]. В основе устройства: 35 млн PCM-элементов, объединённых в 34 ячейки, система массово-параллельного обмена данными между ячейками и аналоговая периферийная схема с низким энергопотреблением, которая позволяет достичь производительности 12,4 трлн синаптических операций в секунду на ватт потребляемой мощности. В своих тестах разработчики смогли успешно запустить на пяти таких процессорах нейросеть MLPerf8 с 45 млн параметров, основанную на архитектуре RNNT (Recurrent neural-network transducer, Рекуррентный нейросетевой трансдьюсер).

Практически одновременно другая группа исследователей из IBM опубликовала в Nature Electronics статью[1697] про гибридный процессор, предназначенный для инференса (исполнения) нейросетевых моделей. Этот процессор сочетает цифровые вычисления, выполняемые схемой, основанной на 14-нм комплементарной технологии металл — оксид — полупроводник, с аналоговыми вычислениями во встроенной PCM-памяти (Analogue in-memory computing, AIMC). Устройство состоит из 64 ядер, соединённых в единую сеть. В зависимости от выбранной степени точности процессор позволяет достичь производительности от 2,48 до 9,76 трлн операций в секунду на ватт. Исследователи успешно запустили на нём нейросети с архитектурами ResNet и LSTM, получив точность, практически не уступающую точности тензорных процессоров.

Сегодня число проектов нейроморфных чипов, находящихся на разной степени готовности, перевалило за десяток. Это и DYNAP (Dynamic Neuromorphic Asynchronous Processor, Динамический нейроморфный асинхронный процессор) от компании aiCTX (AI Cortex)[1698], и Dynamic Vision Sensor (Динамический зрительный сенсор) от iniVation[1699] (обе компании связаны с ETH-Zürich), и нейроморфный процессор Akida от компании BrainChip, и RAMP (Reconfigurable Analog Modular Processor, Реконфигурируемый аналоговый модульный процессор) от Aspinity[1700], и совместный китайско-сингапурский Tianjic[1701], и Eyeriss от MIT[1702], и EIE (Efficient Inference Engine, Эффективный движок для выполнения [нейросетевых моделей]) из Стэнфорда[1703], и российский «Алтай» от новосибирской компании «Мотив»[1704] и так далее.

Подробный обзор[1705] существующих нейроморфных систем был опубликован в конце июля 2020 г. в журнале Nature, однако новые устройства подобного рода появляются едва ли не ежемесячно — сегодня это весьма горячее направление развития технологий. Развитие специализированного оборудования для задач машинного обучения — мощный двигатель прогресса в области ИИ. И хотя новая коннекционистская весна опиралась по большей части на тензорные процессоры — главную сегодня «рабочую лошадку» индустрии глубокого обучения, — ситуация может измениться в любой момент, поскольку в наши дни множество усилий учёных и инженеров направлено на изучение существующих альтернатив, в первую очередь всевозможных нейроморфных архитектур. Исследователи из Национального института стандартов и технологий США разработали искусственные синапсы на базе нанотекстурированных магнитных джозефсоновских контактов[1706], китайские учёные предлагают искусственные синапсы на базе графеновых ферроэлектрических транзисторов[1707], в Южной Калифорнии разработаны синаптические транзисторы на базе выровненных углеродных нанотрубок[1708], разрабатываются различные типы оперативной памяти с интегрированными вычисляющими элементами (Computational RAM).

В начале 2022 г. в журнале Science была опубликована работа[1709] группы американских учёных, которым удалось создать полностью реконфигурируемую нейроморфную структуру на базе никелата перовскита — по сути, речь идёт об устройстве, реализующем нейронную сеть, архитектура которой может изменяться под воздействием электрических импульсов. Всего через полторы недели после этой работы, уже в Nature Communications, увидела свет статья[1710] шведских учёных, посвящённая исследованию другого потенциального физического субстрата для нейроморфных вычислений — электромеханически переключаемых углеводородов на основе [8]аннуленов.

Чаще всего экспериментальные мемристоры создаются на базе тех же технологий, что и различные массивы памяти, однако в 2022 г. в журнале Science вышла новая любопытная статья. В ней исследователи Массачусетского технологического института утверждают, что компоненты, оптимизированные для долговременного хранения информации, плохо подходят для осуществления регулярных переходов между состояниями, необходимых для постоянно подстраиваемых синаптических связей искусственной нейронной сети. Дело в том, что физические свойства, обеспечивающие долговременную стабильность, обычно плохо сочетаются со свойствами, обеспечивающими быстрое переключение. Для решения проблемы скорости исследователи разработали программируемые резисторы, проводимость которых регулируется введением или удалением протонов в канал, состоящий из фосфоросиликатного стекла (ФСС). Этот механизм отдалённо напоминает принцип работы биологических нейронов, в которых ионы переносят сигналы через синаптические щели. Разработанное устройство имеет три вывода, два из которых являются по существу входом и выходом синапса, а третий используется для применения электрического поля, которое в зависимости от направления стимулирует движение протонов из резервуара в канал из ФСС или обратно (чем больше протонов в канале, тем выше его сопротивление). Эту схему работы устройства исследователи придумали ещё в 2020 г., однако они не сразу догадались использовать ФСС. Именно такое решение позволило резко увеличить скорость переключения устройства: наноразмерные поры в структуре ФСС позволяют протонам очень быстро перемещаться через него, и ещё ФСС способно выдерживать очень сильные импульсы электрического поля, а более мощные электрические поля позволяют протонам перемещаться гораздо быстрее. Поскольку напряжение выше 1,23 вольта заставляет воду, составляющую основную часть клеток, расщепляться на водород и кислород, то электрические поля в мозге должны быть относительно слабыми. Во многом поэтому длительность неврологических процессов обычно составляет миллисекунды. В отличие от биологических синапсов вышеописанное устройство способно работать при напряжении до 10 вольт и с импульсами длительностью до 5 нс. Вдобавок размеры таких устройств измеряются всего лишь нанометрами, что делает их в 1000 раз меньше биологических синапсов[1711], [1712].

Создание систем такого рода открывает перед нейроморфной инженерией новые удивительные перспективы.

5.3.11 Перспективные вычислительные технологии

В эпоху повсеместного торжества микроэлектроники учёные продолжают поиск альтернативных технологий, способных в будущем стать базой вычислительных машин. В качестве одной из возможных замен «классических» устройств рассматриваются машины, в основу которых будут положены эффекты квантовой физики, — так называемые квантовые компьютеры. По мнению учёных, они смогут решать многие вычислительные задачи намного быстрее, чем современные ЭВМ[1713].

Базовым строительным кирпичиком квантовых компьютеров являются кубиты (qubit, сокращение от quantum bit — квантовый бит) — «квантовые версии» двоичных регистров. Как и бит, кубит допускает два собственных состояния, обозначаемых — по предложению Поля Дирака — «|0〉» и «|1〉». При этом, согласно принципам квантовой механики, кубит находится в «суперпозиции»: «A|0〉 + B|1〉», где A и B — это комплексные числа, удовлетворяющие условию A2 + B2 = 1, а при любом измерении состояния кубита он случайным образом с вероятностью A2 переходит в состояние «|0〉», а с вероятностью B2 — в состояние «|1〉». Кубиты могут пребывать в состоянии «квантовой запутанности» друг с другом, что предполагает наличие между ними некоторой ненаблюдаемой связи, выражающейся в том, что при любом изменении одного кубита остальные изменяются согласованно с ним. Из кубитов можно составлять квантовые логические вентили, позволяющие конструировать сложную вычислительную логику. Также существует расширенная версия кубита с количеством состояний больше двух — кудит (qudit, сокращение от quantum dit — квантовый дит[1714])[1715].

За последние три десятилетия достижения в области квантовых вычислений стимулировали значительный интерес к этой области со стороны промышленности, инвесторов, средств массовой информации, менеджмента и общества. Создано множество опытных квантовых компьютеров, возможности которых пока существенно ограниченны, однако с их помощью уже получен ряд обнадёживающих результатов[1716]. В последние годы активно исследуются возможности реализации алгоритмов машинного обучения на квантовых компьютерах. Разработаны квантовые реализации как для «классических» методов, таких как линейная регрессия[1717], [1718], [1719], [1720], деревья решений[1721], SVM[1722], [1723], [1724], скрытые марковские модели[1725], [1726], так и для различных архитектур нейронных сетей: машин Больцмана[1727], [1728], [1729], [1730], [1731], [1732], вариационных автокодировщиков[1733], свёрточных сетей[1734], LSTM[1735], трансформеров[1736], а также произвольных многослойных перцептронов[1737], [1738], [1739], [1740], [1741]. Предложены концепции, позволяющие реализовать на квантовых машинах такие парадигмы машинного обучения, как обучение с подкреплением[1742], генеративно-состязательные сети[1743], [1744], [1745] и ансамбли моделей[1746], [1747], [1748].

По мере создания квантовых компьютеров, состоящих из достаточно большого числа элементов (кубитов или кудитов), квантовые машины смогут претендовать на роль основной вычислительной платформы для задач машинного обучения. Однако пока их разработка находится на стадии поиска физической основы вычислений, наиболее подходящей для последующего масштабирования. Появление удачной физической платформы может стать началом настоящей революции, которая до неузнаваемости изменит нашу вычислительную технику, а вместе с ней, по всей видимости, и всю индустрию машинного обучения. Обнадёживающие новости приходят и из мира нанофотоники.

В биотехнологических лабораториях учёные из биологических нейронов выращивают органоиды, которые могут стать основой будущих вычислительных устройств на основе технологий wetware[1749]. Исследователи из компании Cortical Labs создали систему Dishbrain, состоящую из находящихся в чашке Петри примерно миллиона человеческих нейронов, которая успешно соперничает с искусственными нейронными сетями при обучении игре в Pong[1750]. Клеточные культуры управляют первыми криповатыми гибротами (гибридными роботами из электроники и живой ткани)[1751].

Какие-то из этих технологий так и останутся лабораторными игрушками, а каким-то уже совсем скоро предстоит стать новой технологической базой нашего общества.

5.4 Данные

Ещё младенцем, однажды где-то

без спросу взял я с гербом и грифом бумагу;

и в правом верхнем углу цветное

своё, конечно, изображенье наклеил;

а посредине — единым махом,

славянской вязью, китайской тушью —

вписал подряд, как есть, не тая:

свой рост и возраст, и вес и адрес,

и род занятий, и беспартийность, конечно;

к тому прибавил, со строчки красной,

подробный список родных и близких, а как же;

потом немного ещё подумал —

и отпечаток большого пальца

оттиснул в левом нижнем углу;

а в нижнем правом — поставил подпись,

таким уж, видно, смышлёным был я ребёнком…

Михаил Щербаков

Важным и во многом недооценённым фактором, повлиявшим на прогресс технологий машинного обучения, является наличие массивов оцифрованных данных, которые могут быть использованы в качестве обучающих выборок. В датасете MNIST, широко использовавшемся на заре новой коннекционистской весны, содержится 60 000 изображений в обучающей и 10 000 в тестовой выборке. Если при обучении перцептрона Розенблатта вы предъявляли бы ему эти изображения обучающей выборки со скоростью одно в секунду, процесс обучения занял бы почти 17 часов. А ведь это массив, который в наши дни считается «игрушечным». Для сравнения: в базе ImageNet, использовавшейся для обучения и тестирования систем распознавания образов в 2010-е гг., есть 14 197 122 изображения, разбитые на 21 841 категорию. На «скармливание» такого массива перцептрону ушло бы почти полгода. Во времена первой коннекционистской весны не существовало доступной цифровой фотографии, не существовало гигантских библиотек оцифрованных текстов, не было миллионов пользователей социальных сетей, ежедневно выкладывающих в открытый доступ тексты, фотографии и аудиозаписи. Причём данные, доступные в интернете, уже отчасти структурированы и размечены пользователями: посты в социальных сетях содержат метки в виде лайков и тегов, фотографии часто снабжены сопроводительным текстом, профили пользователей содержат информацию о связях с другими профилями, публикации снабжены комментариями, видео на видеосервисах — информацией о количестве просмотров и так далее. Специалистами собраны, размечены и выложены в открытый доступ специализированные датасеты на любой вкус. И наконец, мощным источником данных являются производственные системы автоматизации. Благодаря внедрению вычислительной техники в работу предприятий и учреждений ежедневно собираются и накапливаются структурированные сведения о самых разных формах человеческой деятельности.



Таким образом, затраты на сбор и подготовку данных для многих задач машинного обучения сократились за несколько десятилетий многократно, причём темпы накопления человечеством цифровых данных в наши дни напоминают экспоненту.

В ноябре 2018 г. компания IDC при спонсорской поддержке Seagate провела исследование динамики объёма «цифровой вселенной» и пришла к выводу, что к 2025 г. человечество накопит 175 зеттабайт данных (по сравнению с 33 зеттабайтами в 2018 г.)[1752]. Вдумайтесь только: один зеттабайт равен одному триллиону гигабайт. Если бы мы могли записать всю эту информацию на DVD-диски с максимальной плотностью записи (17,08 Гб), то получили бы более 10 трлн дисков, а сложив эти диски вместе, мы получили бы стопку высотой более 12 млн километров, что примерно в 30 раз больше расстояния от Земли до Луны.

Таким образом, по оценке IDC, «датасфера» человечества в течение следующих пяти лет будет удваиваться приблизительно каждые три года, а за год увеличиваться примерно в 1,27 раза. Интересно посмотреть на прогнозы IDC в ретроспективе. Доклад 2012 г. прогнозировал, что к 2020 г. количество накопленных данных достигнет 40 зеттабайт[1753]. Похоже, мы опередили этот план чуть больше чем на год.

Не только количество, но и качество в данном случае имеет значение. Расширение области применения алгоритмов машинного обучения создало целую сопутствующую индустрию по разметке данных. В рассказе о механическом турке фон Кемпелена мы уже упоминали платформу Amazon Mechanical Turk (MTurk), созданную для коллективной обработки данных. Идея этого сервиса впервые появилась в патентной заявке предпринимателя Венки Харинараяна, поданной им в США в 2001 г.[1754] Идея заключалась в том, чтобы не просто привлечь людей к разметке данных в целях последующей автоматизации, а чтобы временно сделать людей частью производственных процессов по обработке данных там, где машины пока ещё не могут работать эффективнее, чем люди. В Amazon был придуман специальный термин для такого применения человеческого труда — «искусственный искусственный интеллект» (artificial artificial intelligence).

MTurk была официально запущена 2 ноября 2005 г. К середине ноября 2005 г. в системе было создано несколько десятков тысяч задач (на MTurk для них используется термин HIT — human intelligence task, задача для человеческого интеллекта), заказчиком которых была сама Amazon. К числу типичных заданий на MTurk относятся расшифровка (например, аудиозаписей), оценка (например, качества изображений), расстановка тегов (например, для видеороликов), заполнение опросов, написание текстов и так далее. В 2007 г. владельцы сервиса сообщали, что всего на платформе зарегистрировано 100 000 работников из более чем 100 стран мира, а в 2011 г. — уже 500 000 работников из более чем 190 стран.

В 2014 г. в России компания «Яндекс» создала собственный, популярный ныне сервис разметки «Яндекс.Толока»[1755]. Сегодня у нас в стране и за рубежом создан целый ряд сходных платформ. Одни из них делают упор на геймификацию процесса, другие в качестве конкурентных преимуществ заявляют наличие разметчиков, обладающих специализированными знаниями или сертификатами, третьи создаются крупными компаниями для разметки данных, которые не могут по какой-либо причине передаваться сторонним подрядчикам. К разметке данных, помимо сотрудников компаний и фрилансеров, привлекают даже заключённых и должников банков.

Платформы, подобные MTurk, часто считают характерным примером краудсорсинга (crowdsourcing, от crowd — толпа и sourcing — использование ресурсов). Это слово, изобретённое в 2005-м и впервые употреблённое в публичном пространстве в 2006 г., прочно вошло в лексикон предпринимателей, футурологов, философов и журналистов, хотя до сих пор по поводу его определения существуют некоторые разногласия. Общепринято, что под краудсорсингом понимается объединение людей (обычно в интернете) для выполнения какой-либо задачи совместными усилиями. Расхождения в определении начинаются с вопросов о том, в обязательном ли порядке труд участников является добровольным и безвозмездным, обязательно ли плоды этого труда являются общественным достоянием, кто может выступать в роли инициатора краудсорсинга. На самом деле противоречия были заложены в понятие фактически «от рождения». Один из его «отцов» Джефф Хау в 2006 г. писал:

Мне нравится использовать два определения для краудсорсинга:

Версия «белой книги» [White Paper]: краудсорсинг — это процесс передачи работы, традиционно выполняемой назначенным агентом (обычно сотрудником), на аутсорсинг неопределённой, как правило, большой группе людей в форме открытого призыва.

Версия Soundbyte: применение принципов открытого программного обеспечения [Open Source] к областям деятельности, не относящимся к программному обеспечению[1756].

Под «белой книгой» в данном случае понимается статья[1757] Хау в издании Wired, которая увидела свет в январе 2006-го и впервые сделала термин «краудсорсинг» достоянием общественности.

Словарь Мерриам — Уэбстера даёт[1758] определение, максимально приближенное именно к определению «белой книги»; если же мы выберем определение от Soundbyte, то MTurk внезапно перестанет быть краудсорсинговой платформой. Чтобы справиться с возникшими затруднениями, два храбрых исследователя из Университета Валенсии, Энрике Эстельес-Аролас и Фернандо Гонсалес-Ладрон-де-Гевара, предприняли смелую партизанскую операцию, опубликовав в Journal of Information Science работу под названием «К интегрированному определению краудсорсинга» (Towards an integrated crowdsourcing definition), в которой проанализировали 209 текстов, а также 40 найденных ими определений понятия «краудсорсинг». Авторы статьи выделили в каждом из определений основные признаки и рассмотрели образуемые определениями группы. Результатом работы стало новое, сорок первое определение краудсорсинга, звучащее следующим образом: «Краудсорсинг — это тип интерактивной онлайн-деятельности, в которой физическое лицо, учреждение, некоммерческая организация или компания посредством гибкого открытого призыва предлагают группе лиц с различными знаниями, степенью разнородности и количеством участников добровольно выполнить некоторую задачу. Выполнение задачи различной сложности и состава, в котором группа должна участвовать, внося свой вклад в форме работы, денег, знаний и/или опыта, всегда подразумевает взаимную выгоду. Участник получит удовлетворение некоторых потребностей, например экономических, потребности в социальном признании, увеличении самооценки или развитии индивидуальных навыков, в то время как краудсорсер получит и использует в своих интересах то, что участник принёс предприятию в зависящей от вида предпринятой деятельности форме»[1759].

Лично мне больше всего нравится именно это определение, поскольку чтение его перед сном позволяет мне получить удовлетворение некоторой потребности, а именно потребности в скорейшем наступлении сна, что, в свою очередь, позволяет мне с большим успехом впоследствии добиться наиболее полного удовлетворения потребностей в социальном признании, развитии индивидуальных навыков, а также экономических потребностей.

Ну а если серьёзно, то современные нейросетевые модели для решения задач в области обработки естественного языка нередко используют в качестве элемента обучающей выборки полный текст «Википедии», исследователи обращаются к помощи волонтёров в рамках проектов «гражданской науки», корпоративные разработчики используют внутренние данные и популярные площадки для разметки данных, расплачиваясь с разметчиками при помощи микротранзакций, приверженцы открытости в науке и разработке программного обеспечения выкладывают в общий доступ собственные массивы данных, хитрые маркетологи занимаются веб-скрейпингом (извлечением данных со страниц веб-ресурсов) или сбором пользовательских данных через игры, тесты и другие вирусные развлечения в социальных сетях, а владельцы социальных сетей вяло судятся с теми, кто пытается использовать без спроса публичные данные из профилей пользователей. Многочисленные животворящие источники данных питают индустрию машинного обучения, обеспечивая её бурное цветение.

Загрузка...