问题标签 [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.
matlab - 我在 iris 数据集 nntool matlab 中放了什么“目标”?
我是使用 matlab 的新手,所以这可能很容易。我正在尝试使用 nntool(前馈反向传播网络)在 matlab 中制作虹膜数据集神经网络。但我无法找出目标矩阵应该是什么。我也试图找到(试图创建但仍然什么也没做)用于编程相同事物而不是使用 nntools 的代码。谁能帮我吗?
machine-learning - ANN 训练集缩放
我目前正在使用反向传播研究人工神经网络,用于分类任务。然而,我对规范化我正在使用的数据集有点困惑(我没有强大的统计/概率背景)。
数据示例如下所示:
每个标记的最后一个标记是类。
现在,由于我使用的是 Sigmoid 传递函数,我的网络显然无法输出大于 1 的值,因此需要对数据进行归一化/缩放。
我的第一个问题;我需要同时扩展功能和类,还是只扩展类?
我的第二个问题,是否有任何“事实上的”或常用的方法来进行这种缩放?
问候, 杰克亨特
neural-network - 我们只需要对训练集的输入段进行归一化吗?
我想知道,无论是否必须将其应用于整个训练集的输入和输出或输入段,都需要数据规范化就足够了。
matlab - 反向传播算法(Matlab):输出值饱和到 1
我根据这些注释在 Matlab 中编写了反向传播算法:http: //dl.dropbox.com/u/7412214/BackPropagation.pdf
我的网络采用长度为 43 的输入/特征向量,在隐藏层中有 20 个节点(我可以更改任意参数选择),并且只有一个输出节点。我想训练我的网络获取 43 个特征并输出 0 到 100 之间的单个值。输入数据被归一化为零均值和单位标准偏差(通过 z = x - 均值/标准差),然后我附加了一个“1 " 输入向量的术语以表示偏差。我的 targetValues 只是 0 到 100 之间的单个数字。
这是我的代码的相关部分:
(按照我的约定,第 I (i) 层是指输入层,J (j) 是指隐藏层,K (k) 是指输出层,在这种情况下是单个节点。)
权重矩阵初始化如下:
“sigmoidVector”函数获取向量中的每个元素并应用y = 1 / (1 + exp(-x))
.
下面是调试消息的样子,从代码的开始:
显然,我希望网络将输出值训练在 0 到 100 之间,以尝试匹配这些目标值!
感谢您的帮助,如果您需要更多信息,我会尽力提供。
matlab - 八度反向传播实现问题
我编写了一个代码来实现我遇到问题的最速下降反向传播。我正在使用机器 CPU 数据集并将输入和输出缩放到范围 [0 1]
matlab/octave中的代码如下:
最速下降反向传播
预测
均方根函数
我还使用 R RSNNS 包训练了相同的数据集mlp
,训练集(前 100 个示例)的 RMSE 约为 0.03 。但在我的实现中,我无法达到低于 0.14 的 RMSE。有时错误会随着更高的学习率而增长,并且没有任何学习率能让我的 RMSE 低于 0.14。另外我提到的一篇论文报告了火车组的 RMSE 约为 0.03
我想知道代码的问题在哪里。我遵循了 Raul Rojas 的书,并确认一切正常。
java - Java - 规范化和非规范化神经网络中的名义属性
您好我正在构建一个简单的多层网络,该网络使用反向传播进行训练。我目前的问题是我的数据集中的某些属性是名义上的(非数字),我必须对它们进行规范化。我想知道最好的方法是什么。我正在考虑计算每个属性有多少不同的值,并为每个属性分配一个介于 0 和 1 之间的相等数字。例如,假设我的一个属性具有值 A 到 E,那么以下是否合适?:
我的问题的第二部分是将输出非规范化以使其恢复到标称值。为了获得数字表示,我是否首先对数据集中的每个不同的输出属性值执行与上述相同的操作?此外,在我从网络获得输出后,我是否只看到它更接近哪个数字?例如,如果我得到 0.435 作为输出并且我的输出属性值是这样分配的:
我是否只找到最接近输出 (0.435) 的值,即 y (0.5)?
python - python - 多层感知器,反向传播,无法学习 XOR
我正在尝试使用反向传播实现多层感知器,但我仍然无法教他 XOR,我也会经常遇到数学范围错误。我在书籍和谷歌中查找学习规则和错误反向传播方法,但我仍然不知道我的错误在哪里
machine-learning - 增量(在线)反向传播停止标准
在反向传播 ANN 的在线实现中,您将如何确定停止标准?
我一直在做的方式(我确信这是不正确的)是平均每个输出节点的误差,然后在每个时期平均这个误差。
这是不正确的方法吗?是否有停止在线实施的标准方法?
neural-network - 训练具有大线性输出的神经网络
我正在编写一个前馈神经网络,我想将它与强化学习结合使用。我有一个以 tanh 作为激活函数的隐藏层和一个线性输出层。
我有三个归一化为 [0,1] 的输入。还有三个输出节点,它给出了从环境中获得的奖励。回报总是负面的。At the beginning, when the chosen actions lead to bad decisions, it can be like -50000, with good decisions it can be -5.
我正在努力实现反向传播。由于奖励如此之大,因此误差值很大,从而产生了巨大的权重。经过几轮训练,隐藏层的权重如此之大,我在隐藏层中的节点只创建了值 -1 或 1。
这是我的代码:
python - 如何为以下输入/输出实现反向传播算法?
我想在 python 或 C++ 中为以下输入实现反向传播算法
其中第一个元组是我的输入,第二个元组是我的输出。我在互联网上搜索的每个反向传播算法的实现都使用了一个分类程序(1 或 0)。
给定的输入/输出集用于为跳棋游戏开发神经网络。我猜它使用了与实现国际象棋相同的技术。
是否有可能为此开发一种算法?请为我提供一些指导或实施方法来执行此操作。也可以使用 OpenCV 函数。