L2 Normalization(L2归一化)反向传播推导

L2 Normalization公式及作用

我们知道对于一行向量,其L2归一化公式入下所示,其中为向量长度:

在深度神经网络中,偶尔会出现多个量纲不同的向量拼接在一起的情况,此时就可以使用L2归一化统一拼接后的向量的量纲,使得网络能够快速收敛。

L2 Normalization的反向传播推导

在反向传播求导时,我们需要求出每一个输入的梯度,即。由链式法则可得:

其中为上一层反向传播回来的梯度。因为在L2归一化公式中,跟每一个都有关系,所以链式法则中需要考虑到每一个的情况。


由于已知,只考虑右边情况:

\begin{equation} \begin{aligned} \frac{\partial{y_j}}{\partial{x_i}} &=\frac{\partial{}}{\partial{x_i}} \left[x_j \left(\sum_{k=1}^{D}{x_k^2} \right) ^ {-\frac{1}{2}} \right]\\ &=\frac{\partial{x_j}}{\partial{x_i}} \left( \sum_{k=1}^{D}{x_k^2} \right)^ {-\frac{1}{2}} + x_j (-1) \left(\sum_{k=1}^{D}{x_k^2} \right) ^ {-\frac{3}{2}} \sum_{k=1}^{D}{x_k} \frac{\partial{x_k}}{\partial{x_i}}\\ &=\delta_{ij} \left( \sum_{k=1}^{D}{x_k^2} \right)^ {-\frac{1}{2}} - x_j \left(\sum_{k=1}^{D}{x_k^2} \right) ^ {-\frac{3}{2}} x_i \end{aligned} \end{equation}


其中 if ,否则为0。为美观公式,我们令,则:



将其代回原来的公式:
\begin{equation} \begin{aligned} \frac{\partial{L}}{\partial{x_i}} &=\sum_{j=1}^{D} {\frac{\partial{L}}{\partial{y_j}}} \left[ \delta_{ij}M^{-\frac{1}{2}} - x_i M^{-\frac{3}{2}} x_j \right]\\ &=M^{-\frac{1}{2}} \sum_{j=1}^{D}{\frac{\partial{L}}{\partial{y_j}} \delta_{ij}} - x_i M^{-\frac{3}{2}} \sum_{j=1}^{D}{\frac{\partial{L}}{\partial{y_j}} x_j}\\ &=M^{-\frac{1}{2}} \frac{\partial{L}}{\partial{y_i}} - x_i M^{-\frac{3}{2}} \sum_{j=1}^{D}{\frac{\partial{L}}{\partial{y_j}} x_j}\\ &=M^{-\frac{1}{2}} \left[ \frac{\partial{L}}{\partial{y_i}} - x_i M^{-\frac{1}{2}} \sum_{j=1}^{D}{\frac{\partial{L}}{\partial{y_j}} x_j M^{-\frac{1}{2}} } \right]\\ &=M^{-\frac{1}{2}} \left[ \frac{\partial{L}}{\partial{y_i}} - y_i \sum_{j=1}^{D}{\frac{\partial{L}}{\partial{y_j}} y_j } \right] \end{aligned} \end{equation}


公式中注意

由此可得最终公式:

码公式辛苦,转载请注明出处。

你可能感兴趣的:(L2 Normalization(L2归一化)反向传播推导)