机器学习(2) 变分推断

机器学习(2) 变分推断

原创 2017年03月26日 10:55:45

变分

对于普通的函数 f(x) ,我们可以认为 f 是一个关于 x 的一个实数算子,其作用是将实数 x 映射到实数 f(x) 。那么类比这种模式,假设存在函数算子 F ,它是关于 f(x) 的函数算子,可以将 f(x) 映射成实数 F(f(x)) 。对于 f(x) 我们是通过改变x来求出 f(x) 的极值,而在变分中这个 x 会被替换成一个函数 y(x) ,我们通过改变 x 来改变 y(x) ,最后使得 F(y(x)) 求得极值。

变分推断

logP(x)=logP(x,z)logP(z|x)=logP(x,z)q(z)logP(z|x)q(z)=logP(x,z)logq(z)logP(z|x)q(z)=logP(x,z)logq(z)+logq(z)P(z|x)

q(z)logP(x)dzlogP(x)q(z)=q(z)logP(x,z)dzq(z)logq(z)dz+q(z)logq(z)P(z|x)dzq(z)P(x)q(z)logP(x)dz=logP(x)=q(z)logP(x,z)dzq(z)logq(z)dzL(q(z)),ELOB(Evidence Lower Bound)+q(z)logq(z)P(z|x)dzKL(q(z)||P(z|x))

推了这么多公式,让我们先喘口气,来看看这些公式究竟在做什么?
对于一类数据 x (无论是音频还是图片),对它们进行编码后得到的特征数据往往服从某种分布 q(z) z 为隐变量, q(z) 这个隐含分布我们无法得知,但是我们可以通过现有数据X来推断出 q(z) ,即 P(z|x) 。KL散度是用来衡量两个分布之间的距离,当距离为0时,表示这两个分布完全一致。 P(x) 不变,那么想让 KL(q(z)||P(z|x)) 越小,即让 ELOB 越大,反之亦然。因为 KL0 ,所以 logP(x)ELOB 。这个结论还可以通过下面的公式同样得到:

logP(x)=log(P(x,z)dz)=log((P(x,z)q(z)q(z))dz)=logEz q(z)[P(x,z)q(z)]Ez q(z)log(P(x,z)q(z))=Ez q(z)logP(x,z)Ez q(z)logq(z)=q(z)logP(x,z)dzq(z)logq(z)dz

这段公式推导的关键在于中间的不等式部分,即Jensen不等式:

ψ(E(x))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值