小夕昨晚没有发文章,却收到了一个大红包和好多晚安,好受之有愧..>_<...谢谢你们喵。
路人戊:小夕,我们身处大数据时代了,好厉害呢。
小夕:嗯嗯,哪里厉害了呢?
路人戊:对哦,哪里厉害了呢。
小夕:...
前言
在大数据的背景下,Adaboost、随机森林、深度学习等机器学习模型大放光彩,而SVM的光环则逐渐暗淡了下来。那么是什么造就了这些呢?大数据与小数据的机器学习又有什么不同呢?
小数据时代
首先,小夕带你回顾一下经典的小数据机器学习过程:
文字描述一下流程:
1、从各处搜刮大自然的真实模型的样本,得到小数据集;
2、根据机器学习算法,细嚼慢咽小数据从而得到机器学习模型;
3、利用交叉验证反刍样本集,优化模型的各个参数。并利用测试集测试模型泛化能力。使得模型最接近大自然的真实模型。
已经学过机器学习的喵喵知道,泛化(generalization)能力决定一个机器学习模型(包括预测、分类、聚类等)的精度。所以哪怕你训练出来一个模型,它在你拥有的小数据集上做到了100%的准确度,但是一旦将该模型用于大自然真实模型中,很容易出现全面崩盘,即准确度大幅度下降的问题。为什么呢?
显而易见,是因为小数据集不能代表整个大自然真实模型,也就是不能代表全集。一个极端的例子就是给你1000张狗的图片库,让你训练出来一个模型来分类世界上所有的猫。那这个任务是任何机器学习模型都无法完成的。
所以在小数据时代,人们的关注点在于如何提高机器学习模型的泛化能力,也就是如何尽可能的压榨小数据上的那点可怜的信息量,来尽可能的还原出小数据集背后的超大真实模型。这一时代的理论巅峰就是支持向量机(SVM)。
大数据时代
到了大数据时代,也就是我们所处的时代,情况变成这个样子了:
这代表什么意思呢?小夕再来嘲讽一下媒体宣传。
在媒体的大肆宣传下,好像数据量达到多少TB(1TB=1024GB)或者多少PB(1PB=1024TB)就算大数据,这种定义实在太忽悠老百姓啦,爱思考的喵喵肯定觉得这种说法怪怪的。
想象一下,有的老司机从网上下载了1PB的爱情动作大片,能说这位老司机拥有了大数据吗?
比如对于一个步态识别的问题,仅仅拿着老司机下载的1PB的视频的话,模型会是这个样子的:
此时的1PB数据集中,大部分信息都是冗余的,而去掉这些冗余信息后跟小数据集没什么区别了,远远无法代表全集。
所以呀,一个比较准确的说法是:大数据不仅很大,而且很复杂。(来自Wiki百科)
这里的一个延伸含义就是:大数据可以代表全集。
回到主线上来,既然我们都拥有全集了,那么机器学习模型的泛化能力还是研究重点吗?
当然不是咯。你只需要尽可能多的吃掉数据集,将机器学习模型训练出来就可以啦!当这个机器学习模型都可以100%拟合你的大数据集的时候,自然就可以几乎100%的拟合全集了。(应该很好理解的吧)
全集都搞定了,所以也不必惊讶模型的精度怎么那么高了吧╮(╯▽╰)╭
所以这种暴力美学在工业界成功应用了。当我们手头有了一个饭量大到可以充分消化大数据集的机器学习模型时,当我们的吃饭速度足够快时,BOMB~爆炸啦。此时的机器学习模型,很多人都能猜到深度学习模型,实际上远不止这一个大饭量的模型啦。而这里的吃饭速度,就是靠并行、分布式计算等高性能计算技术来提升咯。
咦?这么看来,我们只需要打开淘宝的服务器链接买买买不就行啦~还有什么好研究的呐QAQ。
导师:“(╯°Д°)╯︵ /(.□ . \) 给!我!退!学!”
小夕:“(。 ́︿ ̀。)”
大数据的学习方式
咳咳,当然不能这样啦~暴力法在工业界很有用,但是学术界没钱呀(噗,千万别当真)。换句话说,绝大部分企业和绝大部分机器学习任务是难以靠暴力美学来生存和解决的。所以大数据下的机器学习依然有非常多的研究点。
表示:
首先,我们要研究新型的数据结构、数据库来对数据进行存储和表示呀,这方面的优化会使得训练环节更加高效。
重采样:
另外,大数据中肯定有非常多的冗余、脏乱的信息。因此,给数据瘦身肯定可以大幅提高训练效率和精度。因此我们可以从大数据重采样出一部分数据,并辅以降维操作进而得到数据子集。
而这个子集虽然规模远远没有大数据集大,但是其内容非常丰富,依然可以代表全集。简单来看就是这样的:
虽然是子集,但是规模也不会太小呀,再高效的模型、世界上再快的服务器也很难经得住这么大的数据量。所以怎么办呢?
训练:
并行训练呗。
比如一个典型的神经网络中,同一层的各个隐结点的训练都是相互独立的,所以我们可以让每一台服务器专门负责一个隐结点或者某几个结点的训练呀~
比如集成方法中,随机森林、Adaboost等将多个弱分类器组合在一起进行决策,那么我们可以让每一台服务器专门负责一个或几个弱分类器的训练~
而与之对比,传统的机器学习模型如Logistic、SVM等就难以并行训练,何况还存在其他问题。所以就不必惊讶为什么大数据背景下很多传统机器学习模型不流行了吧╮(╯▽╰)╭
而大数据的机器学习除了要考虑并行训练外,还常常考虑流式数据的在线训练问题以及混合数据的半监督学习问题等,不再一一展开啦。
最后一句话总结一下:
小数据机器学习的核心是模型的泛化;
大数据机器学习的核心是数据的分治。