Python学习路线
# 一、学习 C++(大一 10 月-1 月)
大一进社团验收完 C 语言后开始学习 C++,学到泛型即可(便于理解为什么 python 中不需要定义数据的类型)。
# 二、python 基础和 Anaconda 的安装(大一 1 月-2 月)
取消数据库,图形库的学习,学完 C++直接上手 python(感兴趣可自行了解)。
Python 视频(python 不是人工智能,是实现人工智能的一种工具):【Python 教程】《零基础入门学习 Python》最新版_哔哩哔哩_bilibili(opens new window) 更详细的可以看:黑马程序员 Python 教程_600 集 Python 从入门到精通教程(懂中文就能学会)(opens new window)
Anaconda 安装(包含了巨大多数 python 包,再安装其他包时也特别方便):版本号 (opens new window)详细步骤(opens new window)
# 三、数据分析(大一 1 月-2 月)
取消爬虫学习(感兴趣可自行了解)。
· numpy 包
· pandas 包(这是两个数学库,可对数据进行处理)
· matplotlib 包(可对数据进行可视化)
b 站有大量教程,快速入门重点学习这三个包即可(为了方便理解深度学习中维度的概念以及对数据的处理)。
# 四、深度学习框--pytorch 框架(大一 3 月-5 月)
取消机器学习以及 OpenCV 库的学习(感兴趣可自行了解)。
在安装 pytorch 时注意版本号,安装下面这篇博客的步骤来即可安装成功:配置 pytorch 环境(opens new window)
CNN(卷积神经网络,用于处理大多数的计算机视觉问题)
需会手撸经典的卷积神经网络 AlexNet、ResNet、Inception 等
需会修改卷积神经网络中的卷积层、激活函数等
RNN(循环神经网络,用于处理大多数自然语言处理问题) RNN 的延伸网络 LSTM
两一个延伸网络 GRU
GAN(生成对抗网络,模型较为复杂) 这几种神经网络是目前较为常用的,可以再 B 站或一些博客上学习,注意:先学习数学思想,再学习代码编写。
通过以下方式学习(结合起来学习更好):
① 在莫凡 python 博客视频中学习,但是不够详细
https://mofanpy.com/
② 快速入门 pytorch
https://www.bilibili.com/video/BV1hE411t7RN?spm_id_from=333.999.0.0
③ 看李沐的动手深度学习(重点推荐)
https://www.bilibili.com/video/BV18h411r7Z7
④pytorch 实践
https://www.bilibili.com/video/BV1Y7411d7Ys?spm_id_from=333.999.0.0
以上视频结合起来学习效果更好,不用全部看完,自己认为掌握 pytorch 后不用往下看了。
# 五、细分方向(大一 6 月-9 月)
计算机视觉(目前主要方向是计算机视觉,其他方向我的研究不深入,不做太多分享,感兴趣可自行了解,欢迎大家勇于开辟新的方向)
l 图像分类
l 目标检测
l 语义分割
选定方向后即可开始阅读该领域相关的论文。刚接触这个领域时可以先去找几篇比较新的综述看看这个领域目前已经研究到哪个程度了,还有哪些工作可以做。之后可以去百度搜索这个领域比较厉害的团队,看看他们在做什么,一般大牛团队做的都是这个领域比较前沿的工作。如果你读了一篇很不错的论文,你可以百度作者的名字,看看他的其他论文,或者搜索他的博客,跟进他的后续工作。如果你读一篇论文时感觉晦涩难懂,你可以找找这篇论文是基于哪个算法改进的,一直顺藤摸瓜,最终找到最原始的算法,这可能会帮助你理解改进后的算法。
每个领域都是互通的,因为深度学习本质就是看哪个算法能更好地提取特征,所以只要是对提取特征有改进的算法,不管是自然语言处理还是计算机视觉,都是通用的。例如图像分类的模型可以作为目标检测的骨干网络。
这里推荐几个 b 站 up 主:
李沐大神:跟李沐学 AI 的个人空间_哔哩哔哩_bilibili(opens new window)
霹雳吧啦:霹雳吧啦 Wz 的个人空间_哔哩哔哩_bilibili(opens new window)
Bubbling:Bubbliiiing 的个人空间_哔哩哔哩_bilibili(opens new window)
# 六、阅读论文、复现论文(大二 10 月-次年寒假开学)
推荐读论文神器 ReadPaper:论文阅读-ReadPaper (opens new window)。
注册账号后加入仁爱社团小组,将小组中的论文阅读完成即可(注意阅读时的侧重点)。如何高效阅读一篇论文:http://t.csdn.cn/jUXy0。
读论文时一定要问自己这十个问题:
论文试图解决什么问题? 这是否是一个新的问题? 这篇文章要验证一个什么科学假设? 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员? 论文中提到的解决方案之关键是什么? 论文中的实验是如何设计的? 用于定量评估的数据集是什么?代码有没有开源? 论文中的实验及结果有没有很好地支持需要验证的科学假设? 这篇论文到底有什么贡献? 下一步呢?有什么工作可以继续深入? 复现论文可参考我的 github: https://github.com/RooKichenn?tab=repositories
# 七、改进算法、撰写论文(大三 3 月- 大三 11 月)
写论文需要学习 latex,这里给出几篇 latex 公式: http://t.csdn.cn/q19BO http://t.csdn.cn/V0WED
如果电脑端的 latex 用不习惯或者不方便,可以去用网页版的: https://www.overleaf.com/
翻译软件:
DeepL、chatgpt
好了,上面把枪给你们准备好了,下面就是实战了。这里我也只能说说我写两篇 SCI 的经验,毕竟搞深度学习就像炼丹,举个栗子:有时候你认为有效的东西放在模型中,不一定真的有效;有时候添加了一个模块精度上去了,你也不好解释为什么有效。这就引出了写论文最重要的问题:如何编好一个故事,让别人听完你的故事后认同你的做法。还拿刚才的栗子来说,如果只一昧地改进算法,最终也取得了不错的精度,但是你如何解释你改进的模块是有效的呢?这个模块解决了什么问题呢?你应该很难回答的上来,因为你的目的是提高精度,而不是解决目前领域存在的问题。所以对于没写过论文的你来说,写作思路远远大于算法的精度。这就要求我们在对算法改进时需要进行一些思考:
目前这个领域存在哪些问题?
有哪些问题被前人解决了,解决到什么程度了?
还有没有可改进的空间?
还有哪些问题没有被解决?
能不能根据这个领域数据集的特点对算法进行改进?
按照这个思路去改进算法,写论文时你的思路会异常清晰(我的第二篇二区 SCI,初稿一星期写完)。
下面讲讲实验数据保存部分,我习惯将这组的实验数据命名为文件夹的名称,栗如:在 imagenet 数据集上,这组实验数据用了 SE 模块,基础学习率 lr=0.0001,峰值学习率 lr=0.01, batch_size=128,decay=0.05,epoch=60,最后一轮的精度为 98.55。
那么文件夹的名字就是:
ImangeNet-use_SE-base_lr=0.0001-max_lr=0.01-batch_size=128-decay=0.05-epoch=60-acc=98.5 然后文件夹中放入训练日志和权重。
最后,我希望这份人工智能学习路线能够一届接一届,不断的完善下去,记录每届为这份路线做出贡献的指导老师、学长学姐们,感谢他们为我们的学习规划做出的贡献。
致谢:郭东恩老师,谷召振学长、廖先强学长、印文龙学长、王朝阳学姐
本届人工智能路线改写人:吴泽琛
注:学习路线由仁爱团队提供。