miércoles, 4 de enero de 2017

Dos definiciones y alguna duda sobre Deep Learning Neural Networks

Es lo que tiene el 'buzzword' o cuando el marketing se mezcla en exceso con la tecnología... que al final es muy difícil saber de qué estamos hablando exactamente.

En busca de entender el concepto exacto (suponiendo que exista esa presunta exactitud) de 'Deep Learning' y su relación con las redes neuronales me encuentro en el libro 'Deep Learning Neural Networks' de Daniel Graupe dos definiciones. Una que la aporta el propio autor y que nos dice:

Deep Learning Neural networks (DLNNs) may be defined as neural network architectures that can facilitate deep learning, retrieval and analysis of data that is deeply buried in input information and not otherwise easily retrievable.

Y otra que atribuye a Dong y Yu en una publicación de 2014 y que reza:

DLNNs are a class of machine learning techniques that exploit many layers of nonlinear information processing for supervised and unsupervised feature extraction and transformation and for pattern analysis and classification.

Ninguna es del todo clarificadora, pero entre ambas parecen deducirse los siguientes elementos:

  • Son un subconjunto dentro de las redes neuronales
  • ... y un subconjunto dentro de las técnicas de machine learning
  • Se aplican en problemas complejos difícilmente atacables por otras vías
  • Se usan para extraer información en el sentido de reconocimiento y clasificación de patrones
  • Utilizan algoritmos no lineales
  • Aparentemente, tiene muchas capas (¿de ahí lo de 'deep'?)



En otras fuentes he oído cosas como que:
  • Deep learning no es más que un nuevo nombre, algo así como un 'rebranding', para el concepto de red neuronal
  • La diferencia entre el Deep learning y el machine learning es que en machine learning se entrena a los algoritmos mientras que en Deep learning aprenden por sí mismos

Está claro que todas estas afirmaciones no pueden ser ciertas al mismo tiempo. 

Por ejemplo, hay arquitecturas de redes neuronales que funcionan con entrenamiento y otras aprenden solas, luego según la última afirmación, unas serían técnicas de machine learning y otras de deep learning... pero entonces no puede ser Deep Learning un sinónimo de red neuronal.

Por otro lado, parece a priori muy restrictivo pensar que las redes neuronales usadas en Deep Learning sólo se utilicen para reconocer patrones

Esta figura, de NVIDIA parece sugerir un Deep Learning con entrenamiento




En fin, que la idea es muy interesante y prometedora, y las soluciones aún más...pero quizá se necesite un poco de dedicación adicional el cerrar el concepto con rigor y exactitud.