variational learning