最近chatgpt爆红,百度近日也官宣了大模型新项目“文心一言”(英文名ERNIE Bot),即将在今年3月面向公众开放,我先期待一波,到时候给同学们说说感受。
这也不是第一次人工智能引起广泛关注了,随着科技的发展,人工智能产品已经与我们的生活息息相关,比如手机语音助手、自动驾驶系统等等。可以预见的是,数字化、智能化将会是未来发展的主流,企业对AI人才的需求量只会有增不减,对AI感兴趣的同学也会越来越多。
今天就给大家分享一下我自己整理的人工智能学习路径,帮助想要入门人工智能的同学少走弯路,别忘了三连支持我!
先放上学习路径:
「基础知识→编程语言→数学知识→机器学习/深度学习→计算机视觉/自然语言处理→面试准备」
基础知识
可以分为计算机基础知识和AI基础知识
计算机基础知识
要想学人工智能,了解计算机知识是必要的前提。在这个阶段,我们需要学习计算机组成原理、计算机操作系统、计算机网络这三个部分。
当然,并不是要求一定精通,计算机是存储和处理数据的设备,了解它是为了让我们在以后的工作中可以更改好的解决问题。
AI基础知识
这一阶段我们需要了解AI的概念和应用
什么是AI?
百度百科给出的解释:是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
比较容易理解的说法:一种人为制造出来的机器,可以模仿人的思想和行为,体现出一种智能的反应。
AI的应用:
目前AI普遍应用于金融、安防、智能家居、医疗、机器人、智能驾驶、新零售等领域,几乎涵盖了我们生活的各方面。
编程语言
想要学好人工智能,首先至少得掌握一门编程语言。在编程语言的选择上,目前比较常用的是Python、C/C++、Java等等。
得益于Python强大的数据科学和机器学习能力,我们可以用它来分析复杂的数据集,而不用担心速度。
来看看Python的优点:
效率高
易于学习,对小白非常友好
程序写起来非常方便
Python源代码非常便于维护
跨平台兼容性好
有很多有用的库可以用
易于阅读,方便初学者理解
目前Python可以说是十分全能,不仅仅用于人工智能,系统运维、web编程、多媒体应用、机器学习等等都可以做到,所以对小白来说,目前最适合的选择就是Python。
至于C/C++和Java,前者速度非常快,常用于搜索引擎和游戏开发,后者作为通用编程语言,具有对人工智能的库支持,常用于构建强大的AI应用程序。但二者的学习门槛都较高,建议同学先掌握一门编程语言再考虑学习。
我的小建议:这个阶段的同学一定多敲代码!多敲代码!多敲代码!
数学知识
学AI就像过关打怪,这个阶段同学们需要面对的就是数学的挑战。其实数学真没想象中的那么困难,只要学习掌握微积分、线性代数、概率论、统计学这四个课程的知识就足够了。
机器学习/深度学习
这两部分可以放在一起说说,因为深度学习是机器学习的一个子分支,二者大体的内容是相同的,可以同时学习(不过还是建议先学机器学习再学深度学习)。
神经网络
神经网络是深度学习的基石,想要入门深度学习,需要掌握三大神经网络知识:CNN卷积神经网络、RNN循环神经网络和GAN对抗神经网络。
框架
在开始深度学习之前,选择一个合适的框架十分重要,可以大大提高你的工作效率。
目前比较流行的框架有:TensorFlow、pytorch、Caffe等等,我在这里同样只说说两个比较常见框架:pytorch、tensorflow。
学术界大多用的都是pytorch,便于理解,简单易上手,对小白非常友好。TensorFlow多用于工业,但pytorch现在在工业界的使用率也上升了,所以建议同学选择pytorch学习。
计算机视觉/自然语言处理
到了这个阶段,就是选择主攻方向的时候了,其实人工智能不止CV/NLP,不过我今天就只讲讲比较热门的方向。
计算机视觉
重点学习CV的三大基础任务:图像分类、图像分割、目标检测。
了解CV在各行各业的应用场景,可以看看学姐之前的盘点。
自然语言处理
需要掌握的基础知识:
信息抽取
预训练模型
图神经网络
文本匹配
机器翻译
相比起CV来说,NLP的门槛较高,上手会比较困难,但竞争压力会相对小一些。在发展前景上,二者并没有高下之分,而且目前已有融合的趋势,所以同学们可以根据自己的需求选择。
小建议:
无论是CV还是NLP方向,学习的过程中都离不开阅读论文,经典论文的作用不仅仅是帮助理解知识点,更有助于开拓研究思路,从前人的经验中获得提出问题-分析问题-解决问题的能力。
面试准备
如果觉得自己学的差不多了,可以尝试找一份人工智能相关的工作积攒一些经验,毕竟知识是学不完的,纸上谈兵永远不会得到成长。
先讲讲面试的主要流程。
一般会有笔试和面试两个部分,笔试主要考的是基础知识,分为选择题、编程题两个部分(不同公司可能会有变化)。
面试的重点在项目经验上,如果觉得这方面有欠缺,可以通过打比赛来弥补缺口(kaggle、天池……)。
为什么要打比赛?
如我上面所说,比赛的目的是为了让自己获得更多的项目实战经验,丰富简历,提高自己的含金量,如果能在比赛中获得优秀的排名,就更有机会获得更好的工作,甚至有的公司会直接在比赛中提供顶尖的工作机会。
另外,通过组队打比赛,可以扩大自己的交友圈,拓宽人脉网,与同样优秀的人打交道,获得的好处只多不少。
怎么打比赛?
以kaggle为例,新手建议选择Getting Started类练手,虽然没有奖金,但可以学到非常多的知识与经验,推荐两个:
Titanic:Machine Learning from Disaster(泰坦尼克数据集)
Iris Species(鸢尾花数据集)
逐渐上手后就可以进入下一个阶段了,可以选择找人组队,也可以solo,不过我还是建议同学们组队参赛,取长补短。
总结
看到最后,有没有即将面对挑战的感觉?学习 AI 是一个漫长的过程,会很容易感到枯燥乏味,如果想要学有所成,那就一定要坚持!工作之后也要保持学习,AI技术更新换代的速度只会越来越快,如果不想被淘汰,就学起来吧!
关注下方《学姐带你玩AI》???
1000多篇顶会论文资料包回复“CVPR”或者“ACL”免费领取
码字不易,欢迎大家点赞评论收藏!