背景
近期参与一个项目,有用到深度学习,断断续续花了一个多月时学习,算是有基本的认知了,能开始干活了,这篇文章整理了我的学习心得,以及用到的资料。
随便一搜,网上关于深度学习有大量的成体系的资料,生态非常活跃。很多教程非常仔细,讲课的老师苦口婆心,就怕你学不会。
作为一种颇具威力的工具,有追求的工程师都应该尽早掌握。
学习方法
我每天肝的有点晚,你可以适度放宽时间
语言:python,easy!
花半天时间大概扫一遍基础语法,python本身并不难,深度学习引入了很多处理数据和图像的库,刚开始上手有点不习惯
参考资料: www.runoob.com/python3/pyt…
IDE
pycharm,有社区版的,也有专业版的。建议安装专业版本的,支持notebook
深度学习理论
在网上找到的资料,分两大类,一类是大学老师出的,一类是培训机构出的。大学老师讲课注重原理分析,引导你思考、理解,培训机构讲课注重代码实践。
建议先听大学老师的课程,掌握原理,再跟着培训机构的课程动手实践,训练一些模型,实际看看效果
整理的资料如下:
- 《机器学习》-by 台湾大学李宏毅
网上非常有名,讲课幽默生动,而且ppt课件原稿毫无保留的分享。
youtube地址: www.youtube.com/watch?v=7XZ…
- 深度学习保姆级教学-from B站
框架学习
我这里使用的事pytorch框架,简单易上手,学习成本比tensorflow低,而且很多paper都是以pytorch来实现的
pytorch没有必要专门去看文档,我是直接找一些实践的项目,对着敲代码,哪里不理解再查文档说明。
torch文档: pytorch.org/
中文文档: pytorch.apachecn.org/#/
我参考的是这套课程,这个老师会一行行敲代码,对初学者非常友好 《基于torch深度学习案例实践》 www.bilibili.com/video/BV1Mi…
搜集的其他的也很棒的资料
-
torch学习 www.zhihu.com/question/55…
-
李沐-动手深度学习(PyTorch版) space.bilibili.com/1567748478/…
-
动手深度学习-电子书版 zh-v2.d2l.ai/
开发机器
如果你有台式机更好,没有的话,可以考虑在网上租一个。我用的是这家,还挺好上手的。
云服务:www.autodl.com
GAN
我的项目主要是用GAN,额外花点时间学习GAN的原理及实现。
这个领域迭代很快,一两年前的代码现在就跑不起来了,各种兼容问题,很讨厌。但也侧面反应这个领域蓬勃发展,一个GAN网络,衍生出几十上百种加强版本,每个模型背后都是一篇Paper 一个团队。
李宏毅GAN www.youtube.com/playlist?li…
2022最新对抗生成网络大项目实战: www.bilibili.com/video/BV1K4…
stargan-vc2 变音 www.kecl.ntt.co.jp/people/kane…
学习过程中遇到的重要概念
深度学习的流程
- 定义模型(设计函数)
- 定义损失函数
- 迭代参数(正向求梯度、反向更新参数)
- 测试
反向传播:
- Neural Networks-by 3BlueBrown
B站上也能搜到一部分
- 梯度反向传播实例讲解-from 知乎
KL散度
关于KL散度-from知乎 zhuanlan.zhihu.com/p/438129018
常见梯度下降方法
梯度下降方法 SGD、Momentum、RMSprop、Adam区别与联系-from知乎
softmax 函数
一文详解Softmax函数-from知乎 zhuanlan.zhihu.com/p/105722023
激活函数
一文搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU) zhuanlan.zhihu.com/p/172254089
协方差矩阵
深度学习-风格迁移原理与应用
zhuanlan.zhihu.com/p/333598084
图像的Gram矩阵
图像的Gram矩阵,可以理解为,通过计算每个通道之间的向量夹角来体现特征。我草我想通了!! 因为RGB图像的特征就是通过R G B三通道的值的比例来体现,如果R G B三通道的值是一样的,那就没有风格了,那就是灰色图,只有轮廓了。
而轮廓则通过单个像素的差来对比就可以了啊。我草,Gram 本质上就是看一张图像的 R G B通道的相近程度啊!!! 换句话说,如果这是个灰色的图像,轮廓都长得一样,就没有风格差别了。
一篇paper,讲感知损失
Perceptual Losses for Real-Time Style Transfer and Super-Resolution