赞
踩
那么机器学习到底是什么东东呢?是造一个机器人来学习吗,非也。按照李宏毅老师的说法,机器学习相当于找一个函数(looking for a Function)。
ML的一般步骤:
step1: Model(a set of functions)
第一步就是找个模型,也就是找一个函数/算法模板。线性回归的模型呢,就是一个线性的函数啦: y = wx+b (w和x为向量)
step2: Goodness of functionon(Loss function)
确定了模型的构造方法,下一步就是确定模型的具体参数。这一步通常会构建损失函数来衡量模型的好坏,线性回归用到的损失函数是均方误差,也就是经典的“最小二乘法”
step3: Pick the ‘best’ function
得到了损失函数,接着就是怎么求解了。也许你会直接背出公式,但对于计算机来说,采用梯度下降的方法可能更简单一些.
中心极限定理:
设随机变量X1,X2,…Xn,…独立同分布,并且具有有限的数学期望和方差:E(Xi)=μ,D(Xi)=σ^2(i=1,2…),则对任意x,分布函数
F
n
(
x
)
=
P
{
∑
i
=
1
n
−
n
μ
n
σ
≤
x
}
F_{n}(x)=P\left\{\frac{\sum_{i=1}^{n}-n \mu}{\sqrt{n} \sigma} \leq x\right\}
Fn(x)=P{n
σ∑i=1n−nμ≤x}
满足:
lim
n
→
∞
F
n
(
x
)
=
lim
n
→
∞
{
∑
i
=
1
n
X
i
−
n
μ
n
σ
≤
x
}
=
1
2
π
∫
−
∞
x
e
−
t
2
2
d
t
=
Φ
(
x
)
\lim _{n \rightarrow \infty} F_{n}(x)=\lim _{n \rightarrow \infty}\left\{\frac{\sum_{i=1}^{n} X_{i}-n \mu}{\sqrt{n} \sigma} \leq x\right\}=\frac{1}{\sqrt{2} \pi} \int_{-\infty}^{x} e^{-\frac{t^{2}}{2}} d t=\Phi(x)
n→∞limFn(x)=n→∞lim{n
σ∑i=1nXi−nμ≤x}=2
π1∫−∞xe−2t2dt=Φ(x)
正态分布的概率密度函数:
f
(
x
)
=
1
2
π
σ
e
−
(
x
−
μ
)
2
2
σ
2
f(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^{2}}{2 \sigma^{2}}}
f(x)=2π
σ1e−2σ2(x−μ)2
记作:
X
∼
N
(
μ
,
σ
2
)
X \sim N\left(\mu, \sigma^{2}\right)
X∼N(μ,σ2)
当
μ
=
0
,
σ
2
=
1
\mu =0,\sigma^{2}=1
μ=0,σ2=1 时, 记作 :
X
∼
N
(
0
,
1
)
X \sim N\left(0, 1\right)
X∼N(0,1) 为标准正态分布函数 :
Φ
(
x
)
\Phi(x)
Φ(x)
极大似然估计:
极大似然估计,只是一种概率论在统计学的应用,它是参数估计的方法之一。说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。最大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。
求极大似然估计步骤:
1、写出似然函数(连续性):
L
(
θ
∣
x
1
,
x
2
,
⋯
 
,
x
n
)
=
f
(
x
1
,
x
2
,
⋯
 
,
x
n
∣
θ
)
=
∏
f
(
x
i
∣
θ
)
L\left(\theta | x_{1}, x_{2}, \cdots, x_{n}\right)=f\left(x_{1}, x_{2}, \cdots, x_{n} | \theta\right)=\prod f\left(x_{i} | \theta\right)
L(θ∣x1,x2,⋯,xn)=f(x1,x2,⋯,xn∣θ)=∏f(xi∣θ)
2、取对数
ln
L
(
θ
∣
x
1
,
…
,
x
n
)
=
∑
i
=
1
n
ln
f
(
x
i
∣
θ
)
\ln L\left(\theta | x_{1}, \ldots, x_{n}\right)=\sum_{i=1}^{n} \ln f\left(x_{i} | \theta\right)
lnL(θ∣x1,…,xn)=i=1∑nlnf(xi∣θ)
3、求出使得对数似然函数取最大值的参数的值
让 ∂ ln L ( θ ∣ x 1 , … , x n ) ∂ θ j = 0 , j = 1 , 2 , … , k \frac{\partial \ln L(\theta| x_{1}, \ldots, x_{n})}{\partial \theta_{j}}=0, j=1,2, \ldots, k ∂θj∂lnL(θ∣x1,…,xn)=0,j=1,2,…,k解得: θ \theta θ
线性回归模型可以表示为:
1、
y
=
h
θ
(
x
)
+
ϵ
y=h_{\theta}(x)+\epsilon
y=hθ(x)+ϵ
2、
ϵ
(
i
)
∼
N
(
0
,
δ
2
)
,
ϵ
(
i
)
\epsilon^{(i)} \sim N\left(0, \delta^{2}\right), \epsilon^{(i)}
ϵ(i)∼N(0,δ2),ϵ(i)服从正态分布
即y由模型拟合以及随机扰动构成,而由中心极限定理,我们假设随机扰动ϵ服从均值为0方差为
δ
2
\delta^{2}
δ2的正态分布。
由于中心极限定理和大数定理:
p
(
y
(
i
)
∣
y
(
i
)
;
θ
)
=
1
2
π
σ
exp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
p\left(y^{(i)} | y^{(i)} ; \theta\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}{2 \sigma^{2}}\right)
p(y(i)∣y(i);θ)=2π
σ1exp(−2σ2(y(i)−θTx(i))2)
1、求得到极大似然函数:
L
(
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
y
(
i
)
;
θ
)
=
∏
i
=
1
m
1
2
π
σ
exp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
2、取对数
log
L
(
θ
)
=
log
∏
i
=
1
m
1
2
π
σ
exp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
=
∑
i
=
1
m
log
1
2
π
σ
exp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
=
m
log
1
2
π
σ
−
1
σ
2
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\log L(\theta)=\log \prod_{i=1}^{m} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}{2 \sigma^{2}}\right) =\sum_{i=1}^{m} \log \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}{2 \sigma^{2}}\right) =m \log \frac{1}{\sqrt{2 \pi} \sigma}-\frac{1}{\sigma^{2}} \frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
logL(θ)=logi=1∏m2π
σ1exp(−2σ2(y(i)−θTx(i))2)=i=1∑mlog2π
σ1exp(−2σ2(y(i)−θTx(i))2)=mlog2π
σ1−σ2121i=1∑m(y(i)−θTx(i))2
3、取最大值:
要取得上述函数的最大值,只能使得:
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
21i=1∑m(y(i)−θTx(i))2
所以我们得到线性Loss function
J
(
θ
)
=
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
J(θ)=21i=1∑m(y(i)−θTx(i))2
为了消除数据量的影响,改进线性损失函数为:
J
(
θ
)
=
1
2
m
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
J(θ)=2m1i=1∑m(y(i)−θTx(i))2
如果损失函数是凸函数(convex)的,梯度下降算法就一定能达到全局最优解。
损失函数在梯度下降的过程中,可能会下降到局部最优点,局部最优点为极小值,而并非全局最优的最小值
如果损失函数为凸函数时,梯度下降能达到全局最优
导数:
f
′
(
x
0
)
=
lim
Δ
x
→
0
Δ
y
Δ
x
=
lim
Δ
x
→
0
f
(
x
0
+
Δ
x
)
−
f
(
x
0
)
Δ
x
f^{\prime}\left(x_{0}\right)=\lim _{\Delta x \rightarrow 0} \frac{\Delta y}{\Delta x}=\lim _{\Delta x \rightarrow 0} \frac{f\left(x_{0}+\Delta x\right)-f\left(x_{0}\right)}{\Delta x}
f′(x0)=Δx→0limΔxΔy=Δx→0limΔxf(x0+Δx)−f(x0)
泰勒展开:
f
(
x
)
=
f
(
x
0
)
0
!
+
f
′
(
x
0
)
1
!
(
x
−
x
0
)
+
f
′
′
(
x
0
)
2
!
(
x
−
x
0
)
2
+
…
+
f
(
n
)
(
x
0
)
n
!
(
x
−
x
0
)
n
+
R
n
(
x
)
f(x)=\frac{f\left(x_{0}\right)}{0 !}+\frac{f^{\prime}\left(x_{0}\right)}{1 !}\left(x-x_{0}\right)+\frac{f^{\prime \prime}\left(x_{0}\right)}{2 !}\left(x-x_{0}\right)^{2}+\ldots+\frac{f^{(n)}\left(x_{0}\right)}{n !}\left(x-x_{0}\right)^{n}+R_{n}(x)
f(x)=0!f(x0)+1!f′(x0)(x−x0)+2!f′′(x0)(x−x0)2+…+n!f(n)(x0)(x−x0)n+Rn(x)
常用的拉格朗日余项:
R
n
(
x
)
=
f
(
n
+
1
)
[
x
0
+
θ
(
x
−
x
0
)
]
(
x
−
x
0
)
n
+
1
(
n
+
1
)
!
R_{n}(x)=f^{(n+1)}\left[x_{0}+\theta\left(x-x_{0}\right)\right] \frac{\left(x-x_{0}\right)^{n+1}}{(n+1) !}
Rn(x)=f(n+1)[x0+θ(x−x0)](n+1)!(x−x0)n+1
梯度下降公式的推导:
假设函数:
h
θ
(
x
0
)
=
θ
0
+
θ
1
x
i
,
i
=
1
,
⋯
 
,
n
h_{{\theta}}\left(x_{0}\right)=\theta_{0}+\theta_{1} x_{i}, i=1, \cdots, n
hθ(x0)=θ0+θ1xi,i=1,⋯,n
代价函数:
J
(
θ
)
=
1
2
n
∑
i
=
1
n
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
J(\theta)=\frac{1}{2n} \sum_{i=1}^{n}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
J(θ)=2n1∑i=1n(y(i)−θTx(i))2
梯度下降公式:
θ
0
:
=
θ
0
−
α
⋅
∂
∂
θ
0
J
(
θ
0
,
θ
1
)
\theta_{0} :=\theta_{0}-\alpha \cdot \frac{\partial}{\partial \theta_{0}} J\left(\theta_{0}, \theta_{1}\right)
θ0:=θ0−α⋅∂θ0∂J(θ0,θ1)
θ
1
:
=
θ
1
−
α
⋅
∂
∂
θ
1
⋅
J
(
θ
0
,
θ
)
\theta_{1} :=\theta_{1}-\alpha\cdot \frac{\partial}{\partial \theta_{1}} \cdot J\left(\theta_{0}, \theta\right)
θ1:=θ1−α⋅∂θ1∂⋅J(θ0,θ)
梯度下降推导公式:
θ
0
=
θ
0
−
α
⋅
1
n
∑
i
=
1
n
(
h
0
(
x
i
)
−
y
i
)
\theta_{0}=\theta_{0}- \alpha\cdot \frac{1}{n} \sum_{i=1}^{n}\left(h_{0}\left(x_{i}\right)-y_{i}\right)
θ0=θ0−α⋅n1i=1∑n(h0(xi)−yi)
θ
1
=
θ
1
−
α
⋅
1
n
∑
i
=
1
n
x
i
(
h
g
(
x
2
)
−
y
i
)
\theta_{1}=\theta_{1}-\alpha \cdot \frac{1}{n} \sum_{i=1}^{n} x_{i}\left(h_{g}\left(x_{2}\right)-y_{i}\right)
θ1=θ1−α⋅n1i=1∑nxi(hg(x2)−yi)
def batchGradientDescent(x, y, theta, alpha, m, maxIterations):
xTrains = x.transpose()
for i in range(0, maxIterations):
hypothesis = np.dot(x, theta)
loss = hypothesis - y
# print loss
gradient = np.dot(xTrains, loss) / m
theta = theta - alpha * gradient
return theta
L0范数表示向量中非零元素的个数,也就是如果我们使用L0范数,即希望矩阵的大部分元素都是0. (矩阵是稀疏的)所以可以用于ML中做稀疏编码,特征选择。通过最小化L0范数,来寻找最少最优的稀疏特征项。但不幸的是,L0范数的最优化问题是一个NP,hard问题,而且理论上有证明,L1范数是L0范数的最优凸近似,因此通常使用L1范数来代替。
L1范数表示向量中每个元素绝对值的和,
∥
x
∥
1
=
∑
i
=
1
n
∣
x
i
∣
\|x\|_{1}=\sum_{i=1}^{n}\left|x_{i}\right|
∥x∥1=i=1∑n∣xi∣
L2范数表示欧氏距离:
∥
x
∥
2
=
∑
i
=
1
n
x
i
2
\|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}
∥x∥2=i=1∑nxi2
正则化公式:
min
f
e
F
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
\min _{f e \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f)
feFminN1i=1∑NL(yi,f(xi))+λJ(f)
其中,第1项是经验风险,第2项是正则化项,
λ
\lambda
λ≥0为调整两者之间关系的系数
1范数:
L
(
w
)
=
1
N
∑
i
=
1
N
(
f
(
x
i
;
w
)
−
y
i
)
2
+
λ
∥
w
∥
1
L(w)=\frac{1}{N} \sum_{i=1}^{N}\left(f\left(x_{i} ; w\right)-y_{i}\right)^{2}+\lambda\|w\|_{1}
L(w)=N1i=1∑N(f(xi;w)−yi)2+λ∥w∥1
2范数:
L
(
w
)
=
1
N
∑
i
=
1
N
(
f
(
x
i
;
w
)
−
y
i
)
2
+
λ
2
∥
w
∥
2
L(w)=\frac{1}{N} \sum_{i=1}^{N}\left(f\left(x_{i} ; w\right)-y_{i}\right)^{2}+\frac{\lambda}{2}\|w\|_{2}
L(w)=N1i=1∑N(f(xi;w)−yi)2+2λ∥w∥2
L0范数的最优化问题是一个NP,hard问题,而且理论上有证明,L1范数是L0范数的最优凸近似,因此通常使用L1范数来代替。
因为w通常是一个高维参数矢量,w几乎涵盖了所有参数,b只是众多参数的中的一个,这样加上b来做regularization的作用不大,也可以加,只是作用不大
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。