- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您能告诉我随机梯度下降(SGD)和反向传播之间的区别吗?
最佳答案
反向传播是一种在有向计算图中(例如神经网络)计算梯度的有效方法。这不是一种学习方法,而是一种经常用于学习方法的很好的计算技巧。这实际上是导数链式法则的简单实现,它让您能够根据图的大小在线性时间内计算所有所需的偏导数(而朴素的梯度计算将随着深度呈指数级增长) )。
SGD 是众多优化方法中的一种,即一阶优化器,也就是说,它基于对目标梯度的分析。因此,就神经网络而言,它通常与反向传播一起应用以进行有效的更新。您还可以将 SGD 应用于以不同方式(通过采样、数值逼近器等)获得的梯度。对称地,您也可以将其他优化技术与反向传播一起使用,所有可以使用梯度/雅可比的技术。
这种常见的误解来自这样一个事实,即为了简单起见,人们有时会说“使用反向传播进行训练”,实际上意味着(如果他们没有指定优化器)“使用反向传播作为梯度计算技术通过 SGD 进行训练”。此外,在旧教科书中,您可以找到诸如“增量规则”和其他有点令人困惑的术语之类的内容,它们描述完全相同的事物(因为神经网络社区很长一段时间都有点独立于一般优化社区)。
因此你有两层抽象:
关于machine-learning - SGD 和反向传播有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953585/
Python sklearn 中的 SGD 分类器和 SGD 回归器有什么区别?我们还可以设置批量大小以获得更快的性能吗? 最佳答案 嗯,它就在名字里。 SGD分类器是在分类问题中使用SGD(一次取每
我安装的版本2.0.beta7来自带有 Ubuntu (python 3.4) 的 Azure NC24 GPU VM 中的 CNTK。该机器有 4 个 NVIDIA K80 GPU。构建信息:
这是一个用 python 快速实现单层神经网络的方法: import numpy as np # simulate data np.random.seed(94106) X = np.random.r
我正在尝试实现具有两个约束的随机梯度下降,因此不能使用 scikit-learn。不幸的是,我已经在没有这两个限制的情况下与常规 SGD 作斗争。训练集上的损失(平方损失)在一些迭代中下降,但在一段时
我只是想问一个简单的问题。我知道 val_loss 和 train_loss 不足以判断模型是否过度拟合。但是,我希望通过监视 val_loss 是否增加来将其用作粗略的衡量标准。当我使用 SGD 优
我正在使用 python 代码 network3.py ( http://neuralnetworksanddeeplearning.com/chap6.html ) 来开发卷积神经网络。现在我想通过
SGD 随机梯度下降 Keras 中包含了各式优化器供我们使用,但通常我会倾向于使用 SGD 验证模型能否快速收敛,然后调整不同的学习速率看看模型最后的性能,然后再尝试使用其他优化器。 Kera
我在这里做错了什么?我有一个大数据集,我想使用 Scikit-learn 的 SGDClassifier 执行部分拟合 我做以下 from sklearn.linear_model import SG
在 Caffe 中,SGD 求解器有一个动量参数 (link)。在 TensorFlow 中,我看到 tf.train.GradientDescentOptimizer没有明确的动量参数。但是,我可以
在Keras和Pytorch中,SGD优化器有权重衰减参数。我发现tf.train.GradientDescentOptimizer没有权重衰减参数。具有权重衰减的 SGD 的 tensorflow
如何计算 SGD 的训练精度?您是否使用训练网络的批量数据来计算它?或者使用整个数据集? (对于每个批处理优化迭代) 我尝试使用训练网络的批量数据来计算每次迭代的训练准确性。它几乎总是给我 100%
您能告诉我随机梯度下降(SGD)和反向传播之间的区别吗? 最佳答案 反向传播是一种在有向计算图中(例如神经网络)计算梯度的有效方法。这不是一种学习方法,而是一种经常用于学习方法的很好的计算技巧。这实际
我正在尝试将线性回归(正规方程)与 SGD 进行比较,但看起来 SGD 相去甚远。我做错了什么吗? 这是我的代码 x = np.random.randint(100, size=1000) y = x
我正在尝试比较神经网络的 SGD 和 GD 算法的收敛速度。在 PyTorch 中,我们经常使用 SGD 优化器,如下所示。 train_dataloader = torch.utils.data.D
任何人都可以解释一下此 lecture 第8分钟提出的收敛测试吗?作者:雨果·拉罗谢尔? 最佳答案 这些条件确保渐近收敛。在这种情况下,我们应该能够无限次更新近似解。直观上,要实现这一点,学习率应始终
我正在寻找创造性的方法来加快我的神经网络的训练时间,也可能减少梯度消失。我正在考虑将网络分解到不同的节点上,在每个节点上使用分类器作为反向传播“助推器”,然后将节点堆叠在一起,每个节点之间的连接稀疏(
如果我提供整个数据并且不指定批量大小,pytorch SGD 会做什么?我在这种情况下没有看到任何“随机”或“随机性”。例如,在下面的简单代码中,我将整个数据 (x,y) 输入到模型中。 optimi
具有小批量的随机梯度下降算法通常使用小批量的大小或计数作为参数。 Now what I'm wondering, do all of the mini-batches need to be of ex
我正在使用 Apache Mahout 解决二进制分类问题。我使用的算法是 OnlineLogisticRegression,我目前拥有的模型强烈倾向于产生 1 或 0 的预测,没有任何中间值。 请提
我正在尝试实现 SGD 功能以在 caffe python 中手动更新 python 中的权重,而不是使用 solver.step() 函数。目标是在执行 solver.step() 后通过手动更新权
我是一名优秀的程序员,十分优秀!