kerin637

一、绪论

1.卷积神经网络的应用

基本应用:(基本都是计算机视觉领域):分类,检索(给简笔画,选与给定图画最像的图片),检测,分割(像素级别划分),人脸识别,人脸表情识别,图像生成(GAN),自动驾驶

2.传统神经网络vs卷积神经网络

image

神经网络做的就是给定一些数据提取特征的过程,也就是对图片做一个表示,然后选择合适的损失函数计算与真实图片的差异

image
交叉熵损失中$y_i$是真实类别,$y_i^p$是预测的类别,hinge loss中y是真实类别,f(x)是预测的类别

image
image
和前面的神经元都有连接,就表示全连接的(如上图红色手画的图所示)

image
传统的神经网路可以应用到计算机视觉中,但是全连接网络存在以上的问题

参数共享是指卷积核在一次特征提取过程中参数是不变的(用一个5*5的卷积核 只有25个参数,再加一个偏置项,就是26个参数,参数量从1000 * 1000减少到26)
image

二、基本组成结构

2.1 卷积

image
image
W是卷积核的参数,X是进行卷积的区域,b偏置项

image
image
image
橘色区域是卷积核对应的感受野

image
image
对于一个彩色图像,有三个channel(RGB),所以也需要3*3的卷积核有3个,分别求出每个channel第一个位置的值,三个数相加,再加上一个偏置项,就得到了output中的第一个数,因为有两个卷积层,所以最后得到两个特征图

image
image
image
深度也就是channel的个数是和卷积核的个数是一致的

输出32x32x10,其中10是因为10个卷积核堆积起来

2.2 池化

就类似在做一个缩放的过程

分类的任务中更多的用最大值池化

image
image

2.3 全连接

image

2.4 小结

image

三、卷积神经网络典型结构

image

3.1 AlexNet

image
image

激活函数的对比:
image

Dropout:
image

数据增强:
image

AlexNet分层解析

image
image
image
image
image
image
image
image
image

3.2 ZFNet

image

3.3 VGG

image
image
image
image

3.4 GoogleNet

image

Inception模块:
image
image
image
image

GoogleNet:
image
image
image
image

3.5 ResNet

image
image

四、总结感想

卷积神经网络主要在计算机视觉领域应用,包括分类,检索(给简笔画,选与给定图画最像的图片),检测,分割(像素级别划分),人脸识别,人脸表情识别,图像生成(GAN),自动驾驶等。传统的神经网络也可以应用到计算机视觉中,但是它处理图像时参数太多,容易过拟合,而卷积神经网络通过卷积核与图像进行局部关联,如采用5x5的卷积核只有5x5+1个参数,大大降低了参数量,同时卷积核中的参数在一次特征提取过程中是不变的(即参数共享)。

典型的卷积神经网络是由卷积层、池化层,、全连接层交叉堆叠而成,卷积的基本概念包括卷积核、步长stride、feature map特征图等,对于一个彩色图像,可以认为它有三个channel(RGB),因此需要3x3x3的卷积核,最后一个3即对应前一个输入的通道数,如果有n个这样的卷积核,得到的feature map的深度就是n(也就是输出channel个数是n个);如果没加padding,则输出特征图大小为(N-F)/stride+1,有padding时为(N+padding*2-F)/stride+1。

池化就类似在做一个缩放的过程,在分类的任务中更多的采用最大值池化,池化在保留主要特征的同时减少了参数量和计算量,一般处于卷积层与卷积层之间、全连接层与全连接层之间,池化的输出不会改变输入的channel数目。

视频还介绍了几种典型的卷积神经网络,AlexNet的特色在于采用了ReLu激活函数(解决了正区间梯度消失的问题,收敛速度远快于sigmoid),为防止过拟合采用了随机丢弃drop out(训练时随即关闭部分神经元,测试时整合所有神经元)以及数据增强(对图片进行平移、反转、对称、随机crop等,从而增加了训练数据),AlexNet参数量很多,主要集中在最后的全连接层。

ZFNet网络结构与AlexNet相同,只是在一些地方更改了卷积核的大小及步长、滤波器的个数。

著名的VGG是一个更深的网络,它的训练思路是先训练好一些层,然后固定这些层的参数,再训练后面更深层的网络,它的参数也集中在全连接层。

GoogleNet引入了inception模块,初衷是使用多卷积核来增加特征多样性,通过padding保证使用每个卷积核的输出feature map在长宽是一致的,然后在深度方向上进行串联,在原始的inception模块中输出的feature map的深度会越来越深,因为模块中用到了池化,池化是不会改变深度的,因此在深度层面上不断进行串联会导致深度不断增加,从而使计算复杂度过高,inception V2的解决思路是插入1*1的卷积核进行降维,Inception V3的思路是选用小的卷积核替代大的卷积核,认为一次5x5得到的感受野大小和两个3x3得到的是类似的,采用两个小卷积核可以降低参数量,同时也能增加非线性激活函数,让网络的表征能力更强。Google Net除了最后的类别输出层,没有额外的全连接层。

最后介绍了残差学习网络ResNet,它可以达到的训练深度更深,做法是每一层输出后再加上输入x再传入到下一层,这样可以突出微小的变化,如果一层输出几乎为0,传入下一层的将会是x,相当于这一层的网络没有用,从而赋予模型自主学习选择网路深度的能力,因此可以被用来训练非常深的网络。

分类:

技术点:

相关文章: