Вы здесь

4. "Краткосрочный предсказатель"

Стивен Бирнс

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

4.1 Краткое содержание / Оглавление

Предыдущие два поста (№2 и №3) представили общую картину мозга, состоящего из Направляющей Подсистемы (мозговой ствол и гипоталамус) и Обучающейся Подсистемы (всё остальное), где последняя «обучается с чистого листа» в конкретном смысле, определённом в Посте №2.

Я предположил, что наши явные цели (например, «Хочу быть космонавтом!») возникают из взаимодействия этих двух подсистем, и понимание этого критически важно, если мы хотим научиться формировать мотивацию подобного-мозгу СИИ так, чтобы он пытался делать то, что мы хотим, чтобы он пытался делать, и избежать катастрофических происшествий, описанных в Посте №1.

Следующие три поста (№4-6) прорабатывают это дальше. Этот пост предоставляет необходимый нам ингредиент: «краткосрочный предсказатель».

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

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

Тизер следующей пары постов: Следующий пост (№5) опишет, как определённый вид замкнутой схемы, обёрнутой вокруг краткосрочного предсказателя, превращает его в «долгосрочный предсказатель», связанный с обучением методом временных разниц (TD). Я заявлю, что в мозгу много таких долгосрочных предсказателей, созданных петлями «конечный мозг – мозговой ствол», одна из которых сродни «критику» из модели «субъект-критик» обучения с подкреплением. «Субъект» - это тема поста №6.

Содержание:

  • Раздел 4.2 описывает иллюстративный пример вздрагивания перед получением удара в лицо. Это можно сформулировать как задачу обучения с учителем, в том смысле, что тут есть эмпирический сигнал, на котором можно обучаться. (Если вам только что прилетело в лицо, надо было вздрогнуть!) Получившаяся схема – то, что я называю «краткосрочным предсказателем».
  • В Разделе 4.3 я определяю терминологию: «контекстные сигналы», «сигналы вывода» и «управляющие сигналы». (В терминологии машинного обучения они соответствуют «вводу обученной модели», «выводу обученной модели» и «маркировке данных».)
  • Раздел 4.4 предлагает набросок очень простого краткосрочного предсказателя, который можно создать из биологических нейронов, просто чтобы можно было представлять что-то конкретное.
  • Раздел 4.5 описывает преимущества краткосрочных предсказателей в сравнении с альтернативными подходами, включающими (в примере вздрагивания) жёстко прошитую схему, определяющую, когда вздрогнуть, и агента обучения с подкреплением, вознаграждаемого за уместное вздрагивание. В последнем случае краткосрочный предсказатель обучается быстрее, потому что получает «бесплатный» градиент ошибки каждый раз – или, выражаясь проще, когда он облажался, он получает указание, что именно он сделал не так, в духе того, была ли ошибка недолётом или перелётом.
  • Разделы 4.6-4.8 покрывают разные примеры краткосрочных предсказателей в человеческом мозге. Все они не слишком важны для безопасности СИИ – по-настоящему важна тема следующего поста – но они выплывают довольно часто, так что заслуживают быстрого рассмотрения:
    • Раздел 4.6 описывает мозжечок, который согласно моей теории представляет из себя коллекцию из ≈300,000 краткосрочных предсказателей, используемых для сокращения задержки ≈300,000 сигналов, проходящих через мозг и тело.
    • Раздел 4.7 покрывает предсказательное обучение на сенсорных вводах в коре – к примеру, то, как вы постоянно предсказываете, что вы сейчас увидите, услышите, почувствуете, и т.д., и ошибки предсказания используются для обновления ваших внутренних моделей.
    • Раздел 4.8 быстро описывает ещё несколько случайных интересных штук, которые краткосрочные предсказатели могут делать у животных.

4.2 Иллюстративный пример: вздрагивание перед получением удара в лицо

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

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

4.3 Терминология: Контекст, Вывод, Управление

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

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

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

4.4 Очень упрощённый игрушечный пример того, как это могло бы работать в биологических нейронах

Как краткосрочный предсказатель может работать на низком уровне?

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

И готово! Легкотня.

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


Чёрные точки обозначают синапсы настраиваемой силы

Для ясности – краткосрочный предсказатель может быть намного, намного сложнее этого. Большая сложность может обеспечить лучшую работу. Приведу интересный пример, про который я совсем недавно узнал – оказывается, в краткосрочных предсказателях в мозжечке (Раздел 4.6 ниже) есть нейроны, которые каким-то образом могут хранить настраиваемый параметр временной задержки внутри самого нейрона(!!) (ссылка – это всплыло на этом подкасте). Другие возможные прибамбасы включают разделение паттернов (Пост №2, Раздел 2.5.4) и обучение одним и тем же управляющим сигналом большого количества выводов и их объединение (ссылка), или, ещё лучше – обучение большого количества выводов с одним и тем же управляющим сигналом, но разными гиперпараметрами, чтобы получить распределение вероятностей (оригинальная статья, дальнейшее обсуждение), и так далее.

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

4.5 Сравнение с другими алгоритмическими подходами

4.5.1 «Краткосрочный предсказатель» против жёстко прошитой схемы

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

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

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

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

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

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

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

4.5.2 «Краткосрочный предсказатель» против агента обучения с подкреплением: Более быстрое обучение благодаря градиентам ошибки

Схема краткосрочного предсказывания – особый случай обучения с учителем.

Обучение с учителем – это когда обучающийся алгоритм получает сигнал такого рода:

«Хе-хей, обучающийся алгоритм, ты облажался – тебе вместо этого следовало сделать то-то и то-то.»

Сравните это с обучением с подкреплением, при котором обучающийся алгоритм получает куда менее помогающий сигнал:

«Хе-хей, обучающийся алгоритм, ты облажался.»

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

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

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

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

4.6 Пример «краткосрочных предсказателей» №1: Мозжечок

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

4.6.1 Моя теория мозжечка

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


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

Насколько много краткосрочных предсказателей: Моя лучшая оценка: около 300000.[1]

Какого чёрта?? Зачем мозгу может понадобиться 300000 краткосрочных предсказателей?

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

Вот так. Это вся моя теория мозжечка.

Другими словами, мозжечок может открыть правило «С учётом нынешней контекстной информации, я предсказываю, что выходной нейрон коры №218502 активируется через 0.3 секунды». Тогда мозжечок просто берёт и посылает сигнал туда же прямо сейчас. Или наоборот, мозжечок может открыть правило «Учитывая нынешнюю контекстную информацию, я предсказываю, что проприоцептивный нерв №218502 активируется через 0.3 секунды». Опять же, мозжечок идёт на опережение и посылает сигнал туда же прямо сейчас.

Некоторые примерно-аналогичные концепции:

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

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

И теперь у нас есть ответ: зачем нам надо ≈300000 краткосрочных предсказателей? Потому что периферийных нервов и потоков вывода конечного мозга и может ещё чего много. И многие из этих сигналов выгодно предсказывать-и-предвосхищать! Чёрт, если я понимаю правильно, то мозжечок может даже предсказать-и-предвосхитить сигнал, который конечный мозг посылает сам себе!

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

4.6.2 Как моя теория о мозжечке связана с другими теориями в литературе

(Я тут не эксперт и открыт для поправок.)

Я думаю, широко признано, что мозжечок вовлечён в обучении с учителем. Вроде бы, эта идея называется моделью Марра-Альбуса-Ито, см. Марр 1969 или Альбус 1971, или занимательный YouTube канал Brains Explained.

Напомню, что краткосрочный предсказатель – это случай алгоритма обучения с учителем как более широкой категории. Так что часть про обучение с учителем – не отличительная черта моего предложения, и, например, диаграмма выше (с указанием анатомических деталей мозжечка красным) совместима с обычной картиной Марра-Альбуса-Ито. Отличительный аспект моей теории – чем являются эмпирические сигналы (или чем являются сигналы ошибки – всё равно).

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

К примеру, я часто слышу что-то вроде «синапсы мозжечка обновляются при моторных ошибках». Но кто говорит, что считается моторной ошибкой?

  • Если вы пытаетесь идти в школу, то поскользнуться на банановой кожуре – моторная ошибка.
  • Если вы пытаетесь поскользнуться на банановой кожуре, то поскользнуться на банановой кожуре – это успех!

Откуда мозжечку знать? Непонятно.

Я читал несколько вычислительных теорий по поводу мозжечка. Они обычно куда сложнее моей. И они всё ещё оставляют ощущение непонимания, откуда берутся эмпирические данные. Для ясности, я не читал тщательно каждую такую статью, и вполне возможно, что я что-то упустил.

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

4.7 Пример «краткосрочных предсказателей» №2: Предсказательное обучение сенсорных вводов в коре

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

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

Предсказательное обучение сенсорных вводов – в том конкретном смысле, в котором я это тут использую – не большая общая теория мышления. Большая проблема возникает, когда оно сталкивается с «решениями» (какие мышцы двигать, на что обращать внимание, и т.д.). Рассмотрим следующее: я могу предсказать, что я буду петь, а потом петь, и предсказание получится правильным. Или я могу предсказать, что я буду танцевать, а потом танцевать, и тогда это предсказание было правильным. Так что у предсказательного обучения есть недостаток; оно не может помочь мне сделать правильное действие. Потому нам нужна ещё и Направляющая Подсистема (Пост №3), посылающая управляющие сигналы и сигналы вознаграждения обучения с подкреплением. Эти сигналы могут продвинуть хорошие решения ток, как предсказательное обучение сенсорных вводов не может.

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

4.8 Другие примеры приложений «краткосрочных предсказателей»

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

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

———

  1. Клеток Пуркинье 15 миллионов (ссылка), а эта статья заявляет, что один предсказатель состоит из «горстки» клеток Пуркинье с одним управляющим сигналом и одним (совмещённым) выводом. Что значит «горстка»? В статье указано «около 50». Ну, 50 у мышей. Я не смог быстро найти соответствующее число у людей. Я предположил, что это всё ещё 50, но это просто догадка. В любом случае, из этого я вывел предположение о 300,000 предсказателей.

Перевод: 
Выменец Максим
Оцените качество перевода: 
Голосов пока нет
  • Короткая ссылка сюда: lesswrong.ru/3021