该repo旨在给 极创工作室 和 西电科创社 的学弟学妹提供一个大致的人工智能学习路径图,该路径图仅供参考,具体实施需要结合自己的实际情况就行选择。我们欢迎更多的同学对该repo有更多建议和优化方案,欢迎您使用Forking
工作流提交 Pull Request,具体参考atlassian文档,大致步骤如下:
- 在GitHub上Fork本仓库
- Clone Fork后的个人仓库
- 设置
upstream
仓库地址,并禁用push
- 我们建议使用分支开发
- PR之前保持与原始仓库的同步,之后发起PR请求
学习路线的制定主要参考了以下资料及链接:
- 西安电子科技大学人工智能专业2020级本科生培养方案
- Datawhale人工智能培养方案
- https://tjxj.github.io/
想了好久,以下的学习路线仅是自己的学习路线的补充
我推荐的学习路线是:练习代码 -> 学好数学 -> 学习理论 -> 大量实践
-
练习代码
我将代码放在第一位,是因为你即使有很多很好的思路,但是不能实现,都等于空谈。因此在大一的计算机导论、python和数据结构学习中,希望各位能够多刷题,毕竟代码这个事情真的是:无他,唯手熟尔。重视每一层写代码的实验,不要图方便,全程cv。除此之外,还需要自己去学习Pytorch等主流框架。
-
学好数学
我觉得学习机器学习或者深度学习理论之前,还是有一定的数学基础是最好的。比如你想了解深度学习最核心的BP反向传播,那你起码需要学完高数上的求导;你想知道张量的矩阵运算,起码应该学习线性代数;你想学习贝叶斯网络,那么起码学完概率论吧... ...总的来说,我希望各位还是能从道的角度去学习,而不是术的层面去使用,一步一个脚印。
-
学习理论
理论层面的话,我觉得可以去看下下面推荐的课程和多看一些比较经典的书籍。
-
大量实践
无他,唯手熟尔
-
前置技能
-
Git
Git是目前世界上最先进的分布式版本控制系统(个人意见,不喜勿喷)。版本控制系统就是可以使我们的代码回溯到特定的阶段(避免疯狂ctrl z,没错说的就是屏幕前面不会有版本控制软件的你)。至于这些名词,我觉得大家去查一下就知道了。学习资料的话,推荐下面几个资料,希望能够帮助大家:
- 廖雪峰Git教程
- Git pro
- Git官网
- faster-git (好吧,这个也是我不要脸,打广告/doge,动动小手点个star)
-
Github
Github我觉得是必须要掌握的技能之一,在Github上你不仅可以学习(
copy)代码的规范书写,还可以学习到一些奇奇怪怪的技能(比如:how to cook)。但是,希望对Github上的内容进行辨别,做一个爱党爱国的好青年,而不是散发奇怪言论。 -
提问的智慧
-
搜索引擎
我觉得其实我们遇到的许多问题都是可以在网上找到解决方案的,因此,只有当我们在网上找不到解决方案的时候再问学长才是最好的选择。关于搜索引擎,我有以下几点建议:
- 搜索引擎:Google > Bing > Baidu
- 代码问题:Stackoverflow > CSDN ≈ 知乎
-
markdown
在Github上的项目里,我们会发现很多以.md结尾的文件,主要记录的是一些文档资料。而这些文件就是用markdown写的文件。markdown是程序员必备的写文档技能,相较于word而言,可以带来更高的打字享受,学习周期短(大概30min)。
-
python
许多机器学习和深度学习框架都是基于Python开发,因此python的学习至关重要。(个人认为,学到面向对象就行了)python的学习我只推荐两个资料,一个是下方三中的01 Python编程:从入门到实践 - 第二版和廖雪峰老师写的python教程 -> url。除去基本的学习以外,深度学习和机器学习涉及到大量的张量操作和图片读取操作,我个人建议大家可以再学习下下方的三个库。
-
Numpy
-
Pandas
-
数据读取:Opencv和PIL
-
-
-
数学知识
不论是机器学习还是深度学习,我个人感觉是一个数学优化问题。因此,人工智能与数学紧密相关(当然,你不懂数学但是也可以会用),我希望各位能从道的角度去学习人工智能,而不是从术的角度只是去调用现有成熟的API。我们在下面列出和人工智能关系比较密切的数学。
- 高等数学(上\下)
高等数学是最基础的一门学科,机器学习与深度学习与数学关系密切,因此建议大家好好学习高等数学(不要轻视)
- 线性代数
线性代数同样是基础的一门学科,因为机器学习和深度学习涉及大量的矩阵操作知识,说实话,没学懂也不影响你用。但是我希望大家能从道的角度去学习,而不是局限于术的层次学习使用。
- 概率论与数理统计
同样是一门极其重要的课程,在大三上的机器学习,模式识别中占据及其重要的地位。
- 最优化方法
深度学习和机器学习实际上都是根据数据去优化模型,因此优化方法十分重要。这门课在西安电子科技大学20级人工智能专业是在大二下开设,个人觉得学起来倒也不是很难,是挺有趣的一门学科。
-
框架运用
-
框架简介
为了优化大家的开发体验,Google,Meta,Amazon,百度等机构推出了许多深度学习和机器学习框架,下图来源于paper with code -> url。我们可以看见整体上Pytorch已经从老大哥Tensorflow上接过了接力棒,因此我们还是建议大家学习PyTorch。
-
PyTorch
允许我在这先打个广告:我们为了帮助大家更好的学习PyTorch,我们开设了thorough-pytorch课程,如果大家觉得有帮助的话,欢迎大家动一动小手点个star。
PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。 PyTorch提供了两个高级功能: 具有强大的GPU加速的张量计算(如Numpy),包含自动求导系统的深度神经网络
-
Tensorflow2.x
TensorFlow2.x**(注意我这里指的是2.x版本不是1.x版本)**它由Google开发,并为多种编程语言(例如Python,Javascript,C ++和Java)提供API。相较于PyTorch的动态图机制,Tensorflow采用的是静态图机制。TF2.x支持移动操作系统(iOS和android,对于iOS,它支持Swift编程语言),因此你可以使用它来构建移动应用,该应用利用即时机器学习来构建模型并根据现实世界的数据进行训练
-
Keras
-
Paddlepaddle
飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件、丰富的工具组件于一体,是中国首个自主研发、功能丰富、开源开放的产业级深度学习平台。 (其实还可以,主要是aistudio上只能用它
-
JAX
JAX 是一个由 Google 开发的用于优化科学计算Python 库
-
MXNet
MXNet 是亚马逊(Amazon) 选择的深度学习库。它拥有类似于 Theano 和 TensorFlow 的数据流图,为多 GPU 配置提供了良好的配置,有着类似于 Lasagne 和 Blocks 更高级别的模型构建块,并且可以在你可以想象的任何硬件上运行。(让我们高呼:李沐yyds
-
Jittor
-
课程序号 | 课程名字 | 总时长 | 链接地址 |
---|---|---|---|
01 | 计算机视觉(本科)北京邮电大学 - 鲁鹏 | 21:29:39 | [video url] |
02 | 计算机视觉与深度学习 北京邮电大学 - 鲁鹏 | 23:25:04 | [video url] |
03 | 【吃瓜教程】《机器学习公式详解》 - Datawhale | 15:14:29 | [video url] |
04 | Transformer模型 - ShusenWang | 约1h | [video url] |
05 | 2021版深度学习课程Deeplearning.ai - 吴恩达 | 28:35:55 | [video url] |
06 | DeepLearning.ai 四项基础课 | [docs] | |
07 | 适用于初学者的Pytorch编程教学 | 10:07:24 | [video url] |
08 | 2022最新版-机器学习深度学习课程 - 李宏毅 | 41:48:53 | [video url] |
09 | CS229(2018秋)机器学习 | 26:33:14 | [video url] |
10 | CS231n(2022 slides) 计算机视觉 - 李飞飞 | [slides url] | |
11 | CS224(2021)自然语言处理 | 25:15:27 | [video url] |
12 | 动手学深度学习 PyTorch版 - 李沐 | 约48h | [video url] |
13 | Practical Deep Learning for Coders | [docs] | |
14 | 精读论文系列 - 李沐 | [video url] | |
15 | CS329P - 李沐 | 11:16:00 | [video url] |
16 | 机器学习基石 - 林轩田 | 15:22:06 | [video url] |
17 | 机器学习技法 - 林轩田 | 16:03:43 | [video url] |
18 | 最优化理论与方法 | 约23h | [video url] |
19 | 机器学习白板推导 | 60:39:02 | [video url] |
20 | 机器学习2021 - 吴恩达 | 19:37:02 | [video url] |
21 | 深度学习2021 - NYU-LeCun | 41:37:48 | [video url] [docs] |
我学习的路子比较野,并看不下去太厚的书,但是我不排除学弟学妹之中有爱看书的孩子,我们在这也推荐几本不错的书。
编号 | 书籍名称 | 出版社 |
---|---|---|
01 | Python编程:从入门到实践 - 第二版 | 人邮&工信出版社 |
02 | 机器学习的数学 - 雷明 | 人邮&工信出版社 |
03 | 机器学习公式详解 - 谢文睿、秦州 | 异步图书 |
04 | 机器学习 - 周志华 | 异步图书 |
05 | 统计学习方法 - 李航 | 清华大学出版社 |
06 | 动手学深度学习 - 李沐 | 人民邮电出版社 |
07 | 深度学习 - (花书) | 人民邮电出版社 |
08 | 神经网络与深度学习 - 邱锡鹏 | 机械工业出版社 |
09 | 深度学习推荐系统 - 王喆 | 电子工业出版社 |
10 | 信息检索导论 - 王斌(译) | 人民邮电出版社 |
11 |
教给大家一个搜索的方式:-> Github -> Awesome-想搜索的方向(eg: Awesome-object-detection
工欲善其事,必先利其器。我觉得每个人找到一个适合自己读论文的方式就ok,在这里,我先分享下我一般读论文的workflow和工具。
-
Readpaper
Readpaper是由IDEA数字经济研究院开发的,当前,ReadPaper共收录近2亿篇论文、2.7亿位作者、近3万所高校及研究机构,几乎涵盖了全人类所有学科。科研工作离不开论文的帮助,如何读懂论文,读好论文,这本身就是一个很大的命题,Readpaper希望:"让天下没有难读的论文 "。
个人体验了许久,认为Readpaper还是一个很好用的软件,也是我现在看论文的主力软件。
-
Typora
Typora是一款书写markdown的工具,我主要是用来做一些总结工作,虽然它现在买断是89元,但是我觉得这个钱还是花的比较值的。
-
Zotero
Zotero也是一款文献管理工具,但是当我用了Readpaper后就慢慢不用了,可能我只需要一些简单 功能就行了。
- 飞书
飞书在线文档可以说是我用过的所有在线文档里最好的那个了,同样是使用markdown书写。
-
如何寻找论文
我个人寻找论文的途径有以下几个来源:
- paper with code
- Arxiv
- IEEE Xplore
- 谷歌学术
- 善用学校图书馆购买的资源
编号 | 网站 | 链接 |
---|---|---|
01 | R2ML - 玩机器学习的张北海 | [url] |
02 | 天池大数据竞赛 | [url] |
03 | kaggle 数据竞赛 | [url*] |
04 | 百度AI Studio | [url] |
05 | 微软AI-EDU | [url] |
06 | AIHub | [url] |
07 | 狐狸教程-互动学习IT技术 | [url] |
08 | 专知 | [url] |
09 | 神力AI | [url] |
10 | 月来客栈 | [url] |
11 | paper with code | [url] |
12 | 动手学深度学习 - 李沐 | [url] |
带*号的链接需要梯子才能访问
感谢以下贡献者和极创工作室的帮助:
姓名 | 职责 | 个人主页 |
---|---|---|
牛志康 | 发起人、主要贡献者 | https://nofish-528.github.io/ |
paradox-11 | 贡献者 |
Made with contrib.rocks.
该文档采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。