前段时间有学生问到,嵌入式如何转人工智能?下面我就统一给大家解释 一下。
眼下,人工智能已经成为越来越火的一个方向。普通程序员,如何转向人工智能方向,
AI,也就是人工智能,并不仅仅包括机器学习。曾经,符号与逻辑被认为是人工智能实现的关键,而如今则是基于统计的机器学习占据了主导地位。最近火热的深度学习正是机器学习中的一个子项。目前可以说,学习AI主要的是学习机器学习。
但是,人工智能并不等同于机器学习,这点在进入这个领域时一定要认识清楚。在学习过程中,你会面对大量复杂的公式,在实际项目中会面对数据的缺乏,以及艰辛的调参等。如果仅仅是因为觉得这个方向未来会“火”的话,那么这些困难会容易让人放弃。考虑到普通程序员的特点,而要学习如此困难的学科,是否就是没有门路的?答案是否定的。只要制定合适的学习方法即可。
学习方法:
学习方法的设定简单说就是回答以下几个问题:我要学的是什么?我怎样学习?我如何去学习?这三个问题概括说就是:学习目标,学习方针与学习计划。学习目标比较清楚,就是踏入AI领域这个门。这个目标不大,因此实现起来也较为容易。“过大的目标时就是为了你日后放弃它时找到了足够的理由”。
学习方针可以总结为 “兴趣为先,践学结合”。简单说就是先培养兴趣,然后学习中把实践穿插进来,螺旋式提高。这种方式学习效果好,而且不容易让人放弃。有了学习方针以后,就可以制定学习计划,也称为学习路线。下面就是学习路线的介绍。
我推荐的学习路线是这样的,如下图:
图1 AI领域学习路线图
这个学习路线是这样设计的:首先了解这个领域,建立起全面的视野,培养起充足的兴趣,然后开始学习机器学习的基础,这里选择一门由浅入深的课程来学习,课程最好有足够的实验能够进行实战。基础打下后,对机器学习已经有了充足的了解,可以用机器学习来解决一个实际的问题。
这时还是可以把机器学习方法当作一个黑盒子来处理的。实战经验积累以后,可以考虑继续进行学习。这时候有两个选择,深度学习或者继续机器学习。深度学习是目前最火热的机器学习方向,其中一些方法已经跟传统的机器学习不太一样,因此可以单独学习。除了深度学习以外,机器学习还包括统计学习,集成学习等实用方法。
如果条件足够,可以同时学习两者,一些规律对两者是共通的。学习完后,你已经具备了较强的知识储备,可以进入较难的实战。这时候有两个选择,工业界的可以选择看开源项目,以改代码为目的来读代码;学术界的可以看特定领域的论文,为解决问题而想发论文。
无论哪者,都需要知识过硬,以及较强的编码能力,因此很能考察和锻炼水平。经过这个阶段以后,可以说是踏入AI领域的门了。“师傅领进门,修行在个人”。之后的路就要自己走了。
下面是关于阶段的具体介绍:
领域了解:
在学习任何一门知识之前,首先第一步就是了解这个知识是什么?它能做什么事?它的价值在什么地方?如果不理解这些的话,那么学习本身就是一个没有方向的舟,不知道驶向何处,也极易有沉船的风险。了解这些问题后,你才能培养出兴趣,兴趣是最好的引路人,学习的动力与持久力才能让你应付接下来的若干个阶段。关于机器学习是什么,能做什么,它与深度学习以及人工智能的关系,可以看我写的博客 从机器学习谈起:
知识准备
如果你离校过久,或者觉得基础不牢,最好事先做一下准备复习工作。“工欲善其事,必先利其器”。以下的准备工作不多,但足以应付后面阶段的学习。
数学:复习以下基本知识。线性代数:矩阵乘法;高数:求导;概率论:条件与后验概率。其他的一些知识可以在后面的学习的过程中按需再补;
英文:常备一个在线英文词典,例如爱词霸,能够不吃力的看一些英文的资料网页;
FQ:可以随时随地上Google,这是一个很重要的工具。不是说百度查的不能看,而是很多情况下Google搜出来的资料比百度搜的几十页的资料还管用,尤其是在查英文关键字时。节省时间可是很重要的学习效率提升;
实践做项目
学习完了基础课程,你对机器学习就有了初步了解。现在使用它们是没有问题的,你可以把机器学习算法当作黑盒子,放进去数据,就会有结果。在实战中你更需要去关心如何获取数据,以及怎么调参等。如果有时间,自己动手做一个简单的实践项目是最好的。
这里需要选择一个应用方向,是图像(计算机视觉),音频(语音识别),还是文本(自然语言处理)。这里推荐选择图像领域,这里面的开源项目较多,入门也较简单,可以使用OpenCV做开发,里面已经实现好了神经网络,SVM等机器学习算法。项目做好后,可以开源到到 Github 上面,然后不断完善它。实战项目做完后,你可以继续进一步深入学习,这时候有两个选择,深度学习和继续机器学习;
总结
本文的目的是帮助对AI领域了解不深,但又想进入的同学踏入这个门。这里只说踏入,是因为这个领域的专精实在非常困难,需要数年的积累与努力。在进行领域学习前,充分认识自己的特点,制定合适的学习方法是十分重要的。
首先得对这个领域进行充分了解,培养兴趣。在学习时,保持着循序渐进的学习方针,不要猛进的学习过难资源;结合着学习与实践相辅的策略,不要只读只看,实际动手才有成就感。