没有合适的资源?快使用搜索试试~ 我知道了~
首页深度学习之卷积神经网络CNN及tensorflow实例
深度学习之卷积神经网络CNN及tensorflow实例
需积分: 9 1.2k 浏览量
更新于2023-05-28
评论 4
收藏 1.47MB PDF 举报
参阅:https://blog.csdn.net/cxmscb/article/details/71023576
资源详情
资源评论
资源推荐

深度学习之卷积神经网络 CNN 及 tensorflow 代码实现示例
个人分类: 机器学习深度学习
所属专栏: 机器学习
版权声明:本文为博主原创文章,未经博主允许不得转载。
https://blog.csdn.net/cxmscb/article/details/71023576
一、CNN 的引入
在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连的。当输入
层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计算速度就会
变得很慢,例如一张黑白的
28×28
28×28
的手写数字图片,输入层的神经元就有
784
个,如下图所示:
若在中间只使用一层隐藏层,参数
w
w
就有
784×15=11760
784×15=11760
多个;
若输入的是
28×28
28×28
带有颜色的
RGB
格式的手写数字图片,输入神经元就有

28×28×3=2352
28×28×3=2352
个
……
。这很容易看出使用全连接神经网络处理
图像中的需要训练参数过多的问题。
而在卷积神经网络(
Convolutional Neural Network,CNN
)中,卷积层的神经元只与前一
层的部分神经元节点相连,即它的神经元间的连接是非全连接的,且同一层中某些神经元
之间的连接的权重
w
w
和偏移
b
b
是共享的(即相同的),这样大量地减少了需要训练参
数的数量。
卷积神经网络
CNN
的结构一般包含这几个层:
输入层:用于数据的输入
卷积层:使用卷积核进行特征提取和特征映射
激励层:由于卷积也是一种线性运算,因此需要增加非线性映射
池化层:进行下采样,对特征图稀疏处理,减少数据运算量。
全连接层:通常在
CNN
的尾部进行重新拟合,减少特征信息的损失
输出层:用于输出结果
当然中间还可以使用一些其他的功能层
:
归一化层(
Batch Normalization
):在
CNN
中对特征的归一化
切分层:对某些(图片)数据的进行分区域的单独学习
融合层:对独立进行特征学习的分支进行融合
二、CNN 的层次结构
输入层:
在
CNN
的输入层中,(图片)数据输入的格式 与 全连接神经网络的输入格式(一维向
量)不太一样。
CNN
的输入层的输入格式保留了图片本身的结构。
对于黑白的
28×28
28×28
的图片,
CNN
的输入是一个
28×28
28×28
的的二维神经
元,如下图所示:

而对于
RGB
格式的
28×28
28×28
图片,
CNN
的输入则是一个
3×28×28
3×28×28
的
三维神经元(
RGB
中的每一个颜色通道都有一个
28×28
28×28
的矩阵),如下图所示:
卷积层:
在卷积层中有几个重要的概念:
local receptive fields
(感受视野)
shared weights
(共享权值)

假设输入的是一个
28×28
28×28
的的二维神经元,我们定义
5×5
5×5
的 一个
local
receptive fields
(感受视野),即 隐藏层的神经元与输入层的
5×5
5×5
个神经元相连,
这个
5*5
的区域就称之为
Local Receptive Fields
,如下图所示:
可类似看作:隐藏层中的神经元 具有一个固定大小的感受视野去感受上一层的部分特征。
在全连接神经网络中,隐藏层中的神经元的感受视野足够大乃至可以看到上一层的所有特
征。
而在卷积神经网络中,隐藏层中的神经元的感受视野比较小,只能看到上一次的部分特征,
上一层的其他特征可以通过平移感受视野来得到同一层的其他神经元,由同一层其他神经
元来看:
设移动的步长为
1
:从左到右扫描,每次移动
1
格,扫描完之后,再向下移动一格,再
次从左到右扫描。

具体过程如动图所示:
可看出 卷积层的神经元是只与前一层的部分神经元节点相连,每一条相连的线对应一个
权重
w
w
。
一个感受视野带有一个卷积核,我们将 感受视野 中的权重
w
w
矩阵称为 卷积核 ;将感
受视野对输入的扫描间隔称为步长(
stride
);当步长比较大时(
stride>1
),为了扫描
剩余23页未读,继续阅读
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0