之前看GAN相关资料时, 对于"不同的光照,表情,姿态......等数据会导致图像的分布不同" / “图像像素的不确定性服从正太分布” 这样的语句有点难理解。 图像的概率分布? 图像像素怎么会有概率分布?
当然现在 能接受了。比如,如果是人类面部图像,则长椭圆 上1/3部位左右两边 出现狭长黑点(眉毛)的概率会比较大;又比如笑着的表情,下1/3部位中间出现白点(牙齿)概率会比较大。
在看《这就是搜索引擎-核心技术详解》书时, 发现一个相通的:
---以下摘自 此书第五章:模型索引与搜索排序
(当拿到与用户查询相关的文档后 排序方法: )
拿到训练数据,如何才能训练得到最优的打分函数?本节介绍一种训练方法,它是基于搜索结果排列组合的概率分布情况来训练的,图 5-16 是这种方式训练过程的图解示意。首先解释下什么是搜索结果排列组合的概率分布,我们知道,对于搜索引擎来说,用户输入查询 Q ,搜索引擎返回搜索结果,我们假设搜索结果集合包含 A 、 B 和 C 3个文档,搜索引擎要对搜索结果排序,而这 3 个文档的顺序共有 6 种排列组合方式: ABC , ACB , BAC , BCA , CAB 和 CBA ,而每种排列组合都是 一种可能的搜索结果排序方法。
对于某个评分函数 F 来说,对 3 个搜索结果文档的相关性打分,得到 3 个不同的相关度得分 F ( A )、 F ( B )和 F ( C ) ,根据这 3 个得分就可以计算 6 种排列组合情况各自的概率值.不同的评分函数,其 6 种搜索结果排列组合的概率分布是不一样的。
了解了什么是搜索结果排列组合的概率分布,我们介绍如何根据训练实例找到最优的评分函数。图5 -16 展示了一个具体的训练实例,即查询 Q1 及其对应的 3 个文档的得分情况.这个得分是由人工打上去的,所以可以看做是标准答案.可以设想存在 一个最优的评分函数 g ,对查询 Q1 来说,其打分结果是: A 文档得 6 分, B 文档得 4 分, C 文档得 3 分,因为得分是人工打的,所以具体这个函数 g 是怎样的我们不清楚,我们的任务就是找到一个函数,使得函数对 Q1的搜索结果打分顺序和人工打分顺序尽可能相同。既然人工打分(虚拟的函数 g )己知,那么我们可以计算函数 g 对应的搜索结果排列组合概率分布,其具体分布情况如 图5 -16 中间的概率分布所示.假设存在两个其他函数 h 和 f ,它们的计算方法己知,对应的对 3 个搜索结果的打分在图上可以看到,由打分结果也可以推出每个函数对应的搜索结果排列组合概率分布,那么 h 和 f 哪个与虚拟的最优评分函数 g 更接近呢? 一般可以用两个分布概率之间的距离远近来度量这种相似性, KL 距离就是一种衡量概率分布差异大小的计算工具,通过分别计算 h 与 g 的差异大小及 f 与 g 的差异大小,可以看出 f 比 h 更接近于虚拟的最优函数 g ,那么在这两个函数中,我们应该优选 f 作为将来搜索可用的评分函数.训练过程就是在可能的函数中寻找最接近虚拟最优函数 g 的那个函数作为训练结果,将来作为在搜索时的评分函数。
上述例子只是描述 了对于单个训练实例如何通过训练找到最优函数,事实上我们有 K 个训练实例,虽然如此,其训练过程与上述说明是类似的.可以认为存在一个虚拟的最优评分函数 g (实际上是人工打分),训练过程就是在所有训练实例基础上,探寻所有可能的候选函数,从中选择那个 KL 距离最接近于函数 g 的,以此作为实际使用的评分函数.
看出来了吗? 书中的虚拟函数g, 可大体类比为 图像的概率分布。 上文也是用到了KL距离,GAN用的JS距离是KL距离的对称优化。