贝叶斯公式的理解

首先上图展示了贝叶斯公式的一个定义和简单的变形。

B:表示证据,或者说结果;A表示理由,原因\(\overline{A}\)则表示除了A之外的原因。

P(A|B)表示一个结果发生了,有多大的概率是A这个原因导致的,即How much you can trust the evidence,你有多大的把握相信B这个结果是由A导致的。

带入实际的场景很很好理解:B表示老板骂你,A表示工作失误。工作失误可能是老板骂你的原因,那么有一天老板骂你了,由多大的概率是因为你工作出现了失误呢?这就是通过P(A|B)进行刻画。

假设\(\overline{A}\)表示老板被家暴了,老板收到家庭中的暴力,迁怒至你的身上也是一种你被骂的原因。

全概率公式展开:P(老板骂你)=P(老板骂你| 老板被家暴)P(老板被家暴)+ P(老板骂你| 工作失误 )P(工作失误) ,可以老板骂你的概率由两个起因来决定。

P( 工作失误|老板骂你)= P(老板骂你| 工作失误 )P(工作失误) /P(老板骂你)
这样就容易理解贝叶斯公式的含义了。

P(老板骂你| 工作失误 ) 这一项如何理解,表示出现工作失误时,老板骂你的概率。这就可能取决于老板的性格。

  • 假设1:如果老板是一个对工作十分严格的人,并且家庭十分和睦。某一天老板骂你了,那么大概率时你工作出现了失误。
  • 假设2:如果老板时对工作很宽容的人,即使你工作出现失误,鲜有骂人的现象,但是你不知到家庭是否和睦。某一天他骂你了,你更应该相信是老板被家暴了。
  • 假设3:如果老板家庭很不和睦,老板是一个由原则的人,不会迁怒至不相干的人。那么有一天老板骂你了,更有可能是你工作出现了失误。

上述假设中,要么假设某种原因的先验概率P(A)很小,要么假设原因和evidence之间的关联P(B|A)很小(似然),这些都会导致最后的后验情况不同。

P(A|B)通常被成为后验概率,即evidence在后项。

e.g. P(θ|x)通常在深度学习中被称为后验概率,表示数据是已有的结果,或者说证据,二参数就是导致数据出现的原因。

再考虑一个现实场景,假设你是一个很优秀的程序员,犯错的概率很小,有一天你的代码编译失败,你更愿意相信是编译器的问题还是你自己犯错倒置编译失败了呢?当然是你自己的问题了,因为P(编译器出现问题)这个先验概率实在是太小啦,你再优秀能和编译器比吗?除非你是写编译器的那个人,嘻嘻。

References:

https://blog.csdn.net/u011508640/article/details/72815981

KL散度与Seq2Seq模型倾向生成通用回复现象之间的联系

KL散度定义

KL散度是用来衡量两个分布之间差异的非对称性度量,即K(p||q)不等于K(q||p)

KL散度越接近1,说明两个分布约相似,越接近0则分布差异性越大

性质:

证明:

证明过程中使用了Jensen’s inequality(Jensen不等式)性质。

对话生成中Seq2Seq模型的优化目标

采用极大似然估计的优化策略,加负号变为损失函数,可以进行下面的变形:

根据KL散度的定义,结合图像

在点A时,被积函数为正,且绝对值较大
在点B时,被积函数为负,且绝对值较小

对于到Seq2Seq的优化目标中,真实分布概率高而生成分布概率低的情况导致损失函数的值较高。

真实分布虽然未知,但为既定事实,无法调整,而生成分布可以通过调整参数,使那部分的生成概率升高,来降低损失函数的值。真实分布中出现概率较高的回复就是通用回复,因此模型倾向于提高这些通用回复的生成概率,导致训练好的Seq2Seq模型倾向于生成通用回复。

最后,在代码实现过程中,损失函数中期望的计算,通常是通过样本期望(traning batch)来近似的,根据大数定律,这是一种无偏估计。

梯度下降可行性的两种简单证明

梯度下降方法作为深度学习中优化算法的根基,那么到底为什么这种方法能够降低损失函数值呢,下面给大家分享两种“证明”方法,可能不是很严谨,但是能够说明问题。

定义问题:损失函数定义为\(L(w)\),其中 \( w \) 为参数

方法一:从导数定义的角度

简单从梯度的定义出发,进行简单的证明,可能不是很严谨,不过可以说明问题。

方法二:从泰勒公式的角度

以上两种方式中间推导过程有些相似,都首先采用了近似,然后再通过做差的方式构造一个非负数的平方项,完成证明。

参考文献: