una redes reconocimiento paso neuronales neuronal libreria implementacion imagenes hacer ejemplos con como machine-learning neural-network deep-learning

machine learning - redes - Cómo determinar el número de capas y nodos de una red neuronal



redes neuronales python pdf (3)

Actualmente estoy construyendo un nn para un conjunto de datos con 387 características y 3000 muestras. Las salidas son 3 clases. Configuré la estructura de la red de la siguiente manera:

entrada-> 200 -> {300-> 100} -> 50-> salida

¿Elegí el número correcto de nodos y capas? ¿Cómo determinar el número de nodos de cada capa (entrada, oculto y salida)? ¿Hay alguna regla?


Capas

Como señala Yoshua Bengio, Director del Instituto de Montreal para los Algoritmos de Aprendizaje:

"Muy simple. Solo siga agregando capas hasta que el error de prueba no mejore más".

Un método recomendado por Geoff Hinton es agregar capas hasta que comiences a adaptar tu conjunto de entrenamiento. Luego agregas abandono u otro método de regularización.

Nodos

Para su tarea:

  • La capa de entrada debe contener 387 nodos para cada una de las entidades.
  • La capa de salida debe contener 3 nodos para cada clase.
  • Las capas ocultas que encuentro disminuyen gradualmente el número de neuronas dentro de cada capa que funciona bastante bien ( esta lista de consejos y trucos concuerda con esto cuando se crean codificadores automáticos para tareas de compresión). Tal vez intente 200 en la primera capa oculta y 100 en la segunda; Una vez más, es un hiper-parámetro para ser optimizado y depende mucho del tamaño del conjunto de datos.

¿Reglas? Tantas como quieras y ninguna. Aquí hay un extracto de las Preguntas Frecuentes de la Red Neural que es una buena página para consultar sobre preguntas básicas:

  1. A: ¿Cuántas unidades ocultas debo usar? ==========================================

    No hay forma de determinar una buena topología de red solo a partir del número de entradas y salidas. Depende críticamente de la cantidad de ejemplos de entrenamiento y la complejidad de la clasificación que está tratando de aprender. Hay problemas con una entrada y una salida que requieren millones de unidades ocultas, y problemas con un millón de entradas y un millón de salidas que requieren solo una unidad oculta, o ninguna.
    Algunos libros y artículos ofrecen "reglas básicas" para elegir una topopología (Ninputs más Noutputs divididos por dos, quizás con una raíz cuadrada en alguna parte), pero esas reglas son basura total . Otras reglas se relacionan con la cantidad de ejemplos disponibles: Use a lo sumo tantas unidades ocultas que la cantidad de pesos en la red multiplicada por 10 sea menor que la cantidad de ejemplos. Dichas reglas solo se refieren al sobreajuste y tampoco son confiables.

Sin embargo, en su caso, definitivamente se puede decir que la red es demasiado compleja (incluso si aplicó una regularización fuerte). ¿Por qué tantas capas ocultas? Comience con una capa oculta, a pesar de la profunda euforia de aprendizaje, y con un mínimo de nodos ocultos. Aumente el número de nodos ocultos hasta que obtenga un buen rendimiento. Sólo si no me gustaría añadir más capas. Además, utilice la validación cruzada y la regularización adecuada.


Como dijeron, no existe una regla "mágica" para calcular el número de capas y nodos ocultos de la red neuronal, pero hay algunos consejos o recomendaciones que pueden ayudarlo a encontrar los mejores.

El número de nodos ocultos se basa en una relación entre:

  • Número de nodos de entrada y salida
  • Cantidad de datos de entrenamiento disponibles
  • Complejidad de la función que se está tratando de aprender.
  • El algoritmo de entrenamiento.

Para minimizar el error y tener una red capacitada que generalice bien, debe elegir un número óptimo de capas ocultas, así como nodos en cada capa oculta.

  • Muy pocos nodos provocarán un alto error en su sistema, ya que los factores predictivos pueden ser demasiado complejos para que un pequeño número de nodos los capture

  • Demasiados nodos se adaptarán a tus datos de entrenamiento y no se generalizarán bien

Puede encontrar algunos consejos generales en esta página:

Sección - ¿Cuántas unidades ocultas debo usar?

Si sus datos son linealmente separables, entonces no necesita ninguna capa oculta. De lo contrario, existe un consenso sobre la diferencia de rendimiento al agregar capas ocultas adicionales: las situaciones en las que el rendimiento mejora con una segunda (o tercera, etc.) capa oculta son muy pequeñas. Por lo tanto, una capa oculta es suficiente para la gran mayoría de los problemas.

Existen algunas reglas empíricas derivadas, de las cuales se confía con mayor frecuencia es que "el tamaño óptimo de la capa oculta suele estar entre el tamaño de la entrada y el tamaño de las capas de salida".

En resumen, para la mayoría de los problemas, uno podría obtener un rendimiento decente al configurar la configuración de la capa oculta utilizando solo dos reglas:

  • El número de capas ocultas es igual a uno
  • El número de neuronas en esa capa es la media de las neuronas en las capas de entrada y salida.