深度学习---双层神经网络中矩阵的运算及其含义记录
在看深度学习过程的时候,经常会因为各种矩阵计算搞得头晕,所以就想着梳理一遍并且记录一下,便于自己后续的学习。
神经网络的正向传播与反向传播
神经网络中的正向传播和反向传播都运用了不少的矩阵计算以及数学知识,我期望能够将每一步的含义都记录下来。希望在后续的学习中能够对不同矩阵的意义都能够很熟练的了然于心。 这可能算是矩阵微积分的知识? 目前我还不太明白。。。总之按照自己的理解先记录下去吧~
那么就用张图来当这次的demo吧。 如果是一个样本的计算的话,其实还没有那么头疼, 如果是多个样本堆叠之后进行一次运算的话,我就会因为分不清楚每个矩阵的含义和维度开始迷茫。。
总之!就是要记录一下每个矩阵的含义 以及维度,还有每一步运算的意义!帮助理解! 就是这样! 有点语无伦次!不太会说话了!
现在!给出我们输入值的假设! 每个训练样本有m个特征值 , 共有n个训练样本!
第一层神经网络具有k个神经元节点,第二层神经网络只有一个节点。
正向传播
正向传播算是没那么复杂。。
第一层的权重矩阵
先来说明一下 W1 矩阵 (第一层神经网络中的权重, 上标为1 代表它与第一层神经网络有关)
[ ⋯ ⋯ w 1 T ⋯ ⋯ ⋯ ⋯ w 2 T ⋯ ⋯ ⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋯ w k T ⋯ ⋯ ] \left[ \begin{matrix} \cdots& \cdots & w_{1}^T&\cdots &\cdots \\ \cdots& \cdots & w_{2}^T & \cdots &\cdots \\ \vdots& \vdots & \vdots & \vdots &\vdots \\ \cdots& \cdots & w_{k}^T & \cdots &\cdots \\ \end{matrix} \right] ⎣⎢⎢⎢⎡⋯⋯⋮⋯⋯⋯⋮⋯w1Tw2T⋮wkT⋯⋯⋮⋯⋯⋯⋮⋯⎦⎥⎥⎥⎤
这个矩阵是一个(k,m)的矩阵,因为这个矩阵的每一行代表着一个神经元节点,每一列代表着一个神经元节点中的一个特征值的权重
第一层的输入矩阵
然后是 X1 矩阵 (也可记作A0,和后续的输入矩阵作比较就明白了~)
[ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ x 1 x 2 x 3 ⋯ x n ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ] \left[ \begin{matrix} \vdots& \vdots &\vdots & \vdots &\vdots \\ \vdots& \vdots & \vdots & \vdots &\vdots \\ x_{1} & x_{2} & x_{3} & \cdots & x_{n} \\ \vdots& \vdots & \vdots & \vdots &\vdots \\ \vdots& \vdots & \vdots & \vdots &\vdots \\ \end{matrix} \right] ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡⋮⋮