Capitulo 1
Capitulo 1
“Deep Learning”
Capítulo 1: Introducción
Los inventores siempre han soñado con crear máquinas que piensen. Este deseo data y se
remonta al menos a la época de la antigua Grecia. Las figuras míticas Pigmalión, Dédalo y Hefesto
pueden interpretarse como inventores legendarios, y Galatea, Talos y Pandora pueden
considerarse vida artificial (Ovid y Martin, 2004; Sparkes, 1996; Tandy, 1997).
Cuando se concibieron por primera vez las computadoras programables, la gente se preguntaba
si podrían volverse inteligentes, más de cien años antes de que se construyera uno (Lovelace,
1842). Hoy en día, la inteligencia artificial (IA) es un campo próspero con muchas aplicaciones
prácticas y temas de investigación activos. Buscamos software inteligente para automatizar
trabajo de rutina, comprender el habla o las imágenes, hacer diagnósticos en medicina y apoyar
la investigación científica básica.
Este libro trata sobre una solución a estos problemas más intuitivos. Esta solución es permitir
que las computadoras aprendan de la experiencia y comprendan el mundo en términos de
jerarquía de conceptos, con cada concepto definido en términos de su relación con conceptos
simples. Al recopilar conocimientos de la experiencia, este enfoque evita la necesidad que los
operadores humanos especifiquen formalmente todo el conocimiento que la computadora
necesita. La jerarquía de conceptos permite que la computadora aprenda conceptos
complicados construyéndolos a partir de otros más simples. Si dibujamos un grafo que muestre
cómo estos conceptos se construyen uno encima del otro, el grafo es profundo, con muchas
capas. Por esta razón, llamamos a este enfoque aprendizaje profundo de IA.
Irónicamente, las tareas abstractas y formales que se encuentran entre las más difíciles
empresas para un ser humano se encuentran entre las más fáciles para una computadora. Los
ordenadores durante mucho tiempo han podido derrotar incluso al mejor jugador de ajedrez
humano, pero solo recientemente han igualado algunas de las habilidades promedio de los seres
humanos para reconocer objetos o habla. La vida cotidiana de una persona requiere una
inmensa cantidad de conocimientos acerca del mundo. Gran parte de este conocimiento es
subjetivo e intuitivo y, por tanto, difícil de articular de manera formal. Las computadoras
necesitan capturar este mismo conocimiento para poder comportarse de manera inteligente.
Uno de los desafíos clave en la inteligencia artificial es cómo introducir este conocimiento
informal en una computadora.
Varios proyectos de inteligencia artificial han buscado codificar el conocimiento sobre el mundo
en lenguajes formales. Una computadora puede razonar sobre declaraciones en estos lenguajes
formales utilizando automáticamente reglas de inferencia lógica. Esto se conoce como enfoque
basado en conocimientos para la inteligencia artificial. Ninguno de estos proyectos ha llevado a
un éxito mayor. Uno de los proyectos más famosos es Cyc (Lenat y Guha, 1989). Cyc es un motor
de inferencia y una base de datos de declaraciones en un lenguaje llamado CycL. Estas
declaraciones son ingresadas por un equipo de supervisores humanos. Es un proceso difícil de
manejar. La gente lucha por diseñar reglas formales con suficiente complejidad para describir
con precisión el mundo. Por ejemplo, Cyc no entendió una historia sobre una persona llamada
Fred que se afeita por la mañana (Linde, 1992). Su motor de inferencia detectó una
inconsistencia en la historia: sabía que la gente no tiene partes eléctricas, pero como Fred
sostenía una maquinilla de afeitar eléctrica, creía que la entidad "FredWhileShaving" contenía
piezas eléctricas. Por tanto, preguntó si Fred seguía siendo una persona mientras se afeitaba.
Las dificultades que enfrentan los sistemas que se basan en el conocimiento codificado sugieren
que los sistemas de IA necesitan la capacidad de adquirir su propio conocimiento mediante la
extracción de patrones a partir de datos en bruto. Esta capacidad se conoce como aprendizaje
automático. La introducción del aprendizaje automático permitió a las computadoras abordar
problemas relacionados con el conocimiento del mundo real y tomar decisiones que parecen
subjetivas. Un algoritmo simple de aprendizaje de máquina llamado regresión logística puede
determinar si recomendar parto por cesárea (Mor-Yosef et al., 1990). Un algoritmo de
aprendizaje automático simple llamado naive Bayes puede separar el correo electrónico
legítimo del correo no deseado.
Sin embargo, para muchas tareas, es difícil saber qué características se deben extraer. Por
ejemplo, suponga que nos gustaría escribir un programa para detectar automóviles en
fotografías. Sabemos que los coches tienen ruedas, por lo que nos gustaría aprovechar la
presencia de una rueda como característica. Desafortunadamente, es difícil describir
exactamente como la rueda se ve en términos de valores de píxeles. Una rueda tiene una forma
geométrica simple pero su imagen puede verse complicada por las sombras que caen sobre la
rueda, el sol deslumbrando en las partes metálicas de la rueda, el guardabarros del automóvil o
un objeto en primer plano oscureciendo parte de la rueda, y así sucesivamente.
Figura 1.1: Ejemplo de diferentes representaciones: supongamos que queremos separar dos categorías de datos
trazando una línea entre ellas en un diagrama de dispersión. En la trama de la izquierda, representamos algunos datos
usando coordenadas cartesianas, y la tarea es imposible. En la trama de la derecha, representamos los datos con
coordenadas polares y la tarea se vuelve sencilla y se resuelve con una línea vertical. (Figura producida en
colaboración con David Warde-Farley)
Una solución a este problema es utilizar el aprendizaje automático para descubrir no solo el
mapeo de la representación de la salida, sino también la propia representación. Este enfoque se
conoce como aprendizaje de representación. Representaciones aprendidas a menudo dan como
resultado un rendimiento mucho mejor que el que se puede obtener con representaciones
diseñadas a mano. También permiten que los sistemas de IA se adapten rápidamente a nuevas
tareas, con mínima intervención humana. Un algoritmo de aprendizaje de representación puede
descubrir un buen conjunto de características para una tarea simple en minutos, o una tarea
compleja de horas a meses. El diseño manual de características para una tarea compleja
requiere una gran cantidad de tiempo y esfuerzo humano; puede llevar décadas para toda una
comunidad de investigadores.
hacer que la nueva representación tenga varias propiedades agradables. Los diferentes tipos de
codificadores automáticos tienen como objetivo lograr diferentes tipos de propiedades.
Una fuente importante de dificultad en muchas aplicaciones de inteligencia artificial del mundo
real es que muchos de los factores de variación influyen en cada dato que tenemos capaz de
observar. Los píxeles individuales en una imagen de un automóvil rojo pueden estar muy cerca
de negro por la noche. La forma de la silueta del automóvil depende del ángulo de visión. La
mayoría de las aplicaciones requieren que los factores de variación desenreden y descarten los
que no nos importan.
Por supuesto, puede ser muy difícil extraer características abstractas de tan alto nivel a partir de
datos en bruto. Muchos de estos factores de variación, como el acento de un hablante, pueden
identificarse sólo mediante una comprensión sofisticada, casi a nivel humano, de los datos.
Cuando es casi tan difícil obtener una representación como resolver el problema original, el
aprendizaje de la representación no parece, a primera vista, ayudarnos.
La idea de aprender la representación correcta de los datos proporciona una perspectiva sobre
el aprendizaje profundo. Otra perspectiva sobre el aprendizaje profundo es que la profundidad
permite a la computadora aprender un programa de computadora de varios pasos. Cada capa
de la representación se puede considerar como el estado de la memoria de la computadora
después de ejecutar otro conjunto de instrucciones en paralelo. Las redes con mayor
profundidad pueden ejecutar más instrucciones en secuencia. Las instrucciones secuenciales
ofrecen un gran poder porque las instrucciones más tardías pueden referirse a los resultados de
instrucciones anteriores. Según esta visión del aprendizaje profundo, no toda la información en
las activaciones de una capa necesariamente codifica factores de variación que explican la
entrada. La representación también almacena el estado de la información que ayuda a ejecutar
un programa que puede dar sentido a la entrada. Este estado de información podría ser análoga
a un contador o un puntero en un programa de computadora. No tiene nada que ver con el
contenido de la entrada específicamente, pero ayuda al modelo a organizar su procesamiento.
Figura 1.2: Ilustración de un modelo de aprendizaje profundo. Es difícil para una computadora entender el significado
de los datos de entrada sensorial en bruto, como esta imagen representada como una colección de valores de píxeles.
La función de mapeo de un conjunto de píxeles a la identidad de un objeto es muy complicado. Aprender o evaluar
este mapeo parece insuperable si se aborda directamente. El aprendizaje profundo resuelve esta dificultad al dividir
el mapeo complicado deseado en una serie de asignaciones simples anidadas, cada una descrita por una capa
diferente del modelo. La entrada se presenta en la capa visible, llamado así porque contiene las variables que se nos
permite observar. Luego, una serie de capas ocultas extrae características cada vez más abstractas de la imagen. Estas
capas se denominan "ocultas" porque sus valores no se dan en los datos; en cambio, el modelo debe determinar qué
conceptos son útiles para explicar las relaciones en los datos observados. Las imágenes aquí son visualizaciones del
tipo de característica representada por cada unidad oculta. Dados los píxeles, la primera capa puede identificar los
bordes comparando el brillo de los píxeles vecinos. Dada la primera descripción de la capa oculta de los bordes, la
segunda capa oculta puede buscar fácilmente esquinas y contornos extendidos, que son reconocibles como conjuntos
de bordes. Dada la descripción de la segunda capa de la imagen en términos de esquinas y contornos, la tercera capa
oculta puede detectar partes enteras de objetos específicos, encontrando colecciones específicas de contornos y
esquinas. Finalmente, esta descripción de la imagen en términos de las partes del objeto que contiene puede ser
utilizada para reconocer los objetos presentes en la imagen. Imágenes reproducidas con permiso de Zeiler y Fergus
(2014).
Hay dos formas principales de medir la profundidad de un modelo. La primera vista está basada
en el número de instrucciones secuenciales que deben ejecutarse para evaluar la arquitectura.
Podemos pensar en esto como la longitud del camino más largo a través un diagrama de flujo
que describe cómo calcular cada uno de los resultados del modelo dado sus entradas. Así como
dos programas informáticos equivalentes tendrán diferentes longitudes dependiendo del
lenguaje en el que esté escrito el programa, la misma función puede ser dibujado como un
diagrama de flujo con diferentes profundidades dependiendo de las funciones que permitimos
sean utilizados como pasos individuales en el diagrama de flujo. La figura 1.3 ilustra cómo esta
elección del lenguaje puede dar dos medidas diferentes para la misma arquitectura.
Figura 1.3: Ilustración de gráficos computacionales que mapean una entrada a una salida donde cada nodo realiza
una operación. La profundidad es la longitud del camino más largo desde la entrada hasta la salida, pero depende de
la definición de lo que constituye un posible paso computacional. El cálculo que se muestra en estos gráficos es el
resultado de un modelo de regresión logística, σ(wTx), donde σ es la función sigmoidea logística. Si usamos suma,
multiplicación y sigmoides logísticos como los elementos de nuestro lenguaje informático, entonces este modelo
tiene profundidad tres. Si vemos la regresión logística como un elemento en sí mismo, entonces este modelo tiene
una profundidad.
Ya que no siempre está claro cuál de estos dos puntos de vista: la profundidad del grafo
computacional, o la profundidad del grafo del modelo probabilístico, es más relevante, y porque
diferentes personas eligen diferentes conjuntos de elementos más pequeños a partir del cual
construir sus grafos, no existe un único valor correcto para la profundidad de una arquitectura,
así como no existe un valor único correcto para la longitud de un programa de computadora.
Tampoco hay consenso sobre la profundidad que un modelo requiere para calificar como
"profundo". Sin embargo, el aprendizaje profundo puede considerarse con seguridad como el
estudio de modelos que involucran una mayor cantidad de composición de funciones de
aprendizaje o conceptos aprendidos que el aprendizaje automático tradicional realiza.
Figura 1.4: Un diagrama de Venn que muestra cómo el aprendizaje profundo es un tipo de aprendizaje por
representación, que es a su vez una especie de aprendizaje automático, que se utiliza para muchos enfoques, pero
no para todos de la IA. Cada sección del diagrama de Venn incluye un ejemplo de una tecnología de IA
Figura 1.5: Diagramas de flujo que muestran cómo se relacionan las diferentes partes de un sistema de IA con cada
uno de las otras disciplinas diferentes de la IA. Los recuadros sombreados indican componentes que pueden aprender
de los datos.
Este libro puede ser útil para una variedad de lectores, pero lo escribimos con dos audiencias
objetivo en mente. Uno de estos públicos objetivo son los estudiantes universitarios.
(Licenciatura o posgrado) aprendiendo sobre el aprendizaje automático, incluidos aquellos que
están comenzando una carrera en investigación de inteligencia artificial y aprendizaje profundo.
El otro público objetivo son los ingenieros de software que no tienen un antecedente en
aprendizaje automático o estadístico, pero desea adquirir uno rápidamente y comenzar a usar
aprendizaje profundo en sus productos o plataforma. El aprendizaje profundo ya ha demostrado
su utilidad en muchas disciplinas de software que incluyen visión por computadora,
procesamiento de voz y audio, procesamiento de lenguaje natural, robótica, bioinformática y
química, videojuegos, motores de búsqueda, publicidad online y finanzas.
Este libro ha sido organizado en tres partes con el fin de acomodar mejor una variedad de
lectores. La parte I presenta herramientas matemáticas básicas y conceptos de aprendizaje
automático. La Parte II describe los algoritmos de aprendizaje profundo más establecidos que
están esencialmente resolviendo problemas tecnológicos. La Parte III describe ideas más
especulativas que se cree importante para futuras investigaciones sobre aprendizaje profundo.
Los lectores deben sentirse libres de omitir partes que no sean relevantes dados sus intereses o
antecedentes. Los lectores familiarizados con álgebra lineal, probabilidad y fundamentos de
aprendizaje automático pueden omitir la Parte I, por ejemplo, mientras que los lectores que solo
quieren implementar un sistema funcionando no es necesario leer más allá de la Parte II. Para
ayudar a elegir qué capítulos leer, la Fig. 1.6 proporciona un diagrama de flujo que muestra la
organización de alto nivel del libro.
Suponemos que todos los lectores provienen de una formación en informática. Nosotros
asumimos que hay familiaridad con la programación, una comprensión básica de rendimiento
de problemas computacionales, teoría de la complejidad, cálculo de nivel introductorio y alguna
terminología de la teoría de grafos.
Figura 1.6: La organización de alto nivel del libro. Una flecha de un capítulo a otro indica que el primer capítulo
es material indispensable para comprender el segundo.
Es más fácil comprender el aprendizaje profundo con algún contexto histórico. Más que
proporcionar una historia detallada del aprendizaje profundo, identificamos algunas tendencias
clave:
• El aprendizaje profundo ha tenido una historia larga y rica, pero ha recibido muchos
nombres reflejando diferentes puntos de vista filosóficos, y ha aumentado y disminuido en
popularidad.
• El aprendizaje profundo se ha vuelto más útil a medida que la cantidad de datos de
entrenamiento disponible han aumentado.
• Los modelos de aprendizaje profundo han crecido en tamaño con el tiempo como hardware
de computadora y la infraestructura de software para el aprendizaje profundo ha mejorado.
• El aprendizaje profundo ha resuelto aplicaciones cada vez más complicadas con un aumento
en la precisión a lo largo del tiempo.
1.2.1. Los Muchos Nombres y los Cambios de Fortunas de las Redes Neuronales
Esperamos que muchos lectores de este libro hayan oído hablar del aprendizaje profundo
como una emocionante tecnología nueva, y se sorprenden al ver una mención de "historia"
en un libro sobre un campo emergente. De hecho, el aprendizaje profundo se remonta a la
década de 1940. El aprendizaje profundo solo parece ser nuevo, porque fue relativamente
impopular varios años anteriores a su popularidad actual, y porque ha pasado por muchos
nombres diferentes, y solo recientemente se ha llamado "aprendizaje profundo". El campo
ha sido renombrado muchas veces, reflejando la influencia de diferentes investigadores y
diferentes perspectivas.
Una historia completa del aprendizaje profundo está más allá del alcance de este libro de
texto. Sin embargo, algún contexto básico es útil para comprender el aprendizaje profundo.
En general hablando, ha habido tres oleadas de desarrollo del aprendizaje profundo:
aprendizaje profundo conocida como cibernética en las décadas de 1940 y 1960, aprendizaje
profundo conocido como conexionismo en las décadas de 1980 y 1990, y el resurgimiento
actual bajo el nombre de aprendizaje profundo a partir de 2006. Esto se ilustra
cuantitativamente en la figura 1.7.
Algunos de los primeros algoritmos de aprendizaje que reconocemos hoy fueron modelos
computacionales de aprendizaje biológico, es decir, modelos de cómo el aprendizaje ocurre
o podría ocurrir en el cerebro. Como resultado, uno de los nombres del aprendizaje
profundo ha pasado son las redes neuronales artificiales (ANN). La perspectiva
correspondiente sobre los modelos de aprendizaje profundo es que son sistemas de
ingeniería inspirados por el cerebro biológico (ya sea el cerebro humano o el cerebro de otro
animal). Si bien los tipos de redes neuronales que se utilizan para el aprendizaje automático
a veces utilizado para comprender la función cerebral (Hinton y Shallice, 1991),
generalmente no fueron modelos diseñados para ser función biológica realistas. La
perspectiva neuronal del aprendizaje profundo está motivada por dos ideas principales. Una
idea es que el cerebro proporciona una prueba por ejemplo, de que el comportamiento
inteligente es posible, y un camino conceptualmente sencillo para construir inteligencia es
realizar ingeniería inversa en los principios computacionales detrás del cerebro y duplicar su
funcionalidad. Otra perspectiva es que sería muy interesante comprender el cerebro y los
principios que subyacen a la inteligencia humana, por lo que los modelos de aprendizaje
automático que arrojan luz sobre estas cuestiones científicas básicas son útiles además de
su capacidad para resolver aplicaciones de ingeniería.
Figura 1.7: La figura muestra dos de las tres olas históricas de investigación de las redes neuronales artificiales,
medido por la frecuencia de las frases "cibernética" y "conexionismo" o "Redes neuronales" según Google Books
(la tercera ola es demasiado reciente para aparecer). La primera ola comenzó con la cibernética en las décadas
de 1940 y 1960, con el desarrollo de teorías del aprendizaje biológico (McCulloch y Pitts, 1943; Hebb, 1949) e
implementaciones de los primeros modelos como el perceptrón (Rosenblatt, 1958) que permite el
entrenamiento de una sola neurona. La segunda ola comenzó con el enfoque conexionista del período 1980-
1995, con retropropagación (Rumelhart et al., 1986a) para entrenar una red neuronal con uno o dos capas
ocultas. La actual y la tercera ola, el aprendizaje profundo, comenzaró alrededor de 2006 (Hinton et al., 2006;
Bengio y col., 2007; Ranzato et al., 2007a), y recién ahora aparece en forma de libro a partir de 2016. Las otras
dos olas aparecieron de manera similar en forma de libro mucho después que se produjera la actividad científica
correspondiente.
Los primeros predecesores del aprendizaje profundo moderno fueron modelos lineales
simples motivados desde una perspectiva neurocientífica. Estos modelos fueron diseñados
para tomar un conjunto de n valores de entrada x1,. . . , xn y asociarlos con una salida y. Estos
modelos aprenderían un conjunto de pesos w1,. . . , wn y calcularían su salida f (x, w) = x1w1
+ · · · + xnwn. Esta primera ola de investigación de redes neuronales fue conocida como
cibernética, como se ilustra en la Fig. 1.7.
McCulloch-Pitts Neuron (McCulloch y Pitts, 1943) fue uno de los primeros modelos de la
función cerebral. Este modelo lineal podría reconocer dos categorías diferentes de entradas
probando si f (x, w) es positiva o negativa. Por supuesto, para que el modelo se corresponda
a la definición deseada de las categorías, los pesos debían ser configurados correctamente.
Estos pesos los puede establecer el operador humano. En la década de 1950, el perceptrón
(Rosenblatt, 1958, 1962) se convirtió en el primer modelo que pudo aprender los pesos
definido por las categorías dados los ejemplos de entradas de cada categoría. El elemento
lineal adaptativo (ADALINE), que data aproximadamente de la misma época, simplemente
devolvió el valor de f (x) para predecir un número real (Widrow y Hoff, 1960), y también
podía aprender a predecir estos números a partir de los datos.
Los modelos lineales tienen muchas limitaciones. Lo más famoso es que no pueden aprender
la función XOR, donde f ([0,1], w) = 1 y f ([1, 0], w) = 1 pero f ([1, 1], w) = 0 y f ([0, 0], w) = 0.
Los críticos que observaron estos defectos en los modelos lineales causaron una reacción
violenta contra el aprendizaje inspirado biológicamente en general (Minsky y Papert, 1969).
Esta fue la primera caída importante en la popularidad de las redes neuronales.
La neurociencia nos ha dado una razón para esperar que un solo algoritmo de aprendizaje
profundo puede resolver muchas tareas diferentes. Los neurocientíficos han descubierto
que los hurones pueden aprender a "Ver" con la región de procesamiento auditivo de su
cerebro si sus cerebros están recableados para enviar señales visuales a esa área (Von
Melchner et al., 2000). Esto sugiere que gran parte del cerebro de los mamíferos podría usar
un solo algoritmo para resolver la mayoría de las diferentes tareas que resuelve el cerebro.
Ante esta hipótesis, la investigación del aprendizaje automático fue más fragmentada, con
diferentes comunidades de investigadores estudiando procesamiento del lenguaje natural,
visión, planificación de movimientos y reconocimiento de voz. Hoy, estas comunidades de
aplicaciones todavía están separadas, pero es común para grupos de investigación del
aprendizaje profundo estudiar muchas o incluso todas estas áreas de aplicación
simultáneamente.
Las cuentas de los medios a menudo enfatizan la similitud del aprendizaje profundo con el
cerebro. Si bien es cierto que es más probable que los investigadores de aprendizaje
profundo citen al cerebro como una influencia que los investigadores que trabajan en otros
campos del aprendizaje automático, como las máquinas basadas en kernel o estadísticas
bayesianas, no se debe ver el aprendizaje profundo como un intento para simular el cerebro.
El aprendizaje profundo moderno se inspira en muchos campos, especialmente los
fundamentos matemáticos aplicados como álgebra lineal, probabilidad, teoría de la
información y optimización numérica. Si bien algunos investigadores de aprendizaje
profundo citan la neurociencia como una importante fuente de inspiración, otros no se
preocupan en absoluto por la neurociencia.
Vale la pena señalar que el esfuerzo por comprender cómo funciona el cerebro en un nivel
algorítmico está vivo y coleando. Este esfuerzo se conoce principalmente como
“Neurociencia computacional” y es un campo de estudio separado del aprendizaje
profundo. Es común que los investigadores se muevan entre ambos campos. El campo del
aprendizaje profundo se ocupa principalmente de cómo construir sistemas informáticos que
son capaces de resolver con éxito tareas que requieren inteligencia, mientras que el campo
de la neurociencia computacional se preocupa principalmente por construir más modelos
de cómo funciona realmente el cerebro.
La idea central del conexionismo es que una gran cantidad de simples unidades pueden
lograr un comportamiento inteligente cuando se conectan en red. Esta idea se aplica
igualmente a las neuronas del sistema nervioso biológico y a las unidades ocultas en
modelos computacionales.
Otro logro importante del movimiento conexionista fue el éxito del uso de retropropagación
para entrenar redes neuronales profundas con representaciones internas y la
popularización del algoritmo de retropropagación (Rumelhart et al., 1986a; LeCun, 1987).
Este algoritmo ha aumentado y disminuido en popularidad pero al momento de escribir este
artículo es actualmente el enfoque dominante para entrenar modelos profundos.
En este momento, generalmente se creía que las redes profundas eran muy difíciles de
entrenar. Ahora sabemos que los algoritmos que han existido desde la década de 1980
funcionan bastante bien, pero esto no fue evidente alrededor de 2006. El problema es quizás
simplemente que estos algoritmos eran demasiado costosos computacionalmente para
permitir mucha experimentación con el hardware disponible en ese momento.
La tercera ola de investigación de redes neuronales comenzó con un gran avance en 2006.
Geoffrey Hinton demostró que una especie de red neuronal llamada red de creencia
profunda podría entrenarse de manera eficiente utilizando una estrategia llamada capa de
preentrenamiento codiciosa (Hinton et al., 2006), que se describirá con más detalle en la
Sec. 15.1. Los otros grupos de investigación afiliados a CIFAR rápidamente demostraron que
la misma estrategia podría usarse para entrenar muchos otros tipos de redes profundas
(Bengio et al., 2007; Ranzato et al., 2007a) y ayudó sistemáticamente a mejorar la
generalización en ejemplos de prueba. Esta ola de investigación de redes neuronales
popularizó el uso del término aprendizaje profundo para enfatizar que los investigadores
ahora podían entrenar redes neuronales que había sido posible antes, y para centrar la
atención en el importancia teórica de la profundidad (Bengio y LeCun, 2007; Delalleau y
Bengio, 2011; Pascanu y col., 2014a; Montufar et al., 2014). En este momento, las redes
neuronales profundas superaron a los sistemas de inteligencia artificial de la competencia
basados en otras tecnologías de aprendizaje automático, así como funcionalidad diseñada a
mano. Esta tercera ola de popularidad de las redes neuronales continúa hasta el momento
de escribir este artículo, aunque el enfoque de la investigación sobre el aprendizaje ha
cambiado drásticamente durante la época de esta ola. La tercera ola comenzó con un
enfoque en nuevas técnicas de aprendizaje no supervisado y la capacidad de los modelos
profundos para generalizar bien a partir de pequeños conjuntos de datos, pero ahora hay
En términos del número total de neuronas, las redes neuronales han sido asombrosamente
pequeños hasta hace muy poco, como se muestra en la figura 1.11. Desde la introducción
de las unidades ocultas, las redes neuronales artificiales se han duplicado en tamaño
aproximadamente cada 2.4 años. Este crecimiento está impulsado por computadoras más
rápidas con mayor memoria y por la disponibilidad de conjuntos de datos más grandes. Las
redes más grandes pueden lograr una mayor precisión en más tareas complejas. Esta
tendencia parece que continuará durante décadas. A menos que las nuevas tecnologías
permitan un escalado más rápido, las redes neuronales artificiales no tendrán el mismo
número de neuronas como el cerebro humano hasta al menos la década de 2050. Las
neuronas biológicas pueden representar funciones más complicadas que las neuronas
artificiales actuales, por lo que las redes neuronales podría ser incluso más grandes de lo
que describe esta trama retratada.
El aumento en el tamaño del modelo a lo largo del tiempo, debido a la disponibilidad de CPU
más rápidas, la llegada de GPU de propósito general (descritas en la Sección 12.1.2),
conectividad de redes más rápidas y mejor infraestructura de software para computación
distribuida, es una de las tendencias más importantes en la historia del aprendizaje
profundo. Esta tendencia es generalmente esperada a que continúe en el futuro.
Figura 1.8: El tamaño de los conjuntos de datos ha aumentado considerablemente con el tiempo. A principios
del siglo XX, los estadísticos estudiaron conjuntos de datos utilizando cientos o miles de mediciones compiladas
manualmente (Garson, 1900; Gosset, 1908; Anderson, 1935; Fisher, 1936). Desde la década de 1950 hasta la de
1980, los pioneros del aprendizaje automático de inspiración biológica a menudo funcionaba con pequeños
conjuntos de datos sintéticos, como mapas de bits de letras de baja resolución, que fueron diseñados para
incurrir en un bajo costo computacional y demostrar que las redes neuronales eran capaces de aprender tipos
específicos de funciones (Widrow y Hoff, 1960; Rumelhart y col., 1986b). En las décadas de 1980 y 1990, el
aprendizaje automático se volvió de naturaleza más estadística y comenzó a aprovechar conjuntos de datos más
grandes que contienen decenas de miles de ejemplos, como el conjunto de datos MNIST (que se muestra en la
figura 1.9) de escaneos de números escritos a mano (LeCun et al., 1998b). En la primera década de la década de
2000, más conjuntos de datos sofisticados de este mismo tamaño, como el conjunto de datos CIFAR-10
(Krizhevsky y Hinton, 2009) continuó produciéndose. Hacia fines de esa década y durante la primera mitad de la
década de 2010, conjuntos de datos significativamente más grandes, que contienen cientos de miles a decenas
de millones de ejemplos, cambió por completo lo que era posible con el aprendizaje profundo. Estos conjuntos
de datos incluían el conjunto de datos públicos de Street View House Numbers (Netzer et al., 2011), varias
versiones del conjunto de datos de ImageNet (Deng et al., 2009, 2010a; Russakovsky et al., 2014a), y el conjunto
de datos Sports-1M (Karpathy et al., 2014). En la cima del gráfico, vemos que los conjuntos de datos de oraciones
traducidas, como el conjunto de datos de IBM construido por la canadiense Hansard (Brown et al., 1990) y el
conjunto de datos WMT 2014 del inglés a francés (Schwenk, 2014) suelen estar muy por delante de otros
tamaños de conjuntos de datos.
Figura 1.9: Entradas de ejemplo del conjunto de datos MNIST. El "NIST" significa Nacional Institute of Standards
and Technology, la agencia que originalmente recopiló estos datos. La "M" significa "modificado", ya que los
datos han sido pre-procesados para facilitar su uso con algoritmos de aprendizaje automático. El conjunto de
datos MNIST consta de escaneos de dígitos escritos a mano y etiquetas asociadas que describen qué dígito del
0-9 está contenido en cada imagen. Este simple problema de clasificación es una de las pruebas más simples y
más utilizadas en la investigación del aprendizaje profundo. Sigue siendo popular a pesar de ser bastante fácil
de resolver para las técnicas modernas. Geoffrey Hinton lo ha descrito como "la drosophila del aprendizaje
automático", lo que significa que permite a los investigadores de aprendizaje automático estudiar sus algoritmos
en condiciones de laboratorio controlado, tanto como los biólogos a menudo estudian las moscas de la fruta.
(Krizhevsky et al., 2012), lo que significa que la red convolucional produce una lista ordenada
de posibles categorías para cada imagen y la categoría correcta aparece en las cinco
primeras entradas de esta lista para todos menos el 15,3% de los ejemplos de prueba. Desde
entonces, estas competiciones son consistentemente ganadas por redes profundas
convolucionales, y al momento de escribir este artículo, los avances en el aprendizaje
profundo ha reducido la última tasa de error de los 5 principales en este concurso al 3,6%,
como se muestra en la Fig. 1.12.
Las redes profundas también han tenido un éxito espectacular en la detección de peatones
y segmentación de imágenes (Sermanet et al., 2013; Farabet et al., 2013; Couprie et al.,
2013) y arrojó un rendimiento sobrehumano en la clasificación de señales de tráfico (Ciresan
et al., 2012).
Al mismo tiempo que ha aumentado la escala y la precisión de las redes profundas, también
lo ha hecho la complejidad de las tareas que pueden resolver. Goodfellow y col. (2014d)
mostró que las redes neuronales pueden aprender a generar una secuencia completa de
caracteres transcritos a partir de una imagen, en lugar de solo identificar un solo objeto.
Previamente, se creía ampliamente que este tipo de aprendizaje requería etiquetar al
individuo elementos de la secuencia (Gülçehre y Bengio, 2013). Las redes neuronales
recurrentes, como el modelo de secuencia LSTM mencionado anteriormente, ahora se
utilizan para modelar relaciones entre secuencias y otras secuencias en lugar de solo
entradas fijas. Este aprendizaje secuencia a secuencia parece estar en la cúspide de
revolucionar otra aplicación: traducción automática (Sutskever et al., 2014; Bahdanau et al.,
2015).
Otro logro supremo del aprendizaje profundo es su extensión al dominio del aprendizaje por
refuerzo. En el contexto del aprendizaje por refuerzo, un agente debe aprender a realizar
una tarea por ensayo y error, sin ninguna orientación del operador humano. DeepMind
demostró que un sistema de aprendizaje por refuerzo basado en el aprendizaje profundo es
capaz de aprender a jugar videojuegos Atari, alcanzando un desempeño a nivel humano en
muchas tareas (Mnih et al., 2015). El aprendizaje profundo también mejoró
significativamente el rendimiento del aprendizaje por refuerzo para robótica (Finn et al.,
2015).
Los avances en el aprendizaje profundo también han dependido en gran medida de los
avances en la infraestructura del software. Bibliotecas de software como Theano (Bergstra
et al., 2010; Bastien et al., 2012), PyLearn2 (Goodfellow et al., 2013c), Torch (Collobert et
al., 2011b), DistBelief (Dean et al., 2012), Caffe (Jia, 2013), MXNet (Chen et al., 2015) y
TensorFlow (Abadi et al., 2015) han apoyado importantes proyectos de investigación o
productos comerciales.
Figura 1.11: Desde la introducción de unidades ocultas, las redes neuronales artificiales se han duplicado en
tamaño aproximadamente cada 2.4 años. Tamaños de redes neuronales biológicas de Wikipedia (2015).
Figura 1.12: Desde que las redes profundas alcanzaron la escala necesaria para competir en
el desafío ImageNet de reconocimiento visual a gran escala, han ganado constantemente la
competencia cada año, y arrojó tasas de error cada vez más bajas. Datos de Russakovsky et
al. (2014b) y He et al. (2015).