2017-02-17 55 views
0

有沒有在Tensorflow上使用彈性傳播的方法?我知道有一些反向傳播策略。有沒有接近rPorp的?我可以插入我自己的彈性傳播實現嗎?在張量流上使用彈性傳播

回答

1

在tensorflow中沒有rprop實現,儘管創建一個並不重要。你可以通過編寫op來創建一個,或者通過組合ops直接在python中創建一個。

有一個RMSProp這是一個不同的東西。

請注意,RProp不適用於隨機更新。批量大小必須非常大,才能正常工作。

+0

有趣。你能評論一下爲什麼RProp不能很好地適應隨機更新?如果原因是梯度符號的變化不是一個明顯的超調,可以通過在應用啓發式算法之前考慮聚合梯度來修復它。或者這是更根本的原因嗎?一個參考,表明這將是一件好事... – buc030

+0

我認爲這可能是可以解決的。當您遇到符號變化時,衰減規則可能需要調整,更接近收斂。你必須這樣做,而不是增加更多的狀態來限制內存使用量,並且確保這些步驟是單調遞減和平方和。 – drpng

0

RProp和RMSProp非常相似。他們都將當前批次(或單個樣品)的梯度符號與前一個進行比較,以更新每個參數的唯一值(通常在符號同意時乘以1.2,否則乘以0.5)。但是,當RProp比較每個批次梯度時,RMSProp使用折扣因子來保持比較符號的運行平均值。 RProp使用此唯一值在梯度方向上採取絕對步驟,而RMSProp將該值與梯度相乘。

RProp適用於較大的批次,但對於隨機更新不起作用,因爲漸變的符號會閃爍導致步驟接近最小值,從而停止學習。 RMSProp的運行平均值解決了這個問題。但是因爲RMSProp將值和梯度相乘,所以它比RProp更容易飽和(至少對於Sigmoid和Tanh來說 - 但你當然可以使用Relu或Leaky Relu來解決這個問題)。