人人都能学会深度学习

119 阅读4分钟

from CycleGan

背景

近期参与一个项目,有用到深度学习,断断续续花了一个多月时学习,算是有基本的认知了,能开始干活了,这篇文章整理了我的学习心得,以及用到的资料。

随便一搜,网上关于深度学习有大量的成体系的资料,生态非常活跃。很多教程非常仔细,讲课的老师苦口婆心,就怕你学不会。

作为一种颇具威力的工具,有追求的工程师都应该尽早掌握。

学习方法

我每天肝的有点晚,你可以适度放宽时间

语言:python,easy!

花半天时间大概扫一遍基础语法,python本身并不难,深度学习引入了很多处理数据和图像的库,刚开始上手有点不习惯

参考资料: www.runoob.com/python3/pyt…

IDE

pycharm,有社区版的,也有专业版的。建议安装专业版本的,支持notebook

深度学习理论

在网上找到的资料,分两大类,一类是大学老师出的,一类是培训机构出的。大学老师讲课注重原理分析,引导你思考、理解,培训机构讲课注重代码实践。

建议先听大学老师的课程,掌握原理,再跟着培训机构的课程动手实践,训练一些模型,实际看看效果

整理的资料如下:

  1. 《机器学习》-by 台湾大学李宏毅

网上非常有名,讲课幽默生动,而且ppt课件原稿毫无保留的分享。

youtube地址: www.youtube.com/watch?v=7XZ…

  1. 深度学习保姆级教学-from B站

www.bilibili.com/video/BV15t…

框架学习

我这里使用的事pytorch框架,简单易上手,学习成本比tensorflow低,而且很多paper都是以pytorch来实现的

pytorch没有必要专门去看文档,我是直接找一些实践的项目,对着敲代码,哪里不理解再查文档说明。

torch文档: pytorch.org/

中文文档: pytorch.apachecn.org/#/

我参考的是这套课程,这个老师会一行行敲代码,对初学者非常友好 《基于torch深度学习案例实践》 www.bilibili.com/video/BV1Mi…

搜集的其他的也很棒的资料

  1. torch学习 www.zhihu.com/question/55…

  2. 李沐-动手深度学习(PyTorch版) space.bilibili.com/1567748478/…

  3. 动手深度学习-电子书版 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…

学习过程中遇到的重要概念

深度学习的流程

  1. 定义模型(设计函数)
  2. 定义损失函数
  3. 迭代参数(正向求梯度、反向更新参数)
  4. 测试

反向传播:

  1. Neural Networks-by 3BlueBrown

www.youtube.com/playlist?li…

B站上也能搜到一部分

  1. 梯度反向传播实例讲解-from 知乎

zhuanlan.zhihu.com/p/40378224

KL散度

关于KL散度-from知乎 zhuanlan.zhihu.com/p/438129018

常见梯度下降方法

梯度下降方法 SGD、Momentum、RMSprop、Adam区别与联系-from知乎

zhuanlan.zhihu.com/p/32488889

softmax 函数

一文详解Softmax函数-from知乎 zhuanlan.zhihu.com/p/105722023

激活函数

一文搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU) zhuanlan.zhihu.com/p/172254089

协方差矩阵

zhuanlan.zhihu.com/p/37609917

深度学习-风格迁移原理与应用

zhuanlan.zhihu.com/p/333598084

www.cnblogs.com/xiaoyh/p/11…

图像的Gram矩阵

图像的Gram矩阵,可以理解为,通过计算每个通道之间的向量夹角来体现特征。我草我想通了!! 因为RGB图像的特征就是通过R G B三通道的值的比例来体现,如果R G B三通道的值是一样的,那就没有风格了,那就是灰色图,只有轮廓了。

而轮廓则通过单个像素的差来对比就可以了啊。我草,Gram 本质上就是看一张图像的 R G B通道的相近程度啊!!! 换句话说,如果这是个灰色的图像,轮廓都长得一样,就没有风格差别了。

一篇paper,讲感知损失

Perceptual Losses for Real-Time Style Transfer and Super-Resolution

arxiv.org/pdf/1603.08…