testing - 如何检查人工神经网络的结果不是偶然的

标签 testing neural-network artificial-intelligence stochastic-process

我完全理解 ANN 背后的理论(在这种情况下,通过反向传播进行前馈)。随着网络的学习,权重会相应调整以给出正确的结果。但是,由于涉及随机因素,即使用随机权重来初始化网络,我如何检查产生的结果是否只是偶然/纯巧合?

最佳答案

这似乎是一个相当哲学的问题,不是吗?对于非平凡的情况,特定的权重值将部分由机会驱动……那又怎样?如您所知,ANN 的一个特点是“推理过程”无法追踪;它要么得到正确答案,要么没有。通过培训,您可以改进您希望得到正确答案的功能。如果该函数可靠地产生正确的结果,那么机会是该函数推导中的一个元素就没有关系。

ANN 有可能在训练集中的每个问题上都得到正确的结果,并且在它以前没有见过的任何问题上仍然得到疯狂的结果。这可能意味着它首先被过度参数化,因此它只“记住”了训练集。这可能意味着训练集不足以代表问题的范围。在每一种情况下,机会将决定您最终得到的是部分正确的函数,以及您因其他问题而得到的错误结果类型。

但是,如果您有一个非常适合某个问题的 ANN 和一个足以启动它的训练集,那么它将可靠地产生正确的结果。机会在决定它具体包含什么功能方面发挥了作用,但所选功能(无论如何都是不透明的)有效,所以谁在乎呢?

关于testing - 如何检查人工神经网络的结果不是偶然的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40723857/

相关文章:

android - 有选择地启用移动应用程序中的功能的策略

testing - 自定义 TestNG 可通过电子邮件发送的报告的摘要部分

tensorflow - 不理解 TensorFlow MNIST 指南中使用的代码

c# - 在辅助方法中断言

unit-testing - 单元测试是否应该依赖于应用程序定义的常量?

machine-learning - CNTK:在函数中找到 ValueError unbound 占位符

python - 在使用 TensorFlow 实现的 AlexNet 中输入数据时出现维度错误

artificial-intelligence - 如何确定主语、宾语等词?

c++ - 将数组转换为节点

c++ - 零作为神经网络输入