1.导数和微分
导数的计算,这是几乎所有深度学习优化算法的关键步骤,在深度学习我们通常选择对于模型参数可微的损失函数
定义一个函数f(x) = 3 * x^2 - 4 *x ,输入和输出都是标量,如果导数存在,极限定义如下:
f
′
(
x
)
=
lim
h
→
0
f
(
x
+
h
)
−
f
(
x
)
h
f^{'}(x) = \lim_{h \to 0 } \frac{f(x+h)-f(x)}{h}
f′(x)=h→0limhf(x+h)−f(x)
令x = 1,并让h接近0,极限的结果会接近2
对导数的这种解释进行可视化,我们将使用matplotlib,是一个Python中流行的绘图库,
2. 偏导数
对于多元函数求偏导数,设
y
=
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
y = f(x_1,x_2,...,x_n)
y=f(x1,x2,...,xn)是一个具有n个变量的函数,y关于第个参数的偏导数(partial derivative)为
∂
y
∂
x
=
lim
h
→
0
f
(
x
1
,
.
.
.
,
x
i
−
1
,
x
i
+
h
,
x
i
+
1
,
.
.
.
x
n
)
−
f
(
x
1
,
.
.
.
x
i
,
.
.
.
x
n
)
h
\frac{\partial y}{\partial x}=\lim_{h \to 0} \frac{f(x_1,...,x_{i-1},x_{i}+h,x_{i+1},...x_n) - f(x_1,...x_i,...x_n)} {h}
∂x∂y=h→0limhf(x1,...,xi−1,xi+h,xi+1,...xn)−f(x1,...xi,...xn)
若计算
∂
y
∂
x
i
\frac{\partial y}{\partial x_i}
∂xi∂y,则可以将
x
1
,
.
.
.
,
x
i
−
1
,
x
i
+
1
,
.
.
.
,
x
n
x_1,...,x_{i-1},x_{i+1},...,x_n
x1,...,xi−1,xi+1,...,xn看作常数,计算
y
y
y关于
x
i
x_i
xi的导数。