零基础入门深度学习(4) - 卷积神经网络---https://www.zybuluo.com/hanbingtao/note/485480
2017-03-29 10:33
656 查看
从图1我们可以发现卷积神经网络的层结构和全连接神经网络的层结构有很大不同。全连接神经网络每层的神经元是按照一维排列的,也就是排成一条线的样子;而卷积神经网络每层的神经元是按照三维排列的,也就是排成一个长方体的样子,有宽度、高度和深度。
对于图1展示的神经网络,我们看到输入层的宽度和高度对应于输入图像的宽度和高度,而它的深度为1。接着,第一个卷积层对这幅图像进行了卷积操作(后面我们会讲如何计算卷积),得到了三个Feature Map。这里的"3"可能是让很多初学者迷惑的地方,实际上,就是这个卷积层包含三个Filter,也就是三套参数,每个Filter都可以把原始输入图像卷积得到一个Feature Map,三个Filter就可以得到三个Feature Map。至于一个卷积层可以有多少个Filter,那是可以自由设定的。也就是说,卷积层的Filter个数也是一个超参数。我们可以把Feature
Map可以看做是通过卷积变换提取到的图像特征,三个Filter就对原始图像提取出三组不同的特征,也就是得到了三个Feature Map,也称做三个通道(channel)。
继续观察图1,在第一个卷积层之后,Pooling层对三个Feature Map做了下采样(后面我们会讲如何计算下采样),得到了三个更小的Feature Map。接着,是第二个卷积层,它有5个Filter。每个Fitler都把前面下采样之后的3个**Feature
Map卷积在一起,得到一个新的Feature Map。这样,5个Filter就得到了5个Feature Map。接着,是第二个Pooling,继续对5个Feature Map进行下采样**,得到了5个更小的Feature Map。
图1所示网络的最后两层是全连接层。第一个全连接层的每个神经元,和上一层5个Feature Map中的每个神经元相连,第二个全连接层(也就是输出层)的每个神经元,则和第一个全连接层的每个神经元相连,这样得到了整个网络的输出。
当步幅设置为2的时候,Feature
Map就变成2*2了。这说明图像大小、步幅和卷积后的Feature Map大小是有关系的。
以上就是卷积层的计算方法。这里面体现了局部连接和权值共享:每层神经元只和上一层部分神经元相连(卷积计算规则),且filter的权值对于上一层所有神经元都是一样的。对于包含两个3*3*3的fitler的卷积层来说,其参数数量仅有(3*3*3+1)*2=56个,且参数数量与上一层神经元个数无关。与全连接神经网络相比,其参数数量大大减少了。
Pooling层主要的作用是下采样,通过去掉Feature
Map中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max
Pooling。Max
Pooling实际上就是在n*n的样本中取最大值,作为采样后的样本值。
除了Max Pooing之外,常用的还有Mean Pooling——取各样本的平均值。
对于深度为D的Feature Map,各层独立做Pooling,因此Pooling后的深度仍然为D。
对于图1展示的神经网络,我们看到输入层的宽度和高度对应于输入图像的宽度和高度,而它的深度为1。接着,第一个卷积层对这幅图像进行了卷积操作(后面我们会讲如何计算卷积),得到了三个Feature Map。这里的"3"可能是让很多初学者迷惑的地方,实际上,就是这个卷积层包含三个Filter,也就是三套参数,每个Filter都可以把原始输入图像卷积得到一个Feature Map,三个Filter就可以得到三个Feature Map。至于一个卷积层可以有多少个Filter,那是可以自由设定的。也就是说,卷积层的Filter个数也是一个超参数。我们可以把Feature
Map可以看做是通过卷积变换提取到的图像特征,三个Filter就对原始图像提取出三组不同的特征,也就是得到了三个Feature Map,也称做三个通道(channel)。
继续观察图1,在第一个卷积层之后,Pooling层对三个Feature Map做了下采样(后面我们会讲如何计算下采样),得到了三个更小的Feature Map。接着,是第二个卷积层,它有5个Filter。每个Fitler都把前面下采样之后的3个**Feature
Map卷积在一起,得到一个新的Feature Map。这样,5个Filter就得到了5个Feature Map。接着,是第二个Pooling,继续对5个Feature Map进行下采样**,得到了5个更小的Feature Map。
图1所示网络的最后两层是全连接层。第一个全连接层的每个神经元,和上一层5个Feature Map中的每个神经元相连,第二个全连接层(也就是输出层)的每个神经元,则和第一个全连接层的每个神经元相连,这样得到了整个网络的输出。
当步幅设置为2的时候,Feature
Map就变成2*2了。这说明图像大小、步幅和卷积后的Feature Map大小是有关系的。
以上就是卷积层的计算方法。这里面体现了局部连接和权值共享:每层神经元只和上一层部分神经元相连(卷积计算规则),且filter的权值对于上一层所有神经元都是一样的。对于包含两个3*3*3的fitler的卷积层来说,其参数数量仅有(3*3*3+1)*2=56个,且参数数量与上一层神经元个数无关。与全连接神经网络相比,其参数数量大大减少了。
Pooling层输出值的计算
Pooling层主要的作用是下采样,通过去掉FeatureMap中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max
Pooling。Max
Pooling实际上就是在n*n的样本中取最大值,作为采样后的样本值。
除了Max Pooing之外,常用的还有Mean Pooling——取各样本的平均值。
对于深度为D的Feature Map,各层独立做Pooling,因此Pooling后的深度仍然为D。
卷积神经网络的训练
相关文章推荐
- 零基础入门深度学习(2) - 线性单元和梯度下降--https://www.zybuluo.com/hanbingtao/note/448086
- 零基础入门深度学习(4) - 卷积神经网络
- 零基础入门深度学习(4) - 卷积神经网络
- 零基础入门深度学习(4) - 卷积神经网络
- 零基础入门深度学习(4) - 卷积神经网络
- 零基础入门深度学习(4) - 卷积神经网络
- 深度学习(DL)与卷积神经网络(CNN)学习-01-CNN基础知识点
- 零基础入门深度学习(2) - 线性单元和梯度下降
- 卷积神经网络(CNN)学习笔记1:基础入门
- 深度学习的基础:机器学习入门和数学基础(一)
- 零基础入门深度学习(3) - 神经网络和反向传播算法
- 零基础入门深度学习(6) - 长短时记忆网络(LSTM)
- 零基础入门深度学习(2) - 线性单元和梯度下降
- 深度学习FPGA实现基础知识10(Deep Learning(深度学习)卷积神经网络(Convolutional Neural Network,CNN))
- 深度学习:卷积神经网络基础
- 零基础入门深度学习(5) - 循环神经网络
- 卷积神经网络(CNN)学习笔记1:基础入门
- [深度学习基础] 4. 卷积神经网络
- 深度学习基础(二)—— 从多层感知机(MLP)到卷积神经网络(CNN)
- 卷积神经网络(CNN)学习笔记1:基础入门