吴恩达深度学习--卷积神经网络

卷积神经网络

一般的经典卷积神经网络是由卷积层、池化层和全连接层组成。其中卷积层和池化层交替出现,全连接层都在最后。

一个卷积层运算的细节:#卷积运算后输出图片的像素大小:

其中,输入图片像素为n×n,滤波器大小为f×f,p为padding大小,s为步长。这个公式也可以用于算池化层的输出图片像素。

如果严格按照数学定义的话,卷积操作应该先将卷积核翻转一次,如何不进行翻转应该叫做互相关操作。但为了操作简便,深度学习中的卷积不进行卷积核翻转。

ResNet

残差网络(ResNet)就是在普通的卷积神经网络中,加入短路连接。短路连接就是讲第i层直接连到i+n层,作为i+n层的一个输入。这种操作可以起到加深网络层数,而有效抑制使得随着网络层数的增加而产生的梯度爆炸、梯度消失的现象。

1×1卷积

我们知道池化层可以压缩数据长和宽的尺寸,而1×1卷积可以用来的压缩(改变)图像通道的维度。比起比较大的卷积核,1×1卷积改变通道的维度的计算量较小,速度更快。

例如,如果想将28×28×192的数据变为28×28×32,就可以用32个1×1×192的卷积核对其进行卷积操作。

在inception网络中用到1×1卷积来压缩图像通道的维度用来提升计算速度。

Inception

Inception模块是用多个不同大小的卷积核和池化层同时处理某一层的输入,再将处理的结果叠加起来进行输出。这样就不用人为的选定卷积核的大小了。

迁移学习

下载已经在大数据集上训练好的网络权重,只根据自己的业务进行少量层数(后面几层)的训练。通常是数据越多,应该训练的层数也越多。

YOLO

将一张图片分成n×n个网格,如果一个物体的中点落在某个网格里,则那个网格就认为有物体存在,然后再后面跟着物体的中点坐标和宽高还有表示物体种类的量,他们构成一个的p维向量。但是这个算法在一个格子里只能检测出一个物体。

所以说YOLO网络输入一张n×n像素的图片,输出的是一个n×n×p维向量。其中p维向量第一个数是表示有无物体(物体的中点是否落在此单元格内)。2-5个数分别表示物体的x,y坐标和宽高占比,其中,定义n×n方格内的左上角为(0,0),右下角为(1,1),所以x,y坐标必然属于[0,1],但是宽高占比可能大于1,因为物体边缘可能会跳出这个单元格。

在运行YOLO算法时,由于网格大小较小,往往会产生多个矩形框重叠在一个物体上。非极大值抑制(NMS)算法就是保留其中有目标物体可能性最高的矩形框,而舍弃与这个矩形框的IoU值较高的其他矩形框。

YOLO是you only look once的缩写,只用了一步来解决物体区域检测问题,而R-CNN、Fast R-CNN、Faster R-CNN则将物体区域检测任务分为了检测候选区域和对候选区域进行识别这两个步骤。

物体检测评价指标

Intersection over Union(IoU)就是计算预测区域和实际区域的交集和并集的比。

人脸识别

人脸识别的挑战是one-shot learning problem,就是只用一张图片作为训练集就能成功的识别出对应的人。