问题标签 [convergence]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1129 浏览

python - General Minimum RESidual (GMRES) with ILU preconditioner

I'm trying to implement the ILU preconditioner in this GMRES code I wrote (in order to solve the linear sistem Ax = b. I'm trying with an easy tridiagonal SPD matrix of dimension 25x25. As you can see I'm calculating the preconditioner with spilu method. The code is running without error, but the solution is clearly wrong since, at the end of the code, I'm printing the norm of b and the norm of the product A*x. They are not nearly the same.. The code Run fine without preconditioner and converge with 13 iteration for the same matrix.

This is the code I followed

Really Hope somebody can figure it out!!

0 投票
0 回答
416 浏览

keras - 神经网络的重新运行不收敛

我有一个用于语义分割的卷积神经网络,在带有 Tensorflow 后端的 Keras 中实现。该架构是编码器-解码器类型,在编码部分使用卷积层和最大池化,在解码部分使用反卷积层和上采样。要分开的两个类:感兴趣的对象和背景。最后一层有一个 sigmoid 激活,其余的是 Relu。在模型的“中间”有一个批量标准化层。损失函数是联合分数的交集。学习算法:随机梯度下降,学习率为 0.001,动量为 0.9。

我已经对模型进行了训练,它在分割任务上取得了很好的收敛效果。这里的麻烦是,作为神经网络的新手,我没有保存任何有关学习进度的数据:我需要在报告中包含损失值、准确性等的图表。因此,我尝试重新训练相同的网络(没有任何改变),但它(根本没有收敛)。

在这种情况下该怎么办?我没有为权重选择任何特定的初始化(据我了解并稍后检查,Keras 中的默认值是 glorot_uniform ),所以自然每次我运行它时,它们都会有所不同。有什么我可以做的吗?还是我只能靠机会来重现最初的结果?

非常感谢任何想法/建议/建议。谢谢 !

0 投票
1 回答
378 浏览

r - R 神经网络对线性函数 f(x)=19x 采取大量步骤

所以这是场景: -

我运行了以下代码来创建神经网络(使用 R 中的神经网络包)来近似函数 f(x)=x^2:-

这工作正常并在 3191 步中收敛。现在我对代码做了一个小改动——我改变了被逼近的函数。我使用了一个非常简单的线性函数,而不是二次函数f(x)=2x。这也很好,然后我调整了 x 的系数并进行了多次运行,例如

到目前为止,它运行良好。但我注意到的一件事是,收敛所需的步骤数从 2 倍急剧增加到 19 倍。例如 19x 的步数是惊人的84099。奇怪的是,DNN 只对线性函数采取了如此多的步骤来收敛,而对于二次函数 f(x)=x^2,它只需要 3191 步。

因此,当我将函数更改为 f(x)=20x 时,它可能需要更多步骤,因此我收到以下警告:-

所以我想我可以调整默认的 stepmax 参数并增加步数。但真正的问题是——为什么仅仅为了这样一个简单的线性函数就需要这么多步骤?

0 投票
1 回答
454 浏览

vagrant - 测试厨房:重新启动后厨师不重新启动

在使用 Kitchen 测试我的厨师食谱时遇到问题。我使用 Vagrant 作为驱动程序,使用 Virtual Box 作为虚拟化系统。它们运行在 Linux 平台上。

我已经创建了一个测试配方来重新启动我的机器。这是代码:

我在这种模式下配置我的 .kitchen.yml :

我希望通过启动配方循环多次重启虚拟机。相反,在第一次重新启动后,我得到:

0 投票
1 回答
6585 浏览

scipy - SciPy.optimize.least_squares() 目标函数问题

我试图通过优化三个未知参数 a、b 和 c0 来最小化高度非线性函数。我正在尝试在 Python 3 中复制赌场轮盘赌球的一些控制方程。

这是研究论文的链接:http: //www.dewtronics.com/tutorials/roulette/documents/Roulette_Physik.pdf

我将在论文中引用方程(35)和(40)。基本上,我对轮盘上旋转的轮盘球进行秒表圈数测量。对于连续的每一圈,由于非保守摩擦力的动量损失,单圈时间会增加。然后我进行这些时间测量并使用等式 (40) 中的 Levenberg-Marquardt 最小二乘法拟合等式 (35)。

我的问题是双重的:(1)我正在使用 scipy.optimize.least_squares() 方法='lm',我不确定如何编写目标函数!现在我写的函数和论文中的完全一样:

现在,在文档示例中,我从未见过以我的方式编写的目标函数。在文档中,目标函数总是返回残差,而不是残差的平方。此外,在文档中,他们从不使用总和!所以我想知道总和和平方是否在引擎盖下自动处理least_squares()

(2) 也许我的第二个问题是由于我没有理解如何编写目标函数。但无论如何,我无法让算法收敛到最小值。我知道这是因为 levenberg 算法是“贪婪的”并且在最接近的最小值附近停止,但我认为考虑到不同的初始猜测,我至少能够收敛到大致相同的结果。随着最初猜测的轻微变化,我得到了不同符号的参数结果。此外,我还没有找到允许算法收敛的初始猜测组合!它总是在找到解决方案之前超时。我什至将函数评估的数量增加到 10,000 次,看看是否可以。无济于事!

也许有人可以在这里阐明我的错误!我对 python 和 scipy 库还比较陌生!

tk这是我从此处的视频中测量的一些示例数据: https ://www.youtube.com/watch?v=0Zj_9ypBnzg

谢谢

0 投票
1 回答
679 浏览

matlab - 如何让遗传算法运行到收敛(Matlab)

我正在使用 Matlab 中的全局优化工具箱运行遗传算法。我想让算法运行,直到最佳值之间的差异为 <=10^{-15}。为此,我尝试使用 ftol 和 ctol ,但算法在 541 次迭代时终止。任何建议将不胜感激!

我的目标函数的一个例子如下:

GA代码是

0 投票
1 回答
2151 浏览

python - 使用牛顿法计算代码的收敛速度

我的任务是编写一个计算方法收敛速度的程序。我不得不使用牛顿法来近似根。这部分代码没问题,运行良好,但我会加入它。

重要的是我试图为任何 n 维度做这件事。

主要部分:

我得到的结果是:

这是什么意思?它不应该返回一个数字吗?为什么我的返回值中有字母?

0 投票
1 回答
234 浏览

tensorflow - 分布式张量流中逻辑回归的收敛

我正在尝试在分布式张量流中开发逻辑回归,并且我想在我的算法中集成一个收敛检查,而不是迭代的上限。我将要使用的收敛标准是

||prevW - currW|| < E

其中 prevW 是模型权重的先前值, currW 是当前权重值。E 是收敛容差。

我的问题是关于以前的模型重量。由于我在图复制和异步训练之间使用,我不知道集群的工作人员何时会更新权重。因此,假设一个工作人员已经使用批处理计算了新的权重,并且想要检查算法是否已经收敛以便停止。我将使用本地副本中可用的权重(因此使用相应的张量)还是在继续当前计算之前评估张量以获得最后更新的值?我尝试按照上述方法进行操作,但算法在达到迭代上限后没有收敛并停止。

预先感谢您的帮助:D

0 投票
0 回答
1188 浏览

tensorflow - TensorFlow 收敛性卡在高值

我正在玩 TensorFlow,我正在查看以下教程:

https://github.com/aymericdamien/TensorFlow-Examples/tree/0.11/examples/3_NeuralNetworks

因为我不想做 MINST 数据库,所以我用我用 8000 个训练样本创建的一些数据更改了脚本。使用 300 个测试样本进行评估。输出是二进制分类。请记住,我刚刚涉足机器学习,而我的知识目前非常有限。

该脚本工作正常,但是我的成本停留在一个非常高的值并且不会收敛到 0。首先,这是否正常?我该如何改进呢?我做错什么了吗?其次准确率也不是很好,是不是收敛不好?也许 8000 不足以训练模型?或者值太分散,实际上无法获得更好的准确性。

我在这里发现了一个类似的问题:

用于回归的 tensorflow 深度神经网络总是在一批中预测相同的结果

但我不明白这个问题为什么或如何适用于我。

有人可以帮我吗?

这是输出:

最后我得到:

代码如下:

0 投票
2 回答
227 浏览

matlab - 深度神经网络训练,为什么网络训练不收敛?

我正在使用 MATCONVNET DagNN。使用 AlexNet 架构。我的架构的最后几层是

每个 epoch 的结果如附件所示。为什么错误和目标不收敛?回归损失是 MSE 损失。 在此处输入图像描述