12 votos

¿Cómo puedo mejorar mi estabilidad de redes neuronales?

Estoy usando el neuralnet en R para construir un NN con 14 entradas y una salida. Voy a construir/tren la red varias veces, utilizando la misma entrada de datos de entrenamiento y la misma arquitectura de red/configuración.

Después de cada red es producida yo lo uso en un solo conjunto de datos de prueba para calcular algunos valores predichos. Me estoy dando cuenta que hay una gran varianza en cada iteración de los datos de predicción, a pesar de todas las entradas (tanto los datos de entrenamiento y datos de prueba) restante de la misma cada vez que me la construcción de la red.

Entiendo que habrá diferencias en las ponderaciones producidos dentro de las NN cada momento y que no hay dos redes neuronales será idéntico, pero ¿qué puedo hacer para producir redes que son más consistentes a través de cada tren, dado el idéntico datos?

Gracias de antemano por cualquier comentario.

8voto

Shea Parkes Puntos 2014

En general, usted podría conseguir más estabilidad al aumentar el número de nodos ocultos y el uso de un peso adecuado de la decadencia (aka ridge pena).

Específicamente, me gustaría recomendar el uso de la caret paquete para obtener una mejor comprensión de su exactitud (e incluso la incertidumbre en la precisión). También en símbolo de intercalación es el avNNet que hace un alumno conjunto de múltiples redes neuronales para reducir el efecto de las semillas iniciales. Yo personalmente no he visto gran mejora con el uso de avNNet pero no podía dirigir su pregunta original.

También me gustaría asegurarse de que sus entradas están todos debidamente acondicionado. Tiene usted orthogonalized y, a continuación, re-escalado de ellos? Símbolo de intercalación también puede hacer este pre-procesamiento para usted a través de su pcaNNet función.

Por último se puede considerar la posibilidad de lanzar en algunos saltar de conexiones de la capa. Usted necesita para asegurarse de que no hay valores atípicos/puntos de apalancamiento en sus datos para sesgar las conexiones, aunque.

1voto

Ludwi Puntos 188

No he trabajado con R, así que sólo puedo dar más consejos generales.

¿Has comprobado si el algoritmo convergente? Una posible explicación podría ser que los diferentes conjuntos de parámetros son todos en algún lugar a mitad de camino a la misma óptimo.

Si el algoritmo siempre converge, pero a un local diferente óptima, entonces hay muchas heurísticas usted podría tratar de evitar aquellos. Una simple estrategia de utilizar estocástico de gradiente de la pendiente (SGD) sería el uso de lotes más pequeños y de mayor impulso. El menor tamaño de los lotes introducir efectivamente algo de ruido en la formación que puede ayudar a escapar de algunos locales optima. Una forma mucho más sofisticada estrategia sería inicializar los pesos utilizando los autoencoders.

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