Интуиция по предсказательному кодированию и принципу свободной энергии

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



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

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

Так где же птица? Вы должны подготовить камеру для эпического снимка, поэтому стоит ли доверять своей первоначальной оценке, основанной на зрении или, скорее, новой информации, полученной вашими ушами? Вы говорите "Я бы использовал оба" и получаю окончательную оценку (Апостериор), комбинируя первоначальное убеждение (Предыдущее) с новым наблюдением (Вероятность ). Это называется байесовским (читай: вероятностным) выводом, и его можно резюмировать следующим образом:

Предыдущие ~ Предыдущие * Вероятность

Интуитивно кажется, что апостериорная оценка должна находиться где-то между предыдущим (исходным мнением) и Rikelihood (наблюдение) на определенном расстоянии от обоих:

А теперь представьте, как сжать эту схему до более компактной формы:

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

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

Итак, мы должны каким-то образом объединить 2 дистрибутива (помните Posterior ~ Prior * Likelihood? ). К сожалению, в большинстве случаев это действительно сложно. Во-первых, чтобы быть законным, Posterior необходимо нормализовать (наши убеждения должны составлять в сумме 100%), а это сложно с вычислительной точки зрения. Во-вторых, если есть какое-то странное преобразование между щебетанием и нашим представлением положения (представьте, что звуки искажаются ветром), Posterior больше не будет красивым, легко представляемым нормальным распределением. Впрочем, не отчаивайтесь - вместо того, чтобы получить полную картину (все апостериорное распределение), достаточно было бы найти точку с наибольшей вероятностью и принять ее как лучшее предположение. Итак, мы можем начать с совершенно случайного предположения, а затем итеративно его уточнять. Представьте себе восхождение на холм с маской для глаз - вы не можете увидеть, где именно находится вершина, но вы можете прощупать склон под ногами и сделать небольшие шаги вверх, пока не достигнете вершины:

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

Для полноты предположим, что распределения Priority и Likelihood имеют разброс (дисперсию, ширину колокола), равный 1, что упрощает вычисления и соответствует исходной модели прогнозирующего кодирования. Но что, если мы очень уверены в нашем приоре (допустим, мы видели именно то, как летела птица), в то время как наблюдения сомнительны (щебетание очень тихое), или наоборот? С этой целью обновленная модель содержит веса точности (показывающие, насколько точными / уверенными являются наши убеждения), что приводит к ошибкам предсказания, взвешенным по точности.

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

Принцип свободной энергии

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

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

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

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

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

Подключение к нейронным сетям и обратное распространение

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

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

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

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

В общем, я бы посоветовал вам пройти учебник Рафаля Богача, в котором математические детали прогнозирующего кодирования представлены в очень доступной форме (и с кодом MATLAB). Я благодарен студентам MOCOCO, Андреа Аламиа, Винсенту Моенсу и Алексу Зенону, чьи отзывы значительно улучшили этот пост.