卷积神经网络——吴恩达深度学习视频笔记四

1.卷积:一个f * f(通常是奇数,便于实现same卷积,而且有卷积中心)的滤波器(也称作“核”),作为系数与图像数字相乘,每次移动步长s,得到新的(n-f+2ps+1)  * (n-f+2ps+1) (向下取整)图像(p为padding数量,填充,是为了不忽略图像边缘,也防止图像一直变小,在图像边缘填充的0)。这个过程是卷积运算。

1.1边缘检测:以水平检测为例:可以使用这样的滤波器[-1-1-1000111 ],对图片进行卷积运算,得到正值说明从上向下变亮,负值变暗。还有其他多种滤波器。可以将滤波器几个权值设置可变,训练时对其修改。

1.2

valid卷积:不做padding

    same卷积:通过padding使得卷积过后图像尺寸不变。

2.卷积神经网络:包括卷积层、池化层和全连接层。

2.1卷积层:每层进行立方体卷积计算,其中滤波器权重是训练的参数(可以看做w),立方体卷积计算后加上偏差b,再调用激活函数。最后若卷积成x * y * z的矩阵,则得到x * y * z个特征,将其变为一维。

立方体卷积:三维图像和滤波器的第三维(称为通道数)必须相同。所以每个滤波器和图像卷积得到一个二维矩阵。n个滤波器和图像卷积得到二维矩阵堆叠成三维矩阵,滤波器的数量就是输出的通道数量,也就是你要检测的特征数量。卷积可以通过设置第一个通道有权重,其他通道为0,达到只对第一个通道特征操作的目的。

2.2池化层:与卷积层类似,只不过做的不是卷积运算,而是求最大值(最大池化,常用,可以保留图像特征)或平均值(平均池化)。池化后图像通道数量不变。

2.3全连接层:所有卷积和池化操作都进行结束后,将数据变成一维,其后层的神经网络和普通神经网络没有区别。一维数据作为输入x,和后面层次的神经元全部相连。

2.4卷积神经网络的优势:以下特性可以避免过拟合,相比于全连接层:

2.4.1参数共享:某层数据共享滤波器f * f个参数,减少参数的数量。因为使用滤波器监测图像的某种特征(比如边缘检测),适用于图像的所有部分。

2.4.2稀疏连接:计算结果的每一个数据,都只和输入数据的f * f区域数据相关,与其他数据无关。

3.残差网络(ResNets)

3.1跳远连接:某一层的输出值,加到深处某层调用激活函数之前的值(这要求此层的输出与深层的调用激活函数之前的矩阵维数相同,所以要设置很多same卷积;如果不相同,可以用系数矩阵将此层的输出转化,系数矩阵的系数自己训练),再调用激活函数,构成残差块,形成残差网络。

神经网络越深,越难训练,容易出现梯度消失或梯度爆炸。随着层数增加,模型效果会先变好后变差。

3.2残差网络才会让模型效果随着神经网络深度增加而一直变好。原因在于:深层的w * x + b可能很小,接近0,将前面层次的输出值传给深层,能保证深层网络效果不比前面差。如果深层网络学到了新东西,效果可以比前面层次好。

4. 1x1卷积(网络中的网络)作用在于:

    4.1改变通道数量

可以利用其这个性质,减少计算:例如要将m通道数据转换成n通道数据,可以先用1x1卷积将其转换成k通道数据(称为瓶颈层),再用same过滤器将其转化成n通道数据。减少计算。

4.2相当于给前一层数据切片(沿通道方向切,每个切片包含所有通道,有多少通道,切片就有多少数据)所有数据带上权重,计算求和。

5. Inception网络:自动确定使用卷积、池化层的类型,不用自己设计。每个Inception模块会使用1x1,3x3,5x5等same过滤器,还有same效果的池化层,将它们计算结果拼在一起,形成下一模块的输入。多个Inception模块拼接在一起构成Inception网络。中间的Inception模块也可以进行softmax预测。

6.目标检测(滑动窗口监测):用滑动的窗口在图片上滑动,检测窗口是否有目标物体。发现物体时根据窗口位置估测目标位置。

6.1卷积的滑动窗口实现:使用卷积实现滑动窗口时,不需要把原图分成很多图片,分别用卷积神经网络计算。根据卷积的性质,将原图片直接传给卷积神经网络预测,得到的几个不同值就是对不同窗口在不同位置截得的图片进行预测的结果。

6.2交并比:两个图框交集与并集之比。可以用来衡量检测目标的范围准确性。

6.3非极大值抑制:只选取目标存在概率最大的框,抛弃其他框。

6.4 anchor box:两个要检测的对象的中点落在同一个框内时,可以通过预先设置一些形状的anchor box(比如有的瘦高,有的矮胖),根据对象中点,检测不同anchor box对目标覆盖情况,选出最佳anchor box。训练集的标签要提供每个anchor box的信息。比如每个anchor box需要八维数据,一共两个anchor box。标签里前八条数据是anchor box1的数据,后八维是anchor box2的数据。

6.5 YOLO算法:使用以上所有技术。使用卷积实现的滑动窗口,每个窗口负责检测图片中心在该窗口的目标。预测结果使用非极大值抑制:预测结果里有每个anchor box里出现目标的概率p。先保留p超过一定阈值的anchor box,选取留下的anchor box里p最大的anchor box,然后去除与该anchor box交并比大的anchor box。重复上述过程。最后应该会为每个目标留下一个预测框。

6.6 R-CNN网络:R代表region,R-CNN算法不在整个图片识别目标,有些背景区域是空的。与YOLO算法相比,R-CNN将问题分成两步:先选择候选区域,再识别目标。R-CNN不会完全相信候选区域边界框,而会自己给出较精准的边界框。

7. siamese网络(人脸识别应用此网络):对不同的输入,运行相同的卷积神经网络,得到不同输入对应的输出特征,并比较它们。对于人脸识别,训练集十分有限,训练不了softmax输出的网络,而且加入新成员时要修改网络。Siamese网络用相同的卷积神经网络运算不同的输入,得到不同的输出特征,定义d函数衡量图片特征之间的差异。系统可以不存储原图像编码,而是存储卷积神经网络计算后的输出特征。识别时比较实时采集图像计算的特征与系统存储的图像特征。

7.1 Triplet loss:三张图片作为三元组:原图片(anchor),原图片人物其他照片(positive),非原图片人物其他照片(negative)。

Triplet loss = max(d(A,P) – d(A,N) – α,0),对其进行梯度下降。

选取训练集时尽量选取与原图片人物相似、难以区分的negative图片,网络能更好地学到东西。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值