卷积神经网络的实践与改进
Last updated
Last updated
本章使用nerwork3.py和theano库
网络结构
输入层
输入神经元
784
中间层
sigmoid神经元,完全连接
100
输出层
softmax神经元,log-likelihood代价函数
10
无正则化
准确率 97.8%
目的: 减少参数,简化问题
网络结构
输入层
输入神经元
28 * 28
卷积层
local receptive fields = 5 * 5 feature map = 20
20 24 24
pooling层
pooling window = 2 * 2
20 12 12
中间层
sigmoid神经元,完全连接
100
输出层
softmax神经元,log-likelihood代价函数
10
无正则化
准确率
98.78 效果明显
网络结构
输入层
输入神经元
28 * 28
卷积层1
local receptive fields = 5 * 5 feature map = 20
20 24 24
pooling层1
pooling window = 2 * 2
20 12 12
卷积层2
local receptive fields = 5 * 5 feature map = 40
40 8 8
pooling层2
pooling window = 2 * 2
40 4 4
中间层
sigmoid神经元,完全连接
100
输出层
softmax神经元,log-likelihood代价函数
10
无正则化
准确率
99.06 效果明显
卷积层2的输入为12 12的图像,每一个像素代表原始图像中这个位置是否存在某个局部特征。 12 12的图像是原始图像抽象和压缩过的信息,但仍存在图像的空间结构,因此继续使用卷积神经网络是有意义的。
pooling2层的输出是20个pooling,相当于卷积层2有20个不同的feature,这个20和后面的40是完全连接的(可以这么理解吗?[?])
目的: 加速学习
网络结构
输入层
输入神经元
28 * 28
卷积层1
local receptive fields = 5 * 5 feature map = 20
20 24 24
pooling层1
pooling window = 2 * 2
20 12 12
卷积层2
local receptive fields = 5 * 5 feature map = 40
40 8 8
pooling层2
pooling window = 2 * 2
40 4 4
中间层
rectified linear神经元,完全连接
100
输出层
softmax神经元,log-likelihood代价函数
10
无正则化
准确率
99.23 有效果
为什么用rectified linear神经元效果更好?作者也不知道。
网络结构不变,训练样本的每张图像向上下左右各移1个像素得到新的图像。 样本集的数量是原来的5倍。
准确率
99.37 一点点的提升
网络结构
输入层
输入神经元
28 * 28
卷积层1
local receptive fields = 5 * 5 feature map = 20
20 24 24
pooling层1
pooling window = 2 * 2
20 12 12
卷积层2
local receptive fields = 5 * 5 feature map = 40
40 8 8
pooling层2
pooling window = 2 * 2
40 4 4
中间层1
rectified linear神经元,完全连接
100
中间层2
rectified linear神经元,完全连接
100
输出层
softmax神经元,log-likelihood代价函数
10
准确率
99.43 一点点的提升
目的: 减少过拟合
网络结构
输入层
输入神经元
28 * 28
卷积层1
local receptive fields = 5 * 5 feature map = 20
20 24 24
pooling层1
pooling window = 2 * 2
20 12 12
卷积层2
local receptive fields = 5 * 5 feature map = 40
40 8 8
pooling层2
pooling window = 2 * 2
40 4 4
中间层1
rectified linear神经元,完全连接
1000,50 drop out
中间层2
rectified linear神经元,完全连接
1000,50 drop out
输出层
softmax神经元,log-likelihood代价函数
10
问:为什么只对完全链接的神经元做drop out? 答:因为卷积层的weight是共享的,使得它必须学习整个图像, 不会困于局部。
准确率
99.60 有实质性的提升
创建5个同样的网络,因为初值是随机的,所以训练出来的是5个不同的模型。 让5个模型对同一个样本做预测,然后投票
准确率
99.67