吴恩达机器学习—大规模机器学习(14)

1. 大型数据集的学习

在低方差的模型情况下增加数据集的规模可以帮助获得更好的结果。当数据集很大,是个多达100 万条记录的训练集时的应对方法。如果采用之前学习的批量梯度下降,每一次梯度下降迭代,都需要计算训练集的误差的平方和,计算代价非常大。
面对大规模训练集时,首先应该做的事是:绘制学习曲线来帮助判断去检查这么大规模的训练集是否真的必要。必须要大规模的数据时候,批量梯度下降方法不再适应,需要使用其他的方法。

2. 梯度下降

(1)随机梯度下降

随机梯度下降法每次更新 θj 只会用当前遍历的样本。迭代过程中不像批量梯度下降直接下降到最优,还是曲折波动的。
在这里插入图片描述上图反映了相较于批量梯度下降法,随机梯度下降法的曲线就显得不是那么平滑,而是很曲折了,其也倾向于找到局部最优解而不是全局最优解。因此,需要绘制调试曲线来监控随机梯度的工作过程是否正确。一般每完成 多次(1000)迭代,求取平均误差并进行绘制,得到误差随迭代次数的变化曲线。
遇到曲线波动,无明显下降的时候,并不意味着学习率出了问题,有可能是平均间隔取的太小,当发现明显上升态势的曲线,就需要减小学习率。
另外,学习率 α 还可以随着迭代次数进行优化: α = c o n s t a n t 1 i t e r a t i o n N u m b e r + c o n s t a n t 2 α=\frac {constant1}{iterationNumber+constant2} α=iterationNumber+constant2constant1这样,随着迭代次数的增多,我们的下降步调就会放缓,避免出现抖动
随机梯度下降法工作前,需要先乱序数据集,是的遍历样本的过程更加分散
迭代:
f o r i = 1 , . . . , m : for\quad i=1,...,m: fori=1,...,m
θ j = θ j − α ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) j , f o r j = 0 , . . . , n \quad \quad \quadθ_j=θj−α(hθ(x(i))−y(i))x(i)j, \quad for \quad j=0,...,n θj=θjα(hθ(x(i))y(i))x(i)j,forj=0,...,n

(2)mini-batch

Mini 批量梯度下降法是批量梯度下降法和随机梯度下降法的折中,通过参数 b 指明了每次迭代时,用于更新 θ 的样本数。假定 b=10,m=1000 ,Mini 批量梯度下降法的工作过程如下:
f o r i = 1 , 11 , 21 , . . . 991 : for \quad i=1,11,21,...991: fori=1,11,21,...991
θ j = θ j − α 1 10 ∑ k = i i + 9 ( h θ ( x Z ( i ) ) − y ( i ) ) x j ( i ) , f o r j = 0 , . . . , n \quad \quad \quadθ_j=θ_j−α\frac{1}{10}\sum_{k=i}^{i+9}(h_θ(xZ^{(i)})−y^{(i)})x^{(i)}_j,for \quad j=0,...,n θj=θjα101k=ii+9(hθ(xZ(i))y(i))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值