Hay una serie de preguntas para hacer:
- ¿Tiene la cantidad adecuada de neuronas en cada capa?
- ¿Está utilizando los tipos apropiados de funciones de transferencia?
- ¿Está utilizando el tipo apropiado de algoritmo de aprendizaje?
- ¿tiene un tamaño de muestra suficientemente grande?
- ¿puede confirmar que sus muestras tienen el tipo correcto de relación entre ellas para ser informativas? (no redundante, de dimensión relevante, etc.)
¿Qué puedes dar en el camino de las efemérides? ¿Puede decirnos algo sobre la naturaleza de los datos?
Podrías hacer un árbol de redes neuronales potenciado por gradiente.
Usted preguntó qué pasa si se detiene temprano.
Puedes probarlo tu mismo. Ejecute 300x donde comience con pesos inicializados al azar, y luego pare en un número específico de iteraciones, digamos 100. En ese punto calcule su error de conjunto, su error de subconjunto de entrenamiento y su error de conjunto de prueba. Repetir. Después de que tenga 300 valores para indicarle cuál es el error, puede hacerse una idea de su distribución de errores con 100 iteraciones de aprendizaje. Si lo desea, puede probar esa distribución en varios otros valores de aprendizaje. Sugiero 200, 500 y 1000 iteraciones. Esto le dará una idea de cómo cambia su SNR con el tiempo. Una gráfica del recuento de SNR vs iteración puede darle una idea sobre "acantilados" o "lo suficientemente bueno". A veces hay acantilados donde se derrumba el error. A veces el error es aceptable en ese punto.
Se necesitan datos "relativamente simples" o "bastante buena" suerte para que su sistema converja consistentemente en menos de 100 iteraciones. Los dos no son sobre repetibilidad ni son generalizables.
¿Por qué está pensando en términos de pesos convergentes y no en errores por debajo de un umbral particular? ¿Alguna vez has oído hablar de una paradoja de votación? ( enlace ) Cuando tiene interacciones cíclicas en su sistema (como la retroalimentación en las redes neuronales), puede tener paradojas de votación, cambios acoplados. No sé si el peso solo es un indicador suficiente para la convergencia de la red.
Puedes pensar en los pesos como un espacio. Tiene más de 3 dimensiones, pero sigue siendo un espacio. En el "centroide" de ese espacio está su región de "mejor ajuste". Lejos del centroide es un ajuste menos bueno. Puede pensar en la configuración actual de sus pesos como un único punto en ese espacio.
Ahora no sabes dónde está el "bien". Lo que tienes es una "pendiente" local. Puede realizar el descenso de gradiente hacia el local "mejor" dado dónde está su punto ahora. No te dice lo "universal" mejor, pero lo local es mejor que nada.
Entonces comienzas a iterar, caminando cuesta abajo hacia ese valle de mejoría. Usted itera hasta que cree que ha terminado. Quizás el valor de sus pesos sea grande. Tal vez están rebotando por todo el lugar. Tal vez el cálculo está "tomando demasiado tiempo". Quieres que se haga
Entonces, ¿cómo sabes si dónde estás es "suficientemente bueno"?
Aquí hay una prueba rápida que puedes hacer:
Tome 30 subconjuntos aleatorios uniformes de los datos (como un pequeño porcentaje de los datos cada uno) y vuelva a entrenar la red en ellos. Debería ser mucho más rápido. Observe cuánto tiempo les lleva converger y compárelo con el historial de convergencia del gran conjunto. Pruebe el error de la red para todos los datos en estos subconjuntos y vea cómo esa distribución de errores se compara con su gran error. Ahora aumente el tamaño del subconjunto hasta un 5% de sus datos y repita. Mira lo que esto te enseña.
Esta es una variación en la optimización del enjambre de partículas (ver referencia) modelada sobre cómo las abejas toman decisiones basadas en la exploración.
Preguntó qué sucede si los pesos no convergen.
Las redes neuronales son una herramienta. No son la única herramienta. Hay otros. Me gustaría ver el uso de uno de ellos.
Trabajo en términos de criterios de información, así que miro tanto los pesos (recuento de parámetros) como el error. Puedes probar uno de esos.
Hay algunos tipos de preprocesamiento que pueden ser útiles. Centro y escala. Rotar utilizando componentes principales. Si observa los valores propios en sus componentes principales, puede usar las reglas de trazado de skree para estimar la dimensión de sus datos. Reducir la dimensión puede mejorar la convergencia. Si sabe algo sobre la 'física subyacente', puede suavizar o filtrar los datos para eliminar el ruido. A veces, la convergencia se trata de ruido en el sistema.
La idea de la detección comprimida me parece interesante. Puede permitir submuestreo radical de algunos sistemas sin pérdida de generalización. Me gustaría ver algunas estadísticas y distribuciones de sus datos de muestreo de arranque para determinar si y en qué nivel de submuestreo el conjunto de entrenamiento se vuelve representativo. Esto le da una cierta medida de la "salud" de sus datos.
A veces es bueno que no converjan
¿Alguna vez has oído hablar de una paradoja de votación? Podrías pensar en ello como un primo de mayor cuenta en un callejón sin salida de dos vías. Es un bucle. En una paradoja de votación de 2 personas, la primera persona quiere al candidato "A" mientras que la segunda quiere al candidato "B" (o no A o tal). La parte importante es que puedes pensarlo como un bucle.
Los bucles son importantes en las redes neuronales. Retroalimentación. Recursividad Hizo que el perceptrón pudiera resolver problemas similares a XOR. Crea bucles y, a veces, los bucles pueden actuar como la paradoja de la votación, donde seguirán cambiando de peso si tuviera iteraciones infinitas. No están destinados a converger porque no es el peso individual lo que importa, sino la interacción de los pesos en el bucle.
Nota:
Usar solo 500 iteraciones puede ser un problema. He tenido NN's donde 10,000 iteraciones apenas fueron suficientes. El número de iteraciones para ser "suficiente" depende, como ya he indicado, de los datos, la topología NN, las funciones de transferencia de nodos, la función de aprendizaje / entrenamiento e incluso el hardware de la computadora. Debe comprender bien cómo interactúan todos con su recuento de iteraciones antes de decir que ha habido "suficientes" o "demasiadas" iteraciones. También se deben considerar otras consideraciones, como el tiempo, el presupuesto y lo que desea hacer con el NN cuando termine la capacitación.
Chen, RB, Chang, SP, Wang, W. y Wong, WK, (2011, septiembre). Diseños experimentales óptimos a través de métodos de optimización de enjambre de partículas (preimpresión), obtenido el 25 de marzo de 2012, de http://www.math.ntu.edu.tw/~mathlib/preprint/2011-03.pdf