赞
踩
有监督学习的目的,即从数据集中提炼特征值和标签值的相关性,也可以看作想要得到从特征空间到解空间的一种映射。由于真实的映射对我们来说永远是未知的(除非整个数据集都是人为“创造”而来),我们只能对这种映射做出一些合理的猜想。而最简单也最容易想到的一种猜想就是特征值与标签值之间具有线性关系。因为这是我们在学习数学的过程中最早接触的一种映射关系:线性函数
如果这里的
这里的
这里的
对于训练集中已有的真实标签值
即,训练集中有
要令
当然,实际生活中所研究的一般不会是只有一个特征值这样的简单情况。
一般在实际生活中遇到的线性模型中,训练集里的实例都会有多个属性,即多个特征值。此时的假设函数形式变为:
此处,全部实例的全部特征值
如果将所有标签值表示为一个
将残差平方和的式子对
令该式为0,同样可以解出最优的参数向量
该式也称为正规方程(Normal Equation)
然而现实生活中经常遇到特征种类远远大于实例个数的情况,此时
梯度下降的核心思想是:从某一组特定的参数值出发并不断变化这些参数值,使得代价函数的值不断减小,直到最终到达其最小值。该算法只能达到所谓“局部最小值”,但由于线性回归的特殊性,其代价函数(凸函数)只有一个最小值,因此梯度下降在线性回归中总能到达全局最小值。
梯度下降的思想如同在山丘上逐步向可见的最低谷处出发,逐步下降。
梯度下降的具体算法如下:
如果令残差平方和的均值(均方误差)为代价函数
(此处取1/2只是为了求导方便,并不影响最小化的过程)
梯度下降算法对所有参数不断重复这一步:
直到最终收敛至最小值。
此处的
所有的
公式中的偏导数项则用来确保梯度下降的方向一定朝向最小值。同时,由于该偏导数项会在逐步接近局部最小值时不断变小,因此即便不减小学习速率值,梯度下降也将会越来越缓慢。
为了将梯度下降算法应用到线性回归中,只要将线性回归的代价方程带入梯度下降公式即可。求得偏导数项为:
这种每次下降都要求方差和,即需要使用所有实例的梯度下降算法称为批量梯度下降(batch gradient descent)如果在训练集中实例过多的情况下,这一算法的运行速度会极为缓慢。但该方法的优势在于确保参数能收敛至局部最优。
为了弥补批量梯度下降的这一问题,提出了随机梯度下降(stochastic gradient descent)算法。该算法并不在更新参数时对所有实例进行计算,而是对所有参数进行循环计算,每次只使用一个参数去提升模型对于某一个实例的预测能力。这种算法并不能收敛至全局最优,但能够保证尽量接近,同时节省了很多运算时间。 同时也可以逐渐减小学习速率保证准确度。
显然,上述线性回归模型的输出值是可以在整个实数集中取值的。然而有时在实际任务中,输出空间不一定需要这么大;又或者单纯在线性尺度上变化的输出变化幅度太小了,需要一些幅度更大的变化。此时就可以让
举例而言,如果我们认为某个训练集中的标签值可能与特征值具有类似指数函数的关系,即:
这里,函数
对广义线性模型的参数估计一般通过极大似然法进行,而线性回归,逻辑回归等属于广义线性模型的模型,其代价函数的选取也可以从极大似然法中推导出来。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。