¿Aprendizaje profundo para tareas sin imagen y sin PNL?


12

Hasta ahora hay muchas aplicaciones interesantes para el aprendizaje profundo en visión por computadora o procesamiento de lenguaje natural.

¿Cómo es en otros campos más tradicionales? Por ejemplo, tengo variables sociodemográficas tradicionales además de muchas mediciones de laboratorio y quiero predecir una determinada enfermedad. ¿Sería esta una aplicación de aprendizaje profundo si tengo muchas observaciones? ¿Cómo construiría una red aquí, creo que todas las capas elegantes (convolucionales, etc.) no son realmente necesarias? Solo hazlo profundo?

En mi conjunto de datos específico, probé algunos algoritmos comunes de aprendizaje automático, como bosques aleatorios, gbm, etc., con resultados mixtos con respecto a la precisión. Tengo una experiencia limitada de aprendizaje profundo con reconocimiento de imágenes.


1
Puede que sea mejor mirar un enfoque diferente, por ejemplo, XGBoost, dependiendo de cuánto son "muchas observaciones". ¿Puede aclarar si su objetivo es tratar específicamente los enfoques de aprendizaje profundo u obtener la mejor precisión?
Neil Slater

@NeilSlater mi objetivo sería lograr una mayor precisión que los métodos establecidos como xgboost, si eso es posible en ese caso
spore234

1
Es posible, pero en mi experiencia no es probable a menos que realmente tenga muchos datos.
Neil Slater

Matlab proporciona documentación sobre "Consejos y trucos de aprendizaje profundo". Tenía la misma pregunta y la página proporcionó una guía muy útil junto con buenos ejemplos. por ejemplo, puede necesitar secuencia / secuencia / serie de tiempo clasificación / regresión usando aprendizaje profundo.
Sami Navesi

Respuestas:


10

Sí, puede utilizar técnicas de aprendizaje profundo para procesar datos que no son de imagen. Sin embargo, otras clases de modelos siguen siendo muy competitivas con las redes neuronales fuera del procesamiento de señales y tareas relacionadas.

Para utilizar enfoques de aprendizaje profundo en datos sin señal / sin secuencia, generalmente se usa una red de múltiples capas de alimentación directa. No hay necesidad de capas convolucionales o capas de agrupación. La mejor arquitectura aparte de eso necesita ser explorada con validación cruzada, y puede llevar mucho tiempo descubrirla, ya que los NN profundos requieren mucho cálculo para entrenarse.

En mi experiencia, intentar usar redes neuronales profundas (-ish, típicamente ~ 5 capas) en las competencias de Kaggle:

  • La deserción sigue siendo altamente efectiva para la regularización y mejorar la precisión

  • Normalización de entrada: generalmente significa 0, desviación estándar 1, es importante

  • Las funciones de activación de capa oculta pueden marcar la diferencia. Aunque ReLU reduce algunos problemas con gradientes que desaparecen, en mi experiencia es menos robusto con datos sin señal y querrás alguna otra forma. Si solo tiene unas pocas capas, sigmoid o tanh aún funcionan bien. De lo contrario, busque ReLU, PReLU, ELU y otras variantes de ReLU con fugas que intenten reparar sus problemas con neuronas "muertas".

  • Utilice optimizadores diseñados para el aprendizaje profundo, como Adam, Adagrad o RMSProp

  • Use un enfoque de inicialización de peso que funcione con el aprendizaje profundo, como Glorot.

  • Considere usar capas de normalización de lotes. No es algo con lo que tenga mucha experiencia, pero he visto a otras personas hacerlo bien con este enfoque.

A pesar de todo esto, XGBoost puede vencer rutinaria y fácilmente NN profundas con un mínimo esfuerzo de ajuste y entrenamiento en comparación (dependiendo, por supuesto, del problema y los datos que tenga). Sin embargo, si la precisión lo es todo para usted, es posible, aunque no está garantizado, que un conjunto de NN profundos y otro modelo como XGBoost funcione mejor que cualquiera de los dos.


1

Una red puede ser apropiada para fines de clasificación. Para esto, debe poder definir un conjunto de entrenamiento y un conjunto de prueba de sus datos que represente los datos que se le pedirá a la red que clasifique en producción. Esto determina si puede obtener una red de trabajo mala, razonable o buena.

Considero que los términos "aprendizaje profundo" son engañosos: una red no aprende, solo se puede entrenar.

Suponiendo que puede crear un conjunto de entrenamiento y prueba, en un nivel alto puede usar un

  • Multicapa: si sus datos no tienen orden y las estructuras tienen una posición fija.

  • Redes recursivas: si el orden de los datos es importante para la clasificación

  • Convolución: si sus datos tienen estructuras como en las imágenes pero no hay una posición fija.

Obtener una buena configuración, como el número de capas, requiere prueba y error; Es una especie de magia negra.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.