在前面的文章里,使用神经网络的任意函数拟合性结合了一点黎曼几何的坐标系变化的知识,解释了神经网络是怎样根据输入x,计算出每个分类下的能量Ei(x)的,再之后使用能量模型推算出了概率,从而展示了理论上可以使用DNN完成一个经典的分类问题。
然而这种解释只是最基本的可行性解释,并没有解答下列几个在训练时比较关键的问题:
DNN的层数以及每层的神经元个数究竟影响了哪些能够观测到的训练属性(除了函数的拟合性之外)?这些影响是怎么产生的?
为什么训练收敛速度会变慢?
为什么收敛后继续训练可能导致overfitting
理论上DNN的权重参数数量非常大,导致所需的样本数量也会非常大才能避免过拟合,但是实际上在较小的样本集上,DNN也能训练收敛,并且结合early stop方法也可以达到不错的泛化效果,这是为什么?
Dropout能够提升泛化性的原因
很多训练过程中出现的现象,以及网络结构会如何影响训练过程,这些问题都需要使用信息瓶颈理论来进行解读。
接下来的几篇文章,会着重探讨DNN是怎样高效地达到它的既定目标的,而不仅仅是证明DNN可以达到这些目标。
通过解读训练过程中每一层特征层包含的信息量变化,或许可以帮助解释DNN的黑盒。
首先需要介绍几个重要的概念:
交互信息(Mutual Information):
$I(X,Y)=D_{KL}\left [ p(x,y)||p(x)p(y) \right ]$
其中KL距离的定义是:假如使用分布q(x)来代替分布p(x)用来描述随机变量X (注:x可以看做X离散化后采样得到的结果)