本文是学习Andrew Ng的机器学习系列教程的学习笔记。教学视频地址:
https://study.163.com/course/introduction.htm?courseId=1004570029#/courseDetail?tab=1
处理大规模数据:
75. Large scale machine learning – learning with large datasets
先随机抽取小量数据进行模型训练,当模型评估很差时增加数据量、特征来优化模型:
合理的或高效的计算方法方法:随机梯度下降stochastic gradient descent、减少映射Map Reduce
76. Large scale machine learning – stochastic gradient descent
对基础的梯度下降算法进行优化->随机梯度下降,使得算法可以优化大数据集;
普通(批量)的梯度下降也叫做 Also called Batch gradient descent,每次迭代所有数据:
随机梯度下降步骤:
- Randomly shuffle the data set
- Repeat : update the theta,
每次引入一个训练样本来优化参数;
随机梯度下降每次引入一个训练样本,可能下降曲线比较曲折;最终得到与全局最优解很接近的结果,在实际应用中已经足够了;
外部循环1-10次就够了,训练集很大时1次就好了;
77. Large scale machine learning – mini-batch gradient descent
Mini-batch gradient descent sometimes faster than stochastic gradient descent
Mini-batch gradient descent is likely to outperform Stochastic gradient descent only if you have a good vectorized implementation.
Mini比随机梯度算法更好,仅当你有一个好的向量化方法。
78. Large scale machine learning – Stochastic gradient descent convergence
随机梯度下降收敛Stochastic gradient descent convergence
每1000次迭代,计算一次cost,绘制
当绘制的图形噪声太多、上下波动厉害,就增大求均值样本的数量比如5000;
当没有收敛时,就要调整学习效率和特征数量了;
降低学习效率:
79. Large scale machine learning – online learning
大数据机器学习机制-在线学习
Model to deal a continuous flood or continuous stream of data coming in.
要有持续的数据流,比如网站的用户很多时;
特性:可以适应变化的用户偏好 adapt to changing user preferences. 比如涌入新的用户群,算法可以适应新的数据;
可以保存数据流到固定数据集然后用标准的算法进行学习;但当可以获得大量数据流时,没必要保存然后学习,可以采用在线学习,从不断产生的数据中持续学习;
80. Large scale machine learning – map-reduce and data parallelism
使用map-reduce来处理规模更大的数据
把对每个样本进行计算求和的过程分配给多台电脑进行,然后汇总;
包含累加项的算法都可以用map reduce来加快计算:
也可以将计算任务分给多核处理器:
可向量化的学习算法,向量化的函数会包含并行计算的功能,可以不考虑map-reduce