Machine Learning :
监督学习(Supervised learning):利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程
无监督学习(Unsupervised learning):根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。典型算法:聚簇算法(clustering algorithm)。
模型描述:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zs96UZWY-1604065801736)(C:\Users\chen\Desktop\ry项目文档\屏幕截图 2020-10-26 160109.png)]
由训练集,进入模型,模型给出‘预测函数’预测y值
代价函数(cost function)|损失函数(loss function):如何把最有可能的直线和我们的数据相拟合
通过使损失函数最小化来使函数值接近真实值,损失函数一般形态:
m
i
n
θ
J
(
θ
,
X
)
=
m
i
n
θ
1
2
m
∑
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
梯
度
下
降
:
min_\theta J(\theta,X)= min_\theta \frac{1}{2m} \sum_{1}^{m}{(h_\theta(x^{(i)})-y^{(i)})^2}梯度下降:
minθJ(θ,X)=minθ2m11∑m(hθ(x(i))−y(i))2梯度下降:
梯度下降:
θ
j
=
θ
j
−
α
∂
J
(
θ
,
X
)
∂
θ
j
(
α
代
表
一
步
的
步
长
l
e
a
r
n
i
n
g
r
a
t
e
)
\theta_j=\theta_j- \alpha \frac{\partial J(\theta,X)}{\partial \theta_j}(\alpha代表一步的步长 \quad learning \quad rate)
θj=θj−α∂θj∂J(θ,X)(α代表一步的步长learningrate)
同步更新(simultaneous update):
即
先
计
算
∂
J
(
θ
,
X
)
∂
θ
j
的
部
分
,
然
后
再
同
时
更
新
θ
j
(
j
=
1
,
2
,
3
,
4....
)
即先计算\frac{\partial J(\theta,X)}{\partial \theta_j}的部分,然后再同时更新\theta_j(j=1,2,3,4....)
即先计算∂θj∂J(θ,X)的部分,然后再同时更新θj(j=1,2,3,4....)
多元函数梯度下降:
h
θ
(
X
)
=
θ
T
X
h_{\theta}(X)=\theta^TX
hθ(X)=θTX
θ = [ θ 0 , θ 1 , θ 2 , . . . . ] X = [ x 0 , x 1 , x 2 , x 3 , . . . ] ( x 0 = 1 ) \theta=[\theta_0,\theta_1,\theta_2,....] \quad X=[{x_0,x_1,x_2,x_3,...}](x_0=1) θ=[θ0,θ1,θ2,....]X=[x0,x1,x2,x3,...](x0=1)
θ j = θ j − α ∂ J ( θ , X ) ∂ θ j \theta_j=\theta_j- \alpha \frac{\partial J(\theta,X)}{\partial \theta_j} θj=θj−α∂θj∂J(θ,X)
θ 0 = θ 0 − 1 m ∑ 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 \theta_0=\theta_0- \frac{1}{m} \sum_{1}^{m} (h_\theta(x^{(i)})-y^{(i)})x_0 θ0=θ0−m11∑m(hθ(x(i))−y(i))x0
特征缩放:如果你的特征取值范围相近,你的梯度下降会更快,迭代次数会减少。
一般来说通过梯度下降法求解的模型需要进行特征缩放。
-
均值归一化:将数值范围缩放到 [-1, 1] 区间里,且数据的均值变为0
x ′ = x − a v e r a g e ( x ) m a x ( x ) − m i n ( x ) x^{'} = \frac {x-average(x)}{max(x)-min(x)} x′=max(x)−min(x)x−average(x) -
最大最小值归一化(min-max normalization):将数值范围缩放到 [0, 1] 区间里
x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x^{'} = \frac {x-min(x)}{max(x)-min(x)} x′=max(x)−min(x)x−min(x) -
标准化 / z值归一化(standardization / z-score normalization):将数值缩放到0附近,且数据的分布变为均值为0,标准差为1的标准正态分布(先减去均值来对特征进行 中心化 mean centering 处理,再除以标准差进行缩放)
x ′ = x − x ‾ σ ( σ = ∑ i = 1 n ( x i − x ‾ ) 2 n ) x^{'} = \frac {x-\overline{x}}{\sigma}\quad\quad (\sigma=\sqrt{\frac{\sum_{i=1}^{n}(x_i-\overline{x})^2}{n}}) x′=σx−x(σ=n∑i=1n(xi−x)2 )
**学习率(learning rate):**如果学习率太大的话,损失函数可能不会下降,或者呈现周期性,学习率太小的话会导致下降速度过小 --尝试一系列alpha 值画出迭代次数和损失函数的关系
正规方程:
θ
=
(
X
T
X
)
−
1
X
T
y
\theta=(X^TX)^-1 X^Ty
θ=(XTX)−1XTy
θ为参数向量,y为输出,X为输入向量组成的矩阵。当特征比较少时,特征方程的计算还可以接受。
不推荐使用线性回归来预测分类:
-
通常来说对数据集使用线性回归,预测结果不理想
-
以0,1分类来说,线性回归输出的值会远大于1,或者小于0
Logistic回归
损失函数:
J
(
θ
,
X
)
=
1
m
∑
1
m
C
o
s
t
(
h
θ
(
x
)
,
y
)
J(\theta,X)=\frac {1}{m} \sum^{m}_{1}{Cost(h_\theta(x),y)}
J(θ,X)=m11∑mCost(hθ(x),y)
h θ ( x ) = 1 1 + e − θ T X h_\theta(x)=\frac{1}{1+e^{-{\theta^TX}}} hθ(x)=1+e−θTX1
C o s t ( h θ ( x ) , y ) = − ( y ( l o g ( h θ ( x ) ) ) + ( 1 − y ) l o g ( 1 − h θ ( x ) ) ) Cost(h_\theta(x),y)=-(y(log(h_\theta(x)))+(1-y)log(1-h_\theta(x))) Cost(hθ(x),y)=−(y(log(hθ(x)))+(1−y)log(1−hθ(x)))
梯度下降:
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
\theta_j:=\theta_j-\alpha \frac{\partial}{\partial \theta_j}J(\theta)
θj:=θj−α∂θj∂J(θ)
θ j : = θ j − α ∑ 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j:=\theta_j-\alpha \sum^{m}_{1}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θj:=θj−α1∑m(hθ(x(i))−y(i))xj(i)
h θ ( x ) = 1 1 + e − θ T X h_\theta(x)=\frac{1}{1+e^{-{\theta^TX}}} hθ(x)=1+e−θTX1
仍需要手动选择学习率,如果使用其它高级的优化算法计算损失函数(例L-BFGS),可以不用选择学习率。cost函数的意义在于,让其关于参数的关系为一个凸函数,能够找到最低值,而不是局部最低。
过拟合问题:如果选择参数很多但是训练数据过少时,你的模型可能会在训练集上表现很好,但是无法泛化到其它数据上。
欠拟合问题:选择参数过少,模型无法较好的完成任务。
过拟合解决办法:
-
去掉一些参数(人工,或者模型选择算法来选择保留的参数)
-
参数正则化 主要就是为损失函数添加一些惩罚项,来使θ变得很小,得到一个比较平滑的曲线。
J ( θ , X ) = 1 m ∑ 1 m C o s t ( h θ ( x ) , y ) + λ 2 m ∑ j = 1 n θ j J(\theta,X)=\frac {1}{m}\sum^{m}_{1}{Cost(h_\theta(x),y)}+\frac{\lambda}{2m}\sum_{j=1}^{n}\theta_j J(θ,X)=m11∑mCost(hθ(x),y)+2mλj=1∑nθj
如果系数λ过大的话,θ会趋近与0,这个时候相当于拟合一条直线,变成了欠拟合。(如何去选择正则化系数λ)