1.什么是机器学习?
1.Tom Mitchell(定义):计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,测定P在T上的表现因经验E而提高。
2.机器学习分为监督学习和无监督学习。
2.监督学习和无监督学习
1.监督学习大致分为回归问题和分类问题。回归问题的目标是预测出连续的目标输出,分类问题则是预测出离散的目标输出。
2.监督学习给定的数据有标签。而无监督学习不给定数据标签,需要机器自己学习数据的内在联系进行分类。
3.模型的构建
监督学习是需要根据数据原有的标签对模型预测的值进行比较找出差距,并根据差距调整模型参数,然后在根据新的参数计算模型预测值与标签的差距,再根据差距调整模型参数,通过这种不断迭代的过程,使我们的模型的预测值与真实值接近,模型参数达到最优。因此如何构建一个合适的模型能很好的表达数据与标签的关系是及其重要的。
3_1.回归模型构建
假设函数:
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_{\theta }(x)=\theta _{0}+\theta _{1}x
hθ(x)=θ0+θ1x
代价函数:
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J\left ( \theta _{0} ,\theta _{1} \right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( h_{\theta }\left ( x^{(i)} \right )-y^{(i)} \right )^{2}
J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
优化目标:
m
i
n
J
(
θ
0
,
θ
1
)
minJ\left (\theta _{0}, \theta _{1} \right )
minJ(θ0,θ1)
参数更新(梯度下降法):
θ
j
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
\theta _{j}=\theta _{j}-\alpha \frac{\partial }{\partial \theta _{j}}J(\theta _{0},\theta _{1})
θj=θj−α∂θj∂J(θ0,θ1)
3_2.逻辑回归模型的构建
假设函数:
h
θ
(
x
)
=
g
(
θ
T
x
)
g
(
z
)
=
1
1
+
e
−
z
h_{\theta }(x)=g(\theta ^{T}x)\\[2mm]g(z)=\frac{1}{1+e^{-z}}
hθ(x)=g(θTx)g(z)=1+e−z1
代价函数:
C
o
s
t
(
h
θ
,
y
)
=
{
−
l
o
g
(
h
θ
(
x
)
)
i
f
y
=
1
−
l
o
g
(
1
−
h
θ
(
x
)
)
i
f
y
=
0
整
理
得
:
J
(
θ
)
=
1
m
[
∑
i
=
1
m
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
Cost(h_{\theta },y)=\left\{\begin{matrix} \ -log (h_{\theta }(x)) \qquad if \ y=1\\[2mm] \ -log(1-h_{\theta }(x)) \ if\ y=0 \end{matrix}\right.\\[2mm] 整理得:J(\theta )=\frac{1}{m}[\sum_{i=1}^{m}y^{(i)}log\ h_{\theta }(x^{(i)})+(1-y^{(i)})log(1-h_{\theta }(x^{(i)}))]
Cost(hθ,y)={ −log(hθ(x))if y=1 −log(1−hθ(x)) if y=0整理得:J(θ)=m1[i=1∑my(i)log hθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
优化目标:
m
i
n
J
(
θ
)
minJ\left (\theta \right )
minJ(θ)
参数更新(梯度下降法):
θ
j
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
\theta _{j}=\theta _{j}-\alpha \frac{\partial }{\partial \theta _{j}}J(\theta )
θj=θj−α∂θj∂J(θ)
回归与逻辑回归(本质是分类)的参数更新函数相同但h(x)的表达式已经发生了变化。
4.梯度下降法中的技巧
当我们特征(数据)从数值上差距较大,会使我们的特征分布在一个窄而狭长的范围,在进行梯度下降时,梯度下降的学习率在任一特征维度都是相同的,那么当学习率适合其中一个特征维度时,必然不适用于另一个。因此我们需要在训练前对特征进行标准化,使我们的特征在不同维度上分布在相似范围时学习率对任意维度都适用。
5.正规方程
梯度下降法需要不断迭代,消耗计算机资源,而正规方程可以通过对代价函数的求导直接解出各参数的最优解。参数的解为:
θ
=
(
X
T
X
)
−
1
X
T
y
\theta =(X^{T}X)^{-1}X^{T}y
θ=(XTX)−1XTy
由公式可知解正规方程需要特征矩阵的转置乘以特征矩阵这一项可逆且计算量小。当该项不可逆时,该矩阵为奇异矩阵,我们可以通过以下方法可能得到可逆的新矩阵:
1.是否有相关性很强的特征,如果有只保留一个。
2.数量上是否存在过多特征,如果有删除一部分无用特征。
已知一个矩阵的转置计算量随矩阵维度的增加呈指数级增长,此时的矩阵维度是N×N,其中N是特征数。因此,当特征数N=10000时,正规方程将不再适用。
6.过拟合
当数据过少而构建的模型过于复杂时模型会在训练集上出现过拟合,而在测试集上表现很差,训练出来的模型泛化能力很弱,我们需要避免这种情况。
通常解决方法有两种但本质是相同的,一种是去除冗余的特征,二是正则化。正则化就是对最小化经验误差函数上加约束,这样的约束可以解释为先验知识。约束有引导作用,在优化误差函数的时候倾向于选择满足约束的梯度减少的方向,使最终的解倾向于符合先验知识。
7.正则化
7_1.回归问题的正则化
梯度下降法的正则化公式
正则化后的代价函数如下:
J
(
θ
0
,
θ
1
)
=
1
2
m
[
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
∑
j
=
1
m
θ
j
2
]
J\left ( \theta _{0} ,\theta _{1} \right )=\frac{1}{2m}\left [ \sum_{i=1}^{m}\left ( h_{\theta }\left ( x^{(i)} \right )-y^{(i)} \right )^{2}+\lambda \sum_{j=1}^{m} \theta _{j}^{2}\right ]
J(θ0,θ1)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑mθj2]
参数更新(梯度下降法):
{
θ
0
=
θ
0
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
i
)
x
0
(
i
)
θ
j
=
θ
j
(
1
−
α
λ
m
)
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
i
)
x
j
(
i
)
\left\{\begin{matrix} \theta _{0}=\theta _{0}-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{i})x_{0}^{(i)}\\[2mm]\theta _{j}=\theta _{j}(1-\alpha \frac{\lambda }{m})-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{i})x_{j}^{(i)} \end{matrix}\right.
⎩⎨⎧θ0=θ0−αm1∑i=1m(hθ(x(i))−yi)x0(i)θj=θj(1−αmλ)−αm1∑i=1m(hθ(x(i))−yi)xj(i)
正规方程的正则化公式
θ
=
(
X
T
X
+
λ
A
)
−
1
X
T
y
\theta =(X^{T}X+\lambda A )^{-1}X^{T}y
θ=(XTX+λA)−1XTy
其中A是除第一个值为0其余对角线值为1的维度为N+1的矩阵,并且已知当该方程中的项一定是可逆矩阵。
7_2.分类问题的正则化
分类问题正则化后的各类函数与上面回归问题的梯度下降法的公式符号相同故不再重复。