人工智能入门指导

  随着这两年人工智能火起来,很多人都迫不及待的想入坑人工智能,之前也有不少同事朋友询问过我怎么进入这个行业,在这里我谈一下个人的拙见,如有异议,欢迎讨论,如果能帮到各位,非常荣幸。

  后期会继续分享计算机视觉、强化学习、优化算法以及编程和工具使用等方面的内容,感兴趣的可以关注一下,欢迎私信沟通交流。

  1.选定一个方向

  我个人不太喜欢使用"人工智能"这个词,因为觉得太宽泛了,每当有朋友问我怎么进入人工智能这个领域,我都会先问一个问题:"你想从事哪个方向?"人工智能有太多方向,计算机视觉、自然语言处理、搜索推荐、机器学习、强化学习,机器学习又可以细分很多,分类、回归、深度学习、元学习、增量学习....所以我认为要想从事人工智能,首先应该明确自己从事哪个方向,这样才会有目标。

  2.掌握一个必备知识

  我个人是做计算机视觉的,所以,接下来我就以计算机视觉为例讲述。

  人工智能是一个涉及多学科、多领域的的方向,数学、计算机、工程学等方面,一下分别谈一下:

  数学知识

  我想在大多数学校里,数学都是理工科学生的必修课,微积分、线性代数、概率论与数理统计,这些都比较基础实用,我觉得这个数学基础对入门人工智能足够了,人工智能应用数学最多的也就是求导、矩阵的运算和分解、概率的统计与分析。

  编程能力

  工欲善其事、必先利其器,人工智能方向编程语言使用最多的应该就是Python了,在很多学校理工科学生应该都会必修一门编程课,有的是C,有的是C++,就算这些都没用过,也应该对Matlab了解一些,我觉得有一些编程基础入门Python算是比较简单的,网上资源很多,社区支持也很强大。

  机器学习

  我这里所说的机器学习是广义上的机器学习,涵盖深度学习。无论是做传统的机器学习回归和分类,还是做深度学习,无论是做计算机视觉,还是做自然语言处理,都离不开机器学习,后面我会介绍一些我认为比较好的学习资源,对于机器学习,我划分为两个方面:(1) 框架层面;(2) 理论层面。

  01框架方面

  机器学习框架有很多比如scipy、sklearn、tensorflow、pytorch、mxnet等,我觉得对于框架,不再多,而再精,每个框架都有自身的优势,也都有自己的缺点,可以根据自己的项目需求和自己的喜好选择一个框架,这里我比较推荐的是tensorflow和pytorch,tensorflow虽然繁琐,但是强大,pytorch比较简洁高效。

  02理论方面

  理论方面主要包括传统的机器学习和深度学习里的一些网络框架,首先说一下传统的机器学习,我认为这是很有必要的,从事 AI工作中免不了用到传统的方法,比如回归、随即森林、SVM等,而且传统的机器学习理论性更强,更能让人了解机器学习中的内在内容。其次说一下深度学习网络模型,以计算机视觉为例,有很多成熟高效的网络模型,很多模型前后都有关联,需要了解不同网络模型,比如奠定基础的Alexnet,后面经常用于预训练的VGG,还有为深度网络提出解决方案的ResNet,还有近几年比较高效的SSD、YOLO系列,最后还有深度学习中的一些策略,比如怎么解决过拟合?BN是什么?Dropout是干什么的?激活函数有哪些和优缺点分别是什么?

  专业知识

  如果要成为一个AI从业者,需要结合不同方向的专业知识,比如要从事计算机视觉,仅仅拿到网络结构就开始搭,这是很难达到理想效果的,这就需要对图像底层有一些了解,例如图像的像素和通道结构,图像的边缘和灰度特征,图像的增广、去噪、分割,这能够让在相应的方向上走的更远,做出更好的东西,可能达到事半功倍的效果。

  3.学习资源

  经常会看到很多人在朋友圈转发各种人工智能学习资源,的确,随着人工智能火热起来,现在网上有很多各种各样的学习资源,让人眼花缭乱,好的学习资源屈指可数,大多数不知道冲着什么目的推出的教学资料,内容不怎么样,收费却不低,很多初学者不了解行情而误入歧途,不仅浪费了钱,也耽误了不少时间、浪费了不少精力,其实网上 有很多免费又非常好的资源,如果把这些利用起来,我觉得足可以成为一个AI从业者。在这里,我推荐一些我认为比较好的学习资源。

  视频资源

  01吴恩达《机器学习》

  https://study.163.com/course/courseMain.htm?courseId=1004570029&_trace_c_p_k2_=6f3c5551927248fc87191831f0dd6deb

  02吴恩达《深度学习工程师》

  https://mooc.study.163.com/smartSpec/detail/1001319001.htm

  03莫烦Python

  https://morvanzhou.github.io/

  推荐理由

  吴恩达自然不必说,人工智能领域的大牛,无论是在学界还是在企业界都很有影响力,我觉得吴恩达的不仅有理论性,而且很实用,尤其《深度学习工程师》这门课程讲了很多深度学习策略、超参数调优、结构化机器学习、卷积神经网络和序列模型,都很实用,而且吴恩达的语速相对很多人例如Hinton、李飞飞团队的授课语速要慢一些,更有助于理解,能够跟得上节奏。

  莫烦Python有很多课程机器学习、强化学习、Python基础、深度学习框架,很全面,中文授课,内容不深,但是有助于入门。

  书籍

  01数学方面

  《概率论与数理统计》 盛骤

  

 

  《数值分析》李庆扬

  

 

  《线性代数》同济大学

  

 

  推荐理由

  这几本书都是用于大学生教材的,所以相对严谨一些,而且难度适中,对于做人工智能,我觉得这几本数学教材涵盖的知识差不多了。《数值分析》是我们本科数学系的教材,涵盖很多数值计算方法,很多可能在机器学习里用不到,但是我觉得想要做的更深,多了解一些数学是有价值的。

  02机器学习方面

  《深度学习》Goodfellow、Bengio

  

 

  《机器学习》 周志华

  

 

  《机器学习实战》Peter Harrington

  

 

  推荐理由

  《深度学习》这本书仅仅看到这几位作者就会明白错不了,都是大牛,介绍了不同方向的机器学习技术,而且很大一部分在介绍深度学习的策略和模型优化方法。《机器学习》这本书主要讲的是传统机器学习算法,通俗易懂,没有过多的公式推导。《机器学习实战》这本书对每个机器算法都从头到尾实现了一遍,相对于前面这两本书,这本书更偏重于实践,结合很多实例直接编程,如果跟随这本书把各个算法实现一遍,对加深记忆有很大帮助。

  03图像处理方面

  《图像工程》 章毓晋

  

 

  《计算机视觉特征提取与图像处理》(第3版) Nixon&Aguado

  

 

  推荐理由

  对于入门计算机视觉这个方向,多了解一些图像底层的知识肯定是百利无一害,这两本书都是图像处理里不错的书籍,其中《图像工程》这本书,是合订版,也有单独成册的,分上中下三册,如果觉得这本书太厚也可以根据自己需求买其中一册。

  04Python学习方面

  《Python Cookbook》(第3版)大卫·比斯利,布莱恩·K.琼斯

  

 

  Python菜鸟教程

  http://www.runoob.com/python/python-tutorial.html

  廖雪峰Python

  https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

  推荐理由

  理论与实践相结合,讲解穿插着代码,容易理解和上手,而且网站教程较为简洁,节省时间。“

  以上是我的个人对入门人工智能的一些看法,也许不太全面,欢迎指正和讨论,希望对大家有所帮助,如果喜欢可以关注一下,后续会分享计算机视觉、强化学习、深度学习、优化算法等方面的知识,也会分享一些编程、实用工具等方面的内容,也可以关注微信公众号“平凡而诗意”。

  

上一篇:信息技术:物联网可以有多发达?

下一篇:物联网背景下智慧校园的应用