问题标签 [backpropagation]
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.
java - Encog AI 框架:使用高斯噪声注入进行反向传播
两周来,我一直在通过工作台和 Java 代码修改 Encog 中的标准多层感知器和反向传播算法。我的下一项工作将需要在输入模式中插入噪声,如本文所示: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber= 6033567 (MLP 神经网络训练中的 PCA 和高斯噪声提高了问题的泛化能力小且不平衡的数据集)
基本上,我需要(这是一个二元分类问题): 1 - 使用主成分分析 (PCA) 转换输入模式 2 - 使用反向传播来训练 MLP,有一个技巧:在每个训练模式中插入不同的白噪声每个时代。
使用 Java 版本的 Encog 进行这种噪声注入的更直接的方法是什么?是否有任何可用的训练算法涉及人工噪声注入?
PS.:我引用的论文的完整算法是
neural-network - 在 Aforge 中使用反向传播学习
我是神经网络的新手,我正在使用 Aforge 神经网络库来完成字符识别任务。我想使用反向传播来训练我的网络。这是 AForge 文档中给出的代码。
但我不知道如何确定 ActivationNetwork 的层数和神经元数。任何帮助,将不胜感激。谢谢。
backpropagation - 反向传播算法实现
死所有,
我正在尝试实现一个使用反向传播的神经网络。到目前为止,我已经到了每个神经元从前一层的所有神经元接收加权输入的阶段,根据它们的总和计算 sigmoid 函数并将其分布到下一层。最后,整个网络产生一个结果 O。A 然后将误差计算为 E = 1/2(DO)^2,其中 D 是期望值。在这一点上,让网络上的所有神经元都有各自的输出和网络的整体误差,我如何反向传播它来调整权重?
干杯:)
javascript - ANN:递归反向传播
我正在尝试出于学术目的使用递归实现反向传播,但似乎我在某个地方出错了。现在已经修补了一段时间,但要么根本没有学习,要么没有学习第二种模式。
请让我知道我哪里出错了。null
(这是 javascript 语法) 注意:错误会在每个学习周期之前重置。
backpropagation - 反向传播问题
我想做一个财务预测应用程序,这些应用程序实现了反向传播算法。在这种情况下,我使用 XOR 作为示例。我想找到输入、偏差、输出的最佳权重。我已经做到了。但是在无数次迭代中,我发现隐藏输出权重和偏置权重的乘积产生 0。隐藏输出权重的值 =-5.92878775009E-323 和权重偏置 = 0.00310811260635。是数据类型问题吗?在获得价值之前,我可以转换为其他类型吗?因为我将隐藏输出权重声明为 null,例如“public $w = null”。我在 php 上构建了这些应用程序。拜托,我的最后一项任务需要帮助..
backpropagation - 多层感知器实现:权重变得疯狂
我正在编写具有单个输出单元(二进制分类)的 MLP 的简单实现。我需要它用于教学目的,所以我不能使用现有的实现:(
我设法创建了一个有效的虚拟模型并实现了训练功能,但 MLP 没有收敛。实际上,输出单元的梯度在多个时期内仍然很高,因此它的权重接近无穷大。
我的实现:
以及输出单元在 epoch 上的梯度和权重的演变:
...
我尝试了不同的数据集,不同数量的隐藏单元。我试图用加法而不是减法来更新权重......没有什么帮助......
有人可以告诉我可能出了什么问题吗?提前致谢
machine-learning - 反向传播,所有输出趋向于 1
我在 MATLAB 中有这个反向传播实现,并且在训练它时遇到了问题。在训练阶段的早期,所有输出都变为 1。我已将输入数据(除了用于生成二进制目标向量的所需类)标准化为区间 [0, 1]。我一直在提到人工智能中的实现:一种现代方法,Norvig 等人。
根据我的代码检查了伪代码(并研究了一段时间的算法),我无法发现错误。我已经很久没有使用 MATLAB,所以一直在尝试在需要的地方使用文档。
我还尝试了隐藏层中不同数量的节点和不同的学习率(ALPHA
)。
目标数据编码如下:当目标被分类为 时,2
目标向量将是[0,1,0]
,假设它是1
,[1, 0, 0]
依此类推。我还尝试对目标使用不同的值,例如 (for class 1
for example) [0.5, 0, 0]
。
我注意到我的一些体重超过了1
,导致净值很大。
matlab - 复值神经网络 (CVNN) 误差散度
我目前正在研究复值神经网络(CVNN)的本科论文。我的主题是基于单层复值神经网络的实值分类问题。我正在使用梯度下降学习规则对给定的数据集进行分类以下:
我在这里使用的算法可以在以下 PDF 的第 946 页上找到,标记为复值神经元 (CVN) 模型。主要算法可以在该主题的第 3 部分
但是我的误差曲线并没有收敛,而是表现出不同的特征。这是我的误差曲线输出。
我在MATLAB上模拟这背后的代码。我的实现也在下面给出:
我仍然无法弄清楚数据集上这种相反特征背后的原因。因此,感谢您对此提供任何帮助。
machine-learning - 当我需要更新 MultiLayer Perceptron 中的权重时?
我正在研究多层感知器,一种神经网络。当我阅读反向传播算法时,我看到一些作者建议在计算特定层的所有错误后立即更新权重,但另一位作者解释说我们需要在获得所有层的所有错误后更新权重。什么是正确的做法?
第一种方法:
第二种方法:
感谢一切。
python - numpy 和 matlab 的性能差异
我正在计算backpropagation
稀疏自动编码器的算法。我已经在 python 中使用numpy
和 in实现了它matlab
。代码几乎相同,但性能却大不相同。matlab 完成任务所需的时间是 0.252454 秒,而 numpy 是 0.973672151566,几乎是四倍。稍后我将在最小化问题中多次调用此代码,因此这种差异会导致实现之间存在几分钟的延迟。这是正常行为吗?如何提高 numpy 的性能?
Numpy 实现:
Sparse.rho 是一个调整参数,sparse.nodes 是隐藏层(25)中的节点数,sparse.input(64)是输入层中的节点数,theta1 和 theta2 是第一个和第二层的尺寸分别为25x64和64x25,m等于10000,rhoest的尺寸为(25,),x的尺寸为10000x64,a3 10000x64和a2 10000x25。
UPDATE
: 我在响应的一些想法之后对代码进行了更改。现在的性能是 numpy: 0.65 vs matlab: 0.25。
Matlab实现: