【机器学习笔记】学习大数据集

本文主要探讨了在处理大数据集时,机器学习中的随机梯度下降、mini-batch梯度下降及其收敛策略。随机梯度下降通过单个样本更新参数,避免了内存问题,而mini-batch则在速度和效率间取得平衡。此外,文中还提到了在线学习的应用以及Map-reduce在分布式计算中的作用。
摘要由CSDN通过智能技术生成

学习大数据集

一、随机梯度下降

首先来看批量梯度下降
在这里插入图片描述
然后对所有样本同时进行更新参数(注意求和的标记),
在这里插入图片描述

对于随机梯度下降定义:
在这里插入图片描述
过程:
1、随机打乱数据集
2、遍历每个样本1…m,分别对每个样本进行参数更新
在这里插入图片描述
(后面部分是每个样本cost对 Θ \Theta Θ的偏导,不是总体训练误差的偏导)
【注意】这里和批量梯度下降不同,这里是对每个样本进行更新,而不是所有样本同时更新。就避免爆内存。也就是用第一个样本进行参数更新,然后再利用第二个样本去更新参数,使得 Θ \Theta Θ一直在拟合每一个样本,从而达到拟合全部样本的目的。

因此在迭代过程中,批量梯度下降是始终朝着最优解的方向去的;而随机梯度下降,由于是拟合每一个样本,因此会出现:拟合第一个样本时,朝着最优解方向去;拟合第二个样本时,又反方向了;第三个时,又好了…这样随机迂回的,但是总体趋势还是朝着最优解方向去的。
可以发现随机梯度下降比批量梯度下降更快(当训练集很大很大时),因为一般来说只需对整个训练集遍历一次就差不多可以到达全局最小,如果不够就再遍历一次;但是对于批量梯度下降,每次更新参数都要所有样本一起,因此数量一大就很慢。

二、mini-batch梯度下降

批量梯度下降:每次更新参数需要所有样本
随机梯度下降:每次更新参数只需一个样本
mini-batch梯度下降:每个更新需要b个参数,b就是mini-batch大小。
例如,b=10,那么,
在这里插入图片描述

可以发现,更新参数需要有几个样本,式子里就有求和以及平均。

同样的,我们可以知道mini-batch会比批量梯度下降更快(因为每次只需要b个样本就可以更新参数)。而对于随机梯度下降,mini-batch会更好的原因是向量化。有向量化的存在,可以使b个样本同时运行,而速度和一个样本是一样的,但是总体遍历次数减少了(批量梯度下降不太能用向量化,因为样本数量太多太多时,向量维度没有这么大)。

三、随机梯度下降收敛 + 选择合适的学习率

批量梯度下降检查收敛:
1、计算 J t r a i n ( Θ ) J_{train}(\Theta) Jtrain

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值