cs231n_神经网络笔记_部分总结工作2_cnn基础

关于神经网络的基础知识在“cs231n_神经网络笔记_部分总结工作1”已经做了简单介绍了,此处特别针对卷积神经网络CNN做简单笔记。对几个卷积神经网络的案例介绍在下一章“cs231n_2018_lecture09_notes”。


卷积神经网络:

首先需要明确的是“卷积”神经网络和全连接神经网络的异同,可以看这里。图像经过CNN的意义按照线性分类器的思想可以看作是图像从原始像素值经过“特征提取”换算成最终的“得分值”,继而完可以成分类等工作;数学的思想可以看作是图像矩阵经过线性和非线性变换将空间映射到其他维度的空间,可以更好地找出原矩阵中“特别的值”。

 

结构:

常见的网络结构:input->[[conv->batchnorm?->relu->dropout?]*N->pool?]*M->[fc->relu]*K->fc   ,其中“->”表连接,“?”表可选。其中,conv->relu(之间可选加入bachnorm层)就相当于单个神经元(=线性+非线性),然后在relu后接dropout表示对此神经元的随机舍弃。个人理解向:dropout是随机地舍弃网络本身信息,而pooling算是固定地舍弃图像数据信息,所以是可以通过“舍弃信息”而获取模型的“泛化能力”,避免过拟合糟糕现象?那么还可以通过一些其他的“舍弃信息”途径?

思考:添加噪声(例如data augmentation)、随机性(例如好多地方可见的shuffle操作)可以使得网络的泛化能力更强?

重要的需要理解的层:conv layer、pooling layer、normlization layer、full connect layer。需要着重理解“权重共享”、“局部感受野”、“时间或空间降采样”、“归一化”这些概念!

 

尺寸计算:

输入数据空间尺寸W,卷积层的局部感受野(滤波器)尺寸F,零填充数量P,步长S,则输出的空间尺寸为(W-F+2P)/S+1,输出数据的宽度和高度的计算公式皆为此,而深度是由滤波器的数量即卷积核数目唯一决定,64个卷积核得到的数据就是64深度。使得输入和输出数据保持统一尺寸是非常常见的。

 

层的设置规律:

输入层 (包含图像的)应该能被2整除很多次,比如32、64、512;卷积层应该使用小尺寸滤波器(比如3x3或最多5x5),使用步长S=1,若需要对内存妥协就在第一层设置较大尺寸的滤波器代替多个小尺寸滤波器,譬如1个7*7=3个3*3,另外在GoogleNet网络中开始使用1*1卷积层进行数据体的深度变换。池化层最常设置成2*2的maxpooling layer,步长S=2。

 

计算上的考量:

三种主要内存占用,1.中间数据体,例如激活数据(大头)、梯度(常客)等等;2.网络权重和偏差,即整个网络的参数和它的反向传播时产生的梯度以及使用momentum等方法进一步产生的计算缓存;3.其他,比如成批的训练数据和扩充的数据等。如果网络工作做的不好,常用方法是降低batch size。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值