Алгоритм, который привёл к безудержному успеху нейронных сетей глубокого обучения, не работает в биологическом мозге, но исследователи находят работающие альтернативы. Изучая алгоритмы в искусственных сетях глубокого обучения, учёные узнают всё больше о том, как учатся сети биологических нейронов. В 2007 году ведущие мыслители в области нейронных сетей глубокого обучения организовали неофициальную «спутниковую» встречу на полях престижной ежегодной конференции по искусственному интеллекту. Последним спикером встречи был  Джеффри Хинтон  из Университета Торонто, когнитивный психолог и учёный в области компьютерных наук, ответственный за некоторые из крупнейших достижений в области глубоких сетей... Джеффри Хинтон начал с шутки: «Итак, около года назад я пришёл домой на обед и сказал: «Думаю, я наконец понял, как работает мозг», а моя 15-летняя дочь сказала: «Ох, папа, опять это...». Публика засмеялась. Хинтон продолжил: «Итак, вот как он работает». Раздалось ещё больше смеха. За шутками Хинтона – серьёзная цель: использовать ИИ, чтобы понять, как работает биологический мозг. Сегодня глубокие сети правят бал в области ИИ отчасти благодаря алгоритму, который называется «обратное распространение». Этот алгоритм позволяет нейронным сетям глубокого обучения учиться на данных, наделяя сети способностью классифицировать изображения, распознавать речь, переводить тексты с одних языков на другие, анализировать дорожные условия для беспилотных автомобилей и выполнять многие другие задачи. Но маловероятно, что биологический мозг работает по алгоритму обратного распространения. Дело не только в том, что «мозг способен обобщать и учиться лучше и быстрее современных систем искусственного интеллекта», – рассказывает  Йошуа Бенжио, учёный в области компьютерных наук из Монреальского университета и директор Квебекского института искусственного интеллекта, а также один из организаторов семинара 2007 года. По ряду причин обратное распространение несовместимо с анатомией и физиологией мозга, особенно – мозга с корой. Бенжио и многие другие вдохновлённые Хинтоном люди думали о более вероятных, с биологической точки зрения, механизмах обучения, успех которых мог бы по крайней мере соответствовать успеху обратного распространения. Три из самых многообещающих алгоритмов – выравнивание с обратной связью, распространение равновесия и прогнозное кодирование.  Некоторые исследователи также включают в свои модели свойства определённых типов нейронов коры головного мозга и такие процессы, как внимание. Все эти усилия приближают нас к пониманию способных работать в мозгу алгоритмов. «Мозг – огромная загадка. Создаётся общее впечатление, что, если мы раскроем некоторые из его принципов, это может оказаться полезным для ИИ», – рассказывает Бенжио, – но разрешение загадок мозга также имеет самостоятельную ценность». На протяжении десятилетий теории нейробиологов о процессе обучения в мозге главным образом руководствовались правилом, которое было введено в 1949 году канадским психологом Дональдом Хеббом, часто оно формулируют так:  Срабатывающие вместе нейроны соединены.  Иными словами, чем больше корреляция активности соседних нейронов, тем сильнее синаптические связи между ними. Этот принцип с некоторыми модификациями успешно объяснял узкий диапазон типов задач обучения и визуальной классификации. Но в больших сетей нейронов, которым приходится учиться на ошибках, он работал гораздо хуже; у нейронов не было прямого целенаправленного способа узнавать об обнаруженных в глубине сети ошибках, обновлять себя и затем делать меньше ошибок.  «Правило Хебба – это очень узкий, специфический и не очень чувствительный метод работы с информацией об ошибках», – рассказывает  Дэниел Яминс, компьютерный нейробиолог и учёный в области компьютерных наук из Стэнфордского университета. Тем не менее, это правило было лучшим правилом обучения в нейробиологии, и оно вдохновило на разработку первых искусственных нейронных сетей в конце 1950-х годов, ещё до того, как стало доминировать в этой науке.  Каждый искусственный нейрон в этих сетях получает несколько входных сигналов и даёт выходные данные, как его биологический аналог. Нейрон умножает каждый входной сигнал на так называемый «синаптический» вес – число, означающее важность, присвоенную этому входному сигналу, – а затем суммирует взвешенные входные данные. Полученная сумма – и есть выходной сигнал нейрона.  К 1960-м годам стало ясно, что искусственные нейроны можно организовать в сеть с входным и выходным слоями, а искусственную нейронную сеть можно обучить, чтобы она решала задачи определённого класса. Во время обучения нейронная сеть, чтобы устранить или минимизировать ошибки, выбирала для своих нейронов наилучшие веса. Однако даже в 1960-х годах было очевидно: чтобы решать задачи сложнее, между входным и выходным слоями требуется один или несколько «скрытых» слоёв нейронов. Никто не знал, как эффективно обучать искусственные нейронные сети со скрытыми слоями – до 1986 года, когда Джеффри Хинтон, Дэвид Румелхарт (ныне покойный) и  Рональд Уильямс  (сегодня работающий в Северо-Восточном университете) опубликовали  алгоритм обратного распространения ошибки. Алгоритм работает в два этапа. На этапе «forward» (прямого распространения), когда сети подают данные на вход, она делает вывод, который может быть ошибочным. Вторая фаза – «backward» – обновляет синаптические веса, приводя выходные данные к большему соответствию с целевым значением. Чтобы понять процесс, представьте себе «функцию потерь»: она описывает разницу между предполагаемыми и желаемыми выходными данными в виде ландшафта, холмов и долин. Когда сеть делает вывод с заданным набором синаптических весов, она попадает в какое-то место ландшафта потерь.  Чтобы чему-то научиться, сети нужно двигаться вниз по склону (или по градиенту) в сторону некоторой долины, где потери, насколько это возможно, сводятся к минимуму. Обратное распространение – это метод обновления синаптических весов, чтобы спуститься по градиенту. В сущности обратная фаза алгоритма вычисляет, какой вклад в ошибку вносят синаптические веса каждого нейрона, а затем обновляет эти веса, повышая производительность сети. Веса рассчитываются последовательно. в обратном направлении, от выходного уровня ко входному, отсюда и название – обратное распространение. Выполняйте его снова и снова для наборов входов и желаемых выходов, и в конечном счёте вы придёте к приемлемому набору весов во всей нейронной сети. Изобретение обратного распространения ошибки мгновенно вызвало протест некоторых нейробиологов, заявивших, что в биологическом мозге оно не будет работать никогда. Самым известным скептиком был лауреат Нобелевской премии Фрэнсис Крик, один из первооткрывателей структуры ДНК, позже ставший нейробиологом. В 1989 году  Крик писал: «Что касается процесса обучения, маловероятно, что мозг в самом деле использует обратное распространение». Обратное распространение считается биологически неправдоподобным по нескольким основным причинам.  Компьютеры легко выполняют двухэтапный алгоритм, для биологических сетей эта задача нетривиальна.  Вторая причина – это то, что вычислительные нейробиологи называют проблемой переноса веса: алгоритм обратного распространения копирует или «переносит» информацию обо всех участвующих в выводе синаптических весах, и, чтобы добиться большей точности, обновляет эти веса.  Но в биологической сети нейроны видят только выходные данные других нейронов, а не синаптические веса или внутренние процессы, формирующие выходной сигнал. С позиции нейрона «нормально знать свой собственный синаптический вес», утверждает Яминс. – Что ненормально, так это знать набор синаптических весов другого нейрона». Любое биологически правдоподобное правило обучения также должно подчиняться ограничению: нейроны получают доступ к информации только от соседних нейронов; в случае обратного распространения может потребоваться информация от более удалённых нейронов. Итак, «если вы возьмёте обратное распространение и букву, мозг не сможет ничего вычислить», – рассказывает Бенжио. Тем не менее, Хинтон и ещё несколько учёных немедленно взялись за работу над биологически правдоподобными вариациями обратного распространения.  «Первая статья, в которой утверждается, что мозг выполняет [что-то вроде] обратного распространения, примерно так же стара, как само обратное распространение», – рассказывает Конрад Кординг, компьютерный нейробиолог из Университета Пенсильвании.  За последнее десятилетие или около того, когда успехи искусственных нейронных сетей привели к их доминированию в исследованиях искусственного интеллекта, активизировались усилия по поиску биологического эквивалента обратного распространения информации. Возьмём, к примеру, одно из самых странных решений проблемы переноса веса, в 2016 году любезно предоставленное  Тимоти Лилликрэпом  из Google DeepMind в Лондоне и его коллегами.  В их алгоритме, вместо того, чтобы полагаться на матрицу записанных весов от прямого прохода, для обратного прохода использовали инициализированную случайными значениями матрицу. После присвоения эти значения никогда не изменяются, поэтому нет необходимости переносить веса для каждого обратного прохода. Сеть обучилась, и это удивило почти всех. Поскольку веса прямого прохода, которые используются для вывода, обновляются при каждом обратном проходе, сеть всё так же спускается по градиенту функции потерь, но по другому пути.  Веса прямого прохода медленно выравниваются со случайно выбранными весами обратного прохода, чтобы в конечном счёте найти правильные ответы и дать алгоритму название: выравнивание с обратной связью. «Оказалось, подход не так плох, как вы могли подумать, – рассказывает Яминс, – по крайней мере в простых задачах».  В крупномасштабных проблемах и более глубоких сетях с большим количеством скрытых слоёв выравнивание с обратной связью работает не так хорошо, как обратное распространение; обновления весов прямого прохода на каждом проходе не такие точные, как при настоящем обратном проходе, поэтому, чтобы обучить сеть, нужно больше данных. Исследователи также изучили способы согласования производительности обратного распространения с сохранением классического требования Хебба к обучению, согласно которому нейроны реагируют только на своих соседей в локальном масштабе.  Обратное распространение можно рассматривать как один набор нейронов, выполняющих логический вывод, и другой набор нейронов, выполняющих вычисления, чтобы обновить синаптические веса. Идея Хинтона заключалась в том, чтобы работать над алгоритмами, в которых каждый нейрон выполнял бы оба набора вычислений. «Именно об этом [и] говорил Джефф в 2007 году, – рассказал Бенжио. Основываясь на работе Хинтона, в 2017 году команда Бенжио предложила правило обучения, которое требует нейронной сети с повторяющимися связями (то есть если нейрон A активирует нейрон B, то нейрон B, в свою очередь, активирует нейрон A. Если в такую сеть поступает какой-либо ввод, вызывая вибрацию сети, поскольку каждый нейрон реагирует на толчки и притяжение своих непосредственных соседей. В конце концов сеть достигает равновесия нейронов со входом и друг с другом, и выдаёт выходной сигнал, который может быть ошибочным. Затем алгоритм подталкивает выходные нейроны к желаемому результату. Это устанавливает другой сигнал, распространяющийся по сети в обратном направлении, вызывая аналогичную динамику. Сеть находит новое равновесие. «Прелесть этой математики в том, что если вы сравните эти две конфигурации до подталкивания и после него, то получите всю информацию, чтобы найти градиент», – восхищается Бенжио. Обучение сети включает в себя простое повторение этого процесса «распространения равновесия» итеративно над большим количеством размеченных данных. Ограничение, которое нейроны могут изучить, только реагируя на свою локальную среду, также находит выражение в новых теориях о том, как мозг вообще воспринимает что-либо.   Берен Миллидж, докторант Эдинбургского университета и приглашённый научный сотрудник в Университете Сассекса, а также его коллеги согласовывали новый взгляд на восприятие – прогнозное кодирование, с требованиями обратного распространения ошибки.  «Прогнозное кодирование, если оно настроено определённым образом, даст вам биологически правдоподобное правило обучения», – рассказывает Миллидж. Прогнозирующее кодирование предполагает, что мозг постоянно делает прогнозы о причинах сенсорных сигналов. Процесс включает иерархические уровни нейронной обработки. Чтобы получить определённый результат, каждый слой должен предсказать нейронную активность нижележащего слоя. Если высший слой ожидает увидеть лицо, он прогнозирует активность нижележащего слоя, которая может оправдать это восприятие. Слой ниже делает аналогичные прогнозы относительно того, чего ожидать от слоя под ним, и так далее. Самый нижний слой делает прогнозы относительно фактического сенсорного ввода, скажем, фотонов, попадающих на сетчатку. Таким образом, прогнозы переходят от более высоких уровней к более низким. Правило Хебба – это очень узкий, специфический и не очень чувствительный способ работать с информацией об ошибках. Дэниел Яминс, Стэнфордский университет Но ошибки могут возникать на каждом уровне иерархии: различиям между прогнозом, который слой делает в отношении ожидаемых входных данных, и фактическими входными данными. Самый нижний слой регулирует свои синаптические веса, чтобы минимизировать свою ошибку, на основе получаемой им сенсорной информации. Эта корректировка приводит к ошибке между недавно обновлённым нижним и верхним слоями, поэтому верхний уровень должен перенастроить свои синаптические веса, чтобы минимизировать ошибку прогноза. Сигналы ошибки поднимаются вверх. Сеть движется вперёд и назад, пока каждый уровень не минимизирует ошибку прогноза. Миллидж показал, что при правильной настройке сети прогнозного кодирования могут сходиться во многом на тех же градиентах обучения, что и обратное распространение. «Можно очень близко подойти к градиентам обратного распространения», – сказал он. Однако для каждого обратного прохода, который традиционный алгоритм обратного распространения выполняет в глубокой нейронной сети, прогнозное кодирование сети должно повторяться несколько раз. Правдоподобно ли это биологически, зависит от того, сколько времени этот процесс может занимать в биологическом мозге. Важно отметить, что, прежде чем изменятся входные данные из внешнего мира, сеть должна прийти к единому решению. Непохоже, что мозг думает так: «На меня прыгнул тигр, позволь мне сделать 100 повторений назад и вперёд, вверх и вниз по моему мозгу», – рассуждает Миллидж. – «Тем не менее, если допустима некоторая неточность, прогнозное кодирование может быстро давать полезные ответы». Некоторые учёные взялись за самую суть дела: построения моделей, подобных обратному распространению, на основе известных свойств отдельных нейронов. Обычные нейроны имеют дендриты, собирающие информацию от аксонов других нейронов. Дендриты передают сигналы телу клетки нейрона, там сигналы интегрируются. Это приводит (или не приводит) к спайку или потенциалу действия, выходящему из аксона нейрона на дендриты постсинаптических нейронов. Но не все нейроны имеют именно такую структуру. В частности, пирамидные нейроны – самый распространённый тип нейронов в коре головного мозга – сильно отличаются. Они имеют древовидную структуру с двумя различными наборами дендритов. Ствол тянется вверх и разветвляется на так называемые апикальные дендриты. Корень тянется вниз и разветвляется на базальные дендриты. Модели, независимо разработанные Кордингом в 2001 году, а недавно –  Блейком Ричардсом  и его коллегами из Университета Макгилла и Квебекским институтом искусственного интеллекта, показали, что пирамидальные нейроны могут формировать базовые единицы сети глубокого обучения, одновременно выполняя вычисления прямого и обратного проходов.  Ключ здесь в разделении поступающих в нейрон сигналов, для прямого вывода и для ошибок обратного потока, которые могут быть обработаны в модели базальными и апикальными дендритами соответственно. Информация для обоих сигналов может кодироваться в импульсах электрической активности, которые нейрон посылает по своему аксону в качестве выходного сигнала. В последней работе команды Ричардса «мы дошли до момента, когда можем показать, что, используя довольно реалистичную модель нейронов, можно обучать сети пирамидальных нейронов выполнять различные задачи, – рассказывает Ричардс. – А затем, используя несколько более абстрактные версии этих моделей, мы можем получить сети пирамидальных нейронов, чтобы научить нейроны выполнять сложные задачи в машинном обучении». Неявное требование к использующей обратное распространение глубокой сети – это «учитель», то есть что-то, что вычисляет допущенную сетью нейронов ошибку. Но «в мозгу нет учителя, который говорит каждому нейрону в моторной коре: «Ты должен быть включён, а ты должен быть выключен», – рассказывает  Питер Роэльфсема  из Нидерландского института нейробиологии в Амстердаме. Роэльфсема считает, что мозг решает проблемы через процесс внимания. В конце 1990-х годов он и его коллеги показали, что, когда обезьяны фиксируют взгляд на объекте, представляющие этот объект в коре головного мозга нейроны становятся активнее. Фокус внимания обезьяны вызывает сигнал обратной связи для ответственных нейронов.  «Это очень избирательный сигнал обратной связи», – рассказывает Роэльфсема. «Это не сигнал об ошибке. Он просто говорит всем этим нейронам: вы в ответе [за действие]». Озарение Роэльфсемы заключалось в том, что этот сигнал обратной связи может способствовать обучению, подобному обучению с обратным распространением, в сочетании с открытыми в нейробиологии процессами.  Например,  Вольфрам Шульц  из Кембриджского университета и другие учёные показали, что, когда животные выполняют действие с результатами лучше ожидаемых, активируется дофаминовая система мозга.  «Такие действия наполняют мозг нейронными модуляторами», – рассказывает Роэльсема. Уровни дофамина действуют как глобальный сигнал подкрепления. Теоретически сигнал обратной связи внимания может активировать только отвечающие за действие нейроны, чтобы отреагировать на глобальный сигнал подкрепления путём обновления их синаптических весов, говорит Роэльфсема. Он и его коллеги использовали эту идею, чтобы создать глубокую нейронную сеть и изучить её математические свойства.  «Оказывается, вы получаете обратное распространение ошибки. По сути, вы получаете то же уравнение, – рассказывает он, но теперь оно биологически правдоподобно». Команда представила эту работу на онлайн-конференции Neural Information Processing Systems в декабре. «Мы можем обучать глубокие сети, – рассказал Роэльфсема.  «Это всего в два-три раза медленнее обратного распространения».  Таким образом, по его словам, «этот алгоритм превосходит все другие алгоритмы, предложенные как биологически правдоподобные». Тем не менее конкретные эмпирические доказательства того, что биологический мозг использует эти механизмы, остаются неуловимыми. «Я думаю, что нам всё ещё чего-то не хватает, – рассказал Бенжио. – По моему опыту, это может быть мелочь, может быть, несколько изменений в одном из существующих методов, действительно важных изменений». Между тем у Яминса и его коллег из Стэнфорда есть предложения, как определить, какое из предложенных правил обучения корректно, если таковое имеется. Проанализировав 1056 искусственных нейронных сетей, реализующих различные модели обучения, они обнаружили, что тип правила обучения, управляющего сетью, можно определить с течением времени по активности подмножества нейронов.  Не исключено, что такая информация могла быть записана из мозга обезьяны. «Оказывается, если у вас есть правильный набор наблюдаемых, можно придумать довольно простую схему, позволяющую определять правила обучения», – рассказывает Яминс. Учитывая такие достижения, компьютерные нейробиологи настроены на тихий оптимизм. «У мозга много способов выполнять обратное распространение, – говорит Кординг. – И эволюция чертовски крута. Обратное распространение весьма успешно. Я полагаю, что эволюция как бы приводит нас к нему». Если вас привлекает построение нейросетей, то у нас в SkillFactory как раз скоро стартует новый набор на продвинутый курс Machine Learning и Deep Learning, где вы сможете научиться работать с нейросетями, под руководством опытных менторов. Узнайте, как прокачаться в других специальностях или освоить их с нуля: Профессия Data Scientist Профессия Data Analyst Курс по Data Engineering ПРОФЕССИИ Профессия Java-разработчик Профессия QA-инженер на JAVA Профессия Frontend-разработчик Профессия Этичный хакер Профессия C++ разработчик Профессия Разработчик игр на Unity Профессия Веб-разработчик Профессия iOS-разработчик с нуля Профессия Android-разработчик с нуля КУРСЫ Курс по Machine Learning Курс "Machine Learning и Deep Learning" Курс "Математика для Data Science" Курс "Математика и Machine Learning для Data Science"  Курс "Python для веб-разработки" Курс "Алгоритмы и структуры данных" Курс по аналитике данных Курс по DevOps редактор, автор, солдат удачи