网络训练和推理过程
训练过程:目的是更新权值
训练过程是为了更新权值,以达到最小化预测值和真实值之间的差异。
前向传播(Forward Propagation):
将数据输入网络计算输出值(模型的预测值)
输入数据 A m ( l − 1 ) A_m^{\left(l-1\right)} Am(l−1) ,初始化的权值 W W W 和初始化的偏置 b b b 计算得到输出特征图 A k ( l ) A_k^{\left(l\right)} Ak(l),即 预测值
反向传播(Backward Propagation)
1. 步骤一:计算损失(Loss Calculation)计算输出值(模型的预测值)和实际值之间的损失(差异)
通过 预测值 A k {A_k} Ak和真实标签 y y y 计算得到:损失值 L L L
2. 步骤二:计算输出梯度(误差):
损失函数 ( L ) (L) (L)对输出特征图 ( A k ( l ) ) (A_k^{\left(l\right)}) (Ak(l))的梯度为
δ A k ( l ) = ∂ L ∂ A k ( l ) \delta A_k^{\left(l\right)}=\frac{\partial L}{\partial A_k^{\left(l\right)}} δAk(l)=∂Ak(l)∂L
3. 步骤三:计算损失对每个权值的梯度(weight gradient)
权值 ( W k , m ( l ) ) (W_{k,m}^{\left(l\right)}) (Wk,m(l))的梯度 ( ∂ L ∂ W k , m ( l ) ) (\frac{\partial L}{\partial W_{k,m}^{\left(l\right)}}) (∂Wk,m(l)∂L),通过卷积输入 ( A m ( l − 1 ) ) (A_m^{\left(l-1\right)}) (Am(l−1))和输出梯度 ( δ A k ( l ) ) (\delta A_k^{\left(l\right)}) (δAk(l))得到。
对于权值的每个位置,权值梯度计算公式是:
∂
L
∂
W
k
,
m
(
l
)
=
δ
A
k
(
l
)
∗
A
m
(
l
−
1
)
\frac{\partial L}{\partial W_{k,m}^{\left(l\right)}}=\delta A_k^{\left(l\right)}\ast A_m^{\left(l-1\right)}
∂Wk,m(l)∂L=δAk(l)∗Am(l−1)
这里,
(
∗
)
(\ast)
(∗)表示卷积操作。将输入特征图梯度
δ
A
k
(
l
)
\delta A_k^{\left(l\right)}
δAk(l) 与输出误差
A
m
(
l
−
1
)
A_m^{\left(l-1\right)}
Am(l−1) 进行卷积来计算权重的梯度
∂
L
∂
W
k
,
m
(
l
)
\frac{\partial L}{\partial W_{k,m}^{\left(l\right)}}
∂Wk,m(l)∂L。
4. 步骤四:计算输入梯度(data gradient)
为了更新前一层的权重,我们还需要计算损失函数 对输入特征图的梯度(即前一层的误差):
δ
A
m
(
l
−
1
)
=
∑
k
W
k
,
m
(
l
)
∗
δ
A
k
(
l
)
\delta\ A_m^{\left(l-1\right)}=\sum_{k} W_{k,m}^{\left(l\right)}\ast\delta A_k^{\left(l\right)}
δ Am(l−1)=k∑Wk,m(l)∗δAk(l)
这里,
(
∗
)
(\ast)
(∗)表示卷积操作。表示在反向传播时,卷积核
W
k
,
m
(
l
)
W_{k,m}^{\left(l\right)}
Wk,m(l)和输出梯度
δ
A
k
(
l
)
\delta A_k^{\left(l\right)}
δAk(l)的卷积结果,这将传递到前一层,更新输入特征图的梯度
δ
A
m
(
l
−
1
)
\delta\ A_m^{\left(l-1\right)}
δ Am(l−1)。
tip:
权值的梯度(weight gradient :wgrad)
输入的梯度(data gradient :dgrad)
A m ( l − 1 ) A_m^{\left(l-1\right)} Am(l−1)输入特征图, δ A m ( l − 1 ) \delta A_m^{\left(l-1\right)} δAm(l−1) 输入梯度。
A ( a c t i v a t i o n ) A(activation) A(activation)代表的是激活值
m , k m,k m,k分别代表输入和输出特征图的通道索引
5. 步骤五:权值更新(Update weight gradient)使用得到的梯度(wgrad)调整权值和偏置,减少损失
权值通过梯度下降(gradient descent)的方式进行更新,即:
W
n
e
w
=
W
o
l
d
−
η
∂
L
∂
W
W^{new}=W^{old}\ -\ \eta\frac{\partial L}{\partial W}
Wnew=Wold − η∂W∂L
其中
η
\eta
η 是学习率(权重每次调整的步长),
∂
L
∂
W
\frac{\partial L}{\partial W}
∂W∂L 权重梯度(wgrad)
tip:(weight gradient)(data gradient)(Backward Propagation)(Forward Propagation)。
a b b r e v i a t i o n : abbreviation: abbreviation:wgrad,dgrad,bprop,fprop
推理过程:目的是进行预测
前向传播进行预测。