def test_AMSGrad_nesterov_momentum_quadratic(): assert np.allclose(AMSGrad(f=quad1, momentum_type='nesterov').minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(AMSGrad(f=quad2, momentum_type='nesterov').minimize().x, quad2.x_star(), rtol=0.1)
def test_AdaDelta_quadratic(): assert np.allclose(AdaDelta(f=quad1).minimize().x, quad1.x_star(), rtol=0.15) assert np.allclose(AdaDelta(f=quad2).minimize().x, quad2.x_star(), rtol=0.15)
def test_AdaMax_standard_momentum_quadratic(): assert np.allclose(AdaMax(f=quad1, momentum_type='standard').minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(AdaMax(f=quad2, momentum_type='standard').minimize().x, quad2.x_star(), rtol=0.1)
def test_quadratic(): assert np.allclose(Subgradient(f=quad1, a_start=0.32).minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(Subgradient(f=quad2, a_start=0.52).minimize().x, quad2.x_star(), rtol=0.1)
def test_AdaGrad_quadratic(): assert np.allclose(AdaGrad(f=quad1, step_size=0.1).minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(AdaGrad(f=quad2, step_size=0.15).minimize().x, quad2.x_star(), rtol=0.1)
def test_Adam_Polyak_momentum_quadratic(): assert np.allclose(Adam(f=quad1, momentum_type='polyak').minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(Adam(f=quad2, momentum_type='polyak').minimize().x, quad2.x_star(), rtol=0.1)
def test_RMSProp_quadratic(): assert np.allclose(RMSProp(f=quad1, step_size=0.1).minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(RMSProp(f=quad2, step_size=0.1).minimize().x, quad2.x_star(), rtol=0.1)
def test_Nadam_quadratic(): assert np.allclose(RMSProp(f=quad1, momentum_type='nesterov').minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(RMSProp(f=quad2, momentum_type='nesterov').minimize().x, quad2.x_star(), rtol=0.1)
def test_StochasticGradientDescent_Nesterov_momentum_quadratic(): assert np.allclose( StochasticGradientDescent(f=quad1, momentum_type='nesterov').minimize().x, quad1.x_star()) assert np.allclose( StochasticGradientDescent(f=quad2, momentum_type='nesterov').minimize().x, quad2.x_star())
def test_Nadam_quadratic(): assert np.allclose(Adam(f=quad1, momentum_type='nesterov').minimize().x, quad1.x_star(), rtol=0.1) assert np.allclose(Adam(f=quad2, step_size=0.1, momentum_type='nesterov', momentum=0.5).minimize().x, quad2.x_star(), rtol=0.1)
def test_quadratic(): assert np.allclose(ProximalBundle(f=quad1).minimize().x, quad1.x_star()) assert np.allclose(ProximalBundle(f=quad2).minimize().x, quad2.x_star(), rtol=0.1)
def test_ConjugateGradient_quadratic_FletcherReeves(): assert np.allclose(ConjugateGradient(f=quad1).minimize().x, quad1.x_star()) assert np.allclose(ConjugateGradient(f=quad2).minimize().x, quad2.x_star())
def test_ConjugateGradient_quadratic_DaiYuan(): assert np.allclose(ConjugateGradient(f=quad1, wf='dy').minimize().x, quad1.x_star()) assert np.allclose(ConjugateGradient(f=quad2, wf='dy').minimize().x, quad2.x_star())
def test_ConjugateGradient_quadratic_HestenesStiefel(): assert np.allclose(ConjugateGradient(f=quad1, wf='hs').minimize().x, quad1.x_star()) assert np.allclose(ConjugateGradient(f=quad2, wf='hs').minimize().x, quad2.x_star())
def test_ConjugateGradient_quadratic_PolakRibiere(): assert np.allclose(ConjugateGradient(f=quad1, wf='pr').minimize().x, quad1.x_star()) assert np.allclose(ConjugateGradient(f=quad2, wf='pr').minimize().x, quad2.x_star())
def test_quadratic(): assert np.allclose(HeavyBallGradient(f=quad1).minimize().x, quad1.x_star()) assert np.allclose(HeavyBallGradient(f=quad2).minimize().x, quad2.x_star())
def test_SteepestGradientDescent_quadratic(): assert np.allclose( SteepestGradientDescent(f=quad1).minimize().x, quad1.x_star()) assert np.allclose( SteepestGradientDescent(f=quad2).minimize().x, quad2.x_star())
def test_quadratic(): assert np.allclose(Newton(f=quad1).minimize().x, quad1.x_star()) assert np.allclose(Newton(f=quad2).minimize().x, quad2.x_star())