2012-06-25 5 views
5

He estado investigando algunas redes neuronales y el concepto y la teoría en general tienen sentido para mí. Aunque la única pregunta que sobresale, a la que todavía no he podido encontrar una respuesta, es cuántas neuronas deberían usarse en una red neuronal. para lograr resultados correctos/eficientes. Incluyendo capas ocultas, neuronas por capa oculta, etc. ¿Se necesitan más neuronas para obtener resultados más precisos (mientras se gravan más en el sistema) o habrá menos neuronas siendo suficientes? ¿Existe algún tipo de regla de gobierno para ayudar a determinar esos números? ¿Depende del tipo de algoritmo de entrenamiento/aprendizaje que se está implementando en la red neuronal? ¿Depende del tipo de datos/entrada que se presenta a la red?Determinación de la cantidad adecuada de neuronas para una red neuronal

Si hace que sea más fácil responder a las preguntas, lo más probable es que use feedforwarding y backpropogation como el método principal de entrenamiento y predicción.

En una nota lateral, ¿hay un algoritmo de predicción/regla de disparo o algoritmo de aprendizaje que generalmente se califica como "el mejor/más práctico" o depende también del tipo de datos que se presentan a la red?

Gracias a cualquier persona con cualquier aporte, siempre se agradece!

EDITAR: Con respecto a la etiqueta C#, ese es el idioma en el que voy a armar mi red neuronal. Si esa información ayuda en absoluto.

+0

* Si puedes imaginar un libro completo que responda a tu pregunta, estás pidiendo demasiado. * Http://stackoverflow.com/faq#dontask Además, no veo cómo esto tiene nada que ver con C#. –

+2

Ver http://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw –

+0

@ 0xA3, genial enlazar. Esta pregunta puede no ser lo suficientemente específica para SO, pero solo algunas reflexiones: el tamaño de la red neuronal viene dictado por la complejidad de la función o clasificador que representan. Además, sí, es posible tener demasiadas neuronas: en la clasificación puede conducir a un ajuste excesivo y a la pérdida de un modelo generalizado. – nicholas

Respuesta

2

Me especialicé en AI/NN en la universidad, y he tenido bastante experiencia trabajando en ellos para juegos, y esto es lo que encontré como una guía para comenzar. Tenga en cuenta, sin embargo, que cada NN tendrá algunos ajustes para que funcionen mejor en su entorno elegido. (Una posible solución es exponer su programa a 1000 de NN diferentes, configurar un criterio comprobable para el rendimiento y luego usar un algoritmo genético para propagar NN más útiles y descartar NN menos útiles, pero esa es otra publicación muy grande ...)

I encontrados - en general

  • capa de entrada - Una AN para cada vector de entrada + 1 Bias (siempre 1)
  • capa interior - Doble la capa de entrada
  • Capa
  • salida - Una AN para cada acción o el resultado

Ejemplo: reconocimiento de caracteres

  • Si está examinando una cuadrícula de 10x10 para el reconocimiento de caracteres;
  • comienzo con 101 de entrada AN (una para cada píxel, más un sesgo)
  • 202 interno de una
  • y 26 de salida AN (una para cada letra del alfabeto)

Ejemplo: Blackjack

  • Si está creando un NN para "ganar en el blackjack";
  • comienzo con 16 de entrada AN (13 a contar cada ocurrencia de una tarjeta, 1 para el valor de la mano del jugador, 1 para el distribuidor "arriba-tarjeta", y el 1 de sesgo)
  • 32 al interno de una
  • y 6 de salida AN (una para "Hit" "Stay" "Split" "doble" "entrega" y "de seguros")
+0

Tengo una exposición muy limitada a NN hasta el momento, así que disculpe si esta pregunta es muy básica; pero, ¿a qué te refieres con una capa interna de Bias? ¿Una capa oculta que tiene algún sesgo? ¿Y a qué 'valor' está configurada la capa de polarización? También estoy en lo cierto al asumir capa interna = capa oculta? – RaiderNation

+1

Disculpe por la confusión, por "sesgo" me refiero a una única AN, en la capa de entrada que siempre se establece en 1. No es necesario sesgo en las capas internas o de salida. (SO formateé mi publicación de forma diferente a lo que hice, por lo que las líneas se juntaron cuando no deberían tener = p) Entonces, la Neurona Artificial de Blas alimenta siempre con un "1" a la Capa Interna, como si fuera una AN normal "atrapada" en." – EtherDragon

+0

Por lo tanto, establecer la neurona de entrada de polarización como '1' generalmente será favorable, independientemente del tipo de entrada que se alimenta a la capa de entrada? Por ejemplo, ¿no son diferentes los tipos de entrada para el reconocimiento de caracteres y BlackJack? ¡Gracias de nuevo! – RaiderNation

0

Algunos reglas generales son los siguientes basan en este documento: 'Aproximación del número de neuronas de la capa oculta en Multiple Hidden Layer BPNN Architecture 'por Saurabh Karsoliya.

  • El número de neuronas de la capa oculta son 2/3 (o 70% a 90%) del tamaño de la capa de entrada. Si esto es insuficiente, entonces el número de neuronas de capa de salida puede agregarse más adelante.
  • El número de neuronas de capa oculta debe ser menor que que el doble de la cantidad de neuronas en la capa de entrada.
  • El tamaño de las neuronas de la capa oculta se encuentra entre el tamaño de la capa de entrada y el tamaño de la capa de salida.
Cuestiones relacionadas