All problems
RMSProp Update
Problem
Perform one RMSProp update on a scalar parameter.
Given x, gradient g, running average avg_sq, learning rate lr, decay rho, and eps, compute avg_sq_new = rho * avg_sq + (1 - rho) * g * g and x_new = x - lr * g / (sqrt(avg_sq_new) + eps). Return [x_new, avg_sq_new].
Hint
The running average uses rho on the old value and (1 - rho) on g * g.
Test cases
case 1
in: [1,0.5,0,0.1,0.9,1e-8]
expected: [0.6837722539831608,0.024999999999999994]
case 2
in: [0,-2,1,0.01,0.95,1e-8]
expected: [0.018650095990893234,1.1500000000000001]
case 3
in: [2,0,0.5,0.1,0.9,1e-8]
expected: [2,0.45]
case 4
in: [-1,3,4,0.05,0.99,1e-8]
expected: [-1.0745355988796226,4.05]
Starter codePython
def rmsprop_update(x, g, avg_sq, lr, rho, eps):
# Returns [x_new, avg_sq]
# Your code here
pass4 test cases · run your code against them in the editor