La etiqueta del mercado o los buenos modales en un campo de minas - página 28

 
YDzh писал(а) >>

Red neuronal, 13 entradas, sin capa oculta. Entrenamiento del algoritmo genético

¡Impresionante, YDzh!

Mis resultados son mucho más modestos. Tienes que ponerlo en una demo y ver dónde se corta la rejilla.

paralocus escribió >>

Neutron, parece que tenías razón sobre los 25 recuentos de preparación... -:)

Algo en mi red no está aprendiendo. Después de 100 épocas, los pesos son prácticamente los mismos con los que se inicializó la red.

En una nota relacionada, otra pregunta tonta:

¿El vector de aprendizaje es el mismo en cada época o no?

De todos modos, resulta que la relación entre la corrección acumulada y la corrección acumulada al cuadrado tiende a cero muy rápidamente. Por eso, ya después de la décima iteración el aprendizaje prácticamente se detiene.

Probablemente, hay un error en el código. Tengo que buscarlo. Por esta razón, primero corro la cuadrícula en Matcadet, es conveniente trazar toda la dinámica del aprendizaje a cualquier nivel de detalle y es mucho más fácil compilar estadísticas. Para comparar los resultados del aprendizaje, obtengo estadísticas independientes de 100 experimentos (sobre enseñabilidad y predicción) y comparo sólo las medias de los estados.

En cuanto al vector de entrenamiento, es ciertamente diferente en cada época. Pero es diferente de una manera especial - el mismo, pero desplazado a la izquierda cada vez por un paso, y el elemento cero toma el lugar de un nuevo dato, etc.

P.D. Estoy investigando el desglose del BP ahora con un paso uniforme, así que resulta que de época en época es mejor volver a aleatorizar todos los pesos y volver a entrenar completamente la malla, en lugar de retener el conocimiento adquirido. Tal vez sea una peculiaridad de los datos de entrada utilizados. Quiero subrayar, paralocus, lo importante que es autocomprobar todo en el combate: ¿los pesos crecen lentamente? - Sólo tienes que poner un coeficiente constante = 10 delante de la suma calculada y asegurarte de que no se equivoca.

 
Neutron >> :

Debe haber un error en el código. Tenemos que buscarlo. En primer lugar, utilizo Matcadet para esta cuadrícula, es conveniente para trazar toda la dinámica de aprendizaje con cualquier detalle, y es mucho más fácil de compilar estadísticas. Para comparar los resultados del aprendizaje, obtengo estadísticas independientes de 100 experimentos (sobre enseñabilidad y predicción) y comparo sólo las medias de los estados.

En cuanto al vector de entrenamiento, es ciertamente diferente en cada época. Pero difiere de manera especial - es el mismo vector, pero desplazado a la izquierda un paso, y el elemento cero es reemplazado por un nuevo dato, etc.

He estado investigando el código desde ayer. Parece que lo he limpiado todo, lo he revisado dos veces y he vuelto a escribir parte de él para simplificarlo. Ahora todo escribe y lee exactamente como debería.

Pero, ¿es necesario poner a cero el vector de corrección después de cada época? Creo que esa es la razón. Entiendo lo del cambio de vector un paso adelante - lo estoy haciendo.

 

Pues claro que sí.

Todos los contadores se ponen a cero al inicio del nuevo entrenamiento (epoch).

 

¿Es difícil aprender Mathcad?

Aunque me da miedo, creo que tendré que ponerme a ello...

 
Neutron >> :

Quiero subrayar, paralocus, lo importante que es comprobar todo uno mismo en la batalla: ¿son los pesos lentos para crecer? - Así que pon un coeficiente constante = 10 delante de la suma que obtengas y ¡asegúrate de que no se rompan!

La necesidad de la autocomprobación es evidente para mí, aunque todavía no se ha observado el crecimiento de los pesos en esta aplicación. Acerca de dónde poner 10 - no han entendido todavía.

Por cierto, si se hace sonar los pesos al principio de cada época, equivaldría a utilizar una sola época. Esto es muy parecido a la verdad, ya que el vector de error incremental se vuelve insignificante durante N épocas, y no tenemos recursos extra en nuestro ordenador personal.

 
Neutron писал(а) >>

¡Genial, YDzh!

Mis resultados son mucho más modestos. Tienes que ponerlo en una demo y ver dónde se corta la red.

Tengo un problema trivial: no tengo un ordenador que esté siempre encendido... Debería intentar utilizar plazos más cortos, de lo contrario el análisis de errores me llevará medio año :)

 
paralocus писал(а) >>

¿Es difícil aprender Mathcad?

...

el lenguaje de programación más sencillo, algunos ni siquiera lo consideran un lenguaje. La mayoría de las veces se ve una fórmula escrita en un libro y se escribe en Matcad.

lo único que hay que recordar es que matcad es un lenguaje matricial. Incluso un número primo en matcad es una matriz. Lo único que hay que recordar es que incluso un número primo es una matriz.

 
Prival >> :

es el lenguaje de programación más sencillo, algunos ni siquiera lo consideran un lenguaje. La mayoría de las veces se ve una fórmula escrita en un libro y se escribe en Matcad.

Lo único que hay que recordar es que matcad es un lenguaje matricial. Incluso un número primo en matcad es una matriz. Lo considero (matcad) la cúspide de la evolución en los lenguajes de programación.

¡Gracias Prival !

>>Me alegro de verte. -:)

 
paralocus писал(а) >>

¿El vector de aprendizaje es el mismo en todas las épocas o no?

Me equivoqué al responder a tu pregunta en el post anterior: me refería a la previsión de una nueva época, no a una nueva época. En el entrenamiento de un nuevo rebote sólo tenemos un vector de entrenamiento y cien épocas de entrenamiento con corrección de pesos NS en cada época.

Se recibe una nueva cuenta atrás, el vector de entrenamiento cambia y volvemos a ejecutar cien épocas de entrenamiento sobre él, y así sucesivamente.

Lo siento. Yo también me estoy confundiendo.

paralocus escribió >>

¿Es difícil dominar Matcad?

Aunque me aterra, creo que tendré que hacerme a la idea...

No, es fácil. Consigue un 2001i Pro.

 
paralocus писал(а) >>

¡Gracias Prival!

¡Me alegro de verte! -:)

Sí, leo este hilo con mucha atención todo el tiempo. Pero no entiendo mucho por los términos. Sinapsis, épocas... etc.

Lleva tiempo entenderlo, es mejor hacerlo con un profesor (será más rápido). Pero hasta ahora no soy capaz de hacerlo. Estoy preparando los datos para la verificación de la idea, creo que su idea para comprobar a través de la Asamblea Nacional. Entonces llegará el momento de entender qué y cómo programar en él. Por ahora sólo sé (creo que sé) con qué datos hay que alimentarlo y con qué hay que entrenarlo.

Estoy trabajando con Matkad 14 y tiene algunas funciones más prácticas que 2001i.