Coursera.MachineLearning.Week10

Machine Learning Week10 : Large Scale Machine Learning

Large Scale Machine Learning

1. Gradient Descent with Large Datasets

1.1 Learning with large Datasets
左侧是高方差,右侧是高偏差;对于高方差来说增大数据集是有效的改进方法,对于高偏差不需要增大数据集。

Learning with large datasets

1.2 Stochastic Gradient Descent【随机梯度下降】

batch gradient descent

随机梯度下降:

  • 随机打乱dataset
  • 循环遍历m个训练样本,用每个训练样本进行θ调整,不需要读入全部的m个数据就已经开始将参数朝着全局最小值方向调整了。


    Stochastic gradient descent

随机梯度下降外层循环通常1-10次,有时一次就能达到一个不错的效果;每次更新θ,大多向着cost function最小的方向进行;最后的结果是在全局最优较小的附近范围内。


Stochastic gradient descent

1.3 Mini-Batch Gradient Descent【小批量梯度下降】
有时比随机梯度下降快一些

Mini-batch gradient descent
Mini-batch gradient descent

1.4 Stochastic Gradient Descent Convergence

随机梯度下降算法在每步更新θ前,计算cost(θ,(,)),每1000次迭代后计算这1000个cost的均值并通过画图观察SGD是否在收敛。


Checking for convergence
  • 左上.红线相对于蓝线学习速率α更小,cost振动频率较低,可能会获得更优的结果,但是与学习速率较大的结果差异一般不大;
  • 右上.红线增大了平均的训练样本数,如从1000改为5000;
  • 左下.蓝线因为噪声太大没有收敛;红线是5000个样本取平均的运行效果,能够看出收敛趋势;粉线也是5000个样本的平均运行效果,但是没有收敛趋势,需要调整学习速率、或者改变特征变量等;
  • 右下.算法在发散,因此需要使用一个较小的学习速率α。
  • 综上,曲线上下振动噪声较大时,可以采用更多数据的平均值;如果曲线上升,可以换一个小点的α值。


    Checking for convergence

大多随机梯度下降算法中,学习速率α是保持不变的,因此最终得到的一般是全局最小值附近的一个值;如果想要得到更优的解,可以随运行时间减小α的值,但这种做法需要确定一些额外的参数。


Stochastic gradient descent & Learning rate α
2. Advanced Topics

2.1 Online Learning

当在线网址数据流足够大的时候,每次用户做了决定就对参数集θ进行更新,不重复使用数据;如果数据流不够大,应该像之前那样取一定得数据集进行训练;当进行动态更新θ时,更加能够应对价格敏感情况。


Example.Logistic Regression

预测点击率(Click through rate)


Example.Learning to search

2.2 Map Reduce and Data Parallelism

Map reduce
Map reduce. in Cores are the same
Map-reduce
Question.1
Question.2

你可能感兴趣的:(Coursera.MachineLearning.Week10)