【深度学习】吴恩达深度学习-卷积神经网络(b站笔记)1

二维卷积

1、基础定义

图像的大小可以表示为64*64*3  其中3是表示通道数,卷积核可以理解成filter,使用卷积可以检测垂直边缘和水平边缘,垂直边缘和水平边缘检测器由卷积核构成。

卷积运算在代码中可分别表示为函数:

python:conv-forward

tensorflow:tf.nn.con2d

keras:Conv2D 

提出的垂直边缘检测器如下图所示

像素值越大,代表图像中这一块越亮(如白色),如果原图明亮变化与检测器相同,得到的结果边缘处应当是亮的,像素值为正;反之为负,所以为了省去麻烦,最开始的时候就可以将结果设为求绝对值。得到的结果中边缘很宽是因为原图很小,才6*6,如果是1000*1000,效果很会明显。

 下图中右下角4*4的图表示既捕捉到了左边正边界的一部分,也捕捉到了右边负边界的一部分,主要的边界还是看绝对值大的像素值。同样过渡区很明显是因为原图很小。

6*6的原图卷积3*3的filter得到4*4的矩阵是因为:原图中可以放置过滤器的位置只有4*4个

  除了上面简单的两种边缘检测器外,还有很多其他的检测器,如下图所示

 为了适用于自己图像处理的情况,使用反向计算,利用参数可以得到各个角度下的边缘检测器。

 2、填充(padding)

为了解决两个问题:

--输出逐渐变小:当卷积层数很多时,输出的图像会越来越小

--边缘的图像特征只被利用一次:丢失了许多图片边界上的信息

 为了保持原始图片的大小,在外围填充一层(具体几层计算方法如下图),填充的像素为0

卷积方式有两种,第二种就是先填充再卷积

 在计算机视觉中,f一般都是奇数,原因有两点:

其一:如果是偶数的话,左右两边就是不对称的填充,也就不是same卷积

其二:如果是奇数的话,过滤器最中间有一个特殊点,中间那个特殊的像素就是一般的过滤器需要的

3、步幅卷积(stride)

设置的是卷积的时的步长,之前的例子默认的都是1(设置步长s之后,计算的方式如下图所示)

 如果式子中不能整除的话,要向下取整

准确的来讲,以上的求卷积的方法应该称为交叉相关,在数学上卷积的准确定义还需要将filter进行一次翻转,只不过在深度学习的相关文献里,我们忽略了翻转。

三维卷积

 RGB图象(红黄蓝)三维 

如 6*6*3 其中第一个6代表height 第二个代表width 3代表channels 

三维filter的3*3*3中各个数字的含义与上面一致

 可以设置filter的色素值,检测垂直边缘或者水平边缘,设置方式如下图所示

上面那一行可以用来检测红色通道的边缘特征;下面一行可以检测所有通道的边缘特征

在一个模型中,可以应用很多的过滤器(为了得到输入的不同特征,如45°分界线上的特征等),高度和宽度可以不同,但是通道数必须和输入相同

当使用很多个过滤器时,输出需要将这些得到的结果叠加,所以输出会变成4*4*2、4*4*3等等

单层卷积神经网络的计算过程

输入A*filter = 预输出B

预输出B(每个像素值)+偏差C = 预输出D

Relu [ D ] = 输出E

一个三层卷积网络的例子

 最终的输出是为了将结果分类

4、池化采样(pooling)

 求到的是每四个方块中的最大值,这相当于f=2,s=2,而且一旦max pooling中的这两个参数确定之后,也不再需要线性回归等

除了Max pooling还有average pooling,通常情况下进行pooling时不会进行padding

在采样这个过程中,只是一个简单的函数,进行计算即可,不需要进行学习

一个完整且复杂的卷积过程

  FC层是全连接层,pool2得到的结果转化成400*1的矩阵。FC3层输入为400*1的元素,输出为120*1的元素,400个输入和120个输出都相连,所以为全连接层。

最终输出为softmax层,输出为10个结果,分别是从0到9.

随着神经网络的输入,height和width会逐渐减小,但是channels会逐渐增加

上图是这个卷积网络的一些参数,可以看到Activation Size逐渐减小,但是减小的幅度不能太大,否则不利于网络的性能,全连接层的参数最多,卷积层的参数好像是(f*f+偏置参数)*channels

为什么在神经网络中加入卷积

加入之后比完全链接的神经层多了两个优点,参数共享和连接的稀疏性

 如上图所示,如果一个输入为32*32*3的图象,第一步先转换成28*28*6的图象,根据两个图像分别有的参数,如果使用完全链接的神经层进行训练,则需要14万左右个参数。但是如果使用卷积层,则(5*5+1)*6个参数,参数的量会少很多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值