Standard机器学习-大规模数据集的机器学习

在实际的机器学习的应用中,我们需要使用的是很大规模的数据集,如何在上面训练我们的机器学习算法,是一个很重要的问题。而且当我们的数据集足够大的时候,相近的模型就可以取得更好的效果。
在这里插入图片描述
那么如何应对这种大规模的数据集呢?以线性回归为例,在求解代价函数时,我们通常使用的是梯度下降法,其中就需要计算训练集的误差的平方和,如果多次迭代的话,那计算量将会是大到我们难以处理。所以,首先要做的事就是看是否需要这么大的数据集才能达到要求的效果,如果使用较少的数据同样足够好的话,那么再多的数据就没有必要了。我们可以根据学习曲线来观察训练的过程,当模型的效果变化不再明显时,说明数据量已经足够了。
在这里插入图片描述

在随机梯度下降法中,每一次迭代都会有一个求和的过程存在,当数据很多时,计算量将会很大。故我们可以使用随机梯度下降法(stochastic Gradient Descent)来代替它。
在这里插入图片描述

在随机梯度下降法中,我们定义代价函数为单一的一个训练数据的代价,它在每一次计算之后便更新参数θ,而不需要首先将所有的训练集求和。这样计算量就大大的下降了
在这里插入图片描述
随机梯度下降的步骤大致如下:
• 将数据洗牌
• 执行迭代过程
在这里插入图片描述

而小批量梯度下降法是介于上面提到的两种算法之间,每次计算设置好的b个数据便更新参数θ。在实际使用中,通常设置b为2-100之间,这样可以使用向量化的方式来训练实际,加快速度

在这里插入图片描述
接下来介绍了随机梯度算法的调试和学习率的选择问题。在批量梯度下降法中,绘制J关于迭代次数的函数图,根据图像来判断是否收敛,但是当数据很多时,有不太可行。在随机梯度下降法中,每一次更新完θ后计算一次代价值,然后在固定的每x次迭代后,计算这x次代价的平均值,绘制平均值关于x之间关系的函数图,看图像的走势判断是否收敛。
在这里插入图片描述

将上面的过程绘制大概情况如下图所示,当图像呈不断下降的趋势时,那么计算是收敛的,如果图像是如图三所示的情况,那么说明我们的模型自身存在问题,需要进行调整;如果图象是不断上升的,可能就需要选择一个更小的学习率了。
在这里插入图片描述
比如可以令学习率随着迭代次数的增加而不断的减小,这样随着不断地逼近全局的最小值,我们就迫使算法收敛而并非在最小值附近徘徊。但是通常使用并不需要到达全局的最小值,故学习率通常很具经验使用一个小的固定值。
在这里插入图片描述

在很多现实的问题上,我们需要处理的数据不再只是固定的数据集,还有就是不断更新的数据,它就要求算法能对数据流而非静态的数据进行学习。它与梯度下降法有些类似,对单一的实例进行学习,而非对一个静态的训练集进行循环。这样做的话,一旦一个数据结束训练就将其丢弃,不需要再存储。好处就是可以很好的是适应用户的倾向性,算法可以针对用户的当前行为不断的更新模型以适应用户。
在这里插入图片描述

在处理大规模的数据时候,还可以使用Map Reduce技术,将数据集分配给多台的计算机,让每一集计算机处理一部分数据,然后再将计算的结果进行汇总,这样做就加快了学习的速度。例如我们有400个数据和4台计算机,就可以将批量梯度下降求和任务分配给4台计算机进行处理,然后再汇总处理。
在这里插入图片描述
现在随着硬件技术的发展,计算机已经可以有多个多核的CPU,而且这种分布式的技术也相当的成熟了,所以在大规模的数据集的基础上,将机器学习和这种技术进行结合,将起到很重要的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值