pytorch 卷积神经网络CNN
www.ai-xlab.com
AI MOOC
卷积神经网络CNN
1
www.ai-xlab.com
AI MOOC
卷积神经网络是近年发展起来,并广泛应用于图像处理,NLP等领域的一
种多层神经网络。
传统BP处理图像时的问题:
1.权值太多,计算量太大
2.权值太多,需要大量样本
进行训练。
CNN
www.ai-xlab.com
AI MOOC
1962年哈佛医学院神经生理学家Hubel和Wiesel通过对猫视觉皮层细
胞的研究,提出了感受野(receptive field)的概念,1984年日本学者
Fukushima基于感受野概念提出的神经认知机(neocognitron)可以看
作是卷积神经网络的第一个实现网络,也是感受野概念在人工神经网
络领域的首次应用。
局部感受野
www.ai-xlab.com
AI MOOC
CNN通过
局部感受野
和
权值共享
减少了神经网络需要训练的参数个数
局部感受野和权值共享
www.ai-xlab.com
AI MOOC
1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1 = 4
特征图:feature map
卷积核/滤波器
卷积计算
www.ai-xlab.com
AI MOOC
步长为1
步长为2
不同步长的卷积
www.ai-xlab.com
AI MOOC
滤波器
www.ai-xlab.com
AI MOOC
Pooling常用的三种方式:
1.max-pooling
2.mean-pooling
3.stochastic pooling
池化Pooling
www.ai-xlab.com
AI MOOC
SAME PADDING:
给平面外部补0
卷积窗口采样后得到一个跟原来大小相同的平面
VALID PADDING:
不会超出平面外部
卷积窗口采样后得到一个比原来平面小的平面
VALID PADDING
SAME PADDING
Padding
www.ai-xlab.com
AI MOOC
SAME PADDING
VALID PADDING
Padding
www.ai-xlab.com
AI MOOC
SAME PADDING:可能会给平面外部补0
VALID PADDING:不会超出平面外部
假如有一个28*28的平面,用2*2步长为2的窗口对其进行卷积/池化操作
使用SAME PADDING的方式,得到14*14的平面
使用VALID PADDING的方式,得到14*14的平面
假如有一个2*3的平面,用2*2步长为2的窗口对其进行卷积/池化操作
使用SAME PADDING的方式,得到1*2的平面
使用VALID PADDING的方式,得到1*1的平面
Padding
www.ai-xlab.com
AI MOOC
LeNET-5
是最早的卷积神经网络之一,曾广泛用于美国银行。手写
数字识别正确率在99%以上。
卷积窗口:5*5
步长:1
池化窗口:2*2
步长:2
卷积窗口:5*5
步长:1
池化窗口:2*2
步长:2
卷积层
池化层 卷积层
池化层
输入层
全链接层
全链接层
输出层
LeNET-5
www.ai-xlab.com
AI MOOC
可视化:
http://scs.ryerson.ca/~aharley/vis/conv/
http://scs.ryerson.ca/~aharley/vis/conv/flat.html
LeNET-5
www.ai-xlab.com
AI MOOC
ImageNet介绍
2
www.ai-xlab.com
AI MOOC
ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大
的数据库。一共有1500万张左右的图片,被分为22000个左右的类。是
由斯坦福教授李飞飞领导建立的。
TED演讲:我们怎么教计算机理解图片?
ImageNet
www.ai-xlab.com
AI MOOC
1976年出生于北京,长在四川,16岁随父母移居美国新泽西州。
1999年毕业于普林斯顿大学,2005年获得加州理工学院电子工程博士。
2009年加入斯坦福大学担任助理教授,并于2012年担任副教授(终生教授),和
斯坦福人工智能实验室与视觉实验室主任。
2017年1月入职Google,担任谷歌云首席科学家
。
2018年9月卸任谷歌云首席科学家,回归斯坦福大学当教授。
李飞飞
www.ai-xlab.com
AI MOOC
ILSVRC:ImageNet Large Scale Visual Recognition Challenge
ILSVRC
www.ai-xlab.com
AI MOOC
ILSVRC:ImageNet Large Scale Visual Recognition Challenge
ILSVRC
www.ai-xlab.com
AI MOOC
序列模型
3
www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
1986年 Rumelhart 等人提出循环神经网络(recurrent neural network),简称RNN。RNN
跟我们之前学习过的神经网络都不太一样,它是一种序列模型。比如卷积网络是专门用来处
理网格化数据(例如图像数据)的神经网络,RNN是专门用来处理序列数据的神经网络。所
谓的序列数据指的是跟序列相关的数据,比如一段语音,一首歌曲,一段文字,一段录像等。
www.ai-xlab.com
AI MOOC
序列模型应用:语音识别
把语音转换成为文字
www.ai-xlab.com
AI MOOC
序列模型应用:文本分类
把文章,邮件或用户评论等文本数据做分类
www.ai-xlab.com
AI MOOC
序列模型应用:机器翻译
例如把中文翻译成英文
www.ai-xlab.com
AI MOOC
序列模型应用:分词标注
给一段文字做分词标注,标注每个字对应的标号。假如使用4-tag(BMES)标注标签,
B表示词的起始位置,M表示词的中间位置,E表示词的结束位置,S表示单字词。
可以得到类似如下结果:
“人/B 们/E 常/S 说/S 生/B 活/E 是/S 一/S 部/S 教/B 科/M 书/E ”
www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
隐层 h
t
接收的是上时刻的隐层(hidden layer)
h
t−1
还是上时刻的输出(output layer)y
t−1
,
可以分成了两种 RNN:
Elman network 接收上时刻的隐层 h
t−1
Jordan network 接收上时刻的输出 y
t−1
www.ai-xlab.com
AI MOOC
RNN一个重要的用法就是通过之前的信息来决策当前的问题。
比如就像我们看电影,我们要根据电影之前的情节,才能理解现在的情节。
例子1:有一朵云飘在()
例子2:我从小生长在美国。。。我可以说一口流利的()
RNN(Recurrent Neural Network)
www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
www.ai-xlab.com
AI MOOC
长短时记忆网络LSTM
4
www.ai-xlab.com
AI MOOC
i
t
输入门信号
f
t
忘记门信号
ǁ
𝑐
𝑡
Cell输入信号
c
t
Cell输出信号
o
t
输出门信号
h
t
block输出信号
x
t
第t个序列输入
h
t-1
第t-1个序列输出
σ
g
sigmoid函数
σ
c
tanh函数
σ
h
tanh函数或线性函数
LSTM(Long Short Term Memory)
www.ai-xlab.com
AI MOOC
Peephole LSTM
和之前的公式做比较,发现只是把 h
t−1
都换成
了 c
t−1
,即三个门的输入都改成了 [x
t
,c
t−1
] 。因
为是从 cell state 里取得信息,所以叫窥视孔(
peephole)。
www.ai-xlab.com
AI MOOC
FC-LSTM(Fully-connected LSTM )
三个输入分别是 [x
t
,h
t−1
,c
t−1
]
www.ai-xlab.com
AI MOOC
LSTM(Long Short Term Memory)
www.ai-xlab.com
AI MOOC
LSTM(Long Short Term Memory)
www.ai-xlab.com
AI MOOC
门控循环单元GRU
5
www.ai-xlab.com
AI MOOC
GRU(Gated Recurrent Unit)
GRU 这个结构是 2014 年才出现的,效果跟
LSTM差不多,但是用到的参数更少。将忘记
门和输入门合成了一个单一的更新门。
z
t
是更新门(update gate),决定h
t
的更新情况
r
t
是重置门(reset gate),决定是否要放弃h
t-1
෨
ℎ
𝑡
是候选输出,接收 [x
t
,h
t−1
]
h
t
是当前输出,接收 [h
t−1
,
෨
ℎ
𝑡
]
www.ai-xlab.com
AI MOOC
其他RNN模型
6
www.ai-xlab.com
AI MOOC
双向RNN(Bidirectional RNNs)
双向的 RNN 是同时考虑“过去”和“未来”的信息,输入(黑色点)沿着黑色的实线箭
头传输到隐层(黄色点),再沿着红色实线传到输出(红色点)。黑色实线做完前向传播
后,在 Bidirectional RNNs 却先不急着后向传播,而是从末尾的时刻沿着虚线的方向再回
传回来。
www.ai-xlab.com
AI MOOC
Stacked Bidirectional RNNs
图中是双向的三层 RNNs,堆叠多层的RNN网络,可以增加模型的参数,提高模型的拟合
能力。每层的 hidden state 不仅要输给下一时刻,还是当做是此时刻下一层的输入。
www.ai-xlab.com
AI MOOC
THANKS