机器学习-一元线性回归与多元线性回归

目录

前言

一、机器学习的三要素

二、线性模型的基本形式

三、线性回归

3.1一元线性回归

3.1.1最小二乘法

 3.1.2极大似然估计

 3.1.3求解 ​和​ 

3.1.4算法处理前的向量化

 3.2多元线性回归

 3.2.1最小二乘法导出​

3.2.2证明​为凸函数

3.2.3求解未知数集合​

总结





前言

       随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文主要记录了有关机器学习问题线性模型中的一元线性回归和多元线性回归问题,思路均来源于周志华老师《机器学习》第三章中一元线性回归以及多元线性回归部分的内容。


一、机器学习的三要素

1.模型:根据具体问题,确定假设空间——此篇介绍为线性模型

2.策略:根据评价标准,确定选取最优模型的策略(通常会产生一个“损失函数”)——此篇以“均方误差”为标准,根据最小二乘法、最大似然估计法来确定损失函数最小的等价条件

3.算法:求解损失函数,确定最优模型——此篇中计算等价条件中未知数\omegab的取值



二、线性模型的基本形式

        对于给定的d个属性描述的示例\large x=(x1;x2;x3;....;xd),其中\large xi\large x在第\large i个属性上的取值。

线性模型:学得一个通过属性的线性组合来进行预测的函数形式为:\large f(x)=\omega 1x1+\omega 2x2+...+\omega dxd+b,转化为向量形式为:\large f(x)=\omega ^{T}+b

\large \omega =\left ( \omega 1;\omega 2;...;\omega d \right ),将\large \omega\large b学得之后,模型即可确定。

      此种方法的优点在于形式简单,易于建模,可解释性强,其中\large \omega直观的表达了各个属性在预测中的重要性,即为对标记结果的决定性程度。

      以下从回归任务开始,继而讨论二分类和多分类任务。



三、线性回归

 对于给定数据集\large D=\left \{ (x1,y1),(x2,y2),...,(xm,ym) \right \},其中 \large xi=(xi1;xi2;xi3;...;xid), \large yi\epsilon R。“线性回归” 意在学得一个线性模型尽可能准确的预测实值输出标记。

3.1一元线性回归

     若输入属性的数目仅为一个,则可省略属性的下标,转化为\large D=\left \{ (xi;yi) \right \}_{i=1}^{m},其中\large xi\epsilon R;

对于离散的属性,若属性之间存在“序”的关系,则可对其进行连续化,以下示例:

机器学习-一元线性回归与多元线性回归_第1张图片

 一元线性回归目的:学得\large f(xi)=\omega xi+b,使得\large f(xi)\approx yi,重点即为确定\large \omega\large b

 根本思路为:以均方误差作为性能量度,即目标为:试图将均方误差最小化。

以下先以“发际线高度”和“计算机水平”的关系一例来讲解两种计算方法,这两种方法殊途同归

3.1.1最小二乘法

我们假设采集到的样本数据如下图分布:

可以看出样本点偏向于服从线性分布,构造出模型\large f(x)=\omega x+b(图中黑色直线)

要使均方误差最小,即满足:

(\omega^{*},b^{*} )=argmin_{(\omega ,b)}\sum_{i=1}^{m}(f(xi)-yi)^{2}=argmin_{(\omega ,b)}\sum_{i=1}^{m}(yi-\omega xi-b)^{2},其中\large \omega ^{*}\large b^{*}表示\large \omega\large b的解;\large argmin表示使目标函数f(x)取最小值时的变量值。

对应的几何意义为“欧氏距离”(对应图中蓝色线段长度),对应损失函数\large E(\omega ,b)=\sum_{i=1}^{m}(f(xi)-yi)^{2}=\sum_{i=1}^{m}(yi-\omega xi-b)^{2}

        这种基于均方误差最小化,利用所有样本到直线上的欧式距离最短来进行模型求解的方法为“最小二乘法”

 3.1.2极大似然估计

      对于离散型(或连续性)随机变量X,假设其概率质量函数为P(x;\theta ),即概率密度为p(x;\theta ),其中x已知样本,例如有x1,x2,x3,...,xn为来自X的n个独立同分布的样本,则\theta待估计的参数值(可能为多个)。

      其联合概率,即为“多元的概率分布中多个随机变量分别满足各自条件的概率”,用公式表示为:L(\theta )=\prod_{i=1}^{n}P(xi;\theta )。此为关于\theta的函数,称为样本的似然函数。

根本想法:使得观测样本出现概率最大的分布即为代求分布,即意向求得\theta ^{*}使得L(\theta )取得最大值,即为\theta的估计值。

 具体计算方法参考下例:

机器学习-一元线性回归与多元线性回归_第2张图片

        另外,我们可以通过对数函数ln来简化似连乘项,转化为含连加项的对数似然函数:lnL(\mu ,\sigma ^{2})可大大减少计算量。

下面我们进入比较神奇的一步:

        假设线性回归为以下模型:y=\omega x+b+\epsilon,其中\epsilon为不受控制的随机误差,可以假设其服从均值为0的正态分布\epsilon \sim N(0,\sigma ^{2}) ,(中心极限定理:在适当的条件下,大量相互独立随机变量的均值经适当标准化后依分布收敛于正态分布),则对应\epsilon的概率密度函数为:p(\epsilon )=\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{\epsilon ^{2}}{2\sigma ^{2}})   ,将\epsilony-(\omega x+b)等价代替可得到下式:p(y)=\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y-(\omega x+b)) ^{2}}{2\sigma ^{2}})

       可以发现转化为了关于y的函数,即为y服从均值为(\omega x+b)的正态分布,即y \sim N(\omega x+b,\sigma ^{2}),则可使用极大似然估计的方法来估计\omegab的值:

机器学习-一元线性回归与多元线性回归_第3张图片

 即可转化为:求使得lnL(\omega ,b)=mln\frac{1}{\sqrt{2\pi }\sigma }-\frac{1}{2\sigma ^{2}}\sum_{i=1}^{m}(yi-\omega xi-b)^{2}取最大值的情况。

其中m与\sigma为常数,则对似然函数的最大化等价于最小化\sum_{i=1}^{m}(yi-\omega xi-b)^{2}

惊讶的发现此等价条件与最小二乘法下得到的公式一样!

下面我们结合这个条件开始求解\omegab的值:

 3.1.3求解 \omegab 

       求解思路为:证明\sum_{i=1}^{m}(yi-\omega xi-b)^{2}为关于 \omegab 的凸函数\rightarrow利用凸函数求最值的方法来求解出 \omegab 

①数学分析中对于凸函数的定义与高数中相反:

机器学习-一元线性回归与多元线性回归_第4张图片

 ②多元函数导数的定义:

        即为:将函数关于每一个变量的偏导数排列成列向量,以下列出多元函数的一阶导数、二阶导数的表达方式:

机器学习-一元线性回归与多元线性回归_第5张图片

机器学习-一元线性回归与多元线性回归_第6张图片

 ③综合以上两类定义,存在以下定理:

       类比一元函数判断凹凸性,对于DR^{n}是非空开凸集,f:D\subset R^{n}\rightarrow R,且f(x)D上二阶连续可微,则若f(x)Hessian矩阵在D上是半正定的,则f(x)D上的凸函数。

则存在转化条件:证明\sum_{i=1}^{m}(yi-\omega xi-b)^{2}为凸函数\Rightarrow 证明海塞矩阵半正定性。

④开始证明矩阵的正定性:

先对各个二阶偏导项进行化简:

\frac{\partial E_{(\omega ,b)}}{\partial \omega } = \frac{\partial }{\partial \omega }\left [ \sum_{i=1}^{m}(yi-\omega xi-b)^{2} \right ] = \sum_{i=1}^{m}\frac{\partial }{\partial \omega } (yi-\omega xi-b)^{2} = \sum_{i=1}^{m}2\cdot (yi-\omega xi-b)\cdot (-xi)=2(\omega \sum_{i=1}^{m}xi^{2}-\sum_{i=1}^{m}(yi-b)xi) ;

\frac{\partial^2 E_{(\omega ,b)}}{\partial \omega ^2} = \frac{\partial }{\partial \omega }\left ( \frac{\partial E_{(\omega ,b)}}{\partial \omega } \right ) = \frac{\partial }{\partial \omega }\left [ 2(\omega \sum_{i=1}^{m}xi^{2}-\sum_{i=1}^{m}(yi-b)xi) \right ] = 2\sum_{i=1}^{m}xi^{2}\omega = 2\sum_{i=1}^{m}xi^{2};

\frac{\partial E_{(\omega ,b)}}{\partial \omega\partial b } = \frac{\partial }{\partial b }\left [ 2(\omega \sum_{i=1}^{m}xi^{2}-\sum_{i=1}^{m}(yi-b)xi) \right ] = \frac{\partial }{\partial b }\left [ -2(\sum_{i=1}^{m}yixi-\sum_{i=1}^{m}bxi) \right ] = 2\sum_{i=1}^{m}xi

\frac{\partial E_{(\omega ,b)}}{\partial b } = \frac{\partial }{\partial b }\left [ \sum_{i=1}^{m}(yi-\omega xi-b)^{2} \right ] =\sum_{i=1}^{m}\frac{\partial }{\partial b } (yi-\omega xi-b)^{2} = \sum_{i=1}^{m}2\cdot (yi-\omega xi-b)\cdot (-1) = 2(mb-\sum_{i=1}^{m}(yi-\omega xi));

\frac{\partial E_{(\omega ,b)}}{\partial b \partial \omega } = 2\sum_{i=1}^{m}xi ;  \frac{\partial^2 E_{(\omega ,b)}}{\partial b ^2} = 2m 。

       将以上计算结果表达式带入到海塞矩阵中,并通过半正定矩阵的判断定理——顺序主子式非负,整得此矩阵半正定,继而得出E(\omega ,b)为关于 \omegab 的凸函数:

机器学习-一元线性回归与多元线性回归_第7张图片

以下只需证明:4m\sum_{i=1}^{m}xi^{2}-4(\sum_{i=1}^{m}xi)^{2}\geqslant 0即可。

4m\sum_{i=1}^{m}xi^{2}-4(\sum_{i=1}^{m}xi)^{2}=4m\sum_{i=1}^{m}xi^{2}-4\cdot m\cdot \frac{1}{m}(\sum_{i=1}^{m}xi)\cdot (\sum_{i=1}^{m}xi)=    4m\sum_{i=1}^{m} xi^{2}-4 {m}\cdot \bar{x}\cdot \sum_{i=1}^{m}xi = 4m(\sum_{i=1}^{m} xi^{2}-\bar{x}\cdot \sum_{i=1}^{m}xi);  由于\sum_{i=1}^{m}xi\cdot \bar{x} = \sum_{i=1}^{m} \bar{x}^{^{2}}成立,

原式转化为:4m(\sum_{i=1}^{m} xi^{2}-\bar{x}\cdot \sum_{i=1}^{m}xi) = 4m\sum_{i=1}^{m} (xi^{2}-\bar{x}\cdot xi-\bar{x}\cdot xi+\bar{x}\cdot xi)   =4m\sum_{i=1}^{m} (xi^{2}-\bar{x}\cdot xi-\bar{x}\cdot xi+\bar{x}^{2}) = 4m\sum_{i=1}^{m}(xi-\bar{x})^{2}\geqslant 0,得证。

 ⑤根据凸函数求最值的方法求解出 \omegab :

机器学习-一元线性回归与多元线性回归_第8张图片

 令两偏导数为0:

\frac{\partial E_{(\omega ,b)}}{\partial b } = 2(mb-\sum_{i=1}^{m}(yi-\omega xi)) =0    (i)\Rightarrow b=\frac{1}{m}\sum_{i=1}^{m}(yi-\omega xi)= \frac{1}{m}\sum_{i=1}^{m}yi-\omega \cdot \frac{1}{m}\sum_{i=1}^{m}xi=\bar{y}-\omega \bar{x}

\frac{\partial E_{(\omega ,b)}}{\partial \omega } =2(\omega \sum_{i=1}^{m}xi^{2}-\sum_{i=1}^{m}(yi-b)xi) =0   (ii)    \overset{b=\bar{y}-\omega \bar{x}}{\rightarrow}

机器学习-一元线性回归与多元线性回归_第9张图片

3.1.4算法处理前的向量化

       对于这种连加项,若想要用Python来实现,只能通过用循环,但如果可以对此式进行向量化,则可以转化为矩阵运算,再利用NumPy类库,可大大增加计算效率。

向量化:代入\frac{1}{m}(\sum_{i=1}^{m}xi)^{2} = \bar{x}\cdot \sum_{i=1}^{m}xi , 转化为:\omega =\frac{\sum_{i=1}^{m}yi(xi-\bar{x})}{\sum_{i=1}^{m}(xi^{2}-xi\bar{x})}=

\omega =\frac{\sum_{i=1}^{m}(yixi-yi\bar{x}-yi\bar{x}+\bar{x}\bar{y})}{\sum_{i=1}^{m}(xi^{2}-xi\bar{x}-xi\bar{x}+\bar{x}^{2})}=\frac{\sum_{i=1}^{m}(xi-\bar{x})(yi-\bar{y})}{\sum_{i=1}^{m}(xi-\bar{x})^{2}}

x=(x1,x2,..,xm)^{T},x_{d}=(x1-\bar{x},x2-\bar{x},...,xm-\bar{x})^{T}为去除其均值后的x;

y=(y1,y2,..,ym)^{T},y_{d}=(y1-\bar{y},y2-\bar{y},...,ym-\bar{y})^{T}为去除其均值后的y

则   \omega =\frac{x_{d}^{T}y_{d}}{x_{d}^{T}X_{d}}

 3.2多元线性回归

        对于给定数据集\large D=\left \{ (x1,y1),(x2,y2),...,(xm,ym) \right \},更多的情形是样本由d个属性来描述,此时试图学得f(xi)=\omega ^{T}xi+b ,使得\large f(xi)\approx yi ,即为“多元线性回归”。

        与一元线性回归的研究方式相似,首先由最小二乘法导出损失函数E_{\hat{\omega }},再求解其中的参数,将两个参数吸收入向量·形式:\hat{\omega}=(\omega ;b)

 3.2.1最小二乘法导出E_{\hat{\omega }}

对于f(xi)=\omega ^{T}xi+b,将b也处理成向量乘积的形式,从而简化后续的计算式复杂度,得到与一元回归中类似的形式:

机器学习-一元线性回归与多元线性回归_第10张图片

机器学习-一元线性回归与多元线性回归_第11张图片则总体表达式可转化为f(\hat{x_{i}})=\hat{\omega ^{T}}\hat{x_{i}};

       由最小二乘法可得:E_{\hat{\omega }}=\sum_{i=1}^{m}(yi-f(\hat{xi}))^{2}=\sum_{i=1}^{m}(yi-\hat{\omega }^{T}\hat{xi})^{2}即为简化后的损失函数的表达方式。

对损失函数的表达式进行向量化:

机器学习-一元线性回归与多元线性回归_第12张图片

机器学习-一元线性回归与多元线性回归_第13张图片

3.2.2证明E_{\hat{\omega }}为凸函数

        在上述过程中,我们通过对损失函数的向量化,得到它的向量表达式E_{\hat{\omega }}=(y-X\hat{\omega })^{T}(y-X\hat{\omega }),若想证明其为凸函数,需要通过求取其标量对向量的偏导数,求取其海塞矩阵\bigtriangledown ^{2}E_{\hat{\omega }},并证明其半正定性(涉及到矩阵分析的内容):

机器学习-一元线性回归与多元线性回归_第14张图片

机器学习-一元线性回归与多元线性回归_第15张图片

 

3.2.3求解未知数集合\hat{\omega}

      类比一元回归问题,利用凸函数的性质,求取\hat{\omega}的值:

机器学习-一元线性回归与多元线性回归_第16张图片








总结

       以上思路来源于《机器学习》这本书第三章的内容,一元线性回归和多元线性回归为本书中的重点内容,公式推导过程复杂但不难理解,条理清晰,需要耐心。内容仅代表个人的思路和理解,如有错误欢迎指正!

你可能感兴趣的:(机器学习,python,人工智能)