有没有办法在Tensorflow上使用弹性传播?我知道有很多反向传播策略。有没有一个接近rPorp?我可以插入自己的弹性传播实现吗?
答案 0 :(得分:1)
tensorflow中没有rprop实现,尽管创建一个是非常简单的。您可以通过编写op来创建一个,或者通过组合ops直接在python中创建一个。
有一个RMSProp是另一回事。
请注意,RProp不适用于随机更新。批量大小必须非常大才能发挥作用。
答案 1 :(得分:0)
RProp和RMSProp非常相似。它们都比较当前批次(或单个样本)的梯度与前一个的梯度的符号,以更新每个参数的唯一值(当符号一致时通常乘以1.2,当它们不同时乘以0.5)。但是当RProp比较每个批次渐变时,RMSProp使用折扣因子来保持比较符号的运行平均值。 RProp使用此唯一值在梯度方向上采取绝对步骤,而RMSProp将值与梯度相乘。
RProp适用于较大批次,但对随机更新效果不佳,因为渐变的符号会闪烁,导致步骤接近最小值,从而停止学习。 RMSProp的运行平均值解决了这个问题。但是因为RMSProp乘以值和梯度,它比RProp更容易饱和(至少对于Sigmoid和Tanh - 但你当然可以使用Relu或Leaky Relu绕过它)。