前言
吴恩达机器学习第五第六部分
一、逻辑回归
1.介绍
分类问题,希望分类器的输出值在 0 和 1 之间,因此,假设函数需要满足预测值要在 0 和 1 之间。
回归模型的假设是:
h
θ
(
x
)
=
g
(
θ
T
X
)
h_\theta(x)=g(\theta^TX)
hθ(x)=g(θTX)
g 代表逻辑函数(logistic function), 是一个常用的逻辑函数为 S 形函数(Sigmoid function),公式为:
g
(
z
)
=
1
1
+
e
−
z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e−z1
其图像为
结合起来逻辑回归的假设为:
h
θ
(
x
)
=
1
1
+
e
θ
T
X
h_\theta(x)=\frac{1}{1+e^{\theta^TX}}
hθ(x)=1+eθTX1
我们根据概率大小来进行分类,当概率大于0.5则必然是概率大的一方,所以我们预测当
h
θ
(
x
)
>
0.5
h_\theta(x)>0.5
hθ(x)>0.5时
y
=
1
y=1
y=1,当
h
θ
(
x
)
<
0.5
h_\theta(x)<0.5
hθ(x)<0.5时
y
=
0
y=0
y=0
所以当
θ
T
X
>
0
\theta^TX>0
θTX>0 时预测
y
=
1
y=1
y=1, 当
θ
T
X
<
0
\theta^TX<0
θTX<0预测
y
=
0
y=0
y=0
2.代价函数
我们可以得出
P
(
y
=
1
∣
x
)
=
h
θ
(
x
)
P(y=1|x)=h_\theta(x)
P(y=1∣x)=hθ(x)
P
(
y
=
0
∣
x
)
=
1
−
h
θ
(
x
)
P(y=0|x)=1-h_\theta(x)
P(y=0∣x)=1−hθ(x)我们可以求得其最大似然函数:
L
(
θ
)
=
∏
h
θ
(
x
i
)
y
i
(
1
−
h
θ
(
x
i
)
)
1
−
y
i
L(\theta)=\prod h_\theta(x^i)^{y_i}(1-h_\theta(x^i))^{1-y_i}
L(θ)=∏hθ(xi)yi(1−hθ(xi))1−yi取对数可得:
L
(
θ
)
=
∑
(
y
i
h
θ
(
x
i
)
+
(
1
−
y
i
)
(
1
−
h
θ
(
x
i
)
)
L(\theta)=\sum (y_ih_\theta(x^i)+(1-y_i)(1-h_\theta(x^i))
L(θ)=∑(yihθ(xi)+(1−yi)(1−hθ(xi))由于在逻辑回归中最大似然函数和最小损失函数是等价的,所以我们可得损失函数为:
J
(
θ
)
=
−
1
n
∑
(
y
i
h
θ
(
x
i
)
+
(
1
−
y
i
)
(
1
−
h
θ
(
x
i
)
)
J(\theta)=-\frac{1}{n}\sum (y_ih_\theta(x^i)+(1-y_i)(1-h_\theta(x^i))
J(θ)=−n1∑(yihθ(xi)+(1−yi)(1−hθ(xi))
3.梯度下降
梯度下降的公式为: θ j = θ j − α ∂ ∂ θ j J ( θ ) \theta_j=\theta_j-\alpha \frac{\partial}{\partial \theta_j}J(\theta) θj=θj−α∂θj∂J(θ)经推导可得: θ j = θ j − α 1 n ∑ ( h θ ( x i ) − y i ) x j i \theta_j=\theta_j-\alpha \frac{1}{n}\sum(h_\theta(x^i)-y_i)x^i_j θj=θj−αn1∑(hθ(xi)−yi)xji
二、过拟合问题
所谓过拟合(over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。
解决过拟合问题有如下方案:
1. 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如 PCA, LDA),缺点是丢弃特征的同时,也丢弃了这些相应的信息;
2.正则化。 保留所有的特征,但是减少参数的大小(magnitude),当我们有大量的特征,每个特征都对目标值有一点贡献的时候,比较有效。
3.还有一个解决方式就是增加数据集, 因为过拟合导致的原因就过度拟合测试数据集, 那么增加数据集就很大程度提高了泛化性了.
1.正则化
高次项导致了过拟合的产生。
正则化的基本方法:对高次项添加惩罚值,让高次项的系数接近于0。
假如我们有非常多的特征,我们并不知道其中哪些特征我们要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的能防止过拟合问题的假设: J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x i ) − y i ) 2 + λ ∑ j = 1 n θ j ] J(\theta)=\frac{1}{2m}[\sum_{i=1}^{m}(h_\theta(x^i)-y^i)^2+\lambda \sum_{j=1}^n\theta_j] J(θ)=2m1[i=1∑m(hθ(xi)−yi)2+λj=1∑nθj]其中 λ \lambda λ又称为正则化参数(Regularization Parameter)。 注:根据惯例,我们不对 θ 0 \theta_0 θ0进行惩罚。
2.正则化与线性回归
线性回归函数的正则化如上节所写
其中梯度下降递推式为:
θ
j
=
θ
j
(
1
−
α
λ
m
)
−
α
1
m
∑
(
h
θ
(
x
i
)
−
y
i
)
x
j
i
\theta_j=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha \frac{1}{m}\sum(h_\theta(x^i)-y_i)x^i_j
θj=θj(1−αmλ)−αm1∑(hθ(xi)−yi)xji
其中正规方程为:
θ
=
(
X
T
X
+
λ
A
)
−
1
X
T
y
\theta=(X^TX+ \lambda A)^{-1}X^Ty
θ=(XTX+λA)−1XTy
其中A为将n阶单位矩阵最左上角的数替换为0(这个阵我打不出来,呜呜呜)
3.正则化与逻辑回归
逻辑回归的正则化可有下面的一种
J
(
θ
)
=
−
1
m
∑
(
y
i
h
θ
(
x
i
)
+
(
1
−
y
i
)
(
1
−
h
θ
(
x
i
)
)
+
1
2
m
∑
j
=
1
n
θ
j
2
J(\theta)=-\frac{1}{m}\sum (y_ih_\theta(x^i)+(1-y_i)(1-h_\theta(x^i))+\frac{1}{2m}\sum_{j=1}^n\theta^2_j
J(θ)=−m1∑(yihθ(xi)+(1−yi)(1−hθ(xi))+2m1j=1∑nθj2
常用的正则化方式还有L1正则化和L2正则化,详细请看https://zhuanlan.zhihu.com/p/74874291
[1]吴恩达机器学习视频
[2]https://mo.zju.edu.cn/workspace/5f6038a891b86ce2f6e7a418/app
[3]https://zhuanlan.zhihu.com/p/74874291