深度学习 – Deep learning | DL
- 深度学习是机器学习的一个分支(最重要的分支)
- 机器学习是人工智能的一个分支
深度学习可以说是在传==统==神经网络基础上的升级,约等于神经网络。
神经网络怎么运作
假设深度学习要处理的信息是“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大水管网络。
网络的入口是若干管道开口,网络的出口也是若干管道开口。
这个水管网络有许多层,每一层由许多个可以控制水流流向与流量的调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数量可以有不同的变化组合。
对复杂任务来说,调节阀的总数可以成千上万甚至更多。
水管网络中,每一层的每个调节阀都通过水管与下一层的所有调节阀连接起来,组成一个从前到后,逐层完全连通的水流系统。
当计算机看到一张写有“田”字的图片,就简单将组成这张图片的二进制数据全都变成信息的水流,从入口灌进水管网络。
我们预先在水管网络的每个出口都插一块字牌,对应于每一个我们想让计算机认识的汉字。
等水流流过整个水管网络,计算机就会跑到管道出口位置去看一看,是不是标记由“田”字的管道出口流出来的水流最多。
如果是这样,就说明这个管道网络符合要求。如果不是这样,就调节水管网络里的每一个流量调节阀,让“田”字出口“流出”的水最多。
如此反复进行,直到所有汉字对应的水流都可以按照期望的方式流过整个水管网络。
这时,我们就说,这个水管网络是一个训练好的深度学习模型了。
当大量汉字被这个管道网络处理,所有阀门都调节到位后,整套水管网络就可以用来识别汉字了。这时,我们可以把调节好的所有阀门都“焊死”,静候新的水流到来。
深度学习大致就是这么一个用人类的数学知识与计算机算法构建起来的整体架构,再结合尽可能多的训练数据以及计算机的大规模运算能力去调节内部参数,尽可能逼近问题目标的半理论、半经验的建模方式。
传统机器学习 VS 深度学习
在数据准备和预处理方面,两者是很相似的。他们都可能对数据进行一些操作:
- 数据清洗
- 数据标签
- 归一化
- 去噪
- 降维
传统机器学习和深度学习的核心区别
传统机器学习的特征提取主要依赖人工,简单有效,但是不能通用。
深度学习的特征提取并不依靠人工,而是机器自动提取的。
这也是为什么大家都说深度学习的可解释性很差,因为有时候深度学习虽然能有好的表现,但是我们并不知道他的原理是什么。
4种典型的深度学习算法
卷积神经网络 – CNN
CNN 的价值:
- 能够将大数据量的图片有效的降维成小数据量(并不影响结果)
- 能够保留图片的特征,类似人类的视觉原理
CNN 的基本原理:
- 卷积层 – 主要作用是保留图片的特征
- 池化层 – 主要作用是把数据降维,可以有效的避免过拟合
- 全连接层 – 根据不同任务输出我们想要的结果
CNN 的实际应用:
- 图片分类、检索
- 目标定位检测
- 目标分割
- 人脸识别
- 骨骼识别
了解更多《一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)》
循环神经网络 – RNN
RNN 是一种能有效的处理序列数据的算法。比如:文章内容、语音音频、股票价格走势…
之所以他能处理序列数据,是因为在序列中前面的输入也会影响到后面的输出,相当于有了“记忆功能”。
但是 RNN 存在严重的短期记忆问题,长期的数据影响很小(哪怕他是重要的信息)。于是基于 RNN 出现了 LSTM 和 GRU 等变种算法。这些变种算法主要有几个特点:
- 长期信息可以有效的保留
- 挑选重要信息保留,不重要的信息会选择“遗忘”
RNN 几个典型的应用如下:
- 文本生成
- 语音识别
- 机器翻译
- 生成图像描述
- 视频标记
了解更多《一文看懂循环神经网络-RNN(独特价值+优化算法+实际应用)》
生成对抗网络 – GANs
GAN 的设计动机就是——自动化。
生成对抗网络(GAN)由2个重要的部分构成:
- 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
- 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”
步骤:
-
第一阶段:固定「判别器D」,训练「生成器G」
- 一开始的G应该有一定基础。我们让一个「生成器G」不断生成“假数据”,然后给这个「判别器D」去判断。
- 最终「判别器D」基本属于瞎猜的状态,判断是否为假数据的概率为50%。
-
第二阶段:固定「生成器G」,训练「判别器D」
- 最终「判别器D」可以准确的判断出所有的假图片。
-
循环阶段一和阶段二
- 最终我们得到了一个效果非常好的「生成器G」,我们就可以用它来生成我们想要的图片了。
应用:GAN 常用于生成图像数据集,生成人脸照片,生成照片、漫画人物,图像到图像的转换,文字到图像的转换等待
了解更多《什么是生成对抗网络 – GAN?(基本概念+工作原理)》
10大典型的GAN算法
GAN 算法有数百种之多,大家对于 GAN 的研究呈指数级的上涨,目前每个月都有数百篇论坛是关于对抗网络的。
如果对 GANs 算法感兴趣,可以在 「GANs动物园」里查看几乎所有的算法。
算法 | 论文 | 代码 |
---|---|---|
GAN | 论文地址 | 代码地址 |
DCGAN | 论文地址 | 代码地址 |
CGAN | 论文地址 | 代码地址 |
CycleGAN | 论文地址 | 代码地址 |
CoGAN | 论文地址 | 代码地址 |
ProGAN | 论文地址 | 代码地址 |
WGAN | 论文地址 | 代码地址 |
SAGAN | 论文地址 | 代码地址 |
BigGAN | 论文地址 | 代码地址 |
深度强化学习 – RL
强化学习算法的思路非常简单。
以游戏为例,如果在游戏中采取某种策略可以取得较高的得分,那么就进一步「强化」这种策略,以期继续取得较好的结果。
了解更多:《一文看懂什么是强化学习?(基本概念+应用场景+主流算法)》