博客内容参考,本篇博客所有内容基于在这个链接内容做的一些加工以及思考,强烈建议去看一遍原文。

前言

假设一个场景,你在球场投篮,那么你是如何完成这个投篮动作呢?你的大脑会先根据抛物线公式计算一下角度高度等,甚至考虑微弱的风向吗?显然是不可能的,我们的大脑可能就是预估大概这个力度、角度,篮球是否会中,并且在篮球抛向球筐的过程中,我们的大脑还会不断的修正我们一开始预测的结果。

那么我们大脑是如何根据观察到的东西来进行预测以及动作呢?我们知道,我们大脑其实就仅仅只有各种感官数据的输入,并没有关于环境真实的状态。

假设 X h y p o t h e s e ∈ R n X_{hypothese} \in R^n Xhypothese​∈Rn表示大脑试图去推断环境的真实状态,这里的n假设环境存在n个状态,比如上面例子中,篮筐的位置,篮球的位置等等,为了简单起见,我们用 x x x表示。
假设 Y o b s e r v a t i o n ∈ R q Y_{observation} \in R^q Yobservation​∈Rq表示感官数据,例如眼睛看到的,手摸到的,其中q表示q个感官,为了简单起见,用 y y y表示。
假设 U ∈ R l U \in R^l U∈Rl表示对环境做出的动作,比如抬起手臂,将球投出去等等。其中 l l l表示可以做的动作数量。

那么大脑所存在的世界,就可以表示成如下结构:

OK,那么定义好变量后,如何根据我们所观察到的去推断外部环境的隐状态 x x x呢?这里,我们首先会想到利用贝叶斯公式,根据 P ( x , y ) = P ( x ∣ y ) P ( y ) = P ( y ∣ x ) P ( x ) P(x,y)=P(x|y)P(y)=P(y|x)P(x) P(x,y)=P(x∣y)P(y)=P(y∣x)P(x),可以得到如下公式:
P ( x ∣ y ) = P ( y ∣ x ) P ( x ) P ( y ) P(x|y) = \frac{P(y|x)P(x)}{P(y)} P(x∣y)=P(y)P(y∣x)P(x)​,其中 P ( x ∣ y ) P(x|y) P(x∣y)也被称为后验概率, P ( y ∣ x ) P(y|x) P(y∣x)是似然, P ( x ) P(x) P(x)是先验, P ( y ) P(y) P(y)有时候也被称为证据。

在这里, P ( x ) P(x) P(x)通常会假设其符合高斯分布。如果我们知道了这 P ( y ) , P ( y ∣ x ) , P ( x ) P(y) , P(y|x),P(x) P(y),P(y∣x),P(x)这三个分布,我们当然可以求出这个后验概率,但是一般情况下,是不知道的,主要原因是在于计算 P ( y ) P(y) P(y),因为 P ( y ) = ∑ x P ( y ∣ x ) P ( x ) o r ∫ P ( y ∣ x ) P ( x ) d x P(y)=\sum_{x}P(y|x)P(x) or \int {P(y|x)P(x)dx} P(y)=∑x​P(y∣x)P(x)or∫P(y∣x)P(x)dx,所以其实是很难计算的。

那么在这里,一个通用的解决办法就是使用变分推断,使用另一个分布去近似你想要求的分布。
比如在这里使用 q ( x ; ξ ) q(x;\xi) q(x;ξ)来近似分布 p ( x ∣ y ) p(x|y) p(x∣y)。其中 ξ \xi ξ是一个分布的参数,比如高斯分布的话就是均值和方差。
这个 q ( x ; ξ ) q(x;\xi) q(x;ξ)有时也被称为认知密度分布(Recognition density)

那么此时,我们的结构就变为如下所示:

What the brain is doing? -Prediction error minimization

本质上来说,我们大脑做的就是最小化我们的预测误差,通过给定的观察数据推断的环境状态与真实的环境状态之间距离最小。那么如何最小化这个prediction error呢?主要是通过两个方面:1.改进我们的脑海中的内部模型,去更好的匹配输入的感官数据。2.通过在环境中做Action。
第一点好理解,那么如何第二点是怎么理解呢?什么叫做在环境中做Action可以改变prediction error呢?
在这里举个例子,假设你社恐或者内向,然后现在突然叫你去演讲,那么此时你就可能会逃避这个演讲,推脱这个演讲,以保持原来的prediction error。所以为什么我们习惯于待在舒适圈呢,从这个角度来说,因为待在舒适圈我们大脑对外部环境的prediction error是最小的,一旦跳出舒适圈,那大脑的内部模型就会被破坏,而对于生物来说,我们的根本任务就是活着,那么对于大脑来说就是尽可能最小化这个prediction error;所以一旦跳出舒适圈,大脑就会控制我们,想让我们尽快回到熟悉的圈子。

OK ,回归正题,那么对于第一点,我们想让内部模型更好的匹配真实的环境模型,那么如何去衡量分布的接近程度呢?在这里,我们使用KL散度来衡量,那么也就是说对于第一点,我们想要最小化 a r g m i n ξ D K L ( q ( x ; ξ ) ∣ ∣ p ( x ∣ y ) ) ( 1 ) argmin_{\xi} D_{KL}(q(x;\xi)||p(x|y)) (1) argminξ​DKL​(q(x;ξ)∣∣p(x∣y))(1),但是这里依然有个问题,那就是我们并不知道 p ( x ∣ y ) p(x|y) p(x∣y),那么在这里怎么办呢? 其实如果知道变分推断的同学,此时应该知道可以怎么做。

首先,将 D K L ( q ( x ; ξ ) ∣ ∣ p ( x ∣ y ) ) D_{KL}(q(x;\xi)||p(x|y)) DKL​(q(x;ξ)∣∣p(x∣y))展开,变成 ∫ q ( x ; ξ ) l o g q ( x ; ξ ) p ( x ∣ y ) d x \int q(x;\xi)log \frac{q(x;\xi)}{p(x|y)}dx ∫q(x;ξ)logp(x∣y)q(x;ξ)​dx
然后通过如下变换:
D K L ( q ( x ; ξ ) ∣ ∣ p ( x ∣ y ) ) = ∫ q ( x ; ξ ) l o g q ( x ; ξ ) p ( x ∣ y ) d x = ∫ q ( x ; ξ ) l o g q ( x ; ξ ) p ( y ) p ( x , y ) d x = ∫ q ( x ; ξ ) l o g q ( x ; ξ ) p ( x , y ) d x + ∫ q ( x ; ξ ) l o g p ( y ) d x = ∫ q ( x ; ξ ) l o g q ( x ; ξ ) p ( x , y ) d x + l o g p ( y ) D_{KL}(q(x;\xi)||p(x|y))=\int q(x;\xi)log \frac{q(x;\xi)}{p(x|y)}dx= \int q(x;\xi)log \frac{q(x;\xi)p(y)}{p(x,y)}dx \\ =\int q(x;\xi)log \frac{q(x;\xi)}{p(x,y)}dx +\int q(x;\xi)log p(y)dx =\int q(x;\xi)log \frac{q(x;\xi)}{p(x,y)}dx +logp(y)\\ DKL​(q(x;ξ)∣∣p(x∣y))=∫q(x;ξ)logp(x∣y)q(x;ξ)​dx=∫q(x;ξ)logp(x,y)q(x;ξ)p(y)​dx=∫q(x;ξ)logp(x,y)q(x;ξ)​dx+∫q(x;ξ)logp(y)dx=∫q(x;ξ)logp(x,y)q(x;ξ)​dx+logp(y)
最终,我们得到了上述式子,在这里,我们称 F ( y ; ξ ) = ∫ q ( x ; ξ ) l o g q ( x ; ξ ) p ( x , y ) d x \mathcal{F}(y;\xi) = \int q(x;\xi)log \frac{q(x;\xi)}{p(x,y)}dx F(y;ξ)=∫q(x;ξ)logp(x,y)q(x;ξ)​dx为自由能(Free energy),由此我们可以得到如下等式:
F ( y ; ξ ) = D K L ( q ( x ; ξ ) ∣ ∣ p ( x ∣ y ) ) − l o g p ( y ) ≥ − l o g p ( y ) \mathcal{F}(y;\xi) = D_{KL}(q(x;\xi)||p(x|y))-logp(y) \ge -logp(y) F(y;ξ)=DKL​(q(x;ξ)∣∣p(x∣y))−logp(y)≥−logp(y),其中 − l o g p ( y ) -logp(y) −logp(y)称为Surprise。

我们可以从上面这个公式中看到有趣的几点:
1.自由能只和观察数据y以及大脑内部推断外部环境状态的参数 ξ \xi ξ有关,是关于这两个概率分布对应的函数。
2.最小化自由能的同时会最小化Surprise。因为KL散度是≥0的。
3.最小化自由能的同时,Prediction error也会减小。

那么现在有一个问题,这个Surprise是什么?我们最小化自由的能的同时可以最小化它,这有什么作用吗?参考链接——> Surprise是什么?
简单举个例子来说明Surprise是什么,比如你日常喝水,突然被呛到了,这个事情就具有很高的Surprise,因为它发生的概率不是很高,所以当其发生了,就会具有很高的Surprise;所以,我们可以暂时简单的认为,一个事情发生是概率高,那么Surprise就很低,反之则很高。

那么这个Surprise重要吗?当然重要,举个例子,对于生物而言,最根本的任务就是活着,所以我们希望周围的环境是有序的,不是处处Surprise的,否则哪天可能就因为Surprise挂了。
虽然这个Surprise我们是无法直接计算的,但是我们可以通过最小化自由能来保证最小化它
自由能原理的一个灵感来自于生物体为了生存而抵抗无序的必要性,通过最大限度的减少感官数据中非典型事件发生相关的意外。
让我们从熵的角度来看,最小化这个Surprise将会带来什么? 首先根据熵的定义,我们可以得到
H ( p ( y ) ) = − ∫ − ∞ + ∞ p ( y ) l o g ( p ( y ) ) d y H(p(y))=- \int_{-\infty}^{+\infty} p(y)log(p(y))dy H(p(y))=−∫−∞+∞​p(y)log(p(y))dy
通过这个公式,我们可以发现,当我们最小化这个Surprise时候,熵也是被最小化的,也就是说外部状态的长期平均意外会被最小化,说简单的,相比于Surprise大的,可以活得更久的可能性更大.
还有一点就是,最小化这个Surprise,那么 H ( p ( x ) ) H(p(x)) H(p(x))也会变小,也就说明了你的外部状态是稳定的。

OK,现在我们可以通过最小化自由能去提高我们大脑内部的模型于外部环境模型的匹配程度了,但是这并不是我们主要的目标。假设这个模型的已经达到了百分百匹配(虽然不可能),但是我们要的是对未来可预测,也就是prediction error最小,那么为了达到这个目标,我们需要的是知道这个分布: P ( x , y ) = P ( y ∣ x ) P ( x ) P(x,y)=P(y|x)P(x) P(x,y)=P(y∣x)P(x),这个联合分布也常被称为生成模型。当我们知道这个分布的时候, 我们就知道根据我们推断的环境状态x’分布,未来时刻的感官数据是什么(比如看到什么,听见什么等等)。

OK,那么现在让我们再次更新一下之前的结构图:

OK,那么这里,我们可以发现,只要最小化这个自由能,那么我们就可以更好的对外部环境进行建模,减少大脑的Prediction Error。那么根据上面定义的公式,我们可以发现只要对两个部分都最小化就可以了,如下图所示:

其中,对于感知部分(Perceptual part),我们只要找到一个参数 ξ \xi ξ,使得 D K L ( q ( x ; ξ ) ∣ ∣ p ( x ∣ y ) ) D_{KL}(q(x;\xi)||p(x|y)) DKL​(q(x;ξ)∣∣p(x∣y))最小即可。
对于行动部分(Active part),我们之前讲了,我们无法直接计算 p ( y ) p(y) p(y),但是我们知道,y是由环境产生的,然后我们的Agent做的动作action u u u可以影响到环境状态,进而影响y。但是我们依然无法计算 p ( y ) p(y) p(y),但是这已经不要紧了,我们只要找到动作 u u u,它可以最小化自由能即可。

在这里,对于感知部分其实讲完了,接下来的重点就是第二部分了。其实这和Judel提出的因果三阶梯有着相应的关系,Perceptual part同时包含了第一阶梯观察,Active Part 对应于第二阶梯干预。最终的整一个模型对应着第三阶梯反事实。

自由能(Free Energy)(一)相关推荐

  1. 生成函数 计算机,吉布斯自由能热力学函数数值一键生成计算器

    [/caption] 吉布斯自由能(Gibbs free energy)在化学热力学中为判断过程进行的方向而引入的热力学函数.又称自由焓.吉布斯自由能或自由能. 自由能指的是在某一个热力学过程中,系统 ...

  2. ES : 软件工程学的复杂度理论及物理学解释

    系统论里面总是有一些通用的专业术语 比如复杂度.熵.焓,复杂度专门独立出来,成为复杂度理论 文章摘抄于:<非线性动力学> 刘秉政 编著  5.5 复杂性及其测度 热力学的几个专业术语 熵. ...

  3. 自由能 亥姆霍兹自由能(Helmholtz free energy)和吉布斯自由能(Gibbs free energy)等概念;IC50/Ki/Kd与结合自由能ΔG关系

    ****热力学三定律 参考:https://baike.baidu.com/item/%E7%83%AD%E5%8A%9B%E5%AD%A6%E4%B8%89%E5%A4%A7%E5%AE%9A%E5 ...

  4. 人工智能:自由能理论,AI未来的数学模型

    序 AI到底向哪个方向去?有很多学者质疑AI只有artificial 不见intelligence:的确,目前的AI主流是深度学习,也就是傍着一个庞大数据集去群举地刻画一次,然后再使用模型.此中确实与 ...

  5. 液晶弹性自由能计算_自由能方法应用(一)开放计算平台BRIDGE的介绍及使用案例...

    简介 BRIDGE(Biomolecular Reaction and Interaction Dynamics Global Environment)是一个开源的网络平台,旨在为设计可靠的方法提供一 ...

  6. 能量景观(Energy landscape)

    文章目录 1. 简介 2. 应用 3. 正式定义 3.1 宏观例子 1. 简介 图 世界社会经济系统的简化能量景观,和不同细节层次的社会倾斜的动态(social tipping dynamics),突 ...

  7. 基于百度AI Studio的药物设计——NAMD自由能微扰计算(FEP笔记本)

    基于百度AI Studio的药物设计--NAMD自由能微扰计算(FEP笔记本) 药物设计中最重要的任务之一是在一系列先导候选药物中预测哪些药物与治疗靶点的结合更强.在这个方向上,已经开发了相对结合自由 ...

  8. 自由能计算专题3:gromacs计算自由能的7种方法案例

    前言 本教程以甲烷在水中的溶剂化自由能和配体与受体蛋白质结合自由能为入门和进阶例子对使用分子动力学模拟方法来计算自由能的常见方法给出了示例,教程不会过多讲解各种计算自由能方法原理和分析原理,关于自由能 ...

  9. MMPBSA结合自由能计算原理

    MMPBSA结合自由能计算原理 计算结合自由能的方法有很多,例如,热力学积分(Thermodynamic Integration,TI).自由能微扰(Free Energy Perturbation, ...

最新文章

  1. Mybatis缓存机制理解及配置
  2. logrotate 不轮询
  3. java输入星期几的字母_输入字母判断星期几java编程答案
  4. 【Python】青少年蓝桥杯_每日一题_1.03_输出字符串
  5. Eclipse上安装springsource-tool-suite
  6. 2016年将是Java终于拥有窗口函数的那一年!
  7. 《荒漠甘泉》4月21日
  8. 爬虫-古试词网验证码手工打码访问登陆后页面
  9. php压缩中文乱码,完美解决PHP中文乱码
  10. 微型计算机远程编程微软,用微软的云计算来远程管理自己的电脑
  11. MFC的凸包实例【赶紧进来膜拜】
  12. 航天器平台二次电源系统的可靠性设计
  13. Java多线程基础(十三)——Thread-Specific Storage(ThreadLocal)模式
  14. 一键修改 PPT 所有页面的字体设置
  15. 3PAR SSMC管理平台更新3.8.3.0.26
  16. python快速入门【四】-----各类函数创建
  17. 中国大学慕课第7周测验
  18. Dreamweaver 无法粘贴的解决方法
  19. 1875.贝茜的报复
  20. 如何做数据竞赛·优秀案例学习(DC03)

热门文章

  1. 深入了解Xcode 7——调试
  2. php 解释器模式,螃蟹学PHP设计模式之解释器模式
  3. 百万CAD图纸免费送,教你轻松玩转CAD!
  4. 触摸屏学习笔记(1)-- 触摸屏基础(百度百科)
  5. c语言满足三个条件,C语言有多个条件并存的执行规则
  6. NX确实是SD卡烧录好之后直接插进卡槽,上电后直接使用,不需要任何其他设置操作。
  7. 关于Spring Security 3获取用户信息的问题
  8. 2018年中IT好课盘点 速来围观百万学员的口碑课程
  9. 黄仁勋膨胀了,英伟达再也不是我们的小可爱了
  10. 超越传统软件开发技术