gpt4 book ai didi

c++ - OpenCv ANN 训练相同的数据不同的输出

转载 作者:太空宇宙 更新时间:2023-11-04 13:28:41 25 4
gpt4 key购买 nike

我正在使用 openCV 中的 ANN 进行图像分类。我有每个图像的特征向量,我用CvANN_MLP.train() 方法。

我的问题是为什么,我总是对相同的数据进行不同的网络设置。例如,如果我循环执行训练程序和预测程序(相同的数据、相同的功能、相同的网络设置)三次。我将获得三种不同的网络配置和三种不同的输出(例如完全不同的准确率,例如 60%、70%、90%)。

我假设结果网络每次都应该在相同的数据和相同的设置上相同,但它不是 :/。任何想法为什么?我在网上发现“偏差”值可能会产生影响,但我找不到如何更改 bias 值。

如果您有任何想法或相关链接,请告诉我。

最佳答案

这取决于算法和初始化,根据我对典型前馈神经网络和反向传播的梯度下降算法的了解:

此类 NN 的典型训练算法随机初始化 NN 的权重(起点),NN 本身有许多局部最优解,因此您可以找到许多不同的次优解,如果您从不同的初始化开始,您可能会找到另一个解。这就是为什么最终解决方案在很大程度上取决于起点。

因此,如果您保持所有参数和初始化相同,您将找到相同的解决方案。

我不完全了解神经网络的 OpenCV API,也不知道如何强制它非随机地初始化神经网络,但也许您可以找到一些参数来将伪随机数生成器种子输入其中。

关于神经网络初始化的论文你可以google,因为神经网络的起点选择是一个众所周知的问题,随机初始化在大多数情况下并不好,但很简单。您可以只阅读来自 here 的摘要, herehere

关于c++ - OpenCv ANN 训练相同的数据不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com