人工智能学习
前言
根据吴达恩的课程开始学习,线性代数,微积分,概率统计,机器学习,深度学习,目前主流框架。
第一步 微积分
目录
导数(derivative)
函数在某一点的导数,就是该点处切线的斜率。找到函数的最大点和最小点,都是在导数等0的点,就是切线在水平的地方。
y
=
f
(
x
)
y=f(x)
y=f(x)
1.莱布尼兹符号(leibniz’s notation)
△
y
△
x
=
d
y
d
x
=
d
d
x
f
(
x
)
\frac{\triangle{y}}{\triangle{x}}= \frac{dy}{dx}=\frac{d}{dx}f(x)
△x△y=dxdy=dxdf(x)
2.拉格朗日符号(lagrange’s notation)
f
′
(
x
)
f'(x)
f′(x)
常见的导数(common derivatives)
常数的导数总为0;
线性方程(lines):
f
(
x
)
=
a
x
+
b
f
′
(
x
)
=
a
f(x)=ax+b\qquad f'(x)=a
f(x)=ax+bf′(x)=a
二次函数(quadratics):
y
=
f
(
x
)
=
x
2
△
f
△
x
=
(
x
+
△
x
)
2
−
x
2
△
x
=
2
x
+
△
x
⇒
△
x
趋近于
0
,
f
′
(
x
)
=
2
x
y=f(x)=x^2 \hspace{2em} \frac{\triangle{f}}{\triangle{x}}=\frac{(x+\triangle{x})^2-x^2}{\triangle{x}}=2x+\triangle{x}\Rightarrow\triangle{x}趋近于0,f'(x)=2x
y=f(x)=x2△x△f=△x(x+△x)2−x2=2x+△x⇒△x趋近于0,f′(x)=2x
高次多项式(higher degree polynomials)
y
=
f
(
x
)
=
x
3
△
f
△
x
=
(
x
+
△
x
)
3
−
x
3
△
x
⇒
f
′
(
x
)
=
3
x
2
y=f(x)=x^3\hspace{2em} \frac{\triangle{f}}{\triangle{x}}=\frac{(x+\triangle{x})^3-x^3}{\triangle{x}}\Rightarrow f'(x)=3x^2
y=f(x)=x3△x△f=△x(x+△x)3−x3⇒f′(x)=3x2
其他幂函数(other power functions)
f
(
x
)
=
1
x
=
x
−
1
△
f
△
x
=
(
x
+
△
x
)
−
1
−
x
−
1
△
x
⇒
f
′
(
x
)
=
−
x
−
2
f(x)=\frac{1}{x}=x^{-1}\hspace{2em} \frac{\triangle{f}}{\triangle{x}}=\frac{(x+\triangle{x})^{-1}-x^{-1}}{\triangle{x}}\Rightarrow f'(x)=-x^{-2}
f(x)=x1=x−1△x△f=△x(x+△x)−1−x−1⇒f′(x)=−x−2
总结规则:幂函数的导数
f
(
x
)
=
x
n
f
′
(
x
)
=
d
d
x
f
(
x
)
=
n
x
n
−
1
f(x)=x^n f'(x)=\frac{d}{dx}f(x)= nx^{n-1}
f(x)=xnf′(x)=dxdf(x)=nxn−1
反函数的导数(the inverse function and its derivative)
反函数的定义:g(x)和f(x)是反函数
g
(
x
)
=
f
−
1
(
x
)
⇒
g
(
f
(
x
)
)
=
x
g(x)= f^{-1}(x) \Rightarrow g(f(x)) = x
g(x)=f−1(x)⇒g(f(x))=x
g
′
(
x
)
=
1
f
′
(
x
)
g'(x)= \frac{1}{f'(x)}
g′(x)=f′(x)1
三角函数的导数(derivative of triaonomertirc function)
f
(
x
)
=
s
i
n
(
x
)
⇒
f
′
(
x
)
=
c
o
s
(
x
)
f(x)= sin(x) \Rightarrow f'(x)=cos(x)
f(x)=sin(x)⇒f′(x)=cos(x)
f
(
x
)
=
c
o
s
(
x
)
⇒
f
′
(
x
)
=
−
s
i
n
(
x
)
f(x)= cos(x) \Rightarrow f'(x)=-sin(x)
f(x)=cos(x)⇒f′(x)=−sin(x)
指数函数(exponenatial function)
meaning of the exponenatial
欧拉数 : e=2.71828182…
f
(
x
)
=
e
x
⇒
f
′
(
x
)
=
e
x
f(x)=e^x \Rightarrow f'(x)= e^x
f(x)=ex⇒f′(x)=ex
对数函数(logarithmic function)
通过反函数导数的规则推理。
f
(
x
)
=
e
x
f
−
1
(
y
)
=
l
o
g
(
y
)
f(x)=e^x \hspace{2em}f^{-1}(y)=log(y)
f(x)=exf−1(y)=log(y)
e
l
o
g
(
x
)
=
x
l
o
g
(
e
y
)
=
y
e^{log(x)}=x \hspace{2em}log(e^y )=y
elog(x)=xlog(ey)=y
f
(
x
)
=
l
o
g
(
x
)
⇒
f
′
(
x
)
=
d
d
y
f
−
1
(
y
)
=
1
f
′
(
x
)
=
1
e
x
f(x)=log(x)\Rightarrow f'(x)=\frac{d}{dy}f^{-1}(y)= \frac{1}{f'(x)}= \frac{1}{e^x}
f(x)=log(x)⇒f′(x)=dydf−1(y)=f′(x)1=ex1
d
d
y
l
o
g
(
y
)
=
1
y
\frac{d}{dy}log(y)= \frac{1}{y}
dydlog(y)=y1
导数的存在性(existence of the derivative)
不可导函数(non differentiable functions)
在函数区间内每一点都可导,称函数是可导的。
三种不可导的函数:一图像上有拐点、尖点的如:绝对值函数。二函数不连续的如:分段函数。三函数垂直于x轴的如:
x
1
3
x^{\frac{1}{3}}
x31
导数的性质(properties of the derivative)
标量乘法(multiplication by saclars)
c
f
(
x
)
⇒
c
f
′
(
x
)
c
为标量
cf(x)\Rightarrow cf'(x)\;c为标量
cf(x)⇒cf′(x)c为标量
求和规则(sum rule)
f
(
x
)
=
g
(
x
)
+
h
(
x
)
⇒
f
′
(
x
)
=
g
′
(
x
)
+
h
′
(
x
)
f(x)= g(x)+h(x)\Rightarrow f'(x)=g'(x)+h'(x)
f(x)=g(x)+h(x)⇒f′(x)=g′(x)+h′(x)
乘积规则(profuct rule)
f
(
x
)
=
g
(
x
)
h
(
x
)
⇒
f
′
(
x
)
=
g
′
(
x
)
h
(
x
)
+
g
(
x
)
h
′
(
x
)
f(x)= g(x)h(x)\Rightarrow f'(x)=g'(x)h(x)+g(x)h'(x)
f(x)=g(x)h(x)⇒f′(x)=g′(x)h(x)+g(x)h′(x)
链式规则(chain rule)
f
(
x
)
=
f
(
g
(
h
(
t
)
)
)
⇒
d
d
t
f
(
g
(
h
(
t
)
)
)
=
d
f
d
g
⋅
d
g
d
h
⋅
d
h
d
t
=
f
′
(
g
(
h
(
t
)
)
)
⋅
g
′
(
h
(
t
)
)
⋅
h
′
(
t
)
f(x)=f(g(h(t)))\Rightarrow \frac{d}{dt}f(g(h(t)))=\frac{df}{dg}\sdot \frac{dg}{dh}\sdot \frac{dh}{dt} = f'(g(h(t)))\sdot g'(h(t))\sdot h'(t)
f(x)=f(g(h(t)))⇒dtdf(g(h(t)))=dgdf⋅dhdg⋅dtdh=f′(g(h(t)))⋅g′(h(t))⋅h′(t)
导数在机器学习中的主要应用优化(optomization)
平方损失优化(optimization of squared loss)
平方函数的图像是向上开口的抛物线,找到最低点就是斜率等于0的点。
m
i
n
i
m
i
z
e
(
x
−
a
1
)
2
+
(
x
−
a
2
)
2
+
⋯
+
(
x
−
a
n
)
2
⇒
d
d
x
[
(
x
−
a
1
)
2
+
(
x
−
a
2
)
2
+
⋯
+
(
x
−
a
n
)
2
]
=
0
minimize \hspace{1em} (x-a_1)^2+(x-a_2)^2+\dots +(x-a_n)^2 \Rightarrow \frac{d}{dx}[ (x-a_1)^2+(x-a_2)^2+\dots +(x-a_n)^2 ] =0
minimize(x−a1)2+(x−a2)2+⋯+(x−an)2⇒dxd[(x−a1)2+(x−a2)2+⋯+(x−an)2]=0
s
o
l
u
t
i
o
n
:
x
=
a
1
+
a
2
+
a
3
+
⋯
+
a
n
n
solution: x=\frac{a_1+a_2+a_3+\dots+a_n}{n}
solution:x=na1+a2+a3+⋯+an
对数损失优化(optimization of log loss)
抛硬币的实验。要求7次正面3次反面才能中奖。提供三种硬币,第一种正面0.7单面0.3,第二种正反都是0.5,第三种正面0.3反面0.7,求出那种硬币最大概率能够赢。
l
o
g
(
g
(
p
)
)
=
l
o
g
(
p
7
(
1
−
p
)
3
)
=
l
o
g
(
p
7
)
+
l
o
g
(
(
1
−
p
)
3
)
=
7
l
o
g
(
p
)
+
3
l
o
g
(
1
−
p
)
log(g(p))=log(p^7(1-p)^3) = log(p^7)+log((1-p)^3)=7log(p)+3log(1-p)
log(g(p))=log(p7(1−p)3)=log(p7)+log((1−p)3)=7log(p)+3log(1−p)
d
d
p
(
7
l
o
g
(
p
)
+
3
l
o
g
(
1
−
p
)
)
=
7
1
p
+
3
1
1
−
p
(
−
1
)
=
7
(
1
−
p
)
−
3
p
p
(
1
−
p
)
=
0
\frac{d}{dp}( 7log(p)+3log(1-p))=7\frac{1}{p}+3\frac{1}{1-p}(-1) =\frac{7(1-p)-3p}{p(1-p)}=0
dpd(7log(p)+3log(1−p))=7p1+31−p1(−1)=p(1−p)7(1−p)−3p=0
7
(
1
−
p
)
−
3
p
=
0
→
7
−
7
p
−
3
p
=
0
→
7
−
10
p
=
0
→
p
=
0.7
7(1-p)-3p=0\rightarrow 7-7p-3p=0\rightarrow 7-10p=0\rightarrow p=0.7
7(1−p)−3p=0→7−7p−3p=0→7−10p=0→p=0.7
梯度下降 (gradient descent)
切平面(tangent plan)
在三维几何中,切平面是指与曲面在某一点相切的平面。
偏导数(partial derivatives)
f(x,y)如果两个变量,可以取两个偏导数
将y看作常数,对x求导,称为f对x得偏导数。(treat y as a constant,partail derivitive of f with respect to x)
将x看作常数,对y求导,称为f对y得偏导数。
f
(
x
,
y
)
⇒
f
x
=
∂
f
∂
x
f(x,y) \Rightarrow f_x=\frac{\partial f}{\partial x}
f(x,y)⇒fx=∂x∂f
f
(
x
,
y
)
⇒
f
y
=
∂
f
∂
y
f(x,y) \Rightarrow f_y=\frac{\partial f}{\partial y}
f(x,y)⇒fy=∂y∂f
对多个变量,一样的步骤,将其他的变量看作常数,对单一变量求导。
梯度(gradients)
梯度是偏导数组成得向量。求图像上某点的梯度 ,将点的值代入向量计算。
G
r
a
d
i
e
n
t
:
∇
f
=
[
∂
f
∂
x
1
⋮
∂
f
∂
x
n
]
Gradient :\hspace{1em} \nabla f =\begin{bmatrix} \frac{\partial f }{\partial x_1} \\ \vdots\\ \frac{\partial f }{\partial x_n}\end{bmatrix}
Gradient:∇f=
∂x1∂f⋮∂xn∂f
最大最小值
将所有偏导数设为0,求解方程组。得到最大值或者最小值。
梯度优化
找到函数的最低点也就是温度的最低点。利用偏导数都等于0;
T
=
f
(
x
,
y
)
=
85
−
1
90
x
2
(
x
−
6
)
y
2
(
y
−
6
)
T=f(x,y)=85-\frac{1}{90}x^2(x-6)y^2(y-6)
T=f(x,y)=85−901x2(x−6)y2(y−6)
∂
f
∂
x
=
−
1
90
x
(
3
x
−
12
)
y
2
(
y
−
6
)
=
0
\frac{\partial f} {\partial x}=-\frac{1}{90}x(3x-12)y^2(y-6)=0
∂x∂f=−901x(3x−12)y2(y−6)=0
∂
f
∂
y
=
−
1
90
x
3
(
x
−
6
)
y
(
3
y
−
12
)
=
0
\frac{\partial f} {\partial y}=-\frac{1}{90}x^3(x-6)y(3y-12)=0
∂y∂f=−901x3(x−6)y(3y−12)=0
得到 解x=0,x=4,y=0,y=6,x=0.x=6,y=0,y=4 。得到组合
x=0,y=0
x=0,y=4
x=0,y=6
x=4,y=0
x=4,y=4
x=6,y=0
x=6,y=6
代入函数求解出温度,x= 4,y=4为最低点。
电力问题。
f
(
m
.
b
)
=
14
m
2
+
3
b
2
+
38
+
12
m
b
+
42
m
−
20
b
f(m.b)= 14m^2+3b^2+38+12mb+42m-20b
f(m.b)=14m2+3b2+38+12mb+42m−20b
∂
E
∂
m
=
−
28
m
+
12
b
−
42
=
0
\frac{\partial E} {\partial m}=-28m+12b-42=0
∂m∂E=−28m+12b−42=0
∂
E
∂
b
=
−
6
b
+
12
m
−
20
=
0
\frac{\partial E} {\partial b}=-6b+12m-20=0
∂b∂E=−6b+12m−20=0
方程求解得到m=0.5,b=;3/7。代入直线方程
E
(
m
=
1
2
,
b
=
7
3
)
≈
4.167
E(m=\frac{1}{2},b=\frac{7}{3})\approx 4.167
E(m=21,b=37)≈4.167
单变量的梯度下降
预先要找到平方函数
一:定义一个学习率α,选择一个开始点 x
二:计算公式
x
k
=
x
k
−
1
−
α
f
′
(
x
k
−
1
)
x_k=x_{k-1}-\alpha f'(x_{k-1})
xk=xk−1−αf′(xk−1)
三:重复以上步骤,知道找到最小的点
公式的好处:1.斜率是负数代表X增加,斜率是正数X减少。2.曲线越陡峭,导数越大,到下个点的跨度就越大,相反曲线越平稳,导数和跨度越小。
合适的学习率α,很重要,决定了是否能找到最低点。多个波谷的情况下,需要使用多个不同的起始点。
__双变量梯度下降 __
函数f(x,y),目标是找到函数f(x,y)的最小值
一: 定义一个学习率 α ,选择一个开始点 (x0,y0)
二:
[
x
k
y
k
]
=
[
x
k
−
1
y
k
−
1
]
−
α
∇
f
(
x
k
−
1
,
y
k
−
1
)
\begin{bmatrix} x_k\\y_k \end{bmatrix}=\begin{bmatrix} x_{k-1}\\y_{k-1} \end{bmatrix}-\alpha \nabla f( x_{k-1},y_{k-1})
[xkyk]=[xk−1yk−1]−α∇f(xk−1,yk−1)
三:重复第二步,知道接近最小值。(当移动的非常缓慢,或者基本上不移动)
和单变量一样存在局部最小值,需要从非常不同的位置做为开始点计算。
使用梯度下降优化:最小平方法(optimization using gradient descent :least squares)
使用梯度下降解决线性回归的问题,以电视广告预算(TV budget)和销量(sales)为例:
目标:预测销量根据预算(predict sales in terms of budget)
工具:线性回归 y=mx+b
计算成本函数(cost function)单个点的损失
(
m
x
+
b
−
y
)
2
(mx+b-y)^2
(mx+b−y)2
全都的损失点
L
(
m
,
b
)
=
1
2
n
[
(
m
x
1
+
b
−
y
1
)
2
+
⋯
+
(
m
x
n
+
b
−
y
n
)
2
]
L(m,b)=\frac{1}{2n}[(mx_1+b-y_1)^2+\dots+(mx_n+b-y_n)^2]
L(m,b)=2n1[(mx1+b−y1)2+⋯+(mxn+b−yn)2]
总成本函数是由所有的损失的平均值得到。
[
m
N
b
N
]
=
[
m
N
−
1
b
N
−
1
]
−
α
∇
L
1
(
m
N
−
1
,
b
N
−
1
)
\begin{bmatrix} m_N\\b_N \end{bmatrix} =\begin{bmatrix} m_{N-1}\\b_{N-1} \end{bmatrix}-\alpha \nabla L_1(m_{N-1},b_{N-1})
[mNbN]=[mN−1bN−1]−α∇L1(mN−1,bN−1)
感知器回归(regression with a perceptron)
神经网络的基本单元:感知器
线性回归能表示为感知器
在感知器模型中,每个神经元都有以下组成部分:
输入(Inputs) :代表外部环境的信息,可以是多个信号,每个信号都有一个相应的权重。
权重(Weights) :每个输入信号都有一个权重,表示该信号对于神经元激活的重要性。
偏置(Bias) :一个额外的参数,用于调整神经元激活的阈值。
预测方法(Prediction Function):
y
^
=
w
1
x
1
+
w
2
x
2
+
b
\hat{y} =w_1x_1+w_2x_2+b
y^=w1x1+w2x2+b
平方损失函数(Loss Function):
L
o
s
s
(
y
,
y
^
)
=
1
2
(
y
−
y
^
)
2
Loss(y,\hat{y})=\frac{1}{2}(y-\hat{y})^2
Loss(y,y^)=21(y−y^)2
目标:找到合适的w1,w2,b使误差最小。
利用梯度下降来找找到合适的权重和偏置:
w
1
→
w
1
−
α
∂
L
∂
w
1
w
2
→
w
2
−
α
∂
L
∂
w
2
b
→
b
−
α
∂
L
∂
b
w_1 \rightarrow w_1-\alpha \frac{\partial L}{\partial w_1} \\ w_2 \rightarrow w_2-\alpha \frac{\partial L}{\partial w_2} \\ b \rightarrow b-\alpha \frac{\partial L}{\partial b}
w1→w1−α∂w1∂Lw2→w2−α∂w2∂Lb→b−α∂b∂L
∂ L ∂ w 1 = ∂ L ∂ y ^ ⋅ ∂ y ^ ∂ w 1 ∂ L ∂ w 2 = ∂ L ∂ y ^ ⋅ ∂ y ^ ∂ w 2 ∂ L ∂ b = ∂ L ∂ y ^ ⋅ ∂ y ^ ∂ b ∂ L ∂ y ^ = − ( y − y ^ ) ∂ y ^ ∂ b = 1 ∂ y ^ ∂ w 2 = x 2 ∂ y ^ ∂ w 1 = x 1 \frac{\partial L}{\partial w_1}= \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial w_1} \\ \frac{\partial L}{\partial w_2}= \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial w_2}\\ \frac{\partial L}{\partial b}= \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial b} \\ \frac{\partial L}{\partial \hat{y}}=-(y-\hat{y}) \hspace{2em}\frac{\partial \hat{y}}{\partial b}=1\hspace{2em}\frac{\partial \hat{y}}{\partial w_2}=x_2\hspace{2em}\frac{\partial \hat{y}}{\partial w_1}=x_1 ∂w1∂L=∂y^∂L⋅∂w1∂y^∂w2∂L=∂y^∂L⋅∂w2∂y^∂b∂L=∂y^∂L⋅∂b∂y^∂y^∂L=−(y−y^)∂b∂y^=1∂w2∂y^=x2∂w1∂y^=x1
重复计算后找到最优解。
感知器分类(calssification with a perceptron)
激活函数(Activation Function) :用于决定神经元是否应该激活(即输出信号)。
Sigmpoid函数(Sigmoid Function)
输出一个介于0到1之间的值,不包含0和1。
σ
(
z
)
=
1
1
+
e
−
z
\sigma(z)=\frac{1}{1+e^{-z}}
σ(z)=1+e−z1
导数推导过程:
σ
(
z
)
=
1
1
+
e
−
z
=
(
1
+
e
−
z
)
−
1
\sigma(z) = \frac{1}{1+e^{-z}}=(1+e^{-z})^{-1}
σ(z)=1+e−z1=(1+e−z)−1
链式法则将e的-z次方复合函数,拆解为z的x次方和 f(x) =-z:
d
d
z
σ
(
z
)
=
(
−
1
(
1
+
e
−
z
)
−
1
−
1
)
⋅
(
0
+
(
e
−
z
⋅
−
1
)
)
=
(
−
1
)
(
1
+
e
−
z
)
−
2
(
−
1
)
(
e
−
z
)
=
(
1
+
e
−
z
)
−
2
(
e
−
z
)
=
e
−
z
(
1
+
e
−
z
)
2
\frac{d}{dz}\sigma(z)= (-1(1+e^{-z})^{-1-1})\cdot(0+ (e^{-z}\cdot-1))\\ =(-1)(1+e^{-z})^{-2}(-1)(e^{-z})\hspace{0.5em}\\ =(1+e^{-z})^{-2}(e^{-z})\hspace{4.5em}\\ =\frac{e^{-z}}{(1+e^{-z})^2}\hspace{6.9em}
dzdσ(z)=(−1(1+e−z)−1−1)⋅(0+(e−z⋅−1))=(−1)(1+e−z)−2(−1)(e−z)=(1+e−z)−2(e−z)=(1+e−z)2e−z
e
−
z
(
1
+
e
−
z
)
2
=
1
+
e
−
z
−
1
(
1
+
e
−
z
)
2
=
1
+
e
−
z
(
1
+
e
−
z
)
2
−
1
(
1
+
e
−
z
)
2
=
1
(
1
+
e
−
z
)
−
(
1
(
1
+
e
−
z
)
1
(
1
+
e
−
z
)
)
=
1
(
1
+
e
−
z
)
(
1
−
1
(
1
+
e
−
z
)
)
\frac{e^{-z}}{(1+e^{-z})^{2}}= \frac{1+e^{-z}-1}{(1+e^{-z})^{2}}= \frac{1+e^{-z}}{(1+e^{-z})^{2}}-\frac{1}{(1+e^{-z})^2}\\ =\frac{1}{(1+e^{-z})}-(\frac{1}{(1+e^{-z})} \frac{1}{(1+e^{-z})})\\ = \frac{1}{(1+e^{-z})}(1-\frac{1}{(1+e^{-z})})
(1+e−z)2e−z=(1+e−z)21+e−z−1=(1+e−z)21+e−z−(1+e−z)21=(1+e−z)1−((1+e−z)1(1+e−z)1)=(1+e−z)1(1−(1+e−z)1)
总结:
d
d
z
σ
(
z
)
=
σ
(
z
)
(
1
−
σ
(
z
)
)
\frac{d}{dz}\sigma(z)=\sigma(z)(1-\sigma(z))
dzdσ(z)=σ(z)(1−σ(z))
分类函数:
y
^
=
σ
(
w
1
x
1
+
w
2
x
2
+
b
)
\hat{y}=\sigma (w_1x_1+w_2x_2+b)
y^=σ(w1x1+w2x2+b)
对数损失函数:
L
(
y
,
y
^
)
=
−
y
l
n
(
y
^
)
−
(
1
−
y
)
l
n
(
1
−
y
^
)
L(y,\hat y)=-yln(\hat y)-(1-y)ln(1-\hat y)
L(y,y^)=−yln(y^)−(1−y)ln(1−y^)
感知机分类的梯度下降
预测函数:
y
^
=
σ
(
w
1
x
1
+
w
2
x
2
+
b
)
\hat y=\sigma (w_1x_1+w_2x_2+b)
y^=σ(w1x1+w2x2+b)
损失函数:
L
(
y
,
y
^
)
=
−
y
l
n
(
y
^
)
−
(
1
−
y
)
l
n
(
1
−
y
^
)
L(y,\hat y)=-yln(\hat y)-(1-y)ln(1-\hat y)
L(y,y^)=−yln(y^)−(1−y)ln(1−y^)
目标:找到最佳的权重 w1,w2,b使误差函数最小化
计算:
∂
L
∂
w
1
=
∂
L
∂
y
^
⋅
∂
y
^
∂
w
1
∂
L
∂
w
2
=
∂
L
∂
y
^
⋅
∂
y
^
∂
w
2
∂
L
∂
b
=
∂
L
∂
y
^
⋅
∂
y
^
∂
b
\frac{\partial L}{\partial w_1}= \frac{\partial L}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial w_1}\\ \frac{\partial L}{\partial w_2}= \frac{\partial L}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial w_2}\\ \frac{\partial L}{\partial b}= \frac{\partial L}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial b}
∂w1∂L=∂y^∂L⋅∂w1∂y^∂w2∂L=∂y^∂L⋅∂w2∂y^∂b∂L=∂y^∂L⋅∂b∂y^
分别计算4个偏导数:
∂
L
∂
y
^
=
−
y
l
n
(
y
^
)
−
(
1
−
y
)
l
n
(
1
−
y
^
)
=
−
y
y
^
−
(
1
−
y
)
(
1
1
−
y
^
)
(
0
−
1
)
=
−
y
y
^
+
1
−
y
1
−
y
^
=
−
(
y
−
y
^
)
y
^
(
1
−
y
^
)
\frac{\partial L}{\partial\hat y}=-yln(\hat y)-(1-y)ln(1-\hat y)\\ =\frac{-y}{\hat y}-(1-y)(\frac{1}{1-\hat y})(0-1)\\ =\frac{-y}{\hat y}+\frac{1-y}{1-\hat y} \\ =\frac{-(y-\hat y)}{\hat y(1-\hat y)}
∂y^∂L=−yln(y^)−(1−y)ln(1−y^)=y^−y−(1−y)(1−y^1)(0−1)=y^−y+1−y^1−y=y^(1−y^)−(y−y^)
∂
y
^
∂
b
=
σ
(
w
1
x
1
+
w
2
x
2
+
b
)
=
y
^
(
1
−
y
^
)
\frac{\partial \hat y}{\partial b}=\sigma (w_1x_1+w_2x_2+b)\\ =\hat y(1-\hat y)
∂b∂y^=σ(w1x1+w2x2+b)=y^(1−y^)
∂
y
^
∂
w
1
=
σ
(
w
1
x
1
+
w
2
x
2
+
b
)
=
y
^
(
1
−
y
^
)
x
1
\frac{\partial \hat y}{\partial w_1}=\sigma (w_1x_1+w_2x_2+b)\\ =\hat y(1-\hat y)x1
∂w1∂y^=σ(w1x1+w2x2+b)=y^(1−y^)x1
∂
y
^
∂
w
2
=
σ
(
w
1
x
1
+
w
2
x
2
+
b
)
=
y
^
(
1
−
y
^
)
x
2
\frac{\partial \hat y}{\partial w_2}=\sigma (w_1x_1+w_2x_2+b)\\ =\hat y(1-\hat y)x_2
∂w2∂y^=σ(w1x1+w2x2+b)=y^(1−y^)x2
∂
L
∂
w
1
=
∂
L
∂
y
^
⋅
∂
y
^
∂
w
1
=
−
(
y
−
y
^
)
y
^
(
1
−
y
^
)
⋅
y
^
(
1
−
y
^
)
x
1
=
−
(
y
−
y
^
)
x
1
\frac{\partial L}{\partial w_1}= \frac{\partial L}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial w_1}=\frac{-(y-\hat y)}{\hat y(1-\hat y)}\cdot\hat y(1-\hat y)x1=-(y-\hat y)x_1
∂w1∂L=∂y^∂L⋅∂w1∂y^=y^(1−y^)−(y−y^)⋅y^(1−y^)x1=−(y−y^)x1
∂
L
∂
w
2
=
∂
L
∂
y
^
⋅
∂
y
^
∂
w
2
=
−
(
y
−
y
^
)
y
^
(
1
−
y
^
)
⋅
y
^
(
1
−
y
^
)
x
2
=
−
(
y
−
y
^
)
x
2
\frac{\partial L}{\partial w_2}= \frac{\partial L}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial w_2}=\frac{-(y-\hat y)}{\hat y(1-\hat y)}\cdot\hat y(1-\hat y)x2=-(y-\hat y)x_2
∂w2∂L=∂y^∂L⋅∂w2∂y^=y^(1−y^)−(y−y^)⋅y^(1−y^)x2=−(y−y^)x2
∂
L
∂
b
=
∂
L
∂
y
^
⋅
∂
y
^
∂
b
=
−
(
y
−
y
^
)
y
^
(
1
−
y
^
)
⋅
y
^
(
1
−
y
^
)
=
−
(
y
−
y
^
)
\frac{\partial L}{\partial b}= \frac{\partial L}{\partial \hat y} \cdot \frac{\partial \hat y}{\partial b}=\frac{-(y-\hat y)}{\hat y(1-\hat y)}\cdot\hat y(1-\hat y)=-(y-\hat y)
∂b∂L=∂y^∂L⋅∂b∂y^=y^(1−y^)−(y−y^)⋅y^(1−y^)=−(y−y^)
进行梯度下降
v
a
l
u
e
n
e
w
=
v
a
l
u
e
o
l
d
−
α
[
−
x
1
(
y
−
y
^
)
−
x
2
(
y
−
y
^
)
−
(
y
−
y
^
)
]
value_{new} =value_{old}-\alpha\begin{bmatrix}-x_1(y-\hat y)\\-x_2(y-\hat y) \\-(y-\hat y) \end{bmatrix}
valuenew=valueold−α
−x1(y−y^)−x2(y−y^)−(y−y^)
神经网络分类(neural network)
例如求变量w11的对于损失函数L(y,y’)的偏导数:
需要反向推导:
L
(
y
,
y
^
)
依赖于
y
^
依赖于
y
^
=
σ
(
z
)依赖于
z
依赖于
a
1
=
σ
(
z
1
)
依赖于
z
1
L(y,\hat y)依赖于\hat y 依赖于\hat y=\sigma (z)依赖于z依赖于a_1=\sigma (z_1)依赖于z_1
L(y,y^)依赖于y^依赖于y^=σ(z)依赖于z依赖于a1=σ(z1)依赖于z1
∂
L
∂
w
11
=
∂
z
1
∂
w
11
⋅
∂
a
1
∂
z
1
⋅
∂
z
∂
a
1
⋅
∂
y
^
∂
z
⋅
∂
L
∂
y
^
⋅
\frac{\partial L}{\partial w_{11}}= \frac{\partial z_1}{\partial w_{11}} \cdot \frac{\partial a_1}{\partial z_1} \cdot\frac{\partial z}{\partial a_1} \cdot\frac{\partial \hat y}{\partial z} \cdot\frac{\partial L}{\partial \hat y} \cdot
∂w11∂L=∂w11∂z1⋅∂z1∂a1⋅∂a1∂z⋅∂z∂y^⋅∂y^∂L⋅.
∂
L
∂
w
11
=
x
1
⋅
a
1
(
1
−
a
1
)
⋅
w
1
⋅
y
^
(
1
−
y
^
)
⋅
−
(
y
−
y
^
)
y
^
(
1
−
y
^
)
=
−
1
x
1
a
1
w
1
(
1
−
a
1
)
(
y
−
y
^
)
\frac{\partial L}{\partial w_{11}}=x_1 \cdot a_1(1-a_1)\cdot w_1\cdot\hat y(1-\hat y)\cdot \frac{-(y-\hat y)}{\hat y(1-\hat y)}\\ =-1x_1a_1w_1(1-a_1)(y-\hat y)
∂w11∂L=x1⋅a1(1−a1)⋅w1⋅y^(1−y^)⋅y^(1−y^)−(y−y^)=−1x1a1w1(1−a1)(y−y^)
第一层的计算
第二层
反向传播(back propagation)
反向传播减少计算。训练神经网络的方法。
牛顿法的梯度下降(newton’s method)
原理:求函数f(x)最小值,找到多个导数f’(x)等于0得的点,其中有最大值和最小值。要找到f’(x)=0的点,利用牛顿法
x
k
−
1
=
x
k
−
f
(
x
k
)
f
′
(
x
k
)
求函数
g
(
x
)
最小值:
x
k
−
1
=
x
k
−
g
′
(
x
k
)
(
g
′
(
x
k
)
′
)
x_{k-1}=x_k-\frac{f(x_k)}{f'(x_k)}\\ 求函数g(x) 最小值:x_{k-1}=x_k-\frac{g'(x_k)}{(g'(x_k)')}
xk−1=xk−f′(xk)f(xk)求函数g(x)最小值:xk−1=xk−(g′(xk)′)g′(xk)
二阶导数(second derivative)
莱布尼兹(leibniz):
d
2
f
(
x
)
d
x
2
=
d
d
x
(
d
f
(
x
)
d
x
)
\frac{d^2f(x)}{dx^2}=\frac{d}{dx}\left ( \frac{df(x)}{dx}\right )
dx2d2f(x)=dxd(dxdf(x))
拉格朗日(lagrange):
f
′
′
(
x
)
f''(x)
f′′(x)
理解二阶导数,车辆行驶来举例:
x
是距离
(
d
i
s
t
a
n
c
e
)
,
t
是行驶的时间
(
t
i
m
e
)
,
v
速度
(
v
e
l
o
c
i
t
y
)
d
x
d
t
a
加速度
(
a
c
c
e
l
e
r
a
t
i
o
n
)
d
v
d
t
=
d
2
x
d
t
2
加速度为正速度随时间增加,加速度为负速度随时间减少,
加速度为
0
表示速度恒定不变
理解二阶导数,车辆行驶来举例:x是距离(distance),t是行驶的时间(time),v速度(velocity)\frac{dx}{dt} \\ a加速度(acceleration) \frac{dv}{dt}=\frac{d^2x}{dt^2} 加速度为正速度随时间增加,加速度为负速度随时间减少,\\ 加速度为0表示速度恒定不变
理解二阶导数,车辆行驶来举例:x是距离(distance),t是行驶的时间(time),v速度(velocity)dtdxa加速度(acceleration)dtdv=dt2d2x加速度为正速度随时间增加,加速度为负速度随时间减少,加速度为0表示速度恒定不变
二阶导数给出了曲线偏离直线的程度,也就是曲率(curvature)。曲率大于0 =f’’ (0)>0开口向上(concave up or convex),曲率小于0f=‘’(0)<0,开口向下(concave down)
海森矩阵(hessian)
通过计算海森矩阵的特征值来判断,函数的是concave up or concave down,可以知道是最大值还是最小值。
一个鞍点(saddle point)类似马鞍形状.双变量情况下一正一负,或者等于0。
牛顿法双变量(newton’s method for two variables)
x
k
+
1
=
x
k
−
g
′
(
x
)
(
g
′
(
x
)
)
′
=
x
k
−
(
g
′
(
x
)
)
′
−
1
g
′
(
x
)
[
x
k
+
1
y
k
+
1
]
=
[
x
k
y
k
]
−
H
−
1
∇
f
(
x
k
,
y
k
)
x_{k+1}=x_k-\frac{g'(x)}{(g'(x))'}=x_k-(g'(x))'^{-1}g'(x)\\ \begin{bmatrix}x_{k+1}\\y_{k+1} \end{bmatrix}=\begin{bmatrix}x_k\\y_k \end{bmatrix}-H^{-1}\nabla f(x_k,y_k)
xk+1=xk−(g′(x))′g′(x)=xk−(g′(x))′−1g′(x)[xk+1yk+1]=[xkyk]−H−1∇f(xk,yk)