1.线性回归算法与梯度下降算法
1.总括:线性回归即我们在分析某些数据样本之间的归来吧时,预先假定其存在线性关系。
在此假设的基础上,利用数据样本拟合出线性方程的权重参数,进而得出此类数据的通用规律。
主要解决的问题:预测连续值变量所对应的结果y
举例:列入我们现在要预测:
1).大首都北京的房价受那些因素影响(当然是一个复杂的问题,我们在这里只是简化或者说假设)
2).大首都北京的房价和这些因素之间到底存在什么样的定量关系
问题1:我们假设影响房价的因素有:房龄X1(就假设这一个吧)
问题2:我们假设这些因素对房价的影响是线性的
2.此问题对应的数学模型如下:
将问题具体化:假设我们取了10个样本(x1,y1),(x2,y2).....(x10,y10)
则有:
显然通过上述十个样本我们既可以求解出一组θ来。
****************************************************************************
3.提出问题:什么样的θ最好的呢?最能反映这些样本数据之间的规律呢?
为了解决这个问题,我们需要引入误差分析预测值与真实值时间的误差为
-----------------------------------------------------------------(1)
而服从均值为0的正太分布(即高斯分布),即满足如下公式
---------------------------------------------------(2)
将(1)式代入(2)式便可得到下面式子:
为了便于计算我们引入对数似然
当似然函数最大时对对应的参数即为最优的权重参数,只要最小即可
如何才能求导上式的最小值,边成了我们求解此问题的关键,推导过程如下:
导入等于0即可得:
4.总结:以上便是我们队二维线性回归问题的一个推导和理解过程,对于n维的问题,换汤不换药,用同样的方式解决就好
5.回顾:
第一步:我们首先拿到样本数据,并假设此样本直线的规律是线性的
第二步:列出线性方程,问题转移为求解权重参数θ,假设是n维,并设θ=[θ1,θ2,θ3.......θn]
第三步:利用上述假设的权重参数θ,将任意一个样本数据代入对应的线性方程即可得到一个预测值
第四步:预测值与真实值存在的误差为
第五步:由于每个样本的误差是独立且同分布的,所以其服从正态分布,并且均值为0
第六步:利用概率论中关于参数估计的方法极大似然估计,引入似然函数,求出似然函数最大值所对应的θ即为最优的θ
第七步:利用导数求解即可
***************************************************************************************
6.接下来我们还得思考一个问题,假如我们将上述样本交个计算机,我们应该怎么样让计算机帮助我们求解此类问题呢?
授之以鱼还是授人以渔呢?显然我们更希望给它一个解决此类问题的方向,让它帮助我们求解,这便引入了梯度下降算法
引入损失函数,方程如下,推导过程可以参考第3步:
给出上述损失函数的图像如下:
7.如何求出上述函数的最小值呢?
由于函数是一个开口向上的曲面,使得函数取得最小值的θ0,θ1,即就是曲面上最低点所对应的θ0,θ1。
我们可以对函数关于θ0,θ1求偏导,并取偏导数为0的θ0,θ1
采用梯度下降原理,让计算机一步步求解,可以参考下图:
对上图的理解:我们将上图理解为下图中用粗红线所组成的平面(此平面平行于θ1所在的轴)切出的平面曲线,实际就是相当于此时θ0为常数的对上述平面曲线关于θ1求导数,实际相当于对于二元函数关于θ1求偏导,偏导数符号则反应了函数的增减性,也就是指明了函数变化的方向
有了这个方向,你再给定一个步长,即就是学习率α,就能控制θ1向着使得函数关于θ1的偏导数等于零的方向去逼近
一步步即可将最优的θ1,θ0用同样的方式就可以得到,这样你通过梯度下降就可以得到最优的θ1和θ0,对于影响因素有n个的问题采用的是同样的方式。