美文网首页机器学习和人工智能入门
“拨开迷雾看人工智能”-机器学习和深度学习

“拨开迷雾看人工智能”-机器学习和深度学习

作者: 智能加研究院 | 来源:发表于2016-12-29 11:49 被阅读0次


      上一期,我们讲述了人工智能的两大核心是大数据和算法,今天,我们来介绍两个知名的概念:机器学习和深度学习。

     

      什么是机器学习?

      我们用“啤酒与尿布”的经典商业案例来说明。

     


     


      在上个世纪90年代,沃尔玛超市已经是美国最大的零售企业,拥有大量的顾客资源。它采用了先进的计算机技术,随时记录着每天众多顾客购物车中所挑选的商品明细。


      有一天,沃尔玛的技术专家发现了一个有趣的现象:经过大量的顾客购买记录数据分析显示,在购物篮中“啤酒”与“尿布”这两件看上去毫无关系的商品会经常出现在一起;于是沃尔玛尝试把超市的啤酒和尿布两种商品摆在相邻的柜台,结果实行以后销售额得到了显著提升。啤酒和尿布的故事也从此广为流传,成为了商业界和科技界津津乐道的成功典范。


      后来经过调查才发现,这种现象出现在年轻的父亲身上。因为在美国有婴儿的家庭中,一般是母亲在家中照看婴儿,年轻的父亲前去超市购买尿布;父亲在购买尿布的同时,往往会顺便为自己购买啤酒,这样就会出现啤酒与尿布这两件看上去不相干的商品经常会出现在同一个购物篮的现象。


      在啤酒与尿布的案例中,沃尔玛所使用的是一种叫做Apriori机器学习算法,它可以揭示出了机器学习的核心思想:让计算机程序随着数据样本积累,自动获得精确的判断和归纳能力。其中,提供给机器分析的大量数据,在专业领域叫做机器学习的训练集;把现象经过分析、归纳出结果的过程,叫做训练。

     

      什么是深度学习?

      深度学习是机器学习中的一个分支,它们之间的关系可以用下图来展示。我们同样用一个例子来说明。

     

     

      如何教机器识别出一只猫?传统的算法,是通过很多种特征的描述,来定义“猫”,比如大眼睛、有胡子、有花纹等;但即使制定这些规则之后,机器有时难以区分猫和老虎,甚至可能连狗和猫也分不出来。这就是传统的人制定规则,机器学习的方法。


      深度学习的方法是直接给机器数百万张图,告诉它这里有猫,再给它另外数百万张图,说这里没猫,再通过这两个训练集训练一个深度网络。所谓深度网络,你可以理解为一个通过多层算法,每一层各自分工进行计算,最后将各层计算结果合并为一个结论输出的系统。例如深度网络的最底层可以从训练集中的原始像素开始学习,刻画局部的边缘和纹;中层可以把各种边缘进行组合,描述不同类型的猫的器官;最高层可以描述整个猫的全局特征,最后三层综合分析,判断出图中是否有猫存在。


      深度学习则彻底颠覆了人造特征的传统机器学习方法,不再需要大量人工设计特征;开启了数据驱动的自我学习范式——由数据自提取特征,计算机自己发现规则,进行自学习。深度学习最大的优势在于可以减少参数,因为它能够重复利用中间层的计算单元;但这也要去它需要超强的计算能力,以及海量数据的输入。


      斯坦福大学的计算机博士曾用托尔斯泰的小说《战争与和平》来训练深度网络,每训练100个回合,就叫它写文章。100个回合后,机器知道要空格,但仍然有乱码;500个回合后,能正确拼写一些短单词;1200个回合后,有标点符号和长单词;2000个回合后,已经可以正确拼写更复杂的语句。


      我们之前介绍过什么是监督学习和无监督学习,深度学习更偏向于无监督学习中的一种(仅有少量的深度学习算法是监督学习)。它已经在现实中摧枯拉朽般地实现了各种任务,从Google AlphaGo,无人驾驶汽车,预防性医疗保健,到更好的电影推荐等,拓展了人工智能的领域范围,未来将有希望替代监督学习成为人工智能的主流算法派别。

     


      小结:

      今天我们介绍了机器学习和深度学习。

      机器学习是一类人工智能算法的统称,它的核心思想是让计算机程序随着数据样本积累,自动获得精确的判断和归纳能力。

      深度学习是机器通过多层网络计算,自提取数据特征,自己发现规则,进行自学习的系统。它未来将有希望替代监督学习成为人工智能的主流算法派别。

     

      预告:

      下一篇文章,我们会以AlphaGo为例子,介绍一下神经网络和蒙特卡洛算法,如果你感兴趣,请留意关注微信公众号:智能加研究院

     

    相关文章

      网友评论

        本文标题:“拨开迷雾看人工智能”-机器学习和深度学习

        本文链接:https://www.haomeiwen.com/subject/mgnuvttx.html