关于具体机器学习算法的学习掌握均可从这三要素出发
示例 x=(x1;x2;. . . ;xd)有d个属性描述,线性模型(linear model) 尝试学得一个通过属性线性组合来进行预测的函数,即 f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b f({\bf x})=w_1x_1+w_2x_2+...+w_dx_d+b f(x)=w1x1+w2x2+...+wdxd+b
其向量形式为 f ( x ) = w T x + b ( w = ( w 1 ; w 2 ; . . . ; w d ) ) f({\bf x)=w^Tx }+b \qquad ({\bf w}=(w_1;w_2;...;w_d)) f(x)=wTx+b(w=(w1;w2;...;wd))
参数w和b通过学习确定后,模型即确定。
线性模型优点与意义:
给定数据集D={(x1,y1),(x2,y2),… ,(xm,ym)},其中xi=(xi1;xi2;… ;xid)。“线性回归”(linear regression)试图学得一个线性模型来尽可能准确地预测实值输出标记,即 f ( x i ) = w T x i + b , 使得 f ( x i ) ≈ y i f(x_i)={\bf w^Tx_i}+b,使得f({\bf x_i})\approx y_i f(xi)=wTxi+b,使得f(xi)≈yi
当属性个数为1时,即一元线性回归;属性个数多个时,即多元线性回归。
使用 均方误差(square loss) 来衡量f(x)与y之间的差别,采用让均方误差最小化的策略来选择模型。
均方误差 E = ∑ i = 1 m ( y i − f ( x i ) ) 2 均方误差\quad E=\sum_{i=1}^{m}(y_i-f({\bf x_i}))^2 均方误差E=i=1∑m(yi−f(xi))2
E = { E ( w , b ) = ∑ i = 1 m ( y i − w x i − b ) 一元线性回归 E w ^ = ( y − X w ^ ) T ( y − X w ^ ) 多元线性回归 E=\begin{cases}E_{(w,b)}=\sum_{i=1}^{m}(y_i-wx_i-b) & \text{ 一元线性回归} \\ E_{\hat{w}}\quad=\bf (y-X\hat {w})^T(y-X\hat{w})& \text{ 多元线性回归} \end{cases} E={E(w,b)=∑i=1m(yi−wxi−b)Ew^=(y−Xw^)T(y−Xw^) 一元线性回归 多元线性回归
其中 w ^ = ( w ; b ) {\bf \hat{w}}=({\bf w};b) w^=(w;b),具体细节可翻阅西瓜书。
下图所示为分别使用最小二乘法和极大似然估计法来推导出线性回归模型的损失函数的过程。
求解参数使得误差最小化的过程,称为 “参数估计”(parameter estimation) 。
1.对于一元线性回归,将 E ( w , b ) E_{(w,b)} E(w,b)分别对w和b求导,可得:
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) \frac{\partial E_{(w,b)}}{\partial w}=2\left (w\sum_{i=1}^{m}{x_i}^2-\sum_{i=1}^{m}(y_i-b)x_i\right ) ∂w∂E(w,b)=2(wi=1∑mxi2−i=1∑m(yi−b)xi)
∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) \frac{\partial E_{(w,b)}}{\partial b}=2\left (mb-\sum_{i=1}^{m}(y_i-wx_i)\right ) ∂b∂E(w,b)=2(mb−i=1∑m(yi−wxi))
令一阶导数为零可得到w和b最优解的闭式解:
w = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w=\frac{\sum_{i=1}^{m}y_i(x_i-\bar{x})}{\sum_{i=1}^{m}{x_i}^2-\frac{1}{m}(\sum_{i=1}^{m}x_i)^2} w=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−xˉ)
b = 1 m ∑ i = 1 m ( y i − w x i ) b=\frac{1}{m}\sum_{i=1}^{m}(y_i-wx_i) b=m1i=1∑m(yi−wxi)
2.对于多元线性回归,将 E w ^ E_{\hat{w}} Ew^分别对w和b求导,可得:
∂ E w ^ ∂ w ^ = 2 X T ( X ω ^ − y ) \frac{\partial E_{\hat{w}}}{\partial \hat{w}}=2{\bf X^T(X\hat{\omega}-y)} ∂w^∂Ew^=2XT(Xω^−y)
在满足 X X T \bf XX^T XXT为满秩矩阵或正定矩阵时,令上式为0可得 w ^ \hat{w} w^ 的闭式解:
w ^ ∗ = ( X X T ) − 1 X T y {\hat{w}}^*=\bf(XX^T)^{-1}X^Ty w^∗=(XXT)−1XTy
补充:
对数线性回归(log-linear regression):
l n y = ω T x + b lny={\bf {\omega}^Tx}+b lny=ωTx+b
其实际上是在试图让 e ω T x + b e^{{\bf {\omega}^Tx}+b} eωTx+b逼近y,实质上已经是在求取输入空间到输出空间的非线性函数映射。
更一般地,考虑单调可微函数 g ( ⋅ ) g(\cdot) g(⋅),令 y = g − 1 ( ω T x + b ) y=g^{-1}(\bf {\omega}^Tx+b) y=g−1(ωTx+b),称其为广义线性模型(generalized linear model)
在线性模型的基础上加上一个映射函数实现分类。
在对数几率回归中使用的映射函数即对数几率函数(logistic function)—— y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+e−z1,是一种“Sigmoid”函数,其图形如下所示:
用线性回归模型的预测结果去逼近真是标记的对数几率,将该模型称为 “对数几率回归”(logistic regression)。
使用极大似然法来估计参数w和b。
步骤一:确定概率 质量/密度 函数
便于讨论,令 β = ( w ; b ) , x ^ = ( x ; 1 ) , p 1 ( x ^ ; β ) = p ( y = 1 ∣ x ^ ; β ) , p 0 ( x ^ ; β ) = p ( y = 0 ∣ x ^ ; β ) = 1 − p 1 ( x ^ ; β ) \beta=({\bf w};b),\hat{x}=({\bf x};1),p_1(\hat{x};\beta)=p(y=1|{\bf \hat{x};\beta}),p_0(\hat{x};\beta)=p(y=0|{\bf \hat{x};\beta})=1-p_1(\hat{x};\beta) β=(w;b),x^=(x;1),p1(x^;β)=p(y=1∣x^;β),p0(x^;β)=p(y=0∣x^;β)=1−p1(x^;β)
p ( y i ∣ x i ; w , b ) = y i p 1 ( x i ^ ; β ) + ( 1 − y i ) p 0 ( x i ^ ; β ) p(y_i|{\bf x_i;w},b)=y_ip_1({\bf \hat{x_i};\beta })+(1-y_i)p_0({\bf \hat{x_i};\beta }) p(yi∣xi;w,b)=yip1(xi^;β)+(1−yi)p0(xi^;β)
步骤二:写出极大似然函数
给定数据集 ( x i , y i ) i = 1 m {({\bf x_i},y_i)}^{m}_{i=1} (xi,yi)i=1m,对率回归模型最大化“对数似然”(likelihood)为:
ℓ ( w , b ) = ∑ i = 1 m l n p ( y i ∣ x i ; w , b ) \ell (w,b)=\sum_{i=1}^{m}lnp(y_i|{\bf x_i;w},b) ℓ(w,b)=i=1∑mlnp(yi∣xi;w,b)
代入概率 质量/密度 函数,则最大化上式等价于最小化下式:
ℓ ( β ) = ∑ i = 1 m ( − y i β T x i ^ + l n ( 1 + e β T x i ^ ) ) \ell (\beta)=\sum_{i=1}^{m}\left(-y_i{\bf {\beta}^T \hat{x_i}} +ln(1+e^{{\bf {\beta}^T \hat{x_i}}}) \right) ℓ(β)=i=1∑m(−yiβTxi^+ln(1+eβTxi^))
4.2中的最终目标函数 ℓ ( β ) \ell(\beta) ℓ(β)是关于β的高阶可导连续凸函数,可采用梯度下降法(gradient descent method)或牛顿法(Newton method)等求得最优解。
如采用牛顿法,对于式子 β ∗ = a r g β m i n ℓ ( β ) {\beta}^*=\mathop{arg }\limits_{\beta}min \ell(\beta) β∗=βargminℓ(β),其第t+1轮迭代解的更新公式为:
β t + 1 = β t − ( ∂ 2 ℓ ( β ) ∂ β ∂ β T ) − 1 ∂ ℓ ( β ) ∂ β {\beta}^{t+1}={\beta}^t-\left(\frac{\partial ^{2}\ell(\beta)}{\partial{\beta} \partial{\beta}^T}\right)^{-1} \frac{\partial \ell(\beta)}{\partial{\beta}} βt+1=βt−(∂β∂βT∂2ℓ(β))−1∂β∂ℓ(β)
其中: ∂ ℓ ( β ) ∂ β = − ∑ i = 1 m x i ^ ( y i − p 1 ( x i ^ ; β ) ) , ∂ 2 ℓ ( β ) ∂ β ∂ β T = ∑ i = 1 m x i ^ x i ^ T p 1 ( x i ^ ; β ) ( 1 − p 1 ( x i ^ ; β ) ) \frac{\partial \ell(\beta)}{\partial{\beta}}=-\sum_{i=1}^{m}{\bf \hat{x_i}}(y_i-p1({\bf \hat{x_i}};{\beta})),\frac{\partial ^{2}\ell(\beta)}{\partial{\beta} \partial{\beta}^T}=\sum_{i=1}^{m}{\bf \hat{x_i}{\hat{x_i}}^T}p_1({\bf \hat{x_i}};{\beta})(1-p_1({\bf \hat{x_i}};{\beta})) ∂β∂ℓ(β)=−∑i=1mxi^(yi−p1(xi^;β)),∂β∂βT∂2ℓ(β)=∑i=1mxi^xi^Tp1(xi^;β)(1−p1(xi^;β))
线性判别分析(Linear Discriminant Analysis,简称LDA)方法尝试找到一个这样的分类边界:同类样例在该边界上的投影点尽可能靠近、异类样例的投影点尽可能远离,且各类中心间的距离尽可能大。
尝试将LDA的模型思想用数学方式表达。
同类样例在该边界上的投影点尽可能靠近 ↔ \qquad\leftrightarrow\qquad ↔同类样例投影点的方差尽可能小
各类中心间的距离尽可能大 ↔ \qquad\leftrightarrow\qquad ↔可用向量模长来度量
从而得到欲最大化的目标函数 J = ∥ w T μ 0 − w T μ 1 ∥ 2 w T ∑ 0 w + w T ∑ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( ∑ 0 + ∑ 1 ) w J=\frac{\Vert {\bf w^T{\mu}_0- w^T{\mu}}_1\Vert_2}{\bf w^T\sum_0w+w^T\sum_1w}=\frac{\bf w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\sum_0+\sum_1)w} J=wT∑0w+wT∑1w∥wTμ0−wTμ1∥2=wT(∑0+∑1)wwT(μ0−μ1)(μ0−μ1)Tw
定义:
“类内散度矩阵”: S w = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T = ∑ 0 + ∑ 1 S_w=\sum\limits_{x\in X_0}(x-\mu_0)(x-\mu_0)^T+\sum\limits_{x\in X_1}(x-\mu_1)(x-\mu_1)^T=\sum_0+\sum_1 Sw=x∈X0∑(x−μ0)(x−μ0)T+x∈X1∑(x−μ1)(x−μ1)T=∑0+∑1
“类间散度矩阵”: S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=(μ0−μ1)(μ0−μ1)T
从而 J = w T S b w w T S w w J=\bf \frac{w^TS_bw}{w^TS_ww} J=wTSwwwTSbw,该式也称 S b , S w S_b,S_w Sb,Sw的“广义瑞利商”。
又因为其分子、分母都是关于w的二次项,所以其大小与w的长度无关,而只与其方向有关。而样例集确定后,μ0、μ1也为常值,不失一般性可令 w T S w w = 1 \bf w^TS_ww=1 wTSww=1,所以最终的优化目标如下:
m i n w − w T S b w s . t . w T S w w \begin{align}\nonumber\\& \mathop{min}\limits_w \quad-\bf w^TS_bw \\& s.t.\qquad \bf w^TS_ww\end{align} wmin−wTSbws.t.wTSww
可使用拉格朗日乘子法求解。
由拉格朗日乘子法,上式等价于 S b w = λ S w w \bf S_bw=\lambda S_ww Sbw=λSww,其中 λ \lambda λ为拉格朗日乘子。因为 S b w \bf S_bw Sbw的方向恒为 μ 0 − μ 1 \bf \mu_0-\mu_1 μ0−μ1,不妨令 S b w = λ ( μ 0 − μ 1 ) \bf S_bw=\lambda (\mu_0-\mu_1) Sbw=λ(μ0−μ1),代入目标函数即可的: w = S w − 1 ( μ 0 − μ 1 ) \bf w=S_w^{-1}(\mu_0-\mu_1) w=Sw−1(μ0−μ1)
全局散度矩阵: S t = S b + S w = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T \bf S_t=S_b+S_w=\sum_{i=1}^{m}(x_i-\mu)(x_i-\mu)^T St=Sb+Sw=∑i=1m(xi−μ)(xi−μ)T,其中 μ \mu μ为所有示例的均值向量。
类内散度矩阵: S w = ∑ i = 1 N S w i = ∑ i = 1 N ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T \bf S_w=\sum{i=1}^{N}S_{w_i}=\sum_{i=1}^{N}\sum\limits_{x\in X_i}(x-\mu_i)(x-\mu_i)^T Sw=∑i=1NSwi=∑i=1Nx∈Xi∑(x−μi)(x−μi)T\
从而 S b = S t − S w = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T \bf S_b=S_t-S_w=\sum_{i=1}^{N}m_i(\mu_i-\mu)(\mu_i-\mu)^T Sb=St−Sw=∑i=1Nmi(μi−μ)(μi−μ)T
N个类别C1,C1,…,CN,多分类的基本思路是“拆解法”,即将多分类任务拆解为若干个二分类任务求解。通过任务拆分各自求解,再对结果进行继承以获得最终的多分类结果。
常见的拆分策略由以下三种:
“一对一”(One vs. One,简称OvO)将N个类别两两配对,从而产生 N ( N − 1 ) 2 \bf \frac{N(N-1)}{2} 2N(N−1)个二分类任务,训练得到对应数目个二分类器。在测试阶段,新样本在所有分类器上都将产生一个结果,最终分类结果可以通过投票产生:即把预测最多的类别最为最终的分类结果。
“一对其余”(One vs. Rest,简称OvR)每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个二分类器。测试阶段,若仅有一个分类器将新样本视为正类,则对应的类别标记即为其最终分类结果;若有多个分类器将新样本视为正类,则可考虑个分类器的置信度,选择置信度最大的类别标记作为分类结果。
“多对多”(many vs. msny)每次将若干类作为正类、若干个其他类作为反类。其正反类构造必须有特殊设计,如常用的“纠错输出码”(Error Correcting Output Codes,简称ECOC),其主要有两个步骤:
类别不平衡(class-imbalance)指分类任务中不同类别的训练样例数目差别很大。可通过使用“欠采样”(undersampling)、“过采样”(oversampling)或着“阈值移动”(threshold-moving)等方法进行一定程度的改善。