【问题标题】:How to check a trained neural network如何检查训练有素的神经网络
【发布时间】:2017-04-21 07:30:18
【问题描述】:
我正在写一些关于谷歌 deepdream 的文章。可以使用 deepdream 学习网络进行检查,请参阅 research blog google 哑铃示例。
在这个例子中,一个网络被训练来识别一个哑铃。然后他们使用 deepdream 来查看网络学到了什么,结果是网络训练不好。因为它把哑铃加手臂识别为哑铃。
我的问题是,网络在实践中将如何检查?用 deepdream 还是其他方法?
最好的问候
【问题讨论】:
标签:
machine-learning
neural-network
deep-learning
convolution
deep-dream
【解决方案1】:
通常在机器学习中,您会在训练过程中未使用的数据集(测试集)上验证学习到的网络。因此,在这种情况下,您将拥有一组用于训练模型的带有和不带有哑铃的示例,以及一组在训练过程中没有看到的示例(也包括哑铃和不带哑铃)。
当你有你的模型时,你让它预测保留集的标签。然后将这些预测标签与实际标签进行比较:
- 每次正确预测哑铃时,都会增加 True Positives 的数量,
- 如果它正确预测出没有哑铃,则增加真负数的数量
- 当它预测一个哑铃,但它不应该是一个时,增加误报的数量
- 最后,如果它预测没有哑铃,但有一个,则增加 False Negatives 的数量
然后基于这四个,你可以计算 F1 分数或准确率等指标来计算模型的性能。 (查看以下 wiki:https://en.wikipedia.org/wiki/F1_score)