2 votos

Sesgo de regresión lineal no convergente

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?

2voto

CathyQian Puntos 121

Hace poco me encontré con el mismo problema. El resultado de la regresión lineal diverge con una tasa de aprendizaje = 0,1. Seguí disminuyendo la tasa de aprendizaje hasta que alcanzó 1e-5 hasta que la regresión lineal converge. La tasa de aprendizaje es crítica para la regresión lineal. Si es demasiado pequeño, se ralentizará el cálculo. Si es demasiado grande, sobrepasará el mínimo de la función de coste o incluso divergirá. La otra forma de resolver este problema es empezar con mejores valores de w y b. Eche un vistazo a los datos y empiece con w y b decentes.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X