KL 散度又叫相对熵
KL 散度是一种衡量两个概率分布的匹配程度的指标,两个分布差异越大,KL散度越大
KL散度是恒大于等于零的,等于零时说明两个分布一样
用KL散度来衡量两个高斯分布的相似度公式
具体的推导可以看添加链接描述
自己用tensorflow实现了一下
def calculate_gaussian_kl_divergence(m1,m2,v1,v2):
###m1,m2 指两个高斯分布的均值
###v1,v2指两个高斯分布的方差
return tf.log(v2 / v1) + tf.div(tf.add(tf.square(v1), tf.square(m1 - m2)), 2 * tf.square(v2) ) - 0.5