1.正则化
原定的损失函数:
J
=
−
1
m
∑
i
=
1
m
(
y
(
i
)
log
(
a
[
L
]
(
i
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
a
[
L
]
(
i
)
)
)
(1)
J = -\frac{1}{m} \sum\limits_{i = 1}^{m} \large{(}\small y^{(i)}\log\left(a^{[L](i)}\right) + (1-y^{(i)})\log\left(1- a^{[L](i)}\right) \large{)} \tag{1}
J=−m1i=1∑m(y(i)log(a[L](i))+(1−y(i))log(1−a[L](i)))(1)
添加了L2正则化后的损失函数:
J
r
e
g
u
l
a
r
i
z
e
d
=
−
1
m
∑
i
=
1
m
(
y
(
i
)
log
(
a
[
L
]
(
i
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
a
[
L
]
(
i
)
)
)
⏟
cross-entropy cost
+
1
m
λ
2
∑
l
∑
k
∑
j
W
k
,
j
[
l
]
2
⏟
L2 regularization cost
(2)
J_{regularized} = \small \underbrace{-\frac{1}{m} \sum\limits_{i = 1}^{m} \large{(}\small y^{(i)}\log\left(a^{[L](i)}\right) + (1-y^{(i)})\log\left(1- a^{[L](i)}\right) \large{)} }_\text{cross-entropy cost} + \underbrace{\frac{1}{m} \frac{\lambda}{2} \sum\limits_l\sum\limits_k\sum\limits_j W_{k,j}^{[l]2} }_\text{L2 regularization cost} \tag{2}
Jregularized=cross-entropy cost
−m1i=1∑m(y(i)log(a[L](i))+(1−y(i))log(1−a[L](i)))+L2 regularization cost
m12λl∑k∑j∑Wk,j[l]2(2)
2.梯度计算公式
∂
J
∂
θ
=
lim
ε
→
0
J
(
θ
+
ε
)
−
J
(
θ
−
ε
)
2
ε
(1)
\frac{\partial J}{\partial \theta} = \lim_{\varepsilon \to 0} \frac{J(\theta + \varepsilon) - J(\theta - \varepsilon)}{2 \varepsilon} \tag{1}
∂θ∂J=ε→0lim2εJ(θ+ε)−J(θ−ε)(1)
可以用这个公式验证梯度是否计算正确。
公式推导(非常有意思!):https://blog.csdn.net/oBrightLamp/article/details/84333111
里面有关于神经网络梯度计算的推导:
3.矩阵求导
3.1对标量的计算
3.1.1 标量对标量
3.1.2 向量对标量
3.1.3 矩阵对标量
3.2 对向量的计算
3.2.1 标量对向量
3.2.2 向量对向量
3.2.3 矩阵对向量
3.3 对矩阵的计算
3.3.1 标量对矩阵
3.3.2 矩阵对矩阵
4 矩阵的导数与迹
4.1 矩阵的导数
4.2 矩阵的迹
对于一个n阶方阵A的迹被定义为方阵A的主对角线的元素之和,通常对方阵的求迹操作写成trA,于是我们有
4.3 性质
附:
1、向量对向量求导
2、标量对向量求导
3、向量对标量求导
4、可能用到的公式