神经网络中正向传播(Forward propagation)的向量化(Vectorized implementation)
其实没什么难的,就是几个符号理解起来可能有点费劲,下面简单解释一下:
从这个式子入手:$z^{(2)}=\Theta^{(1)}*a^{(1)}$
$z^{(2)}$等于信号$a^{(1)}$在传输过程中乘上响应的权重$\Theta^{(1)}$,展开来写的话就是左图中等号右边的灰色线框。
$a^{(1)}$(activation values of layer one)是指第一层中$x_{0}$~$x_{3}$构成的一维向量,上标1就是指第一层。
$\Theta^{(1)}$是指传递过程中不同信号所对应的权重,反应在公式上就是$\Theta^{(1)}_{10}$~$\Theta^{(1)}_{33}$所构成的矩阵。
$\Theta^{(1)}_{10}$下标的10是指,接收信号的神经元为下一层的第一个,发出信号的为这一层的第0个神经元。
这里额外说一下这个$\Theta^{(1)}$的维度,如果在第$j$层有$s_{j}$个神经元(units),在第$j+1$层有$s_{j+1}$个神经元,那么对应的权重的维度为$s_{j+1}*(s_{j}+1)$。
其中$s_{j}+1$是因为上一层在传递时,默认会传递一个$s_{0}=1$
以上是传递过程中的,$z^{(2)}$传递到神经元之后,就通过激励函数(图中是S函数)求出需要传递个下一层的信号$a^{(2)}$
即公式:$a^{(2)}=g(z^{(2)})$
依次类推,即可求出最终的假设函数$h_{\Theta}(x)$
本文是从信号发出的角度去阐述,但似乎更多文章时站在信号接收的角度,但意思是一样的
参考文章
[1]. 机器学习笔记(2)—— 神经网络