问题标签 [function-approximation]

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 回答
221 浏览

matlab - 函数逼近的深度信念网络

我正在使用 Masayuki Tanaka 在以下链接https://www.mathworks.com/matlabcentral/fileexchange/42853-deep-neural-network开发的深度神经网络工具箱。

现在我正在尝试使用深度信念网络来进行函数逼近。但结果不是很好。以下是我的脚本代码。有谁可以弄清楚可以修改哪个部分以改善拟合结果?

DBN学习结果:

DBN学习结果

0 投票
0 回答
1377 浏览

neural-network - Keras回归到近似函数(目标:损失<1e-7)

我正在研究一个近似函数 f(X)=y 的神经网络,其中 X 是一个向量 [x0, .., xn] 和 [-inf, +inf] 中的 y。这个近似函数需要具有大约 1e-8 的精度(误差总和)。事实上,我需要我的神经网络过拟合。

X 由区间 -500 和 500 中的随机点组成。在将这些点放入输入层之前,我将它们归一化为 [0, 1]。

我使用 keras 如下:

我尝试了不同的 NN,首先是 [n] -> [2] -> [1] 和 Relu 激活函数,然后是 [n] -> [128] -> [64] -> [1]。我尝试了 SGB Optimizer,我慢慢地将学习率从 1e-9 提高到 0.1。我也尝试过不对数据进行标准化,但在这种情况下,损失非常高。

在当前设置下,我的最佳损失 (MSE) 是 0.037,但我离目标 (1e-8) 还很远。

首先,我想知道我是否做错了什么。我的路好吗?如果没有,我怎样才能达到我的目标?

非常感谢你


尝试#2

我尝试了这个新配置:

在 50 个元素的样本上,batch_size 为 10 并且在 100000 个时期内。我在 1e-4 左右输了。


尝试#3

batch_size=1000 epochs=1e5

结果:损失 1.e-7 左右

0 投票
0 回答
450 浏览

matlab - 训练神经网络预测 sin(x) matlab


自从我尝试训练许多神经网络来预测 sin(x) 函数以来已经 3 天了,我正在使用 matlab 2016b(我必须在我的作业中使用它)

我做了什么 :

  • 改变图层
  • 重复数据集(大,小)
  • 添加/子期间
  • 打乱数据
  • 改变每层神经的数量
  • 改变学习功能
  • 更改传递函数并映射目标

所有这些都没有很好的预测,谁能解释我做错了什么,粘贴任何好书都会非常有帮助(“为训练准备数据集”,“了解项目的最佳 NN 结构”,。 ..任何书似乎都有帮助)

我的实际代码:(我正在使用 nntool 进行培训)

0 投票
1 回答
197 浏览

performance - 一种快速逼近大尺寸 np.random.dirichlet 的方法

我想尽快评估大尺寸的 np.random.dirichlet。更准确地说,我想要一个至少快 10 倍的函数。根据经验,我观察到这个函数的小维度版本输出一到两个具有 0.1 顺序的条目,而其他所有条目都非常小,以至于它们无关紧要。但这一观察并非基于任何严格的评估。近似值不需要那么准确,但我想要一些不太粗糙的东西,因为我正在将这种噪声用于 MCTS。

0 投票
1 回答
1974 浏览

performance - 如何在 x64 CPU 上快速计算 sincos?

这是针对熟悉 SSE/AVX 指令家族的用户以及熟悉其性能分析的用户提出的问题。我看到了很多不同的实现和方法,从旧的 SSE2到新的。网络上充斥着这样的链接。但就我个人而言,我在 sse 汇编分析方面经验并不丰富。有些人指出了微指令、缓存,这需要一些低级知识。所以我要求一个提示和你的个人经历。如果您有时间进行一些比较,关于“什么是最快的”以及为什么,您查看了哪些方法。实现可能不是那么精确,10-16 位的单 FP 精度就足够了。越多越好,但当它不影响速度时。

PS。为了避免元洪水,我可以用细节精确地描述任务:

  • 给定标量参数 x(以弧度为单位),它在 xmm 寄存器中传递(根据 x64 快速调用约定)。
  • 写一个带有签名的函数__m128 sincos(float x);返回其 sin(x) 和 cos(x) 值的近似值。
  • 返回值应在一个 xmm 寄存器内,并以尽可能快的方式计算,以满足 10 位精度要求。
  • 参数可以是任何数(但不是nan, inf, 等等)。如果方法需要参数规范化,则其高性能实现(fmod())也是主题。但问题不在于处理特殊的 FP 案件。

这可能是重复的,但我没有在这里找到类似的问题,所以请指出我,如果已经有一个。

0 投票
1 回答
406 浏览

numpy - 在 Numpy/Scipy 中具有任意输入和输出维度的向量值多元函数的逼近

起点是一个 m 维向量值函数

情商,

其中输入也是一个 n 维向量:

情商.

该函数的输入和输出是 numpy 向量。这个函数计算起来很昂贵,所以我需要一个近似值/插值。

是否有一个 numpy/scipy 函数返回该函数的近似值,例如泰勒展开式,该函数在任意维度m, n的x的给定值附近?

所以本质上,我要求对scipy.interpolate.approximate_taylor_polynomial进行概括,因为我也对近似的二次项感兴趣。

scipy.interpolate中,向量值x似乎有一些选项,但仅适用于标量函数,但仅循环函数的 m 个分量不是一个选项,因为这些分量不能单独计算,函数将是比必要更频繁地调用。

如果这样的函数不存在,那么使用现有方法并避免不必要的函数调用的快速方法也会很棒。

0 投票
2 回答
1780 浏览

azure - 如何使用 Azure 函数应用通过 URL 将文件上传到存储位置

我想使用 Azure blob 存储中的 Azure 函数应用通过 URL 将上传文件上传到存储位置。我能够从 Azure blob 中提取文件。但无法通过 url 上传文件。下面我附上了我写的代码。有人可以帮我吗?

0 投票
2 回答
555 浏览

inverse - 评估函数的逆

我需要在域 [0,1) 中评估此函数的逆:反转功能

有一个解析逆(我不会费心把它放在这里,因为它很大),但它只适用于常数 A 的有限范围,即如果 A>0.385f(x)。然后,我想到了两种可能的解决方案:

  1. 使用 Newton-Raphson 方法(或任何其他求根方法)来评估每个 f(x) 的 x;
  2. 用 sigmoid 函数逼近逆并通过最小二乘法确定参数。

我倾向于(2),因为它看起来很简单并且不会像(1)那样减慢我的代码,但我对近似值的有效性不安全。我也很感激其他建议。

如果有一些内置的方法可以解决我的问题,我的代码是用 C++ 编写的。

0 投票
0 回答
281 浏览

matlab - 如何使用 Matlab 中的 lsqcurvefit 函数最适合西奥多森函数的有理函数逼近?

我正在使用有理函数(多项式比率)来近似 Theodorsen 的函数。我在使用 Matlab 中的 lsqcurvefit 函数猜测正确(最佳)初始猜测参数时遇到问题。有没有办法知道获得最佳拟合结果的最佳初始猜测参数是什么?

我的代码如下:

0 投票
1 回答
204 浏览

reinforcement-learning - 在强化学习中使用函数逼近时,如何选择动作?

这张幻灯片根据一组权重和特征函数显示了Q(状态,动作)的方程。我对如何编写特征函数感到困惑。

给定一个观察,我可以理解如何从观察中提取特征。但是根据观察,人们不知道采取行动的结果会对特征产生什么影响。那么如何编写一个将观察和动作映射到数值的函数呢?

在后面几张幻灯片展示的 Pacman 示例中,人们知道,给定一个状态,一个动作的效果将是什么。但情况并非总是如此。例如,考虑购物车杆问题(在 OpenAI 健身房中)。特征(实际上是观察的内容)是四个值:推车位置、推车速度、磁极角度和磁极旋转速度。有两个动作:向左推和向右推。但事先并不知道这些动作将如何改变四个特征值。那么如何计算 Q(s, a) 呢?也就是说,如何编写特征函数f i (state, action)

谢谢。