擅长:python、mysql、java
<p>我想如果你不想继续学习的话,我想你应该停止学习。在</p>
<p>基本的想法是,当你看不到你的abs误差变化时,慢慢减少你对你的数值的干扰,同时保持整个过程的稳定性。如果你已经降低了你的学习率,但你仍然没有看到任何改善,你就完成了(或者至少是某种局部的最低限度)。这个方法可能会慢一点,而且计算我输入的变量有不同的方法(例如,sigErrChange),所以你得玩玩一下。还有一些其他的注意事项我想不起来了,但希望这能让大家明白我的想法。在</p>
<p>例如</p>
<pre><code>lR = 1.0
updatedLR = False # Have we updated the learning rate this iteration?
while abs(error) > 50 and ( sigErrChange or updatedLR ):
sigErrChange = False # Has there been a significant improvement in the error? (Probably shouldn't just use a single iteration for this...)
# Are we adding or subtracting
if C > T:
sign = 1.
else:
sign = -1.
# Should we update the learning rate?
if (~sigErrChange)
updatedLR = True
lR = .95 * lR
# Calculate our values
c = c + sign*lR*.001
C = calcC(c, C, T)
T = calcT(c, C, T)
error = C - T
</code></pre>