这一章首先通过建立一个d元1次线性模型,通过权重值与偏置项将样本的属性值与预测值联系起来建立线性回归模型,从线性回归任务开始,引申出二分类和多分类任务(未学,以后再回来填坑==)。
建立线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,线性模型如下:
f ( x ) = ω 1 x 1 + ω 2 x 2 + ⋯ + ω d x d + b = ω T x + b (3.1) \begin{aligned} f(\bm{x}) &= \omega_{1}x_{1} + \omega_{2}x_{2}+ \cdots +\omega_{d}x_{d} + b\\ &=\bm{\omega}^{\rm{T}}\bm{x}+b \end{aligned} \tag{3.1} f(x)=ω1x1+ω2x2+⋯+ωdxd+b=ωTx+b(3.1)
其中 x = ( x 1 ; x 2 ; ⋯ ; x d ) \bm{x}=(x_{1};x_{2};\cdots;x_{d}) x=(x1;x2;⋯;xd), x i x_{i} xi是样本 x \bm{x} x在第 i i i个属性上的取值, ω = ( ω 1 ; ω 2 ; ⋯ ; ω d ) \bm{\omega}=(\omega_{1};\omega_{2};\cdots;\omega_{d}) ω=(ω1;ω2;⋯;ωd) 为权重值, b b b为偏置项,偏置项 b b b增加了模型的自由度。通过上述线性模型,可以通过一些策略和算法来拟合一些数据。
式(3.1)建立了样本属性与预测值的线性模型,接着建立预测值 f ( x ) f(\bm{x}) f(x)与真实值 y y y之间的损失函数如下:
( ω ∗ , b ∗ ) = a r g m i n β ∑ i = 1 m ( f ( x i ) − y i ) 2 = a r g m i n β ∑ i = 1 m ( y i − ω i − b ) 2 (3.4) \begin{aligned} (\omega^{*}, b^{*}) &=\underset{\beta}{ \rm{arg\ min}}\sum\limits_{i = 1}^{\it{m}}(\it{f(x_{i})-y_{i}})^{\rm{2}}\\ &=\underset{\beta}{ \rm{arg\ min}}\sum\limits_{i = 1}^{\it{m}}(y_{i}-\omega_{i}-b)^{2} \end{aligned} \tag{3.4} (ω∗,b∗)=βarg mini=1∑m(f(xi)−yi)2=βarg mini=1∑m(yi−ωi−b)2(3.4)
建立损失函数的目的:通过后续的算法让模型学得最优的权值 ω \bm{\omega} ω和 b b b,继而使得预测值 f ( x ) f(\bm{x}) f(x)最为逼近真实值 y y y。上述损失函数又称为均方误差,它对应着“欧氏距离”。基于均方误差最小化来进行模型求解的方法称为最小二乘法。在线性回归中,最小二乘法就是识图找到一条直线,使所有样本到直线上的欧式距离之和最小。
周志华老师的西瓜书上首先说明损失函数 E ( ω , b ) = ∑ i = 1 m ( y i − ω i − b ) 2 E_{(\omega,b)}=\sum_{i=1}^{m}{(y_{i}-\omega_{i}-b)^{2}} E(ω,b)=∑i=1m(yi−ωi−b)2是关于 ω \omega ω和 b b b的凸函数,继而求得 ω \omega ω和 b b b最优解的闭式解。具体证明过程参考南瓜书和Datawhale的吃瓜教程,首先证明 E ( ω , b ) E_{(\omega,b)} E(ω,b)的海塞矩阵是半正定或正定的,由相关的定理可知, E ( ω , b ) E_{(\omega,b)} E(ω,b)是关于 ω \omega ω和 b b b的凸函数, ∂ E ( ω , b ) ∂ ω = 0 \frac{\partial{E_{(\omega,b)}}}{\partial{\omega}}=0 ∂ω∂E(ω,b)=0和 ∂ E ( ω , b ) ∂ b = 0 \frac{\partial{E_{(\omega,b)}}}{\partial{b}}=0 ∂b∂E(ω,b)=0的点为相应的极小值点。
ω \omega ω和 b b b的最优解的闭式解为:
ω = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 = x d T y d x d T x d (3.7) \begin{aligned} \omega&=\frac{\sum\limits_{i=1}^{m}{y_{i}(x_{i}-\bar{x})}}{\sum\limits_{i=1}^{m}{x_{i}^{2}}-\frac{1}{m}\left(\sum\limits_{i=1}^{m}x_{i}\right)^{2}} \\ &=\frac{\bm{x}_{d}^{\rm{T}}\bm{y}_{d}}{\bm{x}_{d}^{\rm{T}}\bm{x}_{d}} \end{aligned} \tag{3.7} ω=i=1∑mxi2−m1(i=1∑mxi)2i=1∑myi(xi−xˉ)=xdTxdxdTyd(3.7)
b = 1 m ∑ i = 1 m ( y i − ω x i ) = y ˉ − ω x ˉ (3.8) \begin{aligned} b&=\frac{1}{m}\sum\limits_{i=1}^{m}(y_{i}-\omega x_{i})\\ &=\bar{y}-\omega \bar{x} \end{aligned} \tag{3.8} b=m1i=1∑m(yi−ωxi)=yˉ−ωxˉ(3.8)
上式中 x ˉ \bar{x} xˉ为向量 x = ( x 1 , x 2 , ⋯ , x m ) T \bm{x}=(x_{1},x_{2},\cdots,x_{m})^{\rm{T}} x=(x1,x2,⋯,xm)T的均值, y ˉ \bar{y} yˉ为向量 y = ( y 1 , y 2 , ⋯ , y m ) T \bm{y}=(y_{1},y_{2},\cdots,y_{m})^{\rm{T}} y=(y1,y2,⋯,ym)T的均值, x d = ( x 1 − x ˉ , x 2 − x ˉ , ⋯ , x m − x ˉ ) T \bm{x}_{d}=(x_{1}-\bar{x},x_{2}-\bar{x},\cdots,x_{m}-\bar{x})^{\rm{T}} xd=(x1−xˉ,x2−xˉ,⋯,xm−xˉ)T, y d = ( y 1 − y ˉ , y 2 − y ˉ , ⋯ , y m − y ˉ ) T \bm{y}_{d}=(y_{1}-\bar{y},y_{2}-\bar{y},\cdots,y_{m}-\bar{y})^{\rm{T}} yd=(y1−yˉ,y2−yˉ,⋯,ym−yˉ)T
对数几率回归实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率。因此,其对应的模型称为“对数几率回归”(logistic regression)。需注意,虽然它的名字是“回归”,但实际却是一种“分类学习方法”。
图 3.2 单 位 阶 跃 函 数 与 对 数 几 率 函 数 图3.2 单位阶跃函数与对数几率函数 图3.2单位阶跃函数与对数几率函数
对数几率回归模型如下:
y = 1 1 + e − ( ω T x + b ) (3.18) y=\frac{1}{1+e^{-(\bm{\omega}^{\rm{T}}\bm{x}+b)}} \tag{3.18} y=1+e−(ωTx+b)1(3.18)
需注意,图3.2中单位阶跃函数在 x = 0 x=0 x=0出不连续不可导,所以采用连续可导的对数几率函数,它将输入值映射为一个接近0或1的 y y y值,这个"Sigmoid函数"将线性模型映射成了非线性模型。但是当 z z z值很大或很小时,易知其导数趋近于0,会导致出现梯度消失的情况,可利用Relu函数解决该问题。
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,可用来处理二分类问题。
LDA的思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能原理。在对新样本进行分类是,也将其投影到该直线上,再根据投影点的位置来确定新样本的类别。