机器学习(第十周)--适用大数据的算法
1、随机梯度下降
批量梯度下降在运用到样本数据较多的情况下,计算量会非常的大,更适合选用随机梯度下降方式
批量梯度下降,在计算θ值过程中每次迭代要读入全体样本数据,每次计算m个加和项迭代
随机梯度下降,只考虑一个样本的计算结果,每次迭代只计算一个样本的θ迭代
随机梯度下降
两种算法迭代方式是不同的
批量梯度下降,每次迭代就会逐渐收敛,最终收敛到中心点
随机梯度下降,随机梯度下降收敛过程跟样本选取有关,迭代过程会较为随机,最终会集中在收敛区域附近
最小批量梯度下降方法是介于批量梯度下降和随机梯度下降之间的算法,如果有较好的向量实现算法,最小批量梯度下降下降效果要好于随机梯度下降
举例如下:
随机梯度下降算法如何选择学习
左上角图代价cost图代表下降已经收敛
右上角图代表cost图增大最小梯度下降的样本量可以更好的收敛
左下角图代表代价函数噪声太大看不出明显的下降,可以尝试用更大的样本训练,检验成本函数是否在下降;如果更大的样本训练结果仍然比较平台,说明你的算法没有很好的学习样本信息,需要调整学习速率或者特征值,或者其他的内容
右下角图代表学习速率太大,需要降低学习速率
2、在线学习算法
以逻辑回归分类算法为例,分类算法中数据舍弃了样本标记,因为在线学习算法中适用于大型的网站,数据本身就是自由的,获得输入的数据量也较大,在学习过之后就舍弃掉了该数据,没有必要再进行标记。
输入数据发生变化之后,参数θ也会在学习过程中自我进行适应
在线产品搜索举例
3、Map-reduce
使用Map-reduce进行机器学习之前,首先需要确认你的算法是否为对训练样本求和计算
通过把大量的计算过程拆分成多个子任务分配给不同的电脑运算,提高执行的效率,最终在汇总在一个电脑上汇总最终计算结果
Map-reduce结构: