和大数据一样,机器学习(MachineLearning, ML)是一个热门而又有略有误导性的名词。
字面上它让不禁让人联想到一群机器人排排坐上自习的科幻场景,然而实际上它指的是让计算机具备像人一样的学习能力的高(qi)端(ji)技(yin)术(qiao),进而从堆积如山的数据中寻找出有用的知识。
听起来有些不可思议,真的有这种黑科技吗?
计算机的正确打开方式难道不是喂给它一串命令,然后愉快地看它乖乖执行么?
除了0和1啥也不认识的呆呆计算机,怎么还能像人类一样“学习”了呢?
嘿嘿,这个还真可以有。别急,且容我慢慢道来。
在讨论计算机如何学习之前,不妨先来看看我们人类是如何学习的。
人类的学习按逻辑顺序可分为三个阶段:输入,整合,输出。大家都多多少少学过英语,我就拿学英语来举例好了。
在入门时我们都逃不出背单词的苦海,不积累一定的词汇量后续学习都无从谈起,这是输入阶段。
然而很快我们就会发现,即使背完一本牛津大辞典也是没法和歪果仁愉快交流的。
我们必须学习语法,学习一些约定俗成的习惯用语,才能知道如何把单词组合成地道的句子,这便是整合阶段。
最后,有词汇量作基石,又有了语法规律作为架构,我们就能在特定场合用英文来表达自己的想法。
这是输出阶段,也正是我们学习英文的初衷。
学习其他东西也是一样,概括来说,都要经历从积累经验到总结规律,最终灵活运用这三个阶段。
对此,我们完全可以对人类的学习给出如下定义:
人类的学习是一个人根据过往的经验,对一类问题形成某种认识或总结出一定的规律,然后利用这些知识来对新的问题下判断的过程。
毫不夸张地说,学习能力绝对是人类打猩猩时代起憋出的大招,在它的帮助下人类一举登顶食物链之巅。
之后经过了数千万年的自然选择,学习能力弱的要么被环境淘汰要么被同类坑害,都死绝了。
学习这套流程已深深写入了我们的DNA里,一代比一代玩得溜。
故事到这里似乎直指人类称霸宇宙的happy ending了,然而我们还忽略了一件事,就是人类的脑容量和寿命毕竟有限。
即便聪明如爱因斯坦,发现相对论前前后后也要耗费数十年。即使再有更聪明的人出生,也得从1+1abc学起,达到爱因斯坦的水平小半辈子也过去了。
由于这个限制,纵使人类有超级的学习能力,还是很难让现有知识爆炸性增长的。
帮助人类突破这个瓶颈的,正是计算机。
人类学习能力强,但记性差,反应慢,还容易坏。计算机虽呆,但容量大,计算快,还稳定。
怎样融合这两者的优势呢?
显然最简单省事的方法就是手把手教会计算机学习了~(是谁说不如植入芯片让人脑变电脑的,你出来,我保证不拿你去做实验(微笑脸))
那么,应该怎样教会计算机学习呢?
人类可以从自己获得的经验中学习知识,然而计算机没法读书万卷也做不到阅人无数,只能从我们投喂给它的数据中学习规律了。
我们当然希望计算机学到规律之后立马智商爆表,分分钟就能自己用新知识独当一面啦。
不难想象,一旦这个设想成为现实,计算机就能以类似人类的方式解决很多复杂而多变的问题。
计算机解决问题与人类思考的经验过程将会趋同,不过它能考虑更多的情况,执行更加复杂的计算,从而产生及其可观的效益。
那么问题来了,怎么指导计算机从数据中总结规律呢?
几十年来,很多计算机科学和应用数学界的学者们总结出了不少教会计算机的办法,它们就是各式各样的机器学习算法。它们是数据科学家们胯下的挖掘机,担负着将海量数据化腐朽为神奇的使命。
至此,我们终于可以对机器学习下这样一个定义了:
机器学习是指用某些算法指导计算机利用已知数据得出适当的模型,并利用此模型对新的情境给出判断的过程。
由此看来,机器学习的思想并不复杂,它仅仅是对人类生活中学习过程的一个模拟。
而在这整个过程中,最关键的是数据,是数据,是数据!重要的事情说三遍。
如果说模型是我们希望造出来的火箭,那数据就是它的燃料。
数据量直接决定了我们的火箭只是个概念玩具,还是能够载人登月,还是可以飞出太阳系探寻智慧生物。
这也是机器学习和大数据是如此密不可分的原因。不得不说在这一点上计算机是远远比不上人脑的。
人类学习能力的可怕之处在于,能够通过极其有限的样本归纳出泛化能力极高的准则。
要知道,AlphaGo经过和自己左右互搏数千万局才达到现今的棋力,而和他不相上下的李世石,穷其一生打谱恐怕也到不了这个数目的百分之一。
正所谓“No data,no intelligence”。事实上,只要数据量足够大,机器学习算法的选择反倒没有那么重要了。
打个比方的话,数据和算法之于计算机好比阅历和智商之于人类。丰富的阅历所带来的智慧,自然不是靠一点小聪明就能驾驭得了的啦。
AlphaGo就是一个智商20棋龄10000年的老妖精,打败李世石主要靠的是经验。
机器学习根据所处理数据种类的不同,可以分为有监督学习,无监督学习,半监督学习和强化学习等几种类型。
实践中应用较多的也就是前两种。
所谓监督学习,就是说数据样本会告诉计算机在该情形下的正确输出结果,希望计算机能够在面对没有见过的输入样本时也给出靠谱的输出结果,从而达到预测未知的目的。
就像一个学生通过做多套高考模拟卷并订正答案的方式来提高高考成绩。
在这种情形下,数据就像是监督计算机进行学习的教师,故而得名。
根据输出结果是离散值还是连续值,监督学习可以分为分类问题和回归问题两大类。
他们在文字、语音、图像识别,垃圾邮件分类与拦截,网页检索,股票预测等方面有着广泛应用。
而无监督学习,是指数据样本中没有给出正确的输出结果信息。这就像做了好多套没有答案的模拟卷,最后还要去高考。
听上去是不是既惊悚又不靠谱?
但其实做没有答案的试卷也是能学到很多有价值的信息的,比方说哪些题出现频率高,那些题爱扎堆考,等等。
无监督学习希望从数据中挖掘的正是这一类信息,常见的例子有聚类,关联规则挖掘,离群点检测等等。
看到这里,亲们对机器学习的来龙去脉是不是有一些了解了呢?欢迎关注普林大数据学院“机器学习”科普系列连载。我们将在下一期介绍线性回归。
本文由 普林科技(微信公众号:普林科技)投稿 数据分析网 发表,并经数据分析网编辑。版权归作者所有,转载此文请与作者联系。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。