卷积神经网络(CNN)学习

卷积神经网络

参考网络课程

卷积运算

运算过程:矩阵*filter=新的矩阵
输出矩阵的大小 = (n+2p-f)/s + 1
卷积运算过程

实现
#python实现函数
Python:conv_forward()

#TensorFlow实现
tensorflow:tf.nn.conv2d()
tf.nn.conv2d(
    input,
    filter,
    strides,
    padding,
    use_cudnn_on_gpu=True,
    data_format='NHWC',
    dilations=[1, 1, 1, 1],
    name=None
)
input:[batch, in_height ,in_width, in_channels] 
#batch: 样本的数量 
#in_height :每个样本的行数 
#in_width: 每个样本的列数 
#in_channels:每个样本的通道数,如果是RGB图像就是3 
filter:[filter_height, filter_width, in_channels, out_channels] 
#filter_height:卷积核的高 
#filter_width:卷积核的宽 
#in_channels:输入的通道数 
#out_channels:输出的通道数 
strides:[1,stride_h,stride_w,1]步长,即卷积核每次移动的步长 
padding:填充模式取值,只能为”SAME”或”VALID”
data_format:输入、输出数据的格式,
若"NHWC", the data is stored in the order of: [batch, height, width, channels];
若"NCHW", the data storage order of: [batch, channels, height, width]
dilations:???
边缘检测

垂直边缘检测
1. filter滤波器
2. sobel filter:鲁棒性更高
3. scharr filter
垂直滤波器另外常用两种滤波器

水平边缘检测
滤波器:水平滤波器
水平滤波器

Note:将滤波器中的数当做参数的思想,已经应用于计算机视觉,改变这些数,对具体应用的效果有影响

Padding

引入的padding的原因:
1. 经过filter之后,图像会变小,会丢失边缘的信息
2. 图像左上角的元素只被一个输出所用,边缘部分的信息对输出的影响就变小了

padding的操作:
在原图像的四周边缘填充0

padding分类:
1.指定pad的值
2. Valid:no padding,输出图像会减小
3. Same:pad,输出和输入图像大小一样,padding通常是奇数(这样四周填充的数目相同,且留有中心像素点)

步长stride

filter每次移动的长度

立体卷积

通道数(channels):如图像RGB是三个通道
立体卷积
图中,原图像是6*6*3的一个图像,滤波器是3*3*3,得到的是个4*4的图像。
1. 原图通道数和滤波器通道数一定是相同的
2. 当有多个滤波器时,可以同时检测多个特征(比如同时得到垂直检测特征和水平检测特征),得到的图像的层数等于滤波器的个数
3. 滤波器可以由很多个,10、128等等,表示同时检测多个图像特征

池化层

最大池化

max pooling(取选中的区域中的最大值作为输出,如上图)
average pooling(取选中的区域中的平均值作为输出)

池化层中的超级参数有:

  • f:filter size滤波器的大小
  • s: stride步长(常用的f=2,s=2,高和宽各减半 ; f=3,s=2)
  • max or average pooling选择最大还是平均池化

Note:池化层中是计算神经网络某一层的静态属性,其中的超级参数不需要学习过程,是通过手工或者交叉验证设置的。

卷积神经网络基本结构

卷积神经网络结构
解释:
输入图像(矩阵)–> 卷积层+最大池化层 –> 卷积层+最大池化层 –> 全连接层–>全连接层 –> 全连接层 –>softmax –> 输出

每一层参数情况:
这里写图片描述
上图是整个卷积神经网络每一层矩阵的大小、矩阵中元素个数(激活值)、参数的个数(池化层是不需要学习过程的,所以参数个数是0)
可以看出:
1. 矩阵和矩阵中的元素个数变小,但是参数个数增多
2. 卷积层中的参数较少,大部分的参数集中在全连接层
3. 激活值(Activation Size)逐渐下降,若下降的太快会对结果有影响

why卷积?

参数共享,稀疏连接可以减少参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值