human
Here's a good function header given the following:
I wrote the below code

    cost = SumOfCosts([SumOfOneHalfParamsSquared(), (0.0, DummyCost())])
    model = DummyModel(shapes, lr_scalers=scales)
    dataset = ArangeDataset(1)
    decay = 0.95
    sgd = SGD(cost=cost, learning_rate=learning_rate, learning_rule=AdaDelta(decay), batch_size=1)
    sgd.setup(model=model, dataset=dataset)
    state = {}
    for param in model.get_params():
        param_shape = param.get_value().shape
        state[param] = {}
        state[param]['g2'] = np.zeros(param_shape)
        state[param]['dx2'] = np.zeros(param_shape)
    def adadelta_manual(model, state):
        rval = []
        for (scale, param) in izip(scales, model.get_params()):
            pstate = state[param]
            param_val = param.get_value()
            pstate['g2'] = ((decay * pstate['g2']) + ((1 - decay) * (param_val ** 2)))
            rms_g_t = np.sqrt((pstate['g2'] + (scale * learning_rate)))
            rms_dx_tm1 = np.sqrt((pstate['dx2'] + (scale * learning_rate)))
            dx_t = (((- rms_dx_tm1) / rms_g_t) * param_val)
            pstate['dx2'] = ((decay * pstate['dx2']) + ((1 - decay) * (dx_t ** 2)))
            rval += [(param_val + dx_t)]
        return rval
    manual = adadelta_manual(model, state)
    sgd.train(dataset=dataset)
    assert all((np.allclose(manual_param, sgd_param.get_value()) for (manual_param, sgd_param) in izip(manual, model.get_params())))
    manual = adadelta_manual(model, state)
    sgd.train(dataset=dataset)
    assert all((np.allclose(manual_param, sgd_param.get_value()) for (manual_param, sgd_param) in izip(manual, model.get_params())))

What's a good function header?
assistant
#Here's a good function header.

def test_adadelta():