Convolutional Neural Networks (CNNs / ConvNets)

CNN的网络结构

最经使用CNN做regression,怎么确定网络的结构确实太头痛了,尽管已经有现有的论文里面已经又很多mode可以参考,例如AlexNet,VGGNet等等,但是和还是很难确定出一个最好的model,最近重新看Stanford的CNN的课程,发现其实已经有一部份已经讲了这个,故简单写写mark一下

1.CNN的基本结构

1.Convolutional layer : 原理很简单,就是图像处理中的filter
2.non-linear Layer: Relu(常用,非饱和)、sigmoid(饱和)
    a.Relu的优点在于 :
        1.较非饱和的sigmoid和tanh等避免了“exploding/vanishing gradient
        2.加快收敛的速度,缩短训练时间
3.Pooling layer : 一个downsampling 的过程
4.Normalization Layer : 现在已经很少用了,因为加入这个效果很小,在Alexnet使用过
5.Fully-Connected Layer
6.Dropout Layer 避免overfitting

*【Relu的一些改进】,Empirical Evaluation of Rectified Activations in Convolution Network
*【Dropout Layer】,Dropout: A Simple Way to Prevent Neural Networks from Overfitting

2.Tips

1. zero-padding 的作用
 在卷积之前进行zero-padding,利用stride=1,padding_size = (filter_size - 1)/2,则卷积的过程不会改变image的大小,
 并只由Pooling layer控制,这样就不用考虑图像的大小了,其次,padding 使得边缘信息不会丢失地太快
2.layer pattern
INPUT -> [[CONV -> RELU]*N -> POOL?]*M -> [FC -> RELU]*K -> FC
“*N”:  重复N次layer [CONV -> RELU]
“?”:  是否有该layer POOL
“*M”:  重复M次layer[CONV -> RELU]*N -> POOL?]
“*K”:  重复K次layer [FC -> RELU]

[CONV -> RELU]*N 可以增大 receptive field ,例如[CONV3 -> RELU]*3与[CONV7->RELU]*1的recoptive field 都是 7*7 ,
但是多次非线性(RELU)使得模型更expressive,而且参数较[CONV7->RELU]*1少,缺点就是memory消耗
3.Layer Sizing Patterns
1.input layer: 通常input image都为2的n次方, 32 (CIFAR-10),224 (AlexNet)
2.conv layers: 使用小的filter(3*3,5*5),通常在第一个conv layer才用大一点的filter,
                例如AlexNet采用了(11*11)的filter_size,取stride =1,在实际中通常work better,并且与zero-padding结合,使得卷积不改变图片大小
3.pool layer: 通常取max-pooling (size=2*2,stride =2)
4.model reference

1.lenet
2.AlexNet
3.VGGNet [paper] [code]
4.GoogLeNet(ILSVRC 2014)paper

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值