卷积神经网络(Convolutional Neural Network, CNN)

CNN网络基本结构:输入层 —— [卷积层 —— pooling池化层]_i —— 全连接层_j —— 目标分类

维度按一个样本计算:7*7*3的一个图像样本,用一个3*3*3的卷积核,step=1,最后会生成一个5*5*1的图像(逐点相乘、3个通道相加)。一个卷积核对应最后的一幅输出图像,可以同时选多个卷积核(卷积核通道数 必须和图像通道数 相同);激活函数直接用在卷积层后的输出图像上。

输出维度:(图像某一方向维度 - 卷积核对应该方向维度)/步长 - 1

卷积核:(1)为什么卷积核和矩阵做点对点乘积,而不是做矩阵乘法?因为内积可以计算向量相似度(cos),如果我要检测一个图像像素矩阵里有没有鼻子,就拿一个表示鼻子的矩阵卷积核,去和这个图像像素矩阵做内积,内积出来的值大的那块,表示这块的向量和鼻子卷积核的向量相似度大,图像矩阵里的这块像鼻子。(2)1*1*k(k是通道数)的卷积核可以降维,主要是在通道维度上作用(7*7*3 * 1*1*3 = 7*7*1)。1*1*k的卷积核构成的卷积层 相比 全连接层,有权值共享的作用。

pooling池化层:会有信息丢失,也可以增强鲁棒性,计算资源够一般很少用。分same padding和valid padding两种。

非线性激活函数:在卷积层和全连接层都有。反向传播求导时,sigmoid函数梯度减小1/4,双曲正切函数梯度减小1/2,都会导致梯度消失;Relu正的部分是线性函数,求导是1,不改变梯度大小。

Batch Normalization层:特征放入网络前,做归一化处理(均值0、方差1),可以使训练收敛更快。

模型训练:(1)一般很少用dropout(2)设置batch_size,一个batch算出一个loss,对权值进行一次更新。

CNN经典网络:LeNet-5 -> AlexNet -> VGG -> GoogLeNet -> ResNet

GoogLeNet相比之前的网络,创新点在Inception module,使用不同大小的卷积核捕捉信息。GoogLeNet有三个输出,为了对抗梯度消失带来的影响,每次将三个输出相加作为最终的loss去优化。

ResNet相比之前的网络,创新点Residual block,即跳跃链接,该trick使得网络的最短链接路径减半152/2,即网络的等价深度减少,弥补了网络层数加深梯度消失的问题。(看二叉树的深度,就是看二叉树的最短路径,此处同理算网络的最短链接路径)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值