大数据下的机器学习

大数据下的机器学习

目前的数据可谓是呈指数级增长,在这样的大数据氛围下,机器学习反而会表现得更好,毕竟有一句话是这么说的”It’s not who has the best algorithm that wins. It’s who has the most data.”。但是一些机器学习的算法在数据量较大的情况下,由于计算所耗时间也会不断增加,所以可以将算法针对大数据的情景进行一定的修改,减少计算量。

1. learning with large datasets

通过画学习曲线来判断多大的数据集就可以进行算法了。如下图,左边的图表示数据集还需要不断增加,但是右边的图表示当数据等于1000的时候就可以不需要增加数据量。
数据量大小对比
之前我们学习的都是批量的梯度下降算法。算法思想如下:
批量梯度下降算法

那么梯度下降的思想是什么呢?接下来将进行阐述。
批量梯度下降和随机梯度下降
随机梯度下降的过程中,每次只需要计算一个训练数据的导数即可。每循环一次theta就向最优递进一步。那么外层循环多少次呢?一般是1-10次就足够了。

2. mini-bath gradient descent

mini-batch gradient descent
从上图可知,mini-batch gradient descent的定义。其中b=10,数据集的大小为1000,那么所以每次i的循环是加10,循环次数为1,11,21,31等等。Mini批量梯度下降算法比批量算法要稍微快一些,它是介于批量和随机梯度下降算法之间的算法。但是这个算法也有一定的缺点,那就是有额外的参数b,需要调试这个参数,这也是需要花时间的一件事情,当b等于m的时候,Mini梯度下降算法就相当于批量梯度下降算法了。

3.随机梯度下降收敛

怎么确保随机梯度下降函数是收敛的呢?本小节将会谈论这些问题。并提出如何选择合适的学习效率α。
随机梯度下降
在随机梯度下降算法中,不需要画出每次计算的代价函数,只需要对最后的1000次代价函数求平均画出来就好。这个计算必须在下一次迭代之前进行。
随机梯度下降代价曲线的情况
上图表示的是随机梯度下降函数中代价函数曲线会出现的各种情况。

4. online learning

目前许多大型网络公司或者网站都使用了在线学习算法,从大量进出网站的用户进行学习。通过用户数据流来进行学习,来加强网站的优化,比如根据用户的偏好,实时的推送相关的信息。
在线学习算法应用
上图展示了在线学习算法的一个应用实例,在线学习算法和随机梯度下降算法很相似,只不过它采用的不是固定的数据集,而是数据流。对于变化的用户数据能够及时应变。

5.map reduce and data parallelism

相比梯度下降算法,映射化简方法更能处理大规模数据的情况。
映射化简的思想如下:
映射化简1
映射化简2
对于映射化简,其实就是将数据并行处理,看能否用映射化简的时候,先看看算法能不能拆分能结果数据之和。
可以将映射化简放在多台计算机上,也可以放在一台具有多个CPU以及多核的计算机内实现。当然,目前实现了映射化简的系统也已经出现了,比如hadoop等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值