tensorflow - 在 tensorflow 上使用弹性传播

标签 tensorflow backpropagation

有没有办法在 Tensorflow 上使用弹性传播?我知道有很多反向传播策略。有没有接近rPorp的?我可以插入我自己的弹性传播实现吗?

最佳答案

RProp 和 RMSProp 非常相似。它们都将当前批处理(或单个样本)的梯度符号与前一个批处理进行比较,以更新每个参数的唯一值(通常当符号一致时乘以 1.2,当符号不一致时乘以 0.5)。但是,当 RProp 比较每个批处理梯度时,RMSProp 使用折扣因子来保持用于比较符号的运行平均值。 RProp 使用这个唯一值在梯度方向上采取绝对步骤,而 RMSProp 将该值与梯度相乘。

RProp 对于较大的批处理非常有效,但对于随机更新则效果不佳,因为梯度的符号会闪烁,导致步骤接近最小值而停止学习。 RMSProp 的运行平均值解决了这个问题。但由于 RMSProp 乘以值和梯度,因此它比 RProp 更容易受到饱和的影响(至少对于 Sigmoid 和 Tanh - 但您当然可以使用 Relu 或 Leaky Relu 来解决这个问题)。

关于tensorflow - 在 tensorflow 上使用弹性传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287270/

相关文章:

python - TensorFlow 网络不训练?

python - 当我使用tensorflow ops编写函数时会发生什么

numpy - 神经网络不良结果

python - 在 `tf.py_func` 的输入函数中返回多个值

neural-network - 神经网络和异或函数

python - 解释张量板图

python - 为什么我的简单NN在Tensorflow中的损失是nan?

python - tensorflow 如何更改数据集

neural-network - Levenberg–Marquardt 是一种反向传播算法吗?

neural-network - 反向传播中的梯度检查