Just do it. 开始动手去做是成功的第一步,也是最关键的一步。
科研→Re-search→反复搜索→要学会自己通过搜索调研解决问题,实在解决不了的再寻求他人帮助,自主解决问题的能力是最重要的。
推荐一个最近新出的集论文下载、阅读、管理、分享,笔记等多种功能为一体的科研工具ReadPaper:https://readpaper.com/。
一个别人写的科研经验总结:https://github.com/pengsida/learning_research。
1. 基础课程:重点掌握《高等数学》《线性代数》《概率论与数理统计》《矩阵论》《凸优化》课程,这里的掌握是要理解它们的本质、作用及物理几何意义,而非应付考试。建议搜索国内外优秀书籍、公开课、视频进行学习。例如,《线性代数》推荐《线性代数的本质》系列视频https://www.bilibili.com/video/BV1ys411472E(注:3Blue1Brown这位大神不止做了线性代数本质这系列视频,还做了很多其他本质系列视频,强推),以及Gilbert Strang的麻省理工大学公开课视频https://www.bilibili.com/video/BV1zx411g7gq。
快速了解机器学习所需要的数学知识,建议学习《Mathematics for Machine Learning》一书。
2. 机器学习:推荐国立台湾大学李宏毅机器学习课程https://www.bilibili.com/video/BV1Wv411h7kN?spm_id_from=333.337.search-card.all.click,清华大学大佬白板推导系列https://www.bilibili.com/video/BV1aE411o7qd?spm_id_from=333.337.search-card.all.click。
3. 深度学习:推荐Google研究科学家Ian Goodfellow(Generative Adversarial Nets提出者)的花书《Deep Learning》(有中文译本 人民邮电出版社),斯坦福大学李飞飞(ImageNet的提出者)老师的cs231n计算机视觉课程https://www.bilibili.com/video/BV1nJ411z7fe。
4. 科研编程:操作系统Linux,主要编程语言Python,主要深度学习框架Pytorch。因此,要掌握Linux的使用方法与常用命令,熟练使用Python语言编程,熟练使用Pytorch深度学习框架搭建网络与深度学习算法。Linux学习:https://www.runoob.com/linux/linux-tutorial.html;Python学习:https://www.runoob.com/python3/python3-tutorial.html;Python第三方库Pillow(处理图像)学习:https://pillow-cn.readthedocs.io/zh_CN/latest/;Python第三方库Numpy(CPU处理多维张量)学习:https://www.runoob.com/numpy/numpy-tutorial.html;深度学习框架Pytorch(使用Python编程,GPU处理多维张量,提供深度学习API)学习:https://pytorch.org/docs/stable/index.html。
1. 科学上网: (自己找方法)
2. 检索论文:GoogleScholar:https://scholar.google.com/
3. 下载论文:IEEE:https://ieeexplore.ieee.org/Xplore/home.jsp;ScienceDirect:https://www.sciencedirect.com/;SpringerLink:https://link.springer.com/;以上三个网站均为正版版权官网,需要收费,西电均已购买,因此在学校内网可以免费下载。arXiv:https://arxiv.org/ 占坑网站,最新的文章会发表在上面占坑,但是良莠不齐,免费下载;Sci-Hub:https://www.sci-hub.ren/ 不在学校内又想下载IEEE等版权收费文章,Sci-Hub是神器,网站宣言...to remove all the barriers in the way of science,地址可能会变,因为一直被告。
4. 管理论文:Mendely:https://www.mendeley.com/;Endnotes:https://www.endnote.com/;Zotero:https://www.zotero.org/;自己选择。最新推荐:ReadPaper:https://readpaper.com/。
5. 撰写论文:LaTex环境安装:http://tug.org/texlive/;按着网站指导来。也可以使用在线的LaTex编辑工具如Overleaf:https://www.overleaf.com/login。
6. 论文作图:PPT、Visio;直接保存成PDF就是矢量图,使用Acrobat将图片多余部分裁剪。
7. 代码编辑:VSCode(Visual Studio Code):https://code.visualstudio.com/;你想要的代码编辑功能都能通过VSCode+插件实现。常用VSCode插件:LaTex Workshop(用VSCode写论文,前提得先装好LaTex环境)、Remote-SSH(用VSCode直接浏览编辑远程服务器上的代码和图片)、One Dark Pro(让VSCode更好看)、Bracket Pair Colorizer 2(让代码每一级括号带不同的颜色,括号再也不会不成对报错了)、Code Spell Checker(检查你的拼写是否有错误)、indent-rainbow(不同级的缩进带不同颜色,对Python来说很有用)、Python(可以直接在VSCode调试Python程序,前提得先装好Python环境)、Copilot(基于上下文的代码补全及生成)。
8. 远程连接工具MobaXterm:https://mobaxterm.mobatek.net/,集成了SSH和SFTP等,连接访问远程服务器时十分方便。
AIGC领域包含很多研究方向,但是不同的研究方向仅是输入输出数据以及任务形式上有所不同,他们所涉及的核心方法/算法是相同的,都要使用机器学习/深度学习技术,而且该领域的发展也是受到机器学习/深度学习技术的发展驱动的。因此,想要对各研究方向的前沿展开研究、发表论文,掌握机器学习/深度学习的前沿技术是必要条件。
根据AIGC@IIP-XDU所开展的科研工作,下面给出了需要重点掌握的机器学习/深度学习技术:
【深度生成模型】
首先要对深度生成模型有个整体视角的理解,理解什么是生成模型、什么是深度生成模型、深度生成模型能做什么、深度生成模型的分类。
Jakub Tomczak《深度生成建模》讲座报告与视频:https://www.bilibili.com/video/BV1pb4y1s7hS/?spm_id_from=333.337.search-card.all.click&vd_source=cd39e17f789bd6d503b915533f2c2237
电子书Deep Generative Modeling:https://link.springer.com/book/10.1007/978-3-030-93158-2
这些深度生成模型中,重点掌握:
GAN (Generative Adversarial Networks,生成对抗网络)
1. 学习GAN的原理,可以看CS231n、李宏毅机器学习相关视频,或者搜一些博客等。
2. 跑通DCGAN的代码,https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html
3. 读pix2pix跟CycleGAN这两篇论文,弄清楚原理
4. 跑通pix2pix跟CycleGAN代码, https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
5. 学习StyleGAN与GAN Inversion、GAN Prior技术原理
Diffusion Models (扩散模型) 【重中之重】
Diffusion Models是深度生成模型的最新技术,目前基本各个领域的最前沿方法都是基于Diffusion Models提出的。因此,必须掌握Diffusion Models。
Diffusion Models具体可参考这个文档。