最近复习了一下机器学习的知识,在这里想总结一下,网上也有很多,大多都是不全或者是错误的。下面主要看我来简单总结一下回归分析的知识点。
1、内容概要
(1)线性回归
(2)逻辑回归(Logistic )
(3)最大似然估计
(4)梯度下降
2、线性回归
(1)我们以前初中学过线性函数y=a*x+b,都知道这是一个线性函数,并且它的图像是一条直线。如下图所示:(这其实在机器学习当中的单变量的情况。)
(2)若我们将上面一维的变量扩展到多维的变量上来,就会形成如下所示的公式:
y=WT*X +b 在这里W是列向量,X是列向量。展开来表示的是如下所示:
y=w0+w1*x1+w2*x2+w3*x3+...+wn*xn =∑WTX
书上是把上面的式子写成:那我们就按照书上的来好了。
我们知道,在线性回归当中,需要解决的问题是:根据已有的样本,构建一个线性模型,再利用该模型去预测未知的样本。那么我们来分析一下:线性回归的主要问题就是如何构建这样的一个线性模型。要想构建一个线性模型,是不是本质行就是只要得到一组θT即可?是的,没错。那么如何得到一组θT呢?
(3)利用似然函数可以推导出最小二乘
那么现在我们假设有m个训练样本,我们可以姑且假设我们的模型如下所示:
i表示的是从1到m个样本,ε表示的与实际样本之间的误差。我们知道误差ε应该是服从均值为0,方差为σ2的高斯分布。那么我们可以将误差写成如下的高斯函数的形式:
将我们的模型的代入到误差的分布函数中,得到如下所示:
对上面的误差分布函数进行取对数,求得似然函数如下所示:
根据极大似然估计可知,要使我们的似然函数最大,那就是要我们如下式子最小。
再看看上面那个式子,不就是我们的最小二乘吗?是的。就是它。整个问题现在就转化为了如何求解下面的式子最小:
(4)求解最小二乘的方法
1)可以直接求解
通过上面的方法直接可以求得θ的值。
2)梯度下降
i)初始化θ(随机初始化θ)
ii)沿着负梯度的方向进行迭代,迭代公式如下:
iii)梯度可以通过如下公式得到:
注意:线性回归的梯度与逻辑回归的梯度刚好是相反数。
3、逻辑回归(Logistic)
实际上逻辑回归本质上也是现象回归,它主要与线性回归的主要区别是将现象模型的值代入到sigmod函数中。其他的没什么区别。所以,我们先来了解一下sigmod函数到底是什么东西:
(1)sigmod函数
1)表达式:
2)这是它的图像:
从图像上可以看出,sigmod函数可以对任意一个响应给出一个[0,1]之间的一个值。因此,逻辑回归仅仅是处理两类问题,若需要处理多类问题就是我们的softmax回归了,稍后会介绍。
(2)逻辑回归的模型
从这个式子我们可以看出,它仅仅是将线性模型的θTX代入到sigmod函数中得到的。
对sigmod函数求导我们可以得到如下所示:
(3)逻辑回归的参数估计,根据最大似然估计可知,有如下的推导:
这里面需要注意一点是:对于一个样本来讲我们只需要保证概率P(y|x;θ)最大,假设m个样本,则对应的联合概率L(θ)=∏P(y|x;θ)。所以根据最大似然函数可以得到下面的公式:
(这里面我们可以看到,最大似然函数与交叉熵函数几乎是一模一样,而最大似然函数这里是是的每个样本都分对的概率最大。交叉熵作为损失函数来说是期望损失最小。所以可以最大似然函数的前面加上负号就可以变成了交叉熵损失函数了。)
注意:线性回归的梯度与逻辑回归的梯度刚好是相反数。
(4)参数的迭代 (逻辑回归是沿着似然函数的梯度的正方向进行迭代,如果以最大似然函数作为目标函数的话,最后迭代方向是梯度上升方向迭代)
1)逻辑回归的参数学习规则如下所示:
2)比较线性回归和逻辑回归参数的迭代规则:它们在公式的形式上是相同的。(左边线性回归,右边逻辑回归)
4、线性回归与逻辑回归之间的区别
(1)不同点
i)线性回归是沿着似然函数的梯度负方向进行迭代,逻辑回归是沿着似然函数的梯度的正方向进行迭代
ii)线性回归解决的是回归问题,逻辑回归解决的是分类问题
(2)相同点
i)参数的迭代公式是一样的
ii)本质上都是线性回归
5、逻辑回归解决多类问题的模型——softmax回归模型
(1)softmax回归模型实际上是对Logistic回归模型进行扩展得到的,softmax的模型如下所示:
其中K表示的K类问题,P(c=k|x;θ)表示的是对应参数θ,对于样本x为k类的概率。
注意观察softmax的公式模型,发现实际上它是将每个类别的对应一个模型exp(θTkX),通过训练出K个这样的模型,通过计算每个模型的可能性。最后将结果归为可能性最大的那个类别的模型。这就是softmax的本质思想。
(2)来看看softmax的似然函数和对数似然函数
1)似然函数
注意这里使用长度为K的向量y=(0,0...1,0..)表示样本的类别,其中,用yk表示y的第k个类别,因此,似然函数是需要在指数上增加yk的。
2)对数似然函数
(3)参数的迭代
1)计算对数似然函数的梯度,该梯度是对θk的梯度,也就是说,有多少个类别,对应会有多少个梯度,即对应多少个θ更新公式。
2)更新公式
问题思考:为什么线性回归参数的迭代是梯度的负方向,逻辑回归和softmax回归都是梯度的正方向?
答:其实这是由于使用的参数估计是最大似然估计的原因。在线性回归中,要使得对数似然函数最大就必须是需要最小二乘的那个式子最小,而那个式子就是一个凸函数,凸函数的最小值就是沿着梯度下降的方法去迭代;在逻辑回归和softmax回归中,要使得对数似然函数最大,那就是对对数似然函数求导后,得到梯度上升的方向找最大值。