前言
在最优化的过程中,常常需要用到导数,比如最经典的随机梯度下降法,其原理就是每次选取梯度最大的方向,对参数值进行修改。
求导
根据标量与向量,我们可以简单的分为 4 4 4类
- 标量对标量求导
- 标量对向量求导
- 向量对标量求导
- 向量对向量求导
标量对标量求导
这是最简单,最容易理解的。
在《微积分》、《高等数学》的课程中都有讲过,具体求法就不多赘述。
标量对向量求导
听上去名字可能有点奇怪,但是举个例子就很容易明白了。
y
=
3
×
x
1
+
4
×
x
2
2
x
⃗
=
(
x
1
,
x
2
)
y
=
f
(
x
⃗
)
∂
y
∂
x
⃗
=
(
∂
y
∂
x
1
,
∂
y
∂
x
2
)
=
(
3
,
8
⋅
x
2
)
y=3\times x_1 + 4\times x_2^2 \newline \vec{x}=(x_1,x_2) \newline y=f(\vec{x}) \newline \frac{\partial y}{\partial \vec{x}}=\left( \frac{\partial y}{\partial x_1} ,\frac{\partial y}{\partial x_2} \right)=\left( 3 , 8\cdot x_2\right)
y=3×x1+4×x22x=(x1,x2)y=f(x)∂x∂y=(∂x1∂y,∂x2∂y)=(3,8⋅x2)
可以看到,标量对向量的结果给是一个向量。
- 这个一定要理解,因为这是最优化中需要用到的。
- loss function是一个标量,而网络中的各种参数是一个变量
- loss function是网络中所有参数的函数
向量对标量求导
这个也比较好理解,就是向量的每一个值分别对标量求导。
最终求导的结果仍然是一个向量。
向量对向量求导
最终的结果是一个矩阵。
本质思想也是很简单,就是降维,最终的求导仍然是一个标量对标量求导。