基于神经网络的验证码实验研究(二)

8.训练和分类
构造神经网络分类器,接收图像,预测图像。

构造神经网络,需要更多的Hide层对实验结果会有很大的效果,会对计算效率产生作用。此处使用MLP,即多层感知机。最主要的特点就是含有多个神经元层,因此从神经网络衍生出深度神经网络,即DNN。

它可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。
除了输入节点,每个节点都是一个带有非线性**函数的神经元(或称处理单元)。

  • 创建一个最基础的、具有三层结构的多层感知机,它由输入层、输出层和一层隐含层组成。输入层和输出层的神经元数量是固定的。
  • 现在,数据集有400个特征,那么第一层就需要有400个神经元,而26个可能的类别表明我们需要26个用于输出的神经元。
    基于神经网络的验证码实验研究(二)

9.训练后进行查看
基于神经网络的验证码实验研究(二)
效果图片所示:
基于神经网络的验证码实验研究(二)
10.f1-score的测试分析
基于神经网络的验证码实验研究(二)
基于神经网络的验证码实验研究(二)

  • 我们使用F1指标来判断结果好坏。
  • f1数值达到0.9左右, 说明模型训练还不错。而且分数越高,说明模型预测越好。

11.预测函数
基于神经网络的验证码实验研究(二)

定义一个预测验证码的函数predict_captcha

  • 使用前面定义的图像切割函数, segment_iamge 抽取小图像;
  • 整理数据集=datasetX_test.
  • 进行图像预测。
  • assert len检查输入输出集是否相等。
  • predicted_word将预测的字母拼接起来。

12.尝试预测基于神经网络的验证码实验研究(二)
效果图片所示:
基于神经网络的验证码实验研究(二)
对于字母处理,我们在前面只定义了大写字母,因此我们的神经网络model也只能识别大写字母。

13.NLTK

  • 借助NLTK模块创建单词数据集,只使用长度为4的单词,从NLTK中导入words
    基于神经网络的验证码实验研究(二)
  • 第一次模拟训练匹配率:
    基于神经网络的验证码实验研究(二)
  • 第n次修正模型后训练匹配率:
    基于神经网络的验证码实验研究(二)

Number correct is 26
Number incorrect is 5487

基于神经网络的验证码实验研究(二)
基于神经网络的验证码实验研究(二)