其他分享
首页 > 其他分享> > 吴恩达机器学习笔记 - 大规模数据集学习

吴恩达机器学习笔记 - 大规模数据集学习

作者:互联网

得到一个高效的机器学习的方式之一: 

    “用一个low bias的模型,然后用很大数据训练它”

  -- Andrew Ng

 

001.  先用确定是否用全数据集进行训练

 

 

 

 

 

  右边的图High bias,增加再多训练数据也没用

 

 

 

 

 

 002.  随机梯度下降 - Stochastic Gradient Descent

  Batch Gradient Descent梯度下降中,每迭代一次,参数更新一次,需要对整个样本全部计算一次cost function的导数,计算量大

引入随机梯度下降算法:

  把参数theta稍微修改一点,使其对第一个训练样本的拟合变得好一点,再继续转向第二个样本,稍微修改一点,使其对第二个样本拟合好一点。。。。。,完成一遍之后,再循环从第一个样本开始微调拟合。

  它不需要等到对所有的m个训练样本求和得到整体的梯度,而是对单个训练样本求出这个梯度项,已经开始在优化参数了

   

 

 

 

 对比:

  1)收敛性

    batch 梯度下降会收敛到最优值,stochastic梯度下降最终在非常靠近全局最小值的区域旁边一直徘徊,并不会完全收敛

  2) 迭代次数

    取决于训练样本的大小,stochastic梯度下降通常一次外循环即可,最多10次外循环(10m次);

  3) 预处理

    stochastic梯度下降之前,需对training set进行随机打乱排序

 

003.  Mini-batch梯度下降   

  batch的大小用得多的为10,2-100的取值都是比较典型

 

 

   为啥比随机的快?  

   因为 vectorized implementation,矢量化使得可以并行化计算,加快速度,但是b是一个超参数,Ng一般选择10

 

 004.  随机梯度下降的收敛过程

  batch gradient descent是直接每次迭代画图,

  stochastic gradient descent是1000,3000,或者5000次 迭代画一次图

 

 

 

  画图间隔中迭代次数越多,越平滑(波动小了),趋势越明显,但是会反馈迟点;如果波动非常大,那考虑把次数增加一点(下图左下趋势)

 

 

   经验:

1. 选择一个小点的alpha学习率,可能会找到一组更好的参数,但是也收敛不了,还是会wander徘徊

2. 损失函数不下降,可能是alpha没调对

3. 如果想收敛的话,可以采取alpha可以一直减少趋于0

 

 005.  在线学习

  连续的数据流,数据量free又大,适合建立在线学习的机制,一个特性是可以对正在变化的用户偏好进行调试

 

 

006. Map-Reduce 映射简化 跟data parallelism

  能否并行计算的核心问题:机器学习算法能否表示为训练样本的某种求和

  

  

 

     

 

   quiz:

    

 

     

 

   

 

标签:吴恩达,迭代,梯度,batch,笔记,学习,下降,stochastic,训练样本
来源: https://www.cnblogs.com/leoyes/p/13939004.html