吴恩达机器学习笔记 - 大规模数据集学习
作者:互联网
得到一个高效的机器学习的方式之一:
“用一个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