啥是AI、机器学习与深度学习?

举报
大数据杨锋 发表于 2017/10/11 10:10:20 2017/10/11
【摘要】 作为一个大数据从业人员,相信大家整天都在被AI、机器学习、深度学习等一些概念轰炸。有时候甚至有点诚惶诚恐,一方面作为一个“业内人士”而自豪,二方面觉得新概念一个接一个,自己不甚了解,有点恐惧。我一直相信一句台词——“喝了敌人的血,下次见面就不会再怕了”。学习知识亦然。

作为一个大数据从业人员,相信大家整天都在被AI、机器学习、深度学习等一些概念轰炸。有时候甚至有点诚惶诚恐,一方面作为一个“业内人士”而自豪,二方面觉得新概念一个接一个,自己不甚了解,有点恐惧。我一直相信一句台词——“喝了敌人的血,下次见面就不会再怕了”。学习知识亦然,很多时候,你觉得很高深,实际上是缺乏清晰的概念。当你真的把这些概念理清楚后,往往会恍然大悟,万变不离其宗,原来不过如此。上网查了很多资料,很遗憾的是,99%的从业者语文都不怎么过关,连基本的定义都不会下。一个简单的“限定词+更大的集合”的定义模式都没有掌握,深表遗憾。于是还是决定自己来梳理一下吧。有高人说过(花钱买的):你对一个领域的理解程度,完全取决于你的头脑里有多少清晰的概念,以及能否把这些概念关联起来。废话少说,开始唠吧。

人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。我们来分解一下这个概念。“人工智能”是“一门技术科学”,它研究与开发的对象是“理论、技术及应用系统”,研究的目的是为了“模拟、延伸和扩展人的智能”。既然如此,那么买菜用的“计算器”算是人工智能吗?严格地说是算的,因为它至少做了“模拟”人在计算方面的智能,并扩展了这个能力(比人算得更快)。我们每天编码驱动计算机去帮我们干活,这个算是人工智能吗?也算的。所以,首先不用妄自菲薄,其实大家早已是“人工智能”的从业者了。我们现在看到的貌似很高端的技术,如图像识别、NLP,其实依然没有脱离这个范围,说白了,就是“模拟人在看图方面的智能”和“模拟人在听话方面的智能”,本质上和“模拟人在计算方面的智能”没啥两样,虽然难度有高低,但目的是一样的——模拟、延伸和扩展人的智能。另外,人工智能也不是啥新概念,事实上这是50年代提出的东西了(比你们老多了),现在这么火热,顶多只能算是“诈尸”,谈不上“新生”。

   随着人对计算机科学的期望越来越高,要求它解决的问题越来越复杂,摧枯拉朽地打个小怪已经远远不能满足人们的诉求了。1+1好算,1+2也不难,这些已经能解决的问题暂且按下不表。要解决的问题域越来越复杂,即使是同一个问题,其面对的场景也越来越多。咱总不能每新出来一种场景,就让码农去查找switch,然后在default前去再加一个case吧;世间的场景千千万,那得多少个case啊,杀个码农祭天也保不齐会出问题啊。那怎么办呢?于是有人提出了一个新的思路——能否不为难码农,让机器自己去学习呢(提出这个概念的人一定做过码农)?好吧,现在机器学习的定义就出来了。机器学习即不需要码农添加case语句而让机器自己学会执行任务的人工智能技术。好像不太正规啊,好吧,再定义一下。机器学习就是用算法解析数据,不断学习,对世界中发生的事做出判断和预测的一项技术。研究人员不会亲手编写软件、确定特殊指令集、然后让程序完成特殊任务;相反,研究人员会用大量数据和算法“训练”机器,让机器学会如何执行任务。这里有三个重要的信息:1、“机器学习”是“模拟、延伸和扩展人的智能”的一条路径,所以是人工智能的一个子集;2、“机器学习”是要基于大量数据的,也就是说它的“智能”是用大量数据喂出来的,如果缺少海量数据,它也就啥也不是了;3、正是因为要处理海量数据,所以大数据技术尤为重要;“机器学习”只是大数据技术上的一个应用。常用的10大机器学习算法有:决策树、随机森林、逻辑回归、SVM、朴素贝叶斯、K最近邻算法、K均值算法、Adaboost算法、神经网络、马尔科夫。Apache有个开源项叫mahout,提供了这些经典算法的实现;但是后来spark出来了,由于在内存迭代计算方面的优势,一下子抢过了这个风头,目前spark自带的MLlib被使用得更为广泛。虽然mahout也在向spark转,但是在技术的世界里就是这样的,只有新人笑,哪闻旧人哭。

  相较而言,深度学习是一个比较新的概念,算是00后吧,严格地说是2006年提出来的。老套路,也给它下一个定义。深度学习是用于建立、模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术。它的基本特点,是试图模仿大脑的神经元之间传递,处理信息的模式。最显著的应用是计算机视觉和自然语言处理(NLP)领域。显然,“深度学习”是与机器学习中的“神经网络”是强相关,“神经网络”也是其主要的算法和手段;或者我们可以将“深度学习”称之为“改良版的神经网络”算法。深度学习又分为卷积神经网络(Convolutional neural networks,简称CNN)和深度置信网(Deep Belief Nets,简称DBN)。其主要的思想就是模拟人的神经元,每个神经元接受到信息,处理完后传递给与之相邻的所有神经元即可。所以看起来的处理方式有点像下图(想深入了解的同学可以自行google)。

神经网络的计算量非常大,事实上在很长时间里由于基础设施技术的限制进展并不大。而GPU的出现让人看到了曙光,也造就了深度学习的蓬勃发展,“深度学习”才一下子火热起来。击败李世石的Alpha go即是深度学习的一个很好的示例。Google的TensorFlow是开源深度学习系统一个比较好的实现,支持CNN、RNN和LSTM算法,是目前在图像识别、自然语言处理方面最流行的深度神经网络模型。事实上,提出“深度学习”概念的Hinton教授加入了google,而Alpha go也是google家的。在一个新兴的行业,领军人才是多么的重要啊!

  总结:人工智能是一个很老的概念,机器学习是人工智能的一个子集,深度学习又是机器学习的一个子集。机器学习与深度学习都是需要大量数据来“喂”的,是大数据技术上的一个应用,同时深度学习还需要更高的运算能力支撑,如GPU。以一张图来结尾。


作者|杨锋

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:hwclouds.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200