首先可以在心中搭起框架,一个神经网络可以理解为用若干个samples去训练出Weight(W)和Bias(b),从而可以利用这个网络将unknown input分类成不同的类别。其中:

Feed Forward Propagation前向传播多是用于classification和recognition的任务中的,根据输入输出预测结果。
在用前向传播的神经网络进行分类的时候,我们假设其网络结构已经训练出来了,即Weight和Bias都已经知道了。

常规的流程我们都清楚,这方面主要就是集中于一些参数Weight和Bias个数的统计


一个神经元激励计算的例子如下:

Back propagation主要用于训练神经网络的,它也包括forward processing预测结果的过程,根据预测出来的结果对神经网络进行反向处理backward processing,更新网络权重。
这部分关键在于误差e的计算,以及在两种情况下如何进行权重更新。

图中e(n)表示的是样本n在类别1上产生的误差,
Y
1
、
Y
2
、
Y
3
Y1、Y2、Y3
Y1、Y2、Y3分别代表在三个类别上neurons的输出(并没有经过softmax层),
T
1
、
T
2
、
T
3
T1、T2、T3
T1、T2、T3代表真实类别标签的三个分量。
权重的更新为
w
n
e
w
=
w
o
l
d
−
η
∗
∂
E
∂
w
w_{new}=w_{old}- \eta*\frac{\partial E}{\partial w}
wnew=wold−η∗∂w∂E,
η
\eta
η为learning rate, 如下图证明所示,这样的更新可以使得系统整体的误差
E
E
E不断减小。


简单地理解来说,就是误差
ε
\varepsilon
ε对预测值
x
i
x_i
xi求偏导,然后预测值
x
i
x_i
xi针对其计算中的e的指数上的和
u
i
u_i
ui求偏导,最后该和
u
i
u_i
ui对
w
j
,
i
w_{j,i}
wj,i求偏导。

其中的sensitivity表示出来,可以复用在后面链式a hidden layer and a hidden layer之间状态更新的链式求导,链式前面sensitivity都一致,不一致的是后面
u
i
u_i
ui对
w
j
,
i
w_{j,i}
wj,i还是对
x
j
x_j
xj求导。

这是一种加快训练速度的方式,我们将所有数据用于训练的一轮称作one epoch. 在一个epoch中每多少个训练样本用于权重更新称作batch size.

丢掉神经网络中的几个节点预防过拟合overfitting。

之前的权重更新都是
w
=
w
−
α
∗
g
w=w-\alpha*g
w=w−α∗g,现在引入momentum和root mean square,处理噪声问题带来的稀疏的gradient。

weight update between the hidden layer and the output layer

weight update Between a hidden layer and a hidden layer
