从零开始的机器学习1-基础知识及线性回归
线性模型及多分类
承接上一篇,线性模型的部分内容已经讲过了,这篇主要讲剩下的内容,对应周志华《机器学习》第三章的大部分。
一些问题
-
1、
最小二乘的原则是什么?写出多元线性回归的参数估计(写出推导过程)。
-
最小二乘法指基于
均方误差最小化来进行模型求解的方法,故最小二乘的原则是:均方误差最小。
2、
“对数几率”回归和“线性”回归的区别和联系。
-
对数几率回归是考虑到
二分类问题引入的一种方法。
理想状态下是 阶跃函数完成二分类,然而它不可导,可以用 对数几率函数代替,也就是令:
y = 1 1 + e − z y =\frac{1}{1+e^{-z}} y=1+e−z1
其中 z z z是线性模型的预测值,这是一种 Sigmoid函数。上式可以变化为:
ln y 1 − y = z = w T x + b \ln\frac{y}{1-y} =z=\bm{w}^T\bm{x}+b ln1−yy=z=wTx+b
可以将上式中的 y y y视为 x \bm{x} x为 正例的几率, 1 − y 1-y 1−y视为 x \bm{x} x为 反例的几率,两者的比值成为 几率,对几率取对数便得到 对数几率。实际上,上式对应的模型是用 线性回归的结果逼近真实标记的对数几率,所以称为 对数几率回归,它实际是一种 分类学习方法。
联系:它们都是用的 广义线性回归的模型。
区别: 对数几率回归用来完成二分类任务, 线性回归完成回归任务。
3、
是否可以用最小二乘法估计对数几率回归的参数?
-
可以
对数几率回归的模型为:
f ( x ) = 1 1 + e − ( w T x + b ) f(x) =\frac{1}{1+e^{-(\bm{w}^T\bm{x}+b)}} f(x)=1+e−(wTx+b)1
使模型求出的 f ( x ) f(x) f(x)与真实分类 y t y_t yt之间的均方误差最小,求解出的模型参数 w \bm{w} w和 b b b是可行的。
4、
如何用极大似然估计来构建一个关于对数几率回归参数的高阶可导凸函数?
-
令
y
=
p
(
f
(
x
)
=
1
∣
x
)
y = p(f(x)=1|\bm{x})
y=p(f(x)=1∣x),则
1
−
y
=
p
(
f
(
x
)
=
0
∣
x
)
1-y = p(f(x)=0|\bm{x})
1−y=p(f(x)=0∣x)。由于
对数几率回归的模型为:
f ( x ) = 1 1 + e − ( w T x + b ) f(x) =\frac{1}{1+e^{-(\bm{w}^T\bm{x}+b)}} f(x)=1+e−(wTx+b)1
可以写成:
ln y 1 − y = p ( f ( x ) = 1 ∣ x ) p ( f ( x ) = 0 ∣ x ) = w T x + b \ln\frac{y}{1-y} =\frac{p(f(x)=1|\bm{x})}{p(f(x)=0|\bm{x})}=\bm{w}^T\bm{x}+b ln1−yy=p(f(x)=0∣x)p(f(x)=1∣x)=wTx+b
则可以有:
(1) p ( f ( x ) = 1 ∣ x ) = e w T x + b 1 + e w T x + b , p ( f ( x ) = 0 ∣ x ) = 1 1 + e w T x + b p(f(x)=1|\bm{x})=\frac{e^{\bm{w}^T\bm{x}+b}}{1+e^{\bm{w}^T\bm{x}+b}}, p(f(x)=0|\bm{x})=\frac{1}{1+e^{\bm{w}^T\bm{x}+b}}\tag{1} p(f(x)=1∣x)=1+ewTx+bewTx+b,p(f(x)=0∣x)=1+ewTx+b1(1)
用 极大似然法估计 w \bm{w} w和 b b b,对给定的数据集 { ( x i , y i ) } \{(\bm{x}_i,y_i)\} {(xi,yi)},其最大化 对数似然为:
ℓ ( w , b ) = ∑ i = 1 m ln p ( y i ∣ x ; w , b ) \ell(\bm{w},b)=\sum^m_{i=1}\ln p(y_i|\bm{x};\bm{w},b) ℓ(w,b)=i=1∑mlnp(yi∣x;w,b)
即令每个样本属于其真实标记的概率越大越好。为了简化,可以令 w ^ = ( w , b ) , x ^ = ( x , 1 ) \hat{\bm{w}}=(\bm{w},b),\hat{\bm{x}}=(\bm{x},1) w^=(w,b),x^=(x,1),则有 w T x + b = w ^ T x ^ \bm{w}^T\bm{x}+b = \hat{\bm{w}}^T\hat{\bm{x}} wTx+b=w^Tx^,则:
p ( y i ∣ x i ; w , b ) = p ( y i ∣ w ^ ; x ^ ) = y i p 1 ( w ^ ; x ^ ) + ( 1 − y ) p 0 ( w ^ ; x ^ ) p(y_i|\bm{x}_i;\bm{w},b)=p(y_i|\hat{\bm{w}};\hat{\bm{x}})= y_ip_1(\hat{\bm{w}};\hat{\bm{x}})+(1-y)p_0(\hat{\bm{w}};\hat{\bm{x}}) p(yi∣xi;w,b)=p(yi∣w^;x^)=yip1(w^;x^)+(1−y)p0(w^;x^)
其中, p 1 ( w ^ ; x ^ ) = p ( y = 1 ∣ w ^ ; x ^ ) , p 0 ( w ^ ; x ^ ) = p ( y = 0 ∣ w ^ ; x ^ ) p_1(\hat{\bm{w}};\hat{\bm{x}})=p(y=1|\hat{\bm{w}};\hat{\bm{x}}),p_0(\hat{\bm{w}};\hat{\bm{x}})=p(y=0|\hat{\bm{w}};\hat{\bm{x}}) p1(w^;x^)=p(y=1∣w^;x^),p0(w^;x^)=p(y=0∣w^;x^).
最大化 对数似然 ℓ ( w , b ) \ell(\bm{w},b) ℓ(w,b)可以转化为 最小化:
ℓ ( w ^ ) = ∑ i = 1 m ( − y i w ^ T x ^ + ln ( 1 + e w ^ T x ^ ) ) \ell(\hat{\bm{w}})=\sum^m_{i=1}(-y_i\hat{\bm{w}}^T\hat{\bm{x}}+\ln (1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})) ℓ(w^)=i=1∑m(−yiw^Tx^+ln(1+ew^Tx^))
即转化为求解:
w ^ ∗ = arg min w ^ ℓ ( w ^ ) \hat{\bm{w}}^* =\arg\min\limits_{\hat{\bm{w}}}\ell(\hat{\bm{w}}) w^∗=argw^minℓ(w^)
这是一个 凸优化问题。
5、
线性判别分析可以用来做什么?简述线性判别分析的思想,并说出一种实现其思想的方法
-
线性判别分析是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。
线性判别分析的基本思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点中心尽可能远离。更简单的概括为一句话,就是“投影后类内方差最小,类间方差最大”。
6、
简述OvO、OvR 、ECOC策略是怎样将多分类任务拆为若干个二分类任务的?各有何优缺点?
-
一对一 (OvO):OvO将N个类别两两配对,从而产生N(N-1)/2个二分类任务,例如OvO将为区分类别
C
i
C_i
Ci和
C
j
C_j
Cj训练一个分类器,该分类器把D中的
C
i
C_i
Ci类样例作为正例,
C
j
C_j
Cj类样例作为反例。在测试阶段,新样本将同时提交给所有分类器,于是我们将得到N(N-1)/2个分类结果,最终结果可通过投票产生:即把被预测得最多的类别作为最终分类结果。
OvO的优点是,在类别很多时,训练时间要比OvR少。缺点是,分类器个数多。
一对其余(OvR):OvR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器。在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
OvR的优点是,分类器个数少,存储开销和测试时间比OvO少。缺点是,类别很多时,训练时间长。
多对多 (MvM):MvM是每次将若干个类作为正类,若干个其他类作为反类。显然,OvO和OvR是MvM的特例。MvM的正、反类构造必须有特殊的设计,不能随意选取。这里我们介绍一种最常用的MvM技术"纠错输出码" (Error CorrectingOutputCodes,简称ECOC)
ECOC是将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性。ECOC工作过程主要分为两步:
编码:对N个类别做M次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集。这样一共产生M个训练集,可训练出M个分类器。
解码:M 个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
7、
什么是类别不平衡,会带来什么麻烦?怎么缓解类别不平衡?
-
类别不均衡:是指在分类学习算法中,不同类别样本的比例相差悬殊,它会对算法的学习过程造成重大的干扰。比如在一个二分类的问题上,有1000个样本,其中5个正样本,995个负样本,在这种情况下,算法只需将所有的样本预测为负样本,那么它的精度也可以达到99.5%,虽然结果的精度很高,但它依然没有价值,因为这样的学习算法不能预测出正样本。这里我们可以知道不均衡问题会导致样本较少那一类的高错分率,即较少一类的样本会有较大的比例会被预测成样本数量较多的那一类。
欠采样,减少数量较多那一类样本的数量,使得正负样本比例均衡。
过采样,增加数量较少那一类样本的数量,使得正负样本比例均衡。
不处理样本,样本分类阈值移动。
梳理
广义线性回归
广义线性回归指令线性模型预测值逼近
y
y
y的衍生物的回归,一般形式为:
y
=
g
−
1
(
w
T
x
+
b
)
y=g^{-1}(\bm{w}^T\bm{x}+b)
y=g−1(wTx+b)
其中
g
(
⋅
)
g(\cdot)
g(⋅)为联系函数,当联系函数为对数函数,即
g
(
⋅
)
=
ln
(
⋅
)
g(\cdot)=\ln(\cdot)
g(⋅)=ln(⋅)时,就是对数线性回归,即:
ln
(
y
)
=
w
T
x
+
b
\ln(y)=\bm{w}^T\bm{x}+b
ln(y)=wTx+b
此时模型实际上是试图让
e
w
T
x
+
b
e^{\bm{w}^T\bm{x}+b}
ewTx+b逼近
y
y
y。
对数几率极大似然推导
西瓜书没有详细说明下面这个过程
ℓ
(
w
^
)
=
∑
i
=
1
m
ln
p
(
y
i
∣
x
;
w
^
)
⇒
ℓ
(
w
^
)
=
∑
i
=
1
m
(
y
i
w
^
T
x
^
−
ln
(
1
+
e
w
^
T
x
^
)
)
\ell(\hat{\bm{w}})=\sum^m_{i=1}\ln p(y_i|\bm{x};\hat{\bm{w}})\Rightarrow \ell(\hat{\bm{w}})=\sum^m_{i=1}(y_i\hat{\bm{w}}^T\hat{\bm{x}}-\ln (1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}))
ℓ(w^)=i=1∑mlnp(yi∣x;w^)⇒ℓ(w^)=i=1∑m(yiw^Tx^−ln(1+ew^Tx^))
目前收集到两种方法推导
第一种:参考
∵
p
1
(
w
^
;
x
^
)
=
e
w
^
T
x
^
1
+
e
w
^
T
x
^
,
p
0
(
w
^
;
x
^
)
=
1
1
+
e
w
^
T
x
^
a
n
d
p
(
w
^
;
x
^
)
=
y
i
p
1
(
w
^
;
x
^
)
+
(
1
−
y
i
)
p
0
(
w
^
;
x
^
)
⇒
ℓ
(
w
^
)
=
∑
i
=
1
m
ln
[
y
i
p
1
(
w
^
;
x
^
)
+
(
1
−
y
i
)
p
0
(
w
^
;
x
^
)
]
⇒
ℓ
(
w
^
)
=
∑
i
=
1
m
ln
y
i
e
w
^
T
x
^
−
y
i
+
1
1
+
e
w
^
T
x
^
⇒
ℓ
(
w
^
)
=
∑
i
=
1
m
[
ln
(
y
i
e
w
^
T
x
^
−
y
i
+
1
]
)
−
ln
(
1
+
e
w
^
T
x
^
)
]
\because p_1(\hat{\bm{w}};\hat{\bm{x}})=\frac{e^{\hat{\bm{w}}^T\hat{\bm{x}}}}{1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}}, p_0(\hat{\bm{w}};\hat{\bm{x}})=\frac{1}{1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}}\\ and \ p(\hat{\bm{w}};\hat{\bm{x}})=y_ip_1(\hat{\bm{w}};\hat{\bm{x}})+(1-y_i)p_0(\hat{\bm{w}};\hat{\bm{x}})\\ \Rightarrow \ell(\hat{\bm{w}})=\sum^m_{i=1}\ln [y_ip_1(\hat{\bm{w}};\hat{\bm{x}})+(1-y_i)p_0(\hat{\bm{w}};\hat{\bm{x}})]\\ \Rightarrow \ell(\hat{\bm{w}})=\sum^m_{i=1}\ln \frac{y_ie^{\hat{\bm{w}}^T\hat{\bm{x}}}-y_i+1}{1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}}\\ \Rightarrow \ell(\hat{\bm{w}})=\sum^m_{i=1}[\ln (y_ie^{\hat{\bm{w}}^T\hat{\bm{x}}}-y_i+1])-\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})]\\
∵p1(w^;x^)=1+ew^Tx^ew^Tx^,p0(w^;x^)=1+ew^Tx^1and p(w^;x^)=yip1(w^;x^)+(1−yi)p0(w^;x^)⇒ℓ(w^)=i=1∑mln[yip1(w^;x^)+(1−yi)p0(w^;x^)]⇒ℓ(w^)=i=1∑mln1+ew^Tx^yiew^Tx^−yi+1⇒ℓ(w^)=i=1∑m[ln(yiew^Tx^−yi+1])−ln(1+ew^Tx^)]
我们将上式分两种情况讨论:1)
y
i
=
1
y_i=1
yi=1;2)
y
i
=
0
y_i=0
yi=0。则有:
①
ℓ
(
w
^
)
=
∑
i
=
1
m
[
ln
(
e
w
^
T
x
^
)
−
ln
(
1
+
e
w
^
T
x
^
)
]
⇒
ℓ
(
w
^
)
=
∑
i
=
1
m
[
w
^
T
x
^
−
ln
(
1
+
e
w
^
T
x
^
)
]
②
ℓ
(
w
^
)
=
∑
i
=
1
m
[
−
ln
(
1
+
e
w
^
T
x
^
)
]
① \ell(\hat{\bm{w}}) = \sum^m_{i=1}[\ln(e^{\hat{\bm{w}}^T\hat{\bm{x}}})-\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})]\\ \Rightarrow\ell(\hat{\bm{w}}) = \sum^m_{i=1}[\hat{\bm{w}}^T\hat{\bm{x}}-\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})]\\ ② \ell(\hat{\bm{w}}) = \sum^m_{i=1}[-\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})]\\
①ℓ(w^)=i=1∑m[ln(ew^Tx^)−ln(1+ew^Tx^)]⇒ℓ(w^)=i=1∑m[w^Tx^−ln(1+ew^Tx^)]②ℓ(w^)=i=1∑m[−ln(1+ew^Tx^)]
显然式①和②有相同部分
−
ln
(
1
+
e
w
^
T
x
^
)
-\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})
−ln(1+ew^Tx^),需将式①中的
w
^
T
x
^
\hat{\bm{w}}^T\hat{\bm{x}}
w^Tx^整合起来,该部分仅在
y
i
=
1
y_i=1
yi=1时存在,故可以在其前面乘一个
y
i
y_i
yi,可推得:
ℓ
(
w
^
)
=
∑
i
=
1
m
(
y
i
w
^
T
x
^
−
ln
(
1
+
e
w
^
T
x
^
)
)
\ell(\hat{\bm{w}})=\sum^m_{i=1}(y_i\hat{\bm{w}}^T\hat{\bm{x}}-\ln (1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}))
ℓ(w^)=i=1∑m(yiw^Tx^−ln(1+ew^Tx^))
转化为最小化形式:
ℓ
(
w
^
)
=
∑
i
=
1
m
(
−
y
i
w
^
T
x
^
+
ln
(
1
+
e
w
^
T
x
^
)
)
\ell(\hat{\bm{w}})=\sum^m_{i=1}(-y_i\hat{\bm{w}}^T\hat{\bm{x}}+\ln (1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}))
ℓ(w^)=i=1∑m(−yiw^Tx^+ln(1+ew^Tx^))
第二种:参考
令
p
(
w
^
;
x
^
)
=
[
p
1
(
w
^
;
x
^
)
]
y
i
[
p
0
(
w
^
;
x
^
)
]
(
1
−
y
i
)
p(\hat{\bm{w}};\hat{\bm{x}})=[p_1(\hat{\bm{w}};\hat{\bm{x}})]^{y_i} [p_0(\hat{\bm{w}};\hat{\bm{x}})]^{(1-y_i)}
p(w^;x^)=[p1(w^;x^)]yi[p0(w^;x^)](1−yi)
则有:
ℓ
(
w
^
)
=
∑
i
=
1
m
ln
(
[
p
1
(
w
^
;
x
^
)
]
y
i
[
p
0
(
w
^
;
x
^
)
]
(
1
−
y
i
)
)
\ell(\hat{\bm{w}}) = \sum^m_{i=1}\ln([p_1(\hat{\bm{w}};\hat{\bm{x}})]^{y_i} [p_0(\hat{\bm{w}};\hat{\bm{x}})]^{(1-y_i)})
ℓ(w^)=i=1∑mln([p1(w^;x^)]yi[p0(w^;x^)](1−yi))
推得:
ℓ
(
w
^
)
=
∑
i
=
1
m
[
y
i
ln
e
w
^
T
x
^
1
+
e
w
^
T
x
^
+
(
1
−
y
i
)
ln
1
1
+
e
w
^
T
x
^
]
\ell(\hat{\bm{w}}) = \sum^m_{i=1}[y_i\ln\frac{e^{\hat{\bm{w}}^T\hat{\bm{x}}}}{1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}}+(1-y_i)\ln \frac{1}{1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}}]
ℓ(w^)=i=1∑m[yiln1+ew^Tx^ew^Tx^+(1−yi)ln1+ew^Tx^1]
⇒
\Rightarrow
⇒
ℓ
(
w
^
)
=
∑
i
=
1
m
(
y
i
w
^
T
x
^
−
y
i
ln
(
1
+
e
w
^
T
x
^
)
+
y
i
ln
(
1
+
e
w
^
T
x
^
)
−
ln
(
1
+
e
w
^
T
x
^
)
)
\ell(\hat{\bm{w}}) = \sum^m_{i=1}(y_i\hat{\bm{w}}^T\hat{\bm{x}}-y_i\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})+y_i\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}})-\ln(1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}))
ℓ(w^)=i=1∑m(yiw^Tx^−yiln(1+ew^Tx^)+yiln(1+ew^Tx^)−ln(1+ew^Tx^))
⇒
\Rightarrow
⇒
ℓ
(
w
^
)
=
∑
i
=
1
m
(
y
i
w
^
T
x
^
−
ln
(
1
+
e
w
^
T
x
^
)
)
\ell(\hat{\bm{w}})=\sum^m_{i=1}(y_i\hat{\bm{w}}^T\hat{\bm{x}}-\ln (1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}))
ℓ(w^)=i=1∑m(yiw^Tx^−ln(1+ew^Tx^))
转化为最小化形式:
ℓ
(
w
^
)
=
∑
i
=
1
m
(
−
y
i
w
^
T
x
^
+
ln
(
1
+
e
w
^
T
x
^
)
)
\ell(\hat{\bm{w}})=\sum^m_{i=1}(-y_i\hat{\bm{w}}^T\hat{\bm{x}}+\ln (1+e^{\hat{\bm{w}}^T\hat{\bm{x}}}))
ℓ(w^)=i=1∑m(−yiw^Tx^+ln(1+ew^Tx^))