zhaipro / easy12306

使用机器学习算法完成对12306验证码的自动识别
Artistic License 2.0
2.89k stars 737 forks source link

深度学习的秒记 #10

Open zhaipro opened 5 years ago

zhaipro commented 5 years ago

这里的数据集用于测试,得出的结果: 统计学专家识别的正确率:0.9422140966882884 从统计学专家那里学来的深度学习模型的正确率:0.9811081335640064

统计学对剪纸的识别正确率只有64%,我猜是因为剪纸的种类太多啦。 而深度学习模型识别率最低的是挂钟:

1577/1577 [==============================] - 42s 26ms/step
[0.24407617484627453, 0.9302473050095117]

我猜是因为挂钟和钟表实在是难以区分。 关于钟表的识别力度:

1608/1608 [==============================] - 44s 27ms/step
[0.22922349847223036, 0.9359452736318408]

深度学习对跑步机的识别最有信心:

1564/1564 [==============================] - 43s 27ms/step
[0.0026093199646667294, 1.0]

可以以此证明学习后的神经网络具备识别前所未见的实力吗? 可以说仅1万张图片就够学习了吗? 能不能给机器更少的教材就让它学到有用的技能呢? 实际上它对于验证码的识别力度还可以,但对于真实世界照片的识别力度就没这么高了。

zhaipro commented 5 years ago

能不能让机器仅仅根据无噪音的文字图学习,最终还能识别有噪音的文字图呢? https://www.youtube.com/watch?v=XnyM3-xtxHs&list=PLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4

zhaipro commented 5 years ago

准备绘画热力图

  1. from keras.applications.vgg16 import preprocess_input, decode_predictions
  2. https://github.com/keras-team/keras-applications/blob/master/keras_applications/imagenet_utils.py
  3. https://github.com/tensorflow/models/issues/517
zhaipro commented 5 years ago

新一代的识别力度 [0.12332161949947161, 0.9914363235543496] [0.07605954375682149, 0.9907580125487536] [0.04957617516017413, 0.9917754790571477] [0.05738099154772871, 0.9961845005935221] [0.044536791779119844, 0.9945735119552315] [0.061249691417495415, 0.995506189587926]

zhaipro commented 5 years ago

这样如何?

依旧用哈希算法来查询图片类型,如果查不到相似的再让深度网络来识别。

zhaipro commented 5 years ago

让机器根据哈希统计学结论来学习,之后冲洗哈希库,会怎样呢,哈希的识别力度会提升吗?

zhaipro commented 5 years ago

能不能让深入学习后的机器开始怀疑训练集中某样本是错误的呢?不仅让机器根据训练集来学习,而且还要超越训练集。

我人工检测了深入学习后的机器在训练集上犯下的错误,总共统计学专家认定的错误有102个,而我认为其中只有4个是真正的错误,其余98个都是统计学的误差导致的。4个真正的错误中,有3个是统计学提供的答案本身也是错误的,而另一个则是犯下了严重的错误,统计学提供的是正确样本。

它把一个篮球当成了挂钟: 59 0 641 50 108

zhaipro commented 5 years ago

统计出错,但机器能给出正确答案的例子: a 这种图片是不是在我国很流行,因此非常容易获得?从而导致统计量上不去…

zhaipro commented 5 years ago

能不能把真假识别器合并进来,让其有回答"我不知道这是什么"的能力。

从我的直觉上来说,我觉得这是至关重要的能力,因为模型是将整体图片区间(包括仅仅是噪音的图)映射到类别列表,然而显然整体空间的大量内容都是未知的。

一步步来,先试着生成英文验证码,让机器回答说:“不知道这是什么词”。

我觉得应该让机器自己学会如何回答"我不知道"。例如我根本不知道这世上还有多少知识是自己不知道的。

zhaipro commented 5 years ago

让学习后的模型去识别2015年的验证码,相似图过滤后认为有60K~张不同的图片,列出它自信度超过98%的图片,其中约有6K张。

一些有趣的错误

安全帽: 5 1 699 黑板: 17 2 864 海鸥: 32 0 513 开瓶器: 46 5 579

zhaipro commented 5 years ago

https://www.pyimagesearch.com/2018/04/16/keras-and-convolutional-neural-networks-cnns/ 尝试为我们的模型减减肥吧。