"New Neural" es un proyecto de motor de red neuronal de código abierto para la plataforma MetaTrader 5. - página 39
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Construimos redes de base radial?
tienen un fuerte error, mientras que aprenden rápidamente, predicen mal en datos desconocidos.
Curso general (desde http://www.intuit.ru/department/expert/neuro/ tienes que registrarte allí, si no quieres registrarte - nickname es Nic_Touch pas zdraste01 )
Conferencias http://www.softcraft.ru/neuro/ni/p00.shtml
Ejemplos de mapeo http://www.statsoft.ru/home/products/version6/snn.htm
Libros sobre modelos y métodos de formación
u - entrada del activador
y - factor de potencia adicional.
Siempre que haya un exponente, se debe evitar calcular exponentes de números positivos para evitar obtener números grandes que superen los 32 bits. Por ejemplo, para calcular sigma es mejor hacer lo siguiente
doble x = -y*u;
doble e=exp(-|x|);
if(x<=0) return(1./(1.+e))
if(x>0)return(e/(1.+e));
Estas fórmulas se derivan de manera muy sencilla. Si el argumento del exponente es negativo, dejamos la fórmula sin modificar. Si es positivo, multiplicamos el numerador y el denominador por el exponente del mismo argumento, pero con signo negativo.
Siempre que haya un exponente, se debe evitar calcular exponentes de números positivos para evitar obtener números grandes que superen los 32 bits. Por ejemplo, el cálculo de sigma es mejor de esta manera
doble x = -y*u;
doble e=exp(-|x|);
if(x<=0) return(1./(1.+e))
if(x>0)return(e/(1.+e));
Estas fórmulas se derivan de manera muy sencilla. Si el argumento del exponente es negativo, dejamos la fórmula sin modificar. Si es positivo, multiplicamos el numerador y el denominador por el exponente del mismo argumento, pero con signo negativo.
Curiosamente el sigmoide en sí mismo funciona correctamente incluso con grandes entradas negativas, pero la función hipertangente falla, así que he añadido un desplazamiento sigmoide además de los algoritmos clásicos. La función funciona en el mismo límite que la hipertangente, pero es más rápida y no tiene problemas de #IND.
Del mismo modo, con el ajuste del ángulo de ataque (para valores pequeños del coeficiente y) la hipertangente no llega a -1;1, la sigmoide desplazada no tiene esos problemas.
En general, que quiere finalizar hipertangente, pero creo que la función es poco prometedor, no sólo que tengo que guardar el resultado debido a que el exponente se utiliza dos veces, por lo que todavía necesita controles, además de los problemas con el fracaso para llegar a los límites cuando se ajusta el ataque.
Mi conclusión es que la hipertangente no sirve, la sigmoide desplazada manda.
Mi conclusión es que la hipertangente no sirve, la sigmoide desplazada manda.
...secundado.
Es posible realizar una implementación más sencilla de la sigmoidea en el límite [-1;1]
pero esta implementación también tiene un problema con #IND, así que es mejor añadir un par de operaciones sencillas que escribir numerosas comprobaciones
aquí añadimos + - / , así que 3 operaciones extra frente a un montón de comprobaciones
Esta es la mejor opción, tanto por la facilidad del rango de trabajo [-1;1] como por la rapidez de la operación. El área de definición es toda la línea numérica.
Esta es exactamente la función de activación que he estado utilizando últimamente, después de haber probado muchas alternativas y comprobar su velocidad de ejecución.
Y tengo este como mi favorito en la parrilla de eco:
Por cierto.
Se necesita una función sigmoidea.
Los requisitos son una forma normal de la propia función y su derivada (no muy difícil de calcular) y una forma normal de la función inversa y su derivada.