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

 
HideYourRichess писал(а) >>

Cualquier línea recta puede inscribirse en dicho círculo, con cualquier ángulo respecto a la horizontal.

¡Vaya, vaya!

¡Ya ves, no en cualquier ángulo! - Es el ángulo correcto...

 
Neutron >> :

Ahora parece que sí.

¿Dónde está la prometida nube de formación?

Pon una cuadrícula a escala en la gráfica y dime cuál es tu tangente del ángulo de inclinación para la recta.

Se trata de las imágenes obtenidas de la primera diferencia del seno de cinco miembros por X y de la predicción de la cuadrícula con pesos aleatorios (ajuste inicial de los pesos +/-1) por Y. El resto aún se está haciendo, próximamente

 
Neutron >> :

¡Vaya, vaya!

Como puede ver, ¡no cualquiera! - Es la correcta...

>> Sí, sí, sí.

 

Ya está, está hecho. Aquí sólo falta una muestra de entrenamiento, porque la muestra de entrenamiento es el vector X. Así que, por supuesto, puedes trazarla en el gráfico, pero será una línea recta que intersecará el gráfico en un ángulo de 45". La neurona fue entrenada con tres muestras:

1. Primera diferencia simple 5sin - vector Y_simpl, color verde (visón correspondiente)

2. Hiptangente de la primera diferencia 5sin - azul

3. entradas binarias (por 5sin) - púrpura


Las tangentes de las rectas son así:



Y sin embargo, algo va mal. O no entiendo la tarea que me has encomendado.

Esta neurona se entrena en cada nuevo vector de datos X, el mismo vector se utiliza como eje de abscisas del gráfico. ¿Si se muestra en la ordenada...? ¿Por qué?

Además me he dado cuenta de que si se recalcula la hoja de trabajo con los mismos datos los resultados serán diferentes. ¿Se supone que debe ser así? Es decir, los resultados dependen mucho de los ajustes iniciales de los pesos.

Pues bien, cuando no entrené la neurona en cada paso, sino que sólo la ejecuté sobre el vector de datos con pesos iniciales elegidos al azar, obtuve dibujos con una nube en el centro (a veces).

Ahora tienes lo que ves. Aquí hay otra foto.


Por si acaso, adjunto el listado de Matkad

Archivos adjuntos:
neyron.rar  114 kb
 
paralocus писал(а) >>

Bueno, ahí lo tienes. No hay muestra de entrenamiento, porque la muestra de entrenamiento es el vector X. Así que se puede dibujar en el gráfico, por supuesto, pero será una línea que cruza el gráfico en un ángulo de 45".

Se tiene un vector de entrenamiento de longitud n sobre el que el NS se entrena para reconocer sólo una muestra, n+1. Tenemos un conjunto de estadísticas N>100, que forman un conjunto de entrenamiento (más exactamente, un conjunto de ejemplos de cómo se entrenó NS) de longitud N muestras (no se trata de un vector de entrenamiento, sino de un conjunto de muestras, obtenidas a partir de la serie sinusal disponible, desplazándola una muestra hacia la derecha cada vez hasta N). Así, tenemos N valores para los que se entrenó el NS (son n+1 elementos de los vectores de entrenamiento) y también tenemos N valores de cómo los aprendió. Colócalos en los ejes de abscisas y ordenadas respectivamente y obtén la nube que caracteriza el proceso de aprendizaje. Está claro que esta nube no tendrá una pendiente de 45 grados. Se deduce del hecho de que el número de pesos de la malla - w es mucho menor que la longitud óptima del vector de entrenamiento P=w*w/d y, como consecuencia, el sistema de ecuaciones que NS resuelve para encontrar los pesos óptimos está sobredeterminado y tiene un número infinito de soluciones. Por lo tanto, se busca una aproximación que sea óptima en el sentido de minimizar el error de aprendizaje al cuadrado para todas las ecuaciones. Si la longitud del vector de entrenamiento fuera igual al número de pesos, se esperaría un aprendizaje del 100% de la red, pero esto no es óptimo en el sentido de la capacidad de la red para generalizar el conocimiento acumulado en el futuro y conduce a errores grandiosos en la muestra de prueba. Una cuadrícula correctamente entrenada mostrará el ángulo de inclinación de la muestra de entrenamiento cerca del ángulo de inclinación de la muestra de prueba en el diagrama de nubes. Por el contrario, una red sobreentrenada mostrará un ángulo de 45 grados para la nube de entrenamiento con una varianza insignificante y un ángulo cero con una varianza infinita para la nube de prueba. Este es exactamente el resultado que se obtiene si se intenta resolver un sistema de ecuaciones algebraicas lineales para un solo perseptrón con precisión. Ya lo he mencionado anteriormente. Esta es la razón por la que es muy conveniente usar un diagrama de nubes cuando se depura una red (lo que no se puede hacer en MQL).

El hecho de que su ángulo de inclinación cambie de experimento en experimento y llegue a ser incluso negativo, indica claramente que su chica está viviendo su vida secreta y no es entrenable. Necesitas una lobotomía :-)

P.D. Guarde los archivos cdjb con extensión *.mcd para 2001i MathCad, de lo contrario no puedo leerlos.

 
Aquí, guardado como *.mcd para Matcad12 y 11. No tengo ninguna otra opción para los archivos mcd.
Archivos adjuntos:
mathcad.rar  40 kb
 

Voy a echar un vistazo ahora.

Por cierto, así es como mi chica resuelve la serie de 5 senos:

Es un NS de dos capas con dos entradas válidas (sin contar el sesgo constante), k=2, que tiene 2 neuronas activadas no lineales en la capa oculta y una neurona lineal (sin función de activación) en la salida. La muestra de entrenamiento se muestra en rojo y la muestra de prueba (predicciones) se muestra en azul. Repetición del entrenamiento en cada muestra. Las estadísticas son 200 experimentos. Las tangentes de los ángulos se indican en el campo de trazado.

 

Hay muchas cosas en su código que no entendí por la bondad de mi corazón. Pero por lo que he logrado comprender, lo siguiente no se corresponde con mis ideas:

Debe tener exactamente la suma acumulada sobre todas las épocas de entrenamiento P por los cuadrados de las desviaciones S[k] . Lo que veo es sólo una reasignación de variables. No hay una inicialización de los pesos con números aleatorios.

Sigo sin entender qué subrutina introdujo method() y ranif() y dónde buscarla?

He simplificado un poco su código (ver archivo).

Archivos adjuntos:
modif1_4.zip  16 kb
 
Acabo de llegar al ordenador. Ese es el archivo equivocado para ti... en las prisas de la mañana para colocarlo. A continuación lo comento y pongo ranif() - es una función incorporada de Matcad - devuelve un vector de longitud especificada en el primer parámetro con números aleatorios uniformemente distribuidos en el rango entre el segundo y tercer parámetro.
 

Comentado ampliamente, corregido un par de errores en el camino

Esto es lo que dibuja:


Adjunto el archivo en tres formatos 11, 12 y 13 (*.xcmd)

Ahora estoy mirando sus correcciones... En realidad, debería haber mirado primero las correcciones antes de comentar... -:)

Lo que has escrito dos posts más arriba lo estoy pensando. Lo principal para mí es entender para que la "imagen" en mi cabeza formada, entonces voy a hacer todo.

Esa imagen hasta ahora no ha resultado ser del todo correcta: entendí mal lo de "aprender haciendo", y todavía no hay ninguna nueva.

Archivos adjuntos:
neyron_1.rar  197 kb
Razón de la queja: