Estoy escribiendo un programa para realizar una regresión lineal. La función real que estoy tratando de estimar (para fines de prueba) es la siguiente:
f(x) = 3x + 100
La función que estoy utilizando para estimar es la siguiente:
r(x) = wx + b
Dónde w y b son los parámetros que se ajustan mediante el descenso de gradiente estocástico. Utilizo la función de error cuadrático medio como función de pérdida:
l = (f(x) - r(x))^2
Por lo tanto, la derivada de l con respecto a w :
-2x(f(x)-xw-b)
y la derivada de l con respecto a b :
-2(f(x)-xw-b)
Así, para modificar los parámetros w y b Aplico las siguientes operaciones para cada predicción:
w -= -2x(f(x)-xw-b) * 0.000001
b -= -2(f(x)-xw-b) * 0.000001
El valor de w acaba convergiendo en 3 (el valor encontrado en f(x)), pero b parece quedarse en el número en el que empieza. ¿Estoy haciendo mal las cuentas?