注:这是一份学习笔记,记录的是参考文献中的可扩展机器学习的一些内容,英文的PPT可见参考文献的链接。这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知,我会尽快删除。这部分本应该加上实验的部分,实验的部分在后期有时间再补上。
可扩展机器学习系列主要包括以下几个部分:
概述 - Spark分布式处理 - 线性回归(linear Regression) - 梯度下降(Gradient Descent) - 分类——点击率预测(Click-through Rate Prediction) - 神经科学
梯度下降法是一种迭代型的优化算法,根据初始点在每一次迭代的过程中选择下降法方向,进而改变需要修改的参数,梯度下降法的详细过程如下:
具体过程如下图所示:
简单来讲,凸优化问题是指只存在一个最优解的优化问题,即任何一个局部最优解即为全局最优解,可以由下图表示:
非凸优化是指在解空间中存在多个局部最优解,而全局最优解是其中的某一个局部最优解,可以由下图表示:
最小二乘(Least Squares),岭回归(Ridge Regression)和Logistic回归(Logistic Regression)的损失函数都是凸优化问题。
为了求解优化问题f(w)的最小值,我们希望每次迭代的结果能够接近最优价w∗,对于一维的情况,如下图所示:
若当前点的斜率(梯度)为正,则选择的方向向左,若当前的斜率(梯度)为负,则选择的梯度的方向是向右。
负的斜率即为下降的方向。
对于上述的一维的情况,有下述的更新规则:
其中,αi\alpha _i称为步长。对于二维的情况,如下图所示:
其中,函数值由黑白色表示,黑色表示更大的值,箭头表示的是梯度。
负的梯度是最快的下降的方向。
此时更新的规则如下:
对于步长α\alpha 的选择,若选择太小,会导致收敛的速度比较慢;若选择太大,则会出现震荡的现象,即跳过最优解,在最优解附近徘徊,上述两种情况如下面的两张图所示:
因此,选择合适的步长对于梯度下降法的收敛效果显得尤为重要。
在实践的过程中,人们发现了不同的步长形式,一种通用的步长设置方法如下:
其中,α 是一个常数,n表示的是训练数据中特征的个数,ii表示的是迭代的代数。
对于梯度下降法,有如下的一些优缺点:
对于梯度下降法中的更新规则:
并行的计算方法如下:
若需要PDF版本,请关注我的新浪博客@赵_志_勇,私信你的邮箱地址给我。