【cs231n】lecture 5 Convolutional Neural Network

卷积和池化

Fully Connected Layer(全连接层):
在这里插入图片描述
上图中,输入为一张32323(展开即为3072的向量)的图片,和权值W进行点积,输出10个得分。

Convolution Layer(卷积层):
在这里插入图片描述

卷积层和全连接层的区别是可以保全空间结构,输入32323的图片。不展开为一个长向量的形式,即可保存图片的结构。权重是一些小的卷积核,将卷积核在图像上滑动,计算出每一个空间定位时的点积结果。
滑动卷积核遍历所有空间位置:
在这里插入图片描述
将卷积核从左上方的边角处开始,让卷积核遍历输入的所有像素点,在每一个位置上都进行点积运算,每一次运算都会在输出的激活映射中产生一个值,之后再继续滑动卷积核(可以一个像素一个像素地滑动),滑动方式的不同会使输出映射的大小有所不同。
当我们在处理一个卷积层时,我们希望会用到多种卷积核,因为每个卷积核都可以从输入中得到一种特征,所以我们会有一组卷积核,对应一组输出。
卷积神经网络中我们是如何使用这些卷积层的:
在这里插入图片描述
ConvNet基本上是由多个卷积层组成的一个序列,它们依次堆叠,之后用激活函数对其进行逐一处理,得到Conv,ReLU以及一些池化层。
在这里插入图片描述
把这些层逐个叠加形成一个ConvNet,最后的结果是完成了对这组卷积核的学习,前面的卷积核代表了一些低阶的图像特征,比如边缘特征;越往后面的层,可以得到一些更加复杂的图像特征,如边角和斑点等。
在这里插入图片描述
卷积网络从整体来看,其实就是一个输入图片通过很多层,通过CONV,RELU,CONV,RELU,然后通过POOL,这些措施已经大大降低了激活映射的采样尺寸,经过这些处理之后,得到卷积层输出,然后使用全连接层连接所有的卷积输出,并用其获得一个最终的分值函数。
计算卷积的例子:
在这里插入图片描述
假设是一个77的输入,卷积核为33,那么经过步长为1卷积运算,输出的即为55大小;如果步长设置为2,则输出为33大小;如果步长设置为3,这时候图像不能够很好地拟合。
计算输出尺寸的公式(N-F)/stride + 1
在这里插入图片描述
公式中,输入的维度为N,卷积核大小为F,步长为stride。该公式在没有使用零填充的时候使用。可以采用零填充边界得到我们想要的大小,这个时候的输出大小为公式需要相应地做出调整。零填充的目的是为了保证图片的尺寸,如果不做零填充,经过一定深度的网络后,输出的尺寸会迅速缩小,这个时候只能用很少的值来表示原始图片,这样会丢失一些特征。
1*1的卷积的作用:对图像的深度做一些改变。例如
在这里插入图片描述
输入为565664,用32个11的filter,得到的输出为5656*32。

视觉之外的卷积神经网络

receptive field:其实就是卷积核的另一种叫法,卷积核的作用是关注输入图像的局部区域。一个神经元是与输入的所有区域都有关联,而卷积核只与输入的一个区域有关联。
Pooling layer:
在这里插入图片描述
池化层的作用:

  • make the representations smaller and more manageable
    当输入为224*224*64,经过池化层,得到一个112*112*64尺寸的
  • operates over each activation map independently

最大池化层:
在这里插入图片描述
上图所示为一个4*4大小的输入,经过一个2*2的filter,步长为2,每次选取局部区域里面最大的数值作为输出,得到一个2*2的输出。
注:一般不在池化层做零填充,因为池化层的作用是降采样,不会导致卷积层在扫描到图像边缘的时候,有一部分超出输入的范围。
将卷积网络的最后一个输出直接拉平,就得到了一个全连接层。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值