正向传播的向量化实现

神经网络中正向传播(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)—— 神经网络

-------------End-------------
梦想总是要有的,万一有人有钱呢?