<>论“人工智能、机器学习、深度学习”的关系
本篇力求图文并茂,向您介绍“人工智能、机器学习、深度学习”相关概念;并解释他们之间的关系。
<>什么是人工智能?
人工智能(Artificial Intelligence),英文缩写为AI。
它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。------百度百科。
人工智能的发展历史可以用下面一幅图概括。
人工智能发展到现在产生了许多名词,比如:机器学习、深度学习等,他们之间有什么关系?可以用下面两幅图概括:
从上面两幅图可以看到,人工智能是一个非常广泛的概念,包含许多内容,里面其中一个子集就是机器学习,而机器学习的一个子集,才是深度学习。
<>什么是机器学习?
机器学习是人工智能的一个子集。它是人工智能的核心。什么是机器学习?我们习惯上这样理解,传统机器学习就是:用一大堆数据,同时通过各种算法(比如SVM、决策树、逻辑回归等),去训练出来一个模型,然后用这个训练好的模型去完成任务(比如预测任务等)。
常用的机器学习算法有:线性回归、逻辑回归、决策树、随机森林、支持向量机、贝叶斯、K近邻、Kmeans、xgboost等。
<>什么是深度学习?
深度学习是一种特殊的机器学习,是机器学习的一个子集。深度学习的概念源于人工神经网络。可以这样归纳:含多隐层的多层感知器就是一种深度学习结构。------百度百科。
如下图:含一层隐层的神经网络还不能称之为真正的深度学习结构,很多时候也把这种单层的神经网络归为机器学习范畴。当我们把神经网路的隐层加多加深,就得到了真正的深度学习结构。
<>机器学习和深度学习的区别有哪些?
<>1、对数据量要求不同
从图上可以看出,深度学习和机器学习对数据量的依赖程度是不一样的,当数据量很少的时候,深度学习的性能并不好,因为深度学习算法需要大量数据才能很好理解其中蕴含的模式。而数据量比较小的时候,用传统机器学习方法也许更合适。
<>2、对计算机硬件的要求不同
通常情况下,用机器学习处理任务时,一方面由于数据量不太大,另一方面由于所用算法已经确定,所以对计算机硬件的要求不是太高。
而深度学习由于要处理大量数据,且涉及许多矩阵运算,因此对计算机硬件要求非常高,很多时候普通cpu已经无法顺利完成任务,而必须借助于诸如GPU等硬件。
<>3、特征处理方式不同
机器学习和深度学习的主要区别在于特征。如下图所示。
在传统的机器学习算法中,我们首先需要用一些算法(比如PCA、LDA等)来进行特征的提取,然后再用机器学习算法(如svm等)进行模型训练。特征提取的过程很麻烦,对工作者要求也很高。
相比之下,在深度学习中,特征由算法本身自动完成提取,通常不需要我们另外写一个算法来进行特征提取。比如CNN网络中,卷积层的作用就实现了特征的提取。
<>4、解决问题方式不同
在解决问题的时候,传统机器学习通常会将问题分解为多个子问题,逐个子问题解决后,最后获得最终结果。而深度学习更提倡“直接的端到端”的解决问题。
比如在做OCR(文字识别)任务时,传统机器学习算法,一般要对原始图片进行灰度化、二值化、降噪、文字切分、文字识别等一步步操作。而如果用某些深度学习算法(如CRNN-CTC),则可以实现端到端的解决问题,直接传入一张图片,经过模型学习之后直接识别出文字。
<>5、可解释性不同
机器学习的可解释性很强,许多传统的机器学习算法有明确的数学规则,解释起来相对容易。比如说线性回归,逻辑回归、决策树等这些算法解释起来就很容易。但是深度学习的可解释性就没有那么强了。深度神经网络更像是一种“黑箱子”,网络里面具体每一层是怎么操作的,神经元做了什么,很多时候是不明确的。深度学习的可解释性是一个热门研究话题。
<>6、使用的开源库和框架不同
我们做机器学习和深度学习时,如果使用相关的开源库和框架,会使我们的工作事半功倍。虽然许多开源库和框架既可以解决传统机器学习问题,也可以解决深度学习问题,但是如果有针对性的去选择使用,效果会更好。比如,scikit-learn库用来做机器学习问题,是很不错的。百度的开源框架
百度的开源框架PaddlePaddle <http://www.paddlepaddle.org/>、以及谷歌的tensorflow用来处理深度学习问题会更好。
<>7. 深度学习框架介绍
目前深度学习无论在工业界还是学术界都是热点。在开始深度学习项目之前,选择一个合适的框架是非常重要的,因为选择一个合适的框架能起到事半功倍的作用。全世界最为流行的深度学习框架有
PaddlePaddle <http://www.paddlepaddle.org/>
、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等。其中PaddlePaddle是唯一一款国产的深度学习框架,也算是咱们国人的骄傲!PaddlePaddle是百度研发的开源开放的深度学习平台,他涵盖的领域很广。比如:自然语言处理、计算机视觉、推荐引擎等多个领域。(
http://www.paddlepaddle.org/#pic_center
<http://www.paddlepaddle.org/#pic_center> =500x)
从我的使用经验来看,PaddlePaddle使用起来非常方便。PaddlePaddle的官方支持很全面。官网上的API和实例都很丰富,还有许多人工智能学习教程,很适合自学。文档资料很详细,最最重要的一点:这些资料是中文的。这对于像我这种英语水平有限的人来说再好不过。
[paddle的官网 http://www.paddlepaddle.org/ <http://www.paddlepaddle.org/>]
PaddlePaddle有数量最多的由官方维护的深度学习模型库。这些模型库开发者可以直接拿来使用,并且是开源的,无论是用在工业还是用于学习都十分方便。最主要的是
可靠。不会发生代码运行不了的尴尬场景。如果你可以把所有的模型的所有细节够吃透了也就成了专家。
PaddlePaddle是开源的,有不明白的可以直接看源代码。此外,如果有不明的白的地方可以在 github 上题 issue,会有专业人员在24小时内相应。
<>结束语
现阶段,深度学习在计算机视觉、自然语言处理、语音等领域广泛应用,其效果也已超过传统的机器学习方法。再加上网络媒体对深度学习进行的夸大报道,以至于产生了一种普遍存在的意识:深度学习最终可能会淘汰掉其他所有机器学习算法。其实不是这样的,实际工程中,不但要考虑精准度,还要考虑成本。有时候用深度学习处理问题,对成本的投入很高。再比如,实际工程中,我们的数据量往往没有那么大,此时用深度学习算法,效果并不太好。总之,科技的发展从来都是相互是包容的,是互相学习,互相进步的过程。人工智能的发展需要更多的优秀算法来不断创新和迭代。而不是一味的用所谓的高级算法替代甚至淘汰别的算法。
热门工具 换一换