tags: ai,machine learning,deep learninghtml
一句话归纳:想进入AI领域,须要学习的的东西不少,若是能在纷繁复杂的知识中找到一条合理的学习路径,少走弯路,那该多好,本文将试图找到这条路。java
做为一名想进入AI领域的程序员,上网搜一下人工智能,大量的知识涌出来,有AI发展,有机器学习,有tensorflow,有python等等,但对于须要学什么,怎么学仍是没有明确的答案。能够想象本身是一名大学老师,须要开一门AI的课程,那么课程如何设置才能合理,有效率地让学生学到知识。我查看了十多篇学习方法和学习资源的文章,浏览了几十篇相关内容后,作了一个资源整合,整理出一条相对完整的学习路径。但愿经过此总结,一方面可让你们对进入AI领域有一个清晰的学习目标,明白学习内容,也能够根据此路径制定本身的学习计划。另外一方面也能够激励本身按计划学习AI知识。python
经过本文,能够收获如下AI学习路径,同时会给出相应的参考学习资料:c++
关于学习一门新技能或新知识,学习方法很重要,好的学习方法能够少走弯路。首先,学习前须要先明确两个问题:是什么?怎么学?这两个问题归纳说就是:学习目标与学习计划。学习目标比较清楚,就是踏入AI领域这个门,能够从事AI相关工做。学习计划就是对学习内容及过程的设计与执行,也就是本文所写的内容。还有就是创建学习的信心,学习不容易,以机器学习为例。在学习过程当中,你会面对大量复杂的公式,在实际项目中会面对数据的缺少,以及艰辛的调参等。只要制定合适的学习方法,学习是能够的。git
明确了学习目标和计划,在学习的执行层面,则须要侧重于实践,以兴趣为先,践学结合。这里则特别提一下,使用费曼技巧,以教带学,是学习的好方法。简单来讲,费曼技巧就是经过向别人清楚地解说某件事,来确认本身的确弄懂了某件事。它分为四个步骤:程序员
根据费曼方法学习新技能,掌握更快,记忆更深入。学习IT领域技能,此方法很是合适。github
首先了解这个领域,创建起全面的视野,培养起充足的兴趣。AI是如何发展起来的,为何在最近几年才成为热门的研究领域,AI技术包括哪些技术方向,有哪些应用领域,将来会如何发展,前景如何,对社会的影响如何等等,对这些问题都了解后,能够理解AI的前世此生,能够加深本身对AI的印象,增强对AI的兴趣,甚至能够发挥本身对AI的想象,对本身后续的AI学习能够有本身的想法。关于AI发展和科普,下面的资料能够参考:算法
https://www.cnblogs.com/subconscious/p/4107357.html
要学习人工智能,先看看当前国内互联网巨头各自对AI的布局状况,就大概知道AI当前的风口在哪里,会有哪些重要应用,有哪些关键技术。各大公司旗下都设有AI平台的官网,各大AI 开放平台一览,地址:https://blog.csdn.net/qq_15071263/article/details/82908201
,对各大AI平台的连接,能够看看。除了了解当前AI在各互联网公司的布局外,还能够关注一下这些公司对AI岗位的招聘要求及当前的各大招聘网站对此岗位的要求状况,这样有两个好处,一是明确本身的学习方向,学习有侧重点,二是作到对本身学习的必定的心理预期,知道本身学到哪一个程度才能有机会得到此岗位。以下,是Boss直聘中的一则天然语言处理相关的招聘:编程
可见,数学基础、数据处理、天然语言处理、机器学习、数据挖掘等技术是比较关键的,也是学习的重点。数组
关于AI当前各大公司布局状况,参考资料以下:
https://blog.csdn.net/qq_15071263/article/details/82908201
https://ai.baidu.com/
https://ai.qq.com/
https://damo.alibaba.com/
https://www.huxiu.com/article/230094.html
http://www.cesi.ac.cn/201801/3545.html
http://www.caict.ac.cn/kxyj/qwfb/bps/201809/t20180906_184679.htm
http://www.caict.ac.cn/kxyj/qwfb/bps/201812/t20181227_191672.htm
http://www.caict.ac.cn/kxyj/qwfb/bps/
人工智能从业务视角能够分为感知能力、认知能力和服务能力三个层次,两大应用方向,以下:
人工智能技术视角,能够分为基础设施层、技术层和应用层。以下:
经过上面两个图,基本了解AI涉及的领域及技术的整体架构,结合前面的当前互联网巨头的布局,能够看出,在将来,对于基础设施层和技术层,基本上由大公司来掌控和布局了,可发展和深刻开发的空间相对较小,我的若想参与这些的研发,则须要从底层的技术和算法学起,要求很高。而在应用层,则会有更多的发展空间,利用AI+行业
或行业+AI
的模式,结合已有的AI基础设施和AI技术,能够作出更多的应用。这既是我的发展的机会,也是创业公司的机会。
文章《腾讯云总监手把手教你,如何成为 AI 工程师》:https://cloud.tencent.com/developer/article/1004751
,对AI工程师作了分类,按垂直领域分:有语音识别,图像视觉,个性化推荐等业务领域的AI工程师。按从事研发内容分则有
这类人大都有博士学历,在学校中积累了较好的理论和数学基础积累,对最新的学术成果能较快理解和吸取。这里的理论是指好比语音处理,计算机视觉等专业知识。AI算法研究的人主要研究内容有 样本特征,模型设计和优化,模型训练。样本特征是指如何从给定的数据中构建样本,定义样本的特征,这在个性化推荐领域中就很是重要。模型设计和优化是设计新的网络模型,或基于已有的模型机型迭代优化,好比CNN网络模型中 AlexNet , GoogleNet v1/v2/v3, ResNet等新模型的不断出现,另外就是好比模型剪枝,在损失5%计算精度状况下,减小80%计算量,以实现移动终端的边缘计算等等。模型训练是指训练网络,如何防止过拟合以及快速收敛。
这类人主要提供将计算逻辑,硬件封装打包起来,方便模型的训练和预测。好比: - 精通Caffee/TensorFlow等训练框架源码,能熟练使用并作针对性优化; - 构建机器学习平台,下降使用门槛,经过页面操做提供样本和模型就能启动训练; - 经过FPGA实行硬件加速,实现更低延时和成本的模型预测; - 在新模型验证完成后,实如今线平滑的模型切换。
侧重验证好的模型在业务上的应用,常见语音识别,图像视觉,个性化推荐。固然这也包括更多结合业务场景的应用,好比终端网络传输带宽的预测,图片转码中参数的预测等等。
综上所述,在选择职位和方向时,除非有比较好的数学和算法基础,建议从AI应用层面来选择,会更容易入手,发展机会更大。
本章的参考资料:
https://blog.csdn.net/hadoopdevelop/article/details/79455758
https://cloud.tencent.com/developer/article/1004751
要学习人工智能,免不了要学习算法,学习算法,则须要数学基础。而在具体计算过程当中不少时候须要矩阵计算,所以线性代数知识也是须要。对于数据的分类,分析等,还须要有几率和统计。不少时候人工智能追求的就是最优化问题,举个粟子,BP神经网络使用的权重迭代变化,计算当前权重值离最优值的函数为损失函数,迭代过程当中经过求导来肯定调大仍是调小,这个求导获得的函数就是梯度,而这个迭代的过程就是梯度降低,在这个过程当中,微积分知识也少不了。在学习过程当中,常常会遇到须要查看的论文了解原理,或者查阅一些英文资料,所以英文知识也是须要的。以上,总结来讲,须要如下几大基础知识:
如下是一些参考资料:
https://zhuanlan.zhihu.com/p/25197792
当前人工智能开发使用的最多的当属python
了,固然,java
,c++
,matlab
和R
也有很多。刚开始学习,直接选择python
便可。对于编程语言的学习,一个字,练。直接上机操做,主要分几个模块的学习,python基础(语法,函数,数组,类等等),python经常使用的库,python的机器学习库。如下是一些pyhton
的学习资料以供参考:
https://www.liaoxuefeng.com/wiki/1016959663602400
https://www.runoob.com/python/python-100-examples.html
https://zhuanlan.zhihu.com/p/26673214
https://www.bilibili.com/video/av4050443
须要明确,当前人工智能技术中,机器学习占据了主导地位,但不只仅包括机器学习,而深度学习是机器学习中的一个子项。目前能够说,学习AI主要的是学习机器学习,可是,人工智能并不等同于机器学习。具体到机器学习的流程,包括数据收集、清洗、预处理,创建模型,调整参数和模型评估。基础则是机器学习的基本算法,包括回归算法,决策树、随机森林和提高算法,SVM,聚类算法,EM算法,贝叶斯算法,隐马尔科夫模型,LDA主题模型等等。这些网上已经有很多机器学习的教程,学习很是方便,在搜索引擎一搜索,机器学习的文章也很是多,只要坚持下去,结合后面的实践,学习应该不成问题。如下是一些参考资料:
https://www.coursera.org/learn/machine-learning
http://t.cn/RpO3VJC
https://github.com/JustFollowUs/Machine-Learning
了解机器学习的算法,还须要有必定的工具来实现,好在如今已经有不少工具可使用,如tensorflow,Keras,Theano,matlab等等,如今tensoflow是机器学习的热门框架,入门能够深刻学习它。如下是一些参考资料
http://t.cn/RTuDxFT
"巧妇难为无米之炊",使用机器学习来进行项目实践时,若是没有数据,就更不用说模型训练了。所以,获取数据集来作测试数据也是一个比较重要的工具,好在如今网上有很多的数据集能够获取,参考资料以下:
http://yann.lecun.com/exdb/mnist
http://mscoco.org
https://www.jianshu.com/p/83ebd261862a
https://www.jianshu.com/p/abce3d177e45
在实践中学习,用一些小的示例来实现功能,用机器学习来解决一个实际的问题(如图像领域,识别狗,识别花等等),把机器学习方法看成一个黑盒子来处理,选择一个应用方向,是图像(计算机视觉),音频(语音识别),仍是文本(天然语言处理),推荐选择图像领域,这里面的开源项目较多。也能够上github找一下相关的开源项目来参考。
深度学习是机器学习中的一个子项,它源于人工神经网络的研究,含多个隐藏层的多层感知器就是一种深度学习结构。学习过程当中,须要对深度学习的概念进行了解,熟悉BP神经网络,CNN卷积神经网络,RNN循环神经网络等原理及应用。如下是一些参考资料:
https://www.bilibili.com/video/av49445369
http://t.cn/RTueAct
http://t.cn/RTukvY6
http://t.cn/RpO3VJK
http://t.cn/RTuDcjC
具有了较强的知识储备,能够进入较难的实战。两个选择,工业界的能够选择看开源项目,以改代码为目的来读代码;学术界的能够看特定领域的论文,为解决问题而发论文。或者能够参加kaggle
竞赛,来验证一下,解决问题。到了这个阶段,就看我的的修行了。不过到了此阶段,回头看一开始的学习计划,基本已经达到目的了。最后,对于论文查询,就不得不提arXiv了,arXiv是个收集物理学、数学、计算机科学与生物学的论文预印本的网站。将预稿上传到arxiv做为预收录,能够防止本身的idea在论文被收录前被别人剽窃。所以arXiv是个能够证实论文原创性(上传时间戳)的文档收录网站。现今的不少科学家习惯先将其论文上传至arXiv.org,再提交予专业的学术期刊。如下提供两个工具可使用:
https://arxiv.org
http://www.arxiv-sanity.com
https://paperswithcode.com
经过查询并阅读了十多篇对人工智能的学习方法和学习资源的文章后,本文试图对这些资源进行整合,整理出一条相对完整的学习路径,每个阶段都给出了相应的参考资料,有了资料,更重要的是须要去学习和实践,但愿对本身的学习有一个明确的计划,也但愿对想进行AI领域的同窗有帮助。
http://t.cn/AiRnyMyj
http://t.cn/AiTfbOds
http://t.cn/AiRnUwsx
http://t.cn/AiRnyUUS
http://t.cn/RYjAQNc
http://t.cn/AiRnUJGm
http://t.cn/R8Ttwug
http://t.cn/AiRnUlEL
http://t.cn/Rfc2ih1
http://t.cn/AiRnU1L3
http://t.cn/AiRnUeRB
https://zhuanlan.zhihu.com/p/64052743