Tengo problemas para mejorar el rendimiento de mi red neuronal a medida que aumento el número de unidades, ¿cuál podría ser el problema?

Puede haber varios problemas aquí, debe tener en cuenta lo siguiente:

  1. Tasa de aprendizaje
  2. Épocas de aprendizaje
  3. Función de costo
  4. Arquitectura
  5. Conjunto de datos
  6. Regularización

Tal vez todo lo que necesita es establecer la tasa de aprendizaje correcta. A veces, la tasa de aprendizaje puede ser demasiado alta o demasiado baja. Sospecho que la tasa de aprendizaje es demasiado pequeña y el número de épocas de aprendizaje también puede ser el culpable. Aumente la tasa de aprendizaje y la cantidad de épocas de aprendizaje.

La función de costo debe ser apropiada para la tarea. La función de costo de entropía cruzada es buena para la mayoría de los problemas. Es importante tener en cuenta que algunas funciones de costo permiten un aprendizaje lento y, por lo tanto, necesita más iteraciones para tales funciones de costo.

La arquitectura neuronal también es importante, si tiene ReLU en algún lugar de su red, entonces puede tener aproximadamente el 40% de ellos muertos. Eso es aproximadamente el 40% de las ReLU que se eliminan del múltiple de datos y, por lo tanto, nunca se activarán ni aprenderán. Por lo tanto, elija sabiamente como las ReLU con fugas en su lugar.

El conjunto de datos puede no ser suficiente para la red más grande, por lo tanto, debe hacer un aumento de datos para aumentar el tamaño del conjunto de datos. El aumento de datos es importante para mejorar el rendimiento de la red neuronal.

Y, finalmente, debe mirar los métodos de regularización que está utilizando. Pruebe la regularización de L1 y L2, es posible que la red más grande solo tenga problemas de sobreajuste. También puede intentar la normalización por lotes o el abandono para mejorar el rendimiento.

Espero que esto ayude.

Todos los algoritmos de aprendizaje automático sufren de la compensación de desviaciones de sesgo anterior. Lo que le interesa es esa línea roja, ya que se supone que ML predice la muestra de prueba aka no vista

Por lo tanto, desea alcanzar ese “punto óptimo”, esa cruz mal dibujada, donde el error en la muestra de prueba es el más bajo. El modelo más complejo solo desperdicia su tiempo de cálculo.

La regresión lineal es probablemente la peor (si tiene 100 coeficientes.s para un conjunto de datos de entrenamiento de 100 puntos, el modelo se ajusta perfectamente, es decir, su modelo es inútil). NN de alguna manera parece hacerlo mejor al llevar el “punto óptimo” más a la derecha en el eje de complejidad del modelo. Pero, por supuesto, después de un rato golpeas la pared.

Sugiero hacer una validación cruzada en su conjunto de entrenamiento para encontrar la complejidad óptima del modelo. Validación cruzada (estadísticas)

En general, la formación de redes neuronales conduce a una compensación entre el sobreajuste y la complejidad del modelo. Si el modelo no es lo suficientemente potente, no representará correctamente el sistema. Sin embargo, si el modelo es muy complejo, especialmente con datos de entrenamiento limitados, entonces el riesgo de sobreajuste es alto.

Los ingenieros a menudo se enfrentan a una situación en la que tienen un sensor de entrada y un sensor de salida, con muy pocos datos sobre cómo el proceso intermedio afecta la señal. En este caso, un sistema de red neuronal simple puede proporcionar una señal proxy que predice el patrón del sensor de salida. Pero este enfoque no aclarará los impulsores del comportamiento del sistema (es decir, cómo reducimos o aumentamos el impacto según lo deseado).

Luego hay dos filosofías sobre cómo extraer el comportamiento, el enfoque empírico que utiliza PCA para seleccionar variables clave, y luego la regresión para ajustarlas. Esto puede ser útil a veces, pero generalmente proporciona detalles insuficientes para permitir que se controle el comportamiento. El segundo enfoque es decir que predecir el número tiene un valor bajo y que se requiere un nuevo modelo mecanicista.

En este caso, creamos un modelo mecanicista simplificado del sistema, a menudo basado en el modelado de eventos, por lo que ahora hay tres señales, sensores, red neuronal y modelo mecanicista. A veces también tenemos una señal basada en un simulador computacional, que utiliza varios supuestos simplificadores (por ejemplo, isotrópicos, etc.) para predecir la salida.

El punto clave aquí es que la red neuronal puede predecir resultados (es decir, seguir de cerca la señal), pero no dilucidar los controladores. Los simuladores tienden a seguir la escala de tiempo amplia, pero no el comportamiento detallado. El objetivo del modelo mecanicista no es calcular la amplitud de señal exacta, sino enfocarse en lograr un ajuste cercano a la forma de la señal, para explicar el comportamiento (es decir, por qué la señal sube y baja).

En esta situación, la complejidad del modelo mecanicista y su capacidad para modelar la dinámica se incrementa cuidadosamente, hasta que se obtiene un ajuste razonable.

Una vez que se completa este proceso, uno tiene el valor esperado del proxy y el estado de los controladores de los modelos mecanicistas. Al comparar estas tres señales, uno puede aislar eventos inesperados y mediar el comportamiento del sistema.

EDITAR: El modelo mecanicista generalmente combina linealmente expresiones relativamente simples a través de los componentes o escalas del dominio del problema en cada paso del evento, ya que el comportamiento del sistema altamente complejo a menudo es impulsado más por la dinámica de las interacciones (es decir, cómo se suman los eventos) que el valor absoluto de cualquier componente.

Aumentar el número de unidades significa aumentar la capacidad de su modelo, y aumentar la capacidad puede llevar a veces a un ajuste excesivo (error de entrenamiento bajo, error de prueba alto). Sugiero que debe profundizar con su modelo, lo que significa agregar más capas a su red neuronal. También sugiero normalizar sus entradas y salidas, consulte: Escalado de características y ¿Cómo ayuda la normalización de datos en Machine Learning?

Bueno, si el aumento del ancho de una capa en un NN debería ayudar o no, depende del conjunto de datos y de la naturaleza de la arquitectura NN por encima y por debajo de la capa. Nuestro reciente documento CVPR desarrolla un algoritmo sobre algunos análisis estadísticos realizados en cada capa, y este análisis debería ayudarlo a comprender la funcionalidad NN para su conjunto de datos. Se puede acceder al documento en http://arxiv.org/pdf/1604.06832.pdf !!

Los casos más probables son:

  1. No se capacita lo suficiente para la capacidad de red adicional. Asegúrese de entrenar hasta que vea el error en el aumento de los datos de prueba y continúe aumentando. El punto de inflexión identificó la época para detener el entrenamiento.
  2. Sobreentrenamiento, dado que la capacidad de red adicional ahora es capaz de “memorizar” las respuestas en lugar de generalizar. Intenta agregar abandono.

More Interesting

¿Cuál es la ventaja de tener en cuenta la curvatura al optimizar las redes neuronales profundas?

Andrew Ng: ¿Qué opinas de AlphaGo?

¿Qué significa el impulso en las redes neuronales?

Si hoy existiera una computadora cuántica, ¿qué pasaría con la IA / aprendizaje automático / aprendizaje profundo? ¿En qué se traduciría esto para las empresas / industrias?

¿Qué son los núcleos en aprendizaje automático y SVM y por qué los necesitamos?

Mi algoritmo de ML, escrito en Python, está casi completo. Quiero que sea un sitio web. ¿Cuál es la mejor manera de conectar mi script Python a Meteor?

¿Cuál es la diferencia clave entre backprop y backprop truncado a través del tiempo?

¿Existe una brecha entre las estadísticas y las comunidades de aprendizaje automático? Si es así, ¿por qué?

¿Cuáles son las principales conferencias sobre inteligencia artificial, procesamiento del lenguaje natural y aprendizaje automático?

¿Qué hay de nuevo con Wasserstein GAN?

¿Cuál es un buen sitio de contestación de preguntas sobre IA y aprendizaje automático aparte de Quora? Los relacionados con Stack Exchange son bastante malos. Las personas están más centradas en los puntos y formatos en lugar de dar una respuesta adecuada.

¿Cuál es una buena forma de buscar artículos en visión artificial y aprendizaje automático?

¿Cómo se hacen análisis de datos, estadísticas y aprendizaje automático en big data?

Cómo detectar regiones de texto solo de documentos escaneados

¿Cuáles son los algoritmos principales detrás de Google Translate?