Aprendizaje profundo
# Aprendizaje profundo

Aprendizaje profundo (en inglés, deep learning) es un conjunto de algoritmos de aprendizaje automático (en inglés, machine learning) que intenta modelar abstracciones de alto nivel en datos usando arquitecturas computacionales que admiten transformaciones no lineales múltiples e iterativas de datos expresados en forma matricial o tensorial.

El aprendizaje profundo es parte de un conjunto más amplio de métodos de aprendizaje automático basados en asimilar representaciones de datos. Una observación (por ejemplo, una imagen) puede ser representada en algunas formas (por ejemplo: un vector de píxeles), pero algunas representaciones hacen más fácil aprender tareas de interés (por ejemplo, "¿es esta imagen una cara humana?") sobre la base de ejemplos, y la investigación en esta área intenta definir qué representaciones son mejores y cómo crear modelos para reconocer estas representaciones.

Varias arquitecturas de aprendizaje profundo, como redes neuronales profundas, redes neuronales profundas convolucionales, y redes de creencia profundas, en especial transformadores, han sido aplicadas a campos como visión por computador, transformadores de visión, reconocimiento automático del habla, y reconocimiento de señales de audio y música, y han mostrado producir resultados de vanguardia en varias tareas.

## Definiciones

No existe una única definición de aprendizaje profundo. En general se trata de una clase de algoritmos ideados para el aprendizaje automático. A partir de este punto común, diferentes publicaciones se centran en distintas características, por ejemplo:

* Usar una cascada de capas con unidades de procesamiento no lineal para extraer y transformar variables. Cada capa usa la salida de la capa anterior como entrada. Los algoritmos pueden utilizar aprendizaje supervisado o aprendizaje no supervisado, y las aplicaciones incluyen modelización de datos y reconocimiento de patrones.
* Estar basados en el aprendizaje de múltiples niveles de características o representaciones de datos. Las características de más alto nivel se derivan de las características de nivel inferior para formar una representación jerárquica.
* Aprender múltiples niveles de representación que corresponden con diferentes niveles de abstracción. Estos niveles forman una jerarquía de conceptos.

Todas estas maneras de definir el aprendizaje profundo tienen en común: múltiples capas de procesamiento no lineal; y el aprendizaje supervisado o no supervisado de representaciones de características en cada capa. Las capas forman una jerarquía de características desde un nivel de abstracción más bajo a uno más alto.

Los algoritmos de aprendizaje profundo contrastan con los algoritmos de aprendizaje poco profundo por el número de transformaciones aplicadas a la señal mientras se propaga desde la capa de entrada a la capa de salida. Cada una de estas transformaciones incluye parámetros que se pueden formar como pesos y $umbrales^{:6}.$ No existe un estándar de facto para el número de transformaciones (o capas) que convierte a un algoritmo en profundo, pero la mayoría de investigadores en el campo considera que aprendizaje profundo implica más de dos transformaciones $intermedias^{:7}.$

## Computación en la nube

### Las GPU para procesamiento general

La computación de propósito general en unidades de procesamiento gráfico (GPGPU del inglés general-purpose computing on graphics processing units) permite ejecutar los algoritmos de formación y evaluación de los modelos de aprendizaje profundo. Debido a la naturaleza altamente paralelizable de estos problemas, la utilización de las GPGPU permite un aumento en el desempeño de varios órdenes de magnitud.

Los modelos basados en la arquitectura de redes neuronales convolucionales múltiples (CNN en inglés Multiple Convolutional Neural Network) se han propuesto en biología, por ejemplo para segmentación de glándulas en las imágenes de histología.

### Las GPU en la nube

Los grandes proveedores de servicios en la nube han comenzado a ofrecer servicios de infraestructura especializados para procesamiento con GPU. Nvidia se ha asociado con diversos proveedores para ofrecer dichos servicios, Amazon, Azure e IBM por nombrar algunos.

### Google Cloud y TensorFlow

Acompañando a su plataforma TensorFlow, Google introdujo la Machine Learning Platform, que provee servicios de aprendizaje automático modernos con modelos preformados y un servicio para generar modelos personalizables. A diferencia de los otros proveedores, se presenta como una alternativa PaaS más que un IaaS.

## Hardware

Desde la década de 2010, los avances tanto en los algoritmos de aprendizaje automático como en el hardware de la computadora han llevado a métodos más eficientes para formar redes neuronales profundas que contienen muchas capas de unidades ocultas no lineales y una capa de salida muy grande. Para 2019, las unidades de procesamiento gráfico (GPU), a menudo con mejoras específicas de IA, habían desplazado a las CPU como el método dominante para formar la IA en la nube comercial a gran escala.

OpenAI estimó el cálculo de hardware utilizado en los proyectos de aprendizaje profundo más grandes de AlexNet (2012) a AlphaZero (2017), y encontró un aumento de 300.000 veces en la cantidad de cálculo requerido, con una línea de tendencia de tiempo de duplicación de 3,4 meses.

