线性回归
写在前面:第一次写博客格式安排不是很合理,后面会整理的。请大家谅解[大哭],而且内容结构会陆续上传,完成整个知识架构的建立,如果有什么意见欢迎大家不吝赐教!欢迎大家扔砖~~
基本思想:
- 线性回归模型试图利用一个n元多项式来预测实值的标记,如下式,我们以向量内积的形式来表示
f(x)=wTx+b f ( x ) = w T x + b
既然是预测值,其所具备的最基本的内容就是预测函数,性能度量,其中预测函数就是我们要实际进行对输入进行处理的函数,而性能度量则是我们在得到对应的预测预测模型过程中对训练出来的模型泛化性能进行评判的指标 性能度量:均方误差,因为是均方误差,所以我们希望得到预测模型可以使得在训练过程中均方误差是最小的,如下式
(w∗,b∗)=argminw,b∑i=1m(f(xi)−yi)2 ( w ∗ , b ∗ ) = arg min w , b ∑ i = 1 m ( f ( x i ) − y i ) 2
如此可以看到均方误差有这很好的集合意义,它对应了欧几里得距离。基于均方误差最小化来进行模型求解的方法成为“最小二乘法”。在线性回归中,最小二乘法就是试图使得所有样本点到这条直线的欧式距离最小最小二乘法参数估计:将上式分别对w和b求偏导,并令偏导等于0,即可求得其闭式解
∂E(w,b)∂w=2(w∑i=1mx2i−∑i=1m(yi−b)xi) ∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i )
∂E(w,b)∂b=2(mb−∑i=1m(yi−wxi)) ∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) )
联立上述两式为0即可求得为
w=∑mi=1yi(xi−x¯¯¯)∑mi=1x2i w = ∑ i = 1 m y i ( x i − x ¯ ) ∑ i = 1 m x i 2
b=1m∑i=1m(yi−wxi) b = 1 m ∑ i = 1 m ( y i − w x i )
上述式子是按照单个输入数据样例为基本进行的公式推导,如果将样本数据集以矩阵的形式来计算的话,我们可以有:- 矩阵形式的“多变量线性回归”模型:
我们令 w=(w,b) w = ( w , b ) ,那么原本的数据集合的格式改为 x=(x,1) x = ( x , 1 ) ,令
X=⎛⎝⎜⎜⎜x11x21...xm1x12x22...xm2............x1dx2d...xmd11...1⎞⎠⎟⎟⎟=⎛⎝⎜⎜⎜⎜xT1xT2...xTm11...1⎞⎠⎟⎟⎟⎟ X = ( x 11 x 12 . . . x 1 d 1 x 21 x 22 . . . x 2 d 1 . . . . . . . . . . . . . . . x m 1 x m 2 . . . x m d 1 ) = ( x 1 T 1 x 2 T 1 . . . . . . x m T 1 )
再将标记向量 y=(y1;y2;...;ym) y = ( y 1 ; y 2 ; . . . ; y m ) 写出来我们就可以将原来的多元线性回归模型的均方误差的式子写成
w^∗=argminw^(y−Xw^)T(y−Xw^) w ^ ∗ = arg min w ^ ( y − X w ^ ) T ( y − X w ^ )
令 Ew^=(y−Xw^)T(y−Xw^) E w ^ = ( y − X w ^ ) T ( y − X w ^ ) 则可以对 w^ w ^ 求偏导,从而得到
∂Ew^∂w^=2XT(Xw^−y) ∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y )
显然,这里面会涉及矩阵求逆,所以我们做讨论当 XTX X T X 为满秩矩阵或正定矩阵是,令上式等于0即可求出
w^∗=(XTX)−1XTy w ^ ∗ = ( X T X ) − 1 X T y
- 线性回归模型试图利用一个n元多项式来预测实值的标记,如下式,我们以向量内积的形式来表示
阶段小结:
从而得到最终的多元线性回归,但是我们常常遇到的就是不满足上述条件无法求逆,那么意味着这有如下几个继续需要探讨的问题:
1. 若果上述公式无法使用,我们应该使用什么优化算法来进行呢?
2. 多元线性回归局限性
3. 虽然每个数据有d个特征,但是这些特征并不是相互独立的,有一些是可以线性表达的,那么我们需要的就是给数据特征进行降维
4. 这时也就是引出来我们在使用ML时应该有的数据处理——特征工程 以及使用ML的标准流程
5. 从简单的线性回归我们其实可以看到,一个基本的学习器的算法组成为:数据预处理,有限训练数据集训练方式,回归预测/分类器模型,性能度量(Loss Function),优化算法等
GD算法:
因为 XTX X T X 是不一定可逆的,所以我们需要一个更加常用的采用迭代思想的算法逼近正确答案。点击超链接可以进入详解
线性回归局限性:
由上述式子可以知道,我们进行预测使用多项式表达式
f(x)=wTx+b
f
(
x
)
=
w
T
x
+
b
,但是当遇到样本模型自变量与因变量不是线性关系的时候,仍旧使用线性回归会导致欠拟合的问题,即我们使用的回归模型无法表达样本空间中自变量与因变量之间的相关关系,这样就有了两个方向来解决这个问题:
1. 我们是否可以对原有的线性回归模型进行修改?
2. 我们是否可以选择另外一个非线性学习器来进行学习预测?
针对第一个问题,我们需要有如下的了解:
1. 为什么我们要使用最小二乘参数估计?或者最小二乘估计为什么就可以对w,b进行估计呢?估计的值与真实值之间有偏差么?
- 答:令
w^=(w,1)
w
^
=
(
w
,
1
)
,那么我们期望得到的回归模型是
y=f(x)=w^x
y
=
f
(
x
)
=
w
^
x
,但是对于样本集中输出值不仅仅有模型影响,还有非模型的影响(例如,还缺少其他关键特征,随机噪声),正式因为有这些非模型影响,所以会导致我们的预测值与真实值会有很大的误差,想要使用线性回归来预测,我们需要做一个这样的假设,我们令输出值与输入值之间的模型如下:
其中 ϵi ϵ i 表示第i个样本的预测值和真实值之间的误差,我们对这个误差有如下的假设(这就是回归分析常用的假设):
1. ϵi ϵ i 是属于均值为0,方差为 σ2 σ 2 的高斯分布
2. ϵi ϵ i 与 ϵj ϵ j ( i!=j i ! = j )是独立同分布的(IID)
3. 样本之间是相互独立的
根据如上假设,我们就会有
在误差项为上述式子,并且为线性回归预测模型下,就会有
这样的概率密度分布表达式,那么我们可以根据最大似然估计进行表示
上式对数操作得:
若使上式达到最大,则即为使
最小,这与我们用欧式距离理解的方差误差是一样的。
2. 回答完为什么要用均方误差之后,我们就要开始回答,是否可以在原来的线性回归上进行修改了?
a. 局部加权线性回归(Local Weighted Linear Regression,LWLR):
- 基本思想:允许在估计中加入一定偏差,降低模型欠拟合的风险。对欧式距离添加权重,使离预测点越远的点权重越小,减低一部分方差大的点影响模型,加入一些偏差,从而降低欠拟合风险,增强线性回归的泛化性能,最常用的就是高斯核(这个核与SVM中使用的核类似),可以理解为,对预测点附近的点赋予更高的权重,这个和聚类的思想有些相近,高斯核为:
其中k表示了带宽参数,可以类比k近邻中的k,这个需要 注意优化,加入局部加权线性规划
需要注意的是:LWLR增加了计算量,而且对一个点进行预测的时候需要用到整个训练数据样本集,所以需要的时间资源会很多
Logistic回归
- 基本思想:logistic回归主要应用在分类任务中,可以在一定程度上尽心单位节约函数的替代函数,同时logistic单调可微,保留了原数据集中的样本相对位置关系
- 表达式: y=11+e−(w^x)=11+e−z y = 1 1 + e − ( w ^ x ) = 1 1 + e − z
- 函数图像(原谅我的盗用):
我们可以通过上述表达式进行变换可以得到:
ln(y1−y)=w^Tx l n ( y 1 − y ) = w ^ T x
如果我们将y表示成样本x表示正例的可能性,那么1-y就表示其为反例的可能性,二者比值
y1−y y 1 − y
就称为“几率”,反应了x为正例的相对可能性,几率越大表示x为正例的可能性越大,对其取对数则得到“对数几率”
ln(y1−y) l n ( y 1 − y )
由此可以看出表达式实际上是在用线性回归模型的预测结果去逼近真是标记的对数几率,需要注意的是,虽然是称为logistic回归,但是由于这个回归预测的值是对数几率,那么其实质在执行的任务就是对样本x进行分类任务,所以logistic回归是分类方法。 使用logistic回归进行分类有很多有优点:- 是直接对分类可能性进行建模,是不需要实现假设其分布的,这样就不会因为样本分布不均匀所带来的建模不准确
- 不是仅预测出分类类别,也可以近似的得到概率预测,这对很多需要依靠概率帮助决策的任务很有帮助
- 对率函数是任意阶可导的凸函数,而且一阶导是可以有其本身表达的,所以就减少了很多数学上的推导
同样的知道了模型是上述表达式之后,我们仍然要根据样本集来确定最佳的 w^ w ^ 的取值,仍然需要一个优化的目标函数,和线性回归的均方误差推导过程一致,我们要使用极大似然法进行参数估计
将y视为类后验概率估计,则有:
ln(p(y=1|x)p(y=0|x))=w^Tx l n ( p ( y = 1 | x ) p ( y = 0 | x ) ) = w ^ T x
利用 p(y=1|x)=1−p(y=0|x) p ( y = 1 | x ) = 1 − p ( y = 0 | x ) 带入上式之后,可以得到
p(y=1|x)=ew^Tx1+ew^Tx=hw^(x) p ( y = 1 | x ) = e w ^ T x 1 + e w ^ T x = h w ^ ( x )
p(y=0|x)=11+ew^Tx=1−hw^(x) p ( y = 0 | x ) = 1 1 + e w ^ T x = 1 − h w ^ ( x )
又因为在对于logistic回归中我们也做了一些基本假设,认定模型的分类任务是伯努利分布的,利用极大似然法,对参数 w^ w ^ 进行估计则有其对数似然函数(目标优化函数)为:
l(w^)=∑i=1myilnhw^(x)+(1−yi)ln(1−hw^(x)) l ( w ^ ) = ∑ i = 1 m y i l n h w ^ ( x ) + ( 1 − y i ) l n ( 1 − h w ^ ( x ) )这个优化函数是关于 w^ w ^ 的高阶连续可导的凸函数,我们可以使用GD算法,牛顿法等优化算法进行优化,从而得到其最优解。
GD算法:为了降低算法数据计算复杂度,我们采用每一个样本就更新一次,虽然这样有肯能进入局部最有,但是确实比普通GD收敛要快一些。目标优化最小化函数对 w^ w ^ 求偏导可得:
∂l(w^)∂w^=(yi1hw^(xi)−(1−yi)11−hw^(xi))∂hw^(xi)∂w^=(yi−hw^(xi))xi ∂ l ( w ^ ) ∂ w ^ = ( y i 1 h w ^ ( x i ) − ( 1 − y i ) 1 1 − h w ^ ( x i ) ) ∂ h w ^ ( x i ) ∂ w ^ = ( y i − h w ^ ( x i ) ) x i
所以就有了更新迭代式:
w^i+1=w^i+α(yi−hw^(xi))xi) w ^ i + 1 = w ^ i + α ( y i − h w ^ ( x i ) ) x i )牛顿法:我们希望找到一个函数 f f 的0点,那么我们可以通过不断迭代来不断逼近,牛顿法的迭代公式为:
那么应用到上述目标优化最下滑函数就有
w^==w^−H−1∇w^l(w^) w ^ == w ^ − H − 1 ∇ w ^ l ( w ^ )
其中H表示Hessian矩阵,矩阵中的元素(i,j)表示为 Hij=∂2l(w^)∂w^i∂w^j H i j = ∂ 2 l ( w ^ ) ∂ w ^ i ∂ w ^ j
广义线性模型(Generalized Linear Models,GLMs)
到目前位置,我们其实已经学过了线性回归和logistic回归,其中他们的联系是:
相同点:都是基于
wTx+b
w
T
x
+
b
来预测某种参数,基本假设中样本之间都是相互独立的,都使用最大似然法来进行最优化函数的推导
不同点:线性回归优化函数的得到是基于预测项为正太分布的,而logistic的得到是基于y预测项是伯努利分布的
接下来,我们就要介绍的广义线性模型,同样是想要基于
wTx+b
w
T
x
+
b
来预测某种参数,预测项是基于某种分布的
- 基本思想:GLMs都是基于指数簇分布的,我们会有这样的一个定义,这个指数簇分布函数可以写成如下的形式:
其中 η η 是概率分布的自然参数(或称为规范参数,是我们要预测的参数),T(y)为充分统计量(在我们的经常使用到的分布中,T(y) = y),a(y)是对数分割函数( e−a(η) e − a ( η ) )
举例子说明:
伯努利分布:
写成这种形式,那么这个伯努利分布也是指数簇中的一个特例,其中自然参数 η=ln(ϕ1−ϕ) η = l n ( ϕ 1 − ϕ ) 则 ϕ=11−e−η ϕ = 1 1 − e − η ,那么对照指数簇的对应公式可以得到
高斯分布:因为我们在计算高斯分布的最大似然函数得到均方误差的时候发现方差是不影响我们的优化过程的,那么为了方便计算,就使
σ2=1
σ
2
=
1
,从而得到:
所以我们得到
接下来就是这个广义线性模型有什么用处呢?我们应该如何确定我们的 w^Tx w ^ T x 预测的是什么呢?
GLMs的构建:
- 使用广义线性模型构建的基本假设:
1.1 y|x;w^ y | x ; w ^ ~ 指数簇分布 (η) ( η )
1.2 我们的目标的求T(y)在给出x条件下的期望,即模型 h(x)=E[T(y)|x] h ( x ) = E [ T ( y ) | x ]
1.3 自然参数 η η 和输入x是线性相关的,即满足 η=w^Tx η = w ^ T x - 举个例子来表示我们如何使用广义线性模型:
步骤1: 我们先基本假设 y|x;w^ y | x ; w ^ ~某一个指数分布簇(以伯努利分布为例)
步骤2:将伯努利分布化成GLMs的形式,如上
步骤3:利用基本假设2,进行求解:
h(x)=E[T(y)|x]=E[y|x]=ϕ h ( x ) = E [ T ( y ) | x ] = E [ y | x ] = ϕ
步骤4:利用GLMs中的 η η 来表示步骤3中的结果
ϕ=11+e−η ϕ = 1 1 + e − η
步骤5:将步骤4中的 η η 用 w^Tx w ^ T x 替换,那么我们就得到了我们需要预测的值
h(x)=ϕ=11+e−w^Tx h ( x ) = ϕ = 1 1 + e − w ^ T x
GLMs的应用:
Softmax Regression:多分类任务
我们假设预测值y会有k个不同取值,即 y∈{1,2,3,...,k} y ∈ { 1 , 2 , 3 , . . . , k } 我们可以使用k个参数 ϕ1,ϕ2,ϕ3...,ϕk ϕ 1 , ϕ 2 , ϕ 3 . . . , ϕ k 来表示每个输出值的出现概率,所以他们满足 ∑ki=1ϕi=1 ∑ i = 1 k ϕ i = 1
有之前的广义线性模型我们可以知道 T(y)=y T ( y ) = y ,但是我们现在可知在多分类任务中y的取值可以有k种,那么我们就定义 T(y)∈Rk−1 T ( y ) ∈ R k − 1 ,注意:这里的T(y)是k-1维的
T(1)T=[1,0,0,...,0]T(2)T=[0,1,0,...,0]...T(k−1)T=[0,0,0,...,1]T(k)T=[0,0,0,...,0] T ( 1 ) T = [ 1 , 0 , 0 , . . . , 0 ] T ( 2 ) T = [ 0 , 1 , 0 , . . . , 0 ] . . . T ( k − 1 ) T = [ 0 , 0 , 0 , . . . , 1 ] T ( k ) T = [ 0 , 0 , 0 , . . . , 0 ]
同时我们也定义了 E[(T(y))i]=P(y=i)=ϕi E [ ( T ( y ) ) i ] = P ( y = i ) = ϕ i
所以我们有:
p(y;ϕ)=ϕ1{y=1}1ϕ1{y=2}2ϕ1{y=3}3ϕ1{y=4}4ϕ1{y=5}5...ϕ1{y=k}k=ϕ1{y=1}1ϕ1{y=2}2ϕ1{y=3}3ϕ1{y=4}4ϕ1{y=5}5...ϕ1−∑k−1i=11{y=i}k=ϕ(T(y))11ϕ(T(y))22...ϕ1−∑k−1i=1(T(y))ik=exp((T(y))iln(ϕ1)+(T(y))2ln(ϕ2)+...+((1−∑i=1k−1(T(y))i)ln(ϕk))=b(y)exp(ηTT(y)−a(η)) p ( y ; ϕ ) = ϕ 1 1 { y = 1 } ϕ 2 1 { y = 2 } ϕ 3 1 { y = 3 } ϕ 4 1 { y = 4 } ϕ 5 1 { y = 5 } . . . ϕ k 1 { y = k } = ϕ 1 1 { y = 1 } ϕ 2 1 { y = 2 } ϕ 3 1 { y = 3 } ϕ 4 1 { y = 4 } ϕ 5 1 { y = 5 } . . . ϕ k 1 − ∑ i = 1 k − 1 1 { y = i } = ϕ 1 ( T ( y ) ) 1 ϕ 2 ( T ( y ) ) 2 . . . ϕ k 1 − ∑ i = 1 k − 1 ( T ( y ) ) i = e x p ( ( T ( y ) ) i l n ( ϕ 1 ) + ( T ( y ) ) 2 l n ( ϕ 2 ) + . . . + ( ( 1 − ∑ i = 1 k − 1 ( T ( y ) ) i ) l n ( ϕ k ) ) = b ( y ) e x p ( η T T ( y ) − a ( η ) )
其中
b(y)=1ηT=[ln(ϕ1ϕk),ln(ϕ2ϕk),ln(ϕ3ϕk),...,ln(ϕk−1ϕk),ln(ϕkϕk)]a(η)=−ln(ϕk) b ( y ) = 1 η T = [ l n ( ϕ 1 ϕ k ) , l n ( ϕ 2 ϕ k ) , l n ( ϕ 3 ϕ k ) , . . . , l n ( ϕ k − 1 ϕ k ) , l n ( ϕ k ϕ k ) ] a ( η ) = − l n ( ϕ k )
因为我们需要将 ηi=w^Tix η i = w ^ i T x 带入从而代替参数,所以我们需要将 ϕi ϕ i 用 ηi η i 来表示,所以有
eηi=ϕiϕkϕkeηi=ϕiϕk∑i=1keηi=∑i=1kϕi=1 e η i = ϕ i ϕ k ϕ k e η i = ϕ i ϕ k ∑ i = 1 k e η i = ∑ i = 1 k ϕ i = 1
故而有
ϕk=1∑ki=1eηiϕi=eηi∑kj=1eηj ϕ k = 1 ∑ i = 1 k e η i ϕ i = e η i ∑ j = 1 k e η j
然后我们将 ηi=w^Tix η i = w ^ i T x 带入上式中就可以得到
p(y=i|x;w^)=ϕi=eηi∑kj=1eηj=ew^Tix∑kj=1ew^Tix p ( y = i | x ; w ^ ) = ϕ i = e η i ∑ j = 1 k e η j = e w ^ i T x ∑ j = 1 k e w ^ i T x
那么我们的模型就有了
hTw^(x)=E(TT(y)|x;w^)=[ϕ1,ϕ2,...,ϕk] h w ^ T ( x ) = E ( T T ( y ) | x ; w ^ ) = [ ϕ 1 , ϕ 2 , . . . , ϕ k ]
如此softmax Regression的模型公式我们就得出了,接下来就是可以使用极大似然函数来进行优化了,即目标最大优化函数为
l(w^)=∑i=1mlogp(yi|xi;w^i)=∑i=1mlog∏j=1kϕ1{yi=j}j l ( w ^ ) = ∑ i = 1 m l o g p ( y i | x i ; w ^ i ) = ∑ i = 1 m l o g ∏ j = 1 k ϕ j 1 { y i = j }
从而我们就可以得到使得上述式子最大化的 w^ w ^ ,从而得到最后的模型 hw^(x) h w ^ ( x )