码迷,mamicode.com
首页 > 其他好文 > 详细

手写体识别

时间:2018-05-24 10:26:03      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:pool   保留   网络   手写体   训练   5*   简单   AC   卷积   

此网络用了一个网络 + 三个并联的网络

 

第一个网络,识别ACBDE

结构:

输入 32 × 32 × 1

第一层:16个5*5的卷积核,relu激活,maxpool池化

第二层:32个3*3的卷积核,relu激活,maxpool池化

第三层:64个3*3的卷积核,tanh激活,maxpool池化

输出层:将第三层的输出变成一维向量,然后使用5个节点,最后用softmax激活

dropout = 0.6

网络出为分别为ABCDE的概率

网络准确率为98.12

 

第二个网络,识别A

结构:

输入 32 × 32 × 1

第一层:8个5*5的卷积核,relu激活,maxpool池化

第二层:16个3*3的卷积核,relu激活,maxpool池化

第三层:32个3*3的卷积核,tanh激活,maxpool池化

输出层:将第三层的输出变成一维向量,然后使用1个节点,最后用sigmoid激活

 dropout = 0.5

网络输出为A的概率

网络准确率为99.1

 

第三个网络,识别C

结构:

输入 32 × 32 × 1

第一层:8个5*5的卷积核,relu激活,maxpool池化

第二层:16个3*3的卷积核,relu激活,maxpool池化

第三层:32个3*3的卷积核,tanh激活,maxpool池化

输出层:将第三层的输出变成一维向量,然后使用1个节点,最后用sigmoid激活

dropout = 0.6 

网络输出为C的概率

网络准确率为99.2

 

 

第四个网络,识别E

结构:

输入 32 × 32 × 1

第一层:16个5*5的卷积核,relu激活,maxpool池化

第二层:32个3*3的卷积核,relu激活,maxpool池化

第三层:64个3*3的卷积核,tanh激活,maxpool池化

输出层:将第三层的输出变成一维向量,然后使用1个节点,最后用sigmoid激活

 dropout = 0.4

网络输出为E的概率

网络准确率为98.9

 

 

首先将图片输入第一个网络

如果是A的概率最大

就放入第二个网络

若第二个网络判定A的概率 < 0.4

则将A的概率置为0之后寻找最大的概率,并将他作为输出

 

如果是C的概率最大

就放入第三个网络

若第三个网络判定C的概率 < 0.2

则将C的概率置为0之后寻找最大的概率,并将他作为输出

 

如果是E的概率最大

就放入第四个网络

若第四个网络判定E的概率 < 0.2

则将E的概率置为0之后寻找最大的概率,并将他作为输出

 

最后总体网络的查准率为98.29

查全率对于ABCDE分别是 97.86, 98.88, 98.99, 97.63, 98.28

 

使用11000张图片

8000张图片做训练集 3000张图片做验证集合

 

 

对于之前网络的比较:

第一层使用3*3的卷积核时 准确率<97.5

卷积层激活函数全部使用relu 准确率 < 93.0

只使用一个网络 准确率<98.12

 

因为图像较为简单 第一层使用大卷积核能更好的提取特征

因为是做分类问题,负数对于sigmoid和softmax均有影响

所以在最后一个卷积层使用tanh保留负数

 

用多个网络加大了神经网络深度的同时,减少了过拟合的出现

 

手写体识别

标签:pool   保留   网络   手写体   训练   5*   简单   AC   卷积   

原文地址:https://www.cnblogs.com/shensobaolibin/p/9081087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!