北大旁听 - Loss Function、关于学习率的优化

本文内容不完整,请移步:https://segmentfault.com/a/1190000018510069

1. 想法

由于有朋友在北大,很高兴能蹭到深度学习的课程,李戈教授的课程十分精彩,比起只会念PPT的老师,他的教学就像在堆积知识的金字塔。

2. Loss Function

2.1 经典统计 vs 深度学习 vs 贝叶斯统计

概率论分为两大学派,贝叶斯学派认为先验知识很重要,而经典统计学派就是纯粹的看统计信息。

现在的深度学习最大的优点就是在数据拟合上表现非常好,但最大的缺点就是它的不可解释性

在一篇论文:Deep Learning: A Bayesian Perspective 中提到,目前深度学习算法取得好效果的主要原因归功于ReLU、learning_rate、Dropout

实际上先验知识只是以网络的模型结构的方式呈现的(包括Loss Function的设计等)。

2.2 最大似然估计

其实目前大部分使用的损失函数都是以最大似然原理为核心而设计的。

深度学习的核心问题就是让网络产生的数据分布尽可能贴近样本分布,所以极大似然原理就很自然的用在了深度学习上。

最大似然估计

而要评判分布的“差别”,首先需要可以评判分布的指标,而这个指标就是香农的信息熵

信息熵

有了评价指标后,我们还不急着对比,因为要计算信息熵,需要知道样本的真实分布和概率密度。在计算模型分布的信息熵时,此时就不叫信息熵了,而称为交叉熵

交叉熵

根据Gibbs不等式,有:E(P, Q) >= E(P),其实很好解释,用模拟出来的概率密度去计算真实分布的信息熵,肯定是比较混乱的(相对于真实概率密度计算真实分布的信息熵)。

有了交叉熵和原分布的信息熵后,我们做差,就能得到相对熵(又称KL散度),这也就是所谓的cross-entropy(而不是大家常见的1-log(x))。

Many authors use the term “cross-entropy” to identify specifically the negative log-likelihood of a Bernoulli or softmax distribution, but that is a misnomer.

相对熵

终于,我们得到了相对熵,可以评判分布的“差别”后,我们就可以用一个视角来看Loss Function:

  • Loss Function 用于计算模型输出数据与样本数据之间的“差别”。
  • Loss Function 体现了人们对这种“差别”进行度量时所依赖的先验知识。
  • 几种常见的“差别”度量方法
    • 个体模型结果与样本数据之间的“距离”。
    • 多个模型结果与样本数据之间存在数据分布上的差别。
    • 通过分析”统计距离“(Statistical Distance)来设计Loss。