1 人工智能学习路线
这是按照我自己的理解整理的人工智能入门学习路线:人工智能学习路线
大家可以按照这个思路看自己目前处在哪个位置,规划自己的学习。
研究生就是做三件事:看论文、写代码做实验、写论文。
编程能力弱的,就多花点时间,系统学习下python。
理论弱的,就多花点时间,打好基础后,也要多看论文。
两个都弱的。。。就要比别人多付出一些努力,才不会落下大部队。
2 理论及入门
2.1 从paddle上手
传统方式是看吴恩达的方式入门深度学习,但个人认为
- 吴恩达资料有些陈旧了
- 研一课程本身也会教授机器学习、深度学习理论,不必自己再刻意花太多时间钻研理论
- 科研,或者以后找工作,更重要的还是编程开发能力,应该多练习编程
以上考虑,所以我推荐飞浆(paddle)系列的资料来入门
- 有AI学习地图,学习路线、步骤清晰
- 有文档,有视频,有免费服务器等,配套学习资源齐全
- 理论讲解简洁,能较快上手做实验
- 侧重编程能力的锻炼,更接近实际科研、工作能力需求
- 飞浆技术生态全面,打通了”教学-科研-产业”,以后可以用于自己的科研,也能用于以后工作
飞浆AI学习地图:
- 基础:预备知识根据自己基础不同,可以选看。
- 入门:重点看“系统入门”部分,可以看配套文档:飞桨PaddlePaddle-零基础实践深度学习,文档能看明白的话也可以不用跟看视频。
- 实验:然后根据自己研究方向,文字组,图像组,重识别等,再选对应的进阶资料学习:目标检测、图像分割、VIT、OCR等。
补充说明
- 大家看论文和开源代码,深度学习主流框架还是pytorch,所以pytorch大家也是要学会的。
- 好在paddle和pytorch底层核心的东西几乎一模一样的,大家不用太顾虑学习时间成本。
- 会了pytorch再学paddle,或者会paddle再学pytorch都很快。其实推荐paddle,重点不仅是学它的框架原理,而是能系统学习深度学习各方面的理论思想和代码实验怎么一一对应。
- paddle的细分框架,基本都有实现该领域的主流算法,而且代码质量比各种杂七杂八的论文作者写的要好的多。能给自己的研究和实验带来很大便利,甚至就作为自己研究的主要框架。
- 有些同学如果还是执着想看看经典的吴恩达老师系列的学习资料,以及一些配套书籍,可以看后文“附录1”。但个人建议不用太在这些资料上花费太多时间,性价比不高,能把飞浆这个系列的资料学明白,能力其实足够了。
2.2 开始科研
- 找论文
- 冷门领域可以全部找出来
- 热门领域论文太多了,也不用全看,一般看引用量高的就行
- 分享炎蓉整理的找论文技巧笔记 找论文.pdf
- 解读课题和找论文.pdf,分析关键词,比如 比如联机Online,手写Handwriting,文档Document 。
- 收集有哪些公开的数据集、代码
- 对现有解决方案进行一个综合性的梳理,简称综述。
- 2、3步也不一定要自己一步步做,也可以参考一些知乎、博客的归纳性资料。
这些做完,一般就有自己的想法了,会知道主要研究思路,是否有哪些可用的代码可以跑跑,或者不难,也可以自己写一个,尝试复现跑些实验,跑实验的过程进一步了解数据格式,特征提取等一些细节过程。
有了这个基础,后续主要就是研究方法,看最新的论文,别人工作还有什么不足,你有什么创新,可以做实验验证,实验行得通,就能写论文了。
3 开发
前面只是大概提了下理论和入门方法,让新人知道从哪里开始,第一步要怎么做。
但我个人理论水平其实不咋滴,不敢在各位大佬面前班门弄斧。
关于理论的学习,我们团队也有很多牛人,相信他们能给大家更好的指导帮助。
而我准备的《人工智能开发基础》分享会,重点是分享编程开发经验。
这个会作为一个系列每几个月分享一次。这里我介绍下本课程大纲,都会讲什么。
(更新间隔这么长主要原因不是组会间隔太久,而是我自己也在学习,也要不断充电,才能把知识点组织好,讲的不那么糟糕,希望大家有所收获)
分四个大模块,循序渐进。
3.1 起航篇—python基础
非科班/零基础怎么开始
语法基础
可以选一个作为主修,另一个作为辅助互补。
- 推荐廖雪峰:Python教程 - 廖雪峰的官方网站
- 还有B站”程序员在思考“的视频:零基础Python手把手学编程课程2020最新Python零基础入门课程(完结)想学Python这部视频就够了_哔哩哔哩_bilibili
算法基础
算法训练(codeforces) · 语雀,在什么OJ平台其实都无所谓,关键是题目要有难度、类型分类,还要能看到别人的求解代码,开拓自己思维。不要只是自己做完题目就不管了,要有“反馈”。
- 想学编程语言,可以多看别人最短代码是怎么实现的。
- 想学思维能力,可以多看别人最快代码是怎么实现的。
- 想学算法知识,要了解算法知识体系大纲,有系统有计划地做题。
本科生时间相对充裕,非常建议多打打算法竞赛,多练题。
研究生我则不太推荐练太多算法题,一方面时间精力有限,另一方面读论文,看工程代码一样能锻炼思维能力,提升编程水平,也更接近工作生产应用需要的技术能力。大家平时自己写了什么代码,也可以让我帮忙看看,或许能交流些算法、工程的经验,这也是有效的外部反馈。
我讲的内容
起航篇会介绍一些大家平时容易忽略的python编程规范和技巧,和pycharm使用技巧。
这个就不是python零基础教程了,但我会尽量讲的简单些,希望无论是小白还是老手,都能有所收获。
会介绍常见问题的标准库处理方法,然后也会简单介绍pyxllib封装的一些功能使用方法。
3.2 离港篇—深度学习开发基本框架流程
离港篇会开始配置pytorch等深度学习开发环境,并拿一个小任务介绍pytorch的开发框架。
再用paddle介绍一些细分领域的开发框架、原理。
有机会也会简单介绍下detectron2等经典的二次封装框架。
PyTorch相关自学资料推荐:
- 序言 — 动手学深度学习 2.0.0-alpha1 documentation
- 会跟着讲算法原理
- PyTorch官方教程中文版
- 非常详细,甚至讲conda安装细节,不过软件更新迭代很快,有些细节不一定对得上~~
- Welcome to PyTorch Tutorials — 官方英文文档
- 边讲边做一个完整框架,然后再展开讲各个组件细节
一些专业、进阶的python开发、工程技术,会以命令行解析、反射机制等专题的形式穿插在框架学习中讲解。
3.3 工具篇—pyxllib
工具篇会系统介绍下pyxllib工具库,分享一些已经封装好的常用图像处理、文本处理功能等。
以及labelme相关数据可视化功能,更方便、更直观地分析模型结果好坏。
也会简单介绍些pyxlpr库的功能。
3.4 团队篇
团队篇会开始介绍多人协作开发需要掌握的技能知识。
在开发较大的项目时,组织架构代码要注意的一些事项,怎么才算合理的接口,和代码工程化。
包括git的使用,如何发布自己的工具包。
4 写作
大家要重视每周的周报,要在平时的周报中就锻炼自己分析归纳、总结问题的能力。
跟写论文一样,我认为周报首先要有一段摘要,让别人能快速了解你一周都做了什么事情。
正文则可以尽可能详细的记录自己的研究过程、思考思路,这个不是写给别人看的,而是作为自己的学习笔记、实验记录,这些都是将来自己写论文的素材,平时就要注重积累,而不是等写论文的时候才梳理。
这样平时大家互相查阅周报时,就能从摘要快速了解情况,并在遇到感兴趣的共同话题时,可以查看正文细节了解彼此的工作详情,作进一步交流。
有条件的,也可以尝试每周用英文写摘要,锻炼自己的英文写作能力。
(也锻炼别人英文阅读能力 doge)
除了摘要,很多人写文章也容易忽略背景介绍、内容大纲目录。
有时候,简单写一两句前景回顾、背景概述,能给予别人很大的便利。
目录不仅是方便别人查看,也更是一个人思维能力、是否有大局观的反应,是眉毛胡子一把抓,整天自己在忙什么都不知道,还是有条不紊地按自己的节奏在学习、做实验。
TODO 以后我会再整理些如何写文档的经验分享
附录1:其他理论学习资料
吴恩达课程
| Coursera (在官网才有完整资料,但比较卡顿) |
网易云课堂 (国内浏览速度快,也有ppt课件资料,但没有课堂练习题、课后编程作业) |
B站,方便快捷,还有弹幕,缺点是只有视频资料,没有课件 | |
|---|---|---|---|
| 机器学习 11周的课程量 |
机器学习 | Coursera | 吴恩达机器学习 | 吴恩达机器学习系列课程 |
| 深度学习 5个课程,共16周的课程量 |
深度学习 | Coursera | 深度学习工程师微专业 | 吴恩达深度学习deeplearning.ai |
能直接在coursera看的还是强烈建议在coursera,或者在网易云课堂看完视频后,去coursera把作业补充做完。
ng的课程编程语言是使用Octave(相当于matlab,不过新版好像有python的了),和tensorflow1的框架,跟我们之后要用的pytorch框架不一样,所以编程题虽然建议要做,但可以不用投入太多精力深究,以学习理论概念为主。(或者可以网上找别人用python求解的代码)
配套书本
这里也推荐两本书,可以配合着看:
- 周志华《机器学习》,因为封面是西瓜,俗称“西瓜书”
- 非官方配套公式详解称为 南瓜书PumpkinBook
- Ian Goodfellow的《深度学习》
- 有电子书 GitHub - janishar/mit-deep-learning-book-pdf
- 也有对应的中文译本 exacity/deeplearningbook-chinese: Deep Learning Book Chinese Translation。因为中译本封面是一片花,俗称“花书”。
- B站也能找到一些讲解书本内容的视频,例如 同济子豪兄《深度学习》。
图像处理
还有的人可能会想了解图像处理的知识,可以看毛星云的《OpenCV3编程入门》,虽然书讲的是c++语言,但是也有python版的opencv,接口使用方法差不多的。
闲的慌的也可以啃经典大部头,冈萨雷斯的《图像处理》。
附录2:学习方法论
- 想清楚自己要做什么,就算没有清晰的目录,也要找准自己大致的前进方向。
- 要有规律的作息计划,合理的作息是最有效的学习方法。早睡养颜,早起养志。
- 在这个信息时代,特别是IT界工作的人,前不沾村后不着店,容易浮躁。要有自己的定力,少些手机等碎片化时间消耗,多些系统学习安排。
- 注意锻炼身体,哪怕每周抽一点时间出去随便走走也好,劳逸结合,注意情绪调控。
- 有了以上的基础,才有继续讨论方法论的意义。详见:处理困难的方法论 · 语雀。
还有篇很久以前写的文章,算是个人瞎总结的一些学习方法、感想
就当看着玩吧,不一定适合每个人
【Python】零、学习经验分享_代号4101的专栏-CSDN博客
另外还有很久以前写的内容python教程,有点过时了,有兴趣的可以大概扫一扫,不用细看:
【Python】一、Python基础_代号4101的专栏-CSDN博客
【Python】二、debuglib.py,调试利器_代号4101的专栏-CSDN博客
【Python】三、代码组织架构_代号4101的专栏-CSDN博客_python代码结构
这是平时大家询问,整理的一些基础知识:
FAQ · 语雀
