【L】a note on learning of deep architectures
最近阅读了一系列关于深度网络理论分析的paper。
浮现在脑海的有一个问题:深度网络权重与学习率的初始化以及Output-Input 统计结构对网络学习的影响。要研究这些因素在一般神经网络中的影响,就要先研究它们在线性网络下的影响,再推广。
1.深度线性神经网络学习动力学
对于这个问题,Saxe等人2013年对深度线性网络学习动力学做了一系列的研究[1]。
在对深度线性网络进行研究之前先对浅层线性网络进行分析。
假设有一个忽略偏置只有线性激活的三层网络结构,每层的神经元节点数目分别为$N_1=n,N_2=p,N_3=n$,其中p<n.那么第一二层之间的权重矩阵为B,第二三层的权重矩阵为A。输入为X,期望输出为Y。那么损失函数定义为$L=\|Y-ABX\|^2$。定义$\sum_{XX}=XX^T,\sum_{XY}=XY^T,\sum_{YX}=YX^T$
针对这个背景我们有,
(1)如果固定A,让L成为B的函数,那么当L取得最小值,有$A^TAB\sum_{XX}=A^T\sum_{YX}$,当$\sum_{XX}$可逆而且A满秩,有$B=(A^TA)^{-1}A^T\sum_{YX}\sum_{XX}^{-1}$。
证明:
\begin{align*}
L=vec\{Y-ABX\}^Tvec\{Y-ABX\}\\
\frac{\partial{L}}{\partial{vec\{B\}}}=-2vec\{A^T(Y-ABX)X^T\}
\end{align*}
令$\frac{\partial{L}}{\partial{vec\{B\}}}=0$,有
\begin{align*}
A^TABXX^T = A^TYX^T\\
A^TAB\sum_{XX}=A^T\sum_{YX} \tag{1}
\end{align*}
\[B=(A^TA)^{-1}A^T\sum_{YX}\sum_{XX}^{-1} \tag{2}\]
(2)如果固定B,让L成为A的函数,那么当L取得最小值,有$AB\sum_{XX}B^T=\sum_{YX}B^T$,当$\sum_{XX}$可逆而且B满秩,那么有$A=(B\sum_{XX}B^T)^{-1}\sum_{YX}B^T$
证明:
\begin{align*}
L=vec\{Y-ABX\}^Tvec\{Y-ABX\}\\
\frac{\partial{L}}{\partial{vec\{A\}}}=-2vec\{(Y-ABX)X^TB^T\}
\end{align*}
令$\frac{\partial{L}}{\partial{vec\{A\}}}=0$,有
\begin{align*}
\sum_{YX}B^T=AB\sum_{XX}B^T \tag{3}
\end{align*}
\[A=(B\sum_{XX}B^T)^{-1}\sum_{YX}B^T \tag{4}\]
(3)假定$\sum_{XX}$可逆,A满秩。如果A,B同时成为L取得极值的关键位置,那么由(2)(4),有
\begin{align*}
W=A(A^TA)^{-1}A^T\sum_{YX}{\sum_{XX}}^{-1}
\end{align*}
其中$P_{A}=A(A^TA)^{-1}A^T$为n维空间中以A的列向量为基的子空间的投影矩阵。故
\[W=P_{A}\sum_{YX}{\sum_{XX}}^{-1} \tag{5}\]
(3)式两边右乘$A^T$,有
\begin{align*}
\sum_{YX}B^TA^T=AB\sum_{XX}B^TA^T\\
\sum_{YX}W^T=AB\sum_{XX}W^T\\
\sum_{YX}{\sum_{XX}}^{-1}{\sum_{YX}}^TP_{A}^T=P_{A}\sum_{YX}{\sum_{XX}}^{-1}\sum_{XX}{\sum_{XX}}^{-1}\sum_{YX}P_{A}^T
\end{align*}
令$\sum = \sum_{YX}{\sum_{XX}}^{-1}{\sum_{YX}}^T$,以及$P_{A}$与$\sum$的对成性,有
\[ P_{A}{\sum}P_{A}=P_{A}{\sum}={\sum}P_{A} \tag{6} \]
$\sum$可以看成是网络的估计输出$\hat{Y}$与期望输出$Y$的相关性矩阵(${n_3}x{n_3}$),即$\sum=\hat{Y}Y^T$。
这个结果表明,只要我们找到符合(5)(6)式的参数矩阵就能找到一个驻点。
(4)在(3)的基础上,因为$\sum$是实对称矩阵,所以$\sum=U∧U^T$,∧是rank=r的对角矩阵。引入$U^TA$的正交投影矩阵$P_{U^TA}$,有
\[P_{U^TA}=U^TA(A^TUU^TA)^{-1}A^TU=U^TA(A^TA)^{-1}A^TU=U^TP_{A}U\]
故有$P_{A}=UP_{U^TA}U^T$
\[P_{A}{\sum}=UP_{U^TA}U^TU∧U^T=UP_{U^TA}∧U^T=U∧U^TUP_{U^TA}U^T\]
\[P_{U^TA}∧=∧P_{U^TA}\]
显然,$P_{U_TA}$为对角矩阵,且因为A满秩rank=p,所以$rank(P_{U^TA})=p$。
又由正交投影矩阵的性质$P^2=P$,容易知道$P_{U^TA}$的特征值为p个1,(n-p)个0。
所以$P_{U^TA}$的对角元素必然为p个1,(n-p)个0的排列,由不同的A确定一个排列。
定义$Idx$为长度为p的元素为1的索引序列,$idx={i_1,...i_p},1\leq i_1<..<i_p\leq n$,从而$P_{U^TA}=idx$,当$i\in idx$为1,否则为0。
故$P_A=UP_{U^TA}U^T=U_{idx}U_{idx}^T$
由(5)式及$W=AB$,知A与$P_{A}$有共同的列空间,所以不妨设$A=U_{idx}C$,C为可逆矩阵(因为A满秩rank(A)=p从而必然要求C可逆),$B=C^{-1}{\sum_{YX}}{\sum_{XX}}^{-1}$。即
\[A=U_{idx}C \tag{7}\]
\[B=C^{-1}U_{idx}^T{\sum_{YX}}{\sum_{XX}}^{-1} \tag{8}\]
在此基础上对损失函数做简化,$L=tr{\sum_{YY}}-2tr{W{\sum_{XY}}}+tr{W{\sum_{XX}}W^T}$,将(5)式代入,最终化得
\[L=tr{\sum_{YY}}-\sum_{i\in idx}λ_i \tag{9}\]
根据这个结果,可以知道,当$\sum_{XX}$可逆,A满秩,只要满足第(7),(8)式就可以找到一个对应网络的驻点,其中全局极值点在$\binom np$(如果$\sum$不满秩,应该为$\binom rp$)中的其中一个。
带偏置的线性网络的分析类似,事实上只需要让X或Y减去一个偏移即可。
Saxe的文章尝试在以上分析的所刻画的Loss Suface上建立使得最终学习结果到达上述全局极值点的权值-学习率空间的动力学系统。
文章中假定输入数据经过白化,对输入输出数据的相关性矩阵做SVD分解,有$\sum_{YX}=USV^T$,其中U为$n_3 \times n_3$的正交矩阵,S为$n_3\times n_1$的奇异值矩阵,共有$rank(\sum_{YX})$个非零奇异值,V为$n_1\times n_1$的正交矩阵,V中的列向量为对应奇异值的特征向量。这个操作,相当于对输入模式X做一个V变换,$X^{'}=VX$,对期望输出模式Y做一个$U^{-1}$变换,$Y^{'}=U^{-1}Y$。于是此时文章中的$\hat{W_{21}}$对应上面分析中的B,$\hat{W_{32}}$对应上边的A。定义a为$\hat{W_{21}}$的列向量,b为$\hat{W_{32}}^T$的列向量,容易得到损失函数$E=\sum(s_{\alpha}-a_{\alpha}^Tb_{\alpha})^2+\sum_{\alpha\neq\beta}(a_{\alpha}^Tb_{\beta})^2$,容易观察得到当$a_{\alpha}^Tb_{\beta}=0$而且$a_{\alpha}^Tb_{\alpha}=s_{\alpha}$时E最小。结合上边(7)(8)的分析,应有$b_{\beta}^Ta_{\alpha}=s_{\alpha}σ_{\alpha\beta}$,因此提出一种正交权重初始化的方法,定义正交矩阵$n_2\times n_2$R,使得$a_{\alpha}=aR_{,\alpha},b_{\beta}=bR_{,\beta}$,$a.b$为初始化的scale。可以证明这种初始化方法下,每次梯度改变时$a_{\alpha},b_{\beta}$的方向都不变。于是进一步得到损失函数$E_{\alpha}=\frac{1}{2μ}(s-ab)^2$,$E_{\alpha}$表示原来损失函数中与第$\alpha$个奇异值相关的损失。
现在来建立一个动力学系统,这个系统中a-b空间中每一个点都对应能量$E_ab$。现在假定梯度学习法在训练过程中是相当于原系统里的一个力场,这个力场驱使系统中能量不为0的点往能量为0的点运动,当能量为0时为稳态(好比重力场)。由于参数空间里a,b的连续对称性,根据noethe theorem,运动过程中对应着一个守恒量$a^2-b^2$(这意味着运动的轨迹必然为双曲线)。(P.S这个noethe theorem我也不太理解==)。给定任意一个初始点,我们都可以根据上边的系统来确定这个点运动到稳态的时间。
不失一般性,从原点出发($a^2=b^2$),令$u=ab$,于是在假设学习率为1时,梯度下降中u每次的增量为$μ\frac{du}{dt}=2u(s-u)$,所以$t=\int_{u_0}^{u_f}\frac{μdu}{2u(s-u)}=\frac{μ}{2s}ln{\frac{u_f(s-u_0)}{u_0(s-u_f)}}$,其中$u_0,u_f$为初始值和最终值。
当$u_0=ε,u_f=s-ε,lim ε=0^{+}$时,容易得出当s越大,t越小的结论。
也就是说浅层线性网络的训练速度和网络输出输入相关矩阵$\sum_{YX}$的奇异值的大小有关,奇异值越大,对应的参数训练越迅速。文章还通过实验证明当使用随机权值初始化和对tanh激活的网络的随机初始化也有类似的结论。
尝试推广到$N_l$层线性神经网络的情形。类似地将每一层权值矩阵定义为$W_{l+1,l}=R_{l+1}\hat{W_{l+1,l}}R_l^T$,其中R为正交矩阵,$\hat{W_{l+1,l}}$为对角阵,$R_1=V,R_{N_l}=U$,此时有$E=\frac{1}{2μ}(s-\prod _{i=1}^{N_{l-1}}a_i)^2$.
类似上边浅层网络所提及的动力系统,从一点出发我们求得它到达稳态所需要的时间,不失一般性,从原点出发,令$u=\prod a_i$,学习率为1时梯度下降中每次增量为$μ\frac{du}{dt}=(N_l-1)u^(2-\frac{2}{N_l-1})(s-u)$,简化为$μ\frac{du}{dt}=N_lu^2(s-u)$,于是$t=\frac{μ}{N_l}[\frac{1}{s^2}log(\frac{u_f(u_0-s)}{u_0(u_f-s)})+\frac{1}{su_0}-\frac{1}{su_f}]$。可见当网络层次为$N_l$时,在相同的学习率下,训练时间也与$\sum_{YX}$的奇异值大小成负相关。
特别地可以证明,当网络层次越深时,最佳学习率$\gamma$也越小;而且取最佳学习率进行学习时,深层网络的训练时间只比浅层网络长有限的常数时间,表现出一定的深度无关性。
证明:
\[\gamma_{opt}=\frac{g^Tg}{g^THg}\]
其中g为学习过程中对应点的梯度向量,H为对应的Hessian矩阵。
故$\frac{1}{\lambda_{max}}\leq\gamma_{opt}\leq\frac{1}{\lambda_{min}}$
对应上边的问题,初始点取$a_i=a_j,1\leq i \leq j \leq N_{l-1}$,从而
\[\frac{\partial E}{\partial a}= -\frac{1}{\eta}(s-a^{N_l-1})a^{N_l-2}\]
\[\frac{\partial^2 E}{\partial a_i a_j}=\frac{2}{\eta}a^{2N_l-4}-\frac{1}{\eta}sa^{N_l-3}\]
\[\frac{\partial^2 E}{\partial a_i^2}=\frac{1}{\eta}a^{2N_l-4}\]
\[H(a)=\begin{bmatrix}
&h &g &... &g &g\\
&g &h &... &g &g\\
& & &... & &\\
&g &g &... &h &g\\
&g &g &... &g &h
\end{bmatrix}\]
当特征向量为[1...1]时,对应特征值$\lambda=h+(N_l-2)g=2(N_l-3)\frac{1}{\eta}a^{2N_l-4}-(N_l-2)\frac{1}{\eta}sa^{N_l-3}$
当$a\in[0,s^{\frac{1}{N_l-1}}],a=s^{\frac{1}{N_l-1}}$时$\lambda$取最大值$(N_l-1)\frac{1}{\eta}s^{\frac{2N_l-4}{N_l-1}}$。于是$\gamma_{opt}=c\frac{\eta}{(N_l-1)s^{\frac{2N_l-4}{N_l-1}}}$,c为常数。可见当$N_l$越大最佳学习率越小。
根据这个结果,可知选择最佳学习率时,3层网络与$N_l$层网络分别的训练时间为
\[t_3=cln\frac{u_f(s-u_0)}{u_0(s-u_f)}\]
\[t_{N_l}=c(ln(\frac{u_f(u_0-s)}{u_0(u_f-s)})+\frac{s}{su_0}-\frac{s}{su_f})\]
上两式根据$\frac{t_{\gamma=1}}{t_{\gamma_{opt}}}=\frac{\gamma_{opt}}{1}$得到。可见$t_{N_l-1}-t_3=cs(\frac{1}{u_0}-\frac{1}{u_f})$,当合理选择初始点比如$u_0=\frac{1}{2s}$,可以使得时间差保持在较小的范围内。0
文章又分析了pretraining-finetune方法的初始化方法,认为当输入数据的统计结构和输出-输入相关矩阵统计结构相似时(也就是$\sum_{YX}=USV^T$,而$\sum_{XX}=Q∧Q^T$,当Q近似于V时就可以认为两者具有类似的统计结构),表现出了与正交矩阵初始化权重方法类似的权值结构,从而获得类似的结果。而使用随机正交矩阵方法进行初始化也能得到类似的实验结果。
在使用均值为0,方差为$\frac{1}{N}$的正态正太分布初始化权值时,权值虽然表现出了norm-preserving property(因为$W^TW \approx I$使得$(Wv)^T(Wv)\approx v^Tv$,这在误差传递时是一个不错的特性,随机正交初始化的技巧也表现出了这一特性),然而矩阵的特征值与奇异值分布大部分在靠近0的值,小部分长尾分布在较大的值,这将使得误差传递过程中误差被消弱至0(考虑线性网络后向传递过程$\delta_{l}=W^T\delta_{l+1}$)。这一定程度上说明了使用正态初始化为什么会使网络训练缓慢。
因此文章提出了dynamical isometry的概念,来表征雅可比矩阵与误差信号的乘积与等值算子的接近程度。也就是说雅可比矩阵(的乘积)的奇异值中越多接近1的奇异值越好。线性网络中,雅可比矩阵就是$W^T$,使用类似正交初始化的技术(奇异值接近1)使得权值结构有更好的dynamical isometry。
实验证明,在非线性网络中,使用scale factor g=1的tanh激活的设置中,使用正交权重初始化的深度网络依然表现出dynamical isometry。然而对于论文中的case能work是否对更多的task也能work呢?非线性网络下的dynamical isometry需要更多的实验和理论验证。
至此,Saxe给我们介绍了正交权重初始化,pretraining 初始化以及高斯初始化以及他们效果的dynamical isometry解释。
另外,关于pretraining 初始化,D.Erhan,Bengio等人在[4]中使用实验的方法表明了pretraining对训练深度网络的意义,并认为pretraining对结果优化和泛化都有正面的效果,主要原因是因为pretraining使优化的starting point 放在了一个更容易做优化找到更好local optima的basin of attraction上,同时限制了最终权值配置的可能因而起到提高generalization的效果。需要注意的是,pretraing在generalization上的作用,当网络较小时比在较大网络上更显著,在同样的高度的网络下较大的layersize比较好否则因为layersize小权值空间本来就有限的情况下再做pretraing限制只会伤害网络性能。
既然说到权值初始化,这里再打一个岔,再讲讲Xavrier初始化(又称normalization initialization)。Xavrier初始化是Xavrier Glorot在[5]中提出的。即W服从$[\frac{-\sqrt{6}}{\sqrt{n_{in}+n_{out}}},\frac{\sqrt{6}}{\sqrt{n_{in}+n_{out}}}]$区间的均匀分布。这个初始化方法的主要目的是使得网络在线性区工作阶段能保持各层激活的variance,后向梯度(backpropogated gradient)的variance以及权值梯度(weight gradients)的variance能保持相当。实验表明这种初始化在网络训练过程中帮助保持了这些量的稳定,也表现出了更好的dynamical isometry。
2.一般深度神经网络的dynamical isometry理论框架
为了避免篇幅太长,我将对这个问题的研究放在了另外一篇博文 on dynamical isometry.这个理论框架主要由[2][6][7]得到。
[3]A.E.Orhan,X.Pitkow,Skip Connections Eliminate Singularities.arXiv:1701.09175v8
[7]S.S. Schoenholz, J.Gilmer, S.Ganguli, J.S.Dickstein.Deep Information Propagation.arXiv:1611.01232