backpropagation相关内容

为什么使用带有单个隐藏节点的 IRIS 数据集可以获得良好的准确性?

我有一个带有反向传播训练器的神经网络的最小示例,在 IRIS 数据集上对其进行测试.我从 7 个隐藏节点开始,效果很好. 我将隐藏层中的节点数降低到 1(预计会失败),但惊讶地发现准确度上升了. 我在 azure ml 中设置了实验,只是为了验证它不是我的代码.同样的事情,单个隐藏节点的准确率为 98.3333%. 谁能向我解释一下这里发生了什么? 解决方案 首先,众所周 ..

神经网络学习率和批量权重更新

我已经用 Java 编写了一个神经网络,现在正在研究反向传播算法. 我了解到,批量更新权重会导致更稳定的梯度搜索,而不是在线权重更新. 作为测试,我创建了一个 100 点的时间序列函数,例如 x = [0..99] 和 y = f(x).我创建了一个具有一个输入和一个输出以及 2 个隐藏层的神经网络,其中包含 10 个神经元用于测试.我正在努力解决这个问题时反向传播算法的学习率. ..
发布时间:2021-12-31 16:39:40 其他开发

numpy : 计算 softmax 函数的导数

我正在尝试使用 MNIST 在一个简单的 3 层神经网络中理解 backpropagation. 输入层有weights 和bias.标签是 MNIST 所以它是一个 10 类向量. 第二层是线性变换.第三层是 softmax 激活 以获取输出作为概率. Backpropagation 计算每一步的导数并将其称为梯度. 前一层将 global 或 previous 渐变附加 ..
发布时间:2021-12-31 16:35:36 Python

什么时候在 Caffe 中使用就地图层?

通过将底部和顶部的 blob 设置为相同,我们可以告诉 Caffe 进行“就地"计算以保持内存消耗. 目前我知道我可以安全地使用就地 "BatchNorm"、"Scale" 和 "ReLU" 层(请让我知道我是否错了).虽然其他层似乎有一些问题(这个问题似乎是一个例子). 何时在 Caffe 中使用就地图层? 它如何与反向传播一起工作? 解决方案 正如您所注意到的,就地图层通 ..

反向传播和反向模式 autodiff 之间有什么区别?

通过这本本书,我熟悉以下内容: 对于每个训练实例,反向传播算法首先生成一个预测(前向传递),测量误差,然后通过每个反向层以测量每个的误差贡献连接(反向传递),最后稍微调整连接权重以减少误差. 但是,我不确定这与 TensorFlow 的反向模式 autodiff 实现有何不同. 据我所知,反向模式 autodiff 首先沿正向遍历图形,然后在第二遍中计算输出相对于输入的所有偏导数 ..

keras 结合两个损失与可调权重

这里是详细说明.我有一个两层的 keras 功能模型,输出 x1 和 x2. x1 = Dense(1,activation='relu')(prev_inp1)x2 = Dense(2,activation='relu')(prev_inp2) 我需要使用这些 x1 和 x2,合并/添加它们并像附加图像中那样提出加权损失函数.将“相同的损失"传播到两个分支中.Alpha 可以灵活地随着迭代而 ..

如何在神经网络中使用 k 折交叉验证

我们正在编写一个小型人工神经网络,它应该根据 10 个输入变量将 7000 种产品分为 7 个类别. 为了做到这一点,我们必须使用 k 折交叉验证,但我们有点困惑. 我们有演示幻灯片的摘录: 验证集和测试集到底是什么? 据我们了解,我们运行了 3 个训练集并调整了权重(单个 epoch).那么我们如何处理验证呢?因为据我了解,测试集是用来获取网络的误差的. 接下来发生 ..

Pytorch ValueError:优化器得到一个空的参数列表

尝试创建神经网络并使用 Pytorch 对其进行优化时,我得到 ValueError: 优化器得到一个空的参数列表 这是代码. 将 torch.nn 导入为 nn导入 torch.nn.functional 作为 F从 os.path 导入目录名从操作系统导入 getcwd从 os.path 导入 realpath从 sys 导入 argv类 NetActor(nn.Module):de ..

在哪些情况下,交叉熵优于均方误差?

虽然上述两种方法都为更好的预测接近度提供了更好的分数,但仍然首选交叉熵.是在每种情况下还是在某些特殊情况下我们更喜欢交叉熵而不是 MSE? 解决方案 分类首选交叉熵,而回归的均方误差是最佳选择之一>.这直接来自问题本身的陈述 - 在分类中,您使用非常特殊的一组可能的输出值,因此 MSE 定义错误(因为它没有这种知识,因此以不兼容的方式惩罚错误).为了更好地理解现象,最好遵循并理解它们之间的 ..

numpy 和 matlab 之间的性能差异

我正在为稀疏自编码器计算 backpropagation 算法.我已经使用 numpy 和 matlab 在 python 中实现了它.代码几乎相同,但性能却大不相同.matlab 完成任务所需的时间为 0.252454 秒,而 numpy 为 0.973672151566,几乎是四倍.稍后我将在最小化问题中多次调用此代码,因此这种差异会导致实现之间出现几分钟的延迟.这是正常行为吗?如何提高 nu ..
发布时间:2021-12-08 15:29:20 Python

为 OCR 训练前馈神经网络

目前我正在学习神经网络,我正在尝试创建一个可以训练识别手写字符的应用程序.对于这个问题,我使用了一个前馈神经网络,当我训练它识别 1、2 或 3 个不同的字符时,它似乎可以工作.但是当我尝试让网络学习超过 3 个字符时,它会停滞在 40 - 60% 左右的错误百分比. 我尝试了多层和更少/更多的神经元,但我似乎无法做到正确,现在我想知道前馈神经网络是否能够识别这么多信息. 一些统计数据 ..

Tensorflow 中的反向传播(通过时间)代码

我在哪里可以找到 Tensorflow (python API) 中的反向传播(通过时间)代码?还是使用了其他算法? 例如,当我创建一个 LSTM 网络时. 解决方案 TensorFlow 中的所有反向传播都是通过自动微分网络前向传播中的操作,并添加显式操作来计算网络中每个点的梯度.一般实现可以在,但使用的特定版本取决于你的 LSTM 是如何实现的: 如果 LSTM 被实现为有 ..
发布时间:2021-09-05 19:17:27 Python

Python:用于多维数组的numpy.dot/numpy.tensordot

我正在优化我的反向传播算法的实现,以训练神经网络.我正在研究的方面之一是对数据点集(输入/输出向量)执行矩阵运算,这是由numpy库优化的批处理过程,而不是遍历每个数据点. 在原始算法中,我执行了以下操作: 用于数据点中的数据点:A = ...(根据数据点信息创建)B = ...(根据数据点信息创建)C = np.dot(A,B.transpose())__________________ ..
发布时间:2021-04-14 19:07:20 Python

反向传播神经网络的多个输入

我已经为此工作了大约一个星期.我的编码没有错误,我只需要正确的算法和概念即可.我实现了一个由1个隐藏层组成的神经网络.我使用反向传播算法来校正权重. 我的问题是网络只能学习一种模式.如果我一遍又一遍地使用相同的训练数据进行训练,那么在给定的输入在数值上接近训练数据的情况下,它将产生所需的输出. training_input:1、2、3training_output:0.6、0.25 ..
发布时间:2021-04-14 19:07:17 其他开发

反向传播中的梯度检查

我正在尝试为具有2个单位输入层,2个隐藏层和1个输出层的简单前馈神经网络实现梯度检查.我要做的是以下事情: 在所有层之间获取网络权重的每个权重w,并使用w + EPSILON,然后使用w-EPSILON进行前向传播. 使用两个前馈传播的结果计算数值梯度. 我不了解的是如何精确地执行反向传播.通常,我将网络的输出与目标数据进行比较(在分类的情况下),然后在网络上反向传播误差导数.但是, ..
发布时间:2021-04-14 19:07:14 其他开发