Производная SGD sklearn не равна нулю?

#python #machine-learning #scikit-learn #sgd

Вопрос:

Я хочу подтвердить, что соответствие SGDRegression с использованием sklearn в Python3 действительно равно нулю для производной в точке минимума x.

 import numpy as np
from sklearn.linear_model import SGDRegressor
n_samples, n_features = 20, 3
rng = np.random.RandomState(0)
y = rng.randn(n_samples)
a = rng.randn(n_samples, n_features)
reg = SGDRegressor(loss="squared_loss", max_iter=1000, tol=1e-3)
reg.fit(a, y)

# Coefficients of the trained line
z = reg.coef_

# Derivative (gradient) on a[i1]
i1 = 1
grad_F1 = 2 * z * ((a[i1] * z) - y[i1])
grad_F1

np.linalg.norm(grad_F1) # 0.14034432156803853
 

Я не получаю 0, как ожидал, поэтому либо расчет производной неверен, либо я не знаю, как получить минимизирующее значение x. Любая помощь будет признательна, спасибо.