前言
为什么写这个新手教程呢?是因为带过一些本科小朋友,刚开始学甚至没有学过深度学习,会不知道从哪里入手,有哪些资源可以利用等等。
学习嘛,学一些很难学的东西总是非常痛苦。有效的资源可以让学习者快速理解知识,快速上手,学习的过程也能变得愉悦。
好了,讲了这么多,其实我就是不想每次都发各种链接。
背景知识
本文假设你有一定的Python基础。没有的话就马上去学~
预备篇
我后来觉得要学习深度学习,作为学生而言,有些技术和工具是很重要的,应该在比较熟练掌握一些技术和工具之后,再去学习理论。
(待完成)
科学上网
目前的网络环境,不通过科学上网难以科研,难以访问Github,无法访问Google Scholar。
一开始可以先通过免费的公益节点先实现科学上网,然后以后有需要再搞个付费的,更稳定。
freefq/free
关键点在于:
1. 安装v2rayN
2. 订阅https://raw.fastgit.org/freefq/free/master/v2
Linux
- SSH,SSH客户端
- FTP,Filezila
- 常用命令:cd, ls, cp, mv, mkdir, pwd, rm…
Conda
- 为什么要用conda?
- 创建环境,激活环境,退出环境
- conda install安装库
理论知识篇
关于深度学习的理论知识,请一定要看台湾大学李宏毅老师的课程,醍醐灌顶,幽默风趣,我为他打call。网课视频在李宏毅老师的主页可以找到,应该是挂在YouTube上。墙内用户也可以看B站上面的版本,跟弹幕大军一起交流。
李宏毅主页:https://speech.ee.ntu.edu.tw/~hylee/index.php
b站1:(强推)李宏毅2021/2022春机器学习课程
b站2:李宏毅2020机器学习深度学习(完整版)国语
b站上还有很多,搜关键词【李宏毅】即可。
第二推荐的就是Andrew Ng吴恩达在Coursera上面的机器学习和深度学习两个课程。毕竟我当年就是看这个入门的。
b站1:吴恩达 Andrew Ng 机器学习课程汇总【超全 | 入门经典 | 中英双语字幕 | 】
b站2:DeepLearning–Andrew Ng(吴恩达)
Coursera1:Machine Learning Specialization
Coursera2:Deep Learning Specialization
再进阶的话,就是涉及一些比较新的模型和算法了,那就可以去看李沐的视频。
b站主页:跟李沐学AI
个人评价:
1. 李宏毅的最好理解,最轻松幽默
2. 吴恩达的讲得比较透彻,比较数学一些
3. 李沐的最前沿最新
深度学习工具平台篇
这部分就讲两个工具,PyTorch和TensorFlow。
1. PyTorch
学PyTorch请看这个教程 https://github.com/yunjey/pytorch-tutorial。
使用方法:开个jupyter一句一句跑,一句一句看结果,同时看看这个教程代码的注释,搞懂每一步tensor都是怎么变化的、函数怎么用的、模型怎么构建的等等,就学会了。
2. TensorFlow
其实我比较推荐PyTorch,但是免不了科研中需要复现人家的工作,而人家的代码是TensorFlow写的。可以参考这个教程 https://github.com/instillai/TensorFlow-Course。
使用方法跟PyTorch一样就行。
然后学完这两个教程,很有可能你依然不知道模型该怎么搭,怎么训练,怎么测试。很正常,因为你缺少实操。以后有机会真的自己从头开始复现一个模型什么的,你就真的掌握了。
AI对抗样本
讲这个主要是因为我就是研究AI安全的。
怎么生成对抗样本?一个典型的对抗样本生成方法是projected gradient descent (PGD),只要去看懂下面这个代码就行,代码很简单,适合新手。看完这个至少马上会对对抗样本有个概念。
Github:PGD-pytorch
其他必备知识
- Linux的基本使用:因为你需要在服务器上训练
- SSH客户端,如putty、mobaxterm等:因为你要连接服务器
- FTP客户端,如FileZilla:因为你要很方便地传文件
- VScode,SSH Remote插件:因为你要写代码,并且需要方便地运行你的代码
- conda:因为你可能要做很多的项目,不同的项目会有不同的python环境
(待更新)