fmat gdStep(const fmat& Theta, const fmat& X, const fmat& Y, double alpha, double lambda) { fmat gradient = (alpha / X.n_rows) * X.t() * (sigmoide(X * Theta) - Y); fmat reg = (lambda / X.n_rows) * Theta; reg.row(0) = zeros<frowvec>(Y.n_cols); return Theta - gradient - reg; }