es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Divergencia en el algoritmo de descenso de gradiente para el modelo de red neuronal lineal.

Estoy tratando de entrenar una red neuronal lineal (sin funciones de activación) cuyas entradas son exactamente iguales a los objetivos. Tengo datos de entrenamiento y objetivos n3 y una matriz de pesos de 33, pero el descenso de gradiente no converge al mínimo.

Generé mis datos a partir de un plano como se muestra a continuación en Matlab:

m=50
x=rand(m,1);
y=rand(m,1);
z=2.*x + 3.*y + 1;
X=[x,y,z];

Después de eso, mi descenso de gradiente es el siguiente:

w=0.001*rand(3,3);

n=0.01;%tasa de aprendizaje
for i=1:100

    Y=(X*w); %salida

    error=(D-Y);

    w=w+n*error'*X;


end

¿Cuál es el problema? ¡Los pesos y errores han explotado y son números grandes! ¿Me puedes ayudar a saber cuáles son mis errores o si mi arquitectura de red neuronal tiene algún problema? ¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que su red neuronal está experimentando inestabilidad numérica, lo que está haciendo que los pesos y errores exploten. Esto podría deberse a una tasa de aprendizaje (n) demasiado alta, a valores de peso iniciales mal elegidos o a la existencia de valores atípicos en su conjunto de datos.

    Para abordar estos problemas, podría intentar reducir la tasa de aprendizaje o utilizar un algoritmo de optimización diferente. También podría intentar inicializar los pesos con valores más pequeños, como 0.01 o 0.001. Si los datos contienen valores atípicos, podría considerar eliminarlos o utilizar técnicas como la regresión robusta.

    Además, como el objetivo de la red neuronal es crear un mapeo de identidad entre las entradas y salidas, puede que no sea necesario utilizar una red neuronal en absoluto. Un modelo de regresión lineal más simple puede ser suficiente para esta tarea.

Comments are closed.