本文对重点知识做记录,加深记忆以及备忘
中文链接https://zhuanlan.zhihu.com/p/21930884?refer=intelligentunit
Sigmoid
Tanh
ReLU(最常使用)
Leaky ReLU
Maxout
一般对数据归一化处理,先进行零中心化,即对于每个特征,将所有数据减去均值。再归一化,即对于每个特征,将所有数据除以特征绝对值的最大值,使得特征都在[-1,1]区间。
数据预处理特别重要
白化因为太费资源,并不常用。
在预处理时,要先对训练集做预处理,并记录预处理使用的参数(均值,最大值或方差),然后用同样的参数对测试集和验证集做同样的预处理。不能对所有数据做同样的预处理。
使用ReLU作为激活函数时,权值的方差因为 2.0/n ,n为输入特征的数量
批量归一化
正则化能够降低过拟合风险
L2正则化,会使权值趋向于满足 N(0,f(λ)=1λ) 的正态分布,降低模型复杂度,降低过拟合风险
L1正则化,有使权值稀疏的效果
Dropout,p值一般选择0.5
动量方法:经常使用Nesterov动量+SGD
学习率退火:使用一个固定的学习率来进行训练的同时观察验证集错误率,每当验证集错误率停止下降,就乘以一个常数(比如0.5)来降低学习率
逐参数适应学习率方法:此方法不使用统一的学习率,对于每个权值,学习率都不同。
卷积层
池化层
全链接层
两个例子:
一,VGGNet
INPUT: [224x224x3] memory: 224*224*3=150K weights: 0
CONV3-64: [224x224x64] memory: 224*224*64=3.2M weights: (3*3*3)*64 = 1,728
CONV3-64: [224x224x64] memory: 224*224*64=3.2M weights: (3*3*64)*64 = 36,864
POOL2: [112x112x64] memory: 112*112*64=800K weights: 0
CONV3-128: [112x112x128] memory: 112*112*128=1.6M weights: (3*3*64)*128 = 73,728
CONV3-128: [112x112x128] memory: 112*112*128=1.6M weights: (3*3*128)*128 = 147,456
POOL2: [56x56x128] memory: 56*56*128=400K weights: 0
CONV3-256: [56x56x256] memory: 56*56*256=800K weights: (3*3*128)*256 = 294,912
CONV3-256: [56x56x256] memory: 56*56*256=800K weights: (3*3*256)*256 = 589,824
CONV3-256: [56x56x256] memory: 56*56*256=800K weights: (3*3*256)*256 = 589,824
POOL2: [28x28x256] memory: 28*28*256=200K weights: 0
CONV3-512: [28x28x512] memory: 28*28*512=400K weights: (3*3*256)*512 = 1,179,648
CONV3-512: [28x28x512] memory: 28*28*512=400K weights: (3*3*512)*512 = 2,359,296
CONV3-512: [28x28x512] memory: 28*28*512=400K weights: (3*3*512)*512 = 2,359,296
POOL2: [14x14x512] memory: 14*14*512=100K weights: 0
CONV3-512: [14x14x512] memory: 14*14*512=100K weights: (3*3*512)*512 = 2,359,296
CONV3-512: [14x14x512] memory: 14*14*512=100K weights: (3*3*512)*512 = 2,359,296
CONV3-512: [14x14x512] memory: 14*14*512=100K weights: (3*3*512)*512 = 2,359,296
POOL2: [7x7x512] memory: 7*7*512=25K weights: 0
FC: [1x1x4096] memory: 4096 weights: 7*7*512*4096 = 102,760,448
FC: [1x1x4096] memory: 4096 weights: 4096*4096 = 16,777,216
FC: [1x1x1000] memory: 1000 weights: 4096*1000 = 4,096,000
TOTAL memory: 24M * 4 bytes ~= 93MB / image (only forward! ~*2 for bwd)
TOTAL params: 138M parameters
引自https://zhuanlan.zhihu.com/p/22038289?refer=intelligentunit
该网络的特点是全部采用3*3,1步长的卷积核和2*2的max池化,采用了0填充
下面的详细的结构图,图片均出自Bin的专栏:http://blog.csdn.net/xbinworld
该网络与VGGNet不同,采用了尺寸递减的卷积核(11,5,3),以及递减的步长(4,2,1),有全链接层(FC),且在全连接层使用了dropout,采用的max池化和0填充。
以上的两种标准的卷积神经网络构建方式。