深度监督网络.
- paper:Deeply-Supervised Nets
- arXiv:link
作者提出了深度监督网络(Deeply-Supervised Net,DSN),增强了网络隐藏层学习的透明性,能够解决梯度消失等问题并提高收敛速度。具体地,(针对分类任务)在网络的中间隐藏层增加辅助的分类器,从而构造伴随目标(companion objective),伴随目标与整体目标(即输出层的分类损失)共同优化。伴随目标的特点如下:
- 相当于特征正则化,在不显著影响训练误差的前提下使得测试误差减小;
- 能够加速收敛,尤其是训练数据较少时。
若记训练数据为\(\{X,y\}\),一个$M$层的卷积神经网络每一层的参数为\(W=\{W^{m},m=1,...,M\}\),则网络的特征图$Z$计算为:
\[Z^{(0)}=X,\quad Q^{(m)}=W^{(m-1)}Z^{(m-1)} \\ Z^{(m)}=f(Q^{(m)})\]伴随目标以支持向量机为例。对每一个隐藏层和输出层额外引入一个支持向量机,记其参数为\(w=\{w^{m},m=1,...,M\}\),则总的目标函数可以写作:
\[||w^{(M)}||^2+\mathcal{L}(W,w^{(M)})+\sum_{m=1}^{M-1}\alpha_m[||w^{(m}||^2+\mathcal{L}(W,w^{(m)})-\gamma]_+\]其中$\mathcal{L}(W,w^{(M)})$为整体损失(overall loss),计算为:
\[\mathcal{L}(W,w^{(M)})=\sum_{y_k≠y}^{}[1-<w^{(M)},\phi(Z^{(M)},y)-\phi(Z^{(M)},y_k)>]_+^2\]$\mathcal{L}(W,w^{(m)})$为伴随损失(companion loss),计算为:
\[\mathcal{L}(W,w^{(m)})=\sum_{y_k≠y}^{}[1-<w^{(m)},\phi(Z^{(m)},y)-\phi(Z^{(m)},y_k)>]_+^2\]目标函数中的\(\|w^{(M)}\|^2\)和$\mathcal{L}(W,w^{(M)})$是输出层支持向量机的边界和平方hinge损失。\(\|w^{(m)}\|^2\)和$\mathcal{L}(W,w^{(m)})$是第$m$个隐藏层对应的支持向量机的边界和平方hinge损失,当\(\|w^{(m)}\|^2+\mathcal{L}(W,w^{(m)})\)小于阈值$\gamma$时隐藏层的伴随损失为$0$,即伴随损失只有较大时才发挥作用。此时伴随损失相当于proxy,用来衡量隐藏层特征的判别性,若隐藏层特征的判别性较好,则容易分类,对应伴随损失为$0$,可以认为隐藏层特征具有较好的质量。
若记:
\[P(W) = ||w^{(M)}||^2+\mathcal{L}(W,w^{(M)})\] \[Q(W) = \sum_{m=1}^{M-1}\alpha_m[||w^{(m}||^2+\mathcal{L}(W,w^{(m)})-\gamma]_+\]则总损失函数表示为$F(W)=P(W)+Q(W)$。注意到参数$W$才是最终需要优化的目标,而$w$只是辅助训练的参数;$w^{(m)}$能够为$W^{(1)},…,W^{(m)}$提供梯度。通过训练使中间层特征更具有判别性,阈值$\gamma$则设置了一个区间,只有超过该区间时伴随损失才会起作用。
作者使用SVM和softmax这两种结构作为伴随目标,在数据集上进行实验。实验结果表明,深度监督的方法在精度上超过了仅对输出进行监督的方法,并且当训练数据较少时性能提升更加明显。
可视化结果表面深度监督学习到的特征具有更强的判别性: