Δ
w
(
t
)
=
−
ε
∂
E
∂
w
(
t
)
+
α
Δ
w
(
t
−
1
)
(
9
)
\Delta w(t)=-\varepsilon\frac{∂E}{∂w(t)}+\alpha\Delta w(t-1)(9)
Δw(t)=−ε∂w(t)∂E+αΔw(t−1)(9)
我们知道反向传播每次迭代的效果是这样的:
w
=
w
+
Δ
w
(
t
)
w=w+\Delta w(t)
w=w+Δw(t)
我们知道,每条训练数据都会导致训练的过程中,
计算一次
∂
E
∂
w
(
t
)
\frac{∂E}{∂w(t)}
∂w(t)∂E,假如我的
w
i
w_i
wi初始化为0,最终的值是0.7
但是我的学习率
ε
=
0.0001
\varepsilon=0.0001
ε=0.0001,一万条数据,
epoch=1够不够,可能够,也可能不够.
因为你想啊,就假如一个三层的神经网络
第一层和第二层之间有个
w
i
w_i
wi
第2层和第3层之间有个
w
j
w_j
wj
假设w在0~1之间,那么就有1/
ε
\varepsilon
ε=10000种取值,
并且层与层之间的w还得排列组合,这些排列组合虽然是根据
∂
E
∂
w
(
t
)
\frac{∂E}{∂w(t)}
∂w(t)∂E不断调整
w
w
w的,你能确保这些层与层之间的不同w的值的组合
刚好令loss(也就是E)最小吗?
显然不能,所以根据梯度下降的过程,你需要很多次epoch,才有可能让神经网络来拟合处满足当前训练集的模型.
一言概之,为啥需要多次epoch,
就是
w
=
w
+
Δ
w
(
t
)
w=w+\Delta w(t)
w=w+Δw(t)还没来得及迭代到最终的值.
当然最终的值很可能会让神经网络过拟合,这是后话.