反向传播算法
神经网络正常情况下,信息流都是前向传播的,输入数据经过线性加权组合,激活函数实现非线性变换,在不同层级间反复迭代,得到最后的输出,这就如同人生一路向前不可逆转。
y
i
=
f
(
∑
i
w
i
⋅
x
i
)
y_i=f(\sum_i{w_i}\cdot{x_i})
yi=f(i∑wi⋅xi)
神经网络的训练往往以随机参数开始,初始输出一般都不尽如人意,学习的目的就是赋予它"穿越的力量",使其能够不断的自我更新,最终实现完美的效果。
先按网络关系把误差乘以权重:
δ
1
=
w
14
⋅
δ
4
+
w
15
⋅
δ
5
然后汇聚求和
一级级把误差倒查分解
先按网络关系把误差乘以权重:δ_1=w_{14}\cdot{δ_4}+w_{15}\cdot{δ_5}\\ 然后汇聚求和\\ 一级级把误差倒查分解
先按网络关系把误差乘以权重:δ1=w14⋅δ4+w15⋅δ5然后汇聚求和一级级把误差倒查分解
再根据梯度下降公式逐个更新参数:
w
(
x
1
)
1
‘
=
w
(
x
1
)
1
+
η
⋅
δ
d
f
1
(
e
)
d
e
x
1
w
(
x
2
)
1
‘
=
w
(
x
2
)
1
+
η
⋅
δ
d
f
1
(
e
)
d
e
x
2
再根据梯度下降公式逐个更新参数:\\ w^{`}_{(x1)1}=w_{(x1)1}+η\cdot{δ\frac{df_1(e)}{de}}x_1\\ w^{`}_{(x2)1}=w_{(x2)1}+η\cdot{δ\frac{df_1(e)}{de}}x_2
再根据梯度下降公式逐个更新参数:w(x1)1‘=w(x1)1+η⋅δdedf1(e)x1w(x2)1‘=w(x2)1+η⋅δdedf1(e)x2
无论神经网络还是混沌现象(蝴蝶效应),都是典型的非线性动力学系统(Nonlinear Dynamical System)
根据美国学者Strogatz教授的分类,用动力学角度看世界,混沌理论在中间,比著名的三体问题非线性较弱,神经网络在这里维度更高,非线性也更强,而我们熟知的免疫系统、生态系统、经济学以及量子场理论都在其中,这类系统的复杂性来自于非线性的不稳定和对初值的敏感,犹如在有限空间内反复缠绕形成的形状,对点电影而言,每条轨道都是对人生的重写,对神经网络来说,成千上万样本的一遍遍训练和反向传播,就如同在混沌的丛林中不断寻找最优的路径,在这个过程中蝴蝶效应要强调的是哪怕参数的一点点变化,经过非线性空间的映射,最终都可能产生巨大的差异,因此,科学合理的损失函数、学习率以及不同的梯度下降算法都很重要。