我的猫片识别神经网络会识别错那些图片

A cat recognizer works wrong in which pictures?

忙里偷闲,用几天的时间上完了Coursera的DL的第一课。
虽然之前ML花了差不多10个月学完了,但已经过去一年,能记得的东西实在不多。
这个课程的Project是十分有意思的,一个Cat Recognizer。
Ng说深度学习和Cat有不解之缘,所以我们的Programming Assignment就是这个东西啦!

数据集

第四周Project把整个NN完善了一遍,L层NN,209个训练样例,50个测试样例。每个样例都是64*64的图片
以h5格式导入
图片向量化过程如下
我的猫片识别神经网络会识别错那些图片_第1张图片

L层神经网络

NN结构如图
我的猫片识别神经网络会识别错那些图片_第2张图片

相比2层的shallow NN 的100%训练数据准确度和72%测试数据准确度,L层在训练数据上减少了overfitting,只达到98.56%的准确度,但测试数据准确度上升到了80%
也就是说测试数据50张图片中有10张识别错误,整个网络的识别率算是比较差的了。

但激活函数使用的ReLU和Sigmoid函数,都是较简单的激活函数,能到达这个准确率已经十分好了。

错误识别的图片

最后的optional作业仍然是添加自己的图片进行识别,所以我找了几张有趣的图片来试图迷惑这个神经网络,就图片本身来说,即使是人,也很难说这些图片是不是猫(≖ᴗ≖)✧

  • 第一张:FGO玉藻猫初始卡面
    我的猫片识别神经网络会识别错那些图片_第3张图片

预测结果:
我的猫片识别神经网络会识别错那些图片_第4张图片

  • 第二张:FGO玉藻猫一破卡面
    我的猫片识别神经网络会识别错那些图片_第5张图片

预测结果
我的猫片识别神经网络会识别错那些图片_第6张图片

  • 第三张:FGO玉藻猫满破卡面!
    我的猫片识别神经网络会识别错那些图片_第7张图片
    这里出现了奇怪的结果,神经网络认为这张卡面是猫,而前两张都不是( • ̀ω•́ )✧
    预测结果:
    我的猫片识别神经网络会识别错那些图片_第8张图片

  • 第四张:一只大老虎
    我的猫片识别神经网络会识别错那些图片_第9张图片
    预测结果:没有骗到NN
    我的猫片识别神经网络会识别错那些图片_第10张图片

  • 第五张:一只小老虎
    我的猫片识别神经网络会识别错那些图片_第11张图片
    预测结果:成功骗到神经网络(~・v・)~
    我的猫片识别神经网络会识别错那些图片_第12张图片

  • 第六张:一只小狮子(豹子?)
    我的猫片识别神经网络会识别错那些图片_第13张图片
    预测结果:又骗到了神经网络.
    我的猫片识别神经网络会识别错那些图片_第14张图片

  • 第七张:一个猫形状的毛绒玩具
    我的猫片识别神经网络会识别错那些图片_第15张图片
    预测结果:这虽然是一只假猫,但是我觉得这个应该算是猫,毕竟外形很像,所以神经网络的判断不算错误。
    我的猫片识别神经网络会识别错那些图片_第16张图片

  • 第八张:我的头像
    我的猫片识别神经网络会识别错那些图片_第17张图片

预测结果:哈哈,这张图片缺失了猫的最重要特征,耳朵,所以NN认为这不是猫 (滑稽
我的猫片识别神经网络会识别错那些图片_第18张图片

总结

虽然我没有看209个训练数据,但是也能大概猜出一些重要的feature,当然,我指出的feature是针对我们的视觉而言。
图片有没有猫耳朵是很重要的一个特征!
图片有没有猫肉爪是很重要的一个特征!
图片的动物脸型是很重要的一个特征!
考虑到测试数据的几张猫的图片也识别错误,与猫相近颜色的背景会导致识别错误,图片整体色调对识别结果也有影响。

如果你有更有趣的图片想要试一试,可以在评论留下图片,不定期更新
(>^ω^<)喵

你可能感兴趣的:(python,深度学习,深度学习,python,人工智能,神经网络,图片识别)