[W10]大数据学习
大数据学习
我的学习算法有时候会面对大数据的考验,我们需要做一些优化才能保证速度
随机梯度下降
传统的梯度下降法每次会遍历整个集合,效率较低,随机梯度下降不必每次都遍历,效率较高
首先引入几个公式
算法步骤
1.随机排序数据集合
2.遍历随机的数据,使用如下公式进行学习
迷你梯度下降法
迷你梯度下降是一个折中的办法,不像梯度下降每次使用全部,也不是只使用一个数据。
迷你梯度下降一次只使用少量数据,一般范围是2-100
公式如下
随机梯度下降的收敛
我们怎么判断什么样的下降率a是合适的?我们如何确定已经到达了全局最优解的点?
我们可以每隔1000个数据绘制一个cost点
使用较小的下降率会更有可能获得更好的解,因为最终我们的结果会在最优解附近徘徊,小的小将率会让跳跃步幅减小
一个有效的获得全局最优解的办法就是,缓慢的调整下降下降率a,例如下面这个公式
在线学习
对于持续不断的数据流,我们可以使用一个无限循环,每次有输入我们就用其训练,并更新,这就是在线学习。
映射缩减和数据并发
如果我们的数据集合可以被分为多个子集,而且如果你有多台机器,那么我们可以把任务分割为子任务,让每台机器执行一个,这样就能加快我们的运算。
例如对于梯度