Impulsar redes neuronales

21

Hace poco, estaba trabajando en el aprendizaje de algoritmos de refuerzo, como adaboost, aumento de gradiente, y he sabido que el árbol de aprendizaje débil más utilizado es el árbol. Realmente quiero saber si hay algunos ejemplos recientes exitosos (me refiero a algunos artículos o artículos) para usar redes neuronales como aprendiz base.

usuario4380802
fuente
Esta podría ser una lectura interesante para usted: arxiv.org/pdf/1706.04964.pdf
Daniel

Respuestas:

8

Al impulsar, los clasificadores débiles o inestables se utilizan como aprendices básicos. Este es el caso porque el objetivo es generar límites de decisión que sean considerablemente diferentes. Entonces, un buen aprendiz base es uno que está muy sesgado, en otras palabras, el resultado sigue siendo básicamente el mismo, incluso cuando los parámetros de entrenamiento para los aprendices base cambian ligeramente.

En las redes neuronales, el abandono es una técnica de regularización que se puede comparar con los conjuntos de entrenamiento. La diferencia es que el ensamblaje se realiza en el espacio latente (existen o no neuronas), lo que disminuye el error de generalización.

"Por lo tanto, cada ejemplo de entrenamiento se puede considerar como un gradiente para una arquitectura diferente, muestreada al azar, de modo que la red neuronal final represente eficientemente un gran conjunto de redes neuronales, con una buena capacidad de generalización", citando desde aquí .

Existen dos técnicas de este tipo: en el abandono, las neuronas se eliminan (lo que significa que las neuronas existen o no con una cierta probabilidad), mientras que en el dropconnect se eliminan los pesos.

Ahora, para responder a su pregunta, creo que las redes neuronales (o perceptrones) no se utilizan como aprendices básicos en una configuración de impulso, ya que son más lentas para entrenar (solo toma demasiado tiempo) y los alumnos no son tan débiles, aunque podrían estar configurado para ser más inestable. Entonces, no vale la pena el esfuerzo.

Puede haber habido investigaciones sobre este tema, sin embargo, es una pena que las ideas que no funcionan bien generalmente no se publiquen con éxito. Necesitamos más investigación que cubra las vías que no conducen a ninguna parte, también conocido como "no te molestes en probar esto".

EDITAR:

Aunque tenía un poco más de información sobre esto y si está interesado en conjuntos de redes grandes, entonces podría estar refiriéndose a métodos para combinar las salidas de múltiples redes de este tipo. La mayoría de las personas promedia o usa el voto mayoritario según la tarea; esto podría no ser óptimo. Creo que debería ser posible cambiar los pesos para la salida de cada red de acuerdo con el error en un registro particular. Cuanto menos correlacionados sean los resultados, mejor será su regla de ensamblaje.

shuriken x azul
fuente
2

Veo que esto no tiene una respuesta aceptada, así que daré una respuesta muy heurística. Sí, está hecho ... por ejemplo, está disponible en JMP Pro (probablemente el mejor paquete de estadísticas del que nunca haya oído hablar). http://www.jmp.com/support/help/Overview_of_Neural_Networks.shtml

Hay una descripción en el medio de la página de para qué se utiliza. No he puesto ningún ciclo en la investigación de la teoría, pero parece que están implicando que logra esencialmente los mismos resultados que usar más nodos en un solo modelo más grande. La ventaja [afirman] está en la velocidad de ajuste del modelo.

Solo para un indicador muy aproximado, lo comparé en un conjunto de datos que tengo con 2 nodos sigmoides y 2 nodos gaussianos y potenciando el modelo 6x contra 12 nodos sigmoides y 12 nodos gaussianos en un solo modelo y los resultados fueron prácticamente idénticos en mi conjunto de datos de prueba .

Tampoco noté ninguna diferencia de velocidad ... pero el conjunto de datos es de solo 1600 puntos y solo estoy usando 12 variables, por lo que en un conjunto de datos más grande con más variables puede ser cierto que hay una diferencia de cálculo notable.

JPJ
fuente