这里是斯坦福大学机器学习网络课程的学习笔记。课程地址是:https://class.coursera.org/ml-2012-002/lecture/index

本节内容对应第十周,Lecture17.  回到总目录

~~
实践证明,数据的重要性并不亚于算法本身,所以也有了这句话:
It's not who has the best algorithm that wins, It's who has the most data.
 
机器学习的算法对大数据是很适用的,那么,如何让算法在大数据上高效运行呢?
答案其实就是:并行计算。 
 
梯度下降法的并行实现算法:
前面介绍的机器学习算法中,几乎都用到了梯度下降方法,我们来看下:

【Stanford Machine Learning Open Course】机器学习中的大数据处理

 这个算法,每次迭代时需要计算求和项 

【Stanford Machine Learning Open Course】机器学习中的大数据处理

对于海量数据而言,这个计算会变得很慢。 
那么如何改善呢?答案之一就是把一个求和改成多个求和,让多个机器同时计算
 
我们将上述每次迭代在全部训练集取sum的方法叫Batch Gradient Descent
 
我们可以将BGD算法改成,每次迭代对一个训练样本计算,这个算法叫Stochatic Gradient Descent (SGD),公式如下

【Stanford Machine Learning Open Course】机器学习中的大数据处理

有时一个一个样本计算,迭代次数可能会很多,也可以考虑每次对数个样本进行迭代,这个方法叫做Mini-Batch Gradient Descent,公式如下:

【Stanford Machine Learning Open Course】机器学习中的大数据处理

我们改了算法,那么新的算法是否能收敛呢?
有时并不能收敛到精确的全局最优点,但会在全局最优点附近,也就是会有较小误差。
当然,也可以达到全局最优点,就是每次迭代时将alpha减小,则迭代步长越来越小,趋近于0,就能保证收敛到全局最优点。
 
下面再考虑下如何分析SGD:
1. 用小alpha的话,收敛可能放慢,但效果可能会更好。(红色为小alpha)

【Stanford Machine Learning Open Course】机器学习中的大数据处理

【Stanford Machine Learning Open Course】机器学习中的大数据处理
2. 当将b从1000增加到5000时,cost变化曲线会变得更加光滑。(红色为b较大情形)

【Stanford Machine Learning Open Course】机器学习中的大数据处理

【Stanford Machine Learning Open Course】机器学习中的大数据处理
3. 有时cost并不递减,
  但增加b,又会降低,因为b太小,波动厉害
  增加b,也可能cost仍然不降低,此时你的算法需要去review了

【Stanford Machine Learning Open Course】机器学习中的大数据处理

【Stanford Machine Learning Open Course】机器学习中的大数据处理
4. 有时cost会增加,用smaller alpha
【Stanford Machine Learning Open Course】机器学习中的大数据处理
 

【Stanford Machine Learning Open Course】机器学习中的大数据处理

 
并行计算实践:
上面讲了并行计算的方法了,
并行计算一般用Map-Reduce的方法去执行,这里就不再展开,感兴趣的可以查看这里入门。
 
 
何时使用大数据?
在想用大数据,想用并行计算前,需要确定,你的模型已经由于缺少训练样本而影响效果了,
否则还是在算法上进一步迭代。
 
什么情况下需要增加训练样本呢? 其实前面也讲到过,比如过拟合问题就通过增加训练样本可以提升效果。 

【Stanford Machine Learning Open Course】机器学习中的大数据处理

那么如果你的算法还处在欠拟合状态,则需要通过增加特征,达到样本不够用的状态后再考虑用大数据提升效果。
【Stanford Machine Learning Open Course】机器学习中的大数据处理
 

【Stanford Machine Learning Open Course】机器学习中的大数据处理

 ~~~
 
 
 

相关文章:

  • 2022-02-27
  • 2022-02-22
  • 2022-01-17
  • 2021-06-01
  • 2022-01-19
  • 2022-01-01
  • 2021-06-11
  • 2021-11-29
猜你喜欢
  • 2022-01-19
  • 2021-08-06
  • 2021-12-15
  • 2021-11-21
  • 2021-08-08
  • 2021-11-15
相关资源
相似解决方案