NumPy allowed · plain Python earns 10 bonus points
θ ← θ − 0.14 · ∂L/∂θ
Implement Kingma and Ba's adaptive moment estimation (Adam) optimizer step with bias correction.
Implement adam_optimizer_step(...): at timestep t >= 1, compute for each parameter: m_t = beta1 * m + (1 - beta1) * g, v_t = beta2 * v + (1 - beta2) * g^2. Correct bias: m_hat = m_t / (1 - beta1^t), v_hat = v_t / (1 - beta2^t). Update parameter: param = param - lr * m_hat / (sqrt(v_hat) + eps). Return {'param': ..., 'm': ..., 'v': ...} rounded to 6 decimal places.
adam_optimizer_step(param: list[float], grad: list[float], m: list[float], v: list[float], t: int, lr: float = 0.001, beta1: float = 0.9, beta2: float = 0.999, eps: float = 1e-8) -> dict