七月算法--12月机器学习在线班-第十九次课笔记-深度学习--CNN
七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com
1,卷积神经网络-CNN 基础知识
三个要点
1: 首先将输入数据看成三维的张量(Tensor)
2: 引入Convolution(卷积)操作,单元变成卷积核,部分连接共享权重
3:引入Pooling(采样)操作,降低输入张量的平面尺寸
1.1 张量(Tensor)
高,宽度,深度,eg:彩色图像:rgb,3个深度,图像的大小是160高度,320,
(3,160,320)一个三维张量
1.2 卷积操作:
一维信号的卷积:
卷积核:1,0,-1
如图步长stride:2 具体的操作是于卷积核对应位置相乘后续相加即 0*1+1*0+2*(-1)=-2这就是第一个数据和卷积核相乘相加得到的-2;后面一次类推
那么3D-张量的卷积操作如下:
1.3 3D-张量的卷积操作
nn.Spatisl Convolution(3,2,3,3) 第一个3,是输入图像的深度为3,第一个数字2是两个卷积核,后面的3,3,是生成图像的大小3*3的,一共有2张图。
卷积操作在深度上面不滑动,为了后面的共享全连接
如下图,将蓝色的部分和对应红色的部分相乘后香蕉,之后再将三个卷积核对应操作得到的数值全部相加,可以得到数值9,这也就是3维张量的卷积操作,
Padding:1在左右都加上0,其中为了能更好的适应卷积的操作需要将图像的边缘一周全部加上0,为了尺寸的方便。 (3,5,3,3, 1,1 1,1)后面两个都是补0操作。
Bias:偏移量,每个卷积核都带有一个,b0[:,:,0]
特征是由深度网络学习出来的,而不是提取出来的
1.4 卷积后的激活函数
三种:ReLU LeakReLU ELU
1.5 Pooling操作
对应区域,按照规则,求最大,或者求平均如下图,为了调整尺寸,深度不减少,但是可以将H*W处理的尺寸降下来。
1.6 Batched Normalisation
将一组图像调整成0均值,调整偏移量offset
2 卷积网络设计
针对图像识别的卷及网络设计
2.1 tips
1, 尽量使用3x3尺寸的卷积核,甚至更小(2x2或者1x1), stride取1(除去第一层可以采用稍大尺寸的卷积核),后面的层次采取较密集的滑动
2, 使用Pooling(2x2)对网络进行1/4下采样
3, 采用多层次架构,采用残差结构实现更深的网络
2.2 Pattern设计
1, [CONV-RELU-POOL]xN+[FC一RELU]xM+SOFTMAX 卷积CONV, RELU的激活函数,降维到1/4,重复N,
2, [CONV-RELU一CONV-RELU一POOL]xN+[FC一RELU]xM+SOFTMAX 卷积两次降维一次,(注意最后一层FC,不采用ReLU激活函数)
输入图像 224*224*3
第一层
1,(3,3,3)一共有64个卷积核,1728个权重, 第一个3是深度,第二个3*3是卷积核的大小,输出224*224*64,(人工指定)会输出64张图。
2,输入224*224*64,之后深度变为64,参数:(3*3*64)36864个权重,因为有64个深度
3,poling3一次,将图片大小变为112*112*64 ,由3.2M变为800K
……
FC进行全连接
3 残差网络
3.1复杂网络结构的BP计算
1,核心:依然是链式规则
2,利用框架搭建网络
3,对自己实现的结构,严格用,数值计算验证
跑一边epoch
4, 卷积网络中的正则化
1,训练时,对图像增加随机噪声,
2,在257x257图像中,随机采样224x224的子图
3,图像采用随机左右镜像
4,在FC层之间使用Dropout技术,可以用用残差的网络
5,尝试BN,残差结构
(Waifu2X实验示例)