learn the parameters