Uploaded by JHIRO CRISTIAN VALDIVIEZO DELGADO

Ian Goodfellow, Yoshua Bengio, Aaron Courville - Deep Learning (2017, MIT)-1-300 en español-invert

advertisement
Machine Translated by Google
Aprendizaje profundo
Ian Goodfellow
Yoshua Bengio
Aarón Courville
Machine Translated by Google
Contenido
Sitio web
viii
Expresiones de gratitud
viii
xi
Notación
1
1 Introducción 1.1
¿Quién debería leer este libro? . . . . . . . . . . . . . . . . . . . . 8
1.2 Tendencias históricas en el aprendizaje profundo . . . . . . . . . . . . . . . . .
Apliqué los conceptos básicos de matemáticas aplicadas y aprendizaje automático
2 Álgebra lineal 31
2.1 Escalares, Vectores, Matrices y Tensores . . . . . . . . . . . . . . . 31
2.2 Multiplicación de matrices y vectores . . . . . . . . . . . . . . . . . . 34
2.3 Matrices de identidad y inversas . . . . . . . . . . . . . . . . . . . . 36
2.4 Dependencia lineal y alcance . . . . . . . . . . . . . . . . . . . . 37
2.5 Normas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6 Tipos especiales de matrices y vectores . . . . . . . . . . . . . . . 40
2.7 Descomposición propia . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.8 Descomposición de valores singulares . . . . . . . . . . . . . . . . . . . . 44
2.9 La pseudoinversa de Moore­Penrose . . . . . . . . . . . . . . . . . . 45
2.10 El operador de seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.11 El Determinante . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.12 Ejemplo: Análisis de componentes principales . . . . . . . . . . . . . 48
3 Teoría de la probabilidad y la información 53
3.1 ¿Por qué probabilidad? . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
i
11
29
Machine Translated by Google
CONTENIDO
3.2 Variables aleatorias . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.3 Distribuciones de
probabilidad . . . . . . . . . . . . . . . . . . . . . . . 56 3.4 Probabilidad marginal . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5 Probabilidad condicional . . . . . . . . . . . . . . . . . . . . . . . 59 3.6 La regla de la cadena de probabilidades
condicionales . . . . . . . . . . . . 59 3.7 Independencia e Independencia Condicional . . . . . . . . . . . . 60 3.8
Expectativa, Varianza y Covarianza . . . . . . . . . . . . . . . 60 3.9 Distribuciones de probabilidad
comunes . . . . . . . . . . . . . . . . . 62 3.10 Propiedades útiles de funciones comunes . . . . . . . . . . . . . . 67
3.11 Regla de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.12 Detalles técnicos de variables
continuas . . . . . . . . . . . . . 71 3.13 Teoría de la información . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.14
Modelos probabilísticos estructurados . . . . . . . . . . . . . . . . . . . 75
4 Cálculo numérico 80 4.1 Desbordamiento y desbordamiento insuficiente . . . . . . . . . . . . . . . . . . . . . . . 80 4.2
Mal acondicionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.3 Optimización basada en
gradientes . . . . . . . . . . . . . . . . . . . . 82 4.4 Optimización restringida . . . . . . . . . . . . . . . . . . . . . . 93 4.5
Ejemplo: Mínimos cuadrados lineales . . . . . . . . . . . . . . . . . . . 96
5 Conceptos básicos del aprendizaje automático 98 5.1 Algoritmos de aprendizaje . . . . . . . . . . . . . . . . . . . . . . . . .
99 5.2 Capacidad, sobreadaptación y desadaptación . . . . . . . . . . . . . . . 110 5.3 Hiperparámetros y
conjuntos de validación . . . . . . . . . . . . . . . . 120 5.4 Estimadores, sesgo y varianza . . . . . . . . . . . . . . . . . . . .
122 5.5 Estimación de máxima verosimilitud . . . . . . . . . . . . . . . . . . 131
5.6 Estadística bayesiana . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.7 Algoritmos de aprendizaje
supervisado . . . . . . . . . . . . . . . . . . . 140 5.8 Algoritmos de aprendizaje no supervisados . . . . . . . . . . . . . . . . .
146 5.9 Descenso del gradiente estocástico . . . . . . . . . . . . . . . . . . . . . 151 5.10 Creación de un algoritmo
de aprendizaje automático . . . . . . . . . . . . . . 153 5.11 Desafíos que motivan el aprendizaje
profundo . . . . . . . . . . . . . . . . 155
II Redes Profundas: Prácticas Modernas
166
6 redes de retroalimentación profunda
168
6.1 Ejemplo: aprendizaje de XOR . . . . . . . . . . . . . . . . . . . . . . . 171 6.2 Aprendizaje basado en
gradientes . . . . . . . . . . . . . . . . . . . . . . . 177
ii
Machine Translated by Google
CONTENIDO
6.3 Unidades Ocultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 6.4 Diseño
arquitectónico . . . . . . . . . . . . . . . . . . . . . . . . . . 197 6.5 Retropropagación y otros algoritmos de
diferenciación . . . . . 204 6.6 Notas Históricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
7 Regularización para el aprendizaje profundo 228 7.1 Penalizaciones de normas de
parámetros . . . . . . . . . . . . . . . . . . . . . . 230 7.2 Penalizaciones de normas como optimización
restringida . . . . . . . . . . . . 237 7.3 Regularización y problemas insuficientemente restringidos . . . . . . . . .
239 7.4 Aumento del conjunto de datos . . . . . . . . . . . . . . . . . . . . . . . . 240 7.5 Robustez frente al
ruido . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 7.6 Aprendizaje semisupervisado . . . . . . . . . . . . . . . . . . . . . .
243 7.7 Aprendizaje multitarea . . . . . . . . . . . . . . . . . . . . . . . . . 244 7.8 Detención
anticipada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 7.9 Vinculación y uso compartido de
parámetros . . . . . . . . . . . . . . 253 7.10 Representaciones dispersas . . . . . . . . . . . . . . . . . . . . . . . . 254
7.11 Ensacado y otros métodos de conjunto . . . . . . . . . . . . . . . 256 7.12
Abandono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 7.13 Entrenamiento
adversario . . . . . . . . . . . . . . . . . . . . . . . . . 268 7.14 Clasificador de distancia tangente, apoyo tangente y
tangente múltiple 270
274
8 Optimización para entrenar modelos profundos
8.1 En qué se diferencia el aprendizaje de la optimización pura . . . . . . . . . . . 275 8.2 Desafíos en la
optimización de redes neuronales . . . . . . . . . . . . 282 8.3 Algoritmos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . .
294 8.4 Estrategias de inicialización de parámetros . . . . . . . . . . . . . . . . . 301 8.5 Algoritmos con tasas de
aprendizaje adaptativo . . . . . . . . . . . . . 306 8.6 Métodos aproximados de segundo orden . . . . . . . . . . . . . . . .
310 8.7 Estrategias de optimización y metaalgoritmos . . . . . . . . . . . 317
9 redes convolucionales
330
9.1 La operación de convolución . . . . . . . . . . . . . . . . . . . . . 331 9.2
Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.3 Agrupación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
339 9.4 La convolución y la agrupación como una prioridad infinitamente fuerte . . . . . . . 345 9.5 Variantes
de la función de convolución básica . . . . . . . . . . . . 347 9.6 Productos
estructurados . . . . . . . . . . . . . . . . . . . . . . . . . . 358 9.7 Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
360 9.8 Algoritmos de convolución eficientes . . . . . . . . . . . . . . . . . . 362 9.9 Funciones aleatorias o no
supervisadas . . . . . . . . . . . . . . . . . 363
III
Machine Translated by Google
CONTENIDO
9.10 La base neurocientífica de las redes convolucionales . . . . . . . 364 9.11 Redes convolucionales y la
historia del aprendizaje profundo . . . . 371
10 Modelado de secuencias: redes recurrentes y recursivas 373 10.1 Despliegue de gráficos
computacionales . . . . . . . . . . . . . . . . . . 375 10.2 Redes neuronales recurrentes . . . . . . . . . . . . . . . . . . . . .
378 10.3 RNN bidireccionales . . . . . . . . . . . . . . . . . . . . . . . . . . 394 10.4 Arquitecturas de secuencia a
secuencia de codificador­decodificador . . . . . . . 396 10.5 Redes recurrentes
profundas . . . . . . . . . . . . . . . . . . . . . . 398 10.6 Redes neuronales recursivas . . . . . . . . . . . . . . . . . . . . . .
400 10.7 El desafío de las dependencias a largo plazo . . . . . . . . . . . . . 401 10.8 Redes estatales de
eco . . . . . . . . . . . . . . . . . . . . . . . . . 404 10.9 Unidades con fugas y otras estrategias para múltiples escalas
de tiempo . . . . 406 10.10 La memoria a largo plazo y otros RNN cerrados . . . . . . 408 10.11 Optimización
para dependencias a largo plazo . . . . . . . . . . . . . 413 10.12 Memoria explícita . . . . . . . . . . . . . . . . . . . . . . . . . . .
416
11 Metodología práctica 421 11.1 Métricas de rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . 422 11.2 Modelos de
referencia predeterminados . . . . . . . . . . . . . . . . . . . . . . . 425 11.3 Determinar si se deben recopilar más
datos . . . . . . . . . . . . 426 11.4 Selección de hiperparámetros . . . . . . . . . . . . . . . . . . . . . . 427 11.5
Estrategias de depuración . . . . . . . . . . . . . . . . . . . . . . . . . 436 11.6 Ejemplo: Reconocimiento de números
de varios dígitos . . . . . . . . . . . . . 440
12 Aplicaciones 443 12.1 Aprendizaje profundo a gran escala . . . . . . . . . . . . . . . . . . . . . . 443 12.2 Visión por
computadora . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 12.3 Reconocimiento de voz. . . . . . . . . . . . . . . . . . . . . . . . . .
458 12.4 Procesamiento del lenguaje natural . . . . . . . . . . . . . . . . . . . . 461 12.5 Otras
aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 478
III Investigación de Aprendizaje Profundo
486
13 modelos de factores lineales
489
13.1 PCA probabilístico y análisis factorial . . . . . . . . . . . . . . . 490 13.2 Análisis de componentes
independientes (ICA) . . . . . . . . . . . . . . 491 13.3 Análisis de características lentas . . . . . . . . . . . . . . . . . . . . . . . .
493 13.4 Codificación dispersa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
IV
Machine Translated by Google
CONTENIDO
13.5 Interpretación múltiple de PCA . . . . . . . . . . . . . . . . . . . 499
502
14 codificadores automáticos
14.1 Codificadores automáticos insuficientemente completos . . . . . . . . . . . . . . . . . . . . 503 14.2
Codificadores automáticos regularizados . . . . . . . . . . . . . . . . . . . . . . 504 14.3 Poder de representación,
tamaño de capa y profundidad . . . . . . . . . . . 508 14.4 Codificadores y decodificadores
estocásticos . . . . . . . . . . . . . . . . . . 509 14.5 Eliminación de ruido de codificadores
automáticos . . . . . . . . . . . . . . . . . . . . . . . 510 14.6 Múltiples de aprendizaje con codificadores
automáticos . . . . . . . . . . . . . . . 515 14.7 Autocodificadores contractivos . . . . . . . . . . . . . . . . . . . . . . 521
14.8 Descomposición dispersa predictiva . . . . . . . . . . . . . . . . . . 523 14.9 Aplicaciones de los codificadores
automáticos . . . . . . . . . . . . . . . . . . . . 524
526
15 Aprendizaje de representación 15.1
Preentrenamiento codicioso por capas no supervisado . . . . . . . . . . . 528 15.2 Transferencia de
aprendizaje y adaptación del dominio . . . . . . . . . . . . . 536 15.3 Desenredo semisupervisado de factores
causales . . . . . . . . . 541 15.4 Representación Distribuida . . . . . . . . . . . . . . . . . . . . . . 546 15.5 Ganancias
exponenciales de la profundidad . . . . . . . . . . . . . . . . . . . 553 15.6 Proporcionar pistas para descubrir las
causas subyacentes . . . . . . . . . . 554
16 Modelos probabilísticos estructurados para el aprendizaje profundo 16.1 El desafío
558
del modelado no estructurado . . . . . . . . . . . . . . 559 16.2 Uso de gráficos para describir la estructura del
modelo . . . . . . . . . . . . . 563 16.3 Muestreo de modelos gráficos . . . . . . . . . . . . . . . . . . 580 16.4 Ventajas
del modelado estructurado. . . . . . . . . . . . . . . . . 582 16.5 Aprendizaje sobre las
dependencias . . . . . . . . . . . . . . . . . . . . 582 16.6 Inferencia e inferencia aproximada . . . . . . . . . . . . . . . .
584 16.7 El enfoque de aprendizaje profundo para modelos probabilísticos estructurados 585
17 métodos de Montecarlo
590
17.1 Métodos de muestreo y Monte Carlo . . . . . . . . . . . . . . . . 590 17.2 Importancia del
muestreo . . . . . . . . . . . . . . . . . . . . . . . . . 592 17.3 Métodos Monte Carlo de la cadena de
Markov . . . . . . . . . . . . . . . . 595 17.4 Muestreo de Gibbs. . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 17.5 El
desafío de mezclar entre modos separados . . . . . . . . 599
18 Enfrentando la función de partición 605 18.1 El gradiente de probabilidad logarítmica . . . . . . . . . . . . . . . . . . . .
606 18.2 Máxima verosimilitud estocástica y divergencia contrastiva . . . 607
v
Machine Translated by Google
CONTENIDO
18.3 Pseudoverosimilitud . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 18.4 Emparejamiento de
puntuaciones y emparejamiento de proporciones . . . . . . . . . . . . . . . . 617 18.5 Coincidencia de
puntuación de eliminación de ruido . . . . . . . . . . . . . . . . . . . . . . 619 18.6 Estimación contrastiva de
ruido . . . . . . . . . . . . . . . . . . . . 620 18.7 Estimación de la función de partición . . . . . . . . . . . . . . . . . .
623
631
19 Inferencia aproximada 19.1
Inferencia como optimización . . . . . . . . . . . . . . . . . . . . . . 633 19.2 Maximización de
expectativas . . . . . . . . . . . . . . . . . . . . . . 634 19.3 Inferencia MAP y codificación
dispersa . . . . . . . . . . . . . . . . . 635 19.4 Inferencia y aprendizaje variacional . . . . . . . . . . . . . . . . .
638 19.5 Inferencia aproximada aprendida . . . . . . . . . . . . . . . . . . . 651
20 Modelos generativos profundos 20.1
Máquinas de Boltzmann . . . . . . . . . . . . . . . . . . . . . . . . . 654 20.2 Máquinas Boltzmann
654
restringidas . . . . . . . . . . . . . . . . . . . 656 20.3 Redes de creencias
profundas . . . . . . . . . . . . . . . . . . . . . . . . . 660 20.4 Máquinas Boltzmann
profundas . . . . . . . . . . . . . . . . . . . . . . 663 20,5 Máquinas de Boltzmann para datos de valor
real . . . . . . . . . . . . . 676 20.6 Máquinas convolucionales de Boltzmann . . . . . . . . . . . . . . . . . 683
20.7 Máquinas de Boltzmann para salidas estructuradas o secuenciales . . . . 685 20.8 Otras
máquinas Boltzmann . . . . . . . . . . . . . . . . . . . . . 686 20.9 Propagación hacia atrás mediante
operaciones aleatorias . . . . . . . . . . 687 20.10 Redes generativas dirigidas . . . . . . . . . . . . . . . . . . . . . . .
692 20.11 Muestras de dibujo de codificadores automáticos . . . . . . . . . . . . . . . . 711 20.12 Redes
estocásticas generativas . . . . . . . . . . . . . . . . . . . 714 20.13 Otros Esquemas de
Generación . . . . . . . . . . . . . . . . . . . . . . 716
20.14 Evaluación de modelos generativos . . . . . . . . . . . . . . . . . . . . 717 20.15
Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
Bibliografía
721
Índice
777
vi
Machine Translated by Google
Sitio web
www.deeplearningbook.org
Este libro va acompañado del sitio web mencionado anteriormente. El sitio web proporciona
una variedad de material complementario, incluidos ejercicios, diapositivas de conferencias,
correcciones de errores y otros recursos que deberían ser útiles tanto para lectores como para instructores.
viii
Machine Translated by Google
Expresiones de gratitud
Este libro no habría sido posible sin las contribuciones de muchas personas.
Nos gustaría agradecer a quienes comentaron nuestra propuesta para el libro y ayudaron a
planificar su contenido y organización: Guillaume Alain, Kyunghyun Cho, Çağlar Gülçehre, David
Krueger, Hugo Larochelle, Razvan Pascanu y Thomas Rohée.
Nos gustaría agradecer a las personas que ofrecieron comentarios sobre el
contenido del libro en sí. Algunos ofrecieron comentarios sobre muchos capítulos:
Martín Abadi, Guillaume Alain, Ion Androutsopoulos, Fred Bertsch, Olexa Bilaniuk,
Ufuk Can Biçici, Matko Bošnjak, John Boersma, Greg Brockman, Alexandre de
Brébisson, Pierre Luc Carrier, Sarath Chandar, Pawel Chilinski, Mark Daoust, Oleg
Dashevskii, Laurent Dinh, Stephan Dreseitl, Jim Fan, Miao Fan, Meire Fortunato,
Frédéric Francis, Nando de Freitas, Çağlar Gülçehre, Jurgen Van Gael, Javier
Alonso García, Jonathan Hunt, Gopi Jeyaram, Chingiz Kabytayev, Lukasz Kaiser,
Varun Kanade, Asifullah Khan, Akiel Khan, John King, Diederik P. Kingma, Yann
LeCun, Rudolf Mathey, Matías Mattamala, Abhinav Maurya, Kevin Murphy, Oleg
Mürk, Roman Novak, Augustus Q. Odena, Simon Pavlik, Karl Pichotta, Eddie
Pierce, Kari Pulli, Roussel Rahman, Tapani Raiko, Anurag Ranjan, Johannes Roith,
Mihaela Rosca, Halis Sak, César Salgado, Grigory Sapunov, Yoshinori Sasaki,
Mike Schuster, Julian Serban, Nir Shabat, Ken Shirriff, Andre Simpelo, Scott
Stanley, David Sussillo, Ilya Sutskever, Carles Gelada Sáez, Graham Taylor,
Valentin Tolmer, Massimiliano Tomassoli, An Tran, Shubhendu Trivedi, Alexey
Umnov, Vincent Vanhoucke, Marco Visentini­Scarzanella, Martin Vita, David Warde­
Farley, Dustin Webb, Kelvin Xu, Wei Xue, Ke Yang, Li Yao, Zygmunt Zając y Ozan Çağlayan.
También nos gustaría agradecer a quienes nos brindaron comentarios útiles sobre cada capítulo:
• Notación: Zhang Yuanhang.
• Capítulo 1, Introducción: Yusuf Akgul, Sebastien Bratieres, Samira Ebrahimi,
viii
Machine Translated by Google
CONTENIDO
Charlie Gorichanaz, Brendan Loudermilk, Eric Morris, Cosmin Pârvulescu y Alfredo Solano.
• Capítulo 2, Álgebra lineal: Amjad Almahairi, Nikola Banić, Kevin Bennett, Philippe
Castonguay, Oscar Chang, Eric Fosler­Lussier, Andrey Khalyavin, Sergey Oreshkov,
István Petrás, Dennis Prangle, Thomas Rohée, Gitanjali Gulve Sehgal, Colby Toland,
Alessandro Vitale y Bob Welland.
• Capítulo 3, Probabilidad y teoría de la información: John Philip Anderson, Kai
Arulkumaran, Vincent Dumoulin, Rui Fa, Stephan Gouws, Artem Oboturov,
Antti Rasmus, Alexey Surkov y Volker Tresp.
• Capítulo 4, Computación numérica: Tran Lam AnIan Fischer y Hu
Yuhuang.
• Capítulo 5, Conceptos básicos del aprendizaje automático: Dzmitry Bahdanau, Justin Domingue,
Nikhil Garg, Makoto Otsuka, Bob Pepin, Philip Popien, Emmanuel Rayner, Peter Shepard, Kee­
Bong Song, Zheng Sun y Andy Wu.
• Capítulo 6, Redes de retroalimentación profunda: Uriel Berdugo, Fabrizio
Bottarel, Elizabeth Burl, Ishan Durugkar, Jeff Hlywa, Jong Wook Kim, David
Krueger y Aditya Kumar Praharaj.
• Capítulo 7, Regularización para el aprendizaje profundo: Morten Kolbæk, Kshitij
Lauria, Inkyu Lee, Sunil Mohan, Hai Phong Phan y Joshua Salisbury.
• Capítulo 8, Optimización para el entrenamiento de modelos profundos: Marcel
Ackermann, Peter Armitage, Rowel Atienza, Andrew Brock, Tegan Maharaj,
James Martens, Kashif Rasul, Klaus Strobl y Nicholas Turner.
• Capítulo 9, Redes convolucionales: Martín Arjovsky, Eugene Brevdo, Konstantin Divilov, Eric
Jensen, Mehdi Mirza, Alex Paino, Marjorie Sayer, Ryan Stout y Wentao Wu.
• Capítulo 10, Modelado de secuencias: redes recurrentes y recursivas:
Gökçen Eraslan, Steven Hickson, Razvan Pascanu, Lorenzo von Ritter, Rui
Rodrigues, Dmitriy Serdyuk, Dongyu Shi y Kaiyu Yang.
• Capítulo 11, Metodología Práctica: Daniel Beckstein.
• Capítulo 12, Aplicaciones: George Dahl, Vladimir Nekrasov y Ribana
Roscher.
• Capítulo 13, Modelos de factores lineales: Jayanth Koushik.
ix
Machine Translated by Google
CONTENIDO
• Capítulo 15, Aprendizaje de representación: Kunal Ghosh.
• Capítulo 16, Modelos probabilísticos estructurados para el aprendizaje profundo: Minh Lê
y Antón Varfolom.
• Capítulo 18, Enfrentando la función de partición: Sam Bowman.
• Capítulo 19, Inferencia aproximada: Yujia Bao.
• Capítulo 20, Modelos Generativos Profundos: Nicolas Chapados, Daniel Galvez, Wenming
Ma, Fady Medhat, Shakir Mohamed y Grégoire Montavon.
• Bibliografía: Lukas Michelbacher y Leslie N. Smith.
También queremos agradecer a quienes nos permitieron reproducir imágenes, figuras o datos
de sus publicaciones. Indicamos sus contribuciones en los pies de las figuras a lo largo del texto.
Nos gustaría agradecer a Lu Wang por escribir pdf2htmlEX, que utilizamos para crear la versión
web del libro, y por ofrecer soporte para mejorar la calidad del HTML resultante.
Nos gustaría agradecer a la esposa de Ian, Daniela Flori Goodfellow, por apoyar
pacientemente a Ian durante la escritura del libro, así como por su ayuda con la revisión.
Nos gustaría agradecer al equipo de Google Brain por proporcionar un entorno intelectual
en el que Ian pudo dedicar una enorme cantidad de tiempo a escribir este libro y recibir
comentarios y orientación de sus colegas. Nos gustaría agradecer especialmente al ex
manager de Ian, Greg Corrado, y a su actual manager, Samy Bengio, por su apoyo a este
proyecto. Finalmente, nos gustaría agradecer a Geoffrey Hinton por su aliento cuando escribir
era difícil.
X
Machine Translated by Google
Notación
Esta sección proporciona una referencia concisa que describe la notación utilizada a lo largo
de este libro. Si no está familiarizado con alguno de los conceptos matemáticos
correspondientes, describimos la mayoría de estas ideas en los capítulos 2 a 4.
Números y matrices
a Un escalar (entero o real)
un vector
matriz AA
Un tensor
En
Matriz de identidad con n filas y n columnas
I
Matriz de identidad con dimensionalidad implícita por el contexto.
mi
(i)
Vector de base estándar [0, . . . .en
, 0]lacon un . , 0, 1, 0, . 1
posición i
diag(a) Una matriz diagonal cuadrada con entradas diagonales
dada por a
a Una variable aleatoria escalar
a Una variable aleatoria con valor vectorial
Una Una variable aleatoria matricial
xi
Machine Translated by Google
CONTENIDO
Conjuntos y gráficas
A
Un conjunto
R
El conjunto de los números reales.
{0, 1}
El conjunto que contiene 0 y 1.
{0, 1, . . . , n} El conjunto de todos los números enteros entre 0 y n
[a,b]
El intervalo real que incluye a y b
(a,b]
El intervalo real excluyendo a pero incluyendo b
A\B
Resta de conjuntos, es decir, el conjunto que contiene los
elementos de A que no están en B
GRAMO
Un gráfico
PaG(xi) Los padres de xi en G
Indexación
ai Elemento i del vector a, con indexación a partir de 1
a−i Todos los elementos del vector a excepto el elemento i
Ai,j Elemento i, j de la matriz A
Ai,: Fila i de la matriz A
A:,i Columna i de la matriz A
Ai,j,k Elemento (i, j, k) de un tensor A tridimensional
A:,:,i corte 2­D de un tensor 3­D
ai Elemento i del vector aleatorio a
Operaciones de álgebra lineal
A
Transpuesta de la matriz A
A+ Pseudoinverso de Moore­Penrose de A
A
B Producto elemental (Hadamard) de A y B
det(A) Determinante de A
xiii
Machine Translated by Google
CONTENIDO
Cálculo
dy
dx
Derivada de y con respecto a x
∂y
Derivada parcial de y con respecto a x
∂x
xy
Gradiente de y con respecto a x
Xy
Derivadas matriciales de y con respecto a X
Xy
Tensor que contiene derivadas de y con respecto a
∂f
∂x
Matriz jacobiana J
X
R
mxn
de f : R
norte
→ Salón
2xf(x) o H(f)(x) La matriz de Hesse de f en el punto de entrada x
Integral definida sobre todo el dominio de x
f(x)dx
Integral definida con respecto a x sobre el conjunto S
f(x)dx
S
Teoría de la probabilidad y la información
a
a
b
Las variables aleatorias a y b son independientes
b|C
Pensilvania)
Son condicionalmente independientes dado c
Una distribución de probabilidad sobre una variable discreta.
Una distribución de probabilidad sobre una variable
continua , o sobre una variable cuyo tipo no ha sido
Pensilvania)
especificado
un
Ex
P
La variable aleatoria a tiene distribución P
P[f(x)] o Ef(x) Expectativa de f(x) con respecto a P(x)
Var(f(x))
Cov(f(x), g(x))
Covarianza de f(x) y g(x) bajo P(x)
Entropía de Shannon de la variable aleatoria x
H(x)
DKL(P
Varianza de f(x) bajo P(x)
Q)
norte (x; µ, Σ)
Divergencia de Kullback­Leibler de P y Q
Distribución gaussiana sobre x con media µ y
covarianza Σ
xiii
Machine Translated by Google
CONTENIDO
Funciones
f : A → B La función f con dominio A y rango B
Composición de las funciones f y g
f ◦ gramo
f(x; θ) Una función de x parametrizada por θ. (A veces
escribimos f(x) y omitimos el argumento θ para aclarar
notación)
iniciar sesiónx
Logaritmo natural de x
σ(x)
Sigmoide logístico,
ζ(x)
Softplus, iniciar sesión(1 + exp(x))
||x||p ||
Norma Lp de x
x||
l
1
x+
2
1 + exp(−x)
norma de x
Parte positiva de x, es decir, max(0, x)
1condición
es 1 si la condición es verdadera, 0 en caso contrario
A veces usamos una función f cuyo argumento es un escalar pero lo aplicamos a un
vector, matriz o tensor: f(x), f(X) o f(X). Esto denota la aplicación de f
a la matriz por elementos. Por ejemplo, si C = σ(X), entonces Ci,j,k = σ(Xi,j,k) para todos
valores válidos de i, j y k.
Conjuntos de datos y distribuciones
pdatos
La distribución generadora de datos.
pˆdatos
La distribución empírica definida por la formación.
colocar
X
X
(yo) y
(i)
oy
Un conjunto de ejemplos de entrenamiento.
El i­ésimo ejemplo (entrada) de un conjunto de datos
(i) El objetivo asociado con x
(i) para aprendizaje
supervisado
X La matriz m × n con ejemplo de entrada x
Xi,:
xiv
(i) en fila
Machine Translated by Google
Capítulo 1
Introducción
Los inventores llevan mucho tiempo soñando con crear máquinas que piensen. Este
deseo 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
preguntó si tales máquinas podrían volverse inteligentes, más de cien años antes de que se
construyera una (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 el trabajo rutinario, comprender el habla o las imágenes, realizar
diagnósticos en medicina y respaldar la investigación científica básica.
En los primeros días de la inteligencia artificial, el campo abordó y resolvió rápidamente
problemas que son intelectualmente difíciles para los seres humanos pero relativamente sencillos
para las computadoras: problemas que pueden describirse mediante una lista de reglas
matemáticas formales. El verdadero desafío para la inteligencia artificial resultó ser resolver
tareas que son fáciles de realizar para las personas pero difíciles de describir formalmente:
problemas que resolvemos intuitivamente, que parecen automáticos, como reconocer palabras
habladas o rostros en imágenes.
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 una
jerarquía de conceptos, con cada concepto definido en términos de su relación con conceptos
más simples. Al recopilar conocimiento a partir de la experiencia, este enfoque evita la necesidad
de que los operadores humanos especifiquen formalmente todo el conocimiento que necesita la
computadora. La jerarquía de conceptos permite que la computadora aprenda conceptos
complicados construyéndolos a partir de otros más simples. Si dibujamos un gráfico que muestra cómo estos
1
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
Los conceptos se construyen uno encima del otro, el gráfico es profundo y tiene muchas capas. Por
esta razón, a este enfoque de la IA lo llamamos aprendizaje profundo.
Muchos de los primeros éxitos de la IA se produjeron en entornos relativamente
estériles y formales y no requirieron que las computadoras tuvieran mucho conocimiento
sobre el mundo. Por ejemplo, el sistema de ajedrez Deep Blue de IBM derrotó al campeón
mundial Garry Kasparov en 1997 (Hsu, 2002). El ajedrez es, por supuesto, un mundo muy
simple, que contiene sólo sesenta y cuatro ubicaciones y treinta y dos piezas que sólo
pueden moverse de maneras rígidamente circunscritas. Diseñar una estrategia de ajedrez
exitosa es un logro tremendo, pero el desafío no se debe a la dificultad de describir el
conjunto de piezas de ajedrez y los movimientos permitidos en la computadora. El ajedrez
se puede describir completamente mediante una lista muy breve de reglas completamente
formales, que el programador proporciona fácilmente con antelación.
Irónicamente, las tareas abstractas y formales que se encuentran entre las tareas mentales
más difíciles para un ser humano se encuentran entre las más fáciles para una computadora. Las
computadoras han sido capaces durante mucho tiempo de derrotar incluso al mejor jugador de
ajedrez humano, pero sólo recientemente están igualando algunas de las habilidades de los seres
humanos promedio para reconocer objetos o hablar. La vida cotidiana de una persona requiere
una inmensa cantidad de conocimiento sobre el 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 de la inteligencia artificial es cómo llevar este conocimiento informal a una computadora.
Varios proyectos de inteligencia artificial han buscado codificar el conocimiento sobre el
mundo en lenguajes formales. Una computadora puede razonar automáticamente sobre
declaraciones en estos lenguajes formales usando reglas de inferencia lógica. Esto se conoce
como enfoque de base de conocimientos para la inteligencia artificial. Ninguno de estos proyectos
ha conducido a un gran éxito. 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 idear reglas formales con suficiente complejidad para describir el
mundo con precisión. Por ejemplo, Cyc no entendió una historia sobre una persona llamada Fred
que se afeitaba por la mañana (Linde, 1992). Su motor de inferencia detectó una inconsistencia
en la historia: sabía que las personas no tienen partes eléctricas, pero como Fred sostenía una
máquina de afeitar eléctrica, creía que la entidad "FredWhileShaving" contenía partes eléctricas.
Por tanto, preguntó si Fred seguía siendo una persona mientras se afeitaba.
Las dificultades que enfrentan los sistemas que dependen de conocimientos codificados
sugieren que los sistemas de IA necesitan la capacidad de adquirir su propio conocimiento
extrayendo patrones a partir de datos sin procesar. Esta capacidad se conoce como aprendizaje automático. El
2
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
La introducción del aprendizaje automático permitió a las computadoras abordar problemas que
involucran conocimiento del mundo real y tomar decisiones que parecen subjetivas. Un algoritmo
simple de aprendizaje automático llamado regresión logística puede determinar si se recomienda
el parto por cesárea (Mor­Yosef et al., 1990). Un algoritmo simple de aprendizaje automático
llamado Naive Bayes puede separar el correo electrónico legítimo del correo electrónico no deseado.
El rendimiento de estos sencillos algoritmos de aprendizaje automático depende en gran
medida de la representación de los datos que se les proporcionan. Por ejemplo, cuando se
utiliza la regresión logística para recomendar un parto por cesárea, el sistema de IA no examina
a la paciente directamente. En cambio, el médico le dice al sistema varios datos relevantes,
como la presencia o ausencia de una cicatriz uterina. Cada dato incluido en la representación
del paciente se conoce como característica.
La regresión logística aprende cómo cada una de estas características del paciente se
correlaciona con diversos resultados. Sin embargo, no puede influir de ninguna manera en la
forma en que se definen las características. Si a la regresión logística se le aplicara una
resonancia magnética del paciente, en lugar del informe formalizado del médico, no se podrían
hacer predicciones útiles. Los píxeles individuales en una resonancia magnética tienen una
correlación insignificante con cualquier complicación que pueda ocurrir durante el parto.
Esta dependencia de las representaciones es un fenómeno general que aparece en toda la
informática e incluso en la vida cotidiana. En informática, operaciones como la búsqueda en una
colección de datos pueden realizarse exponencialmente más rápido si la colección se estructura
e indexa de manera inteligente. Las personas pueden realizar fácilmente aritmética con números
arábigos, pero la aritmética con números romanos les lleva mucho más tiempo. No sorprende
que la elección de la representación tenga un efecto enorme en el rendimiento de los algoritmos
de aprendizaje automático. Para ver un ejemplo visual sencillo , consulte la figura 1.1.
Muchas tareas de inteligencia artificial se pueden resolver diseñando el conjunto adecuado de
funciones que se extraerán para esa tarea y luego proporcionando estas funciones a un algoritmo
simple de aprendizaje automático. Por ejemplo, una característica útil para la identificación del
hablante a partir del sonido es una estimación del tamaño del tracto vocal del hablante. Por lo
tanto, da una clara pista sobre si el hablante es un hombre, una mujer o un niño.
Sin embargo, para muchas tareas, es difícil saber qué características se deben extraer.
Por ejemplo, supongamos que nos gustaría escribir un programa para detectar automóviles en
fotografías. Sabemos que los automóviles tienen ruedas, por lo que nos gustaría utilizar la
presencia de una rueda como característica. Desafortunadamente, es difícil describir
exactamente cómo se ve una rueda en términos de valores de píxeles. Una rueda tiene una
forma geométrica simple, pero su imagen puede complicarse por las sombras que caen sobre
la rueda, el sol reflejando las partes metálicas de la rueda, el guardabarros del automóvil o un
objeto en primer plano que oscurece parte de la rueda, etc. en.
3
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
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 el gráfico de
la izquierda, representamos algunos datos usando coordenadas cartesianas y la tarea es imposible.
En el gráfico de la derecha, representamos los datos con coordenadas polares y la tarea se vuelve
sencilla de resolver 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 desde la representación hasta la salida, sino también la representación misma.
Este enfoque se conoce como aprendizaje de representación . Las 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 una 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 en horas o meses. Diseñar manualmente funciones para una tarea compleja
requiere una gran cantidad de tiempo y esfuerzo humanos; Una comunidad entera de investigadores puede tardar déc
El ejemplo por excelencia de un algoritmo de aprendizaje de representación es el codificador
automático. Un codificador automático es la combinación de una función de codificador que convierte
los datos de entrada en una representación diferente y una función de decodificador que convierte la
nueva representación al formato original. Los codificadores automáticos están entrenados para
conservar la mayor cantidad de información posible cuando se ejecuta una entrada a través del
codificador y luego del decodificador, pero también están entrenados para hacer que la nueva
representación tenga varias propiedades interesantes. Los diferentes tipos de codificadores
automáticos tienen como objetivo lograr diferentes tipos de propiedades.
Al diseñar funciones o algoritmos para aprender funciones, nuestro objetivo suele ser separar los
factores de variación que explican los datos observados. En este contexto, utilizamos la palabra
“factores” simplemente para referirnos a fuentes de influencia separadas; Los factores generalmente
no se combinan mediante la multiplicación. Estos factores a menudo no son
4
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
cantidades que se observan directamente. En cambio, pueden existir como objetos no observados o
como fuerzas no observadas en el mundo físico que afectan cantidades observables.
También pueden existir como constructos en la mente humana que proporcionan explicaciones
simplificadoras útiles o causas inferidas de los datos observados. Se pueden considerar como conceptos
o abstracciones que nos ayudan a dar sentido a la rica variabilidad de los datos.
Al analizar una grabación de discurso, los factores de variación incluyen la edad del hablante , su sexo,
su acento y las palabras que pronuncia. Al analizar una imagen de un automóvil, los factores de variación
incluyen la posición del automóvil, su color y el ángulo y brillo del sol.
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 uno de los datos que podemos observar.
Los píxeles individuales en una imagen de un automóvil rojo pueden verse muy cercanos al negro por la
noche. La forma de la silueta del coche depende del ángulo de visión.
La mayoría de las aplicaciones requieren que desenredemos los factores de variación y descartemos los
que no nos importan.
Por supuesto, puede resultar muy difícil extraer características abstractas de tan alto
nivel a partir de datos sin procesar. Muchos de estos factores de variación, como el acento
del hablante, sólo pueden identificarse utilizando una comprensión sofisticada de los datos,
casi a nivel humano. Cuando es casi tan difícil obtener una representación como resolver
el problema original, el aprendizaje de la representación, a primera vista, no parece ayudarnos.
El aprendizaje profundo resuelve este problema central en el aprendizaje de representaciones al
introducir representaciones que se expresan en términos de otras representaciones más simples.
El aprendizaje profundo permite que la computadora construya conceptos complejos a partir de
conceptos más simples . La Figura 1.2 muestra cómo un sistema de aprendizaje profundo puede
representar el concepto de imagen de una persona combinando conceptos más simples, como
esquinas y contornos, que a su vez se definen en términos de bordes.
El ejemplo por excelencia de un modelo de aprendizaje profundo es la red profunda de
retroalimentación o perceptrón multicapa (MLP). Un perceptrón multicapa es simplemente
una función matemática que asigna un conjunto de valores de entrada a valores de salida.
La función se forma componiendo muchas funciones más simples. Podemos pensar que
cada aplicación de una función matemática diferente proporciona una nueva representación
de la entrada.
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 que
la computadora aprenda un programa informático de varios pasos. Cada capa de la representación puede
considerarse 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 más tarde
5
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
COCHE PERSONA ANIMAL
Salida
(identidad del objeto)
Tercera capa oculta
(partes del objeto)
2da capa oculta
(esquinas y
contornos)
1.ª capa oculta
(bordes)
Capa visible
(píxeles de entrada)
Figura 1.2: Ilustración de un modelo de aprendizaje profundo. Es difícil para una computadora
comprender el significado de los datos de entrada sensorial sin procesar, 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 complicada. Aprender o evaluar este mapeo parece insuperable si se aborda directamente.
El aprendizaje profundo resuelve esta dificultad dividiendo el complicado mapeo deseado en una
serie de mapeos simples anidados, cada uno descrito por una capa diferente del modelo. La
entrada se presenta en la capa visible, llamada así porque contiene las variables que podemos
observar. Luego, una serie de capas ocultas extraen características cada vez más abstractas de
la imagen. Estas capas se denominan "ocultas" porque sus valores no se proporcionan 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 fácilmente los bordes comparando el brillo de los píxeles vecinos. Dada la descripción
de los bordes de la primera capa oculta, la segunda capa oculta puede buscar fácilmente
esquinas y contornos extendidos, que son reconocibles como colecciones de bordes. Dada la
descripción de la imagen de la segunda capa oculta en términos de esquinas y contornos, la
tercera capa oculta puede detectar partes enteras de objetos específicos, al encontrar colecciones
específicas de contornos y esquinas. Finalmente, esta descripción de la imagen en términos de
las partes del objeto que contiene se puede utilizar para reconocer los objetos presentes en la
imagen. Imágenes reproducidas con autorización de Zeiler y Fergus (2014).
6
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
σ
Elemento
Colocar
+
×
σ
Elemento
Colocar
+
w1×
x1
×
w2
x2
Logístico
Logístico
Regresión
Regresión
w
X
Figura 1.3: Ilustración de gráficos computacionales que asignan 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 representado en estos gráficos es el resultado de un modelo de regresión logística, σ(wT x),
donde σ es la función sigmoidea logística. Si utilizamos la suma, la multiplicación y los sigmoideos
logísticos como elementos de nuestro lenguaje informático, entonces este modelo tiene profundidad tres.
Si consideramos la regresión logística como un elemento en sí mismo, entonces este modelo tiene profundidad uno.
Las instrucciones pueden hacer referencia 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 información de estado que ayuda a ejecutar un programa que puede entender la entrada.
Esta información de estado podría ser análoga a un contador o puntero en un programa
informático tradicional. No tiene nada que ver específicamente con el contenido de la
entrada, pero ayuda al modelo a organizar su procesamiento.
Hay dos formas principales de medir la profundidad de un modelo. La primera vista se
basa en la cantidad de instrucciones secuenciales que se deben ejecutar para evaluar la
arquitectura. Podemos pensar en esto como la longitud del camino más largo a través de un
diagrama de flujo que describe cómo calcular cada una de las salidas del modelo dadas sus
entradas. Así como dos programas de computadora equivalentes tendrán diferentes
longitudes dependiendo del idioma en el que esté escrito el programa, la misma función
puede dibujarse como un diagrama de flujo con diferentes profundidades dependiendo de
qué funciones permitimos que se utilicen como pasos individuales en el diagrama de flujo.
La Figura 1.3 ilustra cómo esta elección de lenguaje puede dar dos medidas diferentes para la misma arqui
Otro enfoque, utilizado por los modelos probabilísticos profundos, considera que la
profundidad de un modelo no es la profundidad del gráfico computacional sino la profundidad
del gráfico que describe cómo se relacionan los conceptos entre sí. En este caso, la profundidad
7
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
El diagrama de flujo de los cálculos necesarios para calcular la representación de cada concepto
puede ser mucho más profundo que el gráfico de los conceptos mismos.
Esto se debe a que la comprensión del sistema de los conceptos más simples se puede refinar dada
la información sobre los conceptos más complejos. Por ejemplo, un sistema de inteligencia artificial
que observe la imagen de una cara con un ojo en la sombra puede que inicialmente solo vea un ojo.
Después de detectar que hay una cara, puede inferir que probablemente también haya un
segundo ojo. En este caso, la gráfica de conceptos solo incluye dos capas (una capa para ojos y
una capa para caras), pero la gráfica de cálculos incluye 2n capas si refinamos nuestra estimación
de cada concepto considerando los otros n veces.
Debido a que no siempre está claro cuál de estos dos puntos de vista (la profundidad del
gráfico computacional o la profundidad del gráfico de modelado probabilístico) es más relevante,
y debido a que diferentes personas eligen diferentes conjuntos de elementos más pequeños a
partir de los cuales construir sus gráficos, hay No existe un valor único correcto para la profundidad
de una arquitectura, del mismo modo que no existe un valor único correcto para la longitud de un
programa de computadora. Tampoco hay consenso sobre cuánta profundidad requiere un modelo
para calificarlo como “profundo”. Sin embargo, el aprendizaje profundo puede considerarse con
seguridad como el estudio de modelos que implican una mayor cantidad de composición de
funciones aprendidas o conceptos aprendidos que el aprendizaje automático tradicional.
En resumen, el aprendizaje profundo, el tema de este libro, es una aproximación a la IA.
En concreto, se trata de un tipo de aprendizaje automático, una técnica que permite mejorar
los sistemas informáticos con experiencia y datos. Según los autores de este libro, el
aprendizaje automático es el único enfoque viable para construir sistemas de IA que
puedan operar en entornos complicados del mundo real. El aprendizaje profundo es un
tipo particular de aprendizaje automático que logra un gran poder y flexibilidad al aprender
a representar el mundo como una jerarquía anidada de conceptos, con cada concepto
definido en relación con conceptos más simples y representaciones más abstractas
calculadas en términos de otros menos abstractos. La Figura 1.4 ilustra la relación entre
estas diferentes disciplinas de IA. La Figura 1.5 ofrece un esquema de alto nivel de cómo funciona cada u
1.1 ¿Quién debería leer este libro?
Este libro puede ser útil para una variedad de lectores, pero lo escribimos teniendo en mente dos
públicos objetivos principales. Uno de estos públicos objetivo son los estudiantes universitarios
(de pregrado o posgrado) que aprenden sobre el aprendizaje automático, incluidos aquellos que
están comenzando una carrera en el aprendizaje profundo y la investigación en inteligencia
artificial. El otro público objetivo son los ingenieros de software que no tienen experiencia en
aprendizaje automático o estadística, pero que desean adquirir una rápidamente y comenzar a
utilizar el aprendizaje profundo en su producto o plataforma. El aprendizaje profundo ya ha demostrado ser útil en
8
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
Aprendizaje profundo
Ejemplo:
Poco profundo
Ejemplo:
codificadores automáticos
MLP
Ejemplo:
Ejemplo:
Logístico
Conocimiento
regresión
bases
Aprendizaje de representación
Aprendizaje automático
AI
Figura 1.4: Un diagrama de Venn que muestra cómo el aprendizaje profundo es un tipo de aprendizaje de representación.
que a su vez es una especie de aprendizaje automático, que se utiliza para muchos, pero no todos, los enfoques.
a la IA. Cada sección del diagrama de Venn incluye un ejemplo de tecnología de IA.
9
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
Producción
Producción
Mapeo de
Producción
características
Adicional
Producción
Mapeo de
capas de más
abstracto
Mapeo de
características
características
características
Mano­
Mano­
diseñado
características
programa
diseñadas
Aporte
Aporte
Funciones
Características
simples
Aporte
Aporte
Clásico
Basado en reglas
sistemas
Aprendizaje profundo
máquina
Aprendizaje de
aprendiendo
representación
Figura 1.5: Diagramas de flujo que muestran cómo se relacionan entre sí las diferentes partes de un sistema de
IA dentro de diferentes disciplinas de IA. Los cuadros sombreados indican componentes que pueden aprender
de los datos.
10
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
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 y finanzas en línea.
Este libro se ha organizado en tres partes para adaptarse mejor a 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 son esencialmente tecnologías
resueltas. La Parte III describe ideas más especulativas que se cree ampliamente que son importantes
para futuras investigaciones sobre aprendizaje profundo.
Los lectores deben sentirse libres de omitir partes que no sean relevantes según sus intereses o
antecedentes. Los lectores familiarizados con el álgebra lineal, la probabilidad y los conceptos
fundamentales del aprendizaje automático pueden omitir la parte I, por ejemplo, mientras que los
lectores que solo quieran implementar un sistema funcional no necesitan leer más allá de la parte II.
Para ayudar a elegir qué capítulos leer, la figura 1.6 proporciona un diagrama de flujo que muestra la
organización de alto nivel del libro.
Asumimos que todos los lectores tienen experiencia en informática. Asumimos familiaridad con la programación, una
comprensión básica de cuestiones de rendimiento computacional, teoría de la complejidad, cálculo de nivel introductorio y parte
de la terminología de la teoría de grafos.
1.2 Tendencias históricas en el aprendizaje profundo
Es más fácil comprender el aprendizaje profundo con algún contexto histórico. En lugar de proporcionar una historia detallada
del aprendizaje profundo, identificamos algunas tendencias clave:
• El aprendizaje profundo ha tenido una larga y rica historia, pero ha recibido muchos nombres que reflejan diferentes
puntos de vista filosóficos y su popularidad ha aumentado y disminuido.
• El aprendizaje profundo se ha vuelto más útil a medida que aumenta la cantidad de capacitación disponible.
los datos han aumentado.
• Los modelos de aprendizaje profundo han crecido en tamaño con el tiempo como infraestructura informática.
(tanto hardware como software) para el aprendizaje profundo ha mejorado.
• El aprendizaje profundo ha resuelto aplicaciones cada vez más complicadas con un aumento
precisión a lo largo del tiempo.
11
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
1. Introducción
Parte I: Conceptos básicos de matemáticas aplicadas y aprendizaje automático
3. Probabilidad y
2. Álgebra lineal
Teoría de la información
4. numérico
5. Aprendizaje automático
Cálculo
Lo esencial
Parte II: Redes profundas: prácticas modernas
6. Avance profundo
Redes
7. Regularización
9. CNN
8. Optimización
10. RNN
11. Práctico
12. Aplicaciones
Metodología
Parte III: Investigación sobre aprendizaje profundo
13. Factor lineal
Modelos
14. Codificadores automáticos
15. Aprendizaje de
representación
16. estructurado
17. Métodos de
Montecarlo
Modelos probabilísticos
18. Partición
19. Inferencia
Función
20. Modelos generativos
profundos
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 un material previo para comprender el segundo.
12
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
1.2.1 Los muchos nombres y las fortunas cambiantes de las redes neuronales
obras
Esperamos que muchos lectores de este libro hayan oído hablar del aprendizaje profundo
como una tecnología nueva e interesante y se sorprendan 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 sólo parece ser nuevo porque fue relativamente
impopular durante varios años antes de su popularidad actual, y porque ha pasado por
muchos nombres diferentes, y sólo recientemente se le ha llamado “aprendizaje profundo”.
El campo ha sido rebautizado 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
términos generales, ha habido tres oleadas de desarrollo del aprendizaje profundo: el
aprendizaje profundo conocido como cibernética en las décadas de 1940 y 1960, el 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. se ilustra cuantitativamente en la figura 1.7.
Algunos de los primeros algoritmos de aprendizaje que reconocemos hoy pretendían ser
modelos computacionales de aprendizaje biológico, es decir, modelos de cómo ocurre o
podría ocurrir el aprendizaje en el cerebro. Como resultado, uno de los nombres que se le ha
dado al aprendizaje profundo es el de redes neuronales artificiales (RNA). La perspectiva
correspondiente sobre los modelos de aprendizaje profundo es que son sistemas diseñados
inspirados en el cerebro biológico (ya sea el cerebro humano o el cerebro de otro animal).
Si bien los tipos de redes neuronales utilizadas para el aprendizaje automático a veces se
han utilizado para comprender la función cerebral (Hinton y Shallice, 1991), generalmente
no están diseñadas para ser modelos realistas de función biológica. La perspectiva neuronal
del aprendizaje profundo está motivada por dos ideas principales. Una idea es que el
cerebro proporciona una prueba mediante ejemplos de que el comportamiento inteligente
es posible, y un camino conceptualmente sencillo para desarrollar inteligencia es aplicar
ingeniería inversa a 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.
El término moderno "aprendizaje profundo" va más allá de la perspectiva neurocientífica
de la generación actual de modelos de aprendizaje automático. Apela a un principio más
general de aprender múltiples niveles de composición, que se puede aplicar en marcos de
aprendizaje automático que no necesariamente están inspirados neuronalmente.
13
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
0.000250
cibernética
0.000200
(conexionismo + redes neuronales)
frase
o
palabra
la
de
Frecuencia
0.000150
0.000100
0.000050
0.000000
1940
1950
1960
1970
1980
1990
2000
Año
Figura 1.7: La figura muestra dos de las tres oleadas históricas de investigación sobre redes
neuronales artificiales , medidas por la frecuencia de las frases “cibernética” y “conexionismo” o
“redes neuronales” según Google Books (la tercera oleada 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) y la implementación de los
primeros modelos como el perceptrón (Rosenblatt, 1958) que permitieron 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 una o dos capas
ocultas. La actual y tercera ola, el aprendizaje profundo, comenzó alrededor de 2006 (Hinton et
al., 2006; Bengio et al., 2007; Ranzato et al., 2007a), y recién ahora aparece en forma de libro a
partir de 2016. Las otras dos De manera similar, las ondas aparecieron en forma de libros mucho
más tarde de lo que ocurrió la actividad científica correspondiente.
14
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
Los primeros predecesores del aprendizaje profundo moderno fueron los modelos lineales simples.
motivado desde una perspectiva neurocientífica. Estos modelos fueron diseñados para
tome un conjunto de n valores de entrada x1 ,., . . xn y asociarlos con una salida y. wn y calcular su
Estos modelos aprenderían un conjunto de pesos w1 ,. . . , salida
∙ + xnwn. Esta primera ola de investigación sobre redes neuronales fue
f(x, w) = x1w1 + ∙ ∙
conocida como cibernética, como se ilustra en la figura 1.7.
La neurona McCulloch­Pitts (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 el modelo.
Para corresponder a la definición deseada de las categorías, los pesos debían ser
configurado correctamente. Estos pesos podrían ser establecidos por el operador humano. En la
década de 1950, el perceptrón (Rosenblatt, 1958, 1962) se convirtió en el primer modelo que podía aprender
los pesos que definen las categorías dan ejemplos de entradas de cada categoría.
El elemento lineal adaptativo (ADALINE), que data aproximadamente del mismo
tiempo, simplemente devolvió el valor de f(x) para predecir un número real (Widrow
y Hoff, 1960), y también podría aprender a predecir estos números a partir de datos.
Estos simples algoritmos de aprendizaje afectaron en gran medida el panorama moderno del aprendizaje
automático. El algoritmo de entrenamiento utilizado para adaptar los pesos del ADALINE
Fue un caso especial de un algoritmo llamado descenso de gradiente estocástico. Levemente
Las versiones modificadas del algoritmo de descenso de gradiente estocástico siguen siendo las dominantes.
Algoritmos de entrenamiento para modelos de aprendizaje profundo en la actualidad.
Los modelos basados en f(x, w) utilizados por el perceptrón y ADALINE se denominan
modelos lineales. Estos modelos siguen siendo algunas de las máquinas más utilizadas.
modelos de aprendizaje, aunque en muchos casos se entrenan de manera diferente a la
Se entrenaron modelos originales.
Los modelos lineales tienen muchas limitaciones. Lo más famoso es que no pueden aprender el
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 provocaron
una reacción contra el aprendizaje biológicamente inspirado en general (Minsky y Papert, 1969).
Esta fue la primera caída importante en la popularidad de las redes neuronales.
Hoy en día, la neurociencia se considera una importante fuente de inspiración para investigaciones profundas.
investigadores del aprendizaje, pero ya no es la guía predominante para el campo.
La razón principal del papel disminuido de la neurociencia en el aprendizaje profundo
La investigación actual es que simplemente no tenemos suficiente información sobre el cerebro.
para usarlo como guía. Obtener una comprensión profunda de los algoritmos reales utilizados.
por el cerebro, necesitaríamos poder monitorear la actividad (al mismo tiempo)
al menos) miles de neuronas interconectadas simultáneamente. porque no lo somos
capaces de hacer esto, estamos lejos de entender incluso algunos de los más simples y
15
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
partes del cerebro bien estudiadas (Olshausen y Field, 2005).
La neurociencia nos ha dado motivos para esperar que un único algoritmo de aprendizaje profundo
pueda 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 reconectados
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 utilizar un único algoritmo para resolver la mayoría de las diferentes
tareas que resuelve el cerebro. Antes de esta hipótesis, la investigación sobre el aprendizaje automático
estaba más fragmentada, con diferentes comunidades de investigadores que estudiaban el procesamiento
del lenguaje natural, la visión, la planificación del movimiento y el reconocimiento del habla. Hoy en día,
estas comunidades de aplicaciones todavía están separadas, pero es común que los grupos de
investigación de aprendizaje profundo estudien muchas o incluso todas estas áreas de aplicación simultáneamente.
Podemos extraer algunas pautas aproximadas de la neurociencia. La idea básica de tener muchas
unidades computacionales que se vuelven inteligentes sólo a través de sus interacciones entre sí está
inspirada en el cerebro. El Neocognitron (Fukushima, 1980) introdujo una poderosa arquitectura modelo
para procesar imágenes que se inspiró en la estructura del sistema visual de los mamíferos y luego se
convirtió en la base de la red convolucional moderna (LeCun et al., 1998b), como veremos en sección
9.10. La mayoría de las redes neuronales actuales se basan en un modelo de neurona llamado unidad
lineal rectificada. El Cognitron original (Fukushima, 1975) introdujo una versión más complicada que
estaba muy inspirada en nuestro conocimiento de la función cerebral. La versión moderna simplificada
se desarrolló incorporando ideas desde muchos puntos de vista, con Nair y Hinton (2010) y Glorot et al.
(2011a) citando la neurociencia como una influencia, y Jarrett et al. (2009) citando influencias más
orientadas a la ingeniería. Si bien la neurociencia es una importante fuente de inspiración, no es
necesario tomarla como una guía rígida. Sabemos que las neuronas reales calculan funciones muy
diferentes a las de las modernas unidades lineales rectificadas, pero un mayor realismo neuronal aún
no ha conducido a una mejora en el rendimiento del aprendizaje automático. Además, si bien la
neurociencia ha inspirado con éxito varias arquitecturas de redes neuronales, todavía no sabemos lo
suficiente sobre el aprendizaje biológico como para que la neurociencia pueda ofrecer mucha orientación
para los algoritmos de aprendizaje que utilizamos para entrenar estas arquitecturas.
Los informes 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 del aprendizaje profundo citen al cerebro
como una influencia que los investigadores que trabajan en otros campos del aprendizaje automático,
como las máquinas kernel o las estadísticas bayesianas, no se debe ver el aprendizaje profundo
como un intento de simular el cerebro. El aprendizaje profundo moderno se inspira en muchos
campos, especialmente en los fundamentos matemáticos aplicados como el álgebra lineal, la
probabilidad, la teoría de la información y la optimización numérica. Mientras que algunos
investigadores del aprendizaje profundo citan la neurociencia como una importante fuente de inspiración, a otros no le
dieciséis
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
neurociencia en absoluto.
Vale la pena señalar que el esfuerzo por comprender cómo funciona el cerebro a 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 vayan y vengan entre ambos campos. El campo del aprendizaje
profundo se ocupa principalmente de cómo construir sistemas informáticos que sean capaces de
resolver con éxito tareas que requieren inteligencia, mientras que el campo de la neurociencia
computacional se ocupa principalmente de construir modelos más precisos de cómo funciona realmente
el cerebro.
En la década de 1980, la segunda ola de investigación sobre redes neuronales surgió en gran
parte a través de un movimiento llamado conexionismo o procesamiento distribuido paralelo (Rumelhart
et al., 1986c; McClelland et al., 1995). El conexionismo surgió en el contexto de la ciencia cognitiva. La
ciencia cognitiva es un enfoque interdisciplinario para comprender la mente, que combina múltiples
niveles diferentes de análisis. A principios de la década de 1980, la mayoría de los científicos cognitivos
estudiaron modelos de razonamiento simbólico.
A pesar de su popularidad, los modelos simbólicos eran difíciles de explicar en términos de
cómo el cerebro podía realmente implementarlos utilizando neuronas. Los conexionistas
comenzaron a estudiar modelos de cognición que en realidad podrían basarse en
implementaciones neuronales (Touretzky y Minton, 1985), reviviendo muchas ideas que se
remontaban al trabajo del psicólogo Donald Hebb en la década de 1940 (Hebb, 1949).
La idea central del conexionismo es que una gran cantidad de unidades computacionales simples
pueden lograr un comportamiento inteligente cuando se conectan en red. Esta idea se aplica igualmente a
las neuronas de los sistemas nerviosos biológicos y a las unidades ocultas de los modelos computacionales.
Varios conceptos clave surgieron durante el movimiento conexionista de la década de 1980 y siguen
siendo fundamentales para el aprendizaje profundo actual.
Uno de estos conceptos es el de representación distribuida (Hinton et al., 1986). Esta es la idea de
que cada entrada a un sistema debe estar representada por muchas características, y cada característica
debe participar en la representación de muchas entradas posibles. Por ejemplo, supongamos que
tenemos un sistema de visión que puede reconocer automóviles, camiones y pájaros, y cada uno de
estos objetos puede ser rojo, verde o azul. Una forma de representar estas entradas sería tener una
neurona separada o unidad oculta que se active para cada una de las nueve combinaciones posibles:
camión rojo, automóvil rojo, pájaro rojo, camión verde, etc. Esto requiere nueve neuronas diferentes, y
cada neurona debe aprender de forma independiente el concepto de color y de identidad del objeto.
Una forma de mejorar esta situación es utilizar una representación distribuida, con tres neuronas que
describen el color y tres neuronas que describen la identidad del objeto. Esto requiere sólo seis
neuronas en total en lugar de nueve, y la neurona que describe el enrojecimiento es capaz de
17
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
aprenda sobre el enrojecimiento a partir de imágenes de automóviles, camiones y pájaros, no solo de imágenes
de una categoría específica de objetos. El concepto de representación distribuida es
central para este libro y se describirá con mayor detalle en el capítulo 15.
Otro logro importante del movimiento conexionista fue el uso exitoso de la
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.
Durante la década de 1990, los investigadores lograron importantes avances en el modelado de secuencias.
con redes neuronales. Hochreiter (1991) y Bengio et al. (1994) identificaron algunos de
las dificultades matemáticas fundamentales en el modelado de secuencias largas, descritas en
sección 10.7. Hochreiter y Schmidhuber (1997) introdujeron el largo plazo
memoria o red LSTM para resolver algunas de estas dificultades. Hoy, el LSTM
Se utiliza ampliamente para muchas tareas de modelado de secuencias, incluidas muchas tareas de lenguaje natural.
Procesamiento de tareas en Google.
La segunda ola de investigación sobre redes neuronales duró hasta mediados de la década de 1990. Las
empresas basadas en redes neuronales y otras tecnologías de inteligencia artificial comenzaron a hacer afirmaciones
ambiciosas y poco realistas mientras buscaban inversiones. Cuando la investigación de la IA no cumplió
Estas expectativas irrazonables, los inversores quedaron decepcionados. Al mismo
tiempo, otros campos del aprendizaje automático lograron avances. Las máquinas Kernel
(Boser et al., 1992; Cortes y Vapnik, 1995; Schölkopf et al., 1999) y los modelos gráficos
(Jordan , 1998) lograron buenos resultados en muchas tareas importantes. Estos dos factores
condujo a una disminución en la popularidad de las redes neuronales que duró hasta 2007.
Durante este tiempo, las redes neuronales continuaron obteniendo un rendimiento impresionante.
en algunas tareas (LeCun et al., 1998b; Bengio et al., 2001). El Instituto Canadiense
para la Investigación Avanzada (CIFAR) ayudó a mantener viva la investigación sobre redes neuronales
a través de su iniciativa de investigación de Computación Neural y Percepción Adaptativa (NCAP).
Este programa unió a grupos de investigación de aprendizaje automático dirigidos por Geoffrey Hinton.
en la Universidad de Toronto, Yoshua Bengio en la Universidad de Montreal y Yann
LeCun en la Universidad de Nueva York. La iniciativa de investigación CIFAR NCAP tuvo un
carácter multidisciplinario que incluía también a neurocientíficos y expertos en humanos.
y visión por computadora.
En ese momento, en general se creía que las redes profundas eran muy difíciles
entrenar. Ahora sabemos que los algoritmos que han existido desde los años 1980 funcionan
bastante bien, pero esto no era evidente alrededor de 2006. El problema tal vez sea simplemente que
Estos algoritmos eran demasiado costosos desde el punto de vista computacional para permitir mucha experimentación.
con el hardware disponible en ese momento.
La tercera ola de investigación sobre redes neuronales comenzó con un gran avance en
18
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
2006. Geoffrey Hinton demostró que un tipo de red neuronal llamada red de creencias
profundas podría entrenarse eficientemente utilizando una estrategia llamada preentrenamiento
codicioso por capas (Hinton et al., 2006), que se describirá con más detalle en la sección 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 ayudaron sistemáticamente a mejorar la generalización en
ejemplos de prueba. Esta ola de investigación sobre redes neuronales popularizó el uso del
término "aprendizaje profundo" para enfatizar que los investigadores ahora podían entrenar
redes neuronales más profundas de lo que había sido posible antes, y centrar la atención en la
importancia teórica de la profundidad (Bengio y LeCun, 2007) . ; Delalleau y Bengio, 2011;
Pascanu et al . , 2014a ; En ese momento, las redes neuronales profundas superaron a los
sistemas de IA de la competencia basados en otras tecnologías de aprendizaje automático, así
como en funcionalidades diseñadas 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 del aprendizaje profundo ha cambiado dramáticamente durante esta ola. La tercera
ola comenzó centrándose en nuevas técnicas de aprendizaje no supervisado y en la capacidad
de los modelos profundos para generalizar bien a partir de pequeños conjuntos de datos, pero
hoy en día hay más interés en algoritmos de aprendizaje supervisado mucho más antiguos y en
la capacidad de los modelos profundos para aprovechar grandes conjuntos de datos etiquetados.
1.2.2 Aumento del tamaño de los conjuntos de datos
Cabe preguntarse por qué el aprendizaje profundo ha sido reconocido recientemente como
una tecnología crucial, aunque los primeros experimentos con redes neuronales artificiales
se llevaron a cabo en la década de 1950. El aprendizaje profundo se ha utilizado con éxito
en aplicaciones comerciales desde la década de 1990, pero hasta hace poco se consideraba
más un arte que una tecnología y algo que sólo un experto podía utilizar. Es cierto que se
requiere cierta habilidad para obtener un buen rendimiento de un algoritmo de aprendizaje profundo.
Afortunadamente, la cantidad de habilidad requerida se reduce a medida que aumenta la cantidad
de datos de entrenamiento. Los algoritmos de aprendizaje que alcanzan el desempeño humano
en tareas complejas hoy en día son casi idénticos a los algoritmos de aprendizaje que lucharon
por resolver problemas de juguetes en la década de 1980, aunque los modelos que entrenamos
con estos algoritmos han sufrido cambios que simplifican el entrenamiento de arquitecturas muy
profundas. La novedad más importante es que hoy podemos proporcionar a estos algoritmos los
recursos que necesitan para tener éxito. La Figura 1.8 muestra cómo el tamaño de los conjuntos
de datos de referencia ha aumentado notablemente con el tiempo. Esta tendencia está impulsada
por la creciente digitalización de la sociedad. A medida que más y más actividades se llevan a
cabo en computadoras, más y más de lo que hacemos queda registrado. A medida que nuestras
computadoras están cada vez más conectadas en red, resulta más fácil centralizar estos registros y conservarlos.
19
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
en un conjunto de datos apropiado para aplicaciones de aprendizaje automático. La era del “Big Data”
ha hecho que el aprendizaje automático sea mucho más fácil porque la carga clave de la estimación
estadística (generalizar bien a datos nuevos después de observar solo una pequeña cantidad de
datos) se ha aligerado considerablemente. A partir de 2016, una regla general es que un algoritmo
de aprendizaje profundo supervisado generalmente logrará un rendimiento aceptable con alrededor
de 5000 ejemplos etiquetados por categoría, e igualará o superará el rendimiento humano cuando se
entrene con un conjunto de datos que contenga al menos 10 millones de ejemplos etiquetados.
Trabajar con éxito con conjuntos de datos más pequeños es un área de investigación importante,
centrándose en particular en cómo podemos aprovechar grandes cantidades de ejemplos sin
etiquetar, con aprendizaje no supervisado o semisupervisado .
1.2.3 Aumento del tamaño del modelo
Otra razón clave por la que las redes neuronales tienen un gran éxito hoy después de haber disfrutado
de un éxito comparativamente pequeño desde la década de 1980 es que hoy tenemos los recursos
computacionales para ejecutar modelos mucho más grandes. Una de las principales ideas del
conexionismo es que los animales se vuelven inteligentes cuando muchas de sus neuronas trabajan juntas.
Una neurona individual o un pequeño grupo de neuronas no es particularmente útil.
Las neuronas biológicas no están especialmente conectadas. Como se ve en la figura 1.10,
nuestros modelos de aprendizaje automático han tenido una cantidad de conexiones por neurona que
estuvo dentro de un orden de magnitud incluso de los cerebros de los mamíferos durante décadas.
En términos del número total de neuronas, las redes neuronales han sido sorprendentemente
pequeñas hasta hace muy poco, como se muestra en la figura 1.11. Desde la introducción de unidades
ocultas, las redes neuronales artificiales han duplicado su 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 tareas
más complejas. Parece que esta tendencia continuará durante décadas. A menos que las nuevas
tecnologías permitan un escalamiento más rápido, las redes neuronales artificiales no tendrán la misma
cantidad de neuronas que 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 biológicas pueden ser incluso más grandes de lo que representa este gráfico.
En retrospectiva, no es particularmente sorprendente que las redes neuronales con menos
neuronas que una sanguijuela fueran incapaces de resolver problemas sofisticados de inteligencia
artificial . Incluso las redes actuales, que consideramos bastante grandes desde el punto de vista de
los sistemas computacionales, son más pequeñas que el sistema nervioso incluso de animales
vertebrados relativamente primitivos como las ranas.
El aumento del tamaño del modelo con el tiempo, debido a la disponibilidad de CPU más rápidas,
20
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
9 10
Hansard canadiense
8 10
WMT
7 10
SVHN público
6 10
criminales
ILSVRC 2014
ImagenNet
numéricos)
(ejemplos
datos
de
conjunto
del
Tamaño
5 10
Deportes­1M
ImagenNet10k
4 10
MNIST
CIFAR­10
3 10
T contra G contra F
2 10
T rotada contra C
Iris
1 10
10 0
1900
1950
1985 2000 2015
Año
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 estudiaban conjuntos de datos utilizando cientos o miles de mediciones
compiladas manualmente (Garson, 1900; Gosset, 1908; Anderson, 1935; Fisher, 1936). Entre los años 1950
y 1980, los pioneros del aprendizaje automático de inspiración biológica trabajaron a menudo 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 et al., 1986b). En las décadas de 1980 y
1990, el aprendizaje automático adquirió una naturaleza más estadística y comenzó a aprovechar conjuntos
de datos más grandes que contenían 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, se siguieron produciendo conjuntos de datos más sofisticados del mismo
tamaño, como el conjunto de datos CIFAR­10 (Krizhevsky y Hinton, 2009) . Hacia finales de esa década y
durante la primera mitad de la década de 2010, conjuntos de datos significativamente más grandes, que
contenían entre cientos de miles y decenas de millones de ejemplos, cambiaron por completo lo que era posible con el aprend
Estos conjuntos de datos incluían el conjunto de datos público Street View House Numbers (Netzer et al.,
2011), varias versiones del conjunto de datos ImageNet (Deng et al., 2009, 2010a; Russakovsky et al., 2014a)
y el conjunto de datos Sports­1M ( Karpathy et al., 2014). En la parte superior del gráfico, vemos que los
conjuntos de datos de oraciones traducidas, como el conjunto de datos de IBM construido a partir del conjunto
de datos canadiense Hansard (Brown et al., 1990) y el conjunto de datos de inglés a francés WMT 2014
(Schwenk, 2014) suelen estar muy por delante de otros tamaños de conjuntos de datos.
21
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
Figura 1.9: Ejemplos de entradas del conjunto de datos MNIST. El "NIST" significa Instituto Nacional de
Estándares y Tecnología, la agencia que originalmente recopiló estos datos.
La "M" significa "modificado", ya que los datos han sido preprocesados 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ígitos del 0 al 9 están contenidos 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 de
aprendizaje profundo. Sigue siendo popular a pesar de ser bastante fácil de resolver con las técnicas modernas.
Geoffrey Hinton la ha descrito como “la drosophila del aprendizaje automático”, lo que significa que permite a los
investigadores del aprendizaje automático estudiar sus algoritmos en condiciones de laboratorio controladas, de forma
muy parecida a como los biólogos suelen estudiar las moscas de la fruta.
22
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
La llegada de las GPU de uso general (descritas en la sección 12.1.2), una conectividad de
red más rápida y una mejor infraestructura de software para la computación distribuida es
una de las tendencias más importantes en la historia del aprendizaje profundo. En general,
se espera que esta tendencia continúe en el futuro.
1.2.4 Aumento de la precisión, la complejidad y el impacto en el mundo real
Desde la década de 1980, el aprendizaje profundo ha mejorado constantemente en su capacidad para
proporcionar un reconocimiento o predicción precisos. Además, el aprendizaje profundo se ha aplicado
sistemáticamente y con éxito a conjuntos de aplicaciones cada vez más amplios.
Los primeros modelos profundos se utilizaron para reconocer objetos individuales en
imágenes extremadamente pequeñas y muy recortadas (Rumelhart et al., 1986a). Desde
entonces ha habido un aumento gradual en el tamaño de las imágenes que las redes neuronales
pueden procesar. Las redes modernas de reconocimiento de objetos procesan fotografías ricas
en alta resolución y no requieren que la foto se recorte cerca del objeto a reconocer (Krizhevsky
et al., 2012). De manera similar, las primeras redes sólo podían reconocer dos tipos de objetos
(o, en algunos casos, la ausencia o presencia de un único tipo de objeto), mientras que estas
redes modernas suelen reconocer al menos 1.000 categorías diferentes de objetos. El concurso
más grande en reconocimiento de objetos es el ImageNet Large Scale Visual Recognition
Challenge (ILSVRC) que se lleva a cabo cada año. Un momento dramático en el meteórico
ascenso del aprendizaje profundo se produjo cuando una red convolucional ganó este desafío
por primera vez y por un amplio margen, reduciendo la tasa de error de los cinco principales de
última generación del 26,1% al 15,3% ( Krizhevsky et al., 2012), lo que significa que la red
convolucional produce una lista clasificada de posibles categorías para cada imagen y la
categoría correcta apareció en las primeras cinco entradas de esta lista para todos menos el
15,3% de los ejemplos de prueba. Desde entonces, estas competencias las ganan
consistentemente redes convolucionales profundas y, al momento de escribir este artículo, los
avances en el aprendizaje profundo han reducido la última tasa de error entre los 5 principales
en esta competencia al 3,6%, como se muestra en la figura 1.12.
El aprendizaje profundo también ha tenido un impacto dramático en el reconocimiento de voz.
Después de mejorar a lo largo de la década de 1990, las tasas de error para el reconocimiento de voz
se estancaron a partir del año 2000 aproximadamente. La introducción del aprendizaje profundo (Dahl
et al., 2010; Deng et al., 2010b; Seide et al., 2011; Hinton et al., 2012a) al reconocimiento de voz dio
lugar a una caída repentina de las tasas de error, y algunas tasas de error se redujeron a la mitad.
Exploraremos esta historia con más detalle en la sección 12.3.
Las redes profundas también han tenido éxitos espectaculares en la detección de peatones
y la segmentación de imágenes (Sermanet et al., 2013; Farabet et al., 2013; Couprie et al.,
2013) y han producido un rendimiento sobrehumano en la clasificación de señales de tráfico (Ciresan
23
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
10
4
Humano
6
7
4
3
Gato
Ratón
2
neurona
por
Conexiones
10
9
10
5
8
2 10
3
mosca de la fruta
1
1 10
1950
1985
2000
2015
Año
Figura 1.10: Inicialmente, la cantidad de conexiones entre neuronas en redes neuronales artificiales
estaba limitada por las capacidades del hardware. Hoy en día, el número de conexiones entre
neuronas es principalmente una consideración de diseño. Algunas redes neuronales artificiales
tienen casi tantas conexiones por neurona como un gato, y es bastante común que otras redes
neuronales tengan tantas conexiones por neurona como mamíferos más pequeños como los
ratones. Ni siquiera el cerebro humano tiene una cantidad exorbitante de conexiones por neurona.
Tamaños de redes neuronales biológicas de Wikipedia (2015).
1. Elemento lineal adaptativo (Widrow y Hoff, 1960)
2. Neocognitrón (Fukushima, 1980)
3. Red convolucional acelerada por GPU (Chellapilla et al., 2006)
4. Máquina de Boltzmann profunda (Salakhutdinov y Hinton, 2009a)
5. Red convolucional no supervisada (Jarrett et al., 2009)
6. Perceptrón multicapa acelerado por GPU (Ciresan et al., 2010)
7. Codificador automático distribuido (Le et al., 2012)
8. Red convolucional multi­GPU (Krizhevsky et al., 2012)
9. Red convolucional no supervisada COTS HPC (Coates et al., 2013)
10. GoogLeNet (Szegedy et al., 2014a)
24
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
et al., 2012).
Al mismo tiempo que ha aumentado la escala y la precisión de las redes profundas,
también ha aumentado la complejidad de las tareas que pueden resolver. Goodfellow et al. (2014d)
demostró que las redes neuronales podían aprender a generar una secuencia completa de caracteres
transcrito a partir de una imagen, en lugar de simplemente 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 a punto de revolucionar
otra aplicación: la traducción automática (Sutskever et al., 2014; Bahdanau et al.,
2015).
Esta tendencia de creciente complejidad ha sido llevada a su conclusión lógica.
con la introducción de máquinas neuronales de Turing (Graves et al., 2014a) que aprenden
para leer desde celdas de memoria y escribir contenido arbitrario en celdas de memoria. Semejante
Las redes neuronales pueden aprender programas simples a partir de ejemplos de comportamiento deseado. Para
Por ejemplo, pueden aprender a ordenar listas de números dados ejemplos de códigos codificados y
secuencias ordenadas. Esta tecnología de autoprogramación está en su infancia, pero en el
En principio, el futuro podría aplicarse a casi cualquier tarea.
Otro logro supremo del aprendizaje profundo es su extensión al dominio de
aprendizaje reforzado. En el contexto del aprendizaje por refuerzo, un autónomo
El agente debe aprender a realizar una tarea mediante prueba y error, sin ninguna guía de parte de él.
el operador humano. DeepMind demostró que un sistema de aprendizaje por refuerzo
basado en aprendizaje profundo es capaz de aprender a jugar videojuegos de Atari, alcanzando
desempeño a nivel humano en muchas tareas (Mnih et al., 2015). El aprendizaje profundo tiene
También mejoró significativamente el rendimiento del aprendizaje por refuerzo para robótica.
(Finn et al., 2015).
Muchas de estas aplicaciones de aprendizaje profundo son altamente rentables. Aprendizaje profundo
Ahora lo utilizan muchas empresas de tecnología importantes, incluidas Google, Microsoft,
Facebook, IBM, Baidu, Apple, Adobe, Netflix, NVIDIA y NEC.
Los avances en el aprendizaje profundo también han dependido en gran medida de los avances en el software.
infraestructura. 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.
El aprendizaje profundo también ha hecho contribuciones a otras ciencias. Moderno
Las redes convolucionales para el reconocimiento de objetos proporcionan un modelo de procesamiento visual.
25
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
que los neurocientíficos pueden estudiar (DiCarlo, 2013). El aprendizaje profundo también proporciona
herramientas útiles para procesar cantidades masivas de datos y realizar predicciones útiles en campos
científicos. Se ha utilizado con éxito para predecir cómo interactuarán las moléculas con el fin de ayudar
a las compañías farmacéuticas a diseñar nuevos medicamentos (Dahl et al., 2014), buscar partículas
subatómicas (Baldi et al., 2014) y analizar automáticamente las imágenes microscópicas utilizadas. para
construir un mapa tridimensional del cerebro humano (Knowles­ Barley et al., 2014). Esperamos que el
aprendizaje profundo aparezca en cada vez más campos científicos en el futuro.
En resumen, el aprendizaje profundo es un enfoque del aprendizaje automático que se ha
basado en gran medida en nuestro conocimiento del cerebro humano, las estadísticas y las
matemáticas aplicadas a medida que se desarrolló durante las últimas décadas. En los últimos
años, ha experimentado un enorme crecimiento en su popularidad y utilidad, debido en gran parte
a computadoras más potentes , conjuntos de datos más grandes y técnicas para entrenar redes
más profundas. Los años venideros están llenos de desafíos y oportunidades para mejorar aún más
el aprendizaje profundo y llevarlo a nuevas fronteras.
26
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
10
10
11
Humano
10
17
9
8
7
6
19
dieciséis
10
10
8
10
10
5 10
10
20
Rana
3
Abeja
4
Hormiga
3
2
logarítmica)
(escala
neuronas
de
Número
1
0
Pulpo
18
14
11
10
10
Sanguijuela
13
10
1
2
6
10
12
5
4
10­1 10­2
1950
9
7
15
Lombriz intestinal
10
1985 2000 2015
2056
Esponja
Año
Figura 1.11: Desde la introducción de unidades ocultas, las redes neuronales artificiales han duplicado su
tamaño aproximadamente cada 2,4 años. Tamaños de redes neuronales biológicas de Wikipedia (2015).
1. Perceptrón (Rosenblatt, 1958, 1962)
2. Elemento lineal adaptativo (Widrow y Hoff, 1960)
3. Neocognitrón (Fukushima, 1980)
4. Red temprana de retropropagación (Rumelhart et al., 1986b)
5. Red neuronal recurrente para el reconocimiento de voz (Robinson y Fallside, 1991)
6. Perceptrón multicapa para reconocimiento de voz (Bengio et al., 1991)
7. Red de creencias sigmoidea del campo medio (Saul et al., 1996)
8. LeNet­5 (LeCun et al., 1998b)
9. Red estatal Echo (Jaeger y Haas, 2004)
10. Red de creencias profundas (Hinton et al., 2006)
11. Red convolucional acelerada por GPU (Chellapilla et al., 2006)
12. Máquina profunda de Boltzmann (Salakhutdinov y Hinton, 2009a)
13. Red de creencias profundas acelerada por GPU (Raina et al., 2009)
14. Red convolucional no supervisada (Jarrett et al., 2009)
15. Perceptrón multicapa acelerado por GPU (Ciresan et al., 2010)
16. Red OMP­1 (Coates y Ng, 2011)
17. Codificador automático distribuido (Le et al., 2012)
18. Red convolucional multi­GPU (Krizhevsky et al., 2012)
19. Red convolucional no supervisada COTS HPC (Coates et al., 2013)
20. GoogLeNet (Szegedy et al., 2014a)
27
Machine Translated by Google
CAPÍTULO 1 INTRODUCCIÓN
0,30
0,25
ILSVRC
clasificación
error
de
Tasa
0,20
0,15
0,10
0,05
0.00
2010
2011
2012
2013
2014
2015
Año
Figura 1.12: Desde que las redes profundas alcanzaron la escala necesaria para competir en ImageNet
Desafío de reconocimiento visual a gran escala, han ganado consistentemente 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).
28
Machine Translated by Google
Parte I
Matemáticas Aplicadas y Máquinas
Conceptos básicos de aprendizaje
29
Machine Translated by Google
Esta parte del libro presenta los conceptos matemáticos básicos necesarios para
comprender el aprendizaje profundo. Comenzamos con ideas generales de matemáticas
aplicadas que nos permiten definir funciones de muchas variables, encontrar los puntos más
altos y más bajos de estas funciones y cuantificar grados de creencia.
A continuación, describimos los objetivos fundamentales del aprendizaje automático. Describimos
cómo lograr estos objetivos especificando un modelo que represente ciertas creencias, diseñando una
función de costos que mida qué tan bien esas creencias se corresponden con la realidad y usando un
algoritmo de entrenamiento para minimizar esa función de costos.
Este marco elemental es la base de una amplia variedad de algoritmos de aprendizaje automático,
incluidos enfoques de aprendizaje automático que no son profundos. En las partes siguientes del libro,
desarrollaremos algoritmos de aprendizaje profundo dentro de este marco.
30
Machine Translated by Google
Capitulo 2
Álgebra lineal
El álgebra lineal es una rama de las matemáticas que se utiliza ampliamente en las
ciencias y la ingeniería. Sin embargo, debido a que el álgebra lineal es una forma de
matemática continua en lugar de discreta, muchos informáticos tienen poca experiencia con ella.
Una buena comprensión del álgebra lineal es esencial para comprender y trabajar con muchos
algoritmos de aprendizaje automático, especialmente algoritmos de aprendizaje profundo. Por lo
tanto, precedemos nuestra introducción al aprendizaje profundo con una presentación centrada
en los requisitos previos clave del álgebra lineal.
Si ya está familiarizado con el álgebra lineal, no dude en saltarse este capítulo. Si
tiene experiencia previa con estos conceptos pero necesita una hoja de referencia
detallada para revisar fórmulas clave, le recomendamos The Matrix Cookbook (Petersen
y Pedersen, 2006). Si no tiene ningún contacto con el álgebra lineal, este capítulo le
enseñará lo suficiente como para leer este libro, pero le recomendamos encarecidamente
que consulte también otro recurso centrado exclusivamente en la enseñanza del álgebra
lineal, como Shilov (1977). Este capítulo omitirá por completo muchos temas importantes
de álgebra lineal que no son esenciales para comprender el aprendizaje profundo.
2.1 Escalares, Vectores, Matrices y Tensores
El estudio del álgebra lineal involucra varios tipos de objetos matemáticos:
• Escalares: un escalar es solo un número, a diferencia de la mayoría de los otros
objetos estudiados en álgebra lineal, que generalmente son matrices de números múltiples.
Escribimos escalares en cursiva. Generalmente damos nombres de variables escalares en minúsculas.
Cuando los presentamos, especificamos qué tipo de número son. Para
31
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
Por ejemplo, podríamos decir “Sea s
de valor real, o “Sea n
naturales.
R la pendiente de la recta”, mientras definimos un escalar
N el número de unidades”, mientras definimos un escalar de números
• Vectores: Un vector es una matriz de números. Los números están ordenados . Podemos identificar
cada número individual por su índice en ese orden.
Normalmente damos a los vectores nombres en minúsculas escritos en negrita, como x . Los
elementos del vector se identifican escribiendo su nombre en cursiva, con un subíndice. El primer
elemento de x es x1, el segundo elemento es x2 y así sucesivamente. También necesitamos decir
qué tipo de números se almacenan en el vector. Si cada elemento está en R, y el vector tiene n
elementos, entonces el vector se encuentra en el conjunto formado al tomar el producto cartesiano
de R n veces, denotado como R
norte
. Cuando necesitamos identificar explícitamente los elementos de un vector, los
escribimos como una columna entre corchetes:
x1
x=
x2
..
.
(2.1)
.xn
Podemos pensar en los vectores como puntos de identificación en el espacio, donde cada elemento
proporciona la coordenada a lo largo de un eje diferente.
A veces necesitamos indexar un conjunto de elementos de un vector. En este caso, definimos un
conjunto que contiene los índices y escribimos el conjunto como un subíndice. Por ejemplo, para
acceder a x1, x3 y x6, definimos el conjunto S = {1, 3, 6} y escribimos xS. Usamos el signo ­ para
indexar el complemento de un conjunto. Por ejemplo, x−1 es el vector que contiene todos los elementos
de x excepto x1, y x−S es el vector que contiene todos los elementos de x excepto x1, x3 y x6 .
• Matrices: una matriz es una matriz bidimensional de números, por lo que cada elemento se identifica
mediante dos índices en lugar de solo uno. Generalmente damos a las matrices nombres de
variables en mayúsculas y en negrita, como A. Si una matriz A de valor real tiene una altura de my
mxn . normalmente nosotros
un ancho de n, entonces decimos que A
R identifica los elementos de una
matriz usando su nombre en cursiva pero no en negrita, y los índices se enumeran con comas de
separación. Por ejemplo, A1,1 es la entrada superior izquierda de A y Am,n es la entrada inferior
derecha. Podemos identificar todos los números con coordenada vertical i escribiendo un ":" para
la coordenada horizontal. Por ejemplo, Ai: denota la sección transversal horizontal de A con
coordenada vertical i. Esto se conoce como la i­ésima fila de A. Asimismo, A:,i es
32
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
Una =
A1,1 A1,2
A2,1 A2,2
A3,1 A3,2
A
=
A1,2
A1,1A2,2
A2,1A3,2
A3,1
Figura 2.1: La transpuesta de la matriz se puede considerar como una imagen especular a lo largo de la
diagonal principal.
la i­ésima columna de A. Cuando necesitamos identificar explícitamente los elementos
de una matriz, los escribimos como una matriz entre corchetes:
A2,1
A1,1A2,2
A1,2
.
(2.2)
A veces es posible que necesitemos indexar expresiones con valores
matriciales que no son solo una letra. En este caso, usamos subíndices
después de la expresión, pero no convertimos nada a minúsculas. Por ejemplo,
f(A)i,j da el elemento (i, j) de la matriz calculada aplicando la función f a A.
• Tensores: En algunos casos necesitaremos un arreglo con más de dos ejes.
En el caso general, una matriz de números dispuestos en una cuadrícula regular con un
número variable de ejes se conoce como tensor. Denotamos un tensor llamado “A” con este
tipo de letra: A. Identificamos el elemento de A en las coordenadas (i, j, k) escribiendo Ai,j,k.
Una operación importante sobre matrices es la transpuesta. La transpuesta de una matriz
es la imagen especular de la matriz a través de una línea diagonal, llamada diagonal principal,
que corre hacia abajo y hacia la derecha, comenzando desde su esquina superior izquierda.
Consulte la figura 2.1 para ver una representación gráfica de esta operación. Denotamos la
transpuesta de una matriz A como A , y se define tal que
(A
)i,j = Aj,i.
Los vectores pueden considerarse como matrices que contienen una sola columna. La
transpuesta de un vector es, por tanto, una matriz con una sola fila. Algunas veces nosotros
33
(2.3)
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
defina un vector escribiendo sus elementos en el texto en línea como una matriz de filas, luego use el operador
de transposición para convertirlo en un vector de columna estándar, por ejemplo, x = [x1, x2, x3 ]
.
Un escalar puede considerarse como una matriz con una sola entrada. A partir de esto, nosotros
Podemos ver que un escalar es su propia transpuesta: a = a
.
Podemos sumar matrices entre sí, siempre que tengan la misma forma, solo
sumando sus correspondientes elementos: C = A + B donde Ci,j = Ai,j + Bi,j .
También podemos sumar un escalar a una matriz o multiplicar una matriz por un escalar,
simplemente realizando esa operación en cada elemento de una matriz: D = a ∙ B + c donde Di,j = a ∙
Bi,j + c.
En el contexto del aprendizaje profundo, también utilizamos alguna notación menos convencional.
Permitimos la suma de una matriz y un vector, lo que produce otra matriz: C = A +b, donde Ci,j = Ai,j
+ bj . En otras palabras, el vector b se suma a cada fila de la matriz. Esta abreviatura elimina la
necesidad de definir una matriz con b copiado en cada fila antes de realizar la suma. Esta copia
implícita de b en muchos lugares se llama radiodifusión.
2.2 Multiplicación de matrices y vectores
Una de las operaciones más importantes con matrices es la multiplicación de dos matrices. El
producto matricial de las matrices A y B es una tercera matriz C. Para que se defina este producto, A
debe tener el mismo número de columnas que B tiene filas. Si A tiene forma m × n y B tiene forma n
× p, entonces C tiene forma m × p. Podemos escribir el producto matricial simplemente colocando
dos o más matrices juntas, por ejemplo
C = AB.
(2.4)
El funcionamiento del producto está definido por
Ci,j =
Ai,kBk,j .
(2.5)
k
Tenga en cuenta que el producto estándar de dos matrices no es sólo una matriz que contiene el
producto de los elementos individuales. Esta operación existe y se denomina producto de elementos
o producto de Hadamard, y se denota como A
B.
El producto escalar entre dos vectores xey de la misma dimensionalidad es el producto matricial
x
y. Podemos pensar que el producto matricial C = AB calcula Ci ,j como el producto escalar entre
la fila i de A y la columna j de B.
34
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
Las operaciones con productos matriciales tienen muchas propiedades útiles que hacen que el
análisis matemático de matrices sea más conveniente. Por ejemplo, la multiplicación de matrices es
distributiva:
A(B + C) = AB + AC.
(2.6)
También es asociativo:
A(BC) = (AB)C. (2.7)
La multiplicación de matrices no es conmutativa (la condición AB = BA no siempre se cumple), a diferencia de
la multiplicación escalar. Sin embargo, el producto escalar entre dos vectores es conmutativo:
x
y=y
x.
(2.8)
La transpuesta de un producto matricial tiene una forma simple:
(AB)
=B
.
A
(2.9)
Esto nos permite demostrar la ecuación 2.8, aprovechando el hecho de que el valor
de dicho producto es un escalar y, por tanto, igual a su propia transpuesta:
x
y=
x
y
=y
x.
(2.10)
Dado que el enfoque de este libro de texto no es el álgebra lineal, no intentamos desarrollar aquí una
lista completa de propiedades útiles del producto matricial, pero el lector debe tener en cuenta que existen
muchas más.
Ahora sabemos suficiente notación de álgebra lineal para escribir un sistema de ecuaciones lineales:
hacha = b
donde A
mxn
R es un vector
es una
conocido
matriz conocida,
yx
R es
b unRvector de variables desconocidas que
metro
(2.11)
norte
es un
nos gustaría resolver. Cada elemento xi de x es una de estas variables desconocidas. Cada fila
de A y cada elemento de b proporcionan otra restricción. Podemos reescribir la ecuación 2.11
como:
A1:x = b1
(2.12)
A2,:x = b2
(2.13)
...
Soy:x = bm
(2.14)
(2.15)
o, aún más explícitamente, como:
A1,1x1 + A1,2x2 + ∙ ∙ ∙ + A1,nxn = b1
35
(2.16)
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
100
010
001
Figura 2.2: Ejemplo de matriz de identidad: Esta es I3.
A2,1x1 + A2,2x2 + ∙ ∙ ∙ + A2,nxn = b2
...
(2.17)
(2.18)
A m,1x1 + Am,2x2 + ∙ ∙ ∙ + Am,nxn = bm .
(2.19)
La notación de producto matricial­vectorial proporciona una representación más compacta para
ecuaciones de esta forma.
2.3 Identidad y matrices inversas
El álgebra lineal ofrece una poderosa herramienta llamada inversión de matrices que nos permite
resuelva analíticamente la ecuación 2.11 para muchos valores de A.
Para describir la inversión de matrices, primero debemos definir el concepto de identidad.
matriz. Una matriz identidad es una matriz que no cambia ningún vector cuando
multiplica ese vector por esa matriz. Denotamos la matriz de identidad que preserva
vectores n­dimensionales como In. Formalmente, En
x
Rn×n , y
R , Inx = x.
norte
(2.20)
La estructura de la matriz de identidad es simple: todas las entradas a lo largo de la matriz principal
diagonal son 1, mientras que todas las demás entradas son cero. Consulte la figura 2.2 para ver un ejemplo.
La matriz inversa de A se denota como A−1, y se define como la matriz
tal que
A −1A = Pulg.
(2.21)
Ahora podemos resolver la ecuación 2.11 mediante los siguientes pasos:
hacha = b
(2.22)
A−1Ax = A−1b
(2.23)
Inx = A −1b
(2.24)
36
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
x = A­1b.
(2.25)
Por supuesto, este proceso depende de que sea posible encontrar A−1 . Discutimos
las condiciones para la existencia de A­1 en la siguiente sección.
Cuando existe A−1 , existen varios algoritmos diferentes para encontrarlo en forma cerrada.
En teoría, la misma matriz inversa se puede utilizar para resolver la ecuación muchas veces
−1
para diferentes valores de b. Sin embargo, A es principalmente
útil como herramienta teórica
y en realidad no debería usarse en la práctica para la mayoría de las aplicaciones de software.
Debido a que A−1 se puede representar con precisión limitada en una computadora digital, los
algoritmos que utilizan el valor de b generalmente pueden obtener estimaciones más precisas de x.
2.4 Dependencia lineal y alcance
Para que exista A−1 , la ecuación 2.11 debe tener exactamente una solución para cada valor de b. Sin
embargo, también es posible que el sistema de ecuaciones no tenga soluciones o tenga infinitas
soluciones para algunos valores de b. No es posible tener más de una, pero sí menos de una infinidad
de soluciones para un b particular; si tanto x como y son soluciones entonces
z = αx + (1 − α)y
(2.26)
también es una solución para cualquier α real.
Para analizar cuántas soluciones tiene la ecuación, podemos pensar que las columnas de A
especifican diferentes direcciones en las que podemos viajar desde el origen (el punto especificado por
el vector de todos ceros) y determinar cuántas formas hay de llegar a b. En esta vista, cada elemento de
x especifica qué tan lejos debemos viajar en cada una de estas direcciones, y xi especifica qué tan lejos
debemos movernos en la dirección de la columna i:
Ax =
(2.27)
xiA:,i.
i
En general, este tipo de operación se denomina combinación lineal. Formalmente, una combinación
. . ,multiplicar
lineal de algún conjunto de vectores {v (1) v (n)} viene dada, .por
cada vector
(i) mediante un coeficiente escalar correspondiente y sumando los resultados:
(yo)
civilización
.
(2.28)
i
El lapso de un conjunto de vectores es el conjunto de todos los puntos que se pueden obtener mediante combinación
lineal de los vectores originales.
37
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
Por lo tanto , determinar si Ax = b tiene solución equivale a probar si b está en el intervalo
de las columnas de A. Este intervalo particular se conoce como espacio de columnas o rango
de A.
Para que el sistema Ax = b tenga solución para todos los valores de b
R m,
por lo tanto, requerimos que el espacio columna de A sea todo R m. Si algún punto en R
se excluye del espacio columna, ese punto es un valor potencial de b que no tiene solución.
El requisito de que el espacio de columnas de A sea todo Rm implica inmediatamente que A
debe tener al menos m columnas, es decir, n ≥ m. De lo contrario, la dimensionalidad del
metro
espacio de la columna sería menor que m. Por ejemplo, considere una matriz de 3 × 2. El
objetivo b es 3­D, pero x es solo 2­D, por lo que se modifica el valor de x . La ecuación tiene
3
en el mejor de los casos nos permite trazar un plano 2­D dentro
solución.
de R si y sólo si b se encuentra en ese plano.
Tener n ≥ m es sólo una condición necesaria para que cada punto tenga solución.
No es una condición suficiente, porque es posible que algunas de las columnas sean redundantes.
Considere una matriz de 2 × 2 donde ambas columnas son idénticas.
Tiene el mismo espacio de columna que una matriz de 2 × 1 que contiene solo una copia de
la columna replicada. En otras palabras, el espacio de la columna sigue siendo solo una
línea y no abarca todo ,R2.
aunque hay dos columnas.
Formalmente, este tipo de redundancia se conoce como dependencia lineal. Un conjunto de
vectores es linealmente independiente si ningún vector del conjunto es una combinación lineal de los
otros vectores. Si agregamos un vector a un conjunto que es una combinación lineal de los otros
vectores del conjunto, el nuevo vector no agrega ningún punto al conjunto del conjunto. Esto significa
que para que el espacio de columnas de la matriz abarque todo R m, la matriz debe contener al menos
un conjunto de m columnas linealmente independientes. Esta condición es necesaria y suficiente para
que la ecuación 2.11 tenga una solución para cada valor de b. Tenga en cuenta que el requisito es que
un conjunto tenga exactamente m columnas lineales independientes, no al menos m. Ningún conjunto
de vectores m­dimensionales puede tener más de m columnas mutuamente linealmente independientes,
pero una matriz con más de m columnas puede tener más de uno de esos conjuntos.
Para que la matriz tenga inversa, además debemos asegurarnos de que la ecuación 2.11 tenga
como máximo una solución para cada valor de b. Para hacerlo, debemos asegurarnos de que la matriz
tenga como máximo m columnas. De lo contrario, existe más de una forma de parametrizar cada
solución.
En conjunto, esto significa que la matriz debe ser cuadrada, es decir, requerimos que m
= n y que todas las columnas deben ser linealmente independientes. Una matriz cuadrada
con columnas linealmente dependientes se conoce como singular.
Si A no es cuadrado o es cuadrado pero singular, aún es posible resolver la ecuación.
Sin embargo, no podemos utilizar el método de inversión de matrices para encontrar el
38
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
solución.
Hasta ahora hemos analizado las inversas de matrices multiplicadas por la izquierda. Es
También es posible definir una inversa que se multiplica por la derecha:
Automóvil club británico
−1
= yo.
(2.29)
Para matrices cuadradas, la inversa izquierda y la inversa derecha son iguales.
2.5 Normas
A veces necesitamos medir el tamaño de un vector. En el aprendizaje automático, normalmente
medimos el tamaño de los vectores mediante una función llamada norma. Formalmente, la L norma
p está dada por
1
pag
(2.30)
||x||p =
para p
i |xi|p
R, p ≥ 1.
Las normas, incluida la norma L p , son funciones que asignan vectores a valores no negativos .
A nivel intuitivo, la norma de un vector x mide la distancia desde el origen hasta el punto x. Más
rigurosamente, una norma es cualquier función f que satisface las siguientes propiedades:
• f (x) = 0
x=0
• f (x + y) ≤ f(x) + f (y) (la desigualdad del triángulo)
•
El l
α
R, f (αx) = |α|f (x)
2
La norma, con p = 2, se conoce como norma euclidiana. Es simplemente la norma
Distancia euclidiana desde el origen hasta el punto identificado por x. La L se usa con
2
tanta frecuencia en el aprendizaje automático que a menudo se denota simplemente como ||x||, con
el subíndice 2 omitido. También es común medir el tamaño de un vector usando la L al cuadrado.
2
norma, que se puede calcular simplemente como x
x.
2
Es más conveniente
trabajar matemáticamente con la norma L al cuadrado y con la
computacionalmente superior 2 norma misma. Por ejemplo, las derivadas de la norma
elemento 2 a L con respecto a cada elemento de x dependen cada una solo del
correspondiente L al cuadrado de x, mientras que todas las derivadas de la norma L2
2
dependen del vector completo. En muchos contextos, la norma
L al cuadrado puede ser
indeseable porque aumenta muy lentamente cerca del origen. En varios aprendizaje automático.
39
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
aplicaciones, es importante discriminar entre elementos que son exactamente
cero y elementos que son pequeños pero distintos de cero. En estos casos recurrimos a una función.
que crece al mismo ritmo en todas las localidades, pero conserva la simplicidad matemática:
La norma puede simplificarse a
1 la L
1 norma. El l
|xi |.
||x||1 =
(2.31)
i
El l
1
La norma se usa comúnmente en el aprendizaje automático cuando la diferencia entre
Los elementos cero y distintos de cero son muy importantes. Cada vez que un elemento de x se mueve
lejos de 0 por
, la L
1
La norma aumenta en
.
A veces medimos el tamaño del vector contando su número de elementos distintos de cero.
0 elementos. Algunos autores se refieren a esta función como “L
norma”, pero esto es incorrecto
terminología. El número de entradas distintas de cero en un vector no es una norma, porque
escalar el vector en α no cambia el número de entradas distintas de cero. La L1
La norma se utiliza a menudo como sustituto del número de entradas distintas de cero.
Otra norma que surge comúnmente en el aprendizaje automático es la norma L∞ ,
También conocida como norma máxima. Esta norma se simplifica al valor absoluto de la
elemento con la mayor magnitud en el vector,
||x||∞ = máx.
|xi|.
i
(2.32)
A veces también podemos querer medir el tamaño de una matriz. En el contexto
del aprendizaje profundo, la forma más común de hacerlo es con el, de otro modo, oscuro
Norma de Frobenius:
A2yo, j ,
||A|| F
=
(2.33)
i ,j
que es análogo a la norma L2 de un vector.
El producto escalar de dos vectores se puede reescribir en términos de normas. Específicamente,
x
y = ||x||2||y|| 2 porque θ
(2.34)
donde θ es el ángulo entre xey.
2.6 Tipos especiales de matrices y vectores
Algunos tipos especiales de matrices y vectores son particularmente útiles.
Las matrices diagonales constan principalmente de ceros y tienen entradas distintas de cero sólo a lo largo de
la diagonal principal. Formalmente, una matriz D es diagonal si y sólo si Di,j = 0 para
40
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
todo yo
= j . Ya hemos visto un ejemplo de matriz diagonal: la matriz identidad, donde todas las entradas
diagonales son 1. Escribimos diag(v) para denotar una matriz diagonal cuadrada cuyas entradas
diagonales están dadas por las entradas del vector v.
Las matrices diagonales son de interés en parte porque multiplicar por una matriz diagonal es
muy eficiente desde el punto de vista computacional. Para calcular diag(v)x, solo necesitamos
escalar cada elemento xi por vi. En otras palabras, diag(v)x = v
x. Invertir una matriz diagonal
cuadrada también es eficaz. Lo inverso existe sólo si cada entrada diagonal es distinta de cero, ,
en ese caso, diag(v)−1 = diag([1/v1, . . . derivar algún 1/vn ] ). En muchos casos, podemos y
algoritmo de aprendizaje automático muy general en términos de matrices arbitrarias, pero
obtener un algoritmo menos costoso (y menos descriptivo). ) algoritmo restringiendo algunas
matrices para que sean diagonales.
No todas las matrices diagonales necesitan ser cuadradas. Es posible construir una matriz diagonal
rectangular. Las matrices diagonales no cuadradas no tienen inversas, pero aún así es posible
multiplicarlas de forma económica. Para una matriz diagonal no cuadrada D, el producto Dx implicará
escalar cada elemento de x y concatenar algunos ceros al resultado si D es más alto que ancho, o
descartar algunos de los últimos elementos del vector si D es más ancho que alto.
Una matriz simétrica es cualquier matriz que sea igual a su propia transpuesta:
A=A
.
(2.35)
Las matrices simétricas suelen surgir cuando las entradas son generadas por alguna función
de dos argumentos que no depende del orden de los argumentos. Por ejemplo, si A es una
matriz de medidas de distancia, donde Ai,j da la distancia desde el punto i al punto j,
entonces Ai,j = Aj,i porque las funciones de distancia son simétricas.
Un vector unitario es un vector con norma unitaria:
||x||2 = 1.
(2.36)
Un vector x y un vector y son ortogonales entre sí si x
y = 0. Si ambos vectores tienen una norma
distinta de cero, esto significa que forman un ángulo de 90 grados entre sí. En R, como máximo, n
vectores pueden,ser mutuamente ortogonales con una norma distinta de cero.
norte
Si los vectores no sólo son ortogonales sino que también tienen norma unitaria, los llamamos ortonormales.
Una matriz ortogonal es una matriz cuadrada cuyas filas son mutuamente ortogonales.
mal y cuyas columnas son mutuamente ortonormales:
A
A = AA
41
= I.
(2.37)
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
Esto implica que
A−1 = A
,
(2.38)
por lo que las matrices ortogonales son de interés porque su inversa es muy barata de calcular.
Preste especial atención a la definición de matrices ortogonales. Contrariamente a la intuición,
sus filas no son meramente ortogonales sino completamente ortonormales. no hay nada especial
Término para una matriz cuyas filas o columnas son ortogonales pero no ortonormales.
2.7 Descomposición propia
Muchos objetos matemáticos se pueden entender mejor dividiéndolos en
partes constituyentes, o encontrar algunas propiedades de ellas que sean universales, no causadas
por la forma en que elegimos representarlos.
Por ejemplo, los números enteros se pueden descomponer en factores primos. la forma en que nosotros
representar el número 12 cambiará dependiendo de si lo escribimos en base diez
o en binario, pero siempre será cierto que 12 = 2×2 ×3. De esta representación
podemos concluir propiedades útiles, como que 12 no es divisible por 5, o que cualquier
un múltiplo entero de 12 será divisible por 3.
Por mucho que podamos descubrir algo sobre la verdadera naturaleza de un número entero
descomponiéndolo en factores primos, también podemos descomponer matrices de manera que
mostrarnos información sobre sus propiedades funcionales que no sea obvia a partir del
representación de la matriz como una matriz de elementos.
Uno de los tipos de descomposición matricial más utilizados se llama descomposición propia, en la que
descomponemos una matriz en un conjunto de vectores propios y
valores propios.
Un vector propio de una matriz cuadrada A es un vector v distinto de cero tal que multi­
La aplicación de A altera sólo la escala de v:
Av = λv.
(2.39)
El escalar λ se conoce como el valor propio correspondiente a este vector propio. (Uno
También podemos encontrar un vector propio izquierdo tal que v
A = λv
, pero generalmente somos
relacionados con vectores propios derechos).
Si v es un vector propio de A, entonces también lo es cualquier vector reescalado sv para s
R, s
= 0.
Además, sv todavía tiene el mismo valor propio. Por esta razón, normalmente sólo miramos
para vectores propios unitarios.
Supongamos que una matriz A tiene n vectores propios linealmente independientes, {v (1)
v (n)}, con sus correspondientes valores propios {λ1, . . . , λn}. Podemos concatenar todos los
42
,. ..,
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
Figura 2.3: Un ejemplo del efecto de vectores propios y valores propios. Aquí tenemos
(2) con
una matriz A con dos vectores propios ortonormales, v(1) con valor propio λ1 y v
valor propio λ2. (Izquierda) Trazamos el conjunto de todos los vectores unitarios u
R
2 como círculo unitario. (Derecha) Nosotros
trazar el conjunto de todos los puntos Au. Al observar la forma en que A distorsiona el círculo unitario, obtenemos
Puedes ver que escala el espacio en la dirección v.(i) por λi .
vectores propios para formar una matriz V con un vector propio por columna: V = [v (1) , . . . ,
v (n) ]. Asimismo, podemos concatenar los valores propios para formar un vector λ = [λ1 , . . . ,
λn]
. La descomposición propia de A viene dada entonces por
A = Vdiag(λ)V
−1 .
(2.40)
Hemos visto que construir matrices con valores propios y vectores propios específicos nos permite
estirar el espacio en las direcciones deseadas. Sin embargo, muchas veces queremos
descomponer matrices en sus valores propios y vectores propios. Hacerlo puede ayudar
analizar ciertas propiedades de la matriz, de manera muy parecida a descomponer un número entero
en sus factores primos puede ayudarnos a comprender el comportamiento de ese número entero.
No todas las matrices se pueden descomponer en valores propios y vectores propios. En algunos
43
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
En algunos casos, la descomposición existe, pero puede involucrar números complejos en lugar de números reales.
Afortunadamente, en este libro normalmente necesitamos descomponer sólo una clase
específica de matrices que tienen una descomposición simple. Específicamente, cada matriz
simétrica real se puede descomponer en una expresión utilizando solo vectores propios y
valores propios de valores reales :
A = QΛQ ,
(2.41)
donde Q es una matriz ortogonal compuesta por vectores propios de A y Λ es una matriz diagonal. El
valor propio Λi,i está asociado con el vector propio en la columna i de Q, denotado como Q:,i. Debido
a que Q es una matriz ortogonal, podemos pensar en A como (i) escalar el espacio en λi en la
dirección v. Consulte la figura 2.3 para ver un ejemplo.
Si bien se garantiza que cualquier matriz simétrica real A tendrá una descomposición
propia , ésta puede no ser única. Si dos o más vectores propios comparten el mismo valor
propio, entonces cualquier conjunto de vectores ortogonales que se encuentren en su
intervalo también son vectores propios con ese valor propio, y de manera equivalente
podríamos elegir una Q usando esos vectores propios. Por convención, normalmente
ordenamos las entradas de Λ en orden descendente. Según esta convención, la
descomposición propia es única sólo si todos los valores propios son únicos.
La descomposición propia de una matriz nos brinda muchos datos útiles sobre la matriz. La
matriz es singular si y sólo si alguno de los valores propios es cero.
La descomposición propia de una matriz simétrica real también se puede utilizar para optimizar
Ax sujeto a ||x||2
f(x) = x es igual a un vector propio de A, f toma el valor del = 1. Siempre que x expresiones cuadráticas de la forma
valor propio correspondiente.
El valor máximo de f dentro de la región de restricción es el valor propio máximo y su valor
mínimo dentro de la región de restricción es el valor propio mínimo.
Una matriz cuyos valores propios son todos positivos se llama definida positiva. Una
matriz cuyos valores propios son todos positivos o de valor cero se llama semidefinida
positiva. Del mismo modo, si todos los valores propios son negativos, la matriz es definida
negativa, y si todos los valores propios son negativos o de valor cero, es semidefinida
negativa. Las matrices semidefinidas positivas son interesantes porque garantizan que x, x
Las matrices definidas positivas garantizan además que x Ax = 0
x = 0.
2.8 Descomposición de valores singulares
En la sección 2.7, vimos cómo descomponer una matriz en vectores propios y valores propios.
La descomposición de valores singulares (SVD) proporciona otra forma de factorizar una matriz
en vectores singulares y valores singulares. La SVD nos permite descubrir parte del mismo tipo
de información que la descomposición propia. Sin embargo,
44
Ax ≥ 0.
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
la SVD es de aplicación más general. Toda matriz real tiene un valor singular.
descomposición, pero no ocurre lo mismo con la descomposición de valores propios. Para
Por ejemplo, si una matriz no es cuadrada, la descomposición propia no está definida y
debe utilizar una descomposición de valores singulares en su lugar.
Recuerde que la descomposición propia implica analizar una matriz A para descubrir
una matriz V de vectores propios y un vector de valores propios λ tal que podamos reescribir
un como
−1 .
A = Vdiag(λ)V
(2.42)
La descomposición del valor singular es similar, excepto que esta vez escribiremos A
como producto de tres matrices:
A = UDV
.
(2.43)
Supongamos que A es una matriz m ×n . Entonces U se define como una matriz m ×m ,
D es una matriz de m × n y V es una matriz de n × n.
Cada una de estas matrices se define para tener una estructura especial. Las matrices U
y V se definen como matrices ortogonales. La matriz D se define como
una matriz diagonal. Tenga en cuenta que D no es necesariamente cuadrado.
Los elementos a lo largo de la diagonal de D se conocen como valores singulares de
la matriz A. Las columnas de U se conocen como vectores singulares izquierdos. El
Las columnas de V se conocen como vectores singulares derechos.
De hecho, podemos interpretar la descomposición en valores singulares de A en términos de
la descomposición propia de funciones de A . Los vectores singulares izquierdos de A son los
vectores propios de AA
. Los vectores singulares derechos de A son los vectores propios de A
Los valores singulares distintos de cero de A son las raíces cuadradas de los valores propios de A
Lo mismo ocurre con AA .
A.
A.
Quizás la característica más útil del SVD es que podemos usarlo para parcialmente
generalizar la inversión de matrices a matrices no cuadradas, como veremos en el siguiente
sección.
2.9 La pseudoinversa de Moore­Penrose
La inversión de matrices no está definida para matrices que no son cuadradas. Supongamos que queremos
hacer una inversa B por la izquierda de una matriz A, de modo que podamos resolver una ecuación lineal
hacha = y
45
(2.44)
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
multiplicando por la izquierda cada lado para obtener
x = Por.
(2.45)
Dependiendo de la estructura del problema, puede que no sea posible diseñar un mapeo
único de A a B.
Si A es más alto que ancho, entonces es posible que esta ecuación no tenga solución. Si A es más
ancho que alto, entonces podría haber múltiples soluciones posibles.
La pseudoinversa de Moore­Penrose nos permite hacer algunos avances en estos
casos. La pseudoinversa de A se define como una matriz.
A+ = lim α
0(A
A + αI) −1A
.
(2.46)
Los algoritmos prácticos para calcular la pseudoinversa no se basan en esta definición ,
sino más bien en la fórmula
A+ = VD +U ,
(2.47)
donde U, D y V son la descomposición en valores singulares de A, y la pseudoinversa
D+ de una matriz diagonal D se obtiene tomando el recíproco de sus elementos
distintos de cero y luego tomando la transpuesta de la matriz resultante.
Cuando A tiene más columnas que filas, resolver una ecuación lineal usando la pseudoinversa
proporciona una de las muchas soluciones posibles. Específicamente, proporciona la solución x = A+ y
con norma euclidiana mínima ||x||2 entre todas las soluciones posibles.
Cuando A tiene más filas que columnas, es posible que no haya solución.
En este caso, usar la pseudoinversa nos da la x para la cual Ax está lo más cerca
posible de y en términos de la norma euclidiana ||Ax − y||2.
2.10 El operador de seguimiento
El operador de traza da la suma de todas las entradas diagonales de una matriz:
Tr(A) =
Ai,i.
(2.48)
i
El operador de seguimiento es útil por diversas razones. Algunas operaciones que
son difíciles de especificar sin recurrir a la notación de suma se pueden especificar usando
46
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
productos matriciales y el operador de seguimiento. Por ejemplo, el operador trace proporciona
una forma alternativa de escribir la norma de Frobenius de una matriz:
||A||F =
Tr(AA
(2.49)
).
Escribir una expresión en términos del operador de seguimiento abre oportunidades para
manipular la expresión utilizando muchas identidades útiles. Por ejemplo, el operador de
seguimiento es invariante con respecto al operador de transposición:
Tr(A) = Tr(A)
).
(2.50)
La traza de una matriz cuadrada compuesta por muchos factores también es invariante al
mover el último factor a la primera posición, si las formas de las matrices correspondientes
permiten definir el producto resultante:
Tr(ABC) = Tr(CAB) = Tr(BCA)
(2.51)
o más en general,
Tr(
n F (i)) = Tr(F (n) n
yo=1
−1
F (i) ).
(2.52)
yo=1
Esta invariancia a la permutación cíclica se mantiene incluso si el producto resultante tiene una
forma diferente. Por ejemplo, para A
R
mxn
yB
R n×m, tenemos
Tr(AB) = Tr(BA)
aunque AB
R
m×m
y BA
R
n×n
(2.53)
.
Otro dato útil a tener en cuenta es que un escalar es su propia traza: a = Tr(a).
2.11 El Determinante
El determinante de una matriz cuadrada, denotado det(A), es una función que asigna
matrices a escalares reales. El determinante es igual al producto de todos los valores
propios de la matriz. El valor absoluto del determinante puede considerarse como una
medida de cuánto la multiplicación por la matriz expande o contrae el espacio. Si el
determinante es 0, entonces el espacio se contrae completamente a lo largo de al
menos una dimensión, provocando que pierda todo su volumen. Si el determinante es
1, entonces la transformación conserva el volumen.
47
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
2.12 Ejemplo: Análisis de componentes principales
Se puede derivar un algoritmo simple de aprendizaje automático, análisis de componentes principales o
PCA utilizando únicamente conocimientos de álgebra lineal básica.
Supongamos que tenemos una colección de m puntos {x (1) , . . . , x (m)} en Rn. Supongamos que
queremos aplicar compresión con pérdida a estos puntos. La compresión con pérdida significa
almacenar los puntos de una manera que requiere menos memoria pero puede perder algo de precisión.
Nos gustaría perder la menor precisión posible.
Una forma de codificar estos puntos es representando una versión de dimensiones inferiores (i)
ellos. Para cada punto x Si l es Rn, encontraremos un vector de código correspondiente c (i)
Rl. de
menor que n, se necesitará menos memoria para almacenar los puntos del código que los datos
originales. Querremos encontrar alguna función de codificación que produzca el código para una entrada,
f(x) = c, y una función de decodificación que produzca la entrada reconstruida dado su código, x ≈ g(f
(x)).
PCA se define por nuestra elección de la función de decodificación. Específicamente, para hacer
que el decodificador sea muy simple, elegimos usar la multiplicación de matrices para mapear el código
n×l de regreso a la matriz que define la decodificación.
en Rn . Sea g(c) = Dc, donde D
R Calcular el
código óptimo para este decodificador podría ser un problema difícil. Para facilitar el problema de
codificación, PCA obliga a las columnas de D a ser ortogonales entre sí. (Tenga en cuenta que D todavía
no es técnicamente “una matriz ortogonal” a menos que l = n)
Con el problema descrito hasta ahora, son posibles muchas soluciones, porque podemos aumentar
la escala de D:,i si disminuimos ci proporcionalmente para todos los puntos. Para darle al problema una
solución única, restringimos todas las columnas de D para que tengan unidades
norma.
Para convertir esta idea básica en un algoritmo que podamos implementar, lo primero que debemos
hacer es descubrir cómo generar el punto de código óptimo c
para cada punto de entrada x. Una
forma de hacer esto es minimizar la distancia entre el punto de entrada x y su reconstrucción, g(c
).
Podemos medir esta distancia usando un
norma. En el algoritmo de componentes principales, utilizamos la L
c
arg mín.
||x − g(c)||2. =
2
norma:
(2.54)
C
Podemos cambiar a la L al cuadrado.
2 2 norma en lugar de la L
norma misma, porque ambos son
minimizados por el mismo valor de c. Ambos se minimizan por el mismo valor de c porque la norma L no es negativa y la operación de elevación al
cuadrado es
48
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
monótonamente creciente para argumentos no negativos.
c
(2.55)
2 . = arg mín.
||x − g(c)||2
C
La función que se minimiza se simplifica a
(x − g(c))
(x − g(c))
(2.56)
(según la definición de la norma L2 , ecuación 2.30)
=x
x−x
g(c) − g(c)
x + g(c)
g(c)
(2.57)
(por la propiedad distributiva)
=x
(porque el escalar g(c)
x − 2x
g(c) + g(c)
g(c)
(2.58)
x es igual a la transpuesta de sí mismo).
Ahora podemos cambiar la función que se minimiza nuevamente para omitir el primer término,
ya que este término no depende de c:
= arg mín. −2x
c
g(c) + g(c)
C
g(c).
(2.59)
Para avanzar más, debemos sustituir en la definición de g(c):
c
arg mín.
−2x
Dc + c
D
Dc =
−2x
Dc + c
Ilc
C
= arg mín.
C
(2.60)
(2.61)
(por las restricciones de ortogonalidad y norma unitaria en D)
= arg mín. −2x
Dc + c
C
c
(2.62)
Podemos resolver este problema de optimización usando cálculo vectorial (ver sección 4.3 si
no sabes como hacer esto):
c(−2x
Dc + c
− 2D
c) = 0
x + 2c = 0 c
=D
x.
49
(2.63)
(2.64)
(2.65)
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
Esto hace que el algoritmo sea eficiente: podemos codificar x de manera óptima simplemente usando un
operación matriz­vector. Para codificar un vector, aplicamos la función codificador.
f(x) = D
(2.66)
x.
Usando una multiplicación de matrices adicional, también podemos definir la operación de
reconstrucción PCA:
r(x) = g (f (x)) = DD
x.
(2.67)
A continuación, debemos elegir la matriz de codificación D. Para hacerlo, revisamos la idea de
2
minimizar la distancia L entre
entradas y reconstrucciones. Como usaremos la misma matriz D para
decodificar todos los puntos, ya no podemos considerar los puntos de forma aislada. En lugar de
ello, debemos minimizar la norma de Frobenius de la matriz de errores calculada sobre todas las
dimensiones y todos los puntos:
D
(i)
= arg mín.
xj
D
− r(x(i))j
2 sujeto a D
D = Il
(2.68)
i,j
, Comenzaremos considerando el caso en el
Deducir el algoritmo para encontrar D
que l = 1. En este caso, D es solo un vector, d. Sustituyendo la ecuación 2.67 en la ecuación 2.68 y
simplificando D en d, el problema se reduce a
d
= arg mín.
d
||x (i)a−||d||2
dd =x1.(i) ||2 2
sujeto
(2.69)
i
La formulación anterior es la forma más directa de realizar la sustitución, pero no es la forma más
estilísticamente agradable de escribir la ecuación. Coloca el valor escalar d x (i) a la derecha del
vector d. Es más convencional escribir los coeficientes escalares a la izquierda del vector sobre el que
operan. Por lo tanto, normalmente escribimos una fórmula como
d
= arg mín.
d
||x (i) − d
x (i)d||2 sujeto
2 a ||d||2 = 1,
(2.70)
i
o, explotando el hecho de que un escalar es su propia transpuesta, como
d
= arg mín.
d
− x =(i)1. dd||2
sujeto||xa(i)||d||2
2
i
El lector debería intentar familiarizarse con tales reordenamientos cosméticos.
50
(2.71)
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
En este punto, puede resultar útil reescribir el problema en términos de una única
matriz de diseño de ejemplos, en lugar de como una suma de vectores de ejemplo separados.
Esto nos permitirá utilizar una notación más compacta. Sea X
Rm×n la matriz (i)
definida al apilar todos los
vectores que describen los puntos, tal que Xi,: = x Ahora podemos reescribir el problema como
d
||X − Xdd
||2 F sujeto a d
d = 1. = arg min
(2.72)
d
Sin tener en cuenta la restricción por el momento, podemos simplificar la parte de la norma de Frobenius
de la siguiente manera:
mín.
||X − Xdd
(2.73)
||2 F arg
d
= arg mín.
d
Tr
X − Xdd
X−X
Xdd
− dd
X) − Tr(X
Xdd
) − Tr(dd
(2.74)
X − Xdd
(por la ecuación 2.49)
Tr(X
X
X + dd
X
Xdd
) = arg mín.
(2.75)
d
(2,77)
Tr(X
X
X) + Tr(dd
X
Xdd
) = arg mín (2,76)
d
− Tr(X
Xdd
) − Tr(dd
X
X) + Tr(dd
X
Xdd
) = arg mín.
X
Xdd
) = arg mín.
d
(porque los términos que no involucran d no afectan el arg min)
−2 Tr(X
Xdd
) + Tr(dd
(2.78)
d
(porque podemos ciclar el orden de las matrices dentro de una traza, ecuación 2.52)
−2 Tr(X
Xdd
) + Tr(X
Xdd
dd
) = arg mín.
(2.79)
d = 1 arg min
(2.80)
d
(usando la misma propiedad nuevamente)
En este punto, volvemos a introducir la restricción:
−2 Tr(X
d
Xdd
−2 Tr(X
Xdd
) + Tr(X
Xdd
dd
) sujeto a d
) + Tr(X
Xdd
) sujeto a d
d = 1 = arg min
(2.81)
) sujeto a d
d = 1 = arg min
(2.82)
d
(debido a la restricción)
− Tr(X
Xdd
d
51
.
Machine Translated by Google
CAPÍTULO 2. ÁLGEBRA LINEAL
= arg máx d
Tr(X
Xdd
= arg máx d
Tr(d
X
) sujeto a d
d=1
(2.83)
Xd) sujeto a d
d=1
(2.84)
Este problema de optimización puede resolverse mediante descomposición propia.
Específicamente, el d óptimo viene dado por el vector propio de X X correspondiente al valor
propio más grande.
Esta derivación es específica del caso de l = 1 y recupera sólo el primer componente
principal. De manera más general, cuando deseamos recuperar una base de componentes
principales, la matriz D está dada por los l vectores propios correspondientes a los valores
propios más grandes. Esto se puede demostrar mediante prueba por inducción. Recomendamos
escribir esta prueba como ejercicio.
El álgebra lineal es una de las disciplinas matemáticas fundamentales necesarias para
comprender el aprendizaje profundo. Otra área clave de las matemáticas que es omnipresente en
el aprendizaje automático es la teoría de la probabilidad, que se presenta a continuación.
52
Machine Translated by Google
Capítulo 3
Probabilidad e información
Teoría
En este capítulo, describimos la teoría de la probabilidad y la teoría de la información.
La teoría de la probabilidad es un marco matemático para representar declaraciones inciertas.
Proporciona un medio para cuantificar la incertidumbre y axiomas para derivar nuevas afirmaciones
inciertas. En las aplicaciones de inteligencia artificial, utilizamos la teoría de la probabilidad de dos
maneras principales. Primero, las leyes de la probabilidad nos dicen cómo deberían razonar los
sistemas de IA, por lo que diseñamos nuestros algoritmos para calcular o aproximar varias
expresiones derivadas utilizando la teoría de la probabilidad. En segundo lugar, podemos utilizar la
probabilidad y la estadística para analizar teóricamente el comportamiento de los sistemas de IA propuestos.
La teoría de la probabilidad es una herramienta fundamental de muchas disciplinas de la ciencia y la
ingeniería. Proporcionamos este capítulo para garantizar que los lectores cuya experiencia sea
principalmente en ingeniería de software con exposición limitada a la teoría de la probabilidad puedan
comprender el material de este libro.
Mientras que la teoría de la probabilidad nos permite hacer afirmaciones inciertas y razonar en
presencia de incertidumbre, la teoría de la información nos permite cuantificar la cantidad de incertidumbre
en una distribución de probabilidad.
Si ya está familiarizado con la teoría de la probabilidad y la teoría de la información, es posible que
desee omitir todo este capítulo excepto la sección 3.14, que describe los gráficos que utilizamos para
describir modelos probabilísticos estructurados para el aprendizaje automático. Si no tiene absolutamente
ninguna experiencia previa con estos temas, este capítulo debería ser suficiente para llevar a cabo con
éxito proyectos de investigación de aprendizaje profundo, pero le sugerimos que consulte un recurso
adicional, como Jaynes (2003).
53
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
3.1 ¿Por qué probabilidad?
Muchas ramas de la informática se ocupan principalmente de entidades que son completamente
deterministas y ciertas. Por lo general, un programador puede asumir con seguridad que una CPU
ejecutará cada instrucción de la máquina sin problemas. Se producen errores en el hardware, pero son
lo suficientemente raros como para que la mayoría de las aplicaciones de software no necesiten
diseñarse para tenerlos en cuenta . Dado que muchos científicos informáticos e ingenieros de software
trabajan en un entorno relativamente limpio y seguro, puede resultar sorprendente que el aprendizaje
automático haga un uso intensivo de la teoría de la probabilidad.
Esto se debe a que el aprendizaje automático siempre debe lidiar con cantidades inciertas y, en
ocasiones, también puede necesitar lidiar con cantidades estocásticas (no deterministas).
La incertidumbre y la estocasticidad pueden surgir de muchas fuentes. Los investigadores han
presentado argumentos convincentes para cuantificar la incertidumbre utilizando la probabilidad
desde al menos la década de 1980. Muchos de los argumentos presentados aquí están resumidos
o inspirados en Pearl (1988).
Casi todas las actividades requieren cierta capacidad de razonar en presencia de incertidumbre.
De hecho, más allá de los enunciados matemáticos que son verdaderos por definición, es difícil
pensar en alguna proposición que sea absolutamente cierta o en algún evento cuya ocurrencia esté
absolutamente garantizada.
Hay tres posibles fuentes de incertidumbre:
1. Estocasticidad inherente al sistema que se está modelando. Por ejemplo, la mayoría de las
interpretaciones de la mecánica cuántica describen la dinámica de las partículas subatómicas
como probabilística. También podemos crear escenarios teóricos que postulamos que tienen
una dinámica aleatoria, como un juego de cartas hipotético en el que asumimos que las cartas
realmente se barajan en un orden aleatorio.
2. Observabilidad incompleta. Incluso los sistemas deterministas pueden parecer estocásticos
cuando no podemos observar todas las variables que impulsan el comportamiento del sistema.
Por ejemplo, en el problema de Monty Hall, se pide a un concursante de un programa de juegos
que elija entre tres puertas y gana un premio que se encuentra detrás de la puerta elegida. Dos
puertas conducen a una cabra mientras que una tercera conduce a un coche. El resultado dada
la elección del concursante es determinista, pero desde el punto de vista del concursante, el
resultado es incierto.
3. Modelado incompleto. Cuando utilizamos un modelo que debe descartar parte de la información
que hemos observado, la información descartada genera incertidumbre en las predicciones del
modelo. Por ejemplo, supongamos que construimos un robot que puede observar exactamente
la ubicación de cada objeto a su alrededor. Si el
54
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
Si un robot discretiza el espacio al predecir la ubicación futura de estos objetos, la
discretización hace que el robot inmediatamente se vuelva incierto acerca de la
posición precisa de los objetos: cada objeto podría estar en cualquier lugar dentro de
la celda discreta que se observó que ocupaba.
En muchos casos, es más práctico utilizar una regla simple pero incierta que una
compleja pero cierta, incluso si la regla verdadera es determinista y nuestro sistema de
modelado tiene la fidelidad para acomodar una regla compleja. Por ejemplo, la regla simple
“La mayoría de los pájaros vuelan” es barata de desarrollar y es ampliamente útil, mientras
que una regla del tipo “Los pájaros vuelan, excepto los pájaros muy jóvenes que aún no han
aprendido a volar, los pájaros enfermos o heridos que han perdió la capacidad de volar,
especies de aves no voladoras, como el casuario, el avestruz y el kiwi. . .” Es caro de
desarrollar, mantener y comunicar y, después de todo este esfuerzo, sigue siendo muy frágil y propenso al
Si bien debería quedar claro que necesitamos un medio para representar y razonar
sobre la incertidumbre, no es inmediatamente obvio que la teoría de la probabilidad pueda
proporcionar todas las herramientas que queremos para las aplicaciones de inteligencia
artificial. La teoría de la probabilidad se desarrolló originalmente para analizar las frecuencias
de los eventos. Es fácil ver cómo se puede utilizar la teoría de la probabilidad para estudiar
acontecimientos como sacar una determinada mano de cartas en una partida de póquer.
Este tipo de eventos suelen ser repetibles. Cuando decimos que un resultado tiene una
probabilidad p de ocurrir, significa que si repitiéramos el experimento (por ejemplo, sacar
una mano de cartas) infinitas veces, entonces la proporción p de las repeticiones daría como
resultado ese resultado. Este tipo de razonamiento no parece aplicable inmediatamente a
proposiciones que no son repetibles. Si un médico analiza a un paciente y dice que el
paciente tiene un 40% de posibilidades de tener gripe, esto significa algo muy diferente: no
podemos hacer infinitas réplicas del paciente, ni hay ninguna razón para creer que se
puedan hacer réplicas diferentes del paciente. El paciente presentaría los mismos síntomas
pero tendría diferentes condiciones subyacentes. En el caso del médico que diagnostica al
paciente, utilizamos la probabilidad para representar un grado de creencia, donde 1 indica
certeza absoluta de que el paciente tiene gripe y 0 indica certeza absoluta de que el paciente
no tiene gripe. El primer tipo de probabilidad, relacionado directamente con las tasas a las
que ocurren los eventos, se conoce como probabilidad frecuentista, mientras que el segundo,
relacionado con niveles cualitativos de certeza, se conoce como probabilidad bayesiana.
Si enumeramos varias propiedades que esperamos que tenga el razonamiento de sentido común
sobre la incertidumbre, entonces la única manera de satisfacer esas propiedades es tratar las
probabilidades bayesianas como si se comportaran exactamente igual que las probabilidades frecuentistas.
Por ejemplo, si queremos calcular la probabilidad de que un jugador gane una partida de póquer
dado que tiene un determinado juego de cartas, usamos exactamente las mismas fórmulas que
cuando calculamos la probabilidad de que un paciente tenga una enfermedad dado que
55
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
tiene ciertos síntomas. Para más detalles sobre por qué un pequeño conjunto de supuestos de sentido común
implica que los mismos axiomas deben controlar ambos tipos de probabilidad, véase Ramsey (1926).
La probabilidad puede verse como la extensión de la lógica para abordar la incertidumbre. La
lógica proporciona un conjunto de reglas formales para determinar qué proposiciones se supone
que son verdaderas o falsas, dado el supuesto de que algún otro conjunto de proposiciones es
verdadero o falso. La teoría de la probabilidad proporciona un conjunto de reglas formales para
determinar la probabilidad de que una proposición sea verdadera dada la probabilidad de otras proposiciones.
3.2 Variables aleatorias
Una variable aleatoria es una variable que puede tomar diferentes valores de forma aleatoria. Normalmente
denotamos la variable aleatoria en sí con una letra minúscula en tipo de letra simple y los valores que
puede adoptar con letras minúsculas. Por ejemplo, x1 y x2 son valores posibles que puede tomar la
variable aleatoria x . Para variables con valores vectoriales , escribiríamos la variable aleatoria como x y
uno de sus valores como x. Por sí sola, una variable aleatoria es sólo una descripción de los estados
posibles; debe ir acompañado de una distribución de probabilidad que especifique qué tan probable es
cada uno de estos estados.
Las variables aleatorias pueden ser discretas o continuas. Una variable aleatoria discreta es aquella que
tiene un número finito o contablemente infinito de estados. Tenga en cuenta que estos estados no son
necesariamente números enteros; también pueden denominarse simplemente estados que no se considera
que tengan ningún valor numérico. Una variable aleatoria continua está asociada a un valor real.
3.3 Distribuciones de probabilidad
Una distribución de probabilidad es una descripción de la probabilidad de que una variable aleatoria o un
conjunto de variables aleatorias adopte cada uno de sus posibles estados. La forma en que describimos las
distribuciones de probabilidad depende de si las variables son discretas o continuas.
3.3.1 Variables discretas y funciones de masa de probabilidad
Se puede describir una distribución de probabilidad sobre variables discretas utilizando una función de
masa de probabilidad (PMF). Normalmente denotamos las funciones de masa de probabilidad con una P
mayúscula. A menudo asociamos cada variable aleatoria con una probabilidad diferente.
56
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
función de masa y el lector debe inferir qué función de masa de probabilidad utilizar
basándose en la identidad de la variable aleatoria, en lugar del nombre de la función;
P(x) normalmente no es lo mismo que P(y).
La función de masa de probabilidad mapea desde un estado de una variable
aleatoria a la probabilidad de que esa variable aleatoria adopte ese estado. La
probabilidad de que x = x se denota como P(x), donde una probabilidad de 1 indica que
x = x es cierta y una probabilidad de 0 indica que x = x es imposible. A veces, para
eliminar la ambigüedad sobre qué PMF usar, escribimos explícitamente el nombre de
la variable aleatoria: P (x = x). A veces definimos una variable primero y luego usamos
la notación
para especificar qué distribución sigue después: x
P(x).
Las funciones de masa de probabilidad pueden actuar sobre muchas variables al mismo
tiempo. Esta distribución de probabilidad entre muchas variables se conoce como distribución
de probabilidad conjunta. P(x = x, y = y) denota la probabilidad de que x = x e y = y
simultáneamente. También podemos escribir P(x, y) por brevedad.
Para ser una función de masa de probabilidad en una variable aleatoria x, una función P debe
satisfacer las siguientes propiedades:
• El dominio de P debe ser el conjunto de todos los estados posibles de x.
•
x
x,0 ≤ P(x) ≤ 1. Un evento imposible tiene probabilidad 0 y ningún estado puede
ser menos probable que ese. Asimismo, un evento que está garantizado que sucederá
tiene probabilidad 1 y ningún estado puede tener mayores posibilidades de ocurrir.
•
P(x)
x x = 1. Nos referimos a esta propiedad como normalizada. Sin esta propiedad,
podríamos obtener probabilidades mayores que uno calculando la probabilidad
de que ocurra uno de muchos eventos.
Por ejemplo, considere una única variable aleatoria discreta x con k estados diferentes.
Podemos colocar una distribución uniforme en x, es decir, hacer que cada uno de sus estados
sea igualmente probable, estableciendo su función de masa de probabilidad en
1
P(x = xi) = k
(3.1)
para todos yo. Podemos ver que esto se ajusta a los requisitos de una función de masa de probabilidad.
El valor
1k
es positivo porque k es un entero positivo. También vemos que
P(x = xi) =
i
i
por lo que la distribución está adecuadamente normalizada.
57
1
= k = 1, k
k
(3.2)
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
3.3.2 Variables continuas y funciones de densidad de probabilidad
Cuando trabajamos con variables aleatorias continuas, describimos las distribuciones de
probabilidad utilizando una función de densidad de probabilidad (PDF) en lugar de una función de
masa de probabilidad. Para ser una función de densidad de probabilidad, una función p debe
satisfacer las siguientes propiedades:
• El dominio de p debe ser el conjunto de todos los estados posibles de x.
•
x
x, p(x) ≥ 0. Tenga en cuenta que no requerimos p(x) ≤ 1.
•
p(x)dx = 1.
Una función de densidad de probabilidad p(x) no proporciona la probabilidad de un estado
específico directamente, sino que la probabilidad de aterrizar dentro de una región infinitesimal
con volumen δx está dada por p(x)δx.
Podemos integrar la función de densidad para encontrar la masa de probabilidad real de un
conjunto de puntos. Específicamente, la probabilidad de que x se encuentre en algún conjunto S
está dada por la integral de p(x) sobre ese conjunto. En el ejemplo univariado, la probabilidad de
que x esté en el intervalo [a, b] viene dada por
[a,b]p(x)dx.
Para ver un ejemplo de una función de densidad de probabilidad correspondiente a una
densidad de probabilidad específica sobre una variable aleatoria continua, considere una
distribución uniforme en un intervalo de números reales. Podemos hacer esto con una función u(x;
a, b), donde a y b son los puntos finales del intervalo, con b > a. El ";" notación significa
"parametrizado por"; consideramos que x es el argumento de la función, mientras que a y b son
parámetros que definen la función. Para asegurar que no haya masa de probabilidad fuera del
intervalo, decimos u(x; a, b) = 0 para todo x
1
[a, b]. Dentro de [a, b], u(x; a, b) = b−a . Podemos
ver que esto no es negativo en todas partes. Además, se integra a 1. A menudo denotamos que
x sigue la distribución uniforme en [a, b] escribiendo x
U(a, b).
3.4 Probabilidad marginal
A veces conocemos la distribución de probabilidad de un conjunto de variables y queremos saber
la distribución de probabilidad de solo un subconjunto de ellas. La distribución de probabilidad
sobre el subconjunto se conoce como distribución de probabilidad marginal .
Por ejemplo, supongamos que tenemos variables aleatorias discretas xey , y conocemos
P(x, y). Podemos encontrar P(x) con la regla de la suma:
x
x,P(x = x) =
P(x = x, y = y).
y
58
(3.3)
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
El nombre "probabilidad marginal" proviene del proceso de calcular probabilidades marginales
en papel. Cuando los valores de P(x, y) se escriben en una cuadrícula con diferentes valores de x
en filas y diferentes valores de y en columnas, es natural sumar en una fila de la cuadrícula y luego
escribir P(x) en el margen del papel justo a la derecha de la fila.
Para variables continuas, necesitamos usar integración en lugar de suma:
p(x) =
(3.4)
p(x, y)dy.
3.5 Probabilidad condicional
En muchos casos, nos interesa la probabilidad de algún evento, dado que ha
ocurrido otro evento. Esto se llama probabilidad condicional. Denotamos la
probabilidad condicional de que y = y dado x = x como P(y = y | x = x). Esta
probabilidad condicional se puede calcular con la fórmula
P(y = y, x = x)
P(y = y | x = x) =
.
P(x = x)
(3.5)
La probabilidad condicional sólo se define cuando P(x = x) > 0. No podemos calcular la probabilidad
condicional condicionada a un evento que nunca sucede.
Es importante no confundir la probabilidad condicional con el cálculo de lo que
sucedería si se llevara a cabo alguna acción. La probabilidad condicional de que
una persona sea de Alemania dado que habla alemán es bastante alta, pero si a
una persona seleccionada al azar se le enseña a hablar alemán, su país de origen
no cambia. Calcular las consecuencias de una acción se llama realizar una consulta
de intervención. Las consultas de intervención son el dominio del modelado causal,
que no exploramos en este libro.
3.6 La regla de la cadena de probabilidades condicionales
Cualquier distribución de probabilidad conjunta sobre muchas variables aleatorias se puede
descomponer en distribuciones condicionales sobre una sola variable:
P(x (1) , . . . , x (n)) = P(x (1))Π n i=2P(x (i) | x
(1)
, . . . , x (i­1)).
(3.6)
Esta observación se conoce como regla de la cadena o regla de probabilidad del producto.
Se deduce inmediatamente de la definición de probabilidad condicional en la ecuación 3.5.
59
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
Por ejemplo, aplicando la definición dos veces, obtenemos
P(a, b, c) = P(a | b, c)P(b, c)
P(b, c) = P(b | c)P(c)
P(a, b, c) = P(a | b, c)P(b | c)P(c).
3.7 Independencia e Independencia Condicional
Dos variables aleatorias x e y son independientes si su distribución de probabilidad se puede
expresar como un producto de dos factores, uno que involucra solo x y otro que involucra solo
y:
x
x, y
y, p(x = x, y = y) = p(x = x)p(y = y).
(3.7)
Dos variables aleatorias xey son condicionalmente independientes dada una variable
aleatoria z si la distribución de probabilidad condicional sobre xey se factoriza de esta manera
para cada valor de z:
x
x, y
y, z
z, p(x = x, y = y | z = z) = p(x = x | z = z)p(y = y | z = z). (3.8)
Podemos denotar independencia e independencia condicional con notación compacta:
x y significa que xey son independientes, mientras que x
condicionalmente independientes dado z.
y | z significa que xey son
3.8 Expectativa, Varianza y Covarianza
La expectativa o valor esperado de alguna función f(x) con respecto a una distribución de
probabilidad P(x) es el valor promedio o medio que toma f cuando x se extrae de P. Para
variables discretas, esto se puede calcular con una suma:
Ej
P(x)f(x),
P [f(x)] =
(3.9)
X
mientras que para variables continuas se calcula con una integral:
Ej
p[f(x)] =
p(x)f(x)dx.
60
(3.10)
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
Cuando la identidad de la distribución queda clara a partir del contexto, podemos
simplemente escribir el nombre de la variable aleatoria cuya expectativa ha superado, como en Ex[f(x)].
Si está claro qué variable aleatoria supera la expectativa, podemos omitir el subíndice
por completo, como en E[f (x)]. Por defecto, podemos asumir que E[∙] promedia los
valores de todas las variables aleatorias dentro de los corchetes. Asimismo, cuando
no exista ambigüedad, podremos omitir los corchetes.
Las expectativas son lineales, por ejemplo,
Ej[αf(x) + βg(x)] = αEx[f(x)] + βEx[g(x)],
(3.11)
cuando α y β no dependen de x.
La varianza da una medida de cuánto varían los valores de una función de una variable
aleatoria x a medida que tomamos muestras de diferentes valores de x de su distribución de probabilidad:
Var(f(x)) = mi
(f(x) − mi[f(x)]) 2
.
(3.12)
Cuando la varianza es baja, los valores de f (x) se agrupan cerca de su valor esperado. La raíz
cuadrada de la varianza se conoce como desviación estándar.
La covarianza da una idea de hasta qué punto dos valores están linealmente relacionados
entre sí, así como la escala de estas variables:
Cov(f(x), g(y)) = mi [(f(x) − mi [f(x)])(g(y) − mi [g(y)])] .
(3.13)
Los valores absolutos altos de la covarianza significan que los valores cambian mucho y están ambos
lejos de sus respectivas medias al mismo tiempo. Si el signo de la covarianza es positivo, entonces
ambas variables tienden a tomar valores relativamente altos simultáneamente. Si el signo de la
covarianza es negativo, entonces una variable tiende a tomar un valor relativamente alto en los
momentos en que la otra toma un valor relativamente bajo y viceversa. Otras medidas, como la
correlación , normalizan la contribución de cada variable para medir sólo en qué medida están
relacionadas las variables, en lugar de verse afectadas también por la escala de las variables
separadas.
Las nociones de covarianza y dependencia están relacionadas, pero en realidad son
conceptos distintos. Están relacionados porque dos variables que son independientes tienen
covarianza cero y dos variables que tienen covarianza distinta de cero son dependientes. Sin
embargo , la independencia es una propiedad distinta de la covarianza. Para que dos variables
tengan covarianza cero, no debe haber dependencia lineal entre ellas. La independencia es un
requisito más fuerte que la covarianza cero, porque la independencia también excluye las
relaciones no lineales. Es posible que dos variables sean dependientes pero tengan covarianza
cero. Por ejemplo, supongamos que primero tomamos muestras de un número real x de una
distribución uniforme en el intervalo [−1, 1]. A continuación tomamos una muestra de una variable aleatoria.
61
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
s. Con probabilidad elegimos
que el valor de s sea 1. De lo contrario, elegimos que el valor de
12,
s sea −1. Luego podemos generar una variable aleatoria y asignando y = sx. Claramente, xey
no son independientes, porque x determina completamente la magnitud de y. Sin embargo,
Cov(x, y) = 0.
La matriz de covarianza de un vector aleatorio x
R que
norte
es una matriz n × n , tal
(3.14)
Cov(x)i,j = Cov(xi, xj).
Los elementos diagonales de la covarianza dan la varianza:
Cov(xi, xi) = Var(xi).
(3.15)
3.9 Distribuciones de probabilidad comunes
Varias distribuciones de probabilidad simples son útiles en muchos contextos del aprendizaje
automático.
3.9.1 Distribución de Bernoulli
La distribución de Bernoulli es una distribución sobre una única variable aleatoria binaria.
Está controlado por un único parámetro φ
[0, 1], que da la probabilidad de que
la variable aleatoria sea igual a 1. Tiene las siguientes propiedades:
P(x = 1) = φ
(3.16)
P(x = 0) = 1 − φ
(3,17)
X
P(x = x) = φ
(1 − φ)
1­x
(3,18)
Ej[x] = φ
(3,19)
(3,20)
Varx(x) = φ(1 − φ)
3.9.2 Distribución de multinoulli
La distribución multinoulli o categórica es una distribución sobre una única variable discreta
con k estados diferentes, donde k es finita.1 La distribución multinoulli es
1
“Multinoulli” es un término acuñado recientemente por Gustavo Lacerdo y popularizado por
Murphy (2012). La distribución multinoulli es un caso especial de la distribución multinomial .
k
Una distribución multinomial es la distribución sobre vectores en {0, . . . , n} que representa cuántas veces se visita
cada una de las k categorías cuando se extraen n muestras de una distribución multinoulli.
Muchos textos utilizan el término “multinomial” para referirse a distribuciones multinoulli sin aclarar que se refieren
únicamente al caso n = 1.
62
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
parametrizado por un vector p
[0, 1]k−1 , donde pi da la probabilidad del i­ésimo estado. La
probabilidad final del k­ésimo estado está dada por 1 − 1
1
p. Tenga en cuenta que debemos restringir
p ≤ 1. Las distribuciones multinoulli se utilizan a menudo para referirse a distribuciones sobre
categorías de objetos, por lo que normalmente no asumimos que el estado 1 tiene el valor numérico 1,
etc. Por esta razón, normalmente no necesitamos para calcular la expectativa o varianza de variables
aleatorias distribuidas multinoulli.
Las distribuciones de Bernoulli y multinoulli son suficientes para describir
cualquier distribución en su dominio. Son capaces de describir cualquier distribución
en su dominio no tanto porque sean particularmente poderosos sino porque su
dominio es simple; modelan variables discretas para las cuales es factible enumerar
todos los estados. Cuando se trata de variables continuas, hay incontables estados,
por lo que cualquier distribución descrita por un pequeño número de parámetros
debe imponer límites estrictos a la distribución.
3.9.3 Distribución Gaussiana
La distribución más comúnmente utilizada sobre números reales es la distribución
normal, también conocida como distribución gaussiana:
N (x;µ, σ 2) =
1 2πσ 2 exp
−2σ
1 2(x − µ) 2
.
(3.21)
Consulte la figura 3.1 para ver un gráfico de la función de densidad.
Los dos parámetros µ
Ryσ
(0,∞) controlan la distribución normal.
El parámetro µ da la coordenada del pico central. Esta es también la media de la
distribución: E[x] = µ. La desviación estándar de la distribución viene dada por σ y
2.
la varianza por σ
Cuando evaluamos la PDF, necesitamos elevar al cuadrado e invertir σ. Cuando
necesitamos evaluar frecuentemente la PDF con diferentes valores de parámetros, una
forma más eficiente de parametrizar la distribución es usar un parámetro β
(0,∞) para
controlar la precisión o varianza inversa de la distribución:
N (x;µ, β−1) =
β 2π exp
− 1 2β(x − µ) 2
.
(3.22)
Las distribuciones normales son una opción sensata para muchas aplicaciones. En
ausencia de conocimiento previo sobre qué forma debe tomar una distribución sobre los
números reales, la distribución normal es una buena opción predeterminada por dos razones principales.
63
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
0,40
0,35
pag(x)
0,30
0,25
0,20
Máximo en x = µ
Puntos de inflexión en x
=µ±σ
0,15
0,10
0,05
0,00
−2,0 −1,5 −1,0 −0,5 0,0
0,5
1.0
1.5
2.0
X
Figura 3.1: La distribución normal: La distribución normal N(x; µ, σ una forma 2 ) exhibiciones
clásica de “curva de campana”, con la coordenada x de su pico central dada por µ, y el
ancho de su pico controlado por σ. En este ejemplo , representamos la distribución normal
estándar, con µ = 0 y σ = 1.
Primero, muchas distribuciones que deseamos modelar están realmente cerca de ser distribuciones
normales. El teorema del límite central muestra que la suma de muchas variables aleatorias
independientes tiene una distribución aproximadamente normal. Esto significa que, en la práctica, muchos
sistemas complicados se pueden modelar con éxito como ruido distribuido normalmente, incluso si el
sistema se puede descomponer en partes con un comportamiento más estructurado.
En segundo lugar, de todas las distribuciones de probabilidad posibles con la misma varianza, la
distribución normal codifica la máxima cantidad de incertidumbre sobre los números reales. Por tanto,
podemos pensar en la distribución normal como la que inserta la menor cantidad de conocimiento previo
en un modelo. Desarrollar y justificar plenamente esta idea requiere más herramientas matemáticas y se
pospone a la sección 19.4.2.
norte
La distribución normal se generaliza a R
, en cuyo caso se le conoce como
distribución normal multivariada. Puede parametrizarse con una matriz simétrica
definida positiva Σ:
− 21 (x − µ)
exp
norte (x; µ, Σ) = (2π)ndet(Σ)
1
64
Σ −1(x − µ)
.
(3.23)
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
El parámetro µ todavía proporciona la media de la distribución, aunque ahora tiene un valor vectorial.
El parámetro Σ da la matriz de covarianza de la distribución.
Como en el caso univariante, cuando deseamos evaluar la PDF varias veces para muchos
valores diferentes de los parámetros, la covarianza no es una forma computacionalmente
eficiente de parametrizar la distribución, ya que necesitamos invertir Σ para evaluar la
PDF. En su lugar, podemos utilizar una matriz de precisión β:
N (x; µ, β −1) =
det(β)(2π)n
exp
2
− 1 (x − µ)
β(x − µ)
.
(3.24)
A menudo arreglamos la matriz de covarianza para que sea una matriz diagonal. Una versión
aún más simple es la distribución gaussiana isotrópica , cuya matriz de covarianza es un escalar
multiplicado por la matriz identidad.
3.9.4 Distribuciones exponenciales y de Laplace
En el contexto del aprendizaje profundo, a menudo queremos tener una distribución de probabilidad con
un punto agudo en x = 0. Para lograr esto, podemos usar la distribución exponencial:
(3.25)
p(x; λ) = λ1x≥0 exp (−λx).
La distribución exponencial utiliza la función indicadora 1x≥0 para asignar probabilidad cero
a todos los valores negativos de x.
Una distribución de probabilidad estrechamente relacionada que nos permite situar un pico pronunciado
de probabilidad de masa en un punto arbitrario µ es la distribución de Laplace
Laplace(x;μ, γ) =
1
2γ
exp
− |x − µ| γ.
(3.26)
3.9.5 Distribución de Dirac y distribución empírica
En algunos casos, deseamos especificar que toda la masa en una distribución de probabilidad se
agrupa alrededor de un solo punto. Esto se puede lograr definiendo una PDF usando la función
delta de Dirac, δ(x):
p(x) = δ(x − µ).
(3.27)
La función delta de Dirac se define de manera que tiene valor cero en todas partes
excepto 0, pero se integra a 1. La función delta de Dirac no es una función ordinaria
que asocia cada valor x con una salida de valor real, sino que es un tipo diferente de
sesenta y cinco
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
Objeto matemático llamado función generalizada que se define en términos de sus propiedades cuando
se integra. Podemos pensar en la función delta de Dirac como el punto límite de una serie de funciones
que ponen cada vez menos masa en todos los puntos distintos de cero.
Al definir p(x) como δ desplazado por −µ obtenemos una curva infinitamente estrecha y
pico infinitamente alto de masa de probabilidad donde x = µ.
Un uso común de la distribución delta de Dirac es como componente de una distribución empírica,
1
pˆ(x) =
metro
(3.28)
m δ(x − x (i))
yo=1
lo que coloca una masa de probabilidad de 1 m en cada uno de los m puntos(1) , . . . ,X
(m) formar un
x un conjunto de datos o una colección de muestras dados. La distribución delta de Dirac sólo es
necesaria para definir la distribución empírica sobre variables continuas. Para variables discretas, la
situación es más simple: una distribución empírica puede conceptualizarse como una distribución
multinoulli, con una probabilidad asociada a cada posible valor de entrada que es simplemente igual a la
frecuencia empírica de ese valor en el conjunto de entrenamiento.
Podemos ver la distribución empírica formada a partir de un conjunto de datos de ejemplos de
entrenamiento como especificando la distribución de la que tomamos muestras cuando entrenamos un
modelo en este conjunto de datos. Otra perspectiva importante sobre la distribución empírica es que es
la densidad de probabilidad la que maximiza la verosimilitud de los datos de entrenamiento (ver sección
5.5).
3.9.6 Mezclas de Distribuciones
También es común definir distribuciones de probabilidad combinando otras distribuciones de probabilidad
más simples. Una forma común de combinar distribuciones es construir una distribución mixta. Una
distribución de mezcla se compone de varias distribuciones de componentes. En cada prueba, la elección
de qué distribución de componentes genera la muestra se determina muestreando la identidad de un
componente de una distribución multinoulli:
P(c = yo)P(x | c = yo)
P(x) =
(3.29)
i
donde P(c) es la distribución multinoulli sobre las identidades de los componentes.
Ya hemos visto un ejemplo de distribución mixta: la distribución empírica sobre variables de valor
real es una distribución mixta con un componente de Dirac para cada ejemplo de entrenamiento.
66
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
El modelo mixto es una estrategia simple para combinar distribuciones de probabilidad para crear
una distribución más rica. En el capítulo 16, exploramos con más detalle el arte de construir distribuciones
de probabilidad complejas a partir de distribuciones simples.
El modelo de mezcla nos permite vislumbrar brevemente un concepto que será de suma
importancia más adelante: la variable latente. Una variable latente es una variable aleatoria que no
podemos observar directamente. La variable de identidad del componente c del modelo de mezcla
proporciona un ejemplo. Las variables latentes pueden estar relacionadas con x mediante la distribución
conjunta, en este caso, P(x, c) = P (x | c)P (c). La distribución P (c) sobre la variable latente y la
distribución P(x | c) que relaciona las variables latentes con las variables visibles determina la forma
de la distribución P (x) aunque es posible describir P(x) sin referencia a la variable latente. Las
variables latentes se analizan con más detalle en la sección 16.5.
Un tipo de modelo de mezcla muy potente y común es el modelo de mezcla gaussiano , en el que
los componentes p(x | c = i) son gaussianos. Cada componente tiene (i) y covarianza Σ(i) una media µ
parametrizada
por Por ejemplo, las covarianzas podrían
separado . Algunas mezclas pueden tener más
restricciones.
compartirse entre componentes mediante la restricción Σ(i) = Σ,
i. Al igual que con una distribución
gaussiana única, la mezcla de gaussianas podría limitar la matriz de covarianza de cada componente
para que sea diagonal o isotrópica.
Además de las medias y las covarianzas, los parámetros de una mezcla gaussiana especifican la
probabilidad previa αi = P(c = i) dada a cada componente i. La palabra “anterior” indica que expresa las
creencias del modelo sobre c antes de haber observado x. En comparación, P(c | x) es una probabilidad
posterior, porque se calcula después de la observación de x. Un modelo de mezcla gaussiana es un
aproximador universal de densidades, en el sentido de que cualquier densidad suave puede aproximarse
con cualquier cantidad de error específica distinta de cero mediante un modelo de mezcla gaussiana
con suficientes componentes.
La Figura 3.2 muestra muestras de un modelo de mezcla gaussiana.
3.10 Propiedades útiles de funciones comunes
Ciertas funciones surgen a menudo al trabajar con distribuciones de probabilidad, especialmente las
distribuciones de probabilidad utilizadas en modelos de aprendizaje profundo.
Una de estas funciones es el sigmoide logístico:
σ(x) =
1
1 + exp(­x)
.
(3.30)
El sigmoide logístico se usa comúnmente para producir el parámetro φ de un Bernoulli.
67
Machine Translated by Google
x2
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
x1
Figura 3.2: Muestras de un modelo de mezcla gaussiana. En este ejemplo, hay tres componentes. De
izquierda a derecha, el primer componente tiene una matriz de covarianza isotrópica, lo que significa
que tiene la misma cantidad de varianza en cada dirección. El segundo tiene una matriz de covarianza
diagonal, lo que significa que puede controlar la varianza por separado a lo largo de cada dirección
alineada con el eje. Este ejemplo tiene más variación a lo largo del eje x2 que a lo largo del eje x1 . El
tercer componente tiene una matriz de covarianza de rango completo, lo que le permite controlar la
varianza por separado a lo largo de una base arbitraria de direcciones.
distribución porque su rango es (0,1), que se encuentra dentro del rango válido de valores
para el parámetro φ . Consulte la figura 3.3 para ver una gráfica de la función sigmoidea.
La función sigmoidea se satura cuando su argumento es muy positivo o muy negativo, lo
que significa que la función se vuelve muy plana e insensible a pequeños cambios en su
entrada.
Otra función que se encuentra comúnmente es la función softplus (Dugas et al.,
2001):
ζ(x) = log (1 + exp(x)).
(3.31)
La función softplus puede resultar útil para producir el parámetro β o σ de una distribución normal
porque su rango es (0,∞). También surge comúnmente al manipular expresiones que involucran
sigmoideos. El nombre de la función softplus proviene del hecho de que es una versión suavizada o
“suavizada” de
x+ = máx(0, x).
(3.32)
Consulte la figura 3.4 para ver un gráfico de la función softplus.
Las siguientes propiedades son lo suficientemente útiles como para que desees memorizarlas :
68
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
1.0
0,8
σx( )
0,6
0,4
0,2
0.0
−10
−5
0
5
10
X
Figura 3.3: La función sigmoidea logística.
10
ζx( )
8
6
4
2
0
−10
−5
0
X
Figura 3.4: La función softplus.
69
5
10
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
σ(x) =
exp(x)
(3.33)
exp(x) + exp(0)
d σ(x) = σ(x)(1 − σ(x)) dx
(3.34)
1 − σ(x) = σ(−x) log
(3.35)
σ(x) = −ζ(−x)
(3.36)
(3.37)
d ζ(x) = σ(x) dx
x
(0, 1), σ−1 (x) = log
x1−x
x > 0, ζ−1(x) = log (exp(x) − 1)
ζ(x) =
x−∞ σ(y)dy
(3.38)
(3.39)
(3.40)
ζ(x) − ζ(−x) = x (3.41)
La función σ −1(x) se denomina logit en estadística, pero este término se utiliza con menos frecuencia
en el aprendizaje automático.
La ecuación 3.41 proporciona una justificación adicional para el nombre "softplus". La función
softplus pretende ser una versión suavizada de la función de parte positiva , x+ = max{0, x}. La
función de parte positiva es la contraparte de la función de parte negativa , x− = max{0,−x}. Para
obtener una función suave que sea análoga a la parte negativa, se puede usar ζ (−x). Así como x
se puede recuperar de su parte positiva y negativa mediante la identidad x+ − x− = x, también es
posible recuperar x usando la misma relación entre ζ(x) y ζ(−x), como se muestra en la ecuación
3.41.
3.11 Regla de Bayes
A menudo nos encontramos en una situación en la que conocemos P (y | x) y necesitamos saber
P (x | y). Afortunadamente, si también conocemos P (x), podemos calcular la cantidad deseada
usando la regla de Bayes:
P(x)P(y | x)
.
(3.42)
P(x | y) =
P(y)
Tenga en cuenta que si bien P (y) aparece en la fórmula, generalmente es factible calcular
P(y) =
X
P(y | x)P(x), por lo que no es necesario comenzar con el conocimiento de P(y).
70
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
La regla de Bayes es fácil de derivar de la definición de probabilidad condicional,
pero es útil conocer el nombre de esta fórmula ya que muchos textos se refieren a ella
por su nombre. Lleva el nombre del reverendo Thomas Bayes, quien descubrió por
primera vez un caso especial de la fórmula. La versión general presentada aquí fue
descubierta de forma independiente por Pierre­Simon Laplace.
3.12 Detalles técnicos de variables continuas
Una comprensión formal adecuada de las variables aleatorias continuas y las funciones de densidad
de probabilidad requiere desarrollar la teoría de la probabilidad en términos de una rama de las
matemáticas conocida como teoría de la medida. La teoría de la medida está más allá del alcance de
este libro de texto, pero podemos esbozar brevemente algunas de las cuestiones para resolver que
se emplea la teoría de la medida.
En la sección 3.3.2, vimos que la probabilidad de que un vector continuo x se encuentre en algún
conjunto S está dada por la integral de p(x) sobre el conjunto S. Algunas elecciones del conjunto S
pueden producir paradojas. Por ejemplo, es posible construir dos conjuntos S1 y S2 tales que p(x
+ p(x
S2) > 1 pero S1 ∩ S2 =
S1 )
. Estos conjuntos generalmente se construyen haciendo un uso
intensivo de la precisión infinita de los números reales, por ejemplo, creando conjuntos en forma de
fractales o conjuntos que se definen transformando el conjunto de números racionales.2 Una de las
contribuciones clave de la teoría de la medida es proporcionar una caracterización del conjunto de
conjuntos cuya probabilidad podemos calcular sin encontrar paradojas. En este libro, sólo integramos
conjuntos con descripciones relativamente simples, por lo que este aspecto de la teoría de la medida
nunca se convierte en una preocupación relevante.
Para nuestros propósitos, la teoría de la medida es más útil para describir teoremas que se aplican a la mayoría de los puntos en R pero que no
norte
se aplican a algunos casos extremos. La teoría de la medida proporciona una forma rigurosa de describir que un conjunto de puntos es insignificante.
Se dice que tal conjunto tiene medida cero. No definimos formalmente este concepto en este libro de texto. Para nuestros propósitos, basta con
comprender la intuición de que un conjunto de medida cero no ocupa ningún volumen en el espacio que estamos midiendo. Por ejemplo, 2 dentro de R
una línea tiene medida cero, mientras que un polígono relleno tiene medida positiva.
,
Asimismo, un punto individual tiene medida cero. Cualquier unión de conjuntos contables , cada uno
de los cuales tiene medida cero, también tiene medida cero (por lo que el conjunto de todos los
números racionales tiene medida cero, por ejemplo).
Otro término útil de la teoría de la medida está casi en todas partes. Una propiedad que se cumple en
casi todas partes se cumple en todo el espacio excepto en un conjunto de
2El teorema de Banach­Tarski proporciona un ejemplo divertido de tales conjuntos.
71
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
medida cero. Debido a que las excepciones ocupan una cantidad insignificante de espacio, pueden
ignorarse con seguridad en muchas aplicaciones. Algunos resultados importantes de la teoría de la
probabilidad son válidos para todos los valores discretos, pero sólo son válidos “casi en todas partes” para
los valores continuos.
Otro detalle técnico de las variables continuas se relaciona con el manejo de
variables aleatorias continuas que son funciones deterministas entre sí. Supongamos
que tenemos dos variables aleatorias, x e y, tales que y = g(x), donde g es una
transformación invertible, continua y diferenciable. Se podría esperar que py (y) = px(g−1(y)).
En realidad, este no es el caso.
Como ejemplo simple, supongamos que tenemos variables aleatorias escalares xey .
y = X2 Supongamos que y x
U(0, 1). Si usamos la regla py (y) = px (2y), entonces py
1
será 0 en todas partes excepto en el intervalo
[0, ], y será 1 en este intervalo. Esto significa
2
1
py(y)dy =
2
,
(3.43)
lo que viola la definición de distribución de probabilidad. Este es un error común.
El problema con este enfoque es que no tiene en cuenta la distorsión del espacio introducida
por la función g. Recuerde que la probabilidad de que x se encuentre en una región infinitamente
pequeña con volumen δx está dada por p(x)δx. Dado que g puede expandir o contraer el
espacio, el volumen infinitesimal que rodea a x en el espacio x puede tener un volumen
diferente en el espacio y.
Para ver cómo corregir el problema, volvemos al caso escalar. Necesitamos preservar la
propiedad.
(3.44)
|py(g(x))dy| = |px(x)dx|.
Resolviendo de esto obtenemos
∂x
(3.45)
py(y) = px(g −1(y)) ∂y
o equivalente
∂g(x)
px(x) = py(g(x)) ∂x
.
(3.46)
En dimensiones superiores, la derivada se generaliza al determinante de la matriz jacobiana:
la matriz con Ji,j =
∂xi
∂yj . Por lo tanto, para vectores de valor real x e y,
px(x) = py (g(x))
det
72
∂g(x)
∂x
.
(3.47)
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
3.13 Teoría de la información
La teoría de la información es una rama de las matemáticas aplicadas que gira en torno a
cuantificar cuánta información está presente en una señal. Originalmente se inventó para
estudiar el envío de mensajes de alfabetos discretos a través de un canal ruidoso, como la
comunicación mediante transmisión de radio. En este contexto, la teoría de la información
explica cómo diseñar códigos óptimos y calcular la longitud esperada de los mensajes
muestreados a partir de distribuciones de probabilidad específicas utilizando varios esquemas
de codificación. En el contexto del aprendizaje automático, también podemos aplicar la teoría
de la información a variables continuas donde algunas de estas interpretaciones de la longitud
del mensaje no se aplican. Este campo es fundamental para muchas áreas de la ingeniería
eléctrica y la informática. En este libro de texto, utilizamos principalmente algunas ideas clave
de la teoría de la información para caracterizar distribuciones de probabilidad o cuantificar la similitud entre distr
Para obtener más detalles sobre la teoría de la información, consulte Cover y Thomas (2006) o MacKay
(2003).
La intuición básica detrás de la teoría de la información es que saber que ha ocurrido un
evento improbable es más informativo que saber que ha ocurrido un evento probable. Un
mensaje que diga "el sol salió esta mañana" es tan poco informativo que no es necesario
enviarlo, pero un mensaje que diga "hubo un eclipse solar esta mañana" es muy informativo.
Nos gustaría cuantificar la información de una manera que formalice esta intuición.
Específicamente,
• Los eventos probables deben tener bajo contenido informativo y, en el caso extremo, los eventos
cuya ocurrencia está garantizada no deben tener ningún contenido informativo.
• Los eventos menos probables deberían tener mayor contenido informativo.
• Los eventos independientes deben tener información aditiva. Por ejemplo, descubrir que
al lanzar una moneda al aire salió cara dos veces debería transmitir el doble de
información que descubrir que al lanzar una moneda al aire salió cara.
una vez.
Para satisfacer estas tres propiedades, definimos la autoinformación de un evento x = x como
Yo(x) = − log P(x).
(3.48)
En este libro, siempre usamos log para referirnos al logaritmo natural, con base e. Por lo tanto, nuestra
definición de I (x) está escrita en unidades de nats. Un nat es la cantidad de
73
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
información obtenida al observar un evento de logaritmos y
1 . Otros textos usan base­2
unidades de probabilidad llamados bits o shannons; La información medida en bits es solo
un cambio de escala de la información medida en nats.
mi
Cuando x es continua, utilizamos la misma definición de información por analogía, pero
algunas de las propiedades del caso discreto se pierden. Por ejemplo, un evento con
densidad unitaria todavía tiene cero información, a pesar de no ser un evento cuya ocurrencia
esté garantizada.
La autoinformación se ocupa únicamente de un único resultado. Podemos cuantificar la
cantidad de incertidumbre en una distribución de probabilidad completa usando la entropía de Shannon:
H(x) = Ex
P [I(x)] = −Ex
P [log P(x)].
(3.49)
también denotado H(P). En otras palabras, la entropía de Shannon de una distribución
es la cantidad esperada de información en un evento extraído de esa distribución. Da un
límite inferior al número de bits (si el logaritmo es base 2, de lo contrario las unidades
son diferentes) necesarios en promedio para codificar símbolos extraídos de una distribución P.
Las distribuciones que son casi deterministas (donde el resultado es casi seguro) tienen
baja entropía; Las distribuciones que se acercan más a la uniformidad tienen una alta
entropía. Consulte la figura 3.5 para ver una demostración. Cuando x es continua, la entropía
de Shannon se conoce como entropía diferencial.
Si tenemos dos distribuciones de probabilidad separadas P (x) y Q(x) sobre la
misma variable aleatoria x, podemos medir qué tan diferentes son estas dos
distribuciones usando la divergencia de Kullback­Leibler (KL):
P(x)
DKL(P
Q) = Ex
P
log Q(x)
= Ex
P [log P(x) − log Q(x)] .
(3.50)
En el caso de variables discretas, es la cantidad extra de información (medida en bits si
usamos el logaritmo de base 2, pero en el aprendizaje automático usualmente usamos nats
y el logaritmo natural) necesaria para enviar un mensaje que contenga símbolos extraídos de
la distribución de probabilidad. P, cuando usamos un código que fue diseñado para minimizar
la longitud de los mensajes extraídos de la distribución de probabilidad Q.
La divergencia KL tiene muchas propiedades útiles, entre las que destaca que no es
negativa. La divergencia KL es 0 si y sólo si P y Q tienen la misma distribución en el caso
de variables discretas, o iguales “casi en todas partes” en el caso de variables continuas.
Debido a que la divergencia KL no es negativa y mide la diferencia entre dos distribuciones,
a menudo se conceptualiza como una medida de algún tipo de distancia entre estas
distribuciones. Sin embargo, no es una verdadera medida de distancia porque no es
simétrica: DKL(P
Q)
= DKL(Q
P) para algunos P y Q. Esto
74
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
0,7
0,6
0,5
nats
en
y
entrop
n
Shanno
0,4
0.3
0,2
0.1
0.0
0.0
0,2
0,4
0,6
0,8
1.0
pag
Figura 3.5: Este gráfico muestra cómo las distribuciones más cercanas a deterministas tienen una entropía de
Shannon baja, mientras que las distribuciones más cercanas a uniformes tienen una entropía de Shannon alta.
En el eje horizontal, trazamos p, la probabilidad de que una variable aleatoria binaria sea
igual a 1. La entropía viene dada por (p− 1)log(1 −p)−p log p. Cuando p está cerca de 0, la
distribución es casi determinista, porque la variable aleatoria casi siempre es 0. Cuando p
está cerca de 1, la distribución es casi determinista, porque la variable aleatoria casi siempre es 1.
Cuando p = 0,5, la entropía es máxima, porque la distribución es uniforme entre los dos
resultados.
La asimetría significa que hay consecuencias importantes en la elección de usar DKL(P
DKL(Q
Q) o
P). Consulte la figura 3.6 para obtener más detalles.
Una cantidad que está estrechamente relacionada con la divergencia KL es la entropía cruzada
H(P,Q) = H (P ) + DKL(P
Q), que es similar a la divergencia KL pero carece del término de la izquierda:
H(P, Q) = −Ex
P log Q(x).
(3.51)
Minimizar la entropía cruzada con respecto a Q equivale a minimizar la divergencia KL, porque Q
no participa en el término omitido.
Al calcular muchas de estas cantidades, es común encontrar expresiones de la forma 0 log 0.
Por convención, en el contexto de la teoría de la información, tratamos estas expresiones como
limx→0 x log x = 0.
3.14 Modelos probabilísticos estructurados
Los algoritmos de aprendizaje automático a menudo implican distribuciones de probabilidad
sobre una gran cantidad de variables aleatorias. A menudo, estas distribuciones de probabilidad
implican interacciones directas entre relativamente pocas variables. Usando una sola función para
75
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
q
= argminqDKL(p
q
q)
= argminqDKL(q
p(x)
p(x)
q
(x)
(x)
probabilidad
de
Densidad
probabilidad
de
Densidad
q
p)
X
X
Figura 3.6: La divergencia KL es asimétrica. Supongamos que tenemos una distribución p(x) y
deseamos aproximarla con otra distribución q(x). Tenemos la opción de minimizar DKL (p q) o
DKL ( q p ) . Ilustramos el efecto de esta elección utilizando una mezcla de dos gaussianos
para p y un solo gaussiano para q. La elección de qué dirección de divergencia KL utilizar
depende del problema. Algunas aplicaciones requieren una aproximación que normalmente
coloca una alta probabilidad en cualquier lugar donde la verdadera distribución coloca una alta
probabilidad, mientras que otras aplicaciones requieren una aproximación que rara vez coloca
una alta probabilidad en cualquier lugar donde la verdadera distribución coloca una baja
probabilidad. La elección de la dirección de la divergencia KL refleja cuál de estas consideraciones
tiene prioridad para cada aplicación. (Izquierda) El efecto de minimizar DKL (p q). En este
caso, seleccionamos q tiene alta probabilidad donde p tiene alta probabilidad. Cuando p tiene
múltiples modos, q elige difuminar los modos juntos, para darles una masa de alta probabilidad
a todos ellos. (Derecha) El efecto de minimizar DKL (q p). En este caso, seleccionamos q tiene
baja probabilidad donde p tiene baja probabilidad. Cuando p tiene múltiples modos que están
suficientemente separados, como en esta figura, la divergencia KL se minimiza eligiendo un
solo modo, para evitar poner masa de probabilidad en las áreas de baja probabilidad entre los
modos de p. Aquí ilustramos el resultado cuando se elige q para enfatizar el modo izquierdo.
También podríamos haber logrado un valor igual de la divergencia KL eligiendo el modo
correcto. Si los modos no están separados por una región de baja probabilidad suficientemente
fuerte, entonces esta dirección de la divergencia KL aún puede optar por desdibujar los modos.
76
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
describir toda la distribución de probabilidad conjunta puede ser muy ineficiente (tanto computacional
como estadísticamente).
En lugar de utilizar una única función para representar una distribución de probabilidad, podemos
dividir una distribución de probabilidad en muchos factores que multiplicamos.
Por ejemplo, supongamos que tenemos tres variables aleatorias: a, b y c. Supongamos que
a influye en el valor de b y b influye en el valor de c, pero que a y c son independientes dado
b. Podemos representar la distribución de probabilidad de las tres variables como un producto
de las distribuciones de probabilidad de dos variables:
p(a, b, c) = p(a)p(b | a)p(c | b).
(3.52)
Estas factorizaciones pueden reducir en gran medida la cantidad de parámetros necesarios para
describir la distribución. Cada factor utiliza una cantidad de parámetros que es exponencial en la cantidad
de variables del factor. Esto significa que podemos reducir en gran medida el costo de representar una
distribución si podemos encontrar una factorización en distribuciones con menos variables.
Podemos describir este tipo de factorizaciones usando gráficas. Aquí usamos la palabra
“gráfico” en el sentido de la teoría de grafos: un conjunto de vértices que pueden estar
conectados entre sí mediante aristas. Cuando representamos la factorización de una
distribución de probabilidad con un gráfico, lo llamamos modelo probabilístico estructurado o modelo gráfico.
Hay dos tipos principales de modelos probabilísticos estructurados: dirigidos y no dirigidos. Ambos
tipos de modelos gráficos utilizan un gráfico G en el que cada nodo del gráfico corresponde a una variable
aleatoria, y un borde que conecta dos variables aleatorias significa que la distribución de probabilidad
puede representar interacciones directas entre esas dos variables aleatorias.
Los modelos dirigidos utilizan gráficos con aristas dirigidas y representan factorizaciones en
distribuciones de probabilidad condicional, como en el ejemplo anterior.
Específicamente, un modelo dirigido contiene un factor para cada variable aleatoria xi en la
distribución, y ese factor consiste en la distribución condicional sobre xi dados los padres de
xi, denotado PaG(xi):
p(x) =
p (xi | PaG (xi)).
(3.53)
i
Consulte la figura 3.7 para ver un ejemplo de gráfico dirigido y la factorización de distribuciones
de probabilidad que representa.
Los modelos no dirigidos utilizan gráficos con aristas no dirigidas y representan factorizaciones en
un conjunto de funciones; a diferencia del caso dirigido, estas funciones
77
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
b
a
d
C
mi
Figura 3.7: Un modelo gráfico dirigido sobre variables aleatorias a, b, c, d y e. Este gráfico
corresponde a distribuciones de probabilidad que pueden factorizarse como
p(a, b, c, d, e) = p(a)p(b | a)p(c | a, b)p(d | b)p(e | c).
(3.54)
Este gráfico nos permite ver rápidamente algunas propiedades de la distribución. Por ejemplo, a y c
interactúan directamente, pero a y e interactúan sólo indirectamente a través de c.
Por lo general, no son distribuciones de probabilidad de ningún tipo. Cualquier conjunto de nodos que
estén conectados entre sí en G se llama camarilla. Cada camarilla C (i) en un modelo no dirigido está
asociada con un factor φ (i)(C (i) ). Estos factores son sólo funciones, no distribuciones de probabilidad.
La salida de cada factor debe ser no negativa, pero no hay ninguna restricción de que el factor deba
sumar o integrarse a 1 como una distribución de probabilidad.
La probabilidad de una configuración de variables aleatorias es proporcional al
producto de todos estos factores; las asignaciones que resultan en valores de factores
más grandes son más probables. Por supuesto, no hay garantía de que este producto
sume 1. Por lo tanto, dividimos por una constante normalizadora Z, definida como la
suma o integral de todos los estados del producto de las funciones φ , para obtener una
distribución de probabilidad normalizada. :
pag(x) =
1
z
i
φ (i)
C (i)
.
(3.55)
Consulte la figura 3.8 para ver un ejemplo de un gráfico no dirigido y la factorización de las
distribuciones de probabilidad que representa.
Tenga en cuenta que estas representaciones gráficas de factorizaciones son un lenguaje
para describir distribuciones de probabilidad. No son familias mutuamente excluyentes de
distribuciones de probabilidad. Ser dirigido o no dirigido no es una propiedad de una
distribución de probabilidad; es una propiedad de una descripción particular de un
78
Machine Translated by Google
CAPÍTULO 3. PROBABILIDAD Y TEORÍA DE LA INFORMACIÓN
b
a
d
C
mi
Figura 3.8: Un modelo gráfico no dirigido sobre variables aleatorias a, b, c, d y e. Este gráfico
corresponde a distribuciones de probabilidad que pueden factorizarse como
p(a, b, c, d, e) =
1
z
φ (1) (a, b, c)φ (2)(b, d)φ (3)(c, e).
(3.56)
Este gráfico nos permite ver rápidamente algunas propiedades de la distribución. Por ejemplo, a y c
interactúan directamente, pero a y e interactúan sólo indirectamente a través de c.
distribución de probabilidad, pero cualquier distribución de probabilidad puede describirse en ambos
maneras.
A lo largo de las partes I y II de este libro, utilizaremos modelos probabilísticos estructurados
simplemente como un lenguaje para describir qué relaciones probabilísticas directas eligen representar
los diferentes algoritmos de aprendizaje automático. No se necesita una mayor comprensión de los
modelos probabilísticos estructurados hasta la discusión de los temas de investigación, en la parte III,
donde exploraremos los modelos probabilísticos estructurados con mucho mayor detalle.
Este capítulo ha revisado los conceptos básicos de la teoría de la probabilidad que son más
relevantes para el aprendizaje profundo. Queda un conjunto más de herramientas matemáticas
fundamentales : los métodos numéricos.
79
Machine Translated by Google
Capítulo 4
Computación numérica
Los algoritmos de aprendizaje automático suelen requerir una gran cantidad de cálculos
numéricos . Esto generalmente se refiere a algoritmos que resuelven problemas matemáticos
mediante métodos que actualizan las estimaciones de la solución a través de un proceso
iterativo, en lugar de derivar analíticamente una fórmula que proporcione una expresión
simbólica para la solución correcta . Las operaciones comunes incluyen la optimización
(encontrar el valor de un argumento que minimiza o maximiza una función) y la resolución de sistemas de ecua
Incluso la simple evaluación de una función matemática en una computadora digital puede resultar
difícil cuando la función involucra números reales, que no pueden representarse con precisión usando
una cantidad finita de memoria.
4.1 Desbordamiento y subdesbordamiento
La dificultad fundamental al realizar operaciones matemáticas continuas en una computadora digital
es que necesitamos representar una infinidad de números reales con un número finito de patrones de
bits. Esto significa que para casi todos los números reales, incurrimos en algún error de aproximación
cuando representamos el número en la computadora. En muchos casos, esto es simplemente un
error de redondeo. El error de redondeo es problemático, especialmente cuando se acumula en
muchas operaciones, y puede hacer que los algoritmos que funcionan en teoría fallen en la práctica
si no están diseñados para minimizar la acumulación de errores de redondeo.
Una forma de error de redondeo que es particularmente devastadora es el desbordamiento.
El desbordamiento se produce cuando los números cercanos a cero se redondean a cero. Muchas
funciones se comportan de manera cualitativamente diferente cuando su argumento es cero en lugar
de un número positivo pequeño. Por ejemplo, normalmente queremos evitar la división por cero (algunos
80
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
Los entornos de software generarán excepciones cuando esto ocurra, otros devolverán un resultado
con un marcador de posición que no es un valor numérico) o tomando el logaritmo de cero (esto
generalmente se trata como −∞, que luego se convierte en no un número si es utilizado para
muchas operaciones aritméticas adicionales).
Otra forma muy dañina de error numérico es el desbordamiento. El desbordamiento ocurre
cuando números de gran magnitud se aproximan como ∞ o −∞. La aritmética adicional generalmente
cambiará estos valores infinitos en valores que no son un número.
Un ejemplo de una función que debe estabilizarse contra desbordamiento y subdesbordamiento es
la función softmax. La función softmax se utiliza a menudo para predecir las probabilidades asociadas
con una distribución multinoulli. La función softmax se define como
softmax(x)i =
exp(xi)
.
nj=1 exp(xj )
(4.1)
Considere lo que sucede cuando todos los xi son iguales a alguna constante c. Analíticamente,
podemos ver que todas las salidas deben ser iguales a 1n . Numéricamente, esto puede no ocurrir
cuando c tiene una magnitud grande. Si c es muy negativo, entonces exp(c) se desbordará. Esto
significa que el denominador de softmax se convertirá en 0, por lo que el resultado final no está
definido. Cuando c es muy grande y positivo, exp(c) se desbordará, lo que nuevamente dará como
resultado que la expresión en su conjunto no esté definida. Ambas dificultades pueden resolverse
evaluando softmax(z) donde z = x − maxi xi. El álgebra simple muestra que el valor de la función
softmax no cambia analíticamente sumando o restando un escalar del vector de entrada. Restar
maxi xi da como resultado que el argumento más grande para exp sea 0, lo que descarta la
posibilidad de desbordamiento.
Asimismo, al menos un término en el denominador tiene un valor de 1, lo que descarta la posibilidad
de un desbordamiento insuficiente en el denominador que conduzca a una división por cero.
Todavía hay un pequeño problema. El desbordamiento insuficiente en el numerador aún puede
hacer que la expresión en su conjunto se evalúe como cero. Esto significa que si implementamos log
softmax(x) ejecutando primero la subrutina softmax y luego pasando el resultado a la función log,
podríamos obtener erróneamente −∞. En su lugar, debemos implementar una función separada que
calcule log softmax de forma numéricamente estable. La función log softmax se puede estabilizar
usando el mismo truco que usamos para estabilizar la función softmax.
En su mayor parte, no detallamos explícitamente todas las consideraciones numéricas involucradas
en la implementación de los diversos algoritmos descritos en este libro. Los desarrolladores de
bibliotecas de bajo nivel deben tener en cuenta las cuestiones numéricas al implementar algoritmos de
aprendizaje profundo. La mayoría de los lectores de este libro pueden confiar simplemente en
bibliotecas de bajo nivel que proporcionan implementaciones estables. En algunos casos, es posible
implementar un nuevo algoritmo y tener la nueva implementación automáticamente.
81
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
estabilizado. Theano (Bergstra et al., 2010; Bastien et al., 2012) es un ejemplo de un paquete de
software que detecta y estabiliza automáticamente muchas expresiones numéricamente inestables
comunes que surgen en el contexto del aprendizaje profundo.
4.2 Mal acondicionamiento
El condicionamiento se refiere a la rapidez con la que cambia una función con respecto a pequeños
cambios en sus entradas. Las funciones que cambian rápidamente cuando sus entradas se perturban
ligeramente pueden ser problemáticas para el cálculo científico porque los errores de redondeo en las
entradas pueden dar lugar a grandes cambios en la salida.
Considere la función f(x) = A−1x. Cuando A
Rn×n tiene una descomposición de valores propios,
su número de condición es
máximo
i,j
λi
.
(4.2)
λj
Esta es la relación entre la magnitud del valor propio más grande y más pequeño. Cuando este
número es grande, la inversión de la matriz es particularmente sensible al error en la entrada.
Esta sensibilidad es una propiedad intrínseca de la propia matriz, no el resultado de un error de
redondeo durante la inversión de la matriz. Las matrices mal condicionadas amplifican los errores
preexistentes cuando multiplicamos por la verdadera inversa de la matriz. En la práctica, el error se
verá agravado por errores numéricos en el propio proceso de inversión.
4.3 Optimización basada en gradientes
La mayoría de los algoritmos de aprendizaje profundo implican algún tipo de optimización. La
optimización se refiere a la tarea de minimizar o maximizar alguna función f(x) alterando x.
Generalmente formulamos la mayoría de los problemas de optimización en términos de minimizar f(x).
La maximización se puede lograr mediante un algoritmo de minimización minimizando −f(x).
La función que queremos minimizar o maximizar se llama función objetivo o criterio. Cuando la
minimizamos, también podemos llamarla función de costo, función de pérdida o función de error. En
este libro utilizamos estos términos indistintamente, aunque algunas publicaciones sobre aprendizaje
automático asignan un significado especial a algunos de estos términos.
A menudo denotamos el valor que minimiza o maximiza una función con un
superíndice
. Por ejemplo, podríamos decir x
= arg mín f(x).
82
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
2.0
1.5
Mínimo global en x = 0.
Como f (x) = 0, el descenso del
gradiente se detiene aquí.
1.0
0,5
0.0
−0,5
Para x < 0, tenemos f (x) < 0, por lo
que podemos disminuir f
moviéndonos hacia la derecha.
Para x > 0, tenemos f (x) > 0, por lo
que podemos disminuir f
moviéndonos hacia la izquierda.
−1,0
12x2
f(x) =
−1,5
f
(x) = x
−2,0
−2,0 −1,5 −1,0 −0,5
0.0
0,5
1.0
1.5
2.0
X
Figura 4.1: Se puede utilizar una ilustración de cómo el algoritmo de descenso de gradiente utiliza las derivadas
de una función para seguir la función cuesta abajo hasta el mínimo.
Suponemos que el lector ya está familiarizado con el cálculo, pero proporcionamos una breve
revisión de cómo los conceptos de cálculo se relacionan con la optimización aquí.
Supongamos que tenemos una función y = f(x), donde tanto x como y son números reales.
La derivada de esta función se denota como f (x) o como dx dy
. La derivada f (x) da la
pendiente de f (x) en el punto x. En otras palabras, especifica cómo escalar un pequeño
cambio en la entrada para obtener el cambio correspondiente en la salida: f(x + ) ≈
f(x) + f (x).
Por lo tanto, la derivada es útil para minimizar una función porque nos dice cómo
cambiar x para lograr una pequeña mejora en y. Por ejemplo, sabemos que f (x −
signo(f (x))) es menor que f (x) para
suficientemente pequeño . Por tanto, podemos
reducir f (x) moviendo x en pequeños pasos con signo opuesto al de la derivada.
Esta técnica se denomina descenso de gradiente (Cauchy, 1847). Consulte la figura 4.1 para
ver un ejemplo de esta técnica.
Cuando f (x) = 0, la derivada no proporciona información sobre en qué dirección
moverse. Los puntos donde f (x) = 0 se conocen como puntos críticos o puntos
estacionarios. Un mínimo local es un punto donde f (x) es menor que en todos los
puntos vecinos, por lo que ya no es posible disminuir f(x) haciendo pasos infinitesimales.
Un máximo local es un punto donde f (x) es mayor que en todos los puntos vecinos,
83
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
Mínimo
Máximo
Punto de silla
Figura 4.2: Ejemplos de cada uno de los tres tipos de puntos críticos en 1­D. Un punto
crítico es un punto con pendiente cero. Dicho punto puede ser un mínimo local, que es más
bajo que los puntos vecinos, un máximo local, que es más alto que los puntos vecinos, o
un punto de silla, que tiene vecinos que son tanto más altos como más bajos que el punto mismo.
por lo que no es posible aumentar f (x) realizando pasos infinitesimales. Algunos puntos
críticos no son ni máximos ni mínimos. Estos se conocen como puntos de silla. Consulte la
figura 4.2 para ver ejemplos de cada tipo de punto crítico.
Un punto que obtiene el valor más bajo absoluto de f(x) es un mínimo global.
Es posible que haya solo un mínimo global o múltiples mínimos globales de la función.
También es posible que existan mínimos locales que no sean globalmente óptimos. En el
contexto del aprendizaje profundo, optimizamos funciones que pueden tener muchos
mínimos locales que no son óptimos y muchos puntos silla rodeados por regiones muy
planas. Todo esto hace que la optimización sea muy difícil, especialmente cuando la entrada
a la función es multidimensional. Por lo tanto, normalmente nos conformamos con encontrar
un valor de f que sea muy bajo, pero no necesariamente mínimo en ningún sentido formal.
Consulte la figura 4.3 para ver un ejemplo.
A menudo minimizamos funciones que tienen múltiples entradas: f : Rn → R. Para que
el concepto de “minimización” tenga sentido, todavía debe haber una sola salida (escalar).
Para funciones con múltiples entradas, debemos hacer uso del concepto de f(x) parcial
La variable derivada parcial xi aumenta ∂ ∂xipara medir cómo cambia f solo como derivadas.
en el punto x. El gradiente generaliza la noción de derivada al caso en que la derivada es
con respecto a un vector: el gradiente de f es el vector que contiene todas las derivadas
parciales, denotado xf (x). El elemento i del gradiente es la derivada parcial de f con
respecto a xi. En múltiples dimensiones,
84
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
fx()
Este mínimo local
funciona casi tan bien como
el global, por lo
que es un punto de
parada aceptable.
Idealmente nos gustaría
llegar al mínimo global,
pero esto podría no
ser posible.
Este mínimo local funciona mal
y debe evitarse.
X
Figura 4.3: Los algoritmos de optimización pueden no encontrar un mínimo global cuando hay
múltiples mínimos o mesetas locales presentes. En el contexto del aprendizaje profundo, generalmente
aceptar tales soluciones aunque no sean verdaderamente mínimas, siempre que correspondan
a valores significativamente bajos de la función de costos.
Los puntos críticos son puntos donde cada elemento del gradiente es igual a cero.
La derivada direccional en la dirección u (un vector unitario) es la pendiente de la
función f en la dirección u. En otras palabras, la derivada direccional es la derivada
de la función f(x + αu) con respecto a α, evaluada en α = 0. Usando la cadena
podemos ver que
∂
∂α f(x + αu) se evalúa como u
xf(x) cuando α = 0. regla,
Para minimizar f, nos gustaría encontrar la dirección en la que f disminuye la
lo más rápido. Podemos hacer esto usando la derivada direccional:
mín. u
u,u u=1
= mín.
u,u
u=1
xf(x)
||u||2|| xf(x)||2 cos θ
(4.3)
(4.4)
donde θ es el ángulo entre u y el gradiente. Sustituyendo en ||u||2 = 1 y
ignorando los factores que no dependen de u, esto se simplifica a menos cos θ. Esto es
minimizado cuando u apunta en la dirección opuesta al gradiente. En otra
En otras palabras, el gradiente apunta directamente cuesta arriba y el gradiente negativo apunta directamente
cuesta abajo. Podemos disminuir f moviéndonos en la dirección del gradiente negativo.
Esto se conoce como método de descenso más pronunciado o descenso en gradiente.
El descenso más pronunciado propone un nuevo punto
x
=x−
xf(x)
85
(4.5)
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
donde
es la tasa de aprendizaje, un escalar positivo que determina el tamaño del paso.
Podemos elegir
de varias formas diferentes. Un enfoque popular es establecer
en un valor pequeño
constante. A veces, podemos resolver el tamaño del paso que hace que la dirección sea direccional.
El derivado desaparece. Otro enfoque es evaluar f (x −
xf(x)) para varios
valores de
y elija el que dé como resultado el valor más pequeño de la función objetivo.
Esta última estrategia se llama búsqueda de líneas.
El descenso más pronunciado converge cuando cada elemento del gradiente es cero (o, en
práctica, muy cercano a cero). En algunos casos, es posible que podamos evitar ejecutar esto.
algoritmo iterativo, y simplemente salta directamente al punto crítico resolviendo el
ecuación xf(x) = 0 para x.
Aunque el descenso de gradiente se limita a la optimización en espacios continuos, el
concepto general de hacer repetidamente un pequeño movimiento (que es aproximadamente la mejor
pequeño movimiento) hacia mejores configuraciones se puede generalizar a espacios discretos.
Ascender una función objetivo de parámetros discretos se llama escalada.
(Russel y Norvig, 2003).
4.3.1 Más allá del gradiente: matrices jacobianas y hessianas
A veces necesitamos encontrar todas las derivadas parciales de una función cuya entrada
y la salida son ambos vectores. La matriz que contiene todas esas derivadas parciales es
metro
conocida como matriz jacobiana. Específicamente, si tenemos una función f : R
entonces la matriz jacobiana J
→ Rn ,
∂
Rn×m de f se define tal que Ji,j = f(x)i. ∂xj
A veces también nos interesa una derivada de una derivada. Esto es conocido
como segunda derivada. Por ejemplo, para una función f : R
norte
→ R, la derivada
∂2
con respecto a xi de la derivada de f con respecto a xj se denota como En una ∂xi ∂xj
F.
2
d
sola dimensión, podemos indicarnos
f por f
(x). La segunda derivada dice
dx2
cómo cambiará la primera derivada a medida que variamos la entrada. Esto es importante
porque nos dice si un paso de gradiente causará tanta mejora
como esperaríamos basándonos únicamente en el gradiente. Podemos pensar en el segundo
derivada como medida de curvatura. Supongamos que tenemos una función cuadrática (muchas
Las funciones que surgen en la práctica no son cuadráticas pero pueden aproximarse bien.
como cuadrática, al menos localmente). Si tal función tiene una segunda derivada de cero,
entonces no hay curvatura. Es una línea perfectamente plana y su valor se puede predecir.
usando solo el gradiente. Si el gradiente es 1, entonces podemos hacer un paso de tamaño
a lo largo del gradiente negativo, y la función de costo disminuirá en . si el segundo
derivada es negativa, la función se curva hacia abajo, por lo que la función de costo
en realidad disminuye en más de
. Finalmente, si la segunda derivada es positiva, la
La función se curva hacia arriba, por lo que la función de costo puede disminuir en menos de
86
. Ver
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
Sin curvatura
Curvatura positiva
fx()
fx()
fx()
Curvatura negativa
X
X
X
Figura 4.4: La segunda derivada determina la curvatura de una función. Aquí mostramos funciones
cuadráticas con varias curvaturas. La línea discontinua indica el valor de la función de costo que
esperaríamos basándonos únicamente en la información del gradiente a medida que avanzamos un
paso de gradiente cuesta abajo. En el caso de curvatura negativa, la función de costo en realidad
disminuye más rápido de lo que predice el gradiente. En el caso de que no haya curvatura, el gradiente
predice la disminución correctamente. En el caso de la curvatura positiva, la función disminuye más
lentamente de lo esperado y finalmente comienza a aumentar, por lo que los pasos que son demasiado
grandes pueden aumentar la función sin darse cuenta.
Figura 4.4 para ver cómo las diferentes formas de curvatura afectan la relación
entre el valor de la función de costo predicha por el gradiente y el valor verdadero.
Cuando nuestra función tiene múltiples dimensiones de entrada, hay muchas segundas
derivadas. Estos derivados se pueden agrupar en una matriz llamada matriz de Hesse. La
matriz de Hesse H(f)(x) se define tal que
∂
2 H(f)(x)i,j = f(x). ∂xi∂xj
(4.6)
De manera equivalente, el hessiano es el jacobiano del gradiente.
En cualquier lugar donde las segundas derivadas parciales sean continuas, el diferencial
Los operadores son conmutativos, es decir, su orden se puede intercambiar:
2∂
2∂
f(x) = f(x). ∂xi∂xj ∂xj∂xi
(4.7)
Esto implica que Hi,j = Hj,i, por lo que la matriz de Hesse es simétrica en dichos puntos.
La mayoría de las funciones que encontramos en el contexto del aprendizaje profundo tienen
un hessiano simétrico en casi todas partes. Debido a que la matriz de Hesse es real y
simétrica, podemos descomponerla en un conjunto de valores propios reales y una base ortogonal de
87
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
vectores propios. La segunda derivada en una dirección específica representada por un vector unitario d
viene dada por d
, en esa dirección viene
Hd. Cuando d es un vector propio de H, la segunda derivada
dada por el valor propio correspondiente. Para otras direcciones de d, la segunda derivada direccional es
un promedio ponderado de todos los valores propios, con pesos entre 0 y 1, y vectores propios que tienen
un ángulo menor y d recibe más peso. El valor propio máximo determina la segunda derivada máxima y
el valor propio mínimo determina la segunda derivada mínima.
La segunda derivada (direccional) nos dice qué tan bien podemos esperar que funcione un paso
de descenso de gradiente. Podemos hacer una aproximación en serie de Taylor de segundo orden
:
(0) a la función f(x) alrededor del punto actual x
1
f(x) ≈ f(x (0)) + (x − x (0) )
g+
2
x
(0) )
(4.8)
H(x − x (0)). (x­
aprendizaje donde g es el gradiente y H es el hessiano en (0) . Si utilizamos una tasa de
nuestro de , entonces el nuevo punto x estará
x (0) − g. Sustituyendo esto en
dado por la aproximación de x, obtenemos
1
f(x (0) −
g) ≈ f(x (0) ) −
g
g+
2
2g
Hg.
(4.9)
Aquí hay tres términos: el valor original de la función, la mejora esperada debido a la pendiente de la
función y la corrección que debemos aplicar para tener en cuenta la curvatura de la función. Cuando
este último término es demasiado grande, el paso de descenso del gradiente puede moverse cuesta
arriba. Cuando g
Hg es cero o negativo, la aproximación de la serie de Taylor predice que aumentar
siempre disminuirá f siempre. En la práctica, es poco probable que la serie de Taylor siga siendo
precisa para
Cuando g
grandes, por lo que en este caso se debe recurrir a opciones más heurísticas de
.
Hg es positivo, al resolver el tamaño de paso óptimo que disminuye la aproximación de la
función en serie de Taylor se obtiene la mayor cantidad de resultados
g
=
g
g
.
(4.10)
Hg
En el peor de los casos, cuando g se alinea con el vector propio de H correspondiente al valor propio máximo λmax,
1
entonces este tamaño de paso óptimo viene dado por λmax . En la medida en que la función que minimizamos pueda
aproximarse bien mediante una función cuadrática, los valores propios del hessiano determinan la escala de la tasa de
aprendizaje.
La segunda derivada se puede utilizar para determinar si un punto crítico es un máximo local, un
mínimo local o un punto de silla. Recuerde que en un punto crítico , f
derivada f
(x) > 0, la primera derivada f
(x) = 0. Cuando la segunda
(x) aumenta a medida que nos movemos hacia la
derecha y disminuye a medida que nos movemos hacia la derecha. izquierda. Esto significa
88
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
f
(x −
)<0yf
(x +
) > 0 para
suficientemente pequeño . En otras palabras, a medida que nos
movemos hacia la derecha, la pendiente comienza a apuntar cuesta arriba hacia la derecha, y a medida
que nos movemos hacia la izquierda, la pendiente comienza a apuntar cuesta arriba hacia la izquierda.
Así, cuando f (x) = 0 y f
(x) > 0, podemos concluir que x es un mínimo local. De manera similar,
cuando f (x) = 0 y f
(x) < 0, podemos concluir que x es un máximo local. Esto se conoce como
prueba de la segunda derivada. Desafortunadamente, cuando f
(x) = 0, la prueba no es concluyente.
En este caso, x puede ser un punto de silla o una parte de una región plana.
En múltiples dimensiones, necesitamos examinar todas las segundas derivadas de la función.
Utilizando la descomposición propia de la matriz de Hesse, podemos generalizar la prueba de la
segunda derivada a múltiples dimensiones. En un punto crítico, donde
xf(x) = 0, podemos examinar
los valores propios del hessiano para determinar si el punto crítico es un máximo local, un mínimo
local o un punto de silla. Cuando el hessiano es definido positivo (todos sus valores propios son
positivos), el punto es un mínimo local. Esto se puede ver observando que la segunda derivada
direccional en cualquier dirección debe ser positiva y haciendo referencia a la prueba de la segunda
derivada univariada. Asimismo, cuando el hessiano es definido negativo (todos sus valores propios
son negativos), el punto es un máximo local. En múltiples dimensiones, en algunos casos es posible
encontrar evidencia positiva de puntos de silla. Cuando al menos un valor propio es positivo y al
menos un valor propio es negativo, sabemos que x es un máximo local en una sección transversal de
f pero un mínimo local en otra sección transversal. Consulte la figura 4.5 para ver un ejemplo.
Finalmente, la prueba multidimensional de la segunda derivada puede no ser concluyente, al igual
que la versión univariada. La prueba no es concluyente siempre que todos los valores propios distintos
de cero tengan el mismo signo, pero al menos un valor propio sea cero. Esto se debe a que la prueba
univariante de la segunda derivada no es concluyente en la sección transversal correspondiente al
valor propio cero.
En múltiples dimensiones, existe una segunda derivada diferente para cada dirección en un solo
punto. El número de condición del Hesse en este punto mide en qué medida las segundas derivadas
difieren entre sí. Cuando el Hessian tiene un número de condición deficiente, el descenso en gradiente
funciona mal. Esto se debe a que en una dirección la derivada aumenta rápidamente, mientras que
en otra dirección aumenta lentamente. El descenso de gradiente desconoce este cambio en la
derivada, por lo que no sabe que necesita explorar preferentemente en la dirección donde la derivada
permanece negativa por más tiempo. También dificulta la elección de un buen tamaño de paso.
El tamaño del paso debe ser lo suficientemente pequeño para evitar sobrepasar el mínimo y subir cuesta
arriba en direcciones con una fuerte curvatura positiva. Esto generalmente significa que el tamaño del paso
es demasiado pequeño para lograr avances significativos en otras direcciones con menos curvatura.
Consulte la figura 4.6 para ver un ejemplo.
Este problema se puede resolver utilizando información de la matriz de Hesse para guiar
89
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
Figura 4.5: Un punto de silla que contiene curvatura tanto positiva como negativa. La
2
función en este ejemplo es f (x)
2 ­xx 2 . A lo largo del eje correspondiente a x1, la función se
1 =
curva hacia arriba. Este eje es un vector propio del hessiano y tiene un valor propio positivo.
A lo largo del eje correspondiente a x2, la función se curva hacia abajo. Esta dirección es un vector propio del
hessiano con valor propio negativo. El nombre "punto de silla" deriva de la forma de silla de montar de esta función.
Este es el ejemplo por excelencia de una función con un punto silla. En más de una dimensión, no es necesario
tener un valor propio de 0 para obtener un punto de silla: sólo es necesario tener valores propios positivos y
negativos. Podemos pensar en un punto de silla con ambos signos de valores propios como un máximo local dentro
de una sección transversal y un mínimo local dentro de otra sección transversal.
90
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
20
x2
10
0
−10
−20
−30
−30 −20 −10 0
10 20
x1
Figura 4.6: El descenso del gradiente no logra explotar la información de curvatura contenida en la matriz de Hesse.
Aquí utilizamos el descenso de gradiente para minimizar una función cuadrática f(x) cuya matriz de Hesse tiene la
condición número 5. Esto significa que la dirección de mayor curvatura tiene cinco veces más curvatura que la
dirección de menor curvatura. En este caso, la mayor curvatura está en la dirección [1, 1]
está en la dirección [1, −1]
y la menor curvatura
. Las líneas rojas indican el camino seguido por el descenso del gradiente. Esta función
cuadrática muy alargada se asemeja a un largo cañón. El descenso en pendiente hace perder tiempo al descender
repetidamente las paredes del cañón, porque son la característica más empinada. Debido a que el tamaño del paso
es demasiado grande, tiende a sobrepasar la parte inferior de la función y, por lo tanto, necesita descender por la
pared opuesta del cañón en la siguiente iteración. El gran valor propio positivo del hessiano correspondiente al
vector propio apuntado en esta dirección indica que esta derivada direccional está aumentando rápidamente, por
lo que un algoritmo de optimización basado en el hessiano podría predecir que la dirección más pronunciada no es
en realidad una dirección de búsqueda prometedora en este contexto.
91
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
la búsqueda. El método más sencillo para hacerlo se conoce como método de Newton.
El método de Newton se basa en el uso de una expansión en serie de Taylor de segundo orden para (0) aproximar f(x) cerca de algún punto x:
f(x) ≈ f(x (0) )+(x−x (0) )
xf(x (0))+
1
2 (x−x (0))
H(f)(x (0) )(x−x (0) ). (4.11)
Si luego calculamos el punto crítico de esta función, obtenemos:
x
=x
(0) − H(f)(x (0))−1
xf(x (0)).
(4.12)
Cuando f es una función cuadrática definida positiva, el método de Newton consiste en
aplicar la ecuación 4.12 una vez para saltar directamente al mínimo de la función.
Cuando f no es verdaderamente cuadrática pero puede aproximarse localmente como una
cuadrática definida positiva, el método de Newton consiste en aplicar la ecuación 4.12
varias veces. Actualizar iterativamente la aproximación y saltar al mínimo de la
aproximación puede alcanzar el punto crítico mucho más rápido que el descenso de
gradiente . Esta es una propiedad útil cerca de un mínimo local, pero puede ser una
propiedad dañina cerca de un punto de silla. Como se analizó en la sección 8.2.3, el
método de Newton sólo es apropiado cuando el punto crítico cercano es un mínimo (todos
los valores propios del Hessiano son positivos), mientras que el descenso del gradiente
no es atraído por los puntos silla a menos que el gradiente apunte hacia ellos.
Los algoritmos de optimización que utilizan solo el gradiente, como el descenso de
gradiente, se denominan algoritmos de optimización de primer orden. Los algoritmos de
optimización que también utilizan la matriz de Hesse, como el método de Newton, se
denominan algoritmos de optimización de segundo orden (Nocedal y Wright, 2006).
Los algoritmos de optimización empleados en la mayoría de los contextos de este
libro son aplicables a una amplia variedad de funciones, pero casi no ofrecen garantías.
Los algoritmos de aprendizaje profundo tienden a carecer de garantías porque la familia de funciones
utilizadas en el aprendizaje profundo es bastante complicada. En muchos otros campos, el enfoque
dominante de optimización es diseñar algoritmos de optimización para una familia limitada de funciones.
En el contexto del aprendizaje profundo, a veces obtenemos algunas garantías al
restringirnos a funciones que son continuas de Lipschitz o tienen derivadas continuas de
Lipschitz. Una función continua de Lipschitz es una función f cuya tasa de cambio está limitada
por una constante de Lipschitz L:
x,
y, |f(x) − f(y)| ≤ L||x − y||2.
(4.13)
Esta propiedad es útil porque nos permite cuantificar nuestra suposición de que un
pequeño cambio en la entrada realizada por un algoritmo como el descenso de gradiente tendrá
92
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
un pequeño cambio en la salida. La continuidad de Lipschitz también es una restricción bastante débil y
muchos problemas de optimización en el aprendizaje profundo se pueden convertir en continuos de Lipschitz.
con modificaciones relativamente menores.
Quizás el campo de optimización especializada más exitoso sea la optimización convexa. Los
algoritmos de optimización convexos pueden proporcionar muchos más
garantías imponiendo restricciones más estrictas. Los algoritmos de optimización convexos son
aplicable sólo a funciones convexas: funciones para las cuales el hessiano es positivo
semidefinido en todas partes. Estas funciones se comportan bien porque carecen de silla.
Los puntos y todos sus mínimos locales son necesariamente mínimos globales. Sin embargo, la mayoría
Los problemas del aprendizaje profundo son difíciles de expresar en términos de optimización convexa.
La optimización convexa se utiliza sólo como una subrutina de algunos algoritmos de aprendizaje profundo.
Las ideas del análisis de algoritmos de optimización convexa pueden ser útiles para demostrar
la convergencia de algoritmos de aprendizaje profundo. Sin embargo, en general, la importancia
de optimización convexa disminuye considerablemente en el contexto del aprendizaje profundo. Para
más información sobre la optimización convexa, consulte Boyd y Vandenberghe (2004)
o Rockafellar (1997).
4.4 Optimización restringida
A veces no sólo deseamos maximizar o minimizar una función f(x) sobre todos
valores posibles de x. En su lugar, es posible que deseemos encontrar el máximo o el mínimo.
valor de f (x) para valores de x en algún conjunto S. Esto se conoce como restringido
mejoramiento. Los puntos x que se encuentran dentro del conjunto S se llaman puntos factibles en
terminología de optimización restringida.
A menudo deseamos encontrar una solución que sea pequeña en algún sentido. Una común
El enfoque en tales situaciones es imponer una restricción de norma, como ||x|| ≤ 1.
Un enfoque simple para la optimización restringida es simplemente modificar el gradiente.
descenso teniendo en cuenta la restricción. Si usamos un tamaño de paso pequeño y constante
,
podemos hacer pasos de descenso de gradiente y luego proyectar el resultado nuevamente en S. Si usamos
En una búsqueda lineal, podemos buscar sólo en tamaños de paso
que produzcan nuevos puntos x que sean
factible, o podemos proyectar cada punto de la línea nuevamente dentro de la región de restricción.
Cuando sea posible, este método puede hacerse más eficiente proyectando el gradiente
en el espacio tangente de la región factible antes de dar el paso o comenzar
la búsqueda lineal (Rosen, 1960).
Un enfoque más sofisticado es diseñar un problema de optimización diferente y sin restricciones
cuya solución pueda convertirse en una solución al original.
problema de optimización restringida. Por ejemplo, si queremos minimizar f(x) para
93
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
x
R2 con x restringido a tener exactamente la unidad L
g(θ) = f ([cos θ,sin θ]
2
norma, en su lugar podemos minimizar
) con respecto a θ, luego devuelve [cos θ,sin θ] como solución
al problema original. Este enfoque requiere creatividad; la transformación
entre problemas de optimización deben diseñarse específicamente para cada caso que
encontrar.
El enfoque Karush­Kuhn­Tucker (KKT)1 proporciona una solución muy general para la
optimización restringida. Con el enfoque KKT, introducimos un
nueva función llamada lagrangiana generalizada o Lagrange generalizada
función.
Para definir el lagrangiano, primero necesitamos describir S en términos de ecuaciones
(i) y norte
y desigualdades. Queremos una descripción de S en términos de m funciones g
funciones h (j) de modo que S = {x | i, g (i)(x) = 0 y j, h (j) (x) ≤ 0}. las ecuaciones
(i) se llaman restricciones de igualdad y desigualdades que involucran
involucrando g
h (j) se denominan restricciones de desigualdad.
Introducimos nuevas variables λi y αj para cada restricción, estas se denominan
Multiplicadores KKT. El lagrangiano generalizado se define entonces como
λi g (yo) (x) +
L(x,λ, α) = f(x) +
i
αjh (j)(x).
(4.14)
j
Ahora podemos resolver un problema de minimización restringida usando
optimización del Lagrangiano generalizado. Observe que, siempre que al menos uno
existe un punto factible y no se permite que f(x) tenga el valor ∞, entonces
mín. máximo máx . L(x,λ, α).
X
λ
α,α≥0
(4.15)
tiene el mismo valor de función objetivo óptima y el mismo conjunto de puntos óptimos x que
mín. f(x).
x
S
(4.16)
Esto se deduce porque cada vez que se satisfacen las restricciones,
máximo máximo
λ
L(x,λ, α) = f(x), α,α≥0
(4.17)
mientras que cada vez que se viola una restricción,
máximo máx .
λ
α,α≥0
L(x,λ, α) = ∞.
(4.18)
1El enfoque KKT generaliza el método de los multiplicadores de Lagrange que permite la igualdad
restricciones, pero no restricciones de desigualdad.
94
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
Estas propiedades garantizan que ningún punto inviable pueda ser óptimo y que
el óptimo dentro de los puntos factibles no cambie.
Para realizar la maximización restringida, podemos construir el La­ generalizado.
función grange de −f(x), que conduce a este problema de optimización:
mín máx λ
X
α,α≥0−f(x) +
i
λig (i)(x) +
αjh (j)(x). máx
(4.19)
j
También podemos convertir esto en un problema de maximización en el bucle externo:
máximo
x
mín
λ
α,α≥0f(x) +
λig (i)(x) −
αjh
i
(j) (x). mín
(4.20)
j
No importa el signo del término para las restricciones de igualdad; podemos definirlo con
suma o resta como queramos, porque la optimización es libre de elegir cualquier signo para
cada λi.
Las restricciones de la desigualdad son particularmente interesantes. Decimos que una
restricción h (i) (x) está activa si h (i) (x ) = 0. Si una restricción no está activa, entonces
la solución al problema encontrada usando esa restricción seguiría siendo al menos una
solución local. si se eliminara esa restricción. Es posible que una restricción inactiva excluya
otras soluciones. Por ejemplo, un problema convexo con una región completa de puntos
globalmente óptimos (una región ancha, plana y de igual costo) podría tener un subconjunto
de esta región eliminado por restricciones, o un problema no convexo podría tener mejores
puntos estacionarios locales excluidos por una restricción que está inactiva en la
convergencia. Sin embargo, el punto encontrado en la convergencia sigue siendo un punto
estacionario independientemente de que se incluyan o no las restricciones inactivas. Debido
a que un h (i) inactivo tiene un valor negativo, entonces la solución a minx maxλ maxα,α≥0
L(x,λ, α) tendrá αi = 0. Así podemos observar que en la solución, α
h(x ) = 0. En otras
palabras, para todo i, sabemos que al menos una de las restricciones αi ≥ 0 y h (i)(x) ≤ 0
debe estar activa en la solución. Para tener cierta intuición sobre esta idea, podemos decir
que o la solución está en el límite impuesto por la desigualdad y debemos usar su
multiplicador KKT para influir en la solución de x, o la desigualdad no tiene influencia en la
solución y representamos esta poniendo a cero su multiplicador KKT.
Un conjunto simple de propiedades describe los puntos óptimos de problemas
de optimización restringida. Estas propiedades se denominan condiciones de Karush­
Kuhn­Tucker (KKT) (Karush, 1939; Kuhn y Tucker, 1951). Son condiciones
necesarias, pero no siempre suficientes, para que un punto sea óptimo. Las condiciones son:
• El gradiente del Lagrangiano generalizado es cero.
• Se satisfacen todas las restricciones sobre los multiplicadores x y KKT.
95
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
• Las restricciones de desigualdad exhiben “holgura complementaria”: α
h(x) = 0.
Para obtener más información sobre el enfoque KKT, consulte Nocedal y Wright (2006).
4.5 Ejemplo: mínimos cuadrados lineales
Supongamos que queremos encontrar el valor de x que minimice
||Hacha − b||22 .
1f(x) = 2
(4.21)
Existen algoritmos de álgebra lineal especializados que pueden resolver este problema de manera eficiente.
Sin embargo, también podemos explorar cómo resolverlo utilizando la optimización basada en gradientes
como un ejemplo simple de cómo funcionan estas técnicas.
Primero, necesitamos obtener el gradiente:
xf(x) = A
(Ax − b) = A
Ax − A
b.
(4.22)
Luego podemos seguir esta pendiente cuesta abajo, dando pequeños pasos. Ver algoritmo 4.1
para detalles.
Algoritmo 4.1 Un algoritmo para minimizar f(x) = con respecto a x usando
||Ax − descenso
b||2 2 de gradiente, a partir
12
de un valor arbitrario de x.
Establezca el tamaño del paso (
positivos. mientras que ||A
> δ hacer x ← x −
) y la tolerancia (δ) en números pequeños y
Ax − A
A
Ax − A
b||2
b
terminar mientras
También se puede resolver este problema utilizando el método de Newton. En este caso, debido a
que la función verdadera es cuadrática, la aproximación cuadrática empleada por el método de Newton
es exacta y el algoritmo converge al mínimo global en un solo paso.
Ahora supongamos que deseamos minimizar la misma función, pero sujeto a la
restricción x
x ≤ 1. Para hacerlo, introducimos el lagrangiano
L(x, λ) = f(x) + λ
x
x−1
.
(4.23)
Ahora podemos resolver el problema.
mín
X
máximo L(x, λ).
λ,λ≥0
96
(4.24)
Machine Translated by Google
CAPÍTULO 4. CÁLCULO NUMÉRICO
La solución de norma más pequeña al problema de mínimos cuadrados sin
restricciones se puede encontrar utilizando la pseudoinversa de Moore­Penrose: x = A+
b. Si este punto es factible, entonces es la solución al problema restringido. De lo
contrario, debemos encontrar una solución donde la restricción esté activa. Derivando
el lagrangiano con respecto a x, obtenemos la ecuación
A
Ax − A
b + 2λx = 0.
(4.25)
Esto nos dice que la solución tomará la forma
x = (A
A + 2λI)−1A
b.
(4.26)
La magnitud de λ debe elegirse de manera que el resultado obedezca la restricción.
Podemos encontrar este valor realizando un ascenso de gradiente en λ. Para ello, observe
∂
∂λ
L(x, λ) = x
x − 1.
(4.27)
Cuando la norma de x excede 1, esta derivada es positiva, por lo que para seguir la derivada cuesta arriba
y aumentar el lagrangiano con respecto a λ, aumentamos λ. Debido a que el coeficiente de la penalización
x
x ha aumentado, resolver la ecuación lineal para x ahora producirá una solución con una norma más
pequeña. El proceso de resolver la ecuación lineal y ajustar λ continúa hasta que x tiene la norma correcta
y la derivada de λ es 0.
Con esto concluyen los preliminares matemáticos que utilizamos para desarrollar algoritmos
de aprendizaje automático. Ahora estamos listos para construir y analizar algunos sistemas de
aprendizaje completos .
97
Machine Translated by Google
Capítulo 5
Conceptos básicos del aprendizaje automático
El aprendizaje profundo es un tipo específico de aprendizaje automático. Para comprender
bien el aprendizaje profundo, es necesario tener una comprensión sólida de los principios
básicos del aprendizaje automático. Este capítulo proporciona un breve curso sobre los
principios generales más importantes que se aplicarán a lo largo del resto del libro. Se anima
a los lectores novatos o a aquellos que quieran una perspectiva más amplia a considerar
libros de texto sobre aprendizaje automático con una cobertura más completa de los
fundamentos, como Murphy (2012) o Bishop (2006). Si ya está familiarizado con los conceptos
básicos del aprendizaje automático, no dude en pasar a la sección 5.11. Esa sección cubre
algunas perspectivas sobre las técnicas tradicionales de aprendizaje automático que han
influido fuertemente en el desarrollo de algoritmos de aprendizaje profundo.
Comenzamos con una definición de qué es un algoritmo de aprendizaje y presentamos un
ejemplo: el algoritmo de regresión lineal. Luego procedemos a describir en qué se diferencia
el desafío de ajustar los datos de entrenamiento del desafío de encontrar patrones que se
generalicen a nuevos datos. La mayoría de los algoritmos de aprendizaje automático tienen
configuraciones llamadas hiperparámetros que deben determinarse externamente al propio
algoritmo de aprendizaje; Discutimos cómo configurarlos usando datos adicionales. El
aprendizaje automático es esencialmente una forma de estadística aplicada con mayor énfasis
en el uso de computadoras para estimar estadísticamente funciones complicadas y un menor
énfasis en demostrar intervalos de confianza alrededor de estas funciones; Por lo tanto,
presentamos los dos enfoques centrales de la estadística: estimadores frecuentistas e inferencia bayesiana.
La mayoría de los algoritmos de aprendizaje automático se pueden dividir en categorías de
aprendizaje supervisado y aprendizaje no supervisado; Describimos estas categorías y damos
algunos ejemplos de algoritmos de aprendizaje simples de cada categoría. La mayoría de los
algoritmos de aprendizaje profundo se basan en un algoritmo de optimización llamado
descenso de gradiente estocástico. Describimos cómo combinar varios componentes del algoritmo, como
98
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
un algoritmo de optimización, una función de costos, un modelo y un conjunto de datos para
construir un algoritmo de aprendizaje automático. Finalmente, en la sección 5.11, describimos
algunos de los factores que han limitado la capacidad de generalización del aprendizaje automático tradicional.
Estos desafíos han motivado el desarrollo de algoritmos de aprendizaje profundo que superan estos
obstáculos.
5.1 Algoritmos de aprendizaje
Un algoritmo de aprendizaje automático es un algoritmo que puede aprender de los datos. Pero ¿qué
entendemos por aprendizaje? Mitchell (1997) proporciona la definición: " Se dice que un programa de
computadora aprende de la experiencia E con respecto a alguna clase de tareas T y medida de
desempeño P, si su desempeño en las tareas en T, medido por P, mejora con la experiencia E". Se puede
imaginar una variedad muy amplia de experiencias E, tareas T y medidas de desempeño P, y en este
libro no pretendemos proporcionar una definición formal de lo que se puede utilizar para cada una de
estas entidades.
En cambio, las siguientes secciones proporcionan descripciones intuitivas y ejemplos de los diferentes
tipos de tareas, medidas de rendimiento y experiencias que se pueden utilizar para construir
algoritmos de aprendizaje automático.
5.1.1 La tarea, T
El aprendizaje automático nos permite abordar tareas demasiado difíciles de resolver con programas
fijos escritos y diseñados por seres humanos. Desde un punto de vista científico y filosófico, el
aprendizaje automático es interesante porque desarrollar nuestra comprensión del aprendizaje
automático implica desarrollar nuestra comprensión de los principios que subyacen a la inteligencia.
En esta definición relativamente formal de la palabra “tarea”, el proceso de aprendizaje en sí no es
la tarea. El aprendizaje es nuestro medio para alcanzar la capacidad de realizar la tarea. Por ejemplo, si
queremos que un robot pueda caminar, entonces la tarea es caminar.
Podríamos programar el robot para que aprenda a caminar, o podríamos intentar escribir directamente
un programa que especifique cómo caminar manualmente.
Las tareas de aprendizaje automático generalmente se describen en términos de cómo el sistema
de aprendizaje automático debería procesar un ejemplo. Un ejemplo es una colección de
características que se han medido cuantitativamente a partir de algún objeto o evento que queremos
que procese el sistema de aprendizaje automático. Normalmente representamos un ejemplo como un
vector x
R donde cada entrada xi del vector es otra característica. Por ejemplo, las características
norte
de una imagen suelen ser los valores de los píxeles de la imagen.
99
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Se pueden resolver muchos tipos de tareas con el aprendizaje automático. Algunos de los más
Las tareas comunes de aprendizaje automático incluyen las siguientes:
• Clasificación: En este tipo de tarea, se le pide al programa de computadora que especifique a cuál
de las k categorías pertenece una entrada. Para resolver esta tarea, el aprendizaje → {1, . . . ,k}.
le pide al algoritmo que produzca una función f : R y = f(x), el modelo
norte
Cuando generalmente se
asigna una entrada descrita por el vector x a una categoría identificada por el código numérico y.
Existen otras variantes de la tarea de clasificación, por ejemplo, donde f genera una distribución de
probabilidad entre clases.
Un ejemplo de una tarea de clasificación es el reconocimiento de objetos, donde la entrada es
una imagen (generalmente descrita como un conjunto de valores de brillo de píxeles) y la salida
es un código numérico que identifica el objeto en la imagen. Por ejemplo, el robot Willow Garage
PR2 puede actuar como un camarero que puede reconocer diferentes tipos de bebidas y
entregárselas a las personas cuando se lo ordenen (Good­fellow et al., 2010). El reconocimiento
de objetos moderno se logra mejor con el aprendizaje profundo (Krizhevsky et al., 2012; Ioffe y
Szegedy, 2015). El reconocimiento de objetos es la misma tecnología básica que permite a las
computadoras reconocer rostros (Taigman et al., 2014), que puede usarse para etiquetar
automáticamente a personas en colecciones de fotografías y permitir que las computadoras
interactúen de manera más natural con sus usuarios.
• Clasificación con entradas faltantes: La clasificación se vuelve más desafiante si el programa de
computadora no garantiza que siempre se proporcionarán todas las mediciones en su vector de
entrada. Para resolver la tarea de clasificación, el algoritmo de aprendizaje solo tiene que definir
un mapeo de función única desde una entrada vectorial a una salida categórica. Cuando algunas
de las entradas pueden faltar, en lugar de proporcionar una única función de clasificación, el
algoritmo de aprendizaje debe aprender un conjunto de funciones. Cada función corresponde a
clasificar x faltando un subconjunto diferente de sus entradas. Este tipo de situación surge
frecuentemente en el diagnóstico médico, porque muchos tipos de pruebas médicas son costosas
o invasivas. Una forma de definir eficientemente un conjunto tan grande de funciones es aprender
una distribución de probabilidad sobre todas las variables relevantes y luego resolver la tarea de
clasificación marginando las variables faltantes. Con n variables de entrada, ahora podemos
obtener las 2 n funciones de clasificación diferentes necesarias para cada posible conjunto de
entradas faltantes, pero solo necesitamos aprender una función que describa la distribución de
probabilidad conjunta.
Véase Goodfellow et al. (2013b) para ver un ejemplo de un modelo probabilístico profundo
aplicado de esta manera a tal tarea. Muchas de las otras tareas descritas en esta sección
también se pueden generalizar para trabajar con entradas faltantes; La clasificación con
entradas faltantes es solo un ejemplo de lo que puede hacer el aprendizaje automático.
100
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
• Regresión: en este tipo de tarea, se le pide al programa de computadora que prediga
un valor numérico dada alguna entrada. Para resolver esta tarea, se le pide al
algoritmo de aprendizaje que genere una función f : R → R. Este tipo de tarea es
similar a la clasificación, excepto que el formato de salida es diferente. Un ejemplo
de tarea de regresión es la predicción del monto esperado de la reclamación que
hará una persona asegurada (utilizada para fijar las primas de seguro), o la
predicción de los precios futuros de los valores. Este tipo de predicciones también
se utilizan para el comercio algorítmico.
norte
• Transcripción: en este tipo de tarea, se pide al sistema de aprendizaje automático que
observe una representación relativamente no estructurada de algún tipo de datos y la
transcriba en forma textual discreta. Por ejemplo, en el reconocimiento óptico de
caracteres, al programa informático se le muestra una fotografía que contiene una
imagen de texto y se le pide que devuelva este texto en forma de una secuencia de
caracteres (por ejemplo, en formato ASCII o Unicode). Google Street View utiliza el
aprendizaje profundo para procesar números de direcciones de esta manera (Goodfellow
et al., 2014d). Otro ejemplo es el reconocimiento de voz, donde al programa informático
se le proporciona una forma de onda de audio y emite una secuencia de caracteres o
códigos de identificación de palabras que describen las palabras que se pronunciaron en
la grabación de audio. El aprendizaje profundo es un componente crucial de los sistemas
modernos de reconocimiento de voz utilizados en importantes empresas, incluidas
Microsoft, IBM y Google (Hinton et al., 2012b).
• Traducción automática: en una tarea de traducción automática, la entrada ya consta
de una secuencia de símbolos en algún idioma, y el programa de computadora
debe convertirla en una secuencia de símbolos en otro idioma. Esto se aplica
comúnmente a lenguajes naturales, como la traducción del inglés al francés.
Recientemente, el aprendizaje profundo ha comenzado a tener un impacto
importante en este tipo de tareas (Sutskever et al., 2014; Bahdanau et al., 2015).
• Salida estructurada: las tareas de salida estructurada implican cualquier tarea en la
que la salida sea un vector (u otra estructura de datos que contenga múltiples
valores) con relaciones importantes entre los diferentes elementos. Esta es una
categoría amplia y abarca las tareas de transcripción y traducción descritas
anteriormente, pero también muchas otras tareas. Un ejemplo es el análisis: mapear
una oración en lenguaje natural en un árbol que describe su estructura gramatical y
etiquetar los nodos de los árboles como verbos, sustantivos o adverbios, etc.
Consulte Collobert (2011) para ver un ejemplo de aprendizaje profundo aplicado a una
tarea de análisis. Otro ejemplo es la segmentación de imágenes por píxeles, donde el
programa informático asigna cada píxel de una imagen a una categoría específica. Para
101
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Por ejemplo, el aprendizaje profundo se puede utilizar para anotar la ubicación de
carreteras en fotografías aéreas (Mnih y Hinton, 2010). No es necesario que la forma
de la salida refleje la estructura de la entrada tan fielmente como en estas tareas de
estilo de anotación. Por ejemplo, en los subtítulos de imágenes, el programa de
computadora observa una imagen y genera una oración en lenguaje natural que
describe la imagen (Kiros et al., 2014a,b; Mao et al., 2015; Vinyals et al., 2015b;
Donahue et al. , 2014; Karpathy y Li, 2015 ; Fang et al. , 2015; Estas tareas se
denominan tareas de salida estructuradas porque el programa debe generar varios
valores que están todos estrechamente relacionados entre sí. Por ejemplo, las
palabras producidas por un programa de subtítulos de imágenes deben formar una oración válida.
• Detección de anomalías: en este tipo de tarea, el programa informático examina un
conjunto de eventos u objetos y marca algunos de ellos como inusuales o atípicos. Un
ejemplo de tarea de detección de anomalías es la detección de fraude con tarjetas de
crédito. Al modelar sus hábitos de compra, una compañía de tarjetas de crédito puede
detectar el uso indebido de sus tarjetas. Si un ladrón roba su tarjeta de crédito o la
información de su tarjeta de crédito, las compras del ladrón a menudo provendrán de
una distribución de probabilidad sobre tipos de compra diferente a la suya. La compañía
de la tarjeta de crédito puede prevenir el fraude reteniendo una cuenta tan pronto como
esa tarjeta se haya utilizado para una compra inusual. Véase Chandola et al. (2009)
para un estudio sobre métodos de detección de anomalías.
• Síntesis y muestreo: en este tipo de tareas, se pide al algoritmo de aprendizaje
automático que genere nuevos ejemplos similares a los de los datos de
entrenamiento. La síntesis y el muestreo a través del aprendizaje automático
pueden ser útiles para aplicaciones de medios donde puede resultar costoso o
aburrido para un artista generar grandes volúmenes de contenido a mano. Por
ejemplo, los videojuegos pueden generar automáticamente texturas para objetos o
paisajes grandes, en lugar de requerir que un artista etiquete manualmente cada
píxel (Luo et al., 2013). En algunos casos, queremos que el procedimiento de
muestreo o síntesis genere algún tipo específico de salida dada la entrada. Por
ejemplo, en una tarea de síntesis de voz, proporcionamos una oración escrita y le
pedimos al programa que emita una forma de onda de audio que contenga una
versión hablada de esa oración. Este es un tipo de tarea de salida estructurada,
pero con la salvedad adicional de que no existe una única salida correcta para cada
entrada, y deseamos explícitamente una gran cantidad de variación en la salida, para que la salida
• Imputación de valores faltantes: en este tipo de tarea, al algoritmo de aprendizaje automático se le da
un nuevo ejemplo x
R pero faltan algunas entradas xi de, x . El algoritmo debe proporcionar una
norte
predicción de los valores de las entradas faltantes.
102
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
• Eliminación de ruido: en este tipo de tarea, el algoritmo de aprendizaje automático recibe
como entrada un ejemplo corrupto x˜
Rn obtenido mediante un proceso de corrupción
desconocido a partir de un ejemplo limpio x
Rn . El alumno debe predecir el ejemplo
limpio x a partir de su versión corrupta x˜, o más generalmente predecir la distribución de
probabilidad condicional p(x | x˜).
• Estimación de densidad o estimación de función de masa de probabilidad: En el problema de
estimación de densidad, se le pide al algoritmo de aprendizaje automático → R, donde
función pmodel : R n como una función pmodel(x) se puede interpretar para aprender una
de densidad de probabilidad (si x es continua ) o una función de masa de probabilidad (si x
es discreta) en el espacio del que se extrajeron los ejemplos.
Para realizar bien esa tarea (especificaremos exactamente lo que eso significa cuando analicemos
las medidas de desempeño P), el algoritmo necesita aprender la estructura de los datos que ha
visto. Debe saber dónde se concentran los ejemplos y dónde es poco probable que ocurran. La
mayoría de las tareas descritas anteriormente requieren que el algoritmo de aprendizaje capture
al menos implícitamente la estructura de la distribución de probabilidad. La estimación de densidad
nos permite capturar explícitamente esa distribución. En principio, podemos realizar cálculos
sobre esa distribución para resolver también las otras tareas. Por ejemplo, si hemos realizado una
estimación de densidad para obtener una distribución de probabilidad p(x), podemos usar esa
distribución para resolver la tarea de imputación del valor faltante. Si falta un valor xi y se dan
todos los demás valores, denotados x−i , entonces sabemos que la distribución sobre él está dada
por p(xi | x−i). En la práctica, la estimación de la densidad no siempre nos permite resolver todas
estas tareas relacionadas, porque en muchos casos las operaciones requeridas en p(x) son
computacionalmente intratables.
Por supuesto, son posibles muchas otras tareas y tipos de tareas. Los tipos de tareas que
enumeramos aquí pretenden únicamente proporcionar ejemplos de lo que puede hacer el
aprendizaje automático, no definir una taxonomía rígida de tareas.
5.1.2 La medida de desempeño, P
Para evaluar las capacidades de un algoritmo de aprendizaje automático, debemos diseñar una
medida cuantitativa de su desempeño. Por lo general, esta medida de desempeño P es específica
de la tarea T que realiza el sistema.
Para tareas como clasificación, clasificación con entradas faltantes y transcripción, a menudo
medimos la precisión del modelo. La precisión es simplemente la proporción de ejemplos para los cuales
el modelo produce el resultado correcto. Podemos
103
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
También obtenga información equivalente midiendo la tasa de error, la proporción de
ejemplos para los cuales el modelo produce un resultado incorrecto. A menudo nos
referimos a la tasa de errores como la derrota esperada 0­1. La derrota 0­1 en un ejemplo
particular es 0 si está clasificado correctamente y 1 si no lo está. Para tareas como la
estimación de densidad, no tiene sentido medir la precisión, la tasa de error o cualquier
otro tipo de pérdida 0­1. En su lugar, debemos utilizar una métrica de rendimiento diferente
que le dé al modelo una puntuación de valor continuo para cada ejemplo. El enfoque más
común es informar la probabilidad logarítmica promedio que el modelo asigna a algunos ejemplos.
Por lo general, nos interesa saber qué tan bien se desempeña el algoritmo de aprendizaje
automático en datos que no ha visto antes, ya que esto determina qué tan bien funcionará cuando
se implemente en el mundo real. Por lo tanto, evaluamos estas medidas de rendimiento utilizando
un conjunto de datos de prueba que está separado de los datos utilizados para entrenar el sistema
de aprendizaje automático.
La elección de una medida de desempeño puede parecer sencilla y objetiva, pero a
menudo es difícil elegir una medida de desempeño que corresponda bien al comportamiento
deseado del sistema.
En algunos casos, esto se debe a que es difícil decidir qué se debe medir.
Por ejemplo, al realizar una tarea de transcripción, ¿deberíamos medir la precisión del sistema al
transcribir secuencias completas, o deberíamos utilizar una medida de rendimiento más detallada
que otorgue crédito parcial por corregir algunos elementos de la secuencia? Al realizar una tarea
de regresión, ¿deberíamos penalizar más al sistema si con frecuencia comete errores de tamaño
mediano o si rara vez comete errores muy grandes? Este tipo de opciones de diseño dependen de
la aplicación.
En otros casos, sabemos qué cantidad nos gustaría medir idealmente, pero medirla no es práctico.
Por ejemplo, esto surge frecuentemente en el contexto de la estimación de densidad. Muchos de los
mejores modelos probabilísticos representan distribuciones de probabilidad sólo implícitamente. Calcular
el valor de probabilidad real asignado a un punto específico en el espacio en muchos de estos modelos
es intratable. En estos casos, se debe diseñar un criterio alternativo que aún corresponda a los objetivos
de diseño, o diseñar una buena aproximación al criterio deseado.
5.1.3 La Experiencia, E
Los algoritmos de aprendizaje automático se pueden clasificar en términos generales como no
supervisados o supervisados según el tipo de experiencia que se les permite tener durante el
proceso de aprendizaje.
Se puede entender que la mayoría de los algoritmos de aprendizaje de este libro permiten
experimentar un conjunto de datos completo. Un conjunto de datos es una colección de muchos ejemplos, como
104
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
definido en el apartado 5.1.1. A veces también llamaremos ejemplos de puntos de datos.
Uno de los conjuntos de datos más antiguos estudiados por estadísticos e investigadores de
aprendizaje automático es el conjunto de datos Iris (Fisher, 1936). Es una colección de medidas de
diferentes partes de 150 plantas de iris. Cada planta individual corresponde a un ejemplo.
Las características dentro de cada ejemplo son las medidas de cada una de las partes del
planta: la longitud del sépalo, el ancho del sépalo, la longitud del pétalo y el ancho del pétalo. El conjunto de datos
También registra a qué especie pertenecía cada planta. Tres especies diferentes son
representado en el conjunto de datos.
Los algoritmos de aprendizaje no supervisados experimentan un conjunto de datos que contiene muchos
características, luego aprenda propiedades útiles de la estructura de este conjunto de datos. En el contexto
del aprendizaje profundo, generalmente queremos aprender la distribución de probabilidad completa que
generó un conjunto de datos, ya sea explícitamente como en la estimación de densidad o implícitamente para
Tareas como síntesis o eliminación de ruido. Algunos otros algoritmos de aprendizaje no supervisados
realizar otras funciones, como la agrupación, que consiste en dividir el conjunto de datos en
grupos de ejemplos similares.
Los algoritmos de aprendizaje supervisado experimentan un conjunto de datos que contiene
características, pero cada ejemplo también está asociado con una etiqueta u objetivo. Por ejemplo, el iris
El conjunto de datos está anotado con la especie de cada planta de iris. Un aprendizaje supervisado
El algoritmo puede estudiar el conjunto de datos de Iris y aprender a clasificar las plantas de iris en tres.
diferentes especies según sus medidas.
En términos generales, el aprendizaje no supervisado implica observar varios ejemplos.
de un vector aleatorio x, e intentar aprender implícita o explícitamente la distribución
de probabilidad p(x), o algunas propiedades interesantes de esa distribución, mientras
El aprendizaje supervisado implica observar varios ejemplos de un vector aleatorio x y.
un valor asociado o vector y, y aprender a predecir y a partir de x, generalmente mediante
estimando p(y | x). El término aprendizaje supervisado tiene su origen en la visión de
el objetivo y siendo proporcionado por un instructor o profesor que muestra la máquina
sistema de aprendizaje qué hacer. En el aprendizaje no supervisado, no hay instructor ni
profesor, y el algoritmo debe aprender a dar sentido a los datos sin esta guía.
El aprendizaje no supervisado y el aprendizaje supervisado no son términos definidos formalmente.
Las líneas entre ellos a menudo son borrosas. Muchas tecnologías de aprendizaje automático pueden
utilizarse para realizar ambas tareas. Por ejemplo, la regla de la cadena de estados de probabilidad
que para un vector x
Rn , la distribución conjunta se puede descomponer como
p(x) =
p(xi | x1, . . . , xi−1).
n
yo=1
Esta descomposición significa que podemos resolver el problema aparentemente no supervisado de
modelar p(x) dividiéndolo en n problemas de aprendizaje supervisados. Alternativamente, nosotros
105
(5.1)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Puede resolver el problema de aprendizaje supervisado del aprendizaje p (y | x) utilizando
tecnologías tradicionales de aprendizaje no supervisado para aprender la distribución conjunta
p (x, y) e inferir
p(x, y)
p(y | x) =
y
p(x, y
.
)
(5.2)
Aunque el aprendizaje no supervisado y el aprendizaje supervisado no son conceptos completamente
formales ni distintos, sí ayudan a categorizar aproximadamente algunas de las cosas que hacemos con
los algoritmos de aprendizaje automático. Tradicionalmente, la gente se refiere a los problemas de
regresión, clasificación y resultados estructurados como aprendizaje supervisado. La estimación de la
densidad como apoyo a otras tareas suele considerarse aprendizaje no supervisado.
Son posibles otras variantes del paradigma de aprendizaje. Por ejemplo, en el aprendizaje
semisupervisado, algunos ejemplos incluyen un objetivo de supervisión pero otros no. En el aprendizaje
de instancias múltiples, una colección completa de ejemplos se etiqueta según contenga o no un ejemplo
de una clase, pero los miembros individuales de la colección no están etiquetados. Para ver un ejemplo
reciente de aprendizaje multiinstancia con modelos profundos, consulte Kotzias et al. (2015).
Algunos algoritmos de aprendizaje automático no solo experimentan un conjunto de datos fijo. Por
ejemplo, los algoritmos de aprendizaje por refuerzo interactúan con un entorno, por lo que existe un
circuito de retroalimentación entre el sistema de aprendizaje y sus experiencias. Estos algoritmos están
más allá del alcance de este libro. Consulte Sutton y Barto (1998) o Bertsekas y Tsitsiklis (1996) para
obtener información sobre el aprendizaje por refuerzo, y Mnih et al. (2013) para el enfoque de aprendizaje
profundo para el aprendizaje por refuerzo.
La mayoría de los algoritmos de aprendizaje automático simplemente experimentan un conjunto de datos. Un
conjunto de datos se puede describir de muchas maneras. En todos los casos, un conjunto de datos es una colección
de ejemplos, que a su vez son colecciones de características.
Una forma común de describir un conjunto de datos es mediante una matriz de diseño. Una
matriz de diseño es una matriz que contiene un ejemplo diferente en cada fila. Cada columna de la
matriz corresponde a una característica diferente. Por ejemplo, el conjunto de datos de Iris contiene
150 ejemplos con cuatro características para cada ejemplo. Esto significa que podemos representar
el conjunto de datos con una matriz de diseño X
R150×4
, donde Xi,1 es la longitud del sépalo de
la planta i, Xi,2 es el ancho del sépalo de la planta i, etc. Describiremos la mayoría de los algoritmos
de aprendizaje en este libro en términos de cómo operan en conjuntos de datos matriciales de diseño.
Por supuesto, para describir un conjunto de datos como una matriz de diseño, debe ser posible
describir cada ejemplo como un vector, y cada uno de estos vectores debe tener el mismo tamaño.
Esto no siempre es posible. Por ejemplo, si tiene una colección de fotografías con diferentes anchos
y altos, entonces diferentes fotografías contendrán diferentes números de píxeles, por lo que es
posible que no todas las fotografías se describan con la misma longitud de vector. La sección 9.7 y
el capítulo 10 describen cómo manejar diferentes
106
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
tipos de datos tan heterogéneos. En casos como estos, en lugar de describir el conjunto de
datos como una matriz con m filas, lo describiremos como un conjunto que contiene m elementos:
(2) , Esta
. . . , notación no implica que dos vectores de ejemplo (i) y x (j) tengan el mismo
{x (1) x, X(m)}.
X tamaño.
En el caso del aprendizaje supervisado, el ejemplo contiene una etiqueta u objetivo, así como
una colección de características. Por ejemplo, si queremos utilizar un algoritmo de aprendizaje para
realizar el reconocimiento de objetos a partir de fotografías, debemos especificar qué objeto aparece
en cada una de las fotografías. Podríamos hacer esto con un código numérico, donde 0 significa una
persona, 1 significa un automóvil, 2 significa un gato, etc. A menudo, cuando trabajamos con un
conjunto de datos que contiene una matriz de diseño de observaciones de características X, también
proporcionamos un vector de etiquetas y , con yi proporcionando la etiqueta, por ejemplo i.
Por supuesto, a veces la etiqueta puede tener más de un solo número. Por ejemplo, si
queremos entrenar un sistema de reconocimiento de voz para que transcriba oraciones
completas, entonces la etiqueta para cada oración de ejemplo es una secuencia de palabras.
Así como no existe una definición formal de aprendizaje supervisado y no supervisado, tampoco
existe una taxonomía rígida de conjuntos de datos o experiencias. Las estructuras descritas aquí
cubren la mayoría de los casos, pero siempre es posible diseñar otras nuevas para nuevas aplicaciones.
5.1.4 Ejemplo: regresión lineal
Nuestra definición de algoritmo de aprendizaje automático como un algoritmo que es capaz de mejorar el
rendimiento de un programa de computadora en alguna tarea a través de la experiencia es algo abstracta.
Para hacer esto más concreto, presentamos un ejemplo de un algoritmo simple de aprendizaje automático:
regresión lineal. Volveremos a este ejemplo repetidamente a medida que introduzcamos más conceptos
de aprendizaje automático que ayuden a comprender su comportamiento.
Como su nombre lo indica, la regresión lineal resuelve un problema de regresión. En otras
palabras, el objetivo es construir un sistema que pueda tomar un vector x
Rn como entrada y
predecir el valor de un escalar y
R como salida. En el caso de la regresión lineal, la salida es
una función lineal de la entrada. Sea yˆ el valor que nuestro modelo predice que y debería tomar.
Definimos la salida como
yˆ = w
donde w
R
norte
x
(5.3)
es un vector de parámetros.
Los parámetros son valores que controlan el comportamiento del sistema. En este caso, wi es el coeficiente que multiplicamos
por la característica xi antes de sumar las contribuciones de todas las características. Podemos pensar en w como un conjunto de
pesos que determinan cómo cada característica afecta la predicción. Si una característica xi recibe un peso positivo wi,
107
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
luego, aumentar el valor de esa característica aumenta el valor de nuestra predicción yˆ.
Si una característica recibe un peso negativo, aumentar el valor de esa característica disminuye
el valor de nuestra predicción. Si el peso de una característica es grande en magnitud,
entonces tiene un gran efecto en la predicción. Si el peso de una característica es cero, no
tiene ningún efecto en la predicción.
Por tanto, tenemos una definición de nuestra tarea T : predecir y a partir de x generando
yˆ = w
x. A continuación necesitamos una definición de nuestra medida de desempeño, P.
Supongamos que tenemos una matriz de diseño de m entradas de ejemplo que no usaremos
para entrenamiento, solo para evaluar qué tan bien se desempeña el modelo. También tenemos un
vector de objetivos de regresión que proporciona el valor correcto de y para cada uno de estos
ejemplos. Debido a que este conjunto de datos solo se usará para evaluación, lo llamamos prueba X
Nos referimos a la matriz de diseño de entradas como
(prueba) y vector del conjunto de regresión.
objetivos (de prueba). como y
Una forma de medir el rendimiento del modelo es calcular el error cuadrático medio del modelo en el conjunto
de prueba. Si yˆ (prueba) da las predicciones del modelo en el conjunto de prueba, entonces el error cuadrático
medio viene dado por
1
Prueba MSE =
metro
i
(yˆ (prueba) − y (prueba)) 2i .
Intuitivamente, se puede ver que esta medida de error disminuye a 0 cuando yˆ (prueba)
(5.4)
(prueba) = y .
También podemos ver que
1
Prueba MSE =
||ˆy (prueba) − y (prueba) ||22 ,
metro
(5.5)
por lo que el error aumenta cada vez que aumenta la distancia euclidiana entre las predicciones
y los objetivos.
Para crear un algoritmo de aprendizaje automático, necesitamos diseñar un algoritmo que
mejore los pesos w de una manera que reduzca MSEtest cuando se le permite al algoritmo
ganar experiencia observando un conjunto de entrenamiento (X (tren) , y (tren)). Una forma
intuitiva de hacer esto (que justificaremos más adelante, en la sección 5.5.1) es simplemente
minimizar el error cuadrático medio en el conjunto de entrenamiento, MSEtrain.
Para minimizar MSEtrain, simplemente podemos resolver dónde su gradiente es 0:
wMSEtren = 0
1
w
||yˆ (tren) − y (tren) ||2 2
(5.6)
=0
(5.7)
2 =0
(5.8)
metro
1
w||X(tren)w − y (tren) ||2
metro
108
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
3
Ejemplo de regresión lineal
0,55
Optimización de w
0,50
2
0,45
y
1
0,40
(tren)
MSE
0
−1
0,35
0,30
−2
0,25
0,20
−3
0,5
−1,0 −0,5 0,0 0,5 1,0
1.0
x1
1.5
w1
Figura 5.1: Un problema de regresión lineal, con un conjunto de entrenamiento que consta de diez puntos
de datos, cada uno de los cuales contiene una característica. Debido a que solo hay una característica, el
vector de peso w contiene solo un parámetro para aprender, w1. (Izquierda) Observe que la regresión
lineal aprende a establecer w1 de manera que la línea y = w1x se acerque lo más posible a pasar por
todos los puntos de entrenamiento. (Derecha) El punto trazado indica el valor de w1 encontrado por las
ecuaciones normales , que podemos ver minimiza el error cuadrático medio en el conjunto de entrenamiento.
−y
− 2w
X (tren)
w
w
X(tren)
y (tren) + y (tren)
X(tren)w (tren)
y (tren)
X(tren)w − y (tren)
=0
w
(5.9)
X(tren)w
=0
2X(tren)
X(tren)w − 2X(tren)
(tren) = 0 y
w=
X(tren)
−1 X(tren)
X(tren)
(5.10)
(5.11)
(tren) y
(5.12)
El sistema de ecuaciones cuya solución viene dada por la ecuación 5.12 se conoce como
ecuaciones normales. La evaluación de la ecuación 5.12 constituye un algoritmo de aprendizaje
simple. Para ver un ejemplo del algoritmo de aprendizaje de regresión lineal en acción, consulte
la figura 5.1.
Vale la pena señalar que el término regresión lineal se utiliza a menudo para referirse a un modelo
un poco más sofisticado con un parámetro adicional: un término de intersección b. En este modelo
yˆ = w
x+b
(5.13)
por lo tanto, el mapeo de parámetros a predicciones sigue siendo una función lineal, pero el
mapeo de características a predicciones ahora es una función afín. Esta extensión a funciones
afines significa que la gráfica de las predicciones del modelo todavía parece una línea, pero
no necesita pasar por el origen. En lugar de agregar el parámetro de sesgo
109
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
b, se puede continuar usando el modelo solo con pesos, pero aumentar x con una entrada adicional que siempre
se establece en 1. El peso correspondiente a la entrada 1 adicional desempeña el papel de parámetro de sesgo.
Usaremos con frecuencia el término “lineal” cuando nos referimos a funciones afines a lo largo de este libro.
El término de intercepción b a menudo se denomina parámetro de sesgo de la transformación afín . Esta
terminología se deriva del punto de vista de que la salida de la transformación está sesgada hacia ser b en
ausencia de cualquier entrada. Este término es diferente de la idea de sesgo estadístico, en el que la estimación
esperada de una cantidad por parte de un algoritmo de estimación estadística no es igual a la cantidad real.
Por supuesto, la regresión lineal es un algoritmo de aprendizaje extremadamente simple y limitado, pero
proporciona un ejemplo de cómo puede funcionar un algoritmo de aprendizaje. En las secciones siguientes
describiremos algunos de los principios básicos que subyacen al diseño de algoritmos de aprendizaje y
demostraremos cómo se pueden utilizar estos principios para construir algoritmos de aprendizaje más complicados.
5.2 Capacidad, sobreadaptación y desadaptación
El desafío central en el aprendizaje automático es que debemos desempeñarnos bien con entradas
nuevas, nunca antes vistas , no solo con aquellas en las que se entrenó nuestro modelo. La
capacidad de desempeñarse bien con entradas no observadas previamente se llama generalización.
Normalmente, cuando entrenamos un modelo de aprendizaje automático, tenemos acceso a un conjunto de
entrenamiento, podemos calcular alguna medida de error en el conjunto de entrenamiento llamada error de
entrenamiento y reducimos este error de entrenamiento. Hasta ahora, lo que hemos descrito es simplemente un
problema de optimización. Lo que separa el aprendizaje automático de la optimización es que queremos que el
error de generalización, también llamado error de prueba, también sea bajo . El error de generalización se define
como el valor esperado del error en una nueva entrada. Aquí la expectativa se toma a través de diferentes entradas
posibles, extraídas de la distribución de entradas que esperamos que el sistema encuentre en la práctica.
Normalmente estimamos el error de generalización de un modelo de aprendizaje automático midiendo su
rendimiento en un conjunto de pruebas de ejemplos que se recopilaron por separado del conjunto de entrenamiento.
En nuestro ejemplo de regresión lineal, entrenamos el modelo minimizando el error de entrenamiento,
1
||X(tren)w − y (tren) ||2 m(tren) 2 ,
1
pero en realidad nos importa el error de prueba,
m(prueba)
(5.14)
||X(prueba)w − y (prueba) ||22 .
¿Cómo podemos afectar el rendimiento en el conjunto de prueba cuando solo podemos observar el
110
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
¿conjunto de entrenamiento? El campo de la teoría del aprendizaje estadístico proporciona algunas
respuestas. Si el conjunto de entrenamiento y de prueba se recopila arbitrariamente, es poco lo que
podemos hacer. Si se nos permite hacer algunas suposiciones sobre cómo se recopilan el conjunto de
entrenamiento y prueba, entonces podemos lograr algunos avances.
Los datos del tren y de la prueba se generan mediante una distribución de probabilidad sobre conjuntos
de datos denominada proceso de generación de datos. Normalmente hacemos un conjunto de suposiciones
conocidas colectivamente como suposiciones iid. Estos supuestos son que los ejemplos de cada conjunto de
datos son independientes entre sí y que el conjunto de tren y el conjunto de prueba están distribuidos de
manera idéntica, extraídos de la misma distribución de probabilidad entre sí. Este supuesto nos permite
describir el proceso de generación de datos con una distribución de probabilidad sobre un solo ejemplo.
Luego se utiliza la misma distribución para generar cada ejemplo de tren y cada ejemplo de prueba.
A esa distribución subyacente compartida la llamamos distribución generadora de datos, denominada
pdata. Este marco probabilístico y los supuestos iid nos permiten estudiar matemáticamente la relación
entre el error de entrenamiento y el error de prueba.
Una conexión inmediata que podemos observar entre el error de entrenamiento y de prueba es
que el error de entrenamiento esperado de un modelo seleccionado al azar es igual al error de prueba
esperado de ese modelo. Supongamos que tenemos una distribución de probabilidad p (x, y) y
tomamos muestras de ella repetidamente para generar el conjunto de tren y el conjunto de prueba.
Para algún valor fijo w, el error esperado del conjunto de entrenamiento es exactamente el mismo que
el error esperado del conjunto de prueba, porque ambas expectativas se forman utilizando el mismo
proceso de muestreo del conjunto de datos. La única diferencia entre las dos condiciones es el nombre
que asignamos al conjunto de datos que tomamos de muestra.
Por supuesto, cuando utilizamos un algoritmo de aprendizaje automático, no fijamos los parámetros con
anticipación y luego tomamos muestras de ambos conjuntos de datos. Tomamos muestras del conjunto de
entrenamiento, luego lo usamos para elegir los parámetros para reducir el error del conjunto de entrenamiento
y luego tomamos muestras del conjunto de prueba. Bajo este proceso, el error de prueba esperado es mayor
o igual que el valor esperado del error de entrenamiento. Los factores que determinan qué tan bien funcionará
un algoritmo de aprendizaje automático son su capacidad para:
1. Haga que el error de entrenamiento sea pequeño.
2. Reduzca la brecha entre el error de entrenamiento y de prueba.
Estos dos factores corresponden a los dos desafíos centrales del aprendizaje automático: el
desajuste y el sobreajuste. El desajuste ocurre cuando el modelo no es capaz de obtener un valor de
error suficientemente bajo en el conjunto de entrenamiento. El sobreajuste ocurre cuando la brecha
entre el error de entrenamiento y el error de prueba es demasiado grande.
Podemos controlar si es más probable que un modelo se sobreadapte o no se ajuste alterando su
capacidad. Informalmente, la capacidad de un modelo es su habilidad para adaptarse a una amplia variedad de
111
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
funciones. Los modelos con baja capacidad pueden tener dificultades para adaptarse al conjunto de entrenamiento.
Los modelos con alta capacidad pueden sobreajustarse al memorizar propiedades del conjunto de entrenamiento
que no les sirven bien en el conjunto de prueba.
Una forma de controlar la capacidad de un algoritmo de aprendizaje es eligiendo su
espacio de hipótesis, el conjunto de funciones que el algoritmo de aprendizaje puede
seleccionar como solución. Por ejemplo, el algoritmo de regresión lineal tiene el conjunto de
todas las funciones lineales de su entrada como espacio de hipótesis. Podemos generalizar
la regresión lineal para incluir polinomios, en lugar de solo funciones lineales, en su espacio
de hipótesis. Hacerlo aumenta la capacidad del modelo.
Un polinomio de grado uno nos da el modelo de regresión lineal con el que
Ya estamos familiarizados con la predicción.
yˆ = b + wx.
(5.15)
2
Como otra característica proporcionada al modelo de regresión lineal, tenemos
Introduciendo x
podemos aprender un modelo que es cuadrático en función de x:
2
yˆ = b + w1x + w2x
.
(5.16)
Aunque este modelo implementa una función cuadrática de su entrada, la salida sigue siendo
una función lineal de los parámetros, por lo que aún podemos usar las ecuaciones normales
para entrenar el modelo en forma cerrada. Podemos continuar agregando más potencias de x
como características adicionales, por ejemplo para obtener un polinomio de grado 9:
9
wix
yˆ = b +
i.
(5.17)
yo=1
Los algoritmos de aprendizaje automático generalmente funcionarán mejor cuando su
capacidad sea apropiada para la verdadera complejidad de la tarea que necesitan realizar y la
cantidad de datos de entrenamiento que se les proporciona. Los modelos con capacidad
insuficiente no pueden resolver tareas complejas. Los modelos con alta capacidad pueden
resolver tareas complejas, pero cuando su capacidad es mayor que la necesaria para resolver la
tarea actual, pueden sobreadaptarse.
La figura 5.2 muestra este principio en acción. Comparamos un predictor lineal, cuadrático
y de grado 9 intentando ajustar un problema donde la verdadera función subyacente es
cuadrática. La función lineal no puede capturar la curvatura en el verdadero problema
subyacente, por lo que no se adapta adecuadamente. El predictor de grado 9 es capaz de
representar la función correcta, pero también es capaz de representar infinitas otras funciones
que pasan exactamente por los puntos de entrenamiento, porque
112
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
tienen más parámetros que ejemplos de entrenamiento. Tenemos pocas posibilidades de elegir
una solución que se generalice bien cuando existen tantas soluciones tremendamente
diferentes. En este ejemplo, el modelo cuadrático se adapta perfectamente a la estructura real
de la tarea, por lo que se generaliza bien a datos nuevos.
Figura 5.2: Ajustamos tres modelos a este conjunto de entrenamiento de ejemplo. Los datos de
entrenamiento se generaron sintéticamente, muestreando aleatoriamente los valores de x y eligiendo
y de manera determinista mediante la evaluación de una función cuadrática. (Izquierda) Una función
lineal que se ajusta a los datos sufre un ajuste insuficiente: no puede capturar la curvatura presente
en los datos. (Centro) Una función cuadrática que se ajusta a los datos se generaliza bien a puntos
invisibles. No sufre una cantidad significativa de sobreajuste o desajuste. (Derecha) Un polinomio
de grado 9 que se ajusta a los datos sufre de sobreajuste. Aquí utilizamos la pseudoinversa de
Moore­Penrose para resolver las ecuaciones normales indeterminadas. La solución pasa exactamente
por todos los puntos de entrenamiento, pero no hemos tenido la suerte de que extraiga la estructura correcta.
Ahora tiene un valle profundo entre dos puntos de entrenamiento que no aparece en la verdadera función
subyacente. También aumenta bruscamente en el lado izquierdo de los datos, mientras que la función verdadera
disminuye en esta área.
Hasta ahora hemos descrito sólo una forma de cambiar la capacidad de un modelo:
cambiando la cantidad de características de entrada que tiene y agregando simultáneamente
nuevos parámetros asociados con esas características. De hecho, existen muchas formas
de cambiar la capacidad de un modelo. La capacidad no está determinada únicamente por
la elección del modelo. El modelo especifica entre qué familia de funciones puede elegir el
algoritmo de aprendizaje al variar los parámetros para reducir un objetivo de entrenamiento.
A esto se le llama capacidad de representación del modelo. En muchos casos, encontrar la
mejor función dentro de esta familia es un problema de optimización muy difícil. En la
práctica, el algoritmo de aprendizaje no encuentra realmente la mejor función, sino
simplemente aquella que reduce significativamente el error de entrenamiento. Estas limitaciones adicionale
113
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
La imperfección del algoritmo de optimización significa que la capacidad efectiva del algoritmo de
aprendizaje puede ser menor que la capacidad de representación de la familia de modelos.
Nuestras ideas modernas sobre cómo mejorar la generalización de los modelos de aprendizaje
automático son refinamientos de pensamiento que se remontan al menos a filósofos tan antiguos
como Ptolomeo. Muchos de los primeros eruditos invocan un principio de parsimonia que ahora se
conoce más ampliamente como la navaja de Occam (c. 1287­1347). Este principio establece que entre
hipótesis en competencia que explican igualmente bien las observaciones conocidas, se debe elegir
la “más simple”. Esta idea fue formalizada y precisada en el siglo XX por los fundadores de la teoría
del aprendizaje estadístico (Vapnik y Chervonenkis, 1971; Vapnik, 1982; Blumer et al., 1989; Vapnik,
1995).
La teoría del aprendizaje estadístico proporciona varios medios para cuantificar la capacidad del modelo.
Entre ellas, la más conocida es la dimensión de Vapnik­Chervonenkis o dimensión VC. La dimensión
VC mide la capacidad de un clasificador binario. La dimensión VC se define como el valor más grande
posible de m para el cual existe un conjunto de entrenamiento de m puntos x diferentes que el
clasificador puede etiquetar arbitrariamente.
Cuantificar la capacidad del modelo permite que la teoría del aprendizaje estadístico haga
predicciones cuantitativas. Los resultados más importantes en la teoría del aprendizaje
estadístico muestran que la discrepancia entre el error de entrenamiento y el error de
generalización está limitada desde arriba por una cantidad que crece a medida que crece la
capacidad del modelo pero que se reduce a medida que aumenta el número de ejemplos de
entrenamiento (Vapnik y Chervonenkis, 1971; Vapnik, 1982; Blumer y otros, 1989 ; Estos
límites proporcionan una justificación intelectual de que los algoritmos de aprendizaje automático
pueden funcionar, pero rara vez se utilizan en la práctica cuando se trabaja con algoritmos de
aprendizaje profundo. Esto se debe en parte a que los límites suelen ser bastante flexibles y
en parte a que puede resultar bastante difícil determinar la capacidad de los algoritmos de
aprendizaje profundo. El problema de determinar la capacidad de un modelo de aprendizaje
profundo es especialmente difícil porque la capacidad efectiva está limitada por las capacidades
del algoritmo de optimización y tenemos poca comprensión teórica de los problemas de
optimización no convexos muy generales involucrados en el aprendizaje profundo.
Debemos recordar que si bien es más probable que las funciones más simples se generalicen
(tengan una pequeña brecha entre el error de entrenamiento y de prueba), aún debemos elegir una
hipótesis suficientemente compleja para lograr un error de entrenamiento bajo. Normalmente, el error
de entrenamiento disminuye hasta que llega a la asíntota del valor de error mínimo posible a medida
que aumenta la capacidad del modelo (suponiendo que la medida de error tenga un valor mínimo).
Normalmente, el error de generalización tiene una curva en forma de U en función de la capacidad del
modelo. Esto se ilustra en la figura 5.3.
Para llegar al caso más extremo de capacidad arbitrariamente alta, introducimos
114
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
error de entrenamiento
Zona de subajuste Zona de sobreajuste
Error
Error de generalización
Brecha de generalización
0
Capacidad óptima
Capacidad
Figura 5.3: Relación típica entre capacidad y error. El error de entrenamiento y de prueba se comporta de
manera diferente. En el extremo izquierdo del gráfico, el error de entrenamiento y el error de generalización
son altos. Éste es el régimen de desadaptación. A medida que aumentamos la capacidad, el error de
entrenamiento disminuye, pero aumenta la brecha entre el error de entrenamiento y el error de generalización.
Al final, el tamaño de esta brecha supera la disminución del error de entrenamiento y entramos en el régimen
de sobreajuste, donde la capacidad es demasiado grande, por encima de la capacidad óptima.
el concepto de modelos no paramétricos . Hasta ahora, sólo hemos visto modelos
paramétricos, como la regresión lineal. Los modelos paramétricos aprenden una función
descrita por un vector de parámetros cuyo tamaño es finito y fijo antes de que se observe cualquier dato.
Los modelos no paramétricos no tienen tal limitación.
A veces, los modelos no paramétricos son sólo abstracciones teóricas (como un algoritmo que busca en todas
las distribuciones de probabilidad posibles) que no se pueden implementar en la práctica. Sin embargo, también
podemos diseñar modelos prácticos no paramétricos haciendo que su complejidad sea función del tamaño del
conjunto de entrenamiento. Un ejemplo de tal algoritmo es la regresión del vecino más cercano. A diferencia de la
regresión lineal, que tiene un vector de pesos de longitud fija, el modelo de regresión del vecino más cercano
simplemente almacena X e y del conjunto de entrenamiento. Cuando se le pide que clasifique un punto de prueba x,
el modelo busca la entrada más cercana en el conjunto de entrenamiento y devuelve el objetivo de regresión
asociado. En otras palabras, yˆ = yi donde i = arg min ||Xi,: − x||2 El algoritmo también se puede generalizar a métricas
de distancia distintas a la norma L , como las métricas de distancia aprendidas (Goldberger et al., 2005) . Si se
2
2.
permite que el algoritmo rompa los empates promediando los valores yi para todos los Xi que están empatados en el
más cercano, entonces este algoritmo es capaz de lograr el mínimo error de entrenamiento posible (que podría ser
mayor que cero, si se asocian dos entradas idénticas). con diferentes resultados) en cualquier conjunto de datos de
regresión.
Finalmente, también podemos crear un algoritmo de aprendizaje no paramétrico envolviendo un
115
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Algoritmo de aprendizaje paramétrico dentro de otro algoritmo que aumenta el número de
parámetros según sea necesario. Por ejemplo, podríamos imaginar un bucle externo de
aprendizaje que cambie el grado del polinomio aprendido mediante regresión lineal además
de una expansión polinómica de la entrada.
El modelo ideal es un oráculo que simplemente conoce la verdadera distribución de
probabilidad que genera los datos. Incluso un modelo así seguirá incurriendo en algunos
errores en muchos problemas, porque todavía puede haber algo de ruido en la distribución.
En el caso del aprendizaje supervisado, el mapeo de xay puede ser inherentemente
estocástico, o y puede ser una función determinista que involucra otras variables además de
las incluidas en x. El error en el que incurre un oráculo al hacer predicciones a partir de la
distribución verdadera p(x, y) se denomina error de Bayes.
El error de entrenamiento y generalización varía a medida que varía el tamaño del conjunto de entrenamiento.
El error de generalización esperado nunca puede aumentar a medida que aumenta el número de ejemplos
de entrenamiento. Para los modelos no paramétricos, más datos producen una mejor generalización hasta
que se logra el mejor error posible. Cualquier modelo paramétrico fijo con una capacidad inferior a la
óptima tendrá una asíntota con un valor de error que supere el error de Bayes. Consulte la figura 5.4 para
ver una ilustración. Tenga en cuenta que es posible que el modelo tenga una capacidad óptima y aún así
tenga una gran brecha entre el error de entrenamiento y de generalización.
En esta situación, es posible que podamos reducir esta brecha reuniendo más ejemplos de
capacitación.
5.2.1 El teorema del almuerzo gratis
La teoría del aprendizaje afirma que un algoritmo de aprendizaje automático puede generalizarse bien a
partir de un conjunto finito de ejemplos de entrenamiento. Esto parece contradecir algunos principios
básicos de la lógica. El razonamiento inductivo o la inferencia de reglas generales a partir de un conjunto
limitado de ejemplos no es lógicamente válido. Para inferir lógicamente una regla que describa a cada
miembro de un conjunto, se debe tener información sobre cada miembro de ese conjunto.
En parte, el aprendizaje automático evita este problema al ofrecer sólo reglas probabilísticas, en
lugar de reglas completamente seguras utilizadas en el razonamiento puramente lógico. El aprendizaje
automático promete encontrar reglas que probablemente sean correctas sobre la mayoría de los miembros
del conjunto al que les interesa.
Desafortunadamente, ni siquiera esto resuelve todo el problema. El teorema del
almuerzo gratis para el aprendizaje automático (Wolpert, 1996) establece que,
promediando todas las posibles distribuciones generadoras de datos, cada algoritmo de
clasificación tiene la misma tasa de error al clasificar puntos no observados previamente.
En otras palabras, en cierto sentido, ningún algoritmo de aprendizaje automático es
universalmente mejor que otro. El algoritmo más sofisticado que podamos concebir tiene el mismo prom
116
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Figura 5.4: El efecto del tamaño del conjunto de datos de entrenamiento en el error de entrenamiento y prueba,
así como en la capacidad óptima del modelo. Construimos un problema de regresión sintética basado en
agregar una cantidad moderada de ruido a un polinomio de grado 5, generamos un único conjunto de prueba y
luego generamos varios tamaños diferentes de conjuntos de entrenamiento. Para cada tamaño, generamos 40
conjuntos de entrenamiento diferentes para trazar barras de error que muestren intervalos de confianza del 95 por ciento.
(Arriba) El MSE en el conjunto de entrenamiento y prueba para dos modelos diferentes: un modelo cuadrático y
un modelo con grado elegido para minimizar el error de prueba. Ambos encajan en forma cerrada. Para el
modelo cuadrático, el error de entrenamiento aumenta a medida que aumenta el tamaño del conjunto de entrenamiento.
Esto se debe a que es más difícil ajustar conjuntos de datos más grandes. Al mismo tiempo, el error de la prueba
disminuye, porque menos hipótesis incorrectas son consistentes con los datos de entrenamiento. El modelo
cuadrático no tiene suficiente capacidad para resolver la tarea, por lo que su error de prueba tiene asíntotas a
un valor alto. El error de prueba a capacidad óptima es asíntota al error de Bayes. El error de entrenamiento
puede caer por debajo del error de Bayes, debido a la capacidad del algoritmo de entrenamiento para memorizar
instancias específicas del conjunto de entrenamiento. A medida que el tamaño del entrenamiento aumenta hasta
el infinito, el error de entrenamiento de cualquier modelo de capacidad fija (en este caso, el modelo cuadrático)
debe aumentar al menos al error de Bayes . (Abajo) A medida que aumenta el tamaño del conjunto de
entrenamiento, aumenta la capacidad óptima (que se muestra aquí como el grado del regresor polinómico
óptimo). La capacidad óptima se estabiliza después de alcanzar la complejidad suficiente para resolver la tarea.
117
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
desempeño (sobre todas las tareas posibles) como simplemente predecir que cada punto pertenece a la
misma clase.
Afortunadamente, estos resultados sólo se mantienen cuando promediamos todas las posibles
distribuciones generadoras de datos. Si hacemos suposiciones sobre los tipos de distribuciones de
probabilidad que encontramos en aplicaciones del mundo real, entonces podemos diseñar
algoritmos de aprendizaje que funcionen bien en estas distribuciones.
Esto significa que el objetivo de la investigación sobre el aprendizaje automático no es buscar un
algoritmo de aprendizaje universal o el mejor algoritmo de aprendizaje. En cambio, nuestro objetivo es
comprender qué tipos de distribuciones son relevantes para el “mundo real” que experimenta un agente
de IA, y qué tipos de algoritmos de aprendizaje automático funcionan bien con datos extraídos de los
tipos de distribuciones que generan datos que nos interesan.
5.2.2 Regularización
El teorema del almuerzo gratis implica que debemos diseñar nuestros algoritmos de aprendizaje
automático para que funcionen bien en una tarea específica. Lo hacemos incorporando un
conjunto de preferencias en el algoritmo de aprendizaje. Cuando estas preferencias están
alineadas con los problemas de aprendizaje que le pedimos al algoritmo que resuelva, funciona mejor.
Hasta ahora, el único método para modificar un algoritmo de aprendizaje que hemos discutido
concretamente es aumentar o disminuir la capacidad de representación del modelo agregando o
eliminando funciones del espacio de hipótesis de soluciones que el algoritmo de aprendizaje puede elegir.
Dimos el ejemplo específico de aumentar o disminuir el grado de un polinomio para un problema de
regresión. La visión que hemos descrito hasta ahora está demasiado simplificada.
El comportamiento de nuestro algoritmo se ve fuertemente afectado no sólo por el tamaño del
conjunto de funciones permitidas en su espacio de hipótesis, sino también por la identidad específica
de esas funciones. El algoritmo de aprendizaje que hemos estudiado hasta ahora, la regresión lineal,
tiene un espacio de hipótesis que consta del conjunto de funciones lineales de su entrada. Estas
funciones lineales pueden ser muy útiles para problemas en los que la relación entre entradas y salidas
es realmente cercana a lineal. Son menos útiles para problemas que se comportan de forma muy no
lineal. Por ejemplo, la regresión lineal no funcionaría muy bien si intentáramos usarla para predecir
sin(x) a partir de x. Por lo tanto, podemos controlar el rendimiento de nuestros algoritmos eligiendo de
qué tipo de funciones les permitimos obtener soluciones, así como controlando la cantidad de estas
funciones.
También podemos darle a un algoritmo de aprendizaje una preferencia por una solución en su
espacio de hipótesis sobre otra. Esto significa que ambas funciones son elegibles, pero se prefiere
una. La solución no preferida se elegirá sólo si se ajusta a la formación.
118
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
datos significativamente mejores que la solución preferida.
Por ejemplo, podemos modificar el criterio de entrenamiento para la regresión lineal para incluir
la disminución del peso. Para realizar una regresión lineal con caída de peso, minimizamos una suma
que comprende tanto el error cuadrático medio en el entrenamiento como un criterio J (w) que expresa
2
una preferencia por que los pesos tengan una norma L cuadrática más pequeña
. Específicamente,
J(w) = MSEtren + λw
w,
(5.18)
donde λ es un valor elegido de antemano que controla la fuerza de nuestra preferencia por pesos más
pequeños. Cuando λ = 0, no imponemos ninguna preferencia, y un λ mayor obliga a que los pesos se
vuelvan más pequeños. Minimizar J(w) da como resultado una elección de pesos que hacen un
compromiso entre ajustarse a los datos de entrenamiento y ser pequeños. Esto nos brinda soluciones
que tienen una pendiente menor o ponen peso en menos elementos. Como ejemplo de cómo
podemos controlar la tendencia de un modelo a sobreajustarse o no ajustarse mediante la disminución
del peso, podemos entrenar un modelo de regresión polinómica de alto grado con diferentes valores
de λ. Consulte la figura 5.5 para ver los resultados.
Figura 5.5: Ajustamos un modelo de regresión polinómica de alto grado a nuestro conjunto de entrenamiento
de ejemplo de la figura 5.2. La verdadera función es cuadrática, pero aquí usamos sólo modelos con grado 9.
Variamos la cantidad de caída de peso para evitar que estos modelos de alto grado se sobreadapten.
(Izquierda) Con λ muy grande , podemos forzar al modelo a aprender una función sin pendiente
alguna. Esto no es adecuado porque solo puede representar una función constante. (Centro)Con
un valor medio de λ, el algoritmo de aprendizaje recupera una curva con la forma general correcta.
Aunque el modelo es capaz de representar funciones con formas mucho más complicadas, la
disminución del peso lo ha animado a utilizar una función más simple descrita por coeficientes más
pequeños. (Derecha) Con la caída del peso acercándose a cero (es decir, utilizando el pseudoinverso
de Moore­Penrose para resolver el problema indeterminado con una regularización mínima), el
polinomio de grado 9 se sobreajusta significativamente, como vimos en la figura 5.2.
119
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
De manera más general, podemos regularizar un modelo que aprende una función f(x; θ)
agregando una penalización llamada regularizador a la función de costo. En el caso de caída de
peso, el regularizador es Ω(w) = w
w. En el capítulo 7 veremos que son posibles muchos otros
regularizadores.
Expresar preferencias por una función sobre otra es una forma más general de controlar la
capacidad de un modelo que incluir o excluir miembros del espacio de hipótesis. Podemos pensar que
excluir una función de un espacio de hipótesis expresa una preferencia infinitamente fuerte contra esa
función.
En nuestro ejemplo de disminución de peso, expresamos nuestra preferencia por funciones lineales
definidas explícitamente con pesos más pequeños, mediante un término adicional en el criterio que
minimizamos. Hay muchas otras formas de expresar preferencias por diferentes soluciones, tanto
implícita como explícitamente. En conjunto, estos diferentes enfoques se conocen como regularización.
La regularización es cualquier modificación que hacemos a un algoritmo de aprendizaje con el objetivo
de reducir su error de generalización pero no su error de entrenamiento. La regularización es una de las
preocupaciones centrales del campo del aprendizaje automático, y sólo rivaliza en importancia con la
optimización.
El teorema del almuerzo gratis ha dejado claro que no existe un mejor algoritmo de aprendizaje
automático y, en particular, una mejor forma de regularización. En lugar de ello, debemos elegir una
forma de regularización que se adapte bien a la tarea particular que queremos resolver. La filosofía del
aprendizaje profundo en general y de este libro en particular es que una gama muy amplia de tareas
(como todas las tareas intelectuales que las personas pueden realizar) pueden resolverse eficazmente
utilizando formas de regularización de propósito muy general.
5.3 Hiperparámetros y conjuntos de validación
La mayoría de los algoritmos de aprendizaje automático tienen varias configuraciones que podemos
usar para controlar el comportamiento del algoritmo de aprendizaje. Estas configuraciones se
denominan hiperparámetros. Los valores de los hiperparámetros no son adaptados por el algoritmo
de aprendizaje en sí (aunque podemos diseñar un procedimiento de aprendizaje anidado donde un
algoritmo de aprendizaje aprende los mejores hiperparámetros para otro algoritmo de aprendizaje).
En el ejemplo de regresión polinomial que vimos en la figura 5.2, hay un único hiperparámetro: el
grado del polinomio, que actúa como un hiperparámetro de capacidad . El valor de λ utilizado para
controlar la intensidad de la caída del peso es otro ejemplo de hiperparámetro.
A veces se elige una configuración como un hiperparámetro que el algoritmo de aprendizaje no
aprende porque es difícil de optimizar. Más frecuentemente, el
120
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
La configuración debe ser un hiperparámetro porque no es apropiado aprender ese hiperparámetro
en el conjunto de entrenamiento. Esto se aplica a todos los hiperparámetros que controlan la
capacidad del modelo. Si se aprenden en el conjunto de entrenamiento, dichos hiperparámetros
siempre elegirían la capacidad máxima posible del modelo, lo que resultaría en un sobreajuste
(consulte la figura 5.3). Por ejemplo, siempre podemos ajustar mejor el conjunto de entrenamiento
con un polinomio de mayor grado y una configuración de disminución de peso de λ = 0 que con un
polinomio de menor grado y una configuración de disminución de peso positiva.
Para resolver este problema, necesitamos un conjunto de ejemplos de validación que el entrenamiento
El algoritmo no observa.
Anteriormente analizamos cómo se puede utilizar un conjunto de pruebas retenido, compuesto por
ejemplos provenientes de la misma distribución que el conjunto de entrenamiento, para estimar el error de
generalización de un alumno, una vez completado el proceso de aprendizaje. Es importante que los
ejemplos de prueba no se utilicen de ninguna manera para tomar decisiones sobre el modelo, incluidos sus
hiperparámetros. Por este motivo, no se puede utilizar ningún ejemplo del conjunto de prueba en el conjunto
de validación. Por lo tanto, siempre construimos el conjunto de validación a partir de los datos de
entrenamiento . Específicamente, dividimos los datos de entrenamiento en dos subconjuntos separados.
Uno de estos subconjuntos se utiliza para aprender los parámetros. El otro subconjunto es nuestro conjunto
de validación, que se utiliza para estimar el error de generalización durante o después del entrenamiento,
lo que permite que los hiperparámetros se actualicen en consecuencia. El subconjunto de datos utilizado
para aprender los parámetros todavía se suele denominar conjunto de entrenamiento, aunque esto puede
confundirse con el conjunto más grande de datos utilizado para todo el proceso de entrenamiento.
El subconjunto de datos utilizado para guiar la selección de hiperparámetros se denomina conjunto de
validación. Normalmente, se utiliza alrededor del 80% de los datos de entrenamiento para el entrenamiento
y el 20% para la validación. Dado que el conjunto de validación se utiliza para "entrenar" los hiperparámetros,
el error del conjunto de validación subestimará el error de generalización, aunque normalmente en una
cantidad menor que el error de entrenamiento. Una vez completada toda la optimización de los
hiperparámetros , el error de generalización se puede estimar utilizando el conjunto de prueba.
En la práctica, cuando el mismo conjunto de pruebas se ha utilizado repetidamente para evaluar el
rendimiento de diferentes algoritmos durante muchos años, y especialmente si consideramos todos los
intentos de la comunidad científica de superar el rendimiento de última generación informado en ese
conjunto de pruebas. , terminamos teniendo valoraciones optimistas también con el conjunto de pruebas.
Por lo tanto, los puntos de referencia pueden volverse obsoletos y luego no reflejar el verdadero
desempeño en el campo de un sistema capacitado. Afortunadamente, la comunidad tiende a pasar a
conjuntos de datos de referencia nuevos (y generalmente más ambiciosos y grandes).
121
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
5.3.1 Validación cruzada
Dividir el conjunto de datos en un conjunto de entrenamiento fijo y un conjunto de prueba fijo puede
resultar problemático si el resultado es que el conjunto de prueba es pequeño. Un conjunto de pruebas
pequeño implica incertidumbre estadística en torno al error de prueba promedio estimado, lo que dificulta
afirmar que el algoritmo A funciona mejor que el algoritmo B en la tarea dada.
Cuando el conjunto de datos tiene cientos de miles de ejemplos o más, esto no es un problema grave.
Cuando el conjunto de datos es demasiado pequeño, existen procedimientos alternativos que permiten
utilizar todos los ejemplos en la estimación del error medio de prueba, al precio de un mayor costo
computacional. Estos procedimientos se basan en la idea de repetir el cálculo de entrenamiento y prueba
en diferentes subconjuntos o divisiones del conjunto de datos original elegidos aleatoriamente. El más
común de ellos es el procedimiento de validación cruzada k veces , que se muestra en el algoritmo 5.1,
en el que se forma una partición del conjunto de datos dividiéndolo en k subconjuntos no superpuestos.
Luego, el error de prueba se puede estimar tomando el error de prueba promedio en k ensayos. En la
prueba i, el i­ésimo subconjunto de datos se utiliza como conjunto de prueba y el resto de los datos se
utiliza como conjunto de entrenamiento. Un problema es que no existen estimadores insesgados de la
varianza de dichos estimadores de error promedio (Bengio y Grandvalet, 2004), pero normalmente se
utilizan aproximaciones .
5.4 Estimadores, sesgo y varianza
El campo de la estadística nos brinda muchas herramientas que se pueden utilizar para lograr el objetivo del
aprendizaje automático de resolver una tarea no solo en el conjunto de entrenamiento sino también para generalizar.
Conceptos fundamentales como la estimación de parámetros, el sesgo y la varianza son útiles
para caracterizar formalmente las nociones de generalización, desajuste y sobreajuste.
5.4.1 Estimación puntual
La estimación puntual es el intento de proporcionar la “mejor” predicción de alguna cantidad de
interés. En general, la cantidad de interés puede ser un único parámetro o un vector de
parámetros en algún modelo paramétrico, como los pesos en nuestro ejemplo de regresión
lineal en la sección 5.1.4, pero también puede ser una función completa.
Para distinguir las estimaciones de los parámetros de su valor real, nuestro
La convención será denotar una estimación puntual de un parámetro θ por θˆ. x
Sea {x (1) , . . . , (m)} sea un conjunto de m independientes e idénticamente distribuidos
122
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Algoritmo 5.1 El algoritmo de validación cruzada k veces. Se puede utilizar para estimar el error de
generalización de un algoritmo de aprendizaje A cuando el conjunto de datos dado D es demasiado pequeño
para que un simple tren/prueba o tren/división válida produzca una estimación precisa del error de
generalización, porque la media de una pérdida L en un algoritmo de aprendizaje pequeño El conjunto de
también puede tener (i) (para una varianza alta. El conjunto de datos D contiene como elementos
prueba
los ejemplos
abstractos z (i) = (x (i) , y (i)) el i­ésimo ejemplo), que podría representar un (entrada,
=
x
objetivo)
par
z (i) (i) en el
caso de aprendizaje supervisado, o solo para una entrada z de aprendizaje no
supervisado. El algoritmo devuelve el vector de errores e para cada ejemplo en D, cuya media es el error de
generalización estimado. Los errores de ejemplos individuales se pueden utilizar para calcular un intervalo
de confianza alrededor de la media (ecuación 5.47). Si bien estos intervalos de confianza no están bien
justificados después del uso de la validación cruzada, sigue siendo una práctica común usarlos para declarar
que el algoritmo A es mejor que el algoritmo B sólo si el intervalo de confianza del error del algoritmo A se
encuentra por debajo y no no cruza el intervalo de confianza del algoritmo B.
Defina KFoldXV(D, A,L, k): (i)
Requerir: D, el conjunto de datos dado, con elementos z
Requerir: A, el algoritmo de aprendizaje, visto como una función que toma un conjunto de datos como
entrada y genera una función aprendida.
Requerir: L, la función de pérdida, vista como una función de una función aprendida f y
(i)
un ejemplo z
D a un escalar
R Requerir:
k, el número de pliegues Dividir D en k
subconjuntos Di mutuamente excluyentes, cuya unión es D. para i de 1 a k hacer fi
= A(D\Di) (j) en Di do ej =
L(fi, z (j))
para z
fin por fin
por
Volver e
123
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
(iid) puntos de datos. Un estimador puntual o estadístico es cualquier función de los datos:
θˆm = g(x (1) , . . . , X (m) ).
(5.19)
La definición no requiere que g devuelva un valor cercano al verdadero θ o incluso
que el rango de g sea el mismo que el conjunto de valores permitidos de θ.
Esta definición de estimador puntual es muy general y permite al diseñador de un estimador una
gran flexibilidad. Si bien casi cualquier función califica como estimador, un buen estimador es una
función cuya salida está cerca del verdadero θ subyacente que generó los datos de entrenamiento.
Por ahora, adoptamos la perspectiva frecuentista de las estadísticas. Es decir, suponemos
que el verdadero valor del parámetro θ es fijo pero desconocido, mientras que la estimación
puntual θˆ es una función de los datos. Dado que los datos se extraen de un proceso aleatorio,
cualquier función de los datos es aleatoria. Por lo tanto θˆ es una variable aleatoria.
La estimación puntual también puede referirse a la estimación de la relación entre las variables de
entrada y objetivo. Nos referimos a estos tipos de estimaciones puntuales como estimadores de funciones.
Estimación de funciones Como mencionamos anteriormente, a veces estamos interesados en
realizar una estimación de funciones (o una aproximación de funciones). Aquí estamos tratando
de predecir una variable y dado un vector de entrada x. Suponemos que existe una función f (x)
que describe la relación aproximada entre y y x. Por ejemplo, podemos suponer que y = f(x) +
,
donde
representa la parte de y que no es predecible a partir de x. En la estimación de funciones,
nos interesa aproximar f con un modelo o estimación ˆf. La estimación de funciones es en realidad
lo mismo que estimar un parámetro θ; el estimador de función ˆf es simplemente un estimador
puntual en el espacio funcional. El ejemplo de regresión lineal (analizado anteriormente en la
sección 5.1.4) y el ejemplo de regresión polinómica (analizado en la sección 5.2) son ejemplos de
escenarios que pueden interpretarse como la estimación de un parámetro w o la estimación de
una función ˆf mapeando de x a y.
Ahora revisaremos las propiedades más comúnmente estudiadas de los estimadores puntuales
y discutiremos lo que nos dicen sobre estos estimadores.
5.4.2 Sesgo
El sesgo de un estimador se define como:
sesgo(θˆm) = E(θˆm) − θ
124
(5.20)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
donde la expectativa está sobre los datos (vistos como muestras de una variable
aleatoria) y θ es el verdadero valor subyacente de θ utilizado para definir los datos que
generan la distribución . Se dice que un estimador θˆm es insesgado si sesgo(θˆm) =
0, lo que implica que E(θˆm) = θ. Se dice que un estimador θˆm es asintóticamente
insesgado si limm→∞ sesgo(θˆm) = 0, lo que implica que limm→∞ E(θˆm) = θ.
, . . distribuidas
.,
Ejemplo: Distribución de Bernoulli Considere un conjunto de muestras {x (1) x (m)} que están
de forma independiente e idéntica según una distribución de Bernoulli con media θ:
x
P(x (i) ; θ) = θ
(yo)
(1 − θ) (1−x (i))
.
(5.21)
Un estimador común para el parámetro θ de esta distribución es la media de las muestras
de entrenamiento:
1
ˆθm =
m
metro
X (i) .
(5.22)
yo=1
Para determinar si este estimador está sesgado, podemos sustituir la ecuación 5.22
en la ecuación 5.20:
(5.23)
sesgo(ˆθm) = E[ˆθm] − θ
=E
=
metro
1
1m
(5.24)
m
yo=1 x (i)
m mi
−θ
x (i)
(5.25)
−θ
yo=1
1
=
1m
=
1m
x (i)θ x (i)(1 − θ) (1−x (i) )
m
yo=1
m
−θ
(5.26)
x(yo)=0
(θ) − θ
(5.27)
yo=1
=θ−θ=0
(5.28)
Como sesgo(ˆθ) = 0, decimos que nuestro estimador ˆθ es insesgado.
Ejemplo: Estimador de distribución gaussiana de la media Ahora, considere un
. . (1)
. , x (m)} que están distribuidas de forma independiente e
conjunto de muestras ,{x
2 ; µ,
idéntica según una distribución gaussiana p(x (i)) = N (x
(i)σ . ), donde i {1, .
125
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Recuerde que la función de densidad de probabilidad gaussiana está dada por
1 (x (i) − µ) 2
1 p(x (i) ; µ, σ 2) = √
2πσ2
exp
2
−
σ2
(5.29)
.
Un estimador común del parámetro medio gaussiano se conoce como muestra.
significar:
1
µˆm =
m
metro
(5.30)
X (i)
yo=1
Para determinar el sesgo de la media muestral, nuevamente nos interesa calcular su
expectativa:
(5.31)
sesgo(μˆm) = E[μˆm] − µ
= mi
yo=1
m
metro
=
1=
1
m
metro
1
yo=1
metro
(5.32)
x (i)
−µ
(5.33)
mi
m
i=1 µ
x (i)
−µ
(5.34)
−µ
=µ−µ=0
(5.35)
Por tanto, encontramos que la media muestral es un estimador insesgado del parámetro de la
media gaussiana.
Ejemplo: Estimadores de la varianza de una distribución gaussiana Como ejemplo, comparamos dos
2
estimadores diferentes del parámetro de varianza σ de una distribución gaussiana. Nos interesa saber
si alguno de los estimadores está sesgado. consideramos se conoce como varianza muestral:
El primer estimador de σ
2
σˆ 2m =
1m
m (i) − µˆ m
2,
x
(5.36)
yo=1
donde µˆm es la media muestral, definida anteriormente. Más formalmente, estamos interesados en
la informática.
sesgo(σˆ 2m) = E[σˆ 2m] − σ2
126
(5.37)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Comenzamos evaluando el término E[σˆ 2m ]:
(i)
E[σˆ 2m] =E
1m
m
yo=1
(5.38)
x
− µˆm
2
= metro ­ 1 2σ
(5.39)
metro
Volviendo a la ecuación 5.37, concluimos que el sesgo de σˆ 2m es −σ 2/m. Por tanto, la
varianza muestral es un estimador sesgado.
El estimador insesgado de la varianza muestral
1
σ˜ 2m =
metro ­ 1
m (i) − µˆm
2
yo=1
(5.40)
x
proporciona un enfoque alternativo. Como sugiere el nombre, este estimador es insesgado.
2:
Es decir, encontramos que E[σ˜ 2m] = σ
1
metro ­ 1
mi[σ˜ 2m] = mi
m
yo=1
x
(5.41)
(i) − µˆm
2
metro
=
mi[σˆ 2m ]
metro ­ 1
metro
=
metro − 1
2=s
metro
metro
−1σ2
.
(5.42)
(5.43)
(5.44)
Tenemos dos estimadores: uno está sesgado y el otro no. Si bien los estimadores insesgados son
claramente deseables, no siempre son los “mejores” estimadores. Como veremos , a menudo utilizamos
estimadores sesgados que poseen otras propiedades importantes.
5.4.3 Varianza y error estándar
Otra propiedad del estimador que podríamos considerar es cuánto esperamos que
varíe en función de la muestra de datos. Así como calculamos la expectativa del
estimador para determinar su sesgo, podemos calcular su varianza.
La varianza de un estimador es simplemente la varianza
Var(ˆθ)
donde la variable aleatoria es el conjunto de entrenamiento. Alternativamente, la raíz
cuadrada de la varianza se llama error estándar y se denota SE(ˆθ).
127
(5.45)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
La varianza o el error estándar de un estimador proporciona una medida de cómo esperaríamos que
varíe la estimación que calculamos a partir de los datos a medida que volvemos a muestrear de forma
independiente el conjunto de datos del proceso de generación de datos subyacente. Así como nos
gustaría que un estimador exhibiera un sesgo bajo, también nos gustaría que tuviera una varianza
relativamente baja.
Cuando calculamos cualquier estadística utilizando un número finito de muestras, nuestra estimación
del verdadero parámetro subyacente es incierta, en el sentido de que podríamos haber obtenido otras
muestras de la misma distribución y sus estadísticas habrían sido diferentes. El grado esperado de variación
en cualquier estimador es una fuente de error que queremos cuantificar.
El error estándar de la media está dado por
σ
SE(μˆm) =
Var
1 m yo=1
m x (i)
=
(5.46)
√metro,
2 es la varianza verdadera de las muestras x i. El error estándar suele ser donde σ se estima utilizando una estimación de σ.
Desafortunadamente, ni la raíz cuadrada de la varianza muestral ni la raíz cuadrada del estimador insesgado de la varianza proporcionan una estimación
insesgada de la desviación estándar. Ambos enfoques tienden a subestimar la verdadera desviación estándar, pero todavía se utilizan en la práctica. La
raíz cuadrada del estimador insesgado de la varianza no es una subestimación.
Para m grande, la aproximación es bastante razonable.
El error estándar de la media es muy útil en experimentos de aprendizaje automático.
A menudo estimamos el error de generalización calculando la media muestral del error
en el conjunto de prueba. El número de ejemplos en el conjunto de prueba determina
la precisión de esta estimación. Aprovechando el teorema del límite central, que nos
dice que la media se distribuirá aproximadamente con una distribución normal, podemos
usar el error estándar para calcular la probabilidad de que la verdadera expectativa
caiga en cualquier intervalo elegido. Por ejemplo, el intervalo de confianza del 95%
centrado en la media µˆm es
(5.47)
(μˆm − 1.96SE(μˆ m), µˆm + 1.96SE(μˆm)), bajo la
distribución normal con experimentos de aprendizaje de media µˆm y varianza SE(μˆm) ,
2
. en maquina
es común decir que el algoritmo A es mejor que el algoritmo B si El límite superior del intervalo de confianza
del 95% para el error del algoritmo A es menor que el límite inferior del intervalo de confianza del 95% para
el error del algoritmo B.
128
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Ejemplo: Distribución de Bernoulli Consideramos una vez más un conjunto de muestras {x (1) x (m)}
, . . de
. , forma independiente e idéntica de una distribución de Bernoulli
extraídas
(recuerde P(x (i); θ) = θ x (i)(1 − θ) (1−x (i)
ˆθm = 1m
m i=1
Var
ˆθm
)). Esta vez nos interesa calcular la varianza del estimador
(i)
.
X
metro
= Var
=
1
yo=1
m x (i)
1
m
m2
yo=1 Var
=
x (i)
(5.50)
mθ(1 − θ) m2
(5.51)
1
1
=
(5.49)
m θ(1 − θ)
1m2 yo=1
=
(5.48)
(5.52)
θ(1 − θ)
metro
La varianza del estimador disminuye en función de m, el número de ejemplos en el conjunto de datos.
Esta es una propiedad común de los estimadores populares a la que volveremos cuando analicemos
la consistencia (ver sección 5.4.5).
5.4.4 Compensar el sesgo y la varianza para minimizar la media cuadrática
Error
El sesgo y la varianza miden dos fuentes diferentes de error en un estimador. El sesgo mide la
desviación esperada del valor real de la función o parámetro.
La varianza, por otro lado, proporciona una medida de la desviación del valor esperado del estimador
que es probable que cause cualquier muestreo particular de los datos.
¿Qué sucede cuando nos dan a elegir entre dos estimadores, uno con más sesgo y otro con más
varianza? ¿Cómo elegimos entre ellos? Por ejemplo, imaginemos que estamos interesados en aproximar
la función que se muestra en la figura 5.2 y solo se nos ofrece la opción entre un modelo con un gran
sesgo y uno que sufre de una gran varianza. ¿Cómo elegimos entre ellos?
La forma más común de negociar este compromiso es utilizar validación cruzada.
Empíricamente, la validación cruzada tiene mucho éxito en muchas tareas del mundo real.
Alternativamente , también podemos comparar el error cuadrático medio (MSE) de las estimaciones:
2
MSE = E[(ˆθm − θ)
]
= Sesgo(ˆθm) 2 + Var(ˆθm)
129
(5,53)
(5,54)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
El MSE mide la desviación general esperada (en un sentido de error al cuadrado) entre el estimador y
el valor real del parámetro θ. Como se desprende claramente de la ecuación 5.54, la evaluación del
MSE incorpora tanto el sesgo como la varianza.
Los estimadores deseables son aquellos con MSE pequeño y estos son estimadores que logran
mantener tanto su sesgo como su varianza bajo control.
Zona de desajuste
Zona de sobreajuste
Generalización
Inclinación
error
Capacidad
Diferencia
Capacidad
óptima
Figura 5.6: A medida que aumenta la capacidad (eje x), el sesgo (punteado) tiende a disminuir y la
varianza (discontinua) tiende a aumentar, lo que produce otra curva en forma de U para el error de
generalización ( curva en negrita). Si variamos la capacidad a lo largo de un eje, existe una capacidad
óptima, con subajuste cuando la capacidad está por debajo de este óptimo y sobreajuste cuando está
por encima. Esta relación es similar a la relación entre capacidad, subadaptación y sobreadaptación,
analizada en la sección 5.2 y la figura 5.3.
La relación entre sesgo y varianza está estrechamente vinculada a los conceptos de capacidad, desajuste
y sobreajuste del aprendizaje automático. En el caso en que el MSE mide el error de generalización (donde el
sesgo y la varianza son componentes significativos del error de generalización), el aumento de la capacidad
tiende a aumentar la varianza y disminuir el sesgo. Esto se ilustra en la figura 5.6, donde vemos nuevamente
la curva en forma de U del error de generalización en función de la capacidad.
5.4.5 Consistencia
Hasta ahora hemos discutido las propiedades de varios estimadores para un conjunto de entrenamiento de
tamaño fijo. Por lo general, también nos preocupa el comportamiento de un estimador a medida que crece la
cantidad de datos de entrenamiento. En particular, generalmente deseamos que, a medida que aumenta el
número de puntos de datos m en nuestro conjunto de datos, nuestras estimaciones puntuales converjan a la verdadera
130
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
valor de los parámetros correspondientes. Más formalmente, nos gustaría que
plimm→∞ ˆθm = θ.
El símbolo plim indica convergencia en probabilidad, lo que significa que para cualquier
− θ| >
(5.55)
> 0, P (|ˆθm
) → 0 cuando m → ∞. La condición descrita por la ecuación 5.55 se conoce como consistencia.
A veces se le llama consistencia débil, y la consistencia fuerte se refiere a la convergencia casi segura
de ˆθ a θ. La convergencia casi (1) segura de una secuencia de variables aleatorias x (m) ocurre
(2) . . a un valor x
X,
,.
cuando p(limm→∞ x = x) = 1.
La coherencia garantiza que el sesgo inducido por el estimador disminuya a medida que crece el
número de ejemplos de datos. Sin embargo, lo contrario no es cierto: la imparcialidad asintótica no
implica coherencia. Por ejemplo, considere estimar el parámetro medio µ de una distribución normal
N (x; µ, σ 2), con un conjunto de datos que consta de m muestras: {x (1) x (m)}. Podríamos usar la
...,
primera muestra x (1) del, conjunto
de datos como estimador insesgado: ˆθ = x (1)
. En ese caso, E(ˆθm) = θ, por lo que el estimador es
insesgado sin importar cuántos puntos de datos se vean. Por supuesto, esto implica que la estimación
es asintóticamente insesgada. Sin embargo, este no es un estimador consistente ya que no se da el
caso de que ˆθm → θ cuando m → ∞.
5.5 Estimación de máxima verosimilitud
Anteriormente, hemos visto algunas definiciones de estimadores comunes y analizado sus propiedades.
¿Pero de dónde vienen estos estimadores? En lugar de suponer que alguna función podría ser un buen
estimador y luego analizar su sesgo y varianza, nos gustaría tener algún principio del cual podamos
derivar funciones específicas que sean buenos estimadores para diferentes modelos.
El principio más común de este tipo es el principio de máxima verosimilitud.
, . . . , x (m)} extraído independientemente de
Considere un conjunto de m ejemplos X = {x (1)
los datos verdaderos pero desconocidos que generan la distribución pdata(x).
Sea pmodel(x;θ) una familia paramétrica de distribuciones de probabilidad en el mismo espacio indexado por θ. En
otras palabras, pmodel(x;θ ) asigna cualquier configuración x a un número real que estima la probabilidad verdadera
pdata(x).
El estimador de máxima verosimilitud para θ se define entonces como
θML = arg máx
θ
= arg máx θ
pmodel(X; θ)
m pmodel(x (i) ; θ)
yo=1
131
(5.56)
(5.57)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Este producto, en muchas probabilidades, puede resultar inconveniente por diversas razones.
Por ejemplo, es propenso a un desbordamiento numérico. Para obtener un problema de optimización más
conveniente pero equivalente, observamos que tomar el logaritmo de la probabilidad no cambia su arg max
pero sí transforma convenientemente un producto en una suma:
θML = arg máx.
θ
m log pmodel(x (i) ; θ).
(5.58)
yo=1
Debido a que arg max no cambia cuando reescalamos la función de costo, podemos dividir por m para obtener
una versión del criterio que se expresa como una expectativa con respecto a la distribución empírica pˆdata
definida por los datos de entrenamiento:
θ). θML = arg máx. Ex
θ
pˆregistro de datos pmodel(x;
(5.59)
Una forma de interpretar la estimación de máxima verosimilitud es verla como una
minimización de la disimilitud entre los datos pˆ de la distribución empírica definidos por el
conjunto de entrenamiento y la distribución del modelo, midiendo el grado de disimilitud
entre los dos mediante la divergencia KL. La divergencia KL viene dada por
DKL (pˆdata
pmodel) = Ex
pˆdata [log pˆdata (x) − log pmodel(x)] .
(5.60)
El término de la izquierda es una función únicamente del proceso de generación de datos, no del modelo.
Esto significa que cuando entrenamos el modelo para minimizar la divergencia KL, solo necesitamos
minimizar
− Ex
pˆdata [log pmodel(x)]
(5.61)
que por supuesto es lo mismo que la maximización en la ecuación 5.59.
Minimizar esta divergencia de KL corresponde exactamente a minimizar la entropía cruzada entre
las distribuciones. Muchos autores utilizan el término "entropía cruzada" para identificar específicamente
la probabilidad logarítmica negativa de una distribución de Bernoulli o softmax, pero ese es un nombre
inapropiado. Cualquier pérdida que consista en una probabilidad logarítmica negativa es una entropía
cruzada entre la distribución empírica definida por el conjunto de entrenamiento y la distribución de
probabilidad definida por el modelo. Por ejemplo, el error cuadrático medio es la entropía cruzada entre
la distribución empírica y un modelo gaussiano.
Por lo tanto, podemos ver la máxima verosimilitud como un intento de hacer que la distribución del
modelo coincida con la distribución empírica pˆdata. Idealmente, nos gustaría hacer coincidir los datos
reales que generan los datos de distribución, pero no tenemos acceso directo a esta distribución.
Si bien el θ óptimo es el mismo independientemente de si maximizamos la
probabilidad o minimizamos la divergencia KL, los valores de las funciones objetivo
132
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
son diferentes. En software, a menudo expresamos que ambos son una función de minimización de costos.
Por lo tanto, la máxima probabilidad se convierte en la minimización de la probabilidad logarítmica negativa
(NLL) o, de manera equivalente, la minimización de la entropía cruzada. La perspectiva de máxima
verosimilitud como divergencia mínima de KL resulta útil en este caso porque la divergencia de KL tiene
un valor mínimo conocido de cero. La probabilidad logarítmica negativa en realidad puede volverse negativa
cuando x tiene un valor real.
5.5.1 Logística de verosimilitud condicional y error cuadrático medio
El estimador de máxima verosimilitud se puede generalizar fácilmente al caso en el que nuestro
objetivo es estimar una probabilidad condicional P(y | x;θ) para predecir y dado x. En realidad, esta es
la situación más común porque constituye la base de la mayor parte del aprendizaje supervisado. Si
X representa todas nuestras entradas e Y todos nuestros objetivos observados , entonces el estimador
de máxima verosimilitud condicional es
= arg máx.
P(Y | X; θ). θML
θ
(5.62)
Si se supone que los ejemplos son iid, entonces esto se puede descomponer en
θML = arg máx.
θ
m log P(y (i) | x
(i) ; θ).
(5.63)
yo=1
Ejemplo: Regresión lineal como máxima verosimilitud La regresión lineal, introducida anteriormente
en la sección 5.1.4, puede justificarse como un procedimiento de máxima verosimilitud. Anteriormente,
motivamos la regresión lineal como un algoritmo que aprende a tomar una entrada x y producir un
valor de salida yˆ. La aplicación de x a yˆ se elige para minimizar el error cuadrático medio, un criterio
que introdujimos más o menos arbitrariamente. Ahora revisamos la regresión lineal desde el punto de
vista de la estimación de máxima verosimilitud. En lugar de producir una única predicción yˆ, ahora
pensamos que el modelo produce una distribución condicional p(y | x). Podemos imaginar que con un
conjunto de entrenamiento infinitamente grande, podríamos ver varios ejemplos de entrenamiento con
el mismo valor de entrada x pero diferentes valores de y. El objetivo del algoritmo de aprendizaje
ahora es ajustar la distribución p(y | x) a todos esos valores de y diferentes que sean compatibles con
x. Para derivar el mismo algoritmo de regresión lineal que obtuvimos antes, definimos p(y | x) = N
(y;yˆ(x; w), σ 2). La función yˆ(x; w) da la predicción de la media gaussiana. En este ejemplo, asumimos
el elegido por el usuario. Veremos que esta elección de la forma funcional de p(y | x) hace que el
procedimiento de estimación de máxima verosimilitud produzca el mismo algoritmo de aprendizaje
2 la varianza se fija en alguna constante σ
que desarrollamos antes. desde el
133
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Se supone que los ejemplos son iid, la probabilidad logarítmica condicional (ecuación 5.63) viene dada por
m Iniciar sesión p(y (i)
x ;(i)θ)|
(5.64)
yo=1
yˆ (i) − y
metro
= − mlog σ −
2 log(2π) −
m yo=1
2σ2
(i)
2
,
(5.65)
donde yˆ (i) es la salida de la regresión lineal en la i­ésima entrada x (i) y m es el número de ejemplos
de entrenamiento. Comparando la probabilidad logarítmica con el error cuadrático medio,
1
MSEtren =
metro
m ||yˆ −(i)y
yo=1
(yo) ||2 ,
(5.66)
inmediatamente vemos que maximizar la probabilidad logarítmica con respecto a w produce la misma
estimación de los parámetros w que minimizar el error cuadrático medio.
Los dos criterios tienen valores diferentes pero la misma ubicación del óptimo. Esto justifica el uso del MSE
como procedimiento de estimación de máxima verosimilitud. Como veremos , el estimador de máxima
verosimilitud tiene varias propiedades deseables.
5.5.2 Propiedades de máxima verosimilitud
El principal atractivo del estimador de máxima verosimilitud es que se puede demostrar que es el mejor
estimador asintóticamente, a medida que el número de ejemplos m → ∞, en términos de su tasa de
convergencia a medida que m aumenta.
En condiciones apropiadas, el estimador de máxima verosimilitud tiene la propiedad de
coherencia (consulte la sección 5.4.5 anterior), lo que significa que a medida que el número
de ejemplos de entrenamiento se acerca al infinito, la estimación de máxima verosimilitud de
un parámetro converge al valor verdadero del parámetro. Estas condiciones son:
• La verdadera distribución pdata debe estar dentro de la familia de modelos pmodel(∙; θ).
De lo contrario, ningún estimador podrá recuperar pdata .
• La verdadera distribución pdata debe corresponder exactamente a un valor de θ. Otro­ pero no
De manera inteligente, la máxima probabilidad puede recuperar los pdata , podrá
correctos para determinar qué valor de θ fue utilizado por el procesamiento de generación de datos.
Hay otros principios inductivos además del estimador de máxima verosimilitud , muchos
de los cuales comparten la propiedad de ser estimadores consistentes. Sin embargo,
134
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Los estimadores consistentes pueden diferir en su eficiencia estadística, lo que significa que un estimador
consistente puede obtener un error de generalización más bajo para un número fijo de muestras m, o de
manera equivalente, puede requerir menos ejemplos para obtener un nivel fijo de error de generalización.
La eficiencia estadística generalmente se estudia en el caso paramétrico (como en la regresión lineal)
donde nuestro objetivo es estimar el valor de un parámetro (y asumiendo que es posible identificar el
parámetro verdadero), no el valor de una función. Una forma de medir qué tan cerca estamos del parámetro
verdadero es mediante el error cuadrático medio esperado, calculando la diferencia al cuadrado entre los
valores estimados y verdaderos del parámetro , donde la expectativa es más de m muestras de entrenamiento
de los datos que generan la distribución. Ese error cuadrático medio paramétrico disminuye a medida que m
aumenta, y para m grande, el límite inferior de Cramér­Rao (Rao, 1945; Cramér, 1946) muestra que ningún
estimador consistente tiene un error cuadrático medio menor que el estimador de máxima verosimilitud.
Por estas razones (consistencia y eficiencia), la máxima verosimilitud a menudo se considera el
estimador preferido para el aprendizaje automático. Cuando el número de ejemplos es lo suficientemente
pequeño como para producir un comportamiento de sobreajuste, se pueden utilizar estrategias de
regularización, como la disminución del peso, para obtener una versión sesgada de máxima probabilidad
que tenga menos varianza cuando los datos de entrenamiento son limitados.
5.6 Estadísticas bayesianas
Hasta ahora hemos analizado las estadísticas frecuentistas y los enfoques basados en la
estimación de un único valor de θ, para luego hacer todas las predicciones basadas en
esa única estimación. Otro enfoque es considerar todos los valores posibles de θ al hacer
una predicción. Este último es el dominio de la estadística bayesiana.
Como se analizó en la sección 5.4.1, la perspectiva frecuentista es que el verdadero
valor del parámetro θ es fijo pero desconocido, mientras que la estimación puntual θˆ es una
variable aleatoria debido a que es una función del conjunto de datos (que se considera aleatorio).
La perspectiva bayesiana de la estadística es bastante diferente. El bayesiano utiliza la probabilidad
para reflejar grados de certeza de los estados de conocimiento. El conjunto de datos se observa
directamente y, por tanto, no es aleatorio. Por otro lado, el verdadero parámetro θ es desconocido o
incierto y, por tanto, se representa como una variable aleatoria.
Antes de observar los datos, representamos nuestro conocimiento de θ utilizando la distribución de
probabilidad previa, p(θ) (a veces denominada simplemente “la previa”).
Generalmente, el profesional del aprendizaje automático selecciona una distribución previa que es
bastante amplia (es decir, con alta entropía) para reflejar un alto grado de incertidumbre en la
135
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
valor de θ antes de observar cualquier dato. Por ejemplo, se podría suponer a priori que θ se
encuentra en algún rango o volumen finito, con una distribución uniforme. En cambio, muchos
anteriores reflejan una preferencia por soluciones "más simples" (como coeficientes de
magnitud más pequeños o una función que esté más cerca de ser constante).
, . . . , X recuperar el efecto
Ahora considere que tenemos un conjunto de muestras de datos {x (1) (m) }. Podemos
de los datos sobre nuestra creencia sobre θ combinando la probabilidad de los datos p(x (1) (m) | θ) con la
. . la
. ,regla
X
anterior ,vía
de Bayes: p(x (1) x (m)) = p (x(1) , .
, . X..,
(1) p(θ | x , . . . ,
(metros) |
. . , θ)p(θ) x(m) )
(5.67)
En los escenarios donde normalmente se usa la estimación bayesiana, la distribución anterior comienza como
una distribución relativamente uniforme o gaussiana con alta entropía, y la observación de los datos
generalmente hace que la posterior pierda entropía y se concentre alrededor de unos pocos valores muy
probables de los parámetros.
En relación con la estimación de máxima verosimilitud, la estimación bayesiana ofrece dos
diferencias importantes. Primero, a diferencia del enfoque de máxima verosimilitud que hace
predicciones utilizando una estimación puntual de θ, el enfoque bayesiano consiste en hacer
predicciones utilizando una distribución completa sobre θ. Por ejemplo, después de observar m
, x, viene dada por
ejemplos, la distribución predicha (m+1) en la siguiente muestra de datos,
p(x (m+1) | x
(1) , . . . , X
(m) ) =
p(x (m+1) | θ)p(θ | x
(1) , . . . , X
(m) ) dθ.
(5.68)
Aquí cada valor de θ con densidad de probabilidad positiva contribuye a la predicción del
siguiente ejemplo, con la contribución ponderada por la propia densidad posterior.
, . . .si, todavía tenemos bastante incertidumbre sobre el valor de θ,
Después de haber observado {x (1) x (m)},
entonces esta incertidumbre se incorpora directamente a cualquier predicción que podamos hacer.
En la sección 5.4, analizamos cómo el enfoque frecuentista aborda la incertidumbre en una estimación
puntual dada de θ mediante la evaluación de su varianza. La varianza del estimador es una evaluación de
cómo la estimación podría cambiar con muestreos alternativos de los datos observados. La respuesta
bayesiana a la pregunta de cómo lidiar con la incertidumbre en el estimador es simplemente integrar sobre él,
lo que tiende a proteger bien contra el sobreajuste. Esta integral es, por supuesto, sólo una aplicación de las
leyes de la probabilidad, lo que hace que el enfoque bayesiano sea fácil de justificar, mientras que la
maquinaria frecuentista para construir un estimador se basa en la decisión más bien ad hoc de resumir todo
el conocimiento contenido en el conjunto de datos en un solo punto. estimar.
La segunda diferencia importante entre el enfoque bayesiano de estimación y el enfoque de máxima
verosimilitud se debe a la contribución del enfoque bayesiano.
136
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
distribución previa. Lo anterior influye al desplazar la densidad de masa de
probabilidad hacia regiones del espacio de parámetros que se prefieren a priori. En
la práctica, el prior a menudo expresa una preferencia por modelos más simples o más fluidos.
Los críticos del enfoque bayesiano identifican lo previo como una fuente de juicio humano subjetivo que
afecta las predicciones.
Los métodos bayesianos suelen generalizarse mucho mejor cuando hay datos de entrenamiento
limitados disponibles, pero suelen sufrir un alto costo computacional cuando la cantidad de ejemplos
de entrenamiento es grande.
Ejemplo: regresión lineal bayesiana Aquí consideramos el enfoque de estimación
bayesiana para aprender los parámetros de regresión lineal. En la regresión lineal,
aprendemos un mapeo lineal de un vector de entrada x
Rn para predecir el valor
de un escalar y
R. La predicción está parametrizada por el vector w
Rn :
yˆ = w
x.
(5.69)
Dado un conjunto de m muestras de entrenamiento (X(train) , y (train) ), podemos expresar la predicción de
y en todo el conjunto de entrenamiento como:
yˆ(tren) = X(tren)w.
(5.70)
Expresado como una distribución condicional gaussiana en y(tren) , tenemos
p(y (tren) | X(tren) (tren) , w) = N (y
exp
; X(tren)w, I)
(5.71)
− 21 (y (tren) − X(tren)w)
(y (tren) − X(tren)w)
,
(5.72)
donde seguimos la formulación estándar de MSE al suponer que la varianza gaussiana
de y es uno. En lo que sigue, para reducir la carga de notación, nos referiremos a
(X(train) , y (train)) simplemente como (X, y).
Para determinar la distribución posterior sobre el vector de parámetros del modelo w, primero debemos
especificar una distribución previa. Lo anterior debería reflejar nuestra creencia ingenua sobre el valor de
estos parámetros. Si bien a veces es difícil o antinatural expresar nuestras creencias previas en términos
de los parámetros del modelo, en la práctica normalmente asumimos una distribución bastante amplia que
expresa un alto grado de incertidumbre sobre θ. Para parámetros de valor real es común utilizar una
distribución gaussiana como distribución previa:
p(w) = N (w; µ0
, Λ0)
exp
− 21
(w − µ0)
137
−1
Λ 0
(w − µ0)
,
(5.73)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
donde µ0 y Λ0 son el vector medio de distribución a priori y la matriz de covarianza
respectivamente.1 Con lo anterior así especificado, ahora podemos proceder a determinar el valor poster
distribución sobre los parámetros del modelo.
p(w | X, y)
p(y | X, w)p(w)
− 12(y − Xw)
exp
(5.74)
(y − Xw)
exp
2
−1
(w − µ0)
Λ −10
(w − µ0)
(5.75)
exp
− 12
−2y
Xw + w
X
Xw + w
Λ −1
0
w − 2 µ 0 Λ −1
0
w
.
(5.76)
−1
−1
definimos Λm = X X + Λ 0 µ0
. Usando0estas
−1nuevas
y µm = variables,
Λm X encontramos
y + Λ Ahora que la distribución
posterior puede reescribirse como una distribución gaussiana:
p(w | X, y)
exp
exp
−1
−1
2
2
(w − µm)
Λ
−1 (w − µm ) +
1
metro
−1
(w − µm)
Λ
m µm
−1
metro (w − µ metro)
(5.77) 2 µ
mΛ
(5.78)
.
Se han omitido todos los términos que no incluyen el vector de parámetros w ; están
implícitos en el hecho de que la distribución debe normalizarse para integrarse a 1.
La ecuación 3.23 muestra cómo normalizar una distribución gaussiana multivariada.
Examinar esta distribución posterior nos permite tener cierta intuición sobre el efecto de la inferencia bayesiana.
En la mayoría de las situaciones, establecemos µ0 en 0. Si establecemos Λ0 = 1αI, entonces µm da la misma estimación
de w que la regresión lineal frecuentista con una penalización por caída de peso de αw
w. Una diferencia es que la
estimación bayesiana no está definida si α se establece en cero; no se nos permite comenzar el proceso de aprendizaje
bayesiano con una prioridad infinitamente amplia en w. La diferencia más importante es que la estimación bayesiana
proporciona una matriz de covarianza, que muestra cuán probables son todos los diferentes valores de w, en lugar de
proporcionar solo la estimación µm.
5.6.1 Estimación máxima A posteriori (MAP)
Si bien el enfoque más basado en principios es hacer predicciones utilizando la distribución posterior
, siendo deseable tener una
bayesiana completa sobre el parámetro θ, a menudo sigue
1
A menos que haya una razón para asumir una estructura de covarianza particular, normalmente suponemos una
matriz de covarianza diagonal Λ0 = diag(λ0).
138
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
estimación de un solo punto. Una razón común para desear una estimación puntual es
que la mayoría de las operaciones que involucran el posterior bayesiano para los modelos
más interesantes son intratables, y una estimación puntual ofrece una aproximación
manejable. En lugar de simplemente regresar a la estimación de máxima verosimilitud,
aún podemos obtener algunos de los beneficios del enfoque bayesiano al permitir que lo
anterior influya en la elección de la estimación puntual. Una forma racional de hacer esto
es elegir la estimación puntual máxima a posteriori (MAP). La estimación MAP elige el
punto de probabilidad posterior máxima (o densidad de probabilidad máxima en el caso
más común de θ continuo):
máx.
θ
p(θ | x) = arg max log p(x | θ) + log p(θ). θMAP = arg
θ
(5.79)
Reconocemos, arriba en el lado derecho, log p(x | θ), es decir, el término estándar de log­
verosimilitud, y log p(θ), correspondiente a la distribución anterior.
Como ejemplo, considere un modelo de regresión lineal con un previo gaussiano en
1
los pesos w. Si este a priori está dado por N(w;0, la λI 2), luego el término log­prior en
ecuación 5.79 es proporcional a la familiar penalización por caída de peso λw w , más
un término que no depende de w y no afecta el proceso de aprendizaje. MAP Inferencia
bayesiana con un a priori gaussiano en las pesas corresponde por lo tanto a una caída
de peso.
Al igual que con la inferencia bayesiana completa, la inferencia bayesiana MAP tiene
la ventaja de aprovechar la información que aporta el anterior y que no se puede encontrar
en los datos de entrenamiento. Esta información adicional ayuda a reducir la variación en
la estimación puntual MAP (en comparación con la estimación ML). Sin embargo, lo hace
al precio de un mayor sesgo.
Muchas estrategias de estimación regularizadas, como el aprendizaje de máxima
verosimilitud regularizado con disminución de peso, pueden interpretarse como una
aproximación MAP a la inferencia bayesiana. Esta visión se aplica cuando la regularización
consiste en agregar un término extra a la función objetivo que corresponde a log p(θ ). No
todas las sanciones de regularización corresponden a la inferencia bayesiana MAP. Por
ejemplo, algunos términos del regularizador pueden no ser el logaritmo de una distribución de probabilidad
Otros términos de regularización dependen de los datos, lo que por supuesto no se permite con una
distribución de probabilidad previa.
La inferencia bayesiana de MAP proporciona una forma sencilla de diseñar términos de regularización
complicados pero interpretables. Por ejemplo, se puede derivar un término de penalización más
complicado utilizando una mezcla de gaussianas, en lugar de una única distribución gaussiana, como
antes (Nowlan y Hinton, 1992).
139
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
5.7 Algoritmos de aprendizaje supervisado
Recuerde de la sección 5.1.3 que los algoritmos de aprendizaje supervisado son, en términos
generales, algoritmos de aprendizaje que aprenden a asociar alguna entrada con alguna salida,
dado un conjunto de entrenamiento de ejemplos de entradas x y salidas y. En muchos casos, los
resultados y pueden ser difíciles de recopilar automáticamente y deben ser proporcionados por un
“supervisor” humano, pero el término aún se aplica incluso cuando los objetivos establecidos de
capacitación se recopilaron automáticamente.
5.7.1 Aprendizaje supervisado probabilístico
La mayoría de los algoritmos de aprendizaje supervisado de este libro se basan en la estimación de
una distribución de probabilidad p(y | x). Podemos hacer esto simplemente usando la estimación de
máxima verosimilitud para encontrar el mejor vector de parámetros θ para una familia paramétrica
de distribuciones p(y | x; θ).
Ya hemos visto que la regresión lineal corresponde a la familia
p(y | x; θ) = N (y; θ
x, I).
(5.80)
Podemos generalizar la regresión lineal al escenario de clasificación definiendo una familia diferente de
distribuciones de probabilidad. Si tenemos dos clases, clase 0 y clase 1, entonces sólo necesitamos
especificar la probabilidad de una de estas clases. La probabilidad de la clase 1 determina la probabilidad
de la clase 0, porque estos dos valores deben sumar 1.
La distribución normal sobre números de valores reales que utilizamos para la regresión lineal está
parametrizada en términos de una media. Cualquier valor que proporcionemos para esta media es
válido. Una distribución sobre una variable binaria es un poco más complicada, porque su media
siempre debe estar entre 0 y 1. Una forma de resolver este problema es usar la función sigmoidea
logística para aplastar la salida de la función lineal en el intervalo (0, 1 ) e interpretar ese valor como
una probabilidad:
p(y = 1 | x; θ) = σ(θ
x).
(5.81)
Este enfoque se conoce como regresión logística (un nombre un tanto extraño ya que
utilizamos el modelo para clasificación en lugar de regresión).
En el caso de la regresión lineal, pudimos encontrar los pesos óptimos resolviendo las ecuaciones
normales. La regresión logística es algo más difícil. No existe una solución de forma cerrada para sus
pesos óptimos. En lugar de ello, debemos buscarlos maximizando la probabilidad logarítmica. Podemos
hacer esto minimizando la probabilidad logarítmica negativa (NLL) mediante el descenso de gradiente.
140
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Esta misma estrategia se puede aplicar esencialmente a cualquier problema de aprendizaje
supervisado, escribiendo una familia paramétrica de distribuciones de probabilidad condicional
sobre el tipo correcto de variables de entrada y salida.
5.7.2 Máquinas de vectores de soporte
Uno de los enfoques más influyentes del aprendizaje supervisado es la máquina de
vectores de soporte (Boser et al., 1992; Cortes y Vapnik, 1995). Este modelo es similar a
la regresión logística en que está impulsado por una función lineal w x + b. A diferencia
de la regresión logística , la máquina de vectores de soporte no proporciona probabilidades,
solo genera una identidad de clase. La SVM predice que la clase positiva está presente
cuando w x + b es positivo. Asimismo, predice que la clase negativa está presente
cuando w x + b es negativo.
Una innovación clave asociada con las máquinas de vectores de soporte es el truco del núcleo. El
truco del kernel consiste en observar que muchos algoritmos de aprendizaje automático se pueden
escribir exclusivamente en términos de productos escalares entre ejemplos. Por ejemplo, se puede
demostrar que la función lineal utilizada por la máquina de vectores de soporte se puede reescribir como
w
x+b=b+
m
αix
x (yo)
(5.82)
yo=1
algoritmo (i) es un ejemplo de entrenamiento y α es un vector de coeficientes. Reescribir el
de aprendizaje de dónde x de esta manera nos permite reemplazar x por la salida de una función
característica dada φ(x) y el producto escalar con una función k(x, x (i)) = φ(x)∙φ(x (i) ) llamado
núcleo . El operador ∙ representa un producto interno análogo a φ(x)
φ(x (i)).
Para algunos espacios de características, es posible que no utilicemos literalmente el producto interno del
vector. En algunos espacios de dimensiones infinitas, necesitamos utilizar otros tipos de productos
internos, por ejemplo, productos internos basados en integración en lugar de suma. Un desarrollo
completo de este tipo de productos internos está más allá del alcance de este libro.
Después de reemplazar los productos escalares con evaluaciones del kernel, podemos hacer
predicciones usando la función
f(x) = b +
(i) ). αik(x, x
(5.83)
i
Esta función no es lineal con respecto a x, pero la relación entre φ(x) y f (x) es lineal. Además, la relación
entre α y f(x) es lineal. La función basada en kernel es exactamente equivalente a preprocesar los datos
aplicando φ(x) a todas las entradas y luego aprender un modelo lineal en el nuevo espacio transformado.
El truco del kernel es poderoso por dos razones. Primero, nos permite aprender modelos
que son no lineales en función de x usando técnicas de optimización convexa que son
141
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
garantizado para converger eficientemente. Esto es posible porque consideramos φ fijo y optimizamos
solo α, es decir, el algoritmo de optimización puede ver la función de decisión como lineal en un
espacio diferente. En segundo lugar, la función kernel k a menudo admite una implementación que
es significativamente más eficiente computacional que construir ingenuamente dos vectores φ(x) y
tomar explícitamente su producto escalar.
En algunos casos, φ(x) puede incluso ser de dimensión infinita, lo que resultaría en un costo
computacional infinito para el enfoque ingenuo y explícito. En muchos casos, k(x, x
) es una
función no lineal y manejable de x incluso cuando φ(x) es intratable. Como ejemplo de un espacio
de características de dimensión infinita con un núcleo manejable, construimos un mapeo de
características φ(x) sobre los enteros no negativos x. Supongamos que este mapeo devuelve un
vector que contiene x unos seguidos de infinitos ceros.
Podemos escribir una función kernel k(x, x (i)) = min(x, x (i)) que sea exactamente
equivalente al correspondiente producto escalar de dimensión infinita.
El núcleo más utilizado es el núcleo gaussiano.
k(u, v) = norte (u − v; 0, σ 2I)
(5.84)
donde N(x; µ, Σ) es la densidad normal estándar. Este núcleo también se conoce como núcleo de
función de base radial (RBF), porque su valor disminuye a lo largo de las líneas en el espacio v que
irradian hacia afuera desde u. El núcleo gaussiano corresponde a un producto escalar en un espacio
de dimensión infinita, pero la derivación de este espacio es menos sencilla que en nuestro ejemplo
del núcleo mínimo sobre números enteros.
Podemos pensar que el núcleo gaussiano realiza una especie de coincidencia de plantillas. Un
ejemplo de entrenamiento x asociado con la etiqueta de entrenamiento y se convierte en una plantilla
para la clase y. Cuando un punto de prueba x está cerca de x según la distancia euclidiana, el núcleo
gaussiano tiene una respuesta grande, lo que indica que x es muy similar a la plantilla x . Luego, el
modelo pone un peso grande en la etiqueta de entrenamiento asociada y.
En general, la predicción combinará muchas de estas etiquetas de entrenamiento ponderadas por
la similitud de los ejemplos de entrenamiento correspondientes.
Las máquinas de vectores de soporte no son el único algoritmo que se puede mejorar utilizando
el truco del kernel. De esta manera se pueden mejorar muchos otros modelos lineales. La categoría
de algoritmos que emplean el truco del kernel se conoce como máquinas del kernel o métodos del
kernel (Williams y Rasmussen, 1996; Schölkopf et al., 1999).
Un inconveniente importante de las máquinas kernel es que el costo de evaluar la
función de decisión es lineal en el número de ejemplos de entrenamiento, porque el i­
ésimo ejemplo aporta un término αik(x, x (i)) a la función de decisión. Las máquinas de
vectores de soporte pueden mitigar esto aprendiendo un vector α que contiene principalmente ceros.
Entonces, clasificar un nuevo ejemplo requiere evaluar la función del núcleo solo para los ejemplos
de entrenamiento que tienen αi distinto de cero . Estos ejemplos de entrenamiento son conocidos.
142
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
como vectores de soporte.
Las máquinas kernel también sufren un alto costo computacional de entrenamiento cuando el
conjunto de datos es grande. Revisaremos esta idea en la sección 5.9. Las máquinas con núcleos
genéricos tienen dificultades para generalizar bien. Explicaremos por qué en la sección 5.11. La
encarnación moderna del aprendizaje profundo fue diseñada para superar estas limitaciones de las
máquinas kernel. El actual renacimiento del aprendizaje profundo comenzó cuando Hinton et al. (2006)
demostraron que una red neuronal podría superar al SVM del núcleo RBF en el punto de referencia
MNIST.
5.7.3 Otros algoritmos simples de aprendizaje supervisado
Ya hemos encontrado brevemente otro algoritmo de aprendizaje supervisado no probabilístico,
la regresión del vecino más cercano. De manera más general, k­vecinos más cercanos es
una familia de técnicas que pueden usarse para clasificación o regresión. Como algoritmo
de aprendizaje no paramétrico, los k vecinos más cercanos no están restringidos a un
número fijo de parámetros. Por lo general, pensamos que el algoritmo de k vecinos más
cercanos no tiene ningún parámetro, sino que implementa una función simple de los datos
de entrenamiento. De hecho, ni siquiera existe realmente una etapa de formación o proceso de aprendizaje.
En cambio, en el momento de la prueba, cuando queremos producir una salida y para una nueva
entrada de prueba x, encontramos los k vecinos más cercanos a x en los datos de entrenamiento X.
Luego devolvemos el promedio de los valores de y correspondientes en el conjunto de entrenamiento. .
Esto funciona esencialmente para cualquier tipo de aprendizaje supervisado en el que podamos definir
un promedio sobre los valores de y . En el caso de la clasificación, podemos promediar los vectores
de código one­hot c con cy = 1 y ci = 0 para todos los demás valores de i. Luego podemos interpretar
el promedio de estos códigos únicos como una distribución de probabilidad entre clases. Como
algoritmo de aprendizaje no paramétrico, el vecino k más cercano puede alcanzar una capacidad muy
alta. Por ejemplo, supongamos que tenemos una tarea de clasificación multiclase y medimos el
rendimiento con una pérdida de 0­1. En esta configuración, el vecino más cercano converge para
duplicar el error de Bayes a medida que el número de ejemplos de entrenamiento se acerca al infinito.
El error superior al error de Bayes resulta de elegir un solo vecino rompiendo aleatoriamente los
vínculos entre vecinos igualmente distantes. Cuando hay infinitos datos de entrenamiento, todos los
puntos de prueba x tendrán infinitos vecinos del conjunto de entrenamiento a una distancia cero. Si
permitimos que el algoritmo utilice todos estos vecinos para votar, en lugar de elegir uno de ellos al
azar, el procedimiento converge a la tasa de error de Bayes. La alta capacidad de los k vecinos más
cercanos le permite obtener una alta precisión dado un gran conjunto de entrenamiento.
Sin embargo, lo hace con un alto costo computacional y puede generalizarse muy mal dado un
conjunto de entrenamiento pequeño y finito. Una debilidad de los k vecinos más cercanos es que no
pueden aprender que una característica es más discriminativa que otra. Por ejemplo, imaginemos que
tenemos una tarea de regresión con x
R100 extraída de una curva gaussiana isotrópica.
143
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
distribución, pero sólo una única variable x1 es relevante para la salida. Supongamos
además que esta característica simplemente codifica la salida directamente, es decir, que y
= x1 en todos los casos. La regresión del vecino más cercano no podrá detectar este patrón simple.
El vecino más cercano de la mayoría de los puntos x estará determinado por la gran cantidad de
características x2 a x100, no por la única característica x1 . Por lo tanto, el resultado de pequeños
conjuntos de entrenamiento será esencialmente aleatorio.
144
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
1
0
00
10
01
010
11
011
111
110
1110
1111
010
00
01
0
011
110
1
11
10
111
1110
1111
Figura 5.7: Diagramas que describen cómo funciona un árbol de decisión. (Arriba)Cada nodo del árbol
elige enviar el ejemplo de entrada al nodo secundario de la izquierda (0) o al nodo secundario de
la derecha (1). Los nodos internos se dibujan como círculos y los nodos de las hojas como cuadrados. Cada nodo es
mostrado con un identificador de cadena binaria correspondiente a su posición en el árbol, obtenido
agregando un bit a su identificador principal (0=elija izquierda o arriba, 1=elija derecha o abajo).
(Abajo) El árbol divide el espacio en regiones. El plano 2D muestra cómo un árbol de decisión
podría dividir R
2 . Los nodos del árbol se trazan en este plano, con cada nodo interno
dibujado a lo largo de la línea divisoria que utiliza para categorizar ejemplos, y los nodos de hoja dibujados en el
centro de la región de ejemplos que reciben. El resultado es una función constante por partes, con una parte por
hoja. Cada hoja requiere al menos un ejemplo de entrenamiento para definirse, por lo que es
No es posible que el árbol de decisión aprenda una función que tenga más máximos locales que el
número de ejemplos de entrenamiento.
145
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Otro tipo de algoritmo de aprendizaje que también divide el espacio de entrada en regiones y
tiene parámetros separados para cada región es el árbol de decisión (Breiman et al., 1984) y sus
muchas variantes. Como se muestra en la figura 5.7, cada nodo del árbol de decisión está asociado
con una región en el espacio de entrada, y los nodos internos dividen esa región en una subregión
para cada hijo del nodo (normalmente usando un corte alineado con el eje). De este modo, el espacio
se subdivide en regiones que no se superponen, con una correspondencia uno a uno entre los nodos
de hoja y las regiones de entrada. Cada nodo hoja generalmente asigna cada punto en su región de
entrada a la misma salida. Los árboles de decisión generalmente se entrenan con algoritmos
especializados que están fuera del alcance de este libro. El algoritmo de aprendizaje puede
considerarse no paramétrico si se le permite aprender un árbol de tamaño arbitrario, aunque los
árboles de decisión generalmente se regularizan con restricciones de tamaño que los convierten en
modelos paramétricos en la práctica. Los árboles de decisión, tal como se utilizan habitualmente, con
divisiones alineadas con los ejes y resultados constantes dentro de cada nodo, tienen dificultades
para resolver algunos problemas que son fáciles incluso para la regresión logística. Por ejemplo, si
tenemos un problema de dos clases y la clase positiva ocurre dondequiera que x2 > x1, el límite de
decisión no está alineado con el eje. Por lo tanto, el árbol de decisión necesitará aproximarse al límite
de decisión con muchos nodos, implementando una función de paso que recorra constantemente
hacia adelante y hacia atrás a través de la verdadera función de decisión con pasos alineados con los
ejes.
Como hemos visto, los árboles de decisión y los predictores de vecinos más cercanos tienen
muchas limitaciones. No obstante, son algoritmos de aprendizaje útiles cuando los recursos
computacionales son limitados. También podemos desarrollar la intuición para algoritmos de
aprendizaje más sofisticados al pensar en las similitudes y diferencias entre los algoritmos sofisticados
y k­NN o líneas base del árbol de decisión.
Véase Murphy (2012), Bishop (2006), Hastie et al. (2001) u otros libros de texto sobre aprendizaje
automático para obtener más material sobre los algoritmos tradicionales de aprendizaje supervisado.
5.8 Algoritmos de aprendizaje no supervisados
Recuerde de la sección 5.1.3 que los algoritmos no supervisados son aquellos que
experimentan sólo "características" pero no una señal de supervisión. La distinción entre
algoritmos supervisados y no supervisados no está definida formal y rígidamente porque no
existe una prueba objetiva para distinguir si un valor es una característica o un objetivo
proporcionado por un supervisor. De manera informal, el aprendizaje no supervisado se refiere
a la mayoría de los intentos de extraer información de una distribución que no requiere trabajo
humano para anotar ejemplos. El término generalmente se asocia con la estimación de
densidad, aprender a extraer muestras de una distribución, aprender a eliminar el ruido de los
datos de alguna distribución, encontrar una variedad cercana a la que se encuentran los datos o agrupar los d
146
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
ejemplos relacionados.
Una tarea clásica de aprendizaje no supervisado es encontrar la "mejor" representación de los
datos. Por "mejor" podemos referirnos a cosas diferentes, pero en términos generales buscamos una
representación que conserve la mayor cantidad de información posible sobre x mientras obedece a
alguna penalización o restricción destinada a mantener la representación más simple o más accesible
que el propio x.
Hay varias formas de definir una representación más simple . Tres de los más comunes
incluyen representaciones de dimensiones inferiores, representaciones dispersas y
representaciones independientes. Las representaciones de baja dimensión intentan comprimir
la mayor cantidad de información posible sobre x en una representación más pequeña.
Las representaciones dispersas (Barlow, 1989; Olshausen y Field, 1996; Hinton y Ghahramani,
1997) integran el conjunto de datos en una representación cuyas entradas son en su mayoría
ceros para la mayoría de las entradas. El uso de representaciones dispersas normalmente
requiere aumentar la dimensionalidad de la representación, de modo que la representación
que se convierta en su mayoría en ceros no descarte demasiada información. Esto da como
resultado una estructura general de la representación que tiende a distribuir datos a lo largo
de los ejes del espacio de representación. Las representaciones independientes intentan
desenredar las fuentes de variación subyacentes a la distribución de datos de modo que las
dimensiones de la representación sean estadísticamente independientes.
Por supuesto, estos tres criterios no son mutuamente excluyentes. Las representaciones de baja
dimensión a menudo producen elementos que tienen menos o más débiles dependencias que los datos
originales de alta dimensión. Esto se debe a que una forma de reducir el tamaño de una representación es
encontrar y eliminar redundancias. Identificar y eliminar más redundancia permite que el algoritmo de
reducción de dimensionalidad logre una mayor compresión y descarte menos información.
La noción de representación es uno de los temas centrales del aprendizaje profundo y, por tanto, uno
de los temas centrales de este libro. En esta sección, desarrollamos algunos ejemplos simples de algoritmos
de aprendizaje de representación. En conjunto, estos algoritmos de ejemplo muestran cómo poner en
práctica los tres criterios anteriores. La mayoría de los capítulos restantes introducen algoritmos de
aprendizaje de representación adicionales que desarrollan estos criterios de diferentes maneras o introducen
otros criterios.
5.8.1 Análisis de componentes principales
En la sección 2.12, vimos que el algoritmo de análisis de componentes principales proporciona
un medio para comprimir datos. También podemos ver PCA como un algoritmo de aprendizaje
no supervisado que aprende una representación de datos. Esta representación se basa en
dos de los criterios para una representación simple descritos anteriormente. PCA aprende un
147
Machine Translated by Google
20
20
10
10
0
0
z2
x2
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
−10
−10
−20
−20
−20 −10 0
10 20
−20 −10 0 10 20
x1
z1
Figura 5.8: PCA aprende una proyección lineal que alinea la dirección de mayor variación con los
ejes del nuevo espacio. (Izquierda) Los datos originales constan de muestras de x. En este espacio,
la variación puede ocurrir a lo largo de direcciones que no están alineadas con los ejes. (Derecha)
Los datos transformados z = x W ahora varían más a lo largo del eje z1. La dirección de la segunda
mayor varianza ahora es a lo largo de z2.
representación que tiene una dimensionalidad más baja que la entrada original. También
aprende una representación cuyos elementos no tienen correlación lineal entre sí. Este es
un primer paso hacia el criterio de aprender representaciones cuyos elementos sean
estadísticamente independientes. Para lograr una independencia total, un algoritmo de
aprendizaje de representación también debe eliminar las relaciones no lineales entre variables.
PCA aprende una transformación lineal ortogonal de los datos que proyecta una
entrada x en una representación z como se muestra en la figura 5.8. En la sección 2.12,
vimos que podíamos aprender una representación unidimensional que reconstruyera mejor
los datos originales (en el sentido de error cuadrático medio) y que esta representación en
realidad corresponde al primer componente principal de los datos. Por lo tanto, podemos
utilizar PCA como un método de reducción de dimensionalidad simple y eficaz que preserva
la mayor cantidad de información posible en los datos (nuevamente, medida por el error de
reconstrucción de mínimos cuadrados). A continuación, estudiaremos cómo la representación
PCA descorrelaciona la representación de datos original X.
Consideremos la matriz de diseño X m × n­dimensional . Supondremos que los
datos tienen una media de cero, E[x] = 0. Si este no es el caso, los datos se pueden
centrar fácilmente restando la media de todos los ejemplos en un paso de preprocesamiento.
La matriz de covarianza muestral insesgada asociada con X viene dada por:
Var[x] =
1
metro − 1X
148
X.
(5.85)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
PCA encuentra una representación (mediante transformación lineal) z = x
Var[z] es diagonal.
W donde
En la sección 2.12, vimos que los componentes principales de una matriz de diseño X
están dados por los vectores propios de X X. Desde esta vista,
X
X = WΛW
.
(5.86)
En esta sección, explotamos una derivación alternativa de los componentes principales. Los
componentes principales también se pueden obtener mediante la descomposición en valores singulares.
Específicamente, son los vectores singulares correctos de X. Para ver esto, sean W los
vectores singulares correctos en la descomposición X = UΣW . Luego recuperamos la
ecuación del vector propio original con W como base del vector propio:
X
X=
UΣW
UΣW
= WΣ 2W
.
(5.87)
El SVD es útil para mostrar que PCA da como resultado una Var[z] diagonal. Usando
la SVD de X, podemos expresar la varianza de X como:
1
Var[x] =
metro − 1X
1
=
(5.88)
X
UΣW
(5.89)
WΣ U UΣW
m−1
1
=
,
metro − 1WΣ 2W
(5.90)
metro ­ 1
(UΣW
)
1
=
(5.91)
donde utilizamos el hecho de que U U = I porque la matriz U de la descomposición en
valores singulares se define como ortogonal. Esto muestra que si tomamos z = x W
,
podemos asegurar que la covarianza de z sea diagonal como se requiere:
1
Var[z] =
metro − 1 1
=
=
m−1
1
metro ­ 1
=
Z
Z
W
X
W
WΣ 2W
1
2
metro − 1Σ
donde esta vez usamos el hecho de que W
(5.92)
XW
(5.93)
W
,
W = I, nuevamente de la definición de SVD.
149
(5.94)
(5.95)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
El análisis anterior muestra que cuando proyectamos los datos x a z, mediante la
transformación lineal W, la representación resultante tiene una matriz de covarianza
diagonal (dada por Σ2 ), lo que implica inmediatamente que los elementos individuales de
z no están correlacionados entre sí.
Esta capacidad de PCA para transformar datos en una representación donde los elementos no están
correlacionados entre sí es una propiedad muy importante de PCA. Es un ejemplo simple de una
representación que intenta desenredar los factores de variación desconocidos que subyacen a los datos.
En el caso de PCA, este desenredo toma la forma de encontrar una rotación del espacio de entrada
(descrita por W) que alinea los principales ejes de varianza con la base del nuevo espacio de
representación asociado con z.
Si bien la correlación es una categoría importante de dependencia entre elementos de los datos,
también estamos interesados en aprender representaciones que desenreden formas más complicadas
de dependencias de características. Para ello, necesitaremos más de lo que se puede hacer con una
simple transformación lineal.
5.8.2 Agrupación de k­medias
Otro ejemplo de un algoritmo de aprendizaje de representación simple es el agrupamiento de k ­medias.
El algoritmo de agrupamiento de k­medias divide el conjunto de entrenamiento en k grupos diferentes
de ejemplos que están cerca uno del otro. Por lo tanto, podemos pensar que el algoritmo proporciona
un vector de código unidireccional k­dimensional h que representa una entrada x. Si x pertenece al
grupo i, entonces hi = 1 y todas las demás entradas de la representación h son
cero.
El código único proporcionado por la agrupación de k­medias es un ejemplo de representación
dispersa, porque la mayoría de sus entradas son cero para cada entrada. Más adelante, desarrollaremos
otros algoritmos que aprendan representaciones dispersas más flexibles, donde más de una entrada
puede ser distinta de cero para cada entrada x. Los códigos one­hot son un ejemplo extremo de
representaciones dispersas que pierden muchos de los beneficios de una representación distribuida. El
código one­hot aún confiere algunas ventajas estadísticas (naturalmente transmite la idea de que todos
los ejemplos en el mismo grupo son similares entre sí) y confiere la ventaja computacional de que la
representación completa puede ser capturada por un único número entero.
El algoritmo k­means funciona inicializando k centroides diferentes {μ(1) , . . . , µ (k)} a diferentes
valores, luego alternando entre dos pasos diferentes hasta la convergencia.
En un paso, cada ejemplo de entrenamiento se asigna al grupo i, donde i es el índice de (i) (i) y se
centroide
µ más
cercano . En el
(j) se asigna al grupo i. mediaactualiza
de todosallos
ejemplos
de entrenamiento
x otro paso, cada centroide µ
150
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Una dificultad relacionada con la agrupación es que el problema de la agrupación está inherentemente
mal planteado, en el sentido de que no existe un criterio único que mida qué tan bien corresponde una
agrupación de datos al mundo real. Podemos medir propiedades de la agrupación, como la distancia
euclidiana promedio desde el centroide de un grupo hasta los miembros del grupo. Esto nos permite
saber qué tan bien podemos reconstruir los datos de entrenamiento a partir de las asignaciones del
grupo. No sabemos qué tan bien se corresponden las asignaciones de grupos con las propiedades del
mundo real. Además, puede haber muchos agrupamientos diferentes que se correspondan bien con
alguna propiedad del mundo real. Podemos esperar encontrar un agrupamiento que se relacione con una
característica, pero obtener un agrupamiento diferente, igualmente válido, que no sea relevante para
nuestra tarea. Por ejemplo, supongamos que ejecutamos dos algoritmos de agrupamiento en un conjunto
de datos que consta de imágenes de camiones rojos, imágenes de autos rojos, imágenes de camiones
grises e imágenes de autos grises. Si le pedimos a cada algoritmo de agrupamiento que encuentre dos
grupos, un algoritmo puede encontrar un grupo de automóviles y un grupo de camiones, mientras que
otro puede encontrar un grupo de vehículos rojos y un grupo de vehículos grises. Supongamos que
también ejecutamos un tercer algoritmo de agrupación, que puede determinar el número de agrupaciones.
Esto puede asignar los ejemplos a cuatro grupos: automóviles rojos, camiones rojos, automóviles grises
y camiones grises. Esta nueva agrupación ahora al menos captura información sobre ambos atributos,
pero ha perdido información sobre la similitud. Los autos rojos están en un grupo diferente de los autos
grises, al igual que están en un grupo diferente de los camiones grises. El resultado del algoritmo de
agrupamiento no nos dice que los autos rojos sean más similares a los autos grises que a los camiones
grises. Son diferentes de ambas cosas, y eso es todo lo que sabemos.
Estas cuestiones ilustran algunas de las razones por las que podemos preferir una representación
distribuida a una representación única. Una representación distribuida podría tener dos atributos para
cada vehículo: uno que represente su color y otro que represente si es un automóvil o un camión. Todavía
no está del todo claro cuál es la representación distribuida óptima (¿cómo puede el algoritmo de
aprendizaje saber si los dos atributos que nos interesan son el color y el automóvil contra camión en lugar
del fabricante y la edad?), pero tener muchos atributos reduce la carga sobre el algoritmo para adivinar
qué atributo nos interesa y nos permite medir la similitud entre objetos de manera detallada comparando
muchos atributos en lugar de simplemente probar si un atributo coincide.
5.9 Descenso del gradiente estocástico
Casi todo el aprendizaje profundo se basa en un algoritmo muy importante: el descenso de gradiente
estocástico o SGD. El descenso del gradiente estocástico es una extensión del
151
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Algoritmo de descenso de gradiente presentado en la sección 4.3.
Un problema recurrente en el aprendizaje automático es que se necesitan grandes conjuntos de entrenamiento para
una buena generalización, pero los conjuntos de entrenamiento grandes también son más costosos desde el punto de vista
computacional.
La función de costo utilizada por un algoritmo de aprendizaje automático a menudo se descompone como
una suma de ejemplos de entrenamiento de alguna función de pérdida por ejemplo. Por ejemplo, la probabilidad
logarítmica condicional negativa de los datos de entrenamiento se puede escribir como
1
J(θ) = Ex,y
pˆdataL(x, y, θ) =
metro
m L(x (yo) y (i) , θ),
(5.96)
yo=1
donde L es la pérdida por ejemplo L(x, y, θ) = − log p(y | x; θ).
Para estas funciones de costos aditivos, el descenso de gradiente requiere computación
θJ (θ) =
1m
m
θL(x (i)
(5.97)
y (i) , θ). ,
yo=1
El costo computacional de esta operación es O(m). A medida que el tamaño del conjunto de entrenamiento
crece a miles de millones de ejemplos, el tiempo para dar un solo paso de gradiente se vuelve prohibitivamente
largo.
La idea del descenso del gradiente estocástico es que el gradiente es una expectativa.
La expectativa puede estimarse aproximadamente utilizando un pequeño conjunto de muestras.
Específicamente, en cada paso del algoritmo, podemos muestrear un minilote de ejemplos B = {x (1) x (m
,... ,
extraídos uniformemente
del conjunto de entrenamiento. El tamaño del minilote m
)}
normalmente se elige
para que sea un número relativamente pequeño de ejemplos, que van desde 1 hasta unos pocos cientos.
Fundamentalmente, m
generalmente se mantiene fijo a medida que crece el tamaño del conjunto de
entrenamiento m . Podemos ajustar un conjunto de entrenamiento con miles de millones de ejemplos usando
actualizaciones calculadas en solo cien ejemplos.
La estimación del gradiente se forma como
g=
1
m
θ
m L(x (yo) y (i) , θ). ,
(5.98)
yo=1
utilizando ejemplos del minibatch B. El algoritmo de descenso de gradiente estocástico sigue el gradiente
estimado cuesta abajo:
θ←θ−
donde
es la tasa de aprendizaje.
152
g,
(5,99)
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
El descenso de gradientes en general se ha considerado a menudo lento o poco fiable. En el pasado,
la aplicación del descenso de gradiente a problemas de optimización no convexos se consideraba
imprudente o carente de principios. Hoy sabemos que los modelos de aprendizaje automático descritos en
la parte II funcionan muy bien cuando se entrenan con descenso de gradiente. Es posible que no se
garantice que el algoritmo de optimización llegue ni siquiera a un mínimo local en un período de tiempo
razonable, pero a menudo encuentra un valor muy bajo de la función de costo con la suficiente rapidez
como para que sea útil.
El descenso de gradiente estocástico tiene muchos usos importantes fuera del contexto del aprendizaje
profundo. Es la forma principal de entrenar grandes modelos lineales en conjuntos de datos muy grandes.
Para un tamaño de modelo fijo, el costo por actualización de SGD no depende del tamaño del conjunto de
entrenamiento m. En la práctica, a menudo utilizamos un modelo más grande a medida que aumenta el
tamaño del conjunto de entrenamiento, pero no estamos obligados a hacerlo. La cantidad de actualizaciones
necesarias para alcanzar la convergencia generalmente aumenta con el tamaño del conjunto de
entrenamiento. Sin embargo, a medida que m se acerca al infinito, el modelo eventualmente convergerá a
su mejor error de prueba posible antes de que SGD haya muestreado todos los ejemplos del conjunto de
entrenamiento. Aumentar más m no ampliará la cantidad de tiempo de entrenamiento necesario para
alcanzar el mejor error de prueba posible del modelo . Desde este punto de vista, se puede argumentar
que el costo asintótico de entrenar un modelo con SGD es O(1) en función de m.
Antes de la llegada del aprendizaje profundo, la principal forma de aprender modelos no lineales era
utilizar el truco del kernel en combinación con un modelo lineal. Muchos algoritmos de aprendizaje del
,X
núcleo requieren la construcción de una matriz m×m Gi,j = k(x (i) (j) ). La construcción
de esta matriz tiene
un costo computacional O(m2), lo cual es claramente indeseable para conjuntos de datos con miles de
millones de ejemplos. En el mundo académico, a partir de 2006, el aprendizaje profundo fue inicialmente
interesante porque podía generalizarse a nuevos ejemplos mejor que los algoritmos de la competencia
cuando se entrenaba en conjuntos de datos de tamaño mediano con decenas de miles de ejemplos. Poco
después, el aprendizaje profundo despertó un interés adicional en la industria porque proporcionaba una
forma escalable de entrenar modelos no lineales en grandes conjuntos de datos.
El descenso del gradiente estocástico y muchas de sus mejoras se describen con más detalle
en el capítulo 8.
5.10 Creación de un algoritmo de aprendizaje automático
Casi todos los algoritmos de aprendizaje profundo pueden describirse como casos particulares de una
receta bastante simple: combinar una especificación de un conjunto de datos, una función de costos, un
procedimiento de optimización y un modelo.
Por ejemplo, el algoritmo de regresión lineal combina un conjunto de datos que consta de
153
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
X e y, la función de costos
J(w, b) = −Ex,y
pˆregistro de datos pmodel (y | x),
la especificación del modelo pmodel(y | x) = N (y; x
(5.100)
w + b, 1) y, en la mayoría de los casos, el algoritmo de
optimización definido resolviendo dónde el gradiente del costo es cero usando las ecuaciones normales.
Al darnos cuenta de que podemos reemplazar cualquiera de estos componentes en su mayoría de forma independiente
de los demás podemos obtener una variedad muy amplia de algoritmos.
La función de costo generalmente incluye al menos un término que hace que el proceso de
aprendizaje realice una estimación estadística. La función de costos más común es la probabilidad
logarítmica negativa, de modo que minimizar la función de costos provoca una estimación de máxima
verosimilitud.
La función de costos también puede incluir términos adicionales, como términos de regularización.
Por ejemplo, podemos agregar una caída de peso a la función de costo de regresión lineal para obtener
J(w, b) = λ||w||2 2 − Ej,y
pˆregistro de datos pmodel(y | x).
(5.101)
Esto todavía permite la optimización de formato cerrado.
Si cambiamos el modelo para que sea no lineal, entonces la mayoría de las funciones de costos ya no
se pueden optimizar en forma cerrada. Esto requiere que elijamos un procedimiento de optimización numérica
iterativa, como el descenso de gradiente.
La receta para construir un algoritmo de aprendizaje combinando modelos, costos y algoritmos de optimización admite
el aprendizaje tanto supervisado como no supervisado. El ejemplo de regresión lineal muestra cómo respaldar el aprendizaje
supervisado. El aprendizaje no supervisado se puede respaldar definiendo un conjunto de datos que contenga solo X y
proporcionando un costo y un modelo no supervisados apropiados. Por ejemplo, podemos obtener el primer vector PCA
especificando que nuestra función de pérdida es
J(w) = Ex
pˆdatos ||x − r(x; w)||2 2
(5.102)
mientras que nuestro modelo está definido para tener w con norma uno y función de reconstrucción
r(x) = w
xw.
En algunos casos, la función de costos puede ser una función que en realidad no podemos evaluar por
razones computacionales. En estos casos, aún podemos minimizarlo aproximadamente usando optimización
numérica iterativa siempre que tengamos alguna forma de aproximar sus gradientes.
La mayoría de los algoritmos de aprendizaje automático utilizan esta receta, aunque puede que no sea obvia de
inmediato. Si un algoritmo de aprendizaje automático parece especialmente único o
154
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Diseñado a mano, generalmente se puede entender que utiliza un optimizador de casos especiales.
Algunos modelos, como los árboles de decisión o k­medias, requieren optimizadores de casos especiales
porque sus funciones de costos tienen regiones planas que las hacen inapropiadas para la minimización
mediante optimizadores basados en gradientes. Reconocer que la mayoría de los algoritmos de
aprendizaje automático se pueden describir usando esta receta ayuda a ver los diferentes algoritmos
como parte de una taxonomía de métodos para realizar tareas relacionadas que funcionan por razones
similares, en lugar de como una larga lista de algoritmos cada uno de los cuales tiene justificaciones separadas.
5.11 Desafíos que motivan el aprendizaje profundo
Los algoritmos simples de aprendizaje automático descritos en este capítulo funcionan muy bien en una
amplia variedad de problemas importantes. Sin embargo, no han logrado resolver los problemas centrales
de la IA, como el reconocimiento de voz o el reconocimiento de objetos.
El desarrollo del aprendizaje profundo estuvo motivado en parte por el fracaso de los algoritmos
tradicionales a la hora de generalizarse bien en este tipo de tareas de IA.
Esta sección trata sobre cómo el desafío de generalizar a nuevos ejemplos se vuelve
exponencialmente más difícil cuando se trabaja con datos de alta dimensión, y cómo los mecanismos
utilizados para lograr la generalización en el aprendizaje automático tradicional son insuficientes para
aprender funciones complicadas en espacios de alta dimensión. Estos espacios también suelen imponer
elevados costes computacionales. El aprendizaje profundo fue diseñado para superar estos y otros
obstáculos.
5.11.1 La maldición de la dimensionalidad
Muchos problemas de aprendizaje automático se vuelven extremadamente difíciles cuando la cantidad de
dimensiones en los datos es alta. Este fenómeno se conoce como la maldición de la dimensionalidad. De
particular preocupación es que el número de posibles configuraciones distintas de un conjunto de variables
aumenta exponencialmente a medida que aumenta el número de variables.
155
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Figura 5.9: A medida que aumenta el número de dimensiones relevantes de los datos (de izquierda a
derecha), el número de configuraciones de interés puede crecer exponencialmente. (Izquierda) En
este ejemplo unidimensional, tenemos una variable para la cual solo nos interesa distinguir 10 regiones
de interés. Con suficientes ejemplos dentro de cada una de estas regiones (cada región corresponde
a una celda en la ilustración), los algoritmos de aprendizaje pueden generalizarse correctamente fácilmente.
Una forma sencilla de generalizar es estimar el valor de la función objetivo dentro de cada región (y
posiblemente interpolar entre regiones vecinas). (Centro)Con 2 dimensiones es más difícil distinguir 10
valores diferentes de cada variable. Necesitamos realizar un seguimiento de hasta 10 × 10 = 100
regiones, y necesitamos al menos esa cantidad de ejemplos para cubrir todas esas regiones. (Derecha)
Con 3 dimensiones, esto crece a 103 = 1000 regiones y al menos esa cantidad de ejemplos. Para
distinguir las dimensiones d y los valores v a lo largo de cada eje, parece que necesitamos la
dimensionalidad O(v . Figura d ) regiones y ejemplos. Este es un ejemplo de la maldición de
gentilmente proporcionada por Nicolas Chapados.
La maldición de la dimensionalidad surge en muchos lugares de la informática, y
especialmente en el aprendizaje automático.
Un desafío que plantea la maldición de la dimensionalidad es un desafío estadístico.
Como se ilustra en la figura 5.9, surge un desafío estadístico porque el número de configuraciones
posibles de x es mucho mayor que el número de ejemplos de entrenamiento.
Para entender el problema, consideremos que el espacio de entrada está organizado en una cuadrícula,
como en la figura. Podemos describir un espacio de baja dimensión con una pequeña cantidad de
celdas de cuadrícula que están ocupadas en su mayoría por datos. Al generalizar a un nuevo punto de
datos, normalmente podemos saber qué hacer simplemente inspeccionando los ejemplos de
entrenamiento que se encuentran en la misma celda que la nueva entrada. Por ejemplo, si estimamos
la densidad de probabilidad en algún punto x, podemos simplemente devolver el número de ejemplos
de entrenamiento en la misma celda de volumen unitario que x, dividido por el número total de ejemplos de entrenamient
Si deseamos clasificar un ejemplo, podemos devolver la clase más común de ejemplos de entrenamiento
en la misma celda. Si estamos haciendo una regresión, podemos promediar los valores objetivo
observados en los ejemplos de esa celda. Pero ¿qué pasa con las células de las que no hemos visto
ningún ejemplo? Debido a que en espacios de alta dimensión la cantidad de configuraciones es enorme,
mucho mayor que nuestra cantidad de ejemplos, una celda de cuadrícula típica no tiene ningún ejemplo
de entrenamiento asociado. ¿Cómo podríamos decir algo?
156
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
¿Tiene sentido estas nuevas configuraciones? Muchos algoritmos tradicionales de aprendizaje
automático simplemente suponen que la salida en un nuevo punto debe ser aproximadamente
la misma que la salida en el punto de entrenamiento más cercano.
5.11.2 Regularización de Constancia y Suavidad Local
Para poder generalizar bien, los algoritmos de aprendizaje automático deben guiarse por creencias
previas sobre qué tipo de función deberían aprender. Anteriormente, hemos visto estos antecedentes
incorporados como creencias explícitas en forma de distribuciones de probabilidad sobre los parámetros
del modelo. De manera más informal, también podemos discutir que las creencias previas influyen
directamente en la función misma y sólo actúan indirectamente sobre los parámetros a través de su
efecto sobre la función. Además, discutimos informalmente que las creencias previas se expresan
implícitamente, al elegir algoritmos que están sesgados hacia la elección de una clase de funciones
sobre otra, aunque estos sesgos pueden no expresarse (o incluso no ser posibles de expresar) en
términos de una distribución de probabilidad que represente nuestra Grado de creencia en diversas
funciones.
Entre los “priores” implícitos más utilizados se encuentra el previo de suavidad o el previo
de constancia local. Este anterior establece que la función que aprendemos no debería cambiar
mucho dentro de una región pequeña.
Muchos algoritmos más simples se basan exclusivamente en esto antes de generalizarse bien y,
como resultado, no logran adaptarse a los desafíos estadísticos involucrados en la resolución de tareas
a nivel de IA. A lo largo de este libro, describiremos cómo el aprendizaje profundo introduce antecedentes
adicionales (explícitos e implícitos) para reducir el error de generalización en tareas sofisticadas. Aquí
explicamos por qué la suavidad previa por sí sola es insuficiente para estas tareas.
Hay muchas formas diferentes de expresar implícita o explícitamente una creencia previa de que la
función aprendida debe ser suave o localmente constante. Todos estos métodos diferentes están
diseñados para fomentar el proceso de aprendizaje para aprender una función f
condición
f
(x) ≈ f
(x +
que satisfaga la
)
para la mayoría de las configuraciones x y pequeños cambios
(5.103)
. En otras palabras, si
conocemos una buena respuesta para una entrada x (por ejemplo, si x es un ejemplo de
entrenamiento etiquetado), entonces esa respuesta probablemente sea buena en la vecindad
de x. Si tenemos varias buenas respuestas en algún vecindario, las combinaríamos (mediante
alguna forma de promedio o interpolación) para producir una respuesta que concuerde con la
mayor cantidad posible de ellas.
Un ejemplo extremo del enfoque de constancia local es la familia de algoritmos de aprendizaje de
k vecinos más cercanos . Estos predictores son literalmente constantes en cada
157
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
región que contiene todos los puntos x que tienen el mismo conjunto de k vecinos más cercanos
en el conjunto de entrenamiento. Para k = 1, el número de regiones distinguibles no puede ser
mayor que el número de ejemplos de entrenamiento.
Mientras que el algoritmo de k vecinos más cercanos copia la salida de ejemplos de
entrenamiento cercanos, la mayoría de las máquinas del kernel interpolan entre las salidas del
conjunto de entrenamiento asociadas con ejemplos de entrenamiento cercanos. Una clase
importante de núcleos es la familia de núcleos locales donde k(u, v) es grande cuando u = v y
disminuye a medida que u y v se alejan entre sí. Se puede considerar un kernel local como una
función de similitud que realiza una coincidencia de plantillas, midiendo qué tan cerca está un
moderna para el aprendizaje profundo se ejemplo de prueba x (i) . Gran parte de la motivación
asemeja a cada ejemplo de entrenamiento x se deriva del estudio de las limitaciones de la
coincidencia de plantillas locales y cómo los modelos profundos pueden tener éxito en los casos
en que la coincidencia de plantillas locales falla (Bengio et al., 2006b).
Los árboles de decisión también sufren las limitaciones del aprendizaje basado
exclusivamente en la suavidad porque dividen el espacio de entrada en tantas regiones como
hojas y utilizan un parámetro separado (o a veces muchos parámetros para extensiones de
árboles de decisión) en cada región. Si la función objetivo requiere que un árbol con al menos n
hojas se represente con precisión, entonces se requieren al menos n ejemplos de entrenamiento
para ajustarse al árbol. Se necesita un múltiplo de n para lograr cierto nivel de confianza
estadística en el resultado previsto.
En general, para distinguir regiones O(k) en el espacio de entrada, todos estos métodos
requieren ejemplos O(k) . Normalmente hay parámetros O (k) , con parámetros O (1) asociados
con cada una de las regiones O (k) . El caso de un escenario de vecino más cercano, donde cada
ejemplo de entrenamiento se puede utilizar para definir como máximo una región, se ilustra en la
figura 5.10.
¿Existe alguna manera de representar una función compleja que tenga muchas
más regiones para distinguir que la cantidad de ejemplos de entrenamiento?
Claramente, asumir sólo la suavidad de la función subyacente no permitirá que el alumno haga eso.
Por ejemplo, imagine que la función objetivo es una especie de tablero de ajedrez. Un
tablero de ajedrez contiene muchas variaciones, pero tienen una estructura simple.
Imagínese lo que sucede cuando la cantidad de ejemplos de entrenamiento es sustancialmente
menor que la cantidad de cuadrados blancos y negros en el tablero de ajedrez. Basándonos
únicamente en la generalización local y la suavidad o constancia local previa, tendríamos la
garantía de adivinar correctamente el color de un nuevo punto si se encuentra dentro del mismo
cuadrado del tablero de ajedrez como ejemplo de entrenamiento. No hay garantía de que el
alumno pueda extender correctamente el patrón de tablero de ajedrez a puntos que se
encuentran en cuadrados que no contienen ejemplos de entrenamiento. Solo con este previo,
la única información que nos dice un ejemplo es el color de su cuadrado, y la única forma de obtener los colore
158
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Figura 5.10: Ilustración de cómo el algoritmo del vecino más cercano divide el espacio de entrada
en regiones. Un ejemplo (representado aquí por un círculo) dentro de cada región define el límite
de la región (representado aquí por las líneas). El valor de y asociado con cada ejemplo define
cuál debe ser la salida para todos los puntos dentro de la región correspondiente. Las regiones
definidas por la coincidencia del vecino más cercano forman un patrón geométrico llamado
diagrama de Voronoi. El número de estas regiones contiguas no puede crecer más rápido que el
número de ejemplos de formación. Si bien esta figura ilustra específicamente el comportamiento
del algoritmo vecino más cercano, otros algoritmos de aprendizaje automático que se basan
exclusivamente en la suavidad local previa a la generalización exhiben comportamientos similares:
cada ejemplo de entrenamiento solo informa al alumno sobre cómo generalizar en algún vecindario
inmediatamente circundante a ese ejemplo.
159
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Todo el derecho del tablero de ajedrez es cubrir cada una de sus celdas con al menos un ejemplo.
El supuesto de suavidad y los algoritmos de aprendizaje no paramétricos asociados funcionan
extremadamente bien siempre que haya suficientes ejemplos para que el algoritmo de aprendizaje
observe puntos altos en la mayoría de los picos y puntos bajos en la mayoría de los valles de la
verdadera función subyacente que se va a aprender. Esto suele ser cierto cuando la función que se
va a aprender es lo suficientemente fluida y varía en pocas dimensiones.
En dimensiones altas, incluso una función muy suave puede cambiar suavemente pero de manera
diferente a lo largo de cada dimensión. Si la función además se comporta de manera diferente en
diferentes regiones, puede resultar extremadamente complicado describirla con un conjunto de
ejemplos de entrenamiento. Si la función es complicada (queremos distinguir una gran cantidad
de regiones en comparación con la cantidad de ejemplos), ¿hay alguna esperanza de generalizar
bien?
La respuesta a ambas preguntas (si es posible representar una función complicada
de manera eficiente y si es posible que la función estimada se generalice bien a nuevos
datos de entrada) es sí. La idea clave es que un gran número de regiones, por ejemplo,
k ), se puede definir con O(k) ejemplos, siempre y cuando
O(2, a medida que introducimos
algunas dependencias entre las regiones a través de suposiciones adicionales sobre los
datos subyacentes que generan la distribución. De esta manera, podemos generalizar
de forma no local (Bengio y Monperrus). , 2005; Bengio et al., 2006c). Muchos algoritmos
de aprendizaje profundo diferentes proporcionan suposiciones implícitas o explícitas que
son razonables para una amplia gama de tareas de IA con el fin de capturar estas ventajas.
Otros enfoques del aprendizaje automático a menudo parten de suposiciones más sólidas y
específicas para cada tarea . Por ejemplo, podríamos resolver fácilmente la tarea del tablero de
ajedrez suponiendo que la función objetivo es periódica. Por lo general, no incluimos supuestos
tan sólidos y específicos de tareas en las redes neuronales para que puedan generalizarse a una
variedad mucho más amplia de estructuras. Las tareas de IA tienen una estructura demasiado
compleja para limitarse a propiedades simples especificadas manualmente, como la periodicidad,
por lo que queremos algoritmos de aprendizaje que incorporen suposiciones de propósito más general.
La idea central del aprendizaje profundo es que asumimos que los datos fueron generados por
la composición de factores o características, potencialmente en múltiples niveles de una jerarquía.
Muchas otras suposiciones igualmente genéricas pueden mejorar aún más los algoritmos de
aprendizaje profundo. Estos supuestos aparentemente suaves permiten una ganancia exponencial
en la relación entre el número de ejemplos y el número de regiones que pueden distinguirse.
Estas ganancias exponenciales se describen con mayor precisión en las secciones 6.4.1, 15.4 y
15.5. Las ventajas exponenciales conferidas por el uso de representaciones distribuidas profundas
contrarrestan los desafíos exponenciales que plantea la maldición de la dimensionalidad.
160
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
5.11.3 Aprendizaje múltiple
Un concepto importante que subyace a muchas ideas en el aprendizaje automático es el de un
colector.
Una variedad es una región conectada. Matemáticamente, es un conjunto de puntos, asociados
con una vecindad alrededor de cada punto. Desde cualquier punto dado, el
La variedad localmente parece ser un espacio euclidiano. En la vida cotidiana experimentamos
la superficie del mundo como un plano 2­D, pero en realidad es una variedad esférica en
Espacio tridimensional.
La definición de una vecindad que rodea cada punto implica la existencia
de transformaciones que se pueden aplicar para moverse en el colector desde una posición
a uno vecino. En el ejemplo de la superficie del mundo como una variedad, se puede
camine hacia el norte, sur, este u oeste.
Aunque existe un significado matemático formal para el término “múltiple”, en
aprendizaje automático tiende a usarse de manera más vaga para designar un conjunto conectado
de puntos que pueden aproximarse bien considerando sólo un pequeño número de
grados de libertad, o dimensiones, incrustados en un espacio de dimensiones superiores. Cada
La dimensión corresponde a una dirección de variación local. Consulte la figura 5.11 para ver una
Ejemplo de datos de entrenamiento que se encuentran cerca de una variedad unidimensional incrustada
en un espacio bidimensional. En el contexto del aprendizaje automático, permitimos la dimensionalidad.
del colector varíe de un punto a otro. Esto sucede a menudo cuando un
múltiple se cruza consigo mismo. Por ejemplo, una figura de ocho es una variedad que tiene un solo
dimensión en la mayoría de los lugares, pero dos dimensiones en la intersección en el centro.
2.5
2.0
1.5
1.0
0,5
0.0
−0,5
−1,0
0,5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Figura 5.11: Datos muestreados de una distribución en un espacio bidimensional que en realidad es
concentrado cerca de una variedad unidimensional, como una cuerda retorcida. La línea continua indica
la variedad subyacente que el alumno debe inferir.
161
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Muchos problemas de aprendizaje automático parecen irremediables si esperamos que la máquina
Algoritmo de aprendizaje para aprender funciones con variaciones interesantes en todo R. Los
norte
.
algoritmos de aprendizaje de colectores superan este obstáculo asumiendo que la mayor parte de R
norte
consta de entradas no válidas y que las entradas interesantes ocurren sólo a lo largo de una colección
de colectores que contienen un pequeño subconjunto de puntos, con variaciones interesantes. en la
salida de la función aprendida que ocurre solo a lo largo de direcciones que se encuentran en la
variedad, o con variaciones interesantes que ocurren solo cuando nos movemos de una variedad a
otra. El aprendizaje múltiple se introdujo en el caso de datos de valores continuos y el entorno de
aprendizaje no supervisado, aunque esta idea de concentración de probabilidad puede generalizarse
tanto a datos discretos como al entorno de aprendizaje supervisado: el supuesto clave sigue siendo
que la masa de probabilidad está altamente concentrada.
La suposición de que los datos se encuentran a lo largo de una variedad de baja dimensión puede
no siempre ser correcta o útil. Sostenemos que en el contexto de las tareas de IA, como aquellas que
implican el procesamiento de imágenes, sonidos o texto, la suposición múltiple es al menos
aproximadamente correcta. La evidencia a favor de este supuesto consta de dos categorías de
observaciones.
La primera observación a favor de la hipótesis múltiple es que la distribución de probabilidad entre
imágenes, cadenas de texto y sonidos que ocurren en la vida real está altamente concentrada.
Básicamente, el ruido uniforme nunca se parece a las entradas estructuradas de estos dominios. La
figura 5.12 muestra cómo, en cambio, los puntos muestreados uniformemente se parecen a los patrones
de estática que aparecen en los televisores analógicos cuando no hay señal disponible. De manera
similar, si genera un documento eligiendo letras uniformemente al azar, ¿cuál es la probabilidad de
obtener un texto significativo en inglés? Casi cero, de nuevo, porque la mayoría de las secuencias
largas de letras no corresponden a una secuencia del lenguaje natural: la distribución de secuencias
del lenguaje natural ocupa un volumen muy pequeño en el espacio total de secuencias de letras.
162
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Figura 5.12: El muestreo de imágenes uniformemente al azar (seleccionando aleatoriamente cada
píxel según una distribución uniforme) da lugar a imágenes ruidosas. Aunque existe una probabilidad
distinta de cero de generar una imagen de una cara o cualquier otro objeto que se encuentre
frecuentemente en las aplicaciones de IA, nunca observamos que esto suceda en la práctica. Esto
sugiere que las imágenes encontradas en las aplicaciones de IA ocupan una proporción insignificante
del volumen del espacio de la imagen.
Por supuesto, las distribuciones de probabilidad concentradas no son suficientes para
demostrar que los datos se encuentran en un número razonablemente pequeño de variedades.
También debemos establecer que los ejemplos que encontramos están conectados entre sí por otros
163
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
ejemplos, con cada ejemplo rodeado por otros ejemplos muy similares que se pueden
alcanzar aplicando transformaciones para atravesar la variedad. El segundo argumento a
favor de la hipótesis múltiple es que también podemos imaginar tales barrios y
transformaciones, al menos informalmente. En el caso de las imágenes, ciertamente
podemos pensar en muchas transformaciones posibles que nos permiten trazar una
variedad en el espacio de la imagen: podemos atenuar o aumentar gradualmente las luces,
mover o rotar gradualmente los objetos en la imagen, alterar gradualmente los colores de la
imagen. superficies de objetos, etc. Sigue siendo probable que existan múltiples variedades
involucradas en la mayoría de las aplicaciones. Por ejemplo, la variedad de imágenes de
rostros humanos puede no estar conectada con la variedad de imágenes de caras de gatos.
Estos experimentos mentales que respaldan las múltiples hipótesis transmiten algunas razones
intuitivas que las respaldan. Experimentos más rigurosos (Cayton, 2005; Narayanan y Mitter, 2010;
Schölkopf et al., 1998; Roweis y Saul, 2000; Tenenbaum et al., 2000; Brand, 2003; Belkin y Niyogi,
2003; Donoho y Grimes, 2003; Weinberger y Saul, 2004) apoyan claramente la hipótesis de una gran
clase de conjuntos de datos de interés en IA.
Cuando los datos se encuentran en una variedad de baja dimensión, puede ser más natural
que los algoritmos de aprendizaje automático representen los datos en términos de coordenadas
en la variedad, en lugar de en términos de coordenadas en R n. En la vida cotidiana, podemos
pensar en las carreteras como colectores unidimensionales incrustados en un espacio
tridimensional. Damos direcciones a direcciones específicas en términos de números de
dirección a lo largo de estas carreteras 1­D, no en términos de coordenadas en el espacio 3­D.
Extraer estas múltiples coordenadas es un desafío, pero promete mejorar muchos algoritmos de
aprendizaje automático. Este principio general se aplica en muchos contextos. La Figura 5.13
muestra la estructura múltiple de un conjunto de datos que consta de caras. Al final de este libro,
habremos desarrollado los métodos necesarios para aprender una estructura tan múltiple. En la
figura 20.6 veremos cómo un algoritmo de aprendizaje automático puede lograr este objetivo con éxito.
Con esto concluye la parte I, que ha proporcionado los conceptos básicos de
matemáticas y aprendizaje automático que se emplean en las partes restantes del
libro. Ahora está preparado para embarcarse en su estudio del aprendizaje profundo.
164
Machine Translated by Google
CAPÍTULO 5. FUNDAMENTOS DEL APRENDIZAJE MÁQUINA
Figura 5.13: Ejemplos de entrenamiento del QMUL Multiview Face Dataset (Gong et al., 2000) para los cuales se
pidió a los sujetos que se movieran de tal manera que cubrieran la variedad bidimensional correspondiente a dos
ángulos de rotación. Nos gustaría aprender algoritmos para poder descubrir y desenredar coordenadas tan
múltiples. La figura 20.6 ilustra tal hazaña.
165
Machine Translated by Google
Parte II
Redes profundas: modernas
Prácticas
166
Machine Translated by Google
Esta parte del libro resume el estado del aprendizaje profundo moderno tal como está.
Se utiliza para resolver aplicaciones prácticas.
El aprendizaje profundo tiene una larga historia y muchas aspiraciones. Se han propuesto
varios enfoques que aún no han dado frutos. Aún quedan por alcanzar varios objetivos ambiciosos .
Estas ramas menos desarrolladas del aprendizaje profundo aparecen en la parte final del libro.
Esta parte se centra sólo en aquellos enfoques que son esencialmente tecnologías de trabajo.
tecnologías que ya se utilizan mucho en la industria.
El aprendizaje profundo moderno proporciona un marco muy poderoso para el aprendizaje
supervisado. Al agregar más capas y más unidades dentro de una capa, una red profunda puede
representar funciones de complejidad creciente. La mayoría de las tareas que consisten en mapear
un vector de entrada a un vector de salida, y que son fáciles de realizar rápidamente para una
persona, se pueden realizar mediante aprendizaje profundo, dados modelos suficientemente
grandes y conjuntos de datos suficientemente grandes de ejemplos de entrenamiento etiquetados.
Otras tareas, que no pueden describirse como asociar un vector a otro, o que son lo suficientemente
difíciles como para que una persona requiera tiempo para pensar y reflexionar para realizar la tarea,
permanecen más allá del alcance del aprendizaje profundo por ahora.
Esta parte del libro describe la tecnología central de aproximación de funciones paramétricas
que se encuentra detrás de casi todas las aplicaciones prácticas modernas del aprendizaje profundo.
Comenzamos describiendo el modelo de red profunda feedforward que se utiliza para representar
estas funciones. A continuación, presentamos técnicas avanzadas para la regularización y
optimización de dichos modelos. Escalar estos modelos a grandes entradas, como imágenes de
alta resolución o secuencias temporales largas, requiere especialización. Presentamos la red
convolucional para escalar a imágenes grandes y la red neuronal recurrente para procesar
secuencias temporales. Finalmente, presentamos pautas generales para la metodología práctica
involucrada en el diseño, construcción y configuración de una aplicación que involucra aprendizaje
profundo, y revisamos algunas de las aplicaciones del aprendizaje profundo.
Estos capítulos son los más importantes para un profesional: alguien que quiera comenzar a
implementar y utilizar algoritmos de aprendizaje profundo para resolver problemas del mundo real
actual.
167
Machine Translated by Google
Capítulo 6
Redes de retroalimentación profunda
Las redes de avance profundo, también llamadas redes neuronales de avance, o perceptrones
multicapa (MLP), son los modelos de aprendizaje profundo por excelencia.
El objetivo de una red feedforward es aproximar alguna función f
. Por ejemplo, para un
clasificador, y = f (x) asigna una entrada x a una categoría y. Una red feedforward define
un mapeo y = f(x; θ) y aprende el valor de los parámetros θ que dan como resultado la mejor
aproximación de la función.
Estos modelos se denominan avance porque la información fluye a través de la función
que se evalúa desde x, a través de los cálculos intermedios utilizados para definir f y,
finalmente, hasta la salida y. No existen conexiones de retroalimentación en las que las
salidas del modelo se retroalimenten a sí mismo. Cuando las redes neuronales de
retroalimentación se amplían para incluir conexiones de retroalimentación, se denominan
redes neuronales recurrentes, como se presenta en el capítulo 10.
Las redes de retroalimentación son de suma importancia para los profesionales del
aprendizaje automático . Forman la base de muchas aplicaciones comerciales importantes.
Por ejemplo, las redes convolucionales utilizadas para el reconocimiento de objetos a partir
de fotografías son un tipo especializado de red de avance. Las redes feedforward son un
trampolín conceptual en el camino hacia las redes recurrentes, que impulsan muchas
aplicaciones de lenguaje natural.
Las redes neuronales feedforward se denominan redes porque normalmente se
representan componiendo muchas funciones diferentes. El modelo está asociado con un
gráfico acíclico dirigido que describe cómo se componen las funciones juntas. Por ejemplo,
podríamos tener tres funciones f (1) , f (2) y f (3) conectadas en una cadena,
para formar f(x)
,
= f (3)(f (2)(f (1)(x). ))). Estas estructuras de cadena son las estructuras de redes neuronales
más utilizadas. En este caso, f (1) se denomina primera capa de la red, f (2) se denomina
segunda capa, y así sucesivamente. El general
168
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
La longitud de la cadena da la profundidad del modelo. De esta terminología surge el nombre de
“aprendizaje profundo”. La capa final de una red feedforward se llama capa de salida. Durante el
entrenamiento de la red neuronal, hacemos que f(x) coincida con f
(x).
Los datos de entrenamiento nos proporcionan ejemplos aproximados y ruidosos de f
(x) evaluados
en diferentes puntos de entrenamiento. Cada ejemplo x va acompañado de una etiqueta y ≈ f
(x).
Los ejemplos de entrenamiento especifican directamente qué debe hacer la capa de salida en cada punto
x; debe producir un valor cercano a y. El comportamiento de las otras capas no está especificado
directamente por los datos de entrenamiento. El algoritmo de aprendizaje debe decidir cómo utilizar esas
capas para producir el resultado deseado, pero los datos de entrenamiento no dicen qué debe hacer cada
capa individual. En cambio, el algoritmo de aprendizaje debe decidir cómo utilizar estas capas para
implementar mejor una aproximación de f
. Debido a que los datos de entrenamiento no muestran el
resultado deseado para cada una de estas capas, estas capas se denominan capas ocultas.
Finalmente, estas redes se denominan neuronales porque están inspiradas libremente
en la neurociencia. Cada capa oculta de la red suele tener un valor vectorial. La
dimensionalidad de estas capas ocultas determina el ancho del modelo. Se puede interpretar
que cada elemento del vector desempeña un papel análogo al de una neurona.
En lugar de pensar que la capa representa una única función de vector a vector, también
podemos pensar que la capa consta de muchas unidades que actúan en paralelo, cada una
de las cuales representa una función de vector a escalar. Cada unidad se parece a una
neurona en el sentido de que recibe información de muchas otras unidades y calcula su
propio valor de activación. La idea de utilizar muchas capas de representación con valores
vectoriales proviene de la neurociencia. La elección de las funciones f (i)(x) utilizadas para
calcular estas representaciones también está vagamente guiada por observaciones
neurocientíficas sobre las funciones que calculan las neuronas biológicas. Sin embargo, la
investigación moderna sobre redes neuronales se guía por muchas disciplinas matemáticas
y de ingeniería, y el objetivo de las redes neuronales no es modelar perfectamente el
cerebro. Es mejor pensar en las redes de retroalimentación como máquinas de aproximación
de funciones diseñadas para lograr una generalización estadística, extrayendo
ocasionalmente algunas ideas de lo que sabemos sobre el cerebro, en lugar de modelos de función cerebr
Una forma de entender las redes feedforward es comenzar con modelos lineales y considerar
cómo superar sus limitaciones. Los modelos lineales, como la regresión logística y la regresión
lineal, son atractivos porque pueden ajustarse de manera eficiente y confiable, ya sea en forma
cerrada o con optimización convexa. Los modelos lineales también tienen el defecto obvio de que la
capacidad del modelo está limitada a funciones lineales, por lo que el modelo no puede comprender
la interacción entre dos variables de entrada cualesquiera.
Para extender los modelos lineales para representar funciones no lineales de x,
podemos aplicar el modelo lineal no a x en sí sino a una entrada transformada φ(x), donde φ es una
169
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
transformación no lineal. De manera equivalente, podemos aplicar el truco del kernel descrito en
la sección 5.7.2 para obtener un algoritmo de aprendizaje no lineal basado en la aplicación implícita
del mapeo φ . Podemos pensar que φ proporciona un conjunto de características que describen x,
o proporciona una nueva representación para x.
La pregunta entonces es cómo elegir el mapeo φ.
1. Una opción es utilizar un φ muy genérico, como el φ de dimensión infinita que utilizan
implícitamente las máquinas con kernel basadas en el kernel RBF. Si φ(x) tiene una
dimensión suficientemente alta, siempre podemos tener suficiente capacidad para ajustar el
conjunto de entrenamiento, pero la generalización al conjunto de prueba a menudo sigue
siendo deficiente. Las asignaciones de características muy genéricas generalmente se basan
únicamente en el principio de suavidad local y no codifican suficiente información previa para
resolver problemas avanzados.
2. Otra opción es diseñar manualmente φ. Hasta la llegada del aprendizaje profundo, este era el
enfoque dominante. Este enfoque requiere décadas de esfuerzo humano para cada tarea por
separado, con profesionales especializados en diferentes dominios, como el reconocimiento de
voz o la visión por computadora, y con poca transferencia entre dominios.
3. La estrategia del aprendizaje profundo es aprender φ. En este enfoque, tenemos un modelo y
= f(x; θ, w) = φ(x; θ)
w. Ahora tenemos parámetros θ que usamos para aprender φ de una
amplia clase de funciones, y parámetros w que se asignan desde φ(x) a la salida deseada.
Este es un ejemplo de una red de retroalimentación profunda, en la que φ define una capa
oculta. Este enfoque es el único de los tres que renuncia a la convexidad del problema del
entrenamiento, pero los beneficios superan los daños. En este enfoque, parametrizamos la
representación como φ(x; θ) y utilizamos el algoritmo de optimización para encontrar el θ que
corresponde a una buena representación. Si lo deseamos, este enfoque puede capturar el
beneficio del primer enfoque al ser altamente genérico; lo hacemos utilizando una familia
muy amplia φ(x; θ). Este enfoque también puede aprovechar el beneficio del segundo enfoque.
Los profesionales humanos pueden codificar su conocimiento para ayudar a la generalización
diseñando familias φ(x; θ) que esperan que funcionen bien. La ventaja es que el diseñador
humano sólo necesita encontrar la familia de funciones generales correcta en lugar de encontrar
precisamente la función correcta.
Este principio general de mejorar modelos mediante el aprendizaje de características se extiende
más allá de las redes de avance descritas en este capítulo. Es un tema recurrente del aprendizaje
profundo que se aplica a todos los tipos de modelos descritos a lo largo de este libro.
Las redes feedforward son la aplicación de este principio al aprendizaje determinista.
170
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
asignaciones de xay que carecen de conexiones de retroalimentación. Otros modelos presentados
más adelante aplicarán estos principios para aprender mapeos estocásticos, aprender funciones con
retroalimentación y aprender distribuciones de probabilidad sobre un solo vector.
Comenzamos este capítulo con un ejemplo simple de una red feedforward. A continuación,
abordamos cada una de las decisiones de diseño necesarias para implementar una red feedforward.
En primer lugar, entrenar una red feedforward requiere tomar muchas de las mismas decisiones de
diseño que son necesarias para un modelo lineal: elegir el optimizador, la función de costos y la forma
de las unidades de salida. Revisamos estos conceptos básicos del aprendizaje basado en gradientes
y luego procedemos a confrontar algunas de las decisiones de diseño que son exclusivas de las redes
feedforward. Las redes de avance han introducido el concepto de capa oculta, y esto requiere que
elijamos las funciones de activación que se utilizarán para calcular los valores de la capa oculta.
También debemos diseñar la arquitectura de la red, incluido cuántas capas debe contener la red,
cómo deben conectarse estas capas entre sí y cuántas unidades debe haber en cada capa. El
aprendizaje en redes neuronales profundas requiere calcular los gradientes de funciones complicadas.
Presentamos el algoritmo de retropropagación y sus generalizaciones modernas, que pueden usarse
para calcular estos gradientes de manera eficiente.
Finalmente, cerramos con alguna perspectiva histórica.
6.1 Ejemplo: aprendizaje de XOR
Para hacer más concreta la idea de una red feedforward, comenzamos con un ejemplo de una red
feedforward en pleno funcionamiento con una tarea muy simple: aprender la función XOR.
La función XOR (“exclusiva o”) es una operación sobre dos valores binarios, x1 y x2.
Cuando exactamente uno de estos valores binarios es igual a 1, la función XOR devuelve
1. De lo contrario, devuelve 0. La función XOR proporciona la función objetivo y = f (x)
que queremos aprender. Nuestro modelo proporciona una función y = f(x;θ) y nuestro
algoritmo de aprendizaje adaptará los parámetros θ para hacer que f sea lo más similar
.
posible a f
En este ejemplo simple, no nos preocuparemos por la generalización estadística.
Queremos que nuestra red funcione correctamente en los cuatro puntos X = {[0, 0] ,
[0,1] , [1, 0] y [1, 1] }. Entrenaremos la red en estos cuatro puntos. El único desafío
es adaptarse al conjunto de entrenamiento.
Podemos tratar este problema como un problema de regresión y utilizar una función de pérdida
de error cuadrático medio. Elegimos esta función de pérdida para simplificar las matemáticas de este
ejemplo tanto como sea posible. En aplicaciones prácticas, MSE generalmente no es un
171
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Función de costo apropiada para modelar datos binarios. En la sección 6.2.2.2 se describen enfoques
más apropiados .
Evaluada en todo nuestro conjunto de entrenamiento, la función de pérdida de MSE es
1
J(θ) =
4x
X
(f
(x) − f(x; θ))
2
.
(6.1)
Ahora debemos elegir la forma de nuestro modelo, f (x;θ). Supongamos que elegimos
un modelo lineal, con θ formado por w y b. Nuestro modelo se define como
f(x; w, b) = x
w + b.
(6.2)
Podemos minimizar J(θ) en forma cerrada con respecto a w y b usando las ecuaciones
normales .
Después de resolver las ecuaciones normales, obtenemos w = 0 y b = 1 2. el lineal
el modelo simplemente genera 0,5 en todas partes. ¿Por qué pasó esto? La Figura 6.1
muestra cómo un modelo lineal no puede representar la función XOR. Una forma de resolver
este problema es utilizar un modelo que aprenda un espacio de características diferente en
el que un modelo lineal pueda representar la solución.
Específicamente, presentaremos una red feedforward muy simple con una capa oculta que contiene
dos unidades ocultas. Consulte la figura 6.2 para ver una ilustración de este modelo. Esta red
feedforward tiene un vector de unidades ocultas h que son
calculado por una función f (1)(x; W, c). Los valores de estas unidades ocultas se utilizan
luego como entrada para una segunda capa. La segunda capa es la capa de salida de la
red. La capa de salida sigue siendo solo un modelo de regresión lineal, pero ahora se aplica
a h en lugar de x. La red ahora contiene dos funciones encadenadas : h = f (1)(x;W, c) e y =
f (2)(h; w, b), siendo el modelo completo f(x;W, c, w, b) = f (2) (f (1)(x)).
¿Qué función debería calcular f (1) ? Los modelos lineales nos han resultado muy útiles hasta ahora,
y puede resultar tentador hacer que f (1) también sea lineal. Desafortunadamente, si eran
f (1) es lineal, entonces la red feedforward en su conjunto seguiría siendo una función lineal
de su entrada. Ignorando los términos del intercepto por el momento, supongamos f (1) (x)
= W x y f (2)(h) = h w . Entonces f (x) = w W x . Podríamos representar esta función
como f(x) = x w donde w = Ww.
Claramente, debemos usar una función no lineal para describir las características. La
mayoría de las redes neuronales lo hacen mediante una transformación afín controlada por
parámetros aprendidos, seguida de una función fija no lineal llamada función de activación.
Usamos esa estrategia aquí, definiendo h = g(W x + c), donde W proporciona los pesos
de una transformación lineal y c los sesgos. Anteriormente, para describir una regresión lineal
172
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Espacio h aprendido
espacio x original
1
x2
h2
1
0
0
1
0
0
x1
1
2
h1
Figura 6.1: Resolviendo el problema XOR aprendiendo una representación. Los números en negrita
impresos en el gráfico indican el valor que la función aprendida debe generar en cada punto.
(Izquierda) Un modelo lineal aplicado directamente a la entrada original no puede implementar el XOR
función. Cuando x1 = 0, la producción del modelo debe aumentar a medida que aumenta x2 . Cuando x1 = 1,
la producción del modelo debe disminuir a medida que x2 aumenta. Un modelo lineal debe aplicar un valor fijo.
coeficiente w2 a x2. Por lo tanto, el modelo lineal no puede utilizar el valor de x1 para cambiar
el coeficiente de x2 y no puede resolver este problema. (Derecha)En el espacio transformado
representado por las características extraídas por una red neuronal, un modelo lineal ahora puede resolver
el problema. En nuestra solución de ejemplo, los dos puntos que deben tener la salida 1 han sido
colapsado en un solo punto en el espacio de características. En otras palabras, las características no lineales tienen
mapeó x = [1, 0]
y x = [0, 1]
a un solo punto en el espacio de características, h = [1,0 ]
.
El modelo lineal ahora puede describir la función como creciente en h1 y decreciente en h2.
En este ejemplo, la motivación para aprender el espacio de características es solo hacer el modelo.
capacidad mayor para que pueda adaptarse al conjunto de entrenamiento. En aplicaciones más realistas, aprendido
Las representaciones también pueden ayudar al modelo a generalizarse.
173
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
y
y
w
h1
h
h2
W.
x1
X
x2
Figura 6.2: Un ejemplo de una red feedforward, dibujada en dos estilos diferentes. Específicamente,
esta es la red de avance que utilizamos para resolver el ejemplo XOR. Tiene una única capa oculta
que contiene dos unidades. (Izquierda) En este estilo, dibujamos cada unidad como un nodo en el gráfico.
Este estilo es muy explícito e inequívoco, pero para redes más grandes que este ejemplo puede
consumir demasiado espacio. (Derecha) En este estilo, dibujamos un nodo en el gráfico para cada
vector completo que representa las activaciones de una capa. Este estilo es mucho más compacto.
A veces anotamos los bordes de este gráfico con el nombre de los parámetros que describen la
relación entre dos capas. Aquí, indicamos que una matriz W describe la aplicación de x a h, y un
vector w describe la aplicación de h a y. Normalmente omitimos los parámetros de intersección
asociados con cada capa al etiquetar este tipo de dibujo.
En el modelo, utilizamos un vector de pesos y un parámetro de sesgo escalar para describir
una transformación afín de un vector de entrada a un escalar de salida. Ahora, describimos
una transformación afín de un vector x a un vector h, por lo que se necesita un vector
completo de parámetros de sesgo . La función de activación g normalmente se elige como
una función que se aplica elemento por elemento, con hi = g(x W:,i + ci). En las redes
neuronales modernas, la recomendación predeterminada es utilizar la unidad lineal
rectificada o ReLU (Jarrett et al., 2009; Nair y Hinton, 2010; Glorot et al., 2011a) definida
por la función de activación g(z) = max{ 0, z} representado en la figura 6.3.
Ahora podemos especificar nuestra red completa como
f(x;W, c, w, b) = w
máx{0,W
x + c} + b.
(6.3)
Ahora podemos especificar una solución al problema XOR. Dejar
W=
=
111 1 , c
0−1
174
,
(6.4)
(6.5)
Machine Translated by Google
gz(, )
0{
máximo
=
z}
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
0
0
z
Figura 6.3: La función de activación lineal rectificada. Esta función de activación es la función de
activación predeterminada recomendada para su uso con la mayoría de las redes neuronales
feedforward. La aplicación de esta función a la salida de una transformación lineal produce una transformación no lineal.
Sin embargo, la función sigue siendo muy cercana a la linealidad, en el sentido de que es una función lineal por
partes con dos partes lineales. Debido a que las unidades lineales rectificadas son casi lineales, conservan
muchas de las propiedades que hacen que los modelos lineales sean fáciles de optimizar con métodos basados
en gradientes. También conservan muchas de las propiedades que hacen que los modelos lineales se generalicen
bien. Un principio común en toda la informática es que podemos construir sistemas complicados a partir de
componentes mínimos. Así como la memoria de una máquina de Turing sólo necesita poder almacenar estados
0 o 1, podemos construir un aproximador de funciones universal a partir de funciones lineales rectificadas.
175
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
w=
1−2
,
(6.6)
y b = 0.
Ahora podemos ver la forma en que el modelo procesa un lote de entradas.
Sea X la matriz de diseño que contiene los cuatro puntos en el espacio de entrada
binaria, con un ejemplo por fila:
00
01
X=
.
(6.7)
10
11
El primer paso en la red neuronal es multiplicar la matriz de entrada por la matriz de
pesos de la primera capa:
00
11
.
XW =
(6.8)
11
22
A continuación, sumamos el vector de sesgo c, para obtener
0­1
101
0
21
.
(6.9)
En este espacio, todos los ejemplos se encuentran a lo largo de una línea con pendiente 1. A medida que
avanzamos a lo largo de esta línea, la salida debe comenzar en 0, luego subir a 1 y luego volver a bajar a 0.
Un modelo lineal no puede implementar tal función. Para terminar de calcular el valor
de h para cada ejemplo, aplicamos la transformación lineal rectificada:
00
10
10
21
.
(6.10)
Esta transformación ha cambiado la relación entre los ejemplos. Ya no se encuentran en una
sola línea. Como se muestra en la figura 6.1, ahora se encuentran en un espacio donde un
modelo lineal puede resolver el problema.
Terminamos multiplicando por el vector de peso w:
0
1
1
0
176
.
(6.11)
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
La red neuronal obtuvo la respuesta correcta para cada ejemplo del lote.
En este ejemplo, simplemente especificamos la solución y luego mostramos que obtuvo cero error.
En una situación real, puede haber miles de millones de parámetros de modelo y miles de millones de
ejemplos de entrenamiento, por lo que no se puede simplemente adivinar la solución como lo hicimos
aquí. En cambio, un algoritmo de optimización basado en gradientes puede encontrar parámetros que
produzcan muy pocos errores. La solución que describimos al problema XOR se encuentra en un mínimo
global de la función de pérdida, por lo que el descenso del gradiente podría converger a este punto.
Existen otras soluciones equivalentes al problema XOR que también podría encontrar el descenso de
gradiente. El punto de convergencia del descenso del gradiente depende de los valores iniciales de los
parámetros. En la práctica, el descenso de gradiente normalmente no encontraría soluciones limpias,
fáciles de entender y con valores enteros como la que presentamos aquí.
6.2 Aprendizaje basado en gradientes
Diseñar y entrenar una red neuronal no es muy diferente de entrenar cualquier otro modelo de
aprendizaje automático con descenso de gradiente. En la sección 5.10, describimos cómo
construir un algoritmo de aprendizaje automático especificando un procedimiento de optimización,
una función de costos y una familia de modelos.
La mayor diferencia entre los modelos lineales que hemos visto hasta ahora y las redes neuronales
es que la no linealidad de una red neuronal hace que las funciones de pérdida más interesantes se
vuelvan no convexas. Esto significa que las redes neuronales generalmente se entrenan mediante
optimizadores iterativos basados en gradientes que simplemente llevan la función de costo a un valor
muy bajo, en lugar de los solucionadores de ecuaciones lineales utilizados para entrenar modelos de
regresión lineal o los algoritmos de optimización convexos con convergencia global. garantías utilizadas
para entrenar la regresión logística o SVM. La optimización convexa converge a partir de cualquier
parámetro inicial (en teoría, en la práctica es muy sólida pero puede encontrar problemas numéricos). El
descenso de gradiente estocástico aplicado a funciones de pérdida no convexas no tiene tal garantía de
convergencia y es sensible a los valores de los parámetros iniciales. Para las redes neuronales de
avance, es importante inicializar todos los pesos en valores aleatorios pequeños. Los sesgos pueden
inicializarse a cero o a pequeños valores positivos. Los algoritmos iterativos de optimización basados en
gradientes utilizados para entrenar redes feedforward y casi todos los demás modelos profundos se
describirán en detalle en el capítulo 8, y la inicialización de parámetros se analizará en particular en la
sección 8.4. Por el momento, basta entender que el algoritmo de entrenamiento casi siempre se basa en
utilizar el gradiente para descender la función de costes de una forma u otra. Los algoritmos específicos
son mejoras y refinamientos de las ideas de descenso de gradiente, introducidas en la sección 4.3, y,
177
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
más específicamente, suelen ser mejoras del algoritmo de descenso de gradiente estocástico,
presentado en la sección 5.9.
Por supuesto, también podemos entrenar modelos como la regresión lineal y máquinas de vectores
de soporte con descenso de gradiente y, de hecho, esto es común cuando el conjunto de entrenamiento
es extremadamente grande. Desde este punto de vista, entrenar una red neuronal no es muy diferente
de entrenar cualquier otro modelo. Calcular el gradiente es un poco más complicado para una red
neuronal, pero aún se puede hacer de manera eficiente y exacta.
La Sección 6.5 describirá cómo obtener el gradiente utilizando el algoritmo de retropropagación y las
generalizaciones modernas del algoritmo de retropropagación.
Al igual que con otros modelos de aprendizaje automático, para aplicar el aprendizaje basado en
gradientes debemos elegir una función de costo y debemos elegir cómo representar el resultado del
modelo. Ahora revisamos estas consideraciones de diseño con especial énfasis en el escenario de las
redes neuronales.
6.2.1 Funciones de costos
Un aspecto importante del diseño de una red neuronal profunda es la elección de la función
de costes. Afortunadamente, las funciones de costos de las redes neuronales son más o
menos las mismas que las de otros modelos paramétricos, como los modelos lineales.
En la mayoría de los casos, nuestro modelo paramétrico define una distribución p(y | x;θ ) y
simplemente utilizamos el principio de máxima verosimilitud. Esto significa que utilizamos la entropía
cruzada entre los datos de entrenamiento y las predicciones del modelo como función de costo.
A veces, adoptamos un enfoque más simple, donde en lugar de predecir una distribución de
probabilidad completa sobre y, simplemente predecimos alguna estadística de y condicionada a x.
Las funciones de pérdida especializadas nos permiten entrenar un predictor de estas estimaciones.
La función de costo total utilizada para entrenar una red neuronal a menudo combinará una de las
funciones de costo principal descritas aquí con un término de regularización. Ya hemos visto algunos
ejemplos sencillos de regularización aplicada a modelos lineales en la sección 5.2.2. El enfoque de
caída de peso utilizado para modelos lineales también es directamente aplicable a redes neuronales
profundas y se encuentra entre las estrategias de regularización más populares. En el capítulo 7 se
describirán estrategias de regularización más avanzadas para redes neuronales .
6.2.1.1 Aprendizaje de distribuciones condicionales con máxima probabilidad
La mayoría de las redes neuronales modernas se entrenan utilizando la máxima probabilidad. Esto significa
que la función de costos es simplemente la probabilidad logarítmica negativa, descrita de manera equivalente
178
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
como la entropía cruzada entre los datos de entrenamiento y la distribución del modelo. Esta
función de costos está dada por
J(θ) = −Ex,y
pˆregistro de datos pmodel(y | x).
(6.12)
La forma específica de la función de costos cambia de un modelo a otro, dependiendo
de la forma específica del log pmodel. La expansión de la ecuación anterior normalmente
produce algunos términos que no dependen de los parámetros del modelo y pueden
descartarse . Por ejemplo, como vimos en la sección 5.5.1, si pmodel(y | x) = N (y ; f(x; θ),
I ), entonces recuperamos el costo del error cuadrático medio,
J(θ) = 2
1
Ej,y
pˆdata ||y − f(x; θ)||2 + const,
(6.13)
hasta un factor de escala de
y un término que no depende de θ. La constante descartada
12
se basa en la varianza de la distribución gaussiana, que en este caso optamos por no
parametrizar. Anteriormente, vimos que la equivalencia entre la estimación de máxima
verosimilitud con una distribución de salida y la minimización del error cuadrático medio
se cumple para un modelo lineal, pero, de hecho, la equivalencia se cumple
independientemente de la f(x; θ) utilizada para predecir la media de la Gaussiano.
Una ventaja de este enfoque de derivar la función de costos a partir de la máxima
verosimilitud es que elimina la carga de diseñar funciones de costos para cada modelo.
Al especificar un modelo p(y | x) se determina automáticamente una función de costo log p(y | x).
Un tema recurrente en todo el diseño de redes neuronales es que el gradiente de la función de costos
debe ser lo suficientemente grande y predecible para servir como una buena guía para el algoritmo de
aprendizaje. Las funciones que saturan (se vuelven muy planas) socavan este objetivo porque hacen que
el gradiente se vuelva muy pequeño. En muchos casos esto sucede porque las funciones de activación
utilizadas para producir la salida de las unidades ocultas o las unidades de salida se saturan. La probabilidad
logarítmica negativa ayuda a evitar este problema en muchos modelos. Muchas unidades de salida
involucran una función exp que puede saturarse cuando su argumento es muy negativo. La función
logarítmica en la función de costo de probabilidad logarítmica negativa deshace la exp de algunas unidades
de producción. Discutiremos la interacción entre la función de costos y la elección de la unidad de producción
en la sección 6.2.2.
Una propiedad inusual del costo de entropía cruzada utilizado para realizar la estimación
de máxima verosimilitud es que generalmente no tiene un valor mínimo cuando se aplica a
los modelos comúnmente utilizados en la práctica. Para las variables de salida discretas, la
mayoría de los modelos están parametrizados de tal manera que no pueden representar
una probabilidad de cero o uno, pero pueden acercarse arbitrariamente a hacerlo. La
regresión logística es un ejemplo de tal modelo. Para variables de salida de valor real, si el modelo
179
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
puede controlar la densidad de la distribución de salida (por ejemplo, aprendiendo el parámetro de
varianza de una distribución de salida gaussiana), entonces es posible asignar una densidad
extremadamente alta a las salidas del conjunto de entrenamiento correcto, lo que da como resultado
una entropía cruzada que se acerca al infinito negativo. Las técnicas de regularización descritas en
el capítulo 7 proporcionan varias formas diferentes de modificar el problema de aprendizaje de
modo que el modelo no pueda obtener recompensas ilimitadas de esta manera.
6.2.1.2 Aprendizaje de estadísticas condicionales
En lugar de aprender una distribución de probabilidad completa p(y | x; θ), a menudo queremos
aprender solo una estadística condicional de y dado x.
Por ejemplo, podemos tener un predictor f(x; θ) que deseamos predecir la media de y.
Si utilizamos una red neuronal lo suficientemente potente, podemos pensar que la red
neuronal es capaz de representar cualquier función f de una amplia clase de funciones,
estando esta clase limitada sólo por características como la continuidad y la acotación en
lugar de tener una función específica. forma paramétrica. Desde este punto de vista,
podemos ver la función de costos como una función funcional y no simplemente como una
función. Un funcional es un mapeo de funciones a números reales. Por tanto, podemos
pensar que el aprendizaje consiste en elegir una función en lugar de simplemente elegir un conjunto de par
Podemos diseñar nuestro costo funcional para que su mínimo ocurra en alguna función
específica que deseemos. Por ejemplo, podemos diseñar la función de costo para que su
mínimo se encuentre en la función que relaciona x con el valor esperado de y dado x.
Resolver un problema de optimización con respecto a una función requiere una herramienta
matemática llamada cálculo de variaciones, descrita en la sección 19.4.2. No es necesario
comprender el cálculo de variaciones para comprender el contenido de este capítulo. Por el
momento, sólo es necesario entender que el cálculo de variaciones puede usarse para derivar los
dos resultados siguientes.
Nuestro primer resultado obtenido utilizando el cálculo de variaciones es que resolver el problema
de optimización
F
min f
Ej,y
pdata ||y − f(x)||2 = arg
(6.14)
pdata(y|x) [y], f
(6.15)
rendimientos
(x) = Ey
siempre que esta función se encuentre dentro de la clase que optimizamos. En otras palabras, si
pudiéramos entrenar con infinitas muestras de la distribución generadora de datos verdaderos,
minimizar la función de costo del error cuadrático medio da una función que predice la media de y
para cada valor de x.
180
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Diferentes funciones de costos dan diferentes estadísticas. Un segundo resultado obtenido utilizando
El cálculo de variaciones es que
F
min f
Ej,y
pdata ||y − f(x)||1 = arg
(6.16)
produce una función que predice el valor mediano de y para cada x, siempre que dicha
función pueda ser descrita por la familia de funciones que optimizamos. Esta función
de costo comúnmente se denomina error absoluto medio.
Desafortunadamente, el error cuadrático medio y el error absoluto medio a menudo conducen a
resultados deficientes cuando se utilizan con optimización basada en gradientes. Algunas unidades de
producción que se saturan producen gradientes muy pequeños cuando se combinan con estas funciones de costos.
Esta es una de las razones por las que la función de costo de entropía cruzada es más popular que el
error cuadrático medio o el error absoluto medio, incluso cuando no es necesario estimar una
distribución completa p(y | x).
6.2.2 Unidades de salida
La elección de la función de costos está estrechamente relacionada con la elección de la unidad de
producción. La mayoría de las veces, simplemente utilizamos la entropía cruzada entre la distribución
de datos y la distribución del modelo. La elección de cómo representar la salida determina la forma de
la función de entropía cruzada.
Cualquier tipo de unidad de red neuronal que pueda usarse como salida también puede usarse
como unidad oculta. Aquí nos centramos en el uso de estas unidades como resultados del modelo,
pero en principio también se pueden utilizar internamente. Revisamos estas unidades con detalles
adicionales sobre su uso como unidades ocultas en la sección 6.3.
A lo largo de esta sección, suponemos que la red feedforward proporciona un conjunto de
características ocultas definidas por h = f (x;θ). La función de la capa de salida es entonces proporcionar
alguna transformación adicional de las características para completar la tarea que la red debe realizar.
6.2.2.1 Unidades lineales para distribuciones de salida gaussianas
Un tipo simple de unidad de salida es una unidad de salida basada en una transformación afín sin no
linealidad. A menudo se les llama simplemente unidades lineales.
Dadas las características h, una capa de unidades de salida lineales produce un vector yˆ = W
h+b.
Las capas de salida lineal se utilizan a menudo para producir la media de una distribución
gaussiana condicional:
p(y | x) = N (y; yˆ, I).
181
(6.17)
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Maximizar la probabilidad logarítmica equivale entonces a minimizar la media cuadrática
error.
El marco de máxima verosimilitud hace que sea sencillo aprender también la covarianza
del gaussiano o hacer que la covarianza del gaussiano sea una función de la entrada. Sin
embargo, la covarianza debe limitarse a ser una matriz definida positiva para todas las
entradas. Es difícil satisfacer tales restricciones con una capa de salida lineal, por lo que
normalmente se utilizan otras unidades de salida para parametrizar la covarianza.
Los enfoques para modelar la covarianza se describen brevemente en la sección 6.2.2.4.
Debido a que las unidades lineales no se saturan, plantean poca dificultad para los algoritmos de
optimización basados en gradientes y pueden usarse con una amplia variedad de algoritmos de optimización.
6.2.2.2 Unidades sigmoideas para distribuciones de salida de Bernoulli
Muchas tareas requieren predecir el valor de una variable binaria y . Los problemas de
clasificación con dos clases se pueden plantear de esta forma.
El enfoque de máxima verosimilitud consiste en definir una distribución de Bernoulli sobre y
condicionada a x.
Una distribución de Bernoulli está definida por un solo número. La red neuronal sólo
necesita predecir P(y = 1 | x). Para que este número sea una probabilidad válida, debe estar
en el intervalo [0, 1].
Satisfacer esta restricción requiere un esfuerzo de diseño cuidadoso. Supongamos que fuéramos
utilizar una unidad lineal y establecer un umbral de su valor para obtener una probabilidad válida:
P(y = 1 | x) = máx
0, mínimo
1, w
h+b
.
(6.18)
De hecho, esto definiría una distribución condicional válida, pero no podríamos entrenarla
de manera muy efectiva con el descenso de gradiente. Cada vez que h + b se desvía fuera
del intervalo unitario, el gradiente de la salida del modelo con respecto a sus parámetros
sería 0. Un gradiente de 0 suele ser problemático porque el algoritmo de aprendizaje ya no
tiene una guía sobre cómo mejorar los parámetros correspondientes.
En cambio, es mejor utilizar un enfoque diferente que garantice que siempre haya un fuerte gradiente
cuando el modelo tenga la respuesta incorrecta. Este enfoque se basa en el uso de unidades de salida
sigmoideas combinadas con máxima verosimilitud.
Una unidad de salida sigmoidea se define por
yˆ = σ
w
h+b
182
(6.19)
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
donde σ es la función sigmoidea logística descrita en la sección 3.10.
Podemos pensar que la unidad de salida sigmoidea tiene dos componentes. Primero,
utiliza una capa lineal para calcular z = w
h + b. A continuación, utiliza la activación sigmoidea.
función para convertir z en una probabilidad.
Omitimos la dependencia de x por el momento para discutir cómo definir una
distribución de probabilidad sobre y usando el valor z. El sigmoide puede estar motivado.
construyendo una distribución de probabilidad no normalizada P˜(y), que no
suma a 1. Luego podemos dividir por una constante apropiada para obtener una
Distribución de probabilidad. Si comenzamos con el supuesto de que el registro no normalizado
las probabilidades son lineales en y y z, podemos exponenciar para obtener la no normalizada
probabilidades. Luego normalizamos para ver que esto produce una distribución de Bernoulli.
controlado por una transformación sigmoidea de z:
log P˜(y) = yz
(6.20)
P˜(y) = exp(yz)
P(y) =
(6.21)
exp(yz)
1y
=0 exp(y
(6.22)
z)
P(y) = σ ((2y − 1)z).
(6.23)
Las distribuciones de probabilidad basadas en exponenciación y normalización son comunes.
en toda la literatura sobre modelos estadísticos. La variable z que define tal
La distribución sobre variables binarias se llama logit.
Este enfoque para predecir las probabilidades en el espacio logarítmico es natural de utilizar.
con aprendizaje de máxima probabilidad. Debido a que la función de costo utilizada con máximo
la probabilidad es − log P(y | x), el log en la función de costo deshace la exp del
sigmoideo. Sin este efecto, la saturación del sigmoide podría impedir que el aprendizaje basado
en gradientes progrese a buen ritmo. La función de pérdida para máximo
El aprendizaje de probabilidad de un Bernoulli parametrizado por un sigmoide es
J(θ) = − log P(y | x) = − log
σ ((2y − 1)z) = ζ ((1 − 2y)z).
(6,24)
(6,25)
(6,26)
Esta derivación hace uso de algunas propiedades de la sección 3.10. Al reescribir
la pérdida en términos de la función softplus, podemos ver que se satura solo cuando
(1 − 2y)z es muy negativo. Por lo tanto, la saturación ocurre sólo cuando el modelo ya
tiene la respuesta correcta: cuando y = 1 y z es muy positivo, o y = 0 y z es muy
negativo. Cuando z tiene el signo incorrecto, el argumento de la función softplus,
183
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
(1−2y)z, puede simplificarse a |z|. Como |z| se vuelve grande mientras z tiene el signo incorrecto, la
función softplus realiza asíntotas para simplemente devolver su argumento |z|. La derivada con respecto
a z asíntotas al signo (z), por lo que, en el límite de z extremadamente incorrecto , la función softplus no
reduce el gradiente en absoluto. Esta propiedad es muy útil porque significa que el aprendizaje basado
en gradientes puede actuar para corregir rápidamente una z equivocada.
Cuando utilizamos otras funciones de pérdida, como el error cuadrático medio, la pérdida
puede saturarse en cualquier momento que σ(z) se sature. La función de activación sigmoidea
se satura a 0 cuando z se vuelve muy negativo y se satura a 1 cuando z se vuelve muy positivo.
El gradiente puede reducirse demasiado para ser útil para el aprendizaje siempre que esto
suceda, ya sea que el modelo tenga la respuesta correcta o incorrecta. Por esta razón, la máxima
verosimilitud es casi siempre el enfoque preferido para entrenar unidades de producción
sigmoideas.
Analíticamente, el logaritmo del sigmoide siempre está definido y es finito, porque el
sigmoide devuelve valores restringidos al intervalo abierto (0, 1), en lugar de utilizar todo
el intervalo cerrado de probabilidades válidas [0, 1]. En implementaciones de software,
para evitar problemas numéricos, es mejor escribir la probabilidad logarítmica negativa
como una función de z, en lugar de como una función de yˆ = σ(z). Si la función sigmoidea
desciende a cero, entonces al tomar el logaritmo de yˆ se obtiene infinito negativo.
6.2.2.3 Unidades Softmax para distribuciones de salida Multinoulli
Siempre que deseemos representar una distribución de probabilidad sobre una variable
discreta con n valores posibles, podemos usar la función softmax. Esto puede verse como una
generalización de la función sigmoidea que se utilizó para representar una distribución de
probabilidad sobre una variable binaria.
Las funciones Softmax se utilizan con mayor frecuencia como salida de un clasificador, para
representar la distribución de probabilidad entre n clases diferentes. Más raramente, las
funciones softmax se pueden usar dentro del propio modelo, si deseamos que el modelo elija
entre una de n opciones diferentes para alguna variable interna.
En el caso de variables binarias, queríamos producir un solo número
yˆ = P(y = 1 | x).
(6.27)
Debido a que este número debía estar entre 0 y 1, y debido a que queríamos que el
logaritmo del número se comportara bien para la optimización basada en gradiente de la
probabilidad logarítmica, elegimos en su lugar predecir un número z = log P˜(y = 1 | x).
La exponenciación y la normalización nos dieron una distribución de Bernoulli controlada por
la función sigmoidea.
184
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Para generalizar al caso de una variable discreta con n valores, ahora necesitamos producir un vector
yˆ, con yˆi = P(y = i | x). Requerimos no sólo que cada elemento de yˆi esté entre 0 y 1, sino también que
todo el vector sume 1 para que represente una distribución de probabilidad válida. El mismo enfoque que
funcionó para la distribución de Bernoulli se generaliza a la distribución multinoulli. Primero, una capa lineal
predice probabilidades logarítmicas no normalizadas:
z=W
h + b,
(6.28)
donde zi = log P˜(y = i | x). Luego, la función softmax puede exponenciar y normalizar z para obtener la yˆ
deseada. Formalmente, la función softmax viene dada por
exp(zi)
softmax(z)i =
j exp(zj )
.
(6.29)
Al igual que con el sigmoide logístico, el uso de la función exp funciona muy bien
cuando se entrena softmax para generar un valor objetivo y utilizando la máxima
probabilidad logarítmica. En este caso, deseamos maximizar log P (y = i;z) = log
softmax(z)i. Definir softmax en términos de exp es natural porque el registro en log­
likelihood puede deshacer la exp de softmax:
log softmax(z)i = zi − log
(6.30)
exp(zj ).
j
El primer término de la ecuación 6.30 muestra que el insumo zi siempre tiene una contribución directa a la
función de costos. Como este término no puede saturar, sabemos que el aprendizaje puede continuar, incluso si la
contribución de zi al segundo término de la ecuación 6.30 se vuelve muy pequeña. Al maximizar la probabilidad
logarítmica, el primer término alienta a zi a ser empujado hacia arriba, mientras que el segundo término alienta a
todos los z a ser empujados hacia abajo. Para tener cierta intuición sobre el segundo término, log
exp(zj ), observe
que este término puede aproximarse aproximadamente mediante maxj zj . Esta aproximaciónj se basa en la idea de
que exp(zk) es insignificante para cualquier zk que sea notablemente menor que maxj zj. La intuición que podemos
obtener de esta aproximación es que la función de costo de probabilidad logarítmica negativa siempre penaliza
fuertemente la predicción incorrecta más activa. Si la respuesta correcta ya tiene la mayor entrada al softmax,
entonces el término −zi y el log
j. Este ejemplo contribuirá poco al costo general de capacitación, que estará
dominado por otros ejemplos que aún no están correctamente clasificados.
Los términos exp(zj) ≈ maxj zj = zi se cancelarán aproximadamente.
Hasta ahora hemos discutido sólo un ejemplo. En general, la probabilidad máxima no
regularizada impulsará al modelo a aprender parámetros que impulsan al softmax a predecir
185
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
la fracción de recuentos de cada resultado observado en el conjunto de entrenamiento:
mj=1 1y (j)=i,x
softmax(z(x; θ))i ≈
(j)=x
.
metro
(6.31)
j=1 1x(j)=x
Debido a que la máxima verosimilitud es un estimador consistente, se garantiza que esto sucederá
siempre que la familia de modelos sea capaz de representar la distribución de entrenamiento. En la
práctica, la capacidad limitada del modelo y la optimización imperfecta significarán que el modelo solo
podrá aproximar estas fracciones.
Muchas funciones objetivas distintas de la probabilidad logarítmica no funcionan tan bien con la
función softmax. Específicamente, las funciones objetivas que no usan un registro para deshacer la exp
de softmax no aprenden cuando el argumento de la exp se vuelve muy negativo, lo que hace que el
gradiente desaparezca. En particular, el error al cuadrado es una función de pérdida deficiente para las
unidades softmax y puede fallar al entrenar el modelo para cambiar su salida, incluso cuando el modelo
hace predicciones incorrectas con mucha confianza (Bridle, 1990). Para comprender por qué estas
otras funciones de pérdida pueden fallar, debemos examinar la función softmax en sí.
Al igual que el sigmoide, la activación softmax puede saturarse. La función sigmoidea tiene una
única salida que se satura cuando su entrada es extremadamente negativa o extremadamente positiva.
En el caso de softmax, hay múltiples valores de salida. Estos valores de salida pueden saturarse cuando
las diferencias entre los valores de entrada se vuelven extremas. Cuando el softmax se satura, muchas
funciones de costo basadas en el softmax también se saturan, a menos que sean capaces de invertir la
función de activación de saturación.
Para ver que la función softmax responde a la diferencia entre sus entradas, observe que la salida
de softmax es invariante al agregar el mismo escalar a todas sus entradas:
softmax(z) = softmax(z + c).
(6.32)
Usando esta propiedad, podemos derivar una variante numéricamente estable de softmax:
softmax(z) = softmax(z − máx zi).
i
(6.33)
La versión reformulada nos permite evaluar softmax con solo pequeños errores numéricos incluso cuando
z contiene números extremadamente grandes o extremadamente negativos. Al examinar la variante
numéricamente estable, vemos que la función softmax está determinada por la cantidad en que sus
argumentos se desvían de maxi zi.
Una salida softmax(z)i se satura a 1 cuando la entrada correspondiente es máxima
(zi = maxi zi) y zi es mucho mayor que todas las demás entradas. La salida softmax(z)i
también puede saturarse a 0 cuando zi no es máximo y el máximo es mucho mayor.
Esta es una generalización de la forma en que se saturan las unidades sigmoideas y
186
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
puede causar dificultades similares para el aprendizaje si la función de pérdida no está diseñada para
compensarlo.
El argumento z de la función softmax se puede producir de dos maneras diferentes.
Lo más común es simplemente tener una capa anterior de la red neuronal que genere cada elemento
de z, como se describió anteriormente usando la capa lineal z = W
h + b. Si bien es sencillo, este
enfoque en realidad parametriza excesivamente la distribución. La restricción de que las n salidas
deben sumar 1 significa que sólo son necesarios n −1 parámetros ; la probabilidad del n­ésimo valor se
puede obtener restando las primeras n− 1 probabilidades de 1. Por lo tanto, podemos imponer el
requisito de que un elemento de z sea fijo. Por ejemplo, podemos exigir que zn = 0. De hecho, esto es
exactamente lo que hace la unidad sigmoidea. Definir P (y = 1 | x) = σ(z) es equivalente a definir P (y =
1 | x) = softmax(z)1 con una z bidimensional y z1 = 0. Tanto el argumento n − 1 como Los enfoques de
n argumentos para softmax pueden describir el mismo conjunto de distribuciones de probabilidad, pero
tienen diferentes dinámicas de aprendizaje. En la práctica, rara vez hay mucha diferencia entre usar la
versión sobreparametrizada o la versión restringida, y es más sencillo implementar la versión
sobreparametrizada.
Desde un punto de vista neurocientífico, es interesante pensar en el softmax como una forma de
crear una forma de competencia entre las unidades que participan en él: las salidas del softmax siempre
suman 1, por lo que un aumento en el valor de una unidad corresponde necesariamente a una disminución
del valor de los demás. Esto es análogo a la inhibición lateral que se cree que existe entre neuronas
cercanas en la corteza. En el extremo (cuando la diferencia entre la ai máxima y las demás es grande en
magnitud) se convierte en una forma en la que el ganador se lo lleva todo (una de las salidas es casi 1 y
las otras son casi 0).
El nombre “softmax” puede resultar algo confuso. La función está más estrechamente relacionada
con la función arg max que con la función max. El término "suave" deriva del hecho de que la función
softmax es continua y diferenciable. La función arg max , con su resultado representado como un vector
one­hot, no es continua ni diferenciable. La función softmax proporciona así una versión "suavizada" de
arg max. La versión suave correspondiente de la función máxima es softmax(z)
z.
Quizás sería mejor llamar a la función softmax "softargmax", pero el nombre actual es una convención
arraigada.
6.2.2.4 Otros tipos de salida
Las unidades de salida lineal, sigmoidea y softmax descritas anteriormente son las más comunes. Las
redes neuronales pueden generalizarse a casi cualquier tipo de capa de salida que deseemos. El principio
de máxima verosimilitud proporciona una guía sobre cómo diseñar
187
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
una buena función de costos para casi cualquier tipo de capa de salida.
En general, si definimos una distribución condicional p(y | x; θ), el principio de
la máxima verosimilitud sugiere que usemos − log p(y | x; θ) como nuestra función de costos.
En general, podemos pensar que la red neuronal representa una función f (x; θ).
Los resultados de esta función no son predicciones directas del valor y. En cambio, f (x;θ) = ω
proporciona los parámetros para una distribución sobre y. Nuestra función de pérdida puede entonces
interpretarse como − log p(y; ω(x)).
Por ejemplo, es posible que deseemos conocer la varianza de una gaussiana
condicional para y, dado x. En el caso simple, donde la2varianza σ es una constante, hay
una expresión de forma cerrada porque el estimador de varianza de máxima verosimilitud
es simplemente la media empírica de la diferencia al cuadrado entre las observaciones y
y su valor esperado . Un enfoque computacionalmente más costoso que no requiere
escribir código de casos especiales es simplemente incluir la varianza como una de las
propiedades de la distribución p(y | x) que está controlada por ω = f(x; θ). La probabilidad
logarítmica negativa − log p(y;ω(x)) proporcionará una función de costo con los términos
apropiados necesarios para que nuestro procedimiento de optimización aprenda
incrementalmente la varianza. En el caso simple donde la desviación estándar no depende
de la entrada, podemos crear un nuevo parámetro en la red que se copia directamente en
ω. Este nuevo parámetro podría ser σ mismo o podría ser un parámetro v 2 o podría
que represente σ o un parámetro β que represente 1σ 2, dependiendo de cómo elijamos
parametrizar la distribución. Es posible que deseemos que nuestro modelo prediga una
cantidad diferente de varianza en y para diferentes valores de x. A esto se le llama modelo
heteroscedástico . En el caso heterocedástico, simplemente hacemos que la especificación
de la varianza sea uno de los valores generados por f(x;θ). Una forma típica de hacer esto
es formular la distribución gaussiana usando precisión, en lugar de varianza, como se describe en la ecu
En el caso multivariado lo más común es utilizar una matriz de precisión diagonal.
diag(β).
(6.34)
Esta formulación funciona bien con el descenso de gradiente porque la fórmula para la
probabilidad logarítmica de la distribución gaussiana parametrizada por β implica sólo la
multiplicación por βi y la suma de log βi . El gradiente de operaciones de multiplicación, suma
y logaritmo se comporta bien. En comparación, si parametrizáramos la salida en términos de
varianza, necesitaríamos usar división. La función de división se vuelve arbitrariamente
pronunciada cerca de cero. Si bien los gradientes grandes pueden ayudar al aprendizaje, los
gradientes arbitrariamente grandes suelen provocar inestabilidad. Si parametrizáramos la
producción en términos de desviación estándar, la probabilidad logarítmica seguiría implicando
división y también implicaría elevación al cuadrado. El gradiente a través de la operación de
elevación al cuadrado puede desaparecer cerca de cero, lo que dificulta el aprendizaje de parámetros elevado
188
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Independientemente de si utilizamos desviación estándar, varianza o precisión, debemos
asegurarnos de que la matriz de covarianza del gaussiano sea definida positiva. Debido a
que los valores propios de la matriz de precisión son los recíprocos de los valores propios
de la matriz de covarianza, esto equivale a garantizar que la matriz de precisión sea
definida positiva. Si usamos una matriz diagonal, o un escalar multiplicado por la matriz
diagonal, entonces la única condición que debemos imponer en la salida del modelo es la positividad.
Si suponemos que a es la activación bruta del modelo utilizado para determinar la
precisión diagonal, podemos utilizar la función softplus para obtener un vector de precisión
positivo: β = ζ(a). Esta misma estrategia se aplica igualmente si se usa varianza o
desviación estándar en lugar de precisión o si se usa una identidad de tiempos escalar
en lugar de una matriz diagonal.
Es raro aprender una matriz de covarianza o de precisión con una estructura más
rica que la diagonal. Si la covarianza es completa y condicional, entonces se debe elegir
una parametrización que garantice la definición positiva de la matriz de covarianza predicha.
Esto se puede lograr escribiendo Σ(x) = B(x)B (x), donde B es una matriz cuadrada sin
restricciones. Un problema práctico si la matriz es de rango completo es que calcular la
3
probabilidad es costoso, ya que una matriz d × d requiere el
) cálculo para el
determinante O(d y la inversa de Σ(x) (o de manera equivalente, y más comúnmente
hecho, su descomposición propia o la de B (X)).
A menudo queremos realizar una regresión multimodal, es decir, predecir valores
reales que provienen de una distribución condicional p(y | x) que puede tener varios picos
diferentes en el espacio y para el mismo valor de x. En este caso, una mezcla gaussiana
es una representación natural de la salida (Jacobs et al., 1991; Bishop, 1994).
Las redes neuronales con mezclas gaussianas como salida a menudo se denominan redes
de densidad de mezcla. Una salida de mezcla gaussiana con n componentes se define
mediante la distribución de probabilidad condicional
p(y | x) =
n
p(c = i | x)N (y; µ (i)(x), Σ (i) (x)).
(6.35)
yo=1
La red neuronal debe tener tres salidas: un vector que define p(c = i | x), una matriz que
proporciona µ (i)(x) para todo i y un tensor que proporciona Σ(i)(x) para todo i. Estas
salidas deben satisfacer diferentes restricciones:
1. Componentes de la mezcla p(c = i | x): forman una distribución multinoulli sobre los
n componentes diferentes asociados con la variable latente1 c, y pueden
1Consideramos que c es latente porque no lo observamos en los datos: dada la entrada x y el objetivo y, no es posible
saber con certeza qué componente gaussiano fue responsable de y, pero podemos imaginar que y se generó eligiendo uno de
ellos y convertir esa elección no observada en una variable aleatoria.
189
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
normalmente se obtiene mediante un softmax sobre un vector de n dimensiones, para
garantizar que estas salidas sean positivas y sumen 1.
2. Medias µ(i)(x): indican el centro o la media asociada con el i­ésimo componente
gaussiano y no tienen restricciones (normalmente no tienen ninguna no linealidad
para estas unidades de salida). Si y es un vector d, entonces la red debe generar una
matriz n × d que contenga todos los n de estos vectores d­dimensionales. Aprender
estas medias con máxima probabilidad es ligeramente más complicado que aprender
las medias de una distribución con un solo modo de salida. Solo queremos actualizar
la media del componente que realmente produjo la observación. En la práctica, no
sabemos qué componente produjo cada observación. La expresión de la probabilidad
logarítmica negativa naturalmente pondera la contribución de cada ejemplo a la
pérdida de cada componente por la probabilidad de que el componente haya producido
el ejemplo.
3. Covarianzas Σ(i)(x): especifican la matriz de covarianzas para cada componente i. Al
igual que cuando aprendemos un único componente gaussiano, normalmente utilizamos
una matriz diagonal para evitar la necesidad de calcular determinantes. Al igual que con
el aprendizaje de los medios de la mezcla, la máxima verosimilitud se complica al tener
que asignar responsabilidad parcial de cada punto a cada componente de la mezcla. El
descenso del gradiente seguirá automáticamente el proceso correcto si se le da la
especificación correcta de la probabilidad logarítmica negativa en el modelo de mezcla.
Se ha informado que la optimización basada en gradientes de mezclas gaussianas
condicionales (en la salida de redes neuronales) puede ser poco confiable, en parte porque
se obtienen divisiones (por la varianza) que pueden ser numéricamente inestables (cuando
alguna varianza llega a ser pequeña para un ejemplo particular, que produce gradientes muy grandes).
Una solución es recortar los gradientes (consulte la sección 10.11.1), mientras que otra es
escalar los gradientes heurísticamente (Murray y Larochelle, 2014).
Las salidas de mezclas gaussianas son particularmente efectivas en modelos generativos
de habla (Schuster, 1999) o movimientos de objetos físicos (Graves, 2013). La estrategia de
densidad de mezcla proporciona una manera para que la red represente múltiples modos
de salida y controle la varianza de su salida, lo cual es crucial para obtener un alto grado de
calidad en estos dominios de valor real. En la figura 6.4 se muestra un ejemplo de una red
de densidad de mezcla .
En general, es posible que deseemos continuar modelando vectores y más grandes que
contengan más variables e imponer estructuras cada vez más ricas a estas variables de salida.
Por ejemplo, es posible que deseemos que nuestra red neuronal genere una secuencia de
caracteres que forme una oración. En estos casos, podemos seguir usando el principio de
máxima verosimilitud aplicado a nuestro modelo p(y; ω(x)), pero el modelo que usamos
190
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
X
Figura 6.4: Muestras extraídas de una red neuronal con una capa de salida de densidad de mezcla.
La entrada x se muestra a partir de una distribución uniforme y la salida y se muestra a partir de
pmodel(y | x). La red neuronal puede aprender asignaciones no lineales desde la entrada a los
parámetros de la distribución de salida. Estos parámetros incluyen las probabilidades que rigen
cuál de los tres componentes de la mezcla generará la salida, así como los parámetros para cada
componente de la mezcla. Cada componente de la mezcla es gaussiano con media y varianza
previstas. Todos estos aspectos de la distribución de la salida pueden variar con respecto a la
entrada x, y hacerlo de forma no lineal.
describir y se vuelve lo suficientemente complejo como para estar más allá del alcance de este capítulo.
El Capítulo 10 describe cómo utilizar redes neuronales recurrentes para definir dichos
modelos en secuencias, y la Parte III describe técnicas avanzadas para modelar
distribuciones de probabilidad arbitrarias.
6.3 Unidades Ocultas
Hasta ahora hemos centrado nuestra discusión en opciones de diseño para redes neuronales que son
comunes a la mayoría de los modelos paramétricos de aprendizaje automático entrenados con
optimización basada en gradientes. Ahora pasamos a una cuestión que es exclusiva de las redes
neuronales feedforward: cómo elegir el tipo de unidad oculta que se utilizará en las capas ocultas del
modelo.
El diseño de unidades ocultas es un área de investigación extremadamente activa y no
sin embargo, tienen muchos principios teóricos rectores definitivos.
Las unidades lineales rectificadas son una excelente opción predeterminada de unidad oculta. Hay
muchos otros tipos de unidades ocultas disponibles. Puede resultar difícil determinar cuándo utilizar
qué tipo (aunque las unidades lineales rectificadas suelen ser una opción aceptable). Nosotros
191
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Describimos aquí algunas de las intuiciones básicas que motivan cada tipo de unidades ocultas.
Estas intuiciones pueden ayudar a decidir cuándo probar cada una de estas unidades. Generalmente es
imposible predecir de antemano cuál funcionará mejor. El proceso de diseño consiste en prueba y error,
intuir que un tipo de unidad oculta puede funcionar bien, y luego entrenar una red con ese tipo de unidad
oculta y evaluar su desempeño en un conjunto de validación.
Algunas de las unidades ocultas incluidas en esta lista en realidad no son diferenciables en
todos los puntos de entrada. Por ejemplo, la función lineal rectificada g (z) = max{0, z} no es
diferenciable en z = 0. Esto puede parecer que invalida g para su uso con un algoritmo de
aprendizaje basado en gradiente. En la práctica, el descenso de gradiente todavía funciona lo
suficientemente bien como para que estos modelos se utilicen en tareas de aprendizaje automático.
Esto se debe en parte a que los algoritmos de entrenamiento de redes neuronales generalmente
no llegan a un mínimo local de la función de costo, sino que simplemente reducen su valor
significativamente, como se muestra en la figura 4.3. Estas ideas se describirán con más detalle
en el capítulo 8. Debido a que no esperamos que el entrenamiento alcance realmente un punto
donde el gradiente sea 0, es aceptable que los mínimos de la función de costo correspondan a puntos con un grad
Las unidades ocultas que no son diferenciables suelen serlo sólo en un pequeño número de puntos. En
general, una función g(z) tiene una derivada izquierda definida por la pendiente de la función
inmediatamente a la izquierda de z y una derivada derecha definida por la pendiente de la función
inmediatamente a la derecha de z. Una función es diferenciable en z sólo si tanto la derivada izquierda
como la derivada derecha están definidas y son iguales entre sí. Las funciones utilizadas en el contexto
de las redes neuronales generalmente tienen derivadas izquierdas definidas y derivadas derechas
definidas. En el caso de g(z) = max{0, z}, la derivada izquierda en z = 0 es 0 y la derivada derecha es 1.
Las implementaciones de software de entrenamiento de redes neuronales generalmente devuelven una
de las derivadas unilaterales en lugar de informar que la derivada no está definida o genera un error. Esto
puede justificarse heurísticamente observando que la optimización basada en gradientes en una
computadora digital está sujeta a errores numéricos de todos modos.
Cuando se pide a una función que evalúe g(0), es muy poco probable que el valor subyacente sea
realmente 0. En cambio, es probable que sea algún valor pequeño
que se redondeó a 0. En algunos
contextos, se encuentran justificaciones teóricamente más satisfactorias. disponibles, pero normalmente
no se aplican al entrenamiento de redes neuronales. El punto importante es que en la práctica se puede
ignorar con seguridad la no diferenciabilidad de las funciones de activación de unidades ocultas que se
describen a continuación.
A menos que se indique lo contrario, la mayoría de las unidades ocultas pueden describirse como
aceptar un vector de entradas x, calcular una transformación afín z = W
x + b, y luego aplicar una
función no lineal de elementos g(z). La mayoría de las unidades ocultas se distinguen entre sí sólo por la
elección de la forma de la función de activación g(z).
192
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
6.3.1 Unidades lineales rectificadas y sus generalizaciones
Las unidades lineales rectificadas utilizan la función de activación g(z) = max{0, z}.
Las unidades lineales rectificadas son fáciles de optimizar porque son muy similares a las lineales.
unidades. La única diferencia entre una unidad lineal y una unidad lineal rectificada es
que una unidad lineal rectificada produce cero en la mitad de su dominio. Esto hace que el
Las derivadas a través de una unidad lineal rectificada siguen siendo grandes siempre que la unidad está activa.
Los gradientes no sólo son grandes sino también consistentes. La segunda derivada de la
operación rectificadora es 0 en casi todas partes, y la derivada de la operación rectificadora
La operación es 1 en todos los lugares donde la unidad esté activa. Esto significa que el gradiente
La dirección es mucho más útil para el aprendizaje que lo sería con funciones de activación.
que introducen efectos de segundo orden.
Las unidades lineales rectificadas se suelen utilizar además de una transformación afín:
h = g(W
x + b).
(6.36)
Al inicializar los parámetros de la transformación afín, puede ser una buena
Practique establecer todos los elementos de b en un valor pequeño y positivo, como 0,1. Esto hace
Es muy probable que las unidades lineales rectificadas estén inicialmente activas para la mayoría de las entradas.
en el conjunto de entrenamiento y permitir el paso de las derivadas.
Existen varias generalizaciones de unidades lineales rectificadas. La mayoría de estas generalizaciones
funcionan de manera comparable a las unidades lineales rectificadas y ocasionalmente realizan
mejor.
Una desventaja de las unidades lineales rectificadas es que no pueden aprender mediante métodos
basados en gradientes en ejemplos en los que su activación es cero. Una variedad de
Las generalizaciones de unidades lineales rectificadas garantizan que reciban gradiente en todas partes.
Tres generalizaciones de unidades lineales rectificadas se basan en el uso de un valor distinto de cero.
pendiente αi cuando zi < 0: hi = g(z, α)i = max(0, zi) + αi min(0, zi). Valor absoluto
La rectificación fija αi = −1 para obtener g( z) = |z|. Se utiliza para el reconocimiento de objetos.
a partir de imágenes (Jarrett et al., 2009), donde tiene sentido buscar características que sean
invariante bajo una inversión de polaridad de la iluminación de entrada. Otras generalizaciones
de unidades lineales rectificadas son de aplicación más amplia. Un ReLU con fugas (Maas et al., 2013) fija
αi en un valor pequeño como 0,01, mientras que un ReLU o PReLU paramétrico
trata a αi como un parámetro que se puede aprender (He et al., 2015).
Las unidades Maxout (Goodfellow et al., 2013a) generalizan unidades lineales rectificadas
más. En lugar de aplicar una función de elementos g(z ), las unidades maxout dividen z
en grupos de k valores. Cada unidad maxout genera el elemento máximo de
193
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
uno de estos grupos:
g(z)i = máx.
zjj
G (i)
(6.37)
donde G(i) es el conjunto de índices de las entradas para el grupo i, {(i − 1)k + 1, . . . ,ik}.
Esto proporciona una forma de aprender una función lineal por partes que responde a múltiples
direcciones en el espacio x de entrada.
Una unidad maxout puede aprender una función convexa lineal por partes con hasta k piezas.
Por lo tanto, se puede considerar que las unidades Maxout aprenden la función de activación en sí en lugar de
que simplemente la relación entre unidades. Con k lo suficientemente grande, una unidad maxout puede
Aprenda a aproximar cualquier función convexa con fidelidad arbitraria. En particular,
una capa maxout con dos piezas puede aprender a implementar la misma función del
ingrese x como una capa tradicional usando la función de activación lineal rectificada, absoluta
función de rectificación de valor, o el ReLU paramétrico o con fugas, o puede aprender a
implementar una función totalmente diferente. La capa maxout, por supuesto,
ser parametrizado de manera diferente a cualquiera de estos otros tipos de capas, por lo que el aprendizaje
La dinámica será diferente incluso en los casos en los que Maxout aprende a implementar el
misma función de x que uno de los otros tipos de capa.
Cada unidad maxout ahora está parametrizada por k vectores de peso en lugar de solo uno,
por lo que las unidades maxout normalmente necesitan más regularización que las unidades lineales rectificadas. Ellos
puede funcionar bien sin regularización si el conjunto de entrenamiento es grande y el número de
piezas por unidad se mantiene baja (Cai et al., 2013).
Las unidades Maxout tienen algunos otros beneficios. En algunos casos, se pueden obtener
algunas ventajas estadísticas y computacionales al requerir menos parámetros. Específicamente,
si las características capturadas por n filtros lineales diferentes se pueden resumir sin
perder información tomando el máximo sobre cada grupo de k características, luego el siguiente
La capa puede arreglárselas con k veces menos pesos.
Debido a que cada unidad es impulsada por múltiples filtros, las unidades maxout tienen cierta
redundancia que les ayuda a resistir un fenómeno llamado olvido catastrófico.
en el que las redes neuronales olvidan cómo realizar tareas para las que fueron entrenadas en
el pasado (Goodfellow et al., 2014a).
Las unidades lineales rectificadas y todas estas generalizaciones de ellas se basan en la
Principio de que los modelos son más fáciles de optimizar si su comportamiento es más cercano a lo lineal.
Este mismo principio general de utilizar el comportamiento lineal para obtener una optimización más sencilla.
También se aplica en otros contextos además de las redes lineales profundas. Las redes recurrentes pueden
aprender de secuencias y producir una secuencia de estados y resultados. Al entrenar
Para ellos, es necesario propagar la información a través de varios pasos de tiempo, lo cual es mucho más
más fácil cuando algunos cálculos lineales (con algunas derivadas direccionales son de
magnitud cercana a 1) están involucrados. Una de las redes recurrentes con mejor rendimiento
194
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Las arquitecturas, el LSTM, propagan información a través del tiempo a través de la suma, un tipo
particularmente sencillo de activación lineal. Esto se analiza con más detalle en la sección 10.10.
6.3.2 Sigmoide logística y tangente hiperbólica
Antes de la introducción de unidades lineales rectificadas, la mayoría de las redes neuronales utilizaban la
función de activación sigmoidea logística.
gramo(z) = σ(z)
(6.38)
o la función de activación tangente hiperbólica
g(z) = tanh(z).
(6.39)
Estas funciones de activación están estrechamente relacionadas porque tanh(z) = 2σ(2z) − 1.
Ya hemos visto las unidades sigmoideas como unidades de salida, utilizadas para predecir la probabilidad
de que una variable binaria sea 1. A diferencia de las unidades lineales por partes, las unidades sigmoideas
se saturan en la mayor parte de su dominio: se saturan hasta un valor alto cuando z es muy positivo, se
saturan hasta un valor bajo cuando z es muy negativo y sólo son muy sensibles a su entrada cuando z está
cerca de 0. La saturación generalizada de unidades sigmoidales puede dificultar mucho el aprendizaje basado
en gradientes. Por esta razón, actualmente se desaconseja su uso como unidades ocultas en redes de
retroalimentación. Su uso como unidades de salida es compatible con el uso del aprendizaje basado en
gradientes cuando una función de costo apropiada puede deshacer la saturación del sigmoide en la capa de
salida.
Cuando se debe utilizar una función de activación sigmoidea, la función de activación tangente hiperbólica
normalmente funciona mejor que la sigmoide logística. Se parece
la función de identidad más estrechamente, en el sentido de que tanh(0) = 0 mientras que σ(0) = Debido a
que tanh es similar a la función de identidad cerca de 0, entrenar una red neuronal profunda yˆ = w
tanh(V
x )) se asemeja a entrenar un modelo lineal yˆ = w
U
V
12.
tanh(U
x siempre que las activaciones de la
red se puedan mantener pequeñas. Esto facilita el entrenamiento de la red tanh.
Las funciones de activación sigmoidal son más comunes en entornos distintos de las redes de
avance. Las redes recurrentes, muchos modelos probabilísticos y algunos codificadores automáticos
tienen requisitos adicionales que descartan el uso de funciones de activación lineal por partes y hacen
que las unidades sigmoidales sean más atractivas a pesar de los inconvenientes de la saturación.
195
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
6.3.3 Otras unidades ocultas
Son posibles muchos otros tipos de unidades ocultas, pero se utilizan con menos frecuencia.
En general, una amplia variedad de funciones diferenciables funcionan perfectamente bien.
Muchas funciones de activación no publicadas funcionan tan bien como las populares.
Para proporcionar un ejemplo concreto, los autores probaron una red de avance usando h =
cos(Wx + b) en el conjunto de datos MNIST y obtuvieron una tasa de error de menos del 1%,
que es competitiva con los resultados obtenidos usando funciones de activación más
convencionales . Durante la investigación y el desarrollo de nuevas técnicas, es común probar
muchas funciones de activación diferentes y encontrar que varias variaciones de la práctica
estándar funcionan de manera comparable. Esto significa que normalmente los nuevos tipos de
unidades ocultas se publican sólo si se demuestra claramente que proporcionan una mejora
significativa. Los nuevos tipos de unidades ocultas que funcionan de manera aproximadamente
comparable a los tipos conocidos son tan comunes que no resultan interesantes.
No sería práctico enumerar todos los tipos de unidades ocultas que han aparecido.
en la literatura. Destacamos algunos especialmente útiles y distintivos.
Una posibilidad es no tener ninguna activación g (z) . También se puede pensar en esto como
si se utilizara la función de identidad como función de activación. Ya hemos visto que una unidad
lineal puede resultar útil como salida de una red neuronal. También se puede utilizar como unidad
oculta. Si cada capa de la red neuronal consta únicamente de transformaciones lineales, entonces
la red en su conjunto será lineal. Sin embargo, es aceptable que algunas capas de la red neuronal
sean puramente lineales. Considere una capa de red neuronal con n entradas yp salidas, h =
g(W
x + b). Podemos reemplazar esto con dos capas, una capa usando la matriz de peso U y la
otra usando la matriz de peso V. Si la primera capa no tiene función de activación, entonces
esencialmente hemos factorizado la matriz de peso de la capa original en función de W. El método
factorizado consiste en calcular h = g(V
U
x +b). Si U produce q salidas, entonces U y V juntos
contienen solo (n + p)q parámetros, mientras que W contiene np parámetros. Para q pequeño, esto
puede suponer un ahorro considerable de parámetros. Esto tiene el costo de restringir la
transformación lineal para que sea de rango bajo, pero estas relaciones de rango bajo suelen ser
suficientes. Las unidades lineales ocultas ofrecen así una forma eficaz de reducir el número de
parámetros en una red.
Las unidades Softmax son otro tipo de unidad que generalmente se usa como salida (como se
describe en la sección 6.2.2.3), pero a veces se pueden usar como unidad oculta. Las unidades
Softmax representan naturalmente una distribución de probabilidad sobre una variable discreta con
k valores posibles, por lo que pueden usarse como una especie de interruptor. Este tipo de unidades
ocultas normalmente sólo se utilizan en arquitecturas más avanzadas que aprenden explícitamente
a manipular la memoria, como se describe en la sección 10.12.
196
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Algunos otros tipos de unidades ocultas razonablemente comunes incluyen:
• Función de base radial o unidad RBF: hi = exp
− 1σ 2 ||W:,i − x||2
. Este
i
La función se vuelve más activa a medida que x se aproxima a una plantilla W:,i. Debido a
que se satura a 0 para la mayoría de x, puede resultar difícil optimizarlo.
• Softplus: g(a) = ζ(a) = log(1+e a ). Esta es una versión suave del rectificador,
introducida por Dugas et al. (2001) para la aproximación de funciones y por Nair
y Hinton (2010) para las distribuciones condicionales de modelos probabilísticos
no dirigidos. Glorot et al. (2011a) compararon el softplus y el rectificador y
encontraron mejores resultados con este último. En general, se desaconseja el uso del softplus.
El softplus demuestra que el rendimiento de los tipos de unidades ocultas puede ser muy contrario
a la intuición: se podría esperar que tenga una ventaja sobre el rectificador por ser diferenciable en
todas partes o por saturar menos completamente, pero empíricamente no es así.
• Tanh duro : tiene una forma similar a la tanh y al rectificador, pero a diferencia de este último, está
acotado, g(a) = max(−1, min(1 , a)). Fue introducido por Collobert (2004).
El diseño de unidades ocultas sigue siendo un área activa de investigación y muchas soluciones ocultas útiles
Los tipos de unidades aún están por descubrir.
6.4 Diseño de Arquitectura
Otra consideración clave en el diseño de redes neuronales es determinar la arquitectura.
La palabra arquitectura se refiere a la estructura general de la red: cuántas unidades debe tener y cómo
estas unidades deben estar conectadas entre sí.
La mayoría de las redes neuronales están organizadas en grupos de unidades llamadas capas. La
mayoría de las arquitecturas de redes neuronales organizan estas capas en una estructura de cadena,
siendo cada capa una función de la capa que la precedió. En esta estructura, la primera capa está dada por
h (1) = gramo
(1)
W(1)
x + b (1)
,
(6.40)
la segunda capa está dada por
h (2) = gramo (2)
W(2)
etcétera.
197
h (1) + b (2)
,
(6.41)
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
En estas arquitecturas basadas en cadenas, las principales consideraciones arquitectónicas
son elegir la profundidad de la red y el ancho de cada capa. Como veremos, una red con incluso
una capa oculta es suficiente para adaptarse al conjunto de entrenamiento. Las redes más profundas
a menudo pueden utilizar muchas menos unidades por capa y muchos menos parámetros y, a
menudo, se generalizan al conjunto de pruebas, pero también suelen ser más difíciles de optimizar.
La arquitectura de red ideal para una tarea debe encontrarse mediante experimentación guiada por
el seguimiento del error del conjunto de validación.
6.4.1 Profundidad y propiedades de aproximación universal
Un modelo lineal, que asigna características a resultados mediante la multiplicación de matrices,
puede, por definición, representar solo funciones lineales. Tiene la ventaja de ser fácil de entrenar
porque muchas funciones de pérdida dan como resultado problemas de optimización convexa cuando
se aplican a modelos lineales. Desafortunadamente, muchas veces queremos aprender funciones no lineales.
A primera vista, podríamos suponer que aprender una función no lineal requiere diseñar
una familia de modelos especializada para el tipo de no linealidad que queremos aprender.
Afortunadamente, las redes de avance con capas ocultas proporcionan un marco de aproximación
universal. Específicamente, el teorema de aproximación universal (Hornik et al., 1989; Cybenko, 1989)
establece que una red feedforward con una capa de salida lineal y al menos una capa oculta con
cualquier función de activación "aplastante" (como la función de activación sigmoidea logística) puede
aproximar cualquier función medible de Borel de un espacio de dimensión finita a otro con cualquier
cantidad de error deseada distinta de cero , siempre que la red tenga suficientes unidades ocultas. Las
derivadas de la red feedforward también pueden aproximarse arbitrariamente a las derivadas de la
función (Hornik et al., 1990). El concepto de mensurabilidad de Borel está más allá del alcance de este
libro; Para nuestros propósitos basta decir que cualquier función continua en un subconjunto cerrado y
acotado de Rn es medible por Borel y, por lo tanto, puede aproximarse mediante una red neuronal. Una
red neuronal también puede aproximar cualquier mapeo de funciones de cualquier espacio discreto de
dimensión finita a otro. Si bien los teoremas originales se expresaron por primera vez en términos de
unidades con funciones de activación que saturan tanto para argumentos muy negativos como para
argumentos muy positivos, también se han demostrado teoremas de aproximación universal para una
clase más amplia de funciones de activación, que incluye la unidad lineal rectificada ahora comúnmente
utilizada. (Leshno et al., 1993).
El teorema de aproximación universal significa que, independientemente de qué función
intentemos aprender, sabemos que un MLP grande podrá representar esta función. Sin embargo, no
tenemos garantía de que el algoritmo de entrenamiento pueda aprender esa función. Incluso si el
MLP es capaz de representar la función, el aprendizaje puede fallar por dos razones diferentes.
Primero, el algoritmo de optimización utilizado para el entrenamiento.
198
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Es posible que no pueda encontrar el valor de los parámetros que corresponde a la función
deseada. En segundo lugar, el algoritmo de entrenamiento podría elegir la función incorrecta
debido a un sobreajuste. Recuerde de la sección 5.2.1 que el teorema de “no hay almuerzo
gratis” muestra que no existe un algoritmo de aprendizaje automático universalmente superior.
Las redes de avance proporcionan un sistema universal para representar funciones, en el
sentido de que, dada una función, existe una red de avance que se aproxima a la función. No
existe un procedimiento universal para examinar un conjunto de entrenamiento de ejemplos
específicos y elegir una función que se generalizará a puntos que no están en el conjunto de entrenamiento.
El teorema de aproximación universal dice que existe una red lo suficientemente grande como
para lograr cualquier grado de precisión que deseemos, pero el teorema no dice qué tan grande será
esta red. Barron (1993) proporciona algunos límites sobre el tamaño de una red de una sola capa
necesaria para aproximar una clase amplia de funciones.
Desafortunadamente, en el peor de los casos, puede ser necesario un número exponencial de unidades ocultas (posiblemente con una unidad oculta correspondiente a cada configuración de entrada que deba distinguirse ). Esto es más fácil de ver en el caso binario: el número n 2 de funciones
binarias posibles en vectores v
{0, 1} n es 2 y la selección de bits, que en general requerirá O(2 n ) grados de una de esas funciones, requiere 2 libertad.
norte
En resumen, una red feedforward con una sola capa es suficiente para representar cualquier
función, pero la capa puede ser inviable y puede no aprender y generalizar correctamente. En muchas
circunstancias, el uso de modelos más profundos puede reducir la cantidad de unidades necesarias
para representar la función deseada y puede reducir la cantidad de error de generalización.
Existen familias de funciones que pueden aproximarse eficientemente mediante una arquitectura
con una profundidad mayor que algún valor d, pero que requieren un modelo mucho más grande si la
profundidad se restringe a ser menor o igual a d. En muchos casos, el número de unidades ocultas
requeridas por el modelo superficial es exponencial en n. Estos resultados se demostraron por
primera vez para modelos que no se parecen a las redes neuronales continuas y diferenciables
utilizadas para el aprendizaje automático, pero desde entonces se han extendido a estos modelos.
Los primeros resultados fueron para circuitos de puertas lógicas (Håstad, 1986). Trabajos posteriores
ampliaron estos resultados a unidades de umbral lineales con ponderaciones no negativas (Håstad y
Goldmann, 1991; Hajnal et al., 1993), y luego a redes con activaciones de valores continuos (Maass,
1992; Maass et al., 1994). . Muchas redes neuronales modernas utilizan unidades lineales rectificadas.
Leshno et al. (1993) demostraron que las redes poco profundas con una amplia familia de funciones
de activación no polinómicas, incluidas unidades lineales rectificadas, tienen propiedades de
aproximación universal, pero estos resultados no abordan las cuestiones de profundidad o eficiencia;
sólo especifican que una red rectificadora suficientemente amplia podría representar cualquier
función. Montúfar et al.
199
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
(2014) demostraron que funciones representables con una red rectificadora profunda pueden
requerir un número exponencial de unidades ocultas con una red poco profunda (una capa oculta).
Más precisamente, demostraron que las redes lineales por partes (que se pueden obtener
a partir de no linealidades rectificadoras o unidades maxout) pueden representar funciones
con un número de regiones exponencial en la profundidad de la red. La Figura 6.5 ilustra
cómo una red con rectificación de valor absoluto crea imágenes especulares de la función
calculada sobre alguna unidad oculta, con respecto a la entrada de esa unidad oculta.
Cada unidad oculta especifica dónde plegar el espacio de entrada para crear respuestas
especulares (en ambos lados de la no linealidad del valor absoluto). Al componer estas
operaciones de plegado, obtenemos un número exponencialmente grande de regiones
lineales por tramos que pueden capturar todo tipo de patrones regulares (por ejemplo, repetidos).
Figura 6.5: Una explicación geométrica intuitiva de la ventaja exponencial de las redes
rectificadoras más profundas formalmente realizada por Montufar et al. (2014). (Izquierda) Una
unidad de rectificación de valor absoluto tiene la misma salida para cada par de puntos espejo
en su entrada. El eje de simetría del espejo viene dado por el hiperplano definido por los pesos
y el sesgo de la unidad. Una función calculada sobre esa unidad (la superficie de decisión
verde) será una imagen especular de un patrón más simple a lo largo de ese eje de simetría.
(Centro)La función se puede obtener doblando el espacio alrededor del eje de simetría.
(Derecha) Se puede doblar otro patrón repetido encima del primero (mediante otra unidad
aguas abajo) para obtener otra simetría (que ahora se repite cuatro veces, con dos capas
ocultas). Figura reproducida con autorización de Montufar et al. (2014).
Más precisamente, el teorema principal de Montufar et al. (2014) afirma que el número de
regiones lineales talladas por una red rectificadora profunda con d entradas, profundidad l y n
unidades por capa oculta es
(6.42)
O
y
d(l−1) n d
,
es decir, exponencial en la profundidad l. En el caso de redes maxout con k filtros por
unidad, el número de regiones lineales es
O
k (l−1)+d
200
.
(6.43)
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Por supuesto, no hay garantía de que los tipos de funciones que queremos aprender en
aplicaciones de aprendizaje automático (y en particular para la IA) compartan esa propiedad.
Es posible que también queramos elegir un modelo profundo por razones estadísticas.
Cada vez que elegimos un algoritmo de aprendizaje automático específico, implícitamente
estamos afirmando un conjunto de creencias previas que tenemos sobre qué tipo de función
debería aprender el algoritmo. La elección de un modelo profundo codifica una creencia
muy general de que la función que queremos aprender debe implicar la composición de
varias funciones más simples. Esto puede interpretarse desde el punto de vista del
aprendizaje por representación diciendo que creemos que el problema de aprendizaje
consiste en descubrir un conjunto de factores de variación subyacentes que a su vez
pueden describirse en términos de otros factores de variación subyacentes más simples.
Alternativamente, podemos interpretar el uso de una arquitectura profunda como una
expresión de la creencia de que la función que queremos aprender es un programa de
computadora que consta de múltiples pasos, donde cada paso hace uso del resultado del
paso anterior. Estas salidas intermedias no son necesariamente factores de variación, sino
que pueden ser análogas a contadores o punteros que la red utiliza para organizar su
procesamiento interno. Empíricamente, una mayor profundidad parece dar como resultado
una mejor generalización para una amplia variedad de tareas (Bengio et al., 2007; Erhan et
al., 2009; Bengio, 2009; Mesnil et al., 2011; Ciresan et al., 2012; Krizhevsky et al., 2012;
Sermanet et al . , 2013; Farabet et al . , 2013 ; Szegedy et al., 2014a ) . Véanse las figuras
6.6 y 6.7 para ver ejemplos de algunos de estos resultados empíricos. Esto sugiere que el
uso de arquitecturas profundas expresa una prioridad útil sobre el espacio de funciones que aprende el mo
6.4.2 Otras consideraciones arquitectónicas
Hasta ahora hemos descrito las redes neuronales como simples cadenas de capas, siendo
las principales consideraciones la profundidad de la red y el ancho de cada capa.
En la práctica, las redes neuronales muestran una diversidad considerablemente mayor.
Se han desarrollado muchas arquitecturas de redes neuronales para tareas específicas.
En el capítulo 9 se describen arquitecturas especializadas para visión por computadora llamadas redes
convolucionales. Las redes feedforward también se pueden generalizar a las redes neuronales recurrentes
para el procesamiento de secuencias, descritas en el capítulo 10, que tienen sus propias consideraciones
arquitectónicas.
En general, no es necesario que las capas estén conectadas en cadena, aunque esta es la práctica más
común. Muchas arquitecturas construyen una cadena principal pero luego le agregan características arquitectónicas
adicionales, como omitir conexiones que van de la capa i a la capa i + 2 o superior. Estas conexiones de salto
facilitan que el gradiente fluya desde las capas de salida a las capas más cercanas a la entrada.
201
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
96,5
96.0
95,5
95.0
94,5
(porcentaje)
prueba
la
de
Precisión
94.0
93,5
93.0
92,5
92.0
3
4
5
6
7
8
9
10
11
Número de capas ocultas
Figura 6.6: Resultados empíricos que muestran que las redes más profundas se generalizan mejor cuando
se utilizan para transcribir números de varios dígitos a partir de fotografías de direcciones. Datos de
Goodfellow et al. (2014d). La precisión del equipo de prueba aumenta constantemente al aumentar la
profundidad. Consulte la figura 6.7 para ver un experimento de control que demuestra que otros aumentos
del tamaño del modelo no producen el mismo efecto.
Otra consideración clave del diseño arquitectónico es exactamente cómo conectar un par de capas
entre sí. En la capa de red neuronal predeterminada descrita por una transformación lineal a través de
una matriz W , cada unidad de entrada está conectada a cada unidad de salida. Muchas redes
especializadas en los capítulos siguientes tienen menos conexiones, de modo que cada unidad en la
capa de entrada está conectada solo a un pequeño subconjunto de unidades en la capa de salida.
Estas estrategias para reducir la cantidad de conexiones reducen la cantidad de parámetros y la
cantidad de cálculo requerido para evaluar la red, pero a menudo dependen en gran medida del
problema. Por ejemplo, las redes convolucionales, descritas en el capítulo 9, utilizan patrones
especializados de conexiones dispersas que son muy efectivos para problemas de visión por
computadora. En este capítulo, es difícil dar consejos mucho más específicos sobre la arquitectura de
una red neuronal genérica. Los capítulos siguientes desarrollan las estrategias arquitectónicas
particulares que se ha encontrado que funcionan bien para diferentes dominios de aplicaciones.
202
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
97
3, convolucional 3,
96
completamente
95
conectado 11, convolucional
(porcentaje)
prueba
la
de
Precisión
94
93
92
91
0.0
0,2
0,4
0,6
Número de parámetros
0,8
1,0
×10 8
Figura 6.7: Los modelos más profundos tienden a funcionar mejor. Esto no se debe simplemente a que
el modelo sea más grande. Este experimento de Goodfellow et al. (2014d) muestra que aumentar el
número de parámetros en capas de redes convolucionales sin aumentar su profundidad no es tan efectivo
para aumentar el rendimiento del conjunto de pruebas. La leyenda indica la profundidad de la red utilizada
para crear cada curva y si la curva representa una variación en el tamaño de las capas convolucionales o
completamente conectadas. Observamos que los modelos superficiales en este contexto se ajustan
demasiado a alrededor de 20 millones de parámetros, mientras que los profundos pueden beneficiarse
de tener más de 60 millones. Esto sugiere que el uso de un modelo profundo expresa una preferencia útil
sobre el espacio de funciones que el modelo puede aprender. Específicamente, expresa la creencia de
que la función debería consistir en muchas funciones más simples compuestas juntas. Esto podría
resultar en aprender una representación que se compone a su vez de representaciones más simples (por
ejemplo, esquinas definidas en términos de bordes) o en aprender un programa con pasos secuencialmente
dependientes (por ejemplo, primero ubicar un conjunto de objetos, luego segmentarlos de cada uno).
otros, luego reconocerlos ).
203
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
6.5 Retropropagación y otros algoritmos de diferenciación
ritmos
Cuando utilizamos una red neuronal de avance para aceptar una entrada x y producir
una salida yˆ, la información fluye hacia adelante a través de la red. Las entradas x
proporcionan la información inicial que luego se propaga hasta las unidades ocultas en
cada capa y finalmente produce yˆ. Esto se llama propagación hacia adelante. Durante el
entrenamiento, la propagación directa puede continuar hasta que produzca un costo escalar J (θ).
El algoritmo de retropropagación (Rumelhart et al., 1986a), a menudo llamado
simplemente backprop, permite que la información del costo fluya hacia atrás a
través de la red, para calcular el gradiente.
Calcular una expresión analítica para el gradiente es sencillo, pero evaluar
numéricamente dicha expresión puede resultar costoso desde el punto de vista
computacional. El algoritmo de retropropagación lo hace mediante un procedimiento sencillo y económic
El término retropropagación a menudo se malinterpreta en el sentido de que significa todo el
algoritmo de aprendizaje para redes neuronales multicapa. En realidad, la propagación hacia
atrás se refiere únicamente al método para calcular el gradiente, mientras que se utiliza otro
algoritmo, como el descenso de gradiente estocástico, para realizar el aprendizaje utilizando este gradiente.
Además, a menudo se malinterpreta que la retropropagación es específica de redes neuronales
multicapa, pero en principio puede calcular derivadas de cualquier función (para algunas funciones, la
respuesta correcta es informar que la derivada de la función no está definida). Específicamente,
describiremos cómo calcular el gradiente
xf(x, y) para una función arbitraria f , donde x es un conjunto
de variables cuyas derivadas se desean, y y es un conjunto adicional de variables que son entradas a
la función pero cuyo No se requieren derivados. En el aprendizaje de algoritmos, el gradiente que
requerimos con mayor frecuencia es el gradiente de la función de costo con respecto a los parámetros,
θJ(θ). Muchas tareas de aprendizaje automático implican calcular otros derivados, ya sea como parte
del proceso de aprendizaje o para analizar el modelo aprendido. El algoritmo de retropropagación
también se puede aplicar a estas tareas y no se limita a calcular el gradiente de la función de costos
con respecto a los parámetros. La idea de calcular derivadas propagando información a través de una
red es muy general y puede usarse para calcular valores como el jacobiano de una función f con
múltiples salidas. Restringimos nuestra descripción aquí al caso más comúnmente utilizado donde f
tiene una única salida.
204
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
6.5.1 Gráficos computacionales
Hasta ahora hemos analizado las redes neuronales con un lenguaje gráfico relativamente informal.
Para describir el algoritmo de retropropagación con mayor precisión, es útil tener un lenguaje gráfico
computacional más preciso .
Son posibles muchas formas de formalizar el cálculo como gráficos.
Aquí, usamos cada nodo en el gráfico para indicar una variable. La variable puede
ser un escalar, un vector, una matriz, un tensor o incluso una variable de otro tipo.
Para formalizar nuestros gráficos, también necesitamos introducir la idea de operación.
Una operación es una función simple de una o más variables. Nuestro lenguaje gráfico va acompañado
de un conjunto de operaciones permitidas. Las funciones más complicadas que las operaciones de este
conjunto se pueden describir componiendo muchas operaciones juntas.
Sin pérdida de generalidad, definimos una operación para devolver solo una variable
de salida. Esto no pierde generalidad porque la variable de salida puede tener múltiples
entradas, como un vector. Las implementaciones de software de retropropagación
generalmente admiten operaciones con múltiples resultados, pero evitamos este caso
en nuestra descripción porque introduce muchos detalles adicionales que no son
importantes para la comprensión conceptual.
Si una variable y se calcula aplicando una operación a una variable x, entonces
dibujamos una arista dirigida de x a y. A veces anotamos el nodo de salida con el nombre
de la operación aplicada y otras veces omitimos esta etiqueta cuando la operación se
desprende del contexto.
En la figura 6.8 se muestran ejemplos de gráficos computacionales .
6.5.2 Regla de la cadena del cálculo
La regla de la cadena del cálculo (que no debe confundirse con la regla de la cadena de
probabilidad) se utiliza para calcular las derivadas de funciones formadas al componer otras
funciones cuyas derivadas se conocen. La retropropagación es un algoritmo que calcula la regla
de la cadena, con un orden específico de operaciones que es altamente eficiente.
Sea x un número real y sean f y g funciones que se asignan de un número
real a un número real. Supongamos que y = g(x) y z = f(g(x)) = f (y). Entonces
la regla de la cadena establece que
dz
dx
=
dz dy
.
(6.44)
dy dx
Podemos generalizar esto más allá del caso escalar. Supongamos que x
205
Rm, y
Rn
,
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
yˆ
σ
z
tu
(1)
tu
(2)
+
punto
×
y
X
X
b
w
(a)
(b)
tu(2)
h
relu
×
suma
tú (1)
tú (2)
tu(3)
tú (1)
yˆ
+
punto
cuadrado
matmul
X
W.
b
X
(C)
w
λ
(d)
Figura 6.8: Ejemplos de gráficos computacionales. (a) La gráfica que utiliza la operación × para
calcular z = xy. (b) La gráfica de la predicción de regresión logística yˆ = σ x w + b .
Algunas de las expresiones intermedias no tienen nombres en la expresión algebraica (i) pero necesitan nombres
en el gráfico. Simplemente llamamos u a la i­ésima variable de este tipo . (c) El gráfico computacional para la
expresión H = max{0,XW + b}, que calcula una matriz de diseño de activaciones de unidades lineales rectificadas H
dada una matriz de diseño que contiene un minibatch de entradas X. (d)Ejemplos a­c aplicados como máximo una
operación para cada variable, pero es posible aplicar más de una operación. Aquí mostramos un gráfico de cálculo
que aplica más de una operación a los pesos w de un modelo de regresión lineal. Los pesos se utilizan para realizar
tanto la predicción yˆ como la penalización por disminución del peso λ
i.
i w2
206
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
g mapas de R
metro
ar
norte
, y f mapas de R
norte
∂z
∂yj
∂xi
j
a R. Si y = g(x) y z = f(y), entonces
∂z ∂yj =
.
(6.45)
∂xi
En notación vectorial, esto puede escribirse de manera equivalente como
z,
xz = ∂x∂y
(6.46)
y
donde ∂y es la matriz jacobiana n × m de g.
∂x
De esto vemos que el gradiente de una variable x se puede obtener multiplicando una matriz
∂y
jacobiana por un gradiente
yz. El algoritmo de retropropagación consiste en realizar un producto de
∂x
gradiente jacobiano para cada operación en el gráfico.
Por lo general, no aplicamos el algoritmo de retropropagación simplemente a vectores, sino
a tensores de dimensionalidad arbitraria. Conceptualmente, esto es exactamente lo mismo que
la propagación hacia atrás con vectores. La única diferencia es cómo se organizan los números
en una cuadrícula para formar un tensor. Podríamos imaginarnos aplanar cada tensor en un
vector antes de ejecutar la propagación hacia atrás, calcular un gradiente con valor vectorial y
luego remodelar el gradiente nuevamente en un tensor. En esta visión reorganizada, la
retropropagación sigue siendo simplemente multiplicar los jacobianos por gradientes.
Para denotar el gradiente de un valor z con respecto a un tensor X, escribimos
Xz, como si X fuera un vector. Los índices de X
ahora tienen múltiples coordenadas; por ejemplo, un tensor tridimensional está indexado por tres coordenadas. Podemos abstraer esto
usando una sola variable i para representar la tupla completa de índices. Para todas las ∂z posibles tuplas de índice i, (
X z)i da
∂Xi . Esto es exactamente lo mismo que para
∂z
todos los posibles índices enteros i en un vector, ( xz)i da ∂xi
. Usando esta notación,
podemos escribir la regla de la cadena aplicable a los tensores. Si Y = g(X) y z = f(Y), entonces
∂z
Xz=
(
XYj ) ∂Yj
.
(6.47)
j
6.5.3 Aplicar recursivamente la regla de la cadena para obtener backprop
Usando la regla de la cadena, es sencillo escribir una expresión algebraica para el gradiente de un
escalar con respecto a cualquier nodo en el gráfico computacional que produjo ese escalar. Sin embargo,
evaluar esa expresión en una computadora introduce algunas consideraciones adicionales.
Específicamente, muchas subexpresiones pueden repetirse varias veces dentro de la
expresión general del gradiente. Cualquier procedimiento que calcule el gradiente.
207
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Tendrá que elegir si desea almacenar estas subexpresiones o recalcularlas varias veces.
En la figura 6.9 se da un ejemplo de cómo surgen estas subexpresiones repetidas . En
algunos casos, calcular la misma subexpresión dos veces sería simplemente un
desperdicio. Para gráficos complicados, puede haber exponencialmente muchos de estos
cálculos desperdiciados, lo que hace inviable una implementación ingenua de la regla de la cadena.
En otros casos, calcular la misma subexpresión dos veces podría ser una forma válida de
reducir el consumo de memoria a costa de un mayor tiempo de ejecución.
Primero comenzamos con una versión del algoritmo de propagación hacia atrás que especifica directamente el
cálculo del gradiente real (algoritmo 6.2 junto con el algoritmo 6.1 para el cálculo hacia adelante asociado), en el orden
en que realmente se realizará y de acuerdo con la aplicación recursiva de la regla de la cadena. . Se podrían realizar
estos cálculos directamente o ver la descripción del algoritmo como una especificación simbólica del gráfico
computacional para calcular la retropropagación. Sin embargo, esta formulación no hace explícita la manipulación y
construcción del gráfico simbólico que realiza el cálculo del gradiente. Esta formulación se presenta a continuación en
la sección 6.5.6, con el algoritmo 6.5, donde también generalizamos a nodos que contienen tensores arbitrarios.
Primero considere un gráfico computacional que describe cómo calcular un único escalar (n) (digamos la pérdida
tu en un ejemplo de entrenamiento). Este escalar es la cantidad cuyo (1) es u (ni ) . En gradiente queremos obtener,
ni nodos de entrada, u ∂u (n) para todo i
{1, 2, . . . , ni}. En otras palabras, en la aplicación
con respecto a los
para el descenso de gradientes sobre parámetros,
deseamos
calcular ∂u(i) de la retropropagación para calcular gradientes
(n)
será el costo asociado con un ejemplo o un minibatch, mientras que u (1) a u ( ni)
tu
Corresponden a los parámetros del modelo.
Supondremos que los nodos del gráfico se han ordenado de tal manera (ni +1) y que podemos
calcular su
salida uno tras otro, comenzando en u (n) (i) está asociado con un ascenso hasta u .
la función
Como se define en el algoritmo 6.1, cada nodo u operación f (i) y se calcula evaluando
tu
(i)
= f(A (i) )
donde A(i) es el conjunto de todos los nodos que son padres de u (i)
(6.48)
.
Ese algoritmo especifica el cálculo de la propagación hacia adelante, que podríamos poner en un gráfico G. Para
realizar la propagación hacia atrás, podemos construir un gráfico computacional que dependa de G y le agregue un
conjunto adicional de nodos. Estos forman un subgrafo B con un nodo por nodo de G. El cálculo en B procede
exactamente en el orden inverso al de cálculo en G, y cada nodo de B calcula ∂u (n) (i) la derivada asociada con el
gráfico directo nodo u . Esto se hace ∂u(i)
208
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Algoritmo 6.1 Un procedimiento que realiza los cálculos asignando ni entradas (1) a u (ni) a una salida u (n)
. Esto define un gráfico computacional donde cada nodo (i)
tu
numérico u A (i) que comprende
aplicando una función f (i) al conjunto de argumentos calcula el valor
los valores de los nodos anteriores u (j) , j < i, con j
Pa(u (i)). La entrada al gráfico computacional es
el vector x, y se establece en los primeros ni nodos (1) a u (ni ).
tu
. La salida del gráfico computacional se lee en el último (salida) (n) nodo u
.
para yo = 1, .
tu (i) ← xi
. . , no lo hago
final para
para i = ni + 1, . . .
A (i) ← {u (j) | j
(i)
tu (A (i))
, n hacer
Pa(u (i) )} (i) ← f
fin para
devolverte
(n )
(n)
usando la regla de la cadena con respecto a la salida escalar u:
∂u (n) ∂u (i)
∂u (n)
=
∂u (j)
i:j
Pa(u (i) )
(6.49)
∂u (i) ∂u (j)
como se especifica en el algoritmo 6.2. El subgrafo B contiene exactamente una arista para cada (j) al nodo u (i) de G.
La arista de u (j) a u (i) está asociada con la arista del nodo u ∂u (i) el cálculo de
∂u(j) . Además, se realiza un producto escalar para cada nodo, (i) que son hijos entre el
gradiente ya calculado con
respecto a los nodos u de u
∂u (i)
para los mismos niños ∂u(j)
(j) y el vector que contiene las derivadas parciales (i) nodos u . En
resumen, la cantidad de cálculo necesaria para realizar la retropropagación aumenta linealmente con el número de
aristas en G, donde el cálculo para cada arista corresponde también al cálculo de una derivada parcial (de un nodo
con respecto a uno de sus padres). como realizar una multiplicación y una suma. A continuación, generalizamos este
análisis a nodos con valores tensoriales, que es solo una forma de agrupar múltiples valores escalares en el mismo
nodo y permitir implementaciones más eficientes.
El algoritmo de retropropagación está diseñado para reducir la cantidad de subexpresiones comunes sin tener
en cuenta la memoria. Específicamente, funciona del orden de un producto jacobiano por nodo en el gráfico. Esto se
puede ver en el hecho de que (j) al nodo u (i) de ese backprop (algoritmo 6.2) visita cada borde del nodo u ∂u (i) del
gráfico exactamenteuna
vez para obtener la derivada parcial asociada ∂u(j). ) .
209
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Algoritmo 6.2 Versión simplificada del algoritmo de retropropagación para calcular (n) con respecto a las variables del
las derivadas de u
gráfico. Este ejemplo pretende mejorar la comprensión al mostrar un caso simplificado
donde todas las variables (1) (ni ) son escalares y deseamos calcular las derivadas con respecto a u. Esta versión
simplificada
, . . . , tu
calcula las derivadas de todos los nodos en el gráfico. El costo computacional de este algoritmo es
.
proporcional al número de aristas en el gráfico, suponiendo que la derivada parcial asociada a cada arista requiere un
tiempo constante. Este es del mismo orden que el número de cálculos para ∂u (i) la propagación directa. Por lo tanto,
cada uno ∂u(j) vincula los nodos del gráfico directo con los agregados para el gráfico de propagación hacia atrás.
es una función de los padres u
(j) de u (i)
,
Ejecute la propagación hacia adelante (algoritmo 6.1 para este ejemplo) para obtener las activaciones
de la red. Inicialice
grad_table, una estructura de datos que almacenará las derivadas que se han calculado. La entrada
grad_table[u (i) ] almacenará el valor calculado de
∂u (n)
∂u(i) .
grad_table[u (n) ] ← 1 para j
= n − 1 hasta 1 hacer ∂u (n)
La siguiente línea calcula ∂u(j)
grad_table[u (j) ] ←
fin para
i:j
=
∂u (n) ∂u (i)
usando valores almacenados: i:j
Pa(u(i)) grad_table[u (i) ]
Pa(u (i) ) ∂u(i) ∂u(j) ∂u (i)
∂u (j)
devolver {grad_table[u (i) ] | yo = 1, . . . , ni}
La retropropagación evita así la explosión exponencial en subexpresiones repetidas.
Sin embargo, otros algoritmos pueden evitar más subexpresiones realizando simplificaciones en el
gráfico computacional, o pueden conservar memoria recalculando en lugar de almacenar algunas
subexpresiones. Revisaremos estas ideas después de describir el propio algoritmo de retropropagación.
6.5.4 Cálculo de retropropagación en MLP totalmente conectado
Para aclarar la definición anterior del cálculo de retropropagación, consideremos el gráfico específico
asociado con un MLP multicapa completamente conectado.
El algoritmo 6.3 muestra primero la propagación directa, que asigna parámetros a la
pérdida supervisada L(yˆ, y) asociada con un único ejemplo de entrenamiento (entrada,
objetivo) (x, y), siendo ˆy la salida de la red neuronal cuando se proporciona x. en entrada.
El algoritmo 6.4 luego muestra el cálculo correspondiente a realizar para
210
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
z
F
y
F
X
F
w
Figura 6.9: Un gráfico computacional que da como resultado subexpresiones repetidas al calcular el gradiente.
Sea w
R la entrada al gráfico. Usamos la misma función f : R → R como operación que aplicamos en cada
paso de una cadena: x = f(w), y = f(x), z = f(y).
Para calcular ∂z∂w , aplicamos la ecuación 6.44 y obtenemos:
∂z
=
(6.50)
∂w
∂z ∂y ∂x
(6.51)
∂y ∂x ∂w =f
(y)f
(x)f
(w) =f
(f(f(w)))f
(f(w))f
(6,52)
(w)
(6,53)
La ecuación 6.52 sugiere una implementación en la que calculamos el valor de f (w) sólo una vez
y lo almacenamos en la variable x. Este es el enfoque adoptado por el algoritmo de
retropropagación . La ecuación 6.53 sugiere un enfoque alternativo , donde la subexpresión f(w)
aparece más de una vez. En el método alternativo, f (w) se vuelve a calcular cada vez que es
necesario. Cuando la memoria necesaria para almacenar el valor de estas expresiones es baja,
el enfoque de retropropagación de la ecuación 6.52 es claramente preferible debido a su tiempo
de ejecución reducido. Sin embargo, la ecuación 6.53 también es una implementación válida de la
regla de la cadena y es útil cuando la memoria es limitada.
211
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
aplicando el algoritmo de retropropagación a este gráfico.
Los algoritmos 6.3 y 6.4 son demostraciones elegidas para que sean simples y
directas de entender. Sin embargo, están especializados en un problema específico.
Las implementaciones de software modernas se basan en la forma generalizada de
propagación hacia atrás descrita en la sección 6.5.6 a continuación, que puede acomodar
cualquier gráfico computacional manipulando explícitamente una estructura de datos para
representar el cálculo simbólico.
Algoritmo 6.3 Propagación hacia adelante a través de una red neuronal profunda típica y cálculo de la
función de costos. La pérdida L(yˆ, y) depende de la salida yˆ y del objetivo y (consulte la sección
6.2.1.1 para ver ejemplos de funciones de pérdida). Para obtener el costo total J, la pérdida se puede
agregar a un regularizador Ω(θ ), donde θ contiene todos los parámetros (pesos y sesgos). El algoritmo
6.4 muestra cómo calcular gradientes de J con respecto a los parámetros W y b. Para simplificar, esta
demostración utiliza solo un ejemplo de entrada x. Las aplicaciones prácticas deben utilizar un
minibatch. Consulte la sección 6.5.7 para una demostración más realista.
Requerir: Profundidad de la red, l
Requerir: W(i) ,i
{1, . . . , l}, las matrices de pesos del modelo Requieren: b (i) ,i
{1, . . . , l}, los parámetros de sesgo del modelo Requerir: x, la entrada a
procesar Requerir: y, la salida objetivo
h (0) =x
para k = 1, . . . , Yo hago
a (k) = segundo (k) + W(k)h
h (k) (k−1) = f(a (k) )
fin para
yˆ = h (l)
J = L(yˆ, y) + λΩ(θ)
6.5.5 Derivadas de símbolo a símbolo
Tanto las expresiones algebraicas como los gráficos computacionales operan con símbolos o variables
que no tienen valores específicos. Estas representaciones algebraicas y basadas en gráficos se
denominan representaciones simbólicas . Cuando realmente usamos o entrenamos una red neuronal,
debemos asignar valores específicos a estos símbolos. Reemplazamos una entrada simbólica a la red
x con un valor numérico específico , como [1.2, 3.765, −1.8]
212
.
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Algoritmo 6.4 Cálculo hacia atrás para la red neuronal profunda del algoritmo 6.3, que
utiliza además de la entrada x un objetivo y. Este cálculo (k) para cada capa k, comenzando
activaciones de una capa de salida y
desde produce los gradientes en las
retrocediendo hasta la primera capa oculta. A partir de estos gradientes, que pueden
interpretarse como una indicación de cómo debe cambiar la salida de cada capa para
reducir el error, se puede obtener el gradiente de los parámetros de cada capa. Los
gradientes sobre ponderaciones y sesgos se pueden usar inmediatamente como parte de
una actualización de gradiente estocástico (realizando la actualización justo después de
que se hayan calculado los gradientes) o usarse con otros métodos de optimización basados en gradien
Después del cálculo directo, calcule el gradiente en la capa de salida: g ←
yˆJ =
yˆL(yˆ, y) para k = l, l −
.,1
1, . .
hacer Convertir el gradiente en la salida de la capa en un gradiente en la activación previa a la no
linealidad (multiplicación por elementos si f es por elementos): g ←
a(k)J = g
f
(a (k))
Calcule los gradientes de ponderaciones y sesgos (incluido el término de regularización,
cuando sea
necesario): b (k)J = g +
λ b (k)Ω(θ) W (k)J = gh (k−1)
+λ
W(k)Ω(θ)
Propague los gradientes con las activaciones de la siguiente capa oculta de nivel inferior: g ←
h(k−1) J = W(k)
g end for
213
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
z
F
z
F
y
F
y
F
dzdy
F
F
X
F
X
dy
×
dx
dzdx
F
F
w
w
dx
dw
×
dz
dw
Figura 6.10: Un ejemplo del enfoque de símbolo a símbolo para calcular derivadas. En este enfoque, el algoritmo
de retropropagación no necesita acceder nunca a ningún valor numérico específico real. En cambio, agrega nodos
a un gráfico computacional que describe cómo calcular estas derivadas. Posteriormente, un motor de evaluación
de gráficos genérico puede calcular las derivadas de cualquier valor numérico específico. (Izquierda) En este
ejemplo, comenzamos con una gráfica que representa z = f (f(f (w))). (Derecha) Ejecutamos el algoritmo de
retropropagación y le indicamos que construya el gráfico para la expresión correspondiente a dzdw . En este
ejemplo, no explicamos cómo funciona el algoritmo de retropropagación. El propósito es sólo ilustrar cuál es el
resultado deseado: un gráfico computacional con una descripción simbólica de la derivada.
Algunos enfoques de retropropagación toman un gráfico computacional y un conjunto
de valores numéricos para las entradas del gráfico, luego devuelven un conjunto de valores
numéricos que describen el gradiente en esos valores de entrada. A este enfoque lo
llamamos diferenciación de “símbolo a número”. Este es el enfoque utilizado por bibliotecas
como Torch (Collobert et al., 2011b) y Caffe (Jia, 2013).
Otro enfoque es tomar un gráfico computacional y agregarle nodos adicionales
que proporcionen una descripción simbólica de las derivadas deseadas. Este es el
enfoque adoptado por Theano (Bergstra et al., 2010; Bastien et al., 2012) y
TensorFlow (Abadi et al., 2015). En la figura 6.10 se ilustra un ejemplo de cómo
funciona este enfoque . La principal ventaja de este enfoque es que los derivados
se describen en el mismo idioma que la expresión original.
Debido a que las derivadas son simplemente otro gráfico computacional, es posible ejecutar
la propagación hacia atrás nuevamente, diferenciando las derivadas para obtener derivadas
más altas. El cálculo de las derivadas de orden superior se describe en la sección 6.5.10.
Usaremos el último enfoque y describiremos el algoritmo de retropropagación en
214
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
términos de construcción de un gráfico computacional para las derivadas. Cualquier subconjunto del
gráfico puede evaluarse utilizando valores numéricos específicos más adelante. Esto nos permite evitar
especificar exactamente cuándo se debe calcular cada operación.
En cambio, un motor de evaluación de gráficos genérico puede evaluar cada nodo tan pronto como los
valores de sus padres estén disponibles.
La descripción del enfoque basado en símbolo a símbolo incluye el enfoque de símbolo a número. Se
puede entender que el enfoque de símbolo a número realiza exactamente los mismos cálculos que se realizan
en el gráfico creado mediante el enfoque de símbolo a símbolo. La diferencia clave es que el enfoque de
símbolo a número no expone el gráfico.
6.5.6 Propagación general hacia atrás
El algoritmo de retropropagación es muy simple. Para calcular el gradiente de algún escalar z con
respecto a uno de sus ancestros x en el gráfico, comenzamos observando que el gradiente con respecto
a z viene dado por dzdz = 1. Luego podemos calcular el gradiente con respecto a cada padre de z en el
gráfico multiplicando el gradiente actual por el jacobiano de la operación que produjo z. Seguimos
multiplicando por jacobianos recorriendo la gráfica hacia atrás de esta forma hasta llegar a x. Para
cualquier nodo al que se pueda llegar retrocediendo desde z a través de dos o más caminos, simplemente
sumamos los gradientes que llegan desde diferentes caminos a ese nodo.
Más formalmente, cada nodo del gráfico G corresponde a una variable. Para lograr la máxima generalidad,
describimos esta variable como un tensor V. En general, el tensor puede tener cualquier número de
dimensiones. Incluyen escalares, vectores y matrices.
Suponemos que cada variable V está asociada a las siguientes subrutinas:
• get_operation(V): Esto devuelve la operación que calcula V, representada por
los bordes que entran en V en el gráfico computacional. Por ejemplo, puede
haber una clase de Python o C++ que represente la operación de multiplicación
de matrices y la función get_operation . Supongamos que tenemos una
variable creada mediante multiplicación de matrices, C = AB. Luego
get_operation(V) devuelve un puntero a una instancia de la clase C++ correspondiente.
• get_consumers(V, G): Esto devuelve la lista de variables que son hijas de V en
el gráfico computacional G.
• get_inputs(V, G): Esto devuelve la lista de variables que son padres de V
en el gráfico computacional G.
215
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Cada operación op también está asociada con una operación bprop . este bprop
La operación puede calcular un producto vectorial jacobiano como se describe en la ecuación 6.47.
Así es como el algoritmo de retropropagación puede lograr una gran generalidad.
Cada operación es responsable de saber cómo propagarse hacia atrás a través del
bordes en el gráfico en el que participa. Por ejemplo, podríamos usar una matriz
operación de multiplicación para crear una variable C = AB. Supongamos que el gradiente
de un escalar z con respecto a C está dada por G. La operación de multiplicación de matrices
es responsable de definir dos reglas de retropropagación, una para cada una de sus entradas
argumentos. Si llamamos al método bprop para solicitar el gradiente con respecto a
A dado que el gradiente en la salida es G, entonces el método bprop de la
La operación de multiplicación de matrices debe indicar que el gradiente con respecto a A
está dado por GB . Del mismo modo, si llamamos al método bprop para solicitar el gradiente
con respecto a B, entonces la operación matricial es responsable de implementar la
método bprop y especificando que el gradiente deseado viene dado por A
G. El
El algoritmo de retropropagación en sí no necesita conocer ninguna regla de diferenciación. Él
sólo necesita llamar a las reglas bprop de cada operación con los argumentos correctos.
Formalmente, op.bprop(inputs, X, G) debe regresar
(
Xop.f(entradas)i) Gi,
(6.54)
i
que es simplemente una implementación de la regla de la cadena como se expresa en la ecuación 6.47.
Aquí, entradas es una lista de entradas que se suministran a la operación, op.f es la
función matemática que implementa la operación, X es la entrada cuyo gradiente
deseamos calcular, y G es el gradiente en la salida de la operación.
El método op.bprop siempre debe pretender que todas sus entradas sean distintas.
unos de otros, incluso si no lo son. Por ejemplo, si se pasa el operador mul
2
dos copias de x para calcular x
, el método op.bprop aún debería devolver x como
derivada con respecto a ambas entradas. El algoritmo de retropropagación más tarde
sume ambos argumentos para obtener 2x, que es el total correcto
derivada de x.
Las implementaciones de software de retropropagación generalmente proporcionan tanto las operaciones
como sus métodos bprop , de modo que los usuarios de bibliotecas de software de aprendizaje profundo estén
capaz de propagarse hacia atrás a través de gráficos creados utilizando operaciones comunes como matriz
multiplicación, exponentes, logaritmos, etc. Ingenieros de software que construyen un
Nueva implementación de retropropagación o usuarios avanzados que necesitan agregar su
propia operación a una biblioteca existente generalmente debe derivar el método op.bprop para
cualquier nueva operación manualmente.
El algoritmo de retropropagación se describe formalmente en el algoritmo 6.5.
216
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Algoritmo 6.5 El esqueleto más externo del algoritmo de retropropagación. Esta parte
realiza un trabajo sencillo de configuración y limpieza. La mayor parte del trabajo
importante ocurre en la subrutina build_grad del algoritmo 6.6.
.Require: T, el conjunto objetivo de variables cuyos gradientes deben calcularse.
Requerir: G, el gráfico computacional Requerir:
z, la variable a diferenciar Sea G podado para contener
solo nodos que son ancestros de z y descendientes de nodos en T.
Inicialice grad_table, una estructura de datos que asocia tensores a sus gradientes grad_table[z]
← 1 para V en T do
build_grad(V, G, G
, grad_table)
fin para
Devolver grad_table restringido a T
En la sección 6.5.2, explicamos que la propagación hacia atrás se desarrolló para evitar
calcular la misma subexpresión en la regla de la cadena varias veces. El algoritmo ingenuo
podría tener un tiempo de ejecución exponencial debido a estas subexpresiones repetidas.
Ahora que hemos especificado el algoritmo de retropropagación, podemos comprender su
costo computacional. Si asumimos que cada evaluación de operación tiene aproximadamente
el mismo costo, entonces podemos analizar el costo computacional en términos del número
de operaciones ejecutadas. Tenga en cuenta aquí que nos referimos a una operación como
la unidad fundamental de nuestro gráfico computacional, que en realidad podría consistir en
muchas operaciones aritméticas (por ejemplo, podríamos tener un gráfico que trate la
multiplicación de matrices como una sola operación). Calcular un gradiente en un gráfico con
n nodos nunca ejecutará más de O(n 2) operaciones ni almacenará la salida de más de O(n
2) operaciones. Aquí contamos operaciones en el gráfico computacional, no operaciones
individuales ejecutadas por el hardware subyacente, por lo que es importante recordar que
el tiempo de ejecución de cada operación puede ser muy variable. Por ejemplo, multiplicar
dos matrices que contienen millones de entradas cada una podría corresponder a una sola
operación en el gráfico. Podemos ver que calcular el gradiente requiere la mayoría de las
operaciones O(n 2) porque, en el peor de los casos, la etapa de propagación hacia adelante
ejecutará todos los n nodos en el gráfico original (dependiendo de qué valores queramos
calcular, es posible que no necesitemos ejecutar todo el gradiente). grafico). El algoritmo de
retropropagación agrega un producto de vector jacobiano, que debe expresarse con O(1)
nodos, por borde en el gráfico original. Debido a que el gráfico computacional es un gráfico
acíclico dirigido, tiene como 2 ) bordes. Para los tipos de gráficos que se utilizan comúnmente
máximo O (n en la práctica, la situación es aún mejor. La mayoría de las funciones de costos de redes neuro
217
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Algoritmo 6.6 La subrutina de bucle interno build_grad(V, G, G , grad_table) del
algoritmo de retropropagación, llamada por el algoritmo de retropropagación definido
en el algoritmo 6.5.
Requerir: V, la variable cuyo gradiente debe agregarse a G y grad_table.
Requerir: G, el gráfico a modificar.
Requerir: G , la restricción de G a nodos que participan en el gradiente.
Requerir: grad_table, una estructura de datos que asigna nodos a sus gradientes
si V está en grad_table entonces
Devuelve grad_table[V] final si
i←1
para C en get_consumers(V, G
haga op ← get_operation(C)
)
D ← build_grad(C, G,G
, grad_table)
G (i) ← op.bprop(get_inputs(C, G
), V, D) i ← i + 1
final para (i)
G←
iG
grad_table[V] = G Insertar
G y las operaciones que lo crean en G Devolver G
tiene una estructura de cadena aproximada, lo que hace que la propagación hacia atrás tenga un
costo O (n) . Esto es mucho mejor que el enfoque ingenuo, que podría necesitar ejecutar
exponencialmente muchos nodos. Este costo potencialmente exponencial se puede ver expandiendo
y reescribiendo la regla de la cadena recursiva (ecuación 6.49) de manera no recursiva:
∂u (n)
∂u(j)
t
=
camino(u (π1) (π2) ,u ,...,u
(πt) ),
k=2
∂u (πk)
∂u(πk−1 ) .
(6.55)
de π1=j a πt=n
Dado que el número de caminos desde el nodo j al nodo n puede crecer exponencialmente en la longitud de estos
caminos, el número de términos en la suma anterior, que es el número de dichos caminos, puede crecer
exponencialmente con la profundidad del gráfico de propagación directa. Se incurriría en este gran costo porque el
mismo cálculo para ∂u (i) ∂u(j)
sería rehecho muchas veces. Para evitar dicho recálculo, podemos pensar en la propagación hacia atrás como
un algoritmo de llenado de tablas que aprovecha el almacenamiento de resultados intermedios ∂u (n).
∂u(i) . Cada nodo del gráfico tiene una ranura correspondiente en una
tabla para almacenar el gradiente de ese nodo. Al completar estas entradas de la tabla en orden,
218
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
La propagación hacia atrás evita la repetición de muchas subexpresiones comunes. Esta
estrategia de llenar tablas a veces se denomina programación dinámica.
6.5.7 Ejemplo: propagación hacia atrás para entrenamiento MLP
Como ejemplo, analizamos el algoritmo de retropropagación tal como se utiliza para entrenar un
perceptrón multicapa.
Aquí desarrollamos una percepción multicapa muy simple con una única capa oculta.
Para entrenar este modelo, utilizaremos el descenso de gradiente estocástico minibatch.
El algoritmo de retropropagación se utiliza para calcular el gradiente del costo en un único
minibatch. Específicamente, utilizamos un mini lote de ejemplos del conjunto de
entrenamiento formateados como una matriz de diseño X y un vector de etiquetas de clase asociadas y.
La red calcula una capa de características ocultas H = max{0, XW (1)}. Para simplificar la
presentación no utilizamos sesgos en este modelo. Suponemos que nuestro lenguaje gráfico
incluye una operación relu que puede calcular max{0, Z} por elementos . Las predicciones de las
probabilidades logarítmicas no normalizadas sobre clases vienen dadas por HW(2) . Suponemos
que nuestro lenguaje gráfico incluye una operación de entropía cruzada que calcula la entropía
cruzada entre los objetivos y y la distribución de probabilidad definida por estas probabilidades
logarítmicas no normalizadas. La entropía cruzada resultante define el costo JMLE. Minimizar
esta entropía cruzada realiza una estimación de máxima verosimilitud del clasificador. Sin
embargo, para que este ejemplo sea más realista, también incluimos un término de regularización.
El costo total
J = JMLE + λ
i,j
2
i,j
2+
W (1)
W (2)
i,j
(6.56)
yo, j
consta de entropía cruzada y un término de caída de peso con coeficiente λ. El gráfico
computacional se ilustra en la figura 6.11.
El gráfico computacional para el gradiente de este ejemplo es lo suficientemente grande como para
que sería tedioso dibujarlo o leerlo. Esto demuestra uno de los beneficios del algoritmo de
retropropagación, que es que puede generar automáticamente gradientes que serían sencillos pero
tediosos para un ingeniero de software derivarlos manualmente.
Podemos rastrear aproximadamente el comportamiento del algoritmo de propagación
hacia atrás observando el gráfico de propagación hacia adelante en la figura 6.11. Para
entrenar, queremos calcular tanto W (1)J como W (2)J. Hay dos caminos diferentes
que van desde J a los pesos: uno a través del costo de entropía cruzada y otro a través del
costo de disminución del peso. El coste de reducción de peso es relativamente sencillo;
siempre contribuirá con 2λW (i) al gradiente en W(i) .
219
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
j
JMLE
+
entropía cruzada
tú (2)
tu(8)
y
matmul
×
h
W (2)
tú (5)
tú
(6)
suma
cuadrado
tú
(7)
λ
+
relu
tú (1)
matmul
X
W (1)
tu(4)
tú (3)
suma
cuadrado
Figura 6.11: El gráfico computacional utilizado para calcular el costo utilizado para entrenar nuestro ejemplo de
un MLP de una sola capa utilizando la pérdida de entropía cruzada y la caída de peso.
El otro camino a través del coste de entropía cruzada es un poco más complicado.
Sea G el gradiente de las probabilidades logarítmicas no normalizadas U(2) proporcionadas
por la operación cross_entropy . El algoritmo de retropropagación ahora necesita explorar
dos ramas diferentes. En la rama más corta, agrega H G al gradiente en W(2) , usando
la regla de retropropagación para el segundo argumento de la operación de multiplicación
de matrices. El otro ramal corresponde a la cadena más larga que desciende más a lo
largo de la red. Primero, el algoritmo de retropropagación calcula HJ = GW (2)
usando la regla de retropropagación para el primer argumento de la operación de
multiplicación de matrices. A continuación, la operación relu utiliza su regla de propagación
hacia atrás para poner a cero los componentes del gradiente correspondientes a las
entradas de U(1) que eran menores que 0. Llamemos al resultado G . El último paso
del algoritmo de retropropagación es utilizar la regla de retropropagación para el segundo
argumento de la operación matmul para agregar X G al gradiente en W(1) .
Una vez calculados estos gradientes, es responsabilidad del algoritmo de descenso
de gradiente, u otro algoritmo de optimización, utilizar estos gradientes para actualizar los
parámetros.
Para el MLP, el costo computacional está dominado por el costo de la multiplicación
de matrices. Durante la etapa de propagación hacia adelante, multiplicamos por cada peso
220
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
matriz, lo que da como resultado O(w) sumas múltiples, donde w es el número de pesos.
Durante la etapa de propagación hacia atrás, multiplicamos por la transpuesta de cada
matriz de peso, que tiene el mismo costo computacional. El principal costo de memoria del
algoritmo es que necesitamos almacenar la entrada en la no linealidad de la capa oculta.
Este valor se almacena desde el momento en que se calcula hasta que el pase hacia atrás regresa al
mismo punto. Por lo tanto, el costo de la memoria es O (mnh), donde m es el número de ejemplos en
el minibatch y nh es el número de unidades ocultas.
6.5.8 Complicaciones
Nuestra descripción aquí del algoritmo de retropropagación es más simple que las implementaciones
realmente utilizadas en la práctica.
Como se señaló anteriormente, hemos restringido la definición de operación a una
función que devuelve un solo tensor. La mayoría de las implementaciones de software
deben admitir operaciones que puedan devolver más de un tensor. Por ejemplo, si
deseamos calcular tanto el valor máximo en un tensor como el índice de ese valor, es
mejor calcular ambos en un solo paso por la memoria, por lo que es más eficiente
implementar este procedimiento como una sola operación con dos salidas.
No hemos descrito cómo controlar el consumo de memoria de la propagación hacia
atrás. La propagación hacia atrás a menudo implica la suma de muchos tensores.
En el enfoque ingenuo, cada uno de estos tensores se calcularía por separado y luego se sumarían
todos en un segundo paso. El enfoque ingenuo tiene un cuello de botella de memoria demasiado alto
que se puede evitar manteniendo un único búfer y agregando cada valor a ese búfer a medida que se
calcula.
Las implementaciones de propagación hacia atrás en el mundo real también necesitan manejar
varios tipos de datos, como punto flotante de 32 bits, punto flotante de 64 bits y valores enteros.
La política para el manejo de cada uno de estos tipos tiene especial cuidado en su diseño.
Algunas operaciones tienen gradientes indefinidos y es importante realizar un seguimiento de estos
casos y determinar si el gradiente solicitado por el usuario no está definido.
Varios otros tecnicismos hacen que la diferenciación en el mundo real sea más complicada.
Estos tecnicismos no son insuperables y en este capítulo se han descrito las herramientas
intelectuales clave necesarias para calcular derivadas, pero es importante ser consciente
de que existen muchas más sutilezas.
6.5.9 Diferenciación fuera de la comunidad de aprendizaje profundo
La comunidad de aprendizaje profundo ha estado algo aislada de la comunidad
informática en general y ha desarrollado en gran medida sus propias actitudes culturales.
221
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
sobre cómo realizar la diferenciación. De manera más general, el campo de la diferenciación automática se ocupa de
cómo calcular derivadas algorítmicamente.
El algoritmo de retropropagación descrito aquí es sólo un enfoque para la
diferenciación automática. Es un caso especial de una clase más amplia de técnicas
llamadas acumulación en modo inverso. Otros enfoques evalúan las subexpresiones
de la regla de la cadena en diferentes órdenes. En general, determinar el orden de
evaluación que resulte en el menor costo computacional es un problema difícil.
Encontrar la secuencia óptima de operaciones para calcular el gradiente es NP­
completo (Naumann, 2008), en el sentido de que puede requerir simplificar
expresiones algebraicas a su forma menos costosa.
.
Por ejemplo, supongamos que tenemos las variables p1, p2 ,. . , pn representa probabilidades
, . . . , zn representa probabilidades logarítmicas no normalizadas. Suponer
y las variables z1, z2
las definimos
=
exp(zi) qi
i exp(zi)
,
(6.57)
donde construimos la función softmax a partir de operaciones de exponenciación, suma y
i qi piloto . Un humano
Un matemático puede observar que la derivada de J con respecto a zi toma una forma muy simple: qi − pi. El algoritmo
división, y construimos una pérdida de entropía cruzada J = −
de retropropagación no es capaz de simplificar el gradiente de esta manera y, en cambio, propagará explícitamente
los gradientes a través de todas las operaciones de logaritmo y exponenciación en el gráfico original. Algunas
bibliotecas de software como Theano (Bergstra et al., 2010; Bastien et al., 2012) son capaces de realizar algunos tipos
de sustitución algebraica para mejorar el gráfico propuesto por el algoritmo puro de retropropagación.
Cuando el gráfico directo G tiene un único nodo de salida y cada derivada parcial ∂u (i) ∂u(j)
se puede calcular con una cantidad constante de cálculos, la propagación hacia atrás garantiza que el número
de cálculos para el cálculo del gradiente sea del mismo orden que el número de cálculos para el cálculo directo: este
∂u (i) se puede ver en el algoritmo 6.2 porque cada derivada parcial local necesita calcularse ∂u(j) sólo una vez junto
con
una multiplicación y suma asociadas para la formulación recursiva de la regla de la cadena (ecuación
6.49). Por lo
tanto,
el cálculo general es O (# aristas). Sin embargo, potencialmente se puede reducir simplificando el gráfico computacional
construido mediante retropropagación, y esta es una tarea NP completa. Implementaciones como Theano y TensorFlow
utilizan heurísticas basadas en la coincidencia de patrones de simplificación conocidos para intentar simplificar el
gráfico de forma iterativa. Definimos la retropropagación solo para el cálculo de un gradiente de una salida escalar,
pero la retropropagación se puede extender para calcular un jacobiano (ya sea de k nodos escalares diferentes en el
gráfico o de un nodo con valores de tensor que contiene k valores). Una implementación ingenua puede entonces
necesitar k veces más cálculo: para
222
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Para cada nodo interno escalar en el gráfico directo original, la implementación ingenua calcula k
gradientes en lugar de un solo gradiente. Cuando el número de salidas del gráfico es mayor que el
número de entradas, a veces es preferible utilizar otra forma de diferenciación automática llamada
acumulación en modo directo.
Se ha propuesto el cálculo en modo directo para obtener cálculos en tiempo real de
gradientes en redes recurrentes, por ejemplo (Williams y Zipser, 1989). Esto también
evita la necesidad de almacenar los valores y gradientes de todo el gráfico, sacrificando
eficiencia computacional por memoria. La relación entre el modo hacia adelante y el
modo hacia atrás es análoga a la relación entre multiplicar por la izquierda versus
multiplicar por la derecha una secuencia de matrices, como
A B C D,
(6.58)
donde las matrices pueden considerarse matrices jacobianas. Por ejemplo, si D es
un vector columna mientras que A tiene muchas filas, esto corresponde a un gráfico
con una sola salida y muchas entradas, y comenzar las multiplicaciones desde el
final y retroceder solo requiere productos matriz­vector. Esto corresponde al modo
inverso. En cambio, comenzar a multiplicar desde la izquierda implicaría una serie de
productos matriz­matriz, lo que encarece mucho todo el cálculo . Sin embargo, si A
tiene menos filas que D tiene columnas, es más barato ejecutar las multiplicaciones
de izquierda a derecha, correspondiente al modo directo.
En muchas comunidades fuera del aprendizaje automático, es más común implementar
software de diferenciación que actúa directamente sobre el código del lenguaje de
programación tradicional, como el código Python o C, y genera automáticamente programas
que diferencian funciones escritas en estos lenguajes. En la comunidad de aprendizaje
profundo , los gráficos computacionales generalmente se representan mediante estructuras
de datos explícitas creadas por bibliotecas especializadas. El enfoque especializado tiene
el inconveniente de requerir que el desarrollador de la biblioteca defina los métodos bprop
para cada operación y limitar al usuario de la biblioteca sólo a aquellas operaciones que se han definido.
Sin embargo, el enfoque especializado también tiene la ventaja de permitir que se
desarrollen reglas de retropropagación personalizadas para cada operación, lo que permite
al desarrollador mejorar la velocidad o la estabilidad de formas no obvias que un
procedimiento automático presumiblemente no podría replicar.
Por lo tanto, la retropropagación no es la única forma ni la forma óptima de calcular el gradiente,
pero es un método muy práctico que continúa sirviendo muy bien a la comunidad de aprendizaje
profundo. En el futuro, la tecnología de diferenciación para redes profundas puede mejorar a medida
que los profesionales del aprendizaje profundo se vuelvan más conscientes de los avances en el campo
más amplio de la diferenciación automática.
223
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
6.5.10 Derivados de orden superior
Algunos marcos de software admiten el uso de derivados de orden superior. Entre los marcos de
software de aprendizaje profundo, esto incluye al menos Theano y TensorFlow.
Estas bibliotecas utilizan el mismo tipo de estructura de datos para describir las
expresiones de derivadas que la que utilizan para describir la función original que se
diferencia. Esto significa que la maquinaria de diferenciación simbólica se puede aplicar a los derivados.
En el contexto del aprendizaje profundo, es raro calcular una única segunda derivada de una
función escalar. En cambio, normalmente nos interesan las propiedades de la matriz de Hesse. Si
tenemos una función f : R → R, entonces la matriz de Hesse es de tamaño n × n.
norte
En aplicaciones típicas de aprendizaje profundo, n será la cantidad de parámetros en el
modelo, que fácilmente podría ascender a miles de millones. Por lo tanto, es imposible
representar toda la matriz de Hesse .
En lugar de calcular explícitamente el hessiano, el enfoque típico de aprendizaje
profundo es utilizar métodos de Krylov. Los métodos de Krylov son un conjunto de técnicas
iterativas para realizar diversas operaciones, como invertir aproximadamente una matriz o
encontrar aproximaciones a sus vectores propios o valores propios, sin utilizar ninguna
operación que no sea el producto matriz­vector.
Para utilizar los métodos de Krylov en el Hesse, sólo necesitamos poder calcular el
producto entre la matriz de Hesse H y un vector arbitrario v. Una técnica sencilla
(Christianson, 1992) para hacerlo es calcular
Hv =
x
(
xf(x))
v
.
(6.59)
Ambos cálculos de gradiente en esta expresión pueden calcularse automáticamente
mediante la biblioteca de software adecuada. Tenga en cuenta que la expresión de gradiente
exterior toma el gradiente de una función de la expresión de gradiente interior.
Si v es en sí mismo un vector producido por un gráfico computacional, es importante
especificar que el software de diferenciación automática no debe diferenciar a través del
gráfico que produjo v.
Si bien generalmente no es aconsejable calcular el hessiano, es posible hacerlo con
productos vectoriales de Hesse. Simplemente se calcula He (i) para todo i = 1, . . . , norte, donde
(i)
mi(i) es el vector one­hot con e = 1 y todas las demás entradas iguales a 0.
i
6.6 Notas Históricas
Las redes feedforward pueden verse como aproximadores de funciones no lineales eficientes que se
basan en el uso del descenso de gradiente para minimizar el error en una aproximación de funciones.
224
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Desde este punto de vista, la red feedforward moderna es la culminación de siglos de
progreso en la tarea de aproximación de funciones generales.
La regla de la cadena que subyace al algoritmo de retropropagación se inventó en
el siglo XVII (Leibniz, 1676; L'Hôpital, 1696). El cálculo y el álgebra se han utilizado
durante mucho tiempo para resolver problemas de optimización en forma cerrada, pero
el descenso de gradiente no se introdujo como técnica para aproximar iterativamente la
solución a problemas de optimización hasta el siglo XIX (Cauchy, 1847).
A partir de la década de 1940, estas técnicas de aproximación de funciones se utilizaron
para motivar modelos de aprendizaje automático como el perceptrón. Sin embargo, los
primeros modelos se basaban en modelos lineales. Los críticos, incluido Marvin Minsky,
señalaron varios de los defectos de la familia de modelos lineales, como su incapacidad para
aprender la función XOR, lo que provocó una reacción violenta contra todo el enfoque de la red neuronal.
Aprender funciones no lineales requirió el desarrollo de un perceptrón multicapa y un
medio para calcular el gradiente a través de dicho modelo. Las aplicaciones eficientes de la
regla de la cadena basadas en programación dinámica comenzaron a aparecer en los años
1960 y 1970, principalmente para aplicaciones de control (Kelley, 1960; Bryson y Denham,
1961; Dreyfus, 1962; Bryson y Ho, 1969; Dreyfus, 1973) , pero también para análisis de
sensibilidad (Linnainmaa, 1976). Werbos (1981) propuso aplicar estas técnicas al
entrenamiento de redes neuronales artificiales. La idea finalmente se desarrolló en la práctica
después de haber sido redescubierta de manera independiente de diferentes maneras
(LeCun, 1985; Parker, 1985; Rumelhart et al., 1986a). El libro Parallel Distributed Processing
presentó los resultados de algunos de los primeros experimentos exitosos con retropropagación
en un capítulo (Rumelhart et al., 1986b) que contribuyó en gran medida a la popularización
de la retropropagación e inició un período muy activo de investigación. en redes neuronales
multicapa. Sin embargo, las ideas expuestas por los autores de ese libro y en particular por
Rumelhart y Hinton van mucho más allá de la retropropagación. Incluyen ideas cruciales
sobre la posible implementación computacional de varios aspectos centrales de la cognición
y el aprendizaje, que recibieron el nombre de “conexionismo” debido a la importancia que
esta escuela de pensamiento otorga a las conexiones entre neuronas como lugar de
aprendizaje y memoria.
En particular, estas ideas incluyen la noción de representación distribuida (Hinton et al., 1986).
Tras el éxito de la retropropagación, la investigación sobre redes neuronales ganó popularidad y
alcanzó su punto máximo a principios de los años noventa. Posteriormente, otras técnicas de
aprendizaje automático se hicieron más populares hasta el renacimiento moderno del aprendizaje
profundo que comenzó en 2006.
Las ideas centrales detrás de las redes feedforward modernas no han cambiado
sustancialmente desde la década de 1980. El mismo algoritmo de retropropagación y el mismo
225
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Los enfoques para el descenso de gradientes todavía están en uso. La mayor parte de la mejora en
el rendimiento de las redes neuronales entre 1986 y 2015 se puede atribuir a dos factores. En primer
lugar, los conjuntos de datos más grandes han reducido el grado en que la generalización estadística
es un desafío para las redes neuronales. En segundo lugar, las redes neuronales se han vuelto
mucho más grandes debido a computadoras más potentes y una mejor infraestructura de software.
Sin embargo, una pequeña cantidad de cambios algorítmicos han mejorado notablemente el
rendimiento de las redes neuronales.
Uno de estos cambios algorítmicos fue la sustitución del error cuadrático medio por la familia de
funciones de pérdida de entropía cruzada. El error cuadrático medio fue popular en las décadas de
1980 y 1990, pero fue reemplazado gradualmente por pérdidas de entropía cruzada y el principio de
máxima verosimilitud a medida que las ideas se difundieron entre la comunidad estadística y la
comunidad de aprendizaje automático. El uso de pérdidas de entropía cruzada mejoró en gran
medida el rendimiento de los modelos con salidas sigmoideas y softmax, que anteriormente habían
sufrido saturación y aprendizaje lento al usar la pérdida de error cuadrático medio.
El otro cambio algorítmico importante que ha mejorado enormemente el rendimiento de
las redes feedforward fue la sustitución de unidades ocultas sigmoideas por unidades ocultas
lineales por partes, como las unidades lineales rectificadas. La rectificación utilizando la función
max{0, z} se introdujo en los primeros modelos de redes neuronales y se remonta al menos a
Cognitron y Neocognitron (Fukushima, 1975, 1980). Estos primeros modelos no utilizaban
unidades lineales rectificadas, sino que aplicaban la rectificación a funciones no lineales. A
pesar de la popularidad inicial de la rectificación, la rectificación fue reemplazada en gran
medida por los sigmoideos en la década de 1980, tal vez porque los sigmoideos funcionan
mejor cuando las redes neuronales son muy pequeñas. A principios de la década de 2000, se
evitaron las unidades lineales rectificadas debido a una creencia algo supersticiosa de que se
deben evitar las funciones de activación con puntos no diferenciables. Esto comenzó a cambiar alrededor de 2
Jarrett y col. (2009) observaron que "el uso de una no linealidad rectificadora es el factor
más importante para mejorar el rendimiento de un sistema de reconocimiento" entre varios
factores diferentes del diseño de la arquitectura de redes neuronales.
Para conjuntos de datos pequeños, Jarrett et al. (2009) observaron que utilizar rectificaciones
de no linealidades es incluso más importante que aprender los pesos de las capas ocultas.
Los pesos aleatorios son suficientes para propagar información útil a través de una red lineal rectificada,
lo que permite que la capa clasificadora en la parte superior aprenda cómo asignar diferentes vectores
de características a identidades de clase.
Cuando hay más datos disponibles, el aprendizaje comienza a extraer suficiente conocimiento útil
para superar el rendimiento de parámetros elegidos al azar. Glorot et al. (2011a) demostraron que el
aprendizaje es mucho más fácil en redes lineales rectificadas profundas que en redes profundas que
tienen curvatura o saturación bilateral en sus funciones de activación.
226
Machine Translated by Google
CAPÍTULO 6. REDES PROFUNDAS DE FEEDFORWARD
Las unidades lineales rectificadas también son de interés histórico porque muestran que la
neurociencia ha seguido influyendo en el desarrollo de algoritmos de aprendizaje profundo. Glorot et al.
(2011a) motivan las unidades lineales rectificadas a partir de consideraciones biológicas. La no linealidad
semirectificadora tenía como objetivo capturar estas propiedades de las neuronas biológicas: 1) Para
algunas entradas, las neuronas biológicas están completamente inactivas. 2) Para algunas entradas, la
salida de una neurona biológica es proporcional a su entrada. 3) La mayor parte del tiempo, las neuronas
biológicas operan en el régimen en el que están inactivas (es decir, deberían tener activaciones escasas).
Cuando comenzó el resurgimiento moderno del aprendizaje profundo en 2006, las redes de
feedforward seguían teniendo mala reputación. Aproximadamente entre 2006 y 2012, se creía ampliamente
que las redes feedforward no funcionarían bien a menos que estuvieran asistidas por otros modelos,
como los modelos probabilísticos. Hoy en día, se sabe que con los recursos y las prácticas de ingeniería
adecuadas, las redes feedforward funcionan muy bien.
Hoy en día, el aprendizaje basado en gradientes en redes feedforward se utiliza como herramienta para
desarrollar modelos probabilísticos, como el codificador automático variacional y las redes adversarias
generativas, que se describen en el capítulo 20. En lugar de verse como una tecnología poco confiable
que debe ser respaldada por otras técnicas, El aprendizaje basado en gradientes en redes feedforward
se considera desde 2012 una tecnología poderosa que puede aplicarse a muchas otras tareas de
aprendizaje automático. En 2006, la comunidad utilizó el aprendizaje no supervisado para respaldar el
aprendizaje supervisado y ahora, irónicamente, es más común utilizar el aprendizaje supervisado para
respaldar el aprendizaje no supervisado.
Las redes feedforward siguen teniendo un potencial inexplorado. En el futuro, esperamos que se
apliquen a muchas más tareas y que los avances en algoritmos de optimización y diseño de modelos
mejoren aún más su rendimiento. Este capítulo ha descrito principalmente la familia de modelos de redes
neuronales. En los capítulos siguientes, veremos cómo utilizar estos modelos: cómo regularizarlos y
entrenarlos.
227
Machine Translated by Google
Capítulo 7
Regularización para el aprendizaje profundo
Un problema central en el aprendizaje automático es cómo crear un algoritmo que funcione bien
no sólo con los datos de entrenamiento, sino también con las nuevas entradas. Muchas estrategias
utilizadas en el aprendizaje automático están diseñadas explícitamente para reducir el error de
prueba, posiblemente a expensas de un mayor error de entrenamiento. Estas estrategias se
conocen colectivamente como regularización. Como veremos, hay muchas formas de regularización
disponibles para el practicante del aprendizaje profundo. De hecho, desarrollar estrategias de
regularización más efectivas ha sido uno de los principales esfuerzos de investigación en este campo.
El Capítulo 5 introdujo los conceptos básicos de generalización, subajuste,
sobreajuste , sesgo, varianza y regularización. Si aún no está familiarizado con
estos conceptos, consulte ese capítulo antes de continuar con este.
En este capítulo, describimos la regularización con más detalle, enfocándonos en estrategias de
regularización para modelos profundos o modelos que pueden usarse como bloques de construcción
para formar modelos profundos.
Algunas secciones de este capítulo tratan de conceptos estándar en el aprendizaje automático.
Si ya está familiarizado con estos conceptos, no dude en omitir las secciones correspondientes.
Sin embargo, la mayor parte de este capítulo se ocupa de la extensión de estos conceptos básicos
al caso particular de las redes neuronales.
En la sección 5.2.2, definimos la regularización como "cualquier modificación que hacemos a
un algoritmo de aprendizaje con el objetivo de reducir su error de generalización pero no su error
de entrenamiento". Existen muchas estrategias de regularización. Algunos imponen restricciones
adicionales a un modelo de aprendizaje automático, como agregar restricciones a los valores de
los parámetros. Algunos agregan términos adicionales en la función objetivo que se pueden
considerar como correspondientes a una restricción suave en los valores de los parámetros. Si se
eligen con cuidado, estas restricciones y penalizaciones adicionales pueden conducir a un mejor rendimiento.
228
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
en el equipo de prueba. A veces estas restricciones y sanciones están diseñadas para
codificar tipos específicos de conocimiento previo. Otras veces, estas restricciones y
penalizaciones están diseñadas para expresar una preferencia genérica por una clase de
modelo más simple para promover la generalización. A veces son necesarias sanciones y
restricciones para determinar un problema indeterminado. Otras formas de regularización,
conocidas como métodos de conjunto, combinan múltiples hipótesis que explican los datos de entrenamien
En el contexto del aprendizaje profundo, la mayoría de las estrategias de regularización se
basan en estimadores de regularización. La regularización de un estimador funciona intercambiando
un mayor sesgo por una varianza reducida. Un regularizador eficaz es aquel que realiza una
operación rentable, reduciendo significativamente la varianza sin aumentar demasiado el sesgo.
Cuando analizamos la generalización y el sobreajuste en el capítulo 5, nos centramos en tres
situaciones en las que la familia de modelos que se estaba entrenando (1) excluía el verdadero
proceso de generación de datos, lo que corresponde a un desajuste y un sesgo inductor, o (2)
coincidía con el verdadero proceso de generación de datos. , o (3) incluyó el proceso generador
pero también muchos otros posibles procesos generadores: el régimen de sobreajuste donde la
varianza en lugar del sesgo domina el error de estimación. El objetivo de la regularización es llevar
un modelo del tercer régimen al segundo régimen.
En la práctica, una familia de modelos demasiado compleja no incluye necesariamente la
función objetivo o el verdadero proceso de generación de datos, o incluso una aproximación
cercana de ambos. Casi nunca tenemos acceso al verdadero proceso de generación de datos, por
lo que nunca podemos saber con certeza si la familia de modelos que se estima incluye el proceso
de generación o no. Sin embargo, la mayoría de las aplicaciones de los algoritmos de aprendizaje
profundo se realizan en dominios donde es casi seguro que el verdadero proceso de generación
de datos está fuera de la familia de modelos. Los algoritmos de aprendizaje profundo se suelen
aplicar a dominios extremadamente complicados, como imágenes, secuencias de audio y texto,
para los cuales el verdadero proceso de generación implica esencialmente simular el universo
entero. Hasta cierto punto, siempre intentamos encajar una clavija cuadrada (el proceso de
generación de datos) en un agujero redondo (nuestra familia de modelos).
Lo que esto significa es que controlar la complejidad del modelo no es una simple cuestión de
encontrar el modelo del tamaño correcto, con el número correcto de parámetros. En cambio,
podríamos encontrar (y de hecho, en escenarios prácticos de aprendizaje profundo, casi siempre
encontramos) que el modelo que mejor se ajusta (en el sentido de minimizar el error de
generalización) es un modelo grande que se ha regularizado adecuadamente.
Ahora revisamos varias estrategias sobre cómo crear un modelo tan grande, profundo y regularizado.
229
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
7.1 Penalizaciones de normas de parámetros
La regularización se ha utilizado durante décadas antes de la llegada del aprendizaje profundo. Los
modelos lineales, como la regresión lineal y la regresión logística, permiten estrategias de
regularización simples, directas y efectivas.
Muchos enfoques de regularización se basan en limitar la capacidad de los modelos, como las
redes neuronales, la regresión lineal o la regresión logística, agregando una penalización de norma
de parámetro Ω(θ) a la función objetivo J. Denotamos la función objetivo regularizada por J ˜:
J˜(θ; X, y) = J(θ; X, y) + αΩ(θ)
donde α
(7.1)
[0, ∞) es un hiperparámetro que pondera la contribución relativa del término de
penalización de la norma, Ω, en relación con la función objetivo estándar J. Establecer α en 0 no da
como resultado ninguna regularización. Los valores más grandes de α corresponden a una mayor regularización.
Cuando nuestro algoritmo de entrenamiento minimiza la función objetivo regularizada J˜ , disminuirá
tanto el objetivo original J en los datos de entrenamiento como alguna medida del tamaño de los
parámetros θ (o algún subconjunto de los parámetros). Diferentes elecciones para la norma del parámetro
Ω pueden dar lugar a que se prefieran diferentes soluciones.
En esta sección, analizamos los efectos de las diversas normas cuando se utilizan como penalizaciones
sobre los parámetros del modelo.
Antes de profundizar en el comportamiento de regularización de diferentes normas,
observamos que para las redes neuronales, generalmente elegimos usar una penalización
de norma de parámetro Ω que penaliza solo los pesos de la transformación afín en cada
capa y deja los sesgos sin regularizar. Los sesgos suelen requerir menos datos para
ajustarse con precisión que las ponderaciones. Cada peso especifica cómo interactúan dos
variables. Ajustar bien el peso requiere observar ambas variables en una variedad de
condiciones. Cada sesgo controla sólo una variable. Esto significa que no inducimos
demasiada varianza al dejar los sesgos sin regularizar. Además, la regularización de los
parámetros de sesgo puede introducir una cantidad significativa de desajuste. Por lo tanto,
utilizamos el vector w para indicar todos los pesos que deberían verse afectados por una
penalización de norma, mientras que el vector θ denota todos los parámetros, incluidos w y
los parámetros no regularizados.
En el contexto de las redes neuronales, a veces es deseable utilizar una penalización separada con
un coeficiente α diferente para cada capa de la red. Debido a que puede resultar costoso buscar el valor
correcto de múltiples hiperparámetros, sigue siendo razonable utilizar la misma disminución de peso en
todas las capas solo para reducir el tamaño del espacio de búsqueda.
230
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
2 7.1.1 litros
Regularización de parámetros
Ya hemos visto, en la sección 5.2.2, uno de los tipos más simples y comunes de penalización de
2
norma de parámetro: la penalización de norma
de parámetro L comúnmente conocida como
disminución de peso. Esta estrategia de regularización acerca los pesos al origen1 agregando un
2
w
término de regularización Ω(θ) = a la función objetivo.
En2 otras comunidades académicas, la
12
regularización de L Tikhonov. 2 La regularización también se conoce como regresión de crestas o
Podemos obtener una idea del comportamiento de la regularización de la caída de peso
estudiando el gradiente de la función objetivo regularizada. Para simplificar la presentación,
asumimos que no hay ningún parámetro de sesgo, por lo que θ es simplemente w. Tal
modelo tiene la siguiente función objetivo total:
α
J˜(w; X, y) =
2 w w + J(w; X, y),
(7.2)
con el correspondiente parámetro gradiente
w ˜J(w; X, y) = αw +
wJ(w; X, y).
(7.3)
Para realizar un solo paso de gradiente para actualizar los pesos, realizamos esta actualización:
w←w−
(αw +
wJ(w; X, y)).
(7.4)
wJ(w; X, y).
(7.5)
Escrita de otra manera, la actualización es:
w ← (1 −
α)w −
Podemos ver que la adición del término de disminución de peso ha modificado la regla de aprendizaje
para reducir multiplicativamente el vector de peso en un factor constante en cada paso, justo antes
de realizar la actualización de gradiente habitual. Esto describe lo que sucede en un solo paso. Pero
¿qué ocurre durante todo el curso de formación?
Simplificaremos aún más el análisis haciendo una aproximación cuadrática a la
función objetivo en la vecindad del valor de los pesos que obtiene un costo de
entrenamiento mínimo no regularizado, w = arg minw J(w). Si la función objetivo
es verdaderamente cuadrática, como en el caso de ajustar un modelo de regresión lineal con
1De manera más general, podríamos regularizar los parámetros para que estén cerca de cualquier punto específico
en el espacio y, sorprendentemente, aún obtener un efecto de regularización, pero se obtendrán mejores resultados
para un valor más cercano al verdadero, siendo cero un valor predeterminado que tiene sentido. cuando no sabemos
si el valor correcto debe ser positivo o negativo. Dado que es mucho más común regularizar los parámetros del modelo
hacia cero, nos centraremos en este caso especial en nuestra exposición.
231
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
error cuadrático medio, entonces la aproximación es perfecta. La aproximación Jˆ está
dada por
Jˆ(θ) = J(w
)+
1
2 (w − w
)
H(w − w
),
(7.6)
donde H es la matriz hessiana de J con respecto a w evaluada en w . No hay ningún
término de primer orden en esta aproximación cuadrática, porque w se define como
un mínimo, donde el gradiente desaparece. Asimismo, debido a que w es la ubicación
de un mínimo de J, podemos concluir que H es semidefinido positivo.
El mínimo de Jˆ ocurre donde su gradiente
w ˆJ(w) = H(w − w
(7.7)
)
es igual a 0.
Para estudiar el efecto de la caída de peso, modificamos la ecuación 7.7
agregando el gradiente de caída de peso. Ahora podemos encontrar el mínimo de la
versión regularizada de Jˆ. Usamos la variable w˜ para representar la ubicación del mínimo.
αw˜ + H(w˜ − w
)=0
(H + αI)w˜ = Hw
(7,8)
w˜ =
(7,9)
.
(7,10)
(H + αI)−1Hw
Cuando α se acerca a 0, la solución regularizada w˜ se acerca a w . Pero, ¿qué sucede
a medida que α crece? Como H es real y simétrico, podemos descomponerlo en una matriz
diagonal Λ y una base ortonormal de vectores propios, Q, tal que H = QΛQ . Aplicando la
descomposición a la ecuación 7.10, obtenemos:
w˜ = (QΛQ
=
+ αI)−1QΛQ
Q(Λ + αI)Q
w
(7.11)
−1 QΛQ
= Q(Λ + αI)−1ΛQ
w
w
.
(7.12)
(7.13)
Vemos que el efecto de la caída del peso es reescalar w
a lo largo de los ejes definidos por
los vectores propios de H. Específicamente, el componente de w que está alineado con el i­
ésimo vector propio de H se reescala por un factor de λi λi+
α . (Es posible que desee revisar
cómo funciona este tipo de escala, explicado primero en la figura 2.3).
En las direcciones donde los valores propios de H son relativamente grandes, por ejemplo,
donde λi
α, el efecto de la regularización es relativamente pequeño. Sin embargo, los
componentes con λi
α se reducirán hasta tener una magnitud casi cero. Este efecto se
ilustra en la figura 7.1.
232
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
w2
w
w˜
w1
2
Figura 7.1: Una ilustración del efecto de la regularización
L (o disminución de peso) sobre
el valor de w óptimo. Las elipses sólidas representan contornos de igual valor del objetivo
2
no regularizado. Los círculos punteados representan contornos de igual valor
del
regularizador L. En el punto w˜, estos objetivos en competencia alcanzan un equilibrio. En
la primera dimensión, el valor propio del hessiano de J es pequeño. La función objetivo no
aumenta mucho cuando se aleja horizontalmente de w . Debido a que la función objetivo
no expresa una fuerte preferencia en esta dirección, el regularizador tiene un fuerte efecto en este eje.
El regularizador acerca w1 a cero. En la segunda dimensión, la función objetivo es muy sensible a movimientos que se alejan de w
.
El valor propio correspondiente es grande, lo que indica una alta curvatura. Como resultado, la caída del peso afecta relativamente
poco a la posición de w2 .
Sólo las direcciones en las que los parámetros contribuyen significativamente a
reducir la función objetivo se conservan relativamente intactas. En direcciones que
no contribuyen a reducir la función objetivo, un pequeño valor propio del hessiano
nos dice que el movimiento en esta dirección no aumentará significativamente el gradiente.
Los componentes del vector de peso correspondientes a direcciones sin importancia se
desintegran mediante el uso de la regularización durante el entrenamiento.
Hasta ahora hemos discutido la disminución del peso en términos de su efecto sobre la
optimización de una función de costo cuadrática, general y abstracta. ¿Cómo se relacionan estos
efectos con el aprendizaje automático en particular? Podemos averiguarlo estudiando la regresión
lineal, un modelo para el cual la verdadera función de costos es cuadrática y, por lo tanto,
susceptible del mismo tipo de análisis que hemos utilizado hasta ahora. Al aplicar el análisis
nuevamente, podremos obtener un caso especial con los mismos resultados, pero con la solución
ahora expresada en términos de los datos de entrenamiento. Para la regresión lineal, la función de costo es
233
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
la suma de errores al cuadrado:
(Xw − y)
(Xw − y).
(7.14)
Cuando sumamos L2 regularización, la función objetivo cambia a
(Xw − y)
(Xw − y) + 2αw
w.
1
(7.15)
Esto cambia las ecuaciones normales para la solución de
w = (X
X)−1X
y
(7.16)
a
w = (X
La matriz X
X + αI)−1X
y. (7.17)
X en la ecuación 7.16 es proporcional a la matriz de covarianza 1mX
Usando L 2 regularización reemplaza esta matriz con
X
X + αI
X. La
−1 en la ecuación 7.17.
La nueva matriz es la misma que la original, pero con la adición de α a la diagonal. Las entradas
diagonales de esta matriz corresponden a la varianza de cada característica de entrada. Podemos ver
que la regularización L2 hace que el algoritmo de aprendizaje "perciba" que la entrada X tiene una mayor
varianza, lo que hace que reduzca los pesos de las características cuya covarianza con el objetivo de
salida es baja en comparación con esta varianza agregada.
1 7.1.2 litros
Regularización
mientras l 2 La pérdida de peso es la forma más común de pérdida de peso, existen otras
1
formas de penalizar el tamaño de los parámetros del modelo. Otra opción es utilizar la
regularización L.
Formalmente, L.
1
La regularización del parámetro del modelo w se define como:
Ω(θ) = ||w||1 =
(7.18)
|wi|,
i
es decir, como la suma de los valores absolutos de los parámetros individuales.2 Ahora discutiremos el efecto de la regularización L en el modelo de
1
regresión lineal simple, la regularización. En formas 2 y L
sin parámetro de sesgo, que estudiamos en nuestro análisis de L en
1
particular, nos interesa delinear las diferencias entre L
2Como con L
w . En ese caso la L (o) |wi − w
2
2
regularización, podríamos regularizar los parámetros hacia un valor que no sea
(o) 1 cero, sino hacia algún valor de parámetro
regularización.
introducir el término Ω(θ) = ||w − w
||1 =
(o)
i
i
234
|.
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
1
2
de regularización. Al igual que con la caída de peso L , la caída de peso L controla la fuerza
de la regularización escalando la penalización Ω utilizando un hiperparámetro positivo α.
Así, la función objetivo regularizada J˜(w; X, y) viene dada por J˜(w; X, y) =
α||w||1 + J(w; X, y),
(7.19)
con el gradiente correspondiente (en realidad, subgradiente):
w ˜J(w; X, y) = αsigno(w) +
(7.20)
wJ(X, y; w)
donde sign(w) es simplemente el signo de w aplicado por elementos.
1
Al inspeccionar la ecuación 7.20, podemos ver inmediatamente que el efecto de la
2
regularización L es bastante diferente del de la regularización L. Específicamente,
podemos ver que la contribución de la regularización al gradiente ya no escala linealmente
con cada wi; en cambio, es un factor constante con un signo igual al signo (wi). Una
consecuencia de esta forma del gradiente es que no necesariamente veremos imágenes limpias.
soluciones algebraicas para aproximaciones cuadráticas de J(X, y;w) como lo hicimos para la
regularización L.
2
Nuestro modelo lineal simple tiene una función de costo cuadrática que podemos representar
mediante su serie de Taylor. Alternativamente, podríamos imaginar que se trata de una serie de
Taylor truncada que se aproxima a la función de costos de un modelo más sofisticado. El gradiente
en esta configuración está dado por
wJˆ(w) = H(w − w
),
(7.21)
donde, nuevamente, H es la matriz hessiana de J con respecto a w evaluada en w
porque la l
.
1
penalización no admite expresiones algebraicas limpias en el caso
de un hessiano completamente general, también haremos la suposición simplificadora
. ,.Hn,n]),
adicional de que el hessiano es diagonal, H = diag([H1,1,
.
donde cada Hi,i > 0.
Esta suposición es válida si los datos para el problema de regresión lineal se han
preprocesado para eliminar toda correlación entre las características de entrada, lo
que se puede lograr utilizando PCA.
1
Nuestra aproximación cuadrática de la L
descomposición de la función objetivo regularizada
plantea en una suma sobre los parámetros:
Jˆ(w; X, y) = J(w
2
; X, y) +
2Hi,i(wi
−w
1
i
i)
+ α|wi|
.
(7.22)
El problema de minimizar esta función de costos aproximada tiene una solución
analítica (para cada dimensión i), con la siguiente forma:
α
wi = signo(w
i ) máx
235
|w
yo | −
Hola yo
,0
.
(7.23)
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Considere la situación en la que w
1. El caso donde w
i
i > 0para todo i. Hay dos resultados posibles:
≤ αHola,i . Aquí el valor óptimo de wi bajo el objetivo regularizado es
simplemente wi = 0. Esto ocurre porque la contribución de J(w;X, y) al objetivo regularizado J˜(w;X, y)
está sobrepasada—en la dirección i— por
1 la L
regularización que lleva el valor de wi a cero.
2. El caso donde w
i
> αHola,i . En este caso, la regularización no mueve el valor óptimo de wi
a cero sino que simplemente lo desplaza en esa dirección una distancia igual a αHi,i .
Un proceso similar ocurre cuando w
< 0, pero
i con L negativo por αHi,i o
1
penalización con menos
0.
En comparación con L.
2
1
regularización, la regularización L da como resultado una solución más escasa. La escasez en este
contexto se refiere al hecho de que algunos parámetros tienen un valor óptimo de cero. La escasez de la regularización L1 es un comportamiento
cualitativamente diferente al que surge con la regularización L. La ecuación 7.13 dio la solución 2 w˜ para la regularización L. Si revisamos esa ecuación
usando el supuesto de una diagonal y definida positiva H de Hesse que introdujimos para nuestro análisis de Hi,i 1 L
regularización, encontramos que w˜i = Hi,i+αw
i fueradistinto de cero, entonces w˜i permanece
la regularización no causa los parámetros
2 distinto de cero. Esto demuestra que L 1
volverse escaso, mientras que L
i . Si w
la regularización puede hacerlo para α suficientemente grande.
1 La regularización se ha utilizado ampliamente como
La propiedad de escasez inducida por L
mecanismo de selección de características . La selección de funciones simplifica un problema de aprendizaje
automático al elegir qué subconjunto de funciones disponibles se debe utilizar. En particular, el conocido
LASSO (Tibshirani, 1995) (menor contracción absoluta y penalización con un modelo lineal y una penalización
operador de selección) el modelo integra una L
1 convierta en
función de costo al cuadrado. El L
1 mínima hace que un subconjunto de pesos se
cero, lo que sugiere que las características correspondientes pueden descartarse de forma segura.
En la sección 5.6.1, vimos que muchas estrategias de regularización pueden interpretarse
como inferencia MAP bayesiana, y en particular, L a inferencia MAP
2
como regularización equivalente.
bayesiana con un previo gaussiano en los pesos. Para L larización, la penalización αΩ(w) = α
|
1
regular
wi| utilizado para regularizar una función de costos ies equivalente al término log­prior que se maximiza
mediante la inferencia bayesiana MAP cuando el prior es una distribución isotrópica de Laplace (ecuación
:
3.26) sobre w
Rn
1
log p(w) =
log Laplace(wi; 0,
i
α
) = −α||w||1 + n iniciar sesión α − n iniciar sesión 2.
236
(7.24)
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Desde el punto de vista del aprendizaje mediante maximización con respecto a w, podemos
ignorar los términos log α − log 2 porque no dependen de w.
7.2 Penalizaciones normativas como optimización restringida
Considere la función de costos regularizada por una penalización de norma paramétrica:
J˜(θ; X, y) = J(θ; X, y) + αΩ(θ).
(7.25)
Recuerde de la sección 4.4 que podemos minimizar una función sujeta a restricciones
construyendo una función de Lagrange generalizada, que consta de la función objetivo
original más un conjunto de penalizaciones. Cada penalización es un producto entre un
coeficiente, llamado multiplicador de Karush­Kuhn­Tucker (KKT), y una función que
representa si se cumple la restricción. Si quisiéramos restringir Ω(θ) para que sea menor
que alguna constante k, podríamos construir una función de Lagrange generalizada
L(θ, α; X, y) = J(θ; X, y) + α(Ω(θ) − k).
(7.26)
La solución al problema restringido viene dada por
θ
L(θ, α).
= arg mín máx α,α≥0
θ
(7.27)
Como se describe en la sección 4.4, resolver este problema requiere modificar tanto θ
2
y α. La sección 4.5 proporciona un ejemplo práctico de regresión lineal con una restricción L.
Son posibles muchos procedimientos diferentes (algunos pueden usar descenso de gradiente,
mientras que otros pueden usar soluciones analíticas donde el gradiente es cero), pero en
todos los procedimientos α debe aumentar siempre que Ω(θ) > k y disminuir siempre que Ω(θ) < k.
Todo α positivo estimula la reducción de Ω(θ) . El valor óptimo α
alentará a Ω(θ) a reducirse,
pero no tan fuertemente como para hacer que Ω(θ) sea menor que k.
Para obtener una idea del efecto de la restricción, podemos fijar α
y ver el problema simplemente
como una función de θ:
θ mín.
θ
L(θ, α
) = arg min J(θ; X, y) + α
θ
Ω(θ). = arg
(7.28)
Esto es exactamente lo mismo que el problema de entrenamiento regularizado de minimizar J˜.
Por lo tanto, podemos pensar que una penalización de norma de parámetro impone una
2
restricción a los pesos. Si 2 norma, entonces los pesos están obligados a estar en una L
Ω es la bola L. Si Ω es la norma L1 , entonces los pesos están obligados a estar en una región de
237
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
1 L limitada
norma. Generalmente no conocemos el tamaño de la región de restricción que imponemos
usando la caída de peso con coeficiente α
porque el valor de α
no nos dice directamente
el valor de
k. En principio, se puede resolver para k, pero la relación entre k y α
depende de la forma de J. Si bien
no conocemos el tamaño exacto de la región de restricción, podemos controlarla aproximadamente
aumentando o disminuyendo α para aumentar o reducir la región de restricción. Un α mayor dará como
resultado una región de restricción más pequeña. Un α más pequeño dará como resultado una región de
restricción más grande.
A veces es posible que deseemos utilizar restricciones explícitas en lugar de
sanciones. Como se describe en la sección 4.4, podemos modificar algoritmos como el
descenso de gradiente estocástico para dar un paso cuesta abajo en J (θ) y luego
proyectar θ de regreso al punto más cercano que satisfaga Ω(θ) < k. Esto puede resultar
útil si tenemos una idea de qué valor de k es apropiado y no queremos perder tiempo
buscando el valor de α que corresponde a este k.
Otra razón para utilizar restricciones explícitas y reproyección en lugar de imponer restricciones
con penalizaciones es que las penalizaciones pueden hacer que los procedimientos de optimización no
convexos se queden atascados en mínimos locales correspondientes a θ pequeño. Cuando se entrenan
redes neuronales, esto generalmente se manifiesta como redes neuronales que se entrenan con varias
"unidades muertas". Estas son unidades que no contribuyen mucho al comportamiento de la función
aprendida por la red porque los pesos que entran o salen de ellas son todos muy pequeños. Cuando se
entrena con una penalización en la norma de las pesas, estas configuraciones pueden ser localmente
óptimas, incluso si es posible reducir significativamente J aumentando las pesas. Las restricciones
explícitas implementadas mediante reproyección pueden funcionar mucho mejor en estos casos porque
no alientan a los pesos a acercarse al origen. Las restricciones explícitas implementadas mediante
reproyección solo tienen efecto cuando los pesos se vuelven grandes e intentan salir de la región de
restricción.
Finalmente, las restricciones explícitas con reproyección pueden ser útiles porque imponen
cierta estabilidad al procedimiento de optimización. Cuando se utilizan tasas de aprendizaje
altas, es posible encontrar un ciclo de retroalimentación positiva en el que pesos grandes
inducen gradientes grandes que luego inducen una actualización grande de los pesos. Si estas
actualizaciones aumentan constantemente el tamaño de los pesos, entonces θ se aleja
rápidamente del origen hasta que se produce un desbordamiento numérico. Las restricciones
explícitas de reproyección impiden que este ciclo de retroalimentación continúe aumentando la
magnitud de los pesos sin límites. Hinton et al. (2012c) recomiendan el uso de restricciones
combinadas con una alta tasa de aprendizaje para permitir una exploración rápida del espacio
de parámetros manteniendo cierta estabilidad.
En particular, Hinton et al. (2012c) recomiendan una estrategia introducida por Srebro y Shraibman
(2005): restringir la norma de cada columna de la matriz de ponderaciones
238
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
de una capa de red neuronal, en lugar de restringir la norma de Frobenius de toda la matriz de
peso. Restringir la norma de cada columna por separado evita que cualquier unidad oculta
tenga pesos muy grandes. Si convirtiéramos esta restricción en una penalización en una
función de Lagrange, sería similar a la caída del peso L pero con2un multiplicador KKT
separado para los pesos de cada unidad oculta. Cada uno de estos multiplicadores KKT se
actualizaría dinámicamente por separado para que cada unidad oculta obedezca la restricción.
En la práctica, la limitación de la norma de columna siempre se implementa como una
restricción explícita con reproyección.
7.3 Regularización y problemas insuficientemente restringidos
En algunos casos, la regularización es necesaria para que los problemas de aprendizaje
automático se definan adecuadamente. Muchos modelos lineales en el aprendizaje
automático, incluida la regresión lineal y el PCA, dependen de la inversión de la matriz X X.
Esto no es posible siempre que X X sea singular. Esta matriz puede ser singular siempre
que los datos que generan la distribución realmente no tengan variación en alguna dirección,
o cuando no se observe variación en alguna dirección porque hay menos ejemplos (filas de
X) que características de entrada (columnas de X). En este caso, muchas formas de
regularización corresponden a invertir X X + αI. Se garantiza que esta matriz regularizada será invertible.
Estos problemas lineales tienen soluciones de forma cerrada cuando la matriz relevante
es invertible. También es posible que un problema sin solución cerrada esté subdeterminado.
Un ejemplo es la regresión logística aplicada a un problema en el que las clases son
linealmente separables. Si un vector de peso w puede lograr una clasificación perfecta,
entonces 2w también logrará una clasificación perfecta y una mayor probabilidad.
Un procedimiento de optimización iterativo como el descenso de gradiente estocástico aumentará
continuamente la magnitud de w y, en teoría, nunca se detendrá. En la práctica, una implementación
numérica del descenso de gradiente eventualmente alcanzará pesos lo suficientemente grandes
como para causar un desbordamiento numérico, momento en el cual su comportamiento dependerá
de cómo el programador haya decidido manejar valores que no son números reales.
La mayoría de las formas de regularización pueden garantizar la convergencia de métodos
iterativos aplicados a problemas indeterminados. Por ejemplo, la disminución del peso hará
que el descenso del gradiente deje de aumentar la magnitud de los pesos cuando la pendiente
de la probabilidad sea igual al coeficiente de disminución del peso.
La idea de utilizar la regularización para resolver problemas indeterminados se extiende
más allá del aprendizaje automático. La misma idea es útil para varios problemas básicos de
álgebra lineal.
Como vimos en la sección 2.9, podemos resolver ecuaciones lineales indeterminadas usando
239
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
la pseudoinversa de Moore­Penrose. Recuerde que una definición de la pseudoinversa X+
de una matriz X es
X+ = lim α
0(X
X + αI)−1X
.
(7.29)
Ahora podemos reconocer que la ecuación 7.29 realiza una regresión lineal con caída de peso.
Específicamente, la ecuación 7.29 es el límite de la ecuación 7.17 a medida que el coeficiente de
regularización se reduce a cero. Por tanto, podemos interpretar que el pseudoinverso estabiliza
problemas indeterminados mediante la regularización.
7.4 Aumento del conjunto de datos
La mejor manera de hacer que un modelo de aprendizaje automático se generalice mejor es entrenarlo
con más datos. Eso sí, en la práctica la cantidad de datos que tenemos es limitada. Una forma de
solucionar este problema es crear datos falsos y agregarlos al conjunto de entrenamiento.
Para algunas tareas de aprendizaje automático, es razonablemente sencillo crear nuevos datos falsos.
Este enfoque es el más sencillo para la clasificación. Un clasificador necesita tomar una entrada
x complicada y de alta dimensión y resumirla con una identidad de categoría única y.
Esto significa que la tarea principal que enfrenta un clasificador es ser invariante ante una amplia variedad
de transformaciones. Podemos generar nuevos pares (x, y) fácilmente simplemente transformando las
entradas x en nuestro conjunto de entrenamiento.
Este enfoque no es tan fácilmente aplicable a muchas otras tareas. Por ejemplo, es difícil
generar nuevos datos falsos para una tarea de estimación de densidad a menos que ya
hayamos resuelto el problema de estimación de densidad.
El aumento del conjunto de datos ha sido una técnica particularmente eficaz para un problema de
clasificación específico: el reconocimiento de objetos. Las imágenes tienen grandes dimensiones e
incluyen una enorme variedad de factores de variación, muchos de los cuales pueden simularse fácilmente.
Operaciones como trasladar las imágenes de entrenamiento unos pocos píxeles en cada dirección a
menudo pueden mejorar en gran medida la generalización, incluso si el modelo ya ha sido diseñado
para ser parcialmente invariante a la traducción mediante el uso de técnicas de convolución y
agrupación descritas en el capítulo 9. Muchas otras operaciones, como rotar el imagen o escalar la
imagen también han demostrado ser bastante efectivos.
Hay que tener cuidado de no aplicar transformaciones que cambiarían la clase correcta. Por ejemplo,
las tareas de reconocimiento óptico de caracteres requieren reconocer la diferencia entre 'b' y 'd' y la
diferencia entre '6' y '9', por lo que los giros horizontales y las rotaciones de 180◦ no son formas apropiadas
de aumentar los conjuntos de datos para estas tareas.
240
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
También hay transformaciones a las que nos gustaría que nuestros clasificadores fueran
invariantes , pero que no son fáciles de realizar. Por ejemplo, la rotación fuera del plano no se puede
implementar como una simple operación geométrica en los píxeles de entrada.
El aumento del conjunto de datos también es eficaz para tareas de reconocimiento de voz
(Jaitly y Hinton, 2013).
Inyectar ruido en la entrada de una red neuronal (Sietsma y Dow, 1991) también puede
verse como una forma de aumento de datos. Para muchas tareas de clasificación e incluso
algunas de regresión, la tarea aún debería poder resolverse incluso si se agrega un pequeño
ruido aleatorio a la entrada. Sin embargo , las redes neuronales demuestran no ser muy
resistentes al ruido (Tang y Eliasmith, 2010). Una forma de mejorar la robustez de las redes
neuronales es simplemente entrenarlas aplicando ruido aleatorio a sus entradas. La inyección
de ruido de entrada es parte de algunos algoritmos de aprendizaje no supervisados, como el
codificador automático de eliminación de ruido (Vincent et al., 2008). La inyección de ruido
también funciona cuando el ruido se aplica a las unidades ocultas, lo que puede verse como un
aumento del conjunto de datos en múltiples niveles de abstracción. Poole y cols. (2014)
demostraron recientemente que este enfoque puede ser muy eficaz siempre que la magnitud
del ruido se ajuste cuidadosamente. La deserción, una poderosa estrategia de regularización
que se describirá en la sección 7.12, puede verse como un proceso de construcción de nuevos
insumos multiplicando por el ruido.
Al comparar los resultados de las pruebas comparativas de aprendizaje automático, es
importante tener en cuenta el efecto del aumento del conjunto de datos. A menudo, los
esquemas de aumento de conjuntos de datos diseñados manualmente pueden reducir
drásticamente el error de generalización de una técnica de aprendizaje automático. Para
comparar el rendimiento de un algoritmo de aprendizaje automático con otro, es necesario
realizar experimentos controlados. Al comparar el algoritmo de aprendizaje automático A y el
algoritmo de aprendizaje automático B, es necesario asegurarse de que ambos algoritmos se
evaluaron utilizando los mismos esquemas de aumento de conjuntos de datos diseñados
manualmente. Supongamos que el algoritmo A funciona mal sin aumento del conjunto de datos
y que el algoritmo B funciona bien cuando se combina con numerosas transformaciones
sintéticas de la entrada. En tal caso, es probable que las transformaciones sintéticas hayan
causado la mejora del rendimiento, en lugar del uso del algoritmo B de aprendizaje automático.
A veces, decidir si un experimento se ha controlado adecuadamente requiere un juicio subjetivo.
Por ejemplo, los algoritmos de aprendizaje automático que inyectan ruido en la entrada realizan
una forma de aumento del conjunto de datos. Por lo general, las operaciones que son
generalmente aplicables (como agregar ruido gaussiano a la entrada) se consideran parte del
algoritmo de aprendizaje automático, mientras que las operaciones que son específicas de un
dominio de aplicación (como recortar aleatoriamente una imagen) se consideran pre­programaciones separada
241
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
7.5 Robustez frente al ruido
La sección 7.4 ha motivado el uso de ruido aplicado a las entradas como estrategia de
aumento del conjunto de datos. Para algunos modelos, la adición de ruido con varianza
infinitesimal en la entrada del modelo equivale a imponer una penalización a la norma de
los pesos (Bishop, 1995a,b). En el caso general, es importante recordar que la inyección
de ruido puede ser mucho más potente que simplemente reducir los parámetros,
especialmente cuando el ruido se añade a las unidades ocultas. El ruido aplicado a las
unidades ocultas es un tema tan importante que merece su propia discusión por separado;
El algoritmo de abandono descrito en la sección 7.12 es el principal desarrollo de ese
enfoque.
Otra forma en que se ha utilizado el ruido al servicio de la regularización de modelos
es agregándolo a los pesos. Esta técnica se ha utilizado principalmente en el contexto de
redes neuronales recurrentes (Jim et al., 1996; Graves, 2011). Esto puede interpretarse
como una implementación estocástica de la inferencia bayesiana sobre los pesos. El
tratamiento bayesiano del aprendizaje consideraría que las ponderaciones del modelo
son inciertas y representables mediante una distribución de probabilidad que refleje esta
incertidumbre. Agregar ruido a las ponderaciones es una forma práctica y estocástica de
reflejar esta incertidumbre.
El ruido aplicado a los pesos también puede interpretarse como equivalente (bajo algunos
supuestos) a una forma más tradicional de regularización, fomentando la estabilidad de la función
que se va a aprender. Considere la configuración de regresión, donde deseamos entrenar una
función yˆ(x) que asigne un conjunto de características x a un escalar usando la función de costo
de mínimos cuadrados entre las predicciones del modelo yˆ(x) y los valores verdaderos y:
J = Ep(x,y)
(yˆ(x) − y) 2
(7.30)
.
El conjunto de entrenamiento consta de m ejemplos etiquetados {(x (1) , y (1)), . . . ,(x (m) ,y (m))}.
Ahora asumimos que con cada presentación de entrada también incluimos una
perturbación aleatoria W
N( ; 0, ηI) de los pesos de la red. Imaginemos que
tenemos un MLP estándar de capa L. Denotamos el modelo perturbado como yˆ W
(x). A pesar de la inyección de ruido, todavía estamos interesados en minimizar el
error cuadrático de la salida de la red. La función objetivo queda así:
J˜W = Ep(x,y,
W)
(yˆ
= Ep(x,y,
W)
yˆ
(7.31)
W (x) − y) 2
2
W
(x) − 2yyˆ
W (x) + y 2
.
Para η pequeño, la minimización de J con ruido de peso agregado (con covarianza ηI) es
equivalente a la minimización de J con un término de regularización adicional:
242
(7.32)
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
ηEp(x,y)
Wyˆ(x) 2 . Esta forma de regularización anima a los parámetros a ir a regiones del
espacio de parámetros donde pequeñas perturbaciones de los pesos tienen una influencia relativamente
pequeña en la salida. En otras palabras, empuja el modelo hacia regiones donde el modelo es
relativamente insensible a pequeñas variaciones en los pesos, encontrando puntos que no son
simplemente mínimos, sino mínimos rodeados por regiones planas (Hochreiter y Schmidhuber, 1995). En
el caso simplificado de regresión lineal (donde, por ejemplo, yˆ(x) = w
regularización colapsa en ηEp(x)
x
2
x + b), este término de
, que no es una función de parámetros y por lo tanto no
contribuye al gradiente de J˜W con respecto a los parámetros del modelo.
7.5.1 Inyectar ruido en los objetivos de salida
La mayoría de los conjuntos de datos tienen cierta cantidad de errores en las etiquetas y . Puede resultar
perjudicial maximizar log p(y | x) cuando y es un error. Una forma de evitar esto es modelar explícitamente
el ruido en las etiquetas. Por ejemplo, podemos suponer que para alguna constante pequeña
etiqueta del conjunto de entrenamiento y es correcta con probabilidad 1 −
, la
y, de lo contrario, cualquiera
de las otras etiquetas posibles podría ser correcta. Este supuesto es fácil de incorporar analíticamente a
la función de costos, en lugar de extraer explícitamente muestras de ruido. Por ejemplo, el suavizado de
etiquetas regulariza un modelo basado en un softmax con k valores de salida reemplazando los objetivos
de clasificación duros 0 y 1 con objetivos de y 1 −
, respectivamente. Luego se puede utilizar la pérdida
de entropía cruzada estándar
con estos objetivos fáciles. Es posible que el aprendizaje de máxima
k­1
probabilidad con un clasificador softmax y objetivos difíciles nunca converjan: el softmax nunca puede
predecir una probabilidad de exactamente 0 o exactamente 1, por lo que continuará aprendiendo pesos
cada vez mayores, haciendo predicciones más extremas para siempre. Es posible prevenir este escenario
utilizando otras estrategias de regularización como la disminución de peso. El suavizado de etiquetas
tiene la ventaja de impedir la búsqueda de probabilidades concretas sin desalentar la clasificación
correcta. Esta estrategia se ha utilizado desde la década de 1980 y sigue ocupando un lugar destacado
en las redes neuronales modernas (Szegedy et al., 2015).
7.6 Aprendizaje semisupervisado
En el paradigma del aprendizaje semisupervisado, tanto ejemplos no etiquetados de P(x) como ejemplos
etiquetados de P (x, y) se utilizan para estimar P (y | x) o predecir y a partir de
X.
En el contexto del aprendizaje profundo, el aprendizaje semisupervisado generalmente se
refiere al aprendizaje de una representación h = f (x). El objetivo es aprender una representación para que
243
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
que los ejemplos de la misma clase tienen representaciones similares. El aprendizaje no
supervisado puede proporcionar pistas útiles sobre cómo agrupar ejemplos en el espacio de
representación. Los ejemplos que se agrupan estrechamente en el espacio de entrada
deben asignarse a representaciones similares. Un clasificador lineal en el nuevo espacio
puede lograr una mejor generalización en muchos casos (Belkin y Niyogi, 2002; Chapelle et
al., 2003). Una variante antigua de este enfoque es la aplicación del análisis de componentes
principales como paso previo al procesamiento antes de aplicar un clasificador (sobre los
datos proyectados).
En lugar de tener componentes supervisados y no supervisados separados en el modelo,
se pueden construir modelos en los que un modelo generativo de P (x) o P(x, y) comparta
parámetros con un modelo discriminativo de P(y | x). Entonces se puede intercambiar el
criterio supervisado − log P(y | x) con el criterio no supervisado o generativo (como − log P(x)
o − log P(x, y)). El criterio generativo expresa entonces una forma particular de creencia
previa sobre la solución al problema de aprendizaje supervisado (Lasserre et al., 2006), a
saber, que la estructura de P(x) está conectada a la estructura de P(y | x) en una forma que
es capturada por la parametrización compartida. Al controlar qué parte del criterio generativo
se incluye en el criterio total, se puede encontrar una mejor compensación que con un criterio
de entrenamiento puramente generativo o puramente discriminativo (Lasserre et al., 2006;
Larochelle y Bengio, 2008).
Salakhutdinov y Hinton (2008) describen un método para aprender la función del núcleo
de una máquina del núcleo utilizada para la regresión, en el que el uso de ejemplos sin
etiquetar para modelar P (x) mejora P (y | x) de manera bastante significativa.
Véase Chapelle et al. (2006) para obtener más información sobre el aprendizaje semisupervisado.
7.7 Aprendizaje multitarea
El aprendizaje multitarea (Caruana, 1993) es una forma de mejorar la generalización
agrupando ejemplos (que pueden verse como restricciones suaves impuestas a los
parámetros) que surgen de varias tareas. De la misma manera que los ejemplos de
entrenamiento adicionales ejercen más presión sobre los parámetros del modelo hacia valores
que se generalizan bien, cuando parte de un modelo se comparte entre tareas, esa parte del
modelo está más restringida hacia buenos valores (asumiendo que compartir está
justificado). ), a menudo produciendo una mejor generalización.
La Figura 7.2 ilustra una forma muy común de aprendizaje multitarea, en la que (i) dada
diferentes tareas supervisadas (prediciendo x) comparten la misma entrada x, así como
y como alguna representación de nivel intermedio h (compartida) que captura un conjunto común de
244
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
factores. Generalmente, el modelo se puede dividir en dos tipos de piezas y parámetros
asociados:
1. Parámetros específicos de la tarea (que solo se benefician de los ejemplos de su tarea
para lograr una buena generalización). Estas son las capas superiores de la red
neuronal de la figura 7.2.
2. Parámetros genéricos, compartidos entre todas las tareas (que se benefician de los
datos agrupados de todas las tareas). Estas son las capas inferiores de la red neuronal
de la figura 7.2.
y
(1)
h (1)
y
(2)
h (2)
h (3)
h (compartido) h (compartido)
X
Figura 7.2: El aprendizaje multitarea se puede formular de varias maneras en marcos de aprendizaje
profundo y esta figura ilustra la situación común en la que las tareas comparten una entrada común pero
involucran diferentes variables aleatorias objetivo. Las capas inferiores de una red profunda (ya sea
supervisada y anticipada o que incluya un componente generativo con flechas hacia abajo) se pueden
compartir entre dichas tareas, mientras que los parámetros específicos de la tarea (asociados
respectivamente con los pesos hacia y desde h (1) y h (2)) se puede aprender además de aquellos que
producen una representación compartida
h (compartida)
. El supuesto
subyacente es que existe un conjunto común de factores que explican
las variaciones en la entrada x, mientras que cada tarea está asociada con un subconjunto de estos factores. En este ejemplo,
se supone además que las unidades ocultas de nivel superior h (1) y h (2) (1) están especializadas en cada tarea (prediciendo
respectivamente yy (2)), mientras que algunas
representaciones
de nivel
intermedio
h (compartidas)
sesentido
comparte
las tareas.
En el contexto del
aprendizaje
no supervisado,
tiene
queen todas
algunos de los factores de nivel superior no estén asociados con ninguna de las tareas de salida (h (3)): estos son los factores
que explican algunas de (1) las variaciones de entrada pero no relevante para predecir y
oy
(2) .
Se pueden lograr mejores límites de generalización y error de generalización (Baxter, 1995)
gracias a los parámetros compartidos, para los cuales se puede aumentar la solidez estadística.
245
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
0,20
Pérdida del conjunto de entrenamiento
Pérdida del conjunto de validación
negativa)
probabilidad
de
(logaritmo
Pérdida
0,15
0,10
0,05
0.00
0
50
100
150
200
250
Tiempo (épocas)
Figura 7.3: Curvas de aprendizaje que muestran cómo la pérdida de probabilidad logarítmica negativa cambia
con el tiempo (indicada como número de iteraciones de entrenamiento sobre el conjunto de datos o épocas).
En este ejemplo, entrenamos una red maxout en MNIST. Observe que el objetivo de entrenamiento disminuye
constantemente con el tiempo, pero la pérdida promedio del conjunto de validación eventualmente comienza
a aumentar nuevamente, formando una curva asimétrica en forma de U.
mejorado enormemente (en proporción con el mayor número de ejemplos para los parámetros compartidos, en
comparación con el escenario de modelos de tarea única). Por supuesto, esto sucederá sólo si algunas
suposiciones sobre la relación estadística entre las diferentes tareas son válidas, lo que significa que hay algo
compartido entre algunas de las tareas.
Desde el punto de vista del aprendizaje profundo, la creencia previa subyacente es la siguiente: entre los
factores que explican las variaciones observadas en los datos asociados a las diferentes tareas, algunos son
compartidos entre dos o más tareas.
7.8 Parada anticipada
Cuando entrenamos modelos grandes con suficiente capacidad de representación para adaptarse a la tarea, a
menudo observamos que el error de entrenamiento disminuye constantemente con el tiempo, pero el error del
conjunto de validación comienza a aumentar nuevamente. Consulte la figura 7.3 para ver un ejemplo de este
comportamiento. Este comportamiento se produce de forma muy fiable.
Esto significa que podemos obtener un modelo con un mejor error del conjunto de validación (y,
por lo tanto, con suerte, un mejor error del conjunto de pruebas) volviendo a la configuración de
parámetros en el momento con el error del conjunto de validación más bajo. Cada vez que mejora el
error en el conjunto de validación , almacenamos una copia de los parámetros del modelo. Cuando
finaliza el algoritmo de entrenamiento , devolvemos estos parámetros, en lugar de los parámetros más recientes. El
246
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
El algoritmo finaliza cuando ningún parámetro ha mejorado con respecto al mejor error de validación registrado
durante un número de iteraciones preespecificado. Este procedimiento se especifica más formalmente en el
algoritmo 7.1.
Algoritmo 7.1 El metaalgoritmo de parada temprana para determinar la mejor cantidad de tiempo para entrenar.
Este metaalgoritmo es una estrategia general que funciona bien con una variedad de algoritmos de entrenamiento
y formas de cuantificar el error en el conjunto de validación.
Sea n el número de pasos entre evaluaciones.
Sea p la “paciencia”, el número de veces que se observa el empeoramiento del error del conjunto de validación
antes de darse por vencido.
Sean θo los parámetros iniciales. θ ← θo yo
←0j←0
v←∞
θ
←θ
i
←i
mientras j < p haz
Actualice θ ejecutando el algoritmo de entrenamiento durante n pasos. i ← i + n
←
v
ValidationSetError(θ) si v < v
entonces j ← 0 θ
←θi
←i
v←v
demás
j ← j + 1 final
si
terminar mientras
Los mejores parámetros son θ
, el mejor número de pasos de entrenamiento es i
Esta estrategia se conoce como parada anticipada. Probablemente sea la forma de regularización más utilizada
en el aprendizaje profundo. Su popularidad se debe tanto a su eficacia como a su sencillez.
Una forma de pensar en la parada anticipada es como un algoritmo de selección de hiperparámetros
muy eficiente. Desde este punto de vista, el número de pasos de entrenamiento es solo otro hiperparámetro.
Podemos ver en la figura 7.3 que este hiperparámetro tiene un conjunto de validación en forma de U
247
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
curva de rendimiento. La mayoría de los hiperparámetros que controlan la capacidad del modelo tienen
una curva de rendimiento del conjunto de validación en forma de U, como se ilustra en la figura 5.3. En
el caso de la detención anticipada, controlamos la capacidad efectiva del modelo determinando cuántos
pasos puede tomar para adaptarse al conjunto de entrenamiento. La mayoría de los hiperparámetros
deben elegirse mediante un costoso proceso de adivinación y verificación, en el que configuramos un
hiperparámetro al comienzo del entrenamiento y luego ejecutamos el entrenamiento durante varios
pasos para ver su efecto. El hiperparámetro "tiempo de entrenamiento" es único porque, por definición,
una sola ejecución de entrenamiento prueba muchos valores del hiperparámetro. El único costo
significativo de elegir este hiperparámetro automáticamente mediante la detención anticipada es
ejecutar la evaluación del conjunto de validación periódicamente durante el entrenamiento. Idealmente,
esto se hace en paralelo al proceso de capacitación en una máquina separada, CPU separada o GPU
separada del proceso de capacitación principal. Si dichos recursos no están disponibles, entonces el
costo de estas evaluaciones periódicas se puede reducir utilizando un conjunto de validación que sea
pequeño en comparación con el conjunto de entrenamiento o evaluando el error del conjunto de
validación con menos frecuencia y obteniendo una estimación de resolución más baja del tiempo de entrenamiento ópti
Un costo adicional a la interrupción anticipada es la necesidad de mantener una copia de los
mejores parámetros. Este costo es generalmente insignificante, porque es aceptable almacenar
estos parámetros en una forma de memoria más lenta y más grande (por ejemplo, entrenar en la
memoria de la GPU, pero almacenar los parámetros óptimos en la memoria del host o en una unidad
de disco). Dado que los mejores parámetros se escriben con poca frecuencia y nunca se leen
durante el entrenamiento, estas escrituras lentas ocasionales tienen poco efecto en el tiempo total de entrenamiento.
La detención anticipada es una forma de regularización muy discreta, ya que casi no requiere
cambios en el procedimiento de entrenamiento subyacente, la función objetivo o el conjunto de
valores de parámetros permitidos. Esto significa que es fácil utilizar la parada temprana sin dañar la
dinámica de aprendizaje. Esto contrasta con la caída de peso, donde se debe tener cuidado de no
utilizar demasiada caída de peso y atrapar la red en un mínimo local incorrecto correspondiente a
una solución con pesos patológicamente pequeños.
La interrupción temprana se puede utilizar sola o junto con otras estrategias de regularización.
Incluso cuando se utilizan estrategias de regularización que modifican la función objetivo para fomentar
una mejor generalización, es raro que la mejor generalización ocurra en un mínimo local del objetivo
de entrenamiento.
La parada anticipada requiere un conjunto de validación, lo que significa que algunos datos de entrenamiento
no se introducen en el modelo. Para aprovechar mejor estos datos adicionales, se puede realizar un entrenamiento
adicional después de que se haya completado el entrenamiento inicial con parada temprana. En el segundo paso
de entrenamiento adicional, se incluyen todos los datos de entrenamiento. Hay dos estrategias básicas que se
pueden utilizar para este segundo procedimiento de formación.
Una estrategia (algoritmo 7.2) es inicializar el modelo nuevamente y volver a entrenarlo en todos
248
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
de los datos. En este segundo pase de entrenamiento, entrenamos para la misma cantidad de pasos que el
procedimiento de parada temprana determinó que era óptimo en el primer pase. Hay algunas sutilezas
asociadas con este procedimiento. Por ejemplo, no existe una buena manera de saber si se debe volver a
entrenar para la misma cantidad de actualizaciones de parámetros o la misma cantidad de pasadas por el
conjunto de datos. En la segunda ronda de entrenamiento, cada paso por el conjunto de datos requerirá más
actualizaciones de parámetros porque el conjunto de entrenamiento es más grande.
Algoritmo 7.2 Un metaalgoritmo para utilizar la parada temprana para determinar cuánto tiempo entrenar y
luego volver a entrenar con todos los datos.
Sean X(tren) e y (tren) el conjunto de entrenamiento.
Divida X(tren) e y (tren) en (X(subtren) , X(válido)) y (y (subtren) , y (válido)) respectivamente.
Ejecute la parada anticipada (algoritmo 7.1) comenzando desde θ aleatorio usando X (subtren)
y y (subtren) para datos de entrenamiento y X (válido) e y (válido) para datos de validación. Este
devuelve i
, el número óptimo de pasos.
Establezca θ nuevamente en valores aleatorios.
Entrenar en X(tren) e y (tren) para i
pasos.
Otra estrategia para utilizar todos los datos es mantener los parámetros obtenidos en la primera
ronda de entrenamiento y luego continuar entrenando pero ahora utilizando todos los datos. En esta
etapa, ya no tenemos una guía sobre cuándo detenerse en términos de varios pasos. En cambio,
podemos monitorear la función de pérdida promedio en el conjunto de validación y continuar
entrenando hasta que caiga por debajo del valor del objetivo del conjunto de entrenamiento en el que
se detuvo el procedimiento de parada anticipada. Esta estrategia evita el alto costo de volver a
entrenar el modelo desde cero, pero no se comporta tan bien. Por ejemplo, no hay ninguna garantía
de que el objetivo del conjunto de validación alcance alguna vez el valor objetivo, por lo que ni siquiera
se garantiza que esta estrategia termine.
Este procedimiento se presenta más formalmente en el algoritmo 7.3.
La parada anticipada también es útil porque reduce el coste computacional del procedimiento
de entrenamiento. Además de la obvia reducción de costos debido a la limitación del número de
iteraciones de entrenamiento, también tiene el beneficio de proporcionar regularización sin requerir
la adición de términos de penalización a la función de costos o el cálculo de los gradientes de
dichos términos adicionales.
Cómo la detención anticipada actúa como regularizador: hasta ahora hemos afirmado que la detención
anticipada es una estrategia de regularización, pero hemos respaldado esta afirmación solo mostrando
curvas de aprendizaje donde el error del conjunto de validación tiene una curva en forma de U. Qué
249
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Algoritmo 7.3 Metaalgoritmo que utiliza una parada temprana para determinar en qué valor objetivo
comenzamos a sobreajustar y luego continuar entrenando hasta alcanzar ese valor.
Sean X(tren) e y (tren) el conjunto de entrenamiento.
Divida X(tren) e y (tren) en (X(subtren) , X(válido)) y (y (subtren) , y (válido)) respectivamente.
Ejecute la parada anticipada (algoritmo 7.1) comenzando desde θ aleatorio usando X (subtren) y
y (subtren) para datos de entrenamiento y X (válido) e y (válido) para datos de validación. Este
actualiza θ.
← J(θ, X(subtren) , y (subtren)) mientras
que J(θ, X(válido) , y (válido)) >
haz
Entrena sin X(entrenamiento) e y (entrenamiento) para n pasos.
parar mientras
¿Cuál es el mecanismo real mediante el cual la interrupción anticipada regulariza el modelo?
Bishop (1995a) y Sjöberg y Ljung (1995) argumentaron que la detención temprana tiene el
efecto de restringir el procedimiento de optimización a un volumen relativamente pequeño de
espacio de parámetros en la vecindad del valor del parámetro inicial θo, como se ilustra en la
figura 7.4. Más específicamente, imagine tomar τ pasos de optimización (correspondientes a
τ iteraciones de entrenamiento) y con una tasa de aprendizaje . Podemos ver el producto
τ como una medida de capacidad efectiva. Suponiendo que el gradiente está acotado,
restringir tanto el número de iteraciones como la tasa de aprendizaje limita el volumen de
espacio de parámetros alcanzable desde θo. En este sentido, τ se comporta como si fuera
el recíproco del coeficiente utilizado para la caída del peso.
De hecho, podemos mostrar cómo, en el caso de un modelo lineal simple con una ecuación cuadrática
función de error y descenso de gradiente simple: la parada anticipada equivale a la regularización 2
L.
2
Para comparar con la L clásica
regularización, examinamos una configuración
simple donde los únicos parámetros son pesos lineales (θ = w). Podemos modelar la función de
costos J con una aproximación cuadrática en la vecindad del valor empíricamente óptimo de los
pesos w
:
1
Jˆ(θ) = J(w
)+
2
(w − w
)
H(w − w
donde H es la matriz hessiana de J con respecto a w evaluada en w
),
. Dado el supuesto de que w
(7.33)
es
un mínimo de J(w), sabemos que H es semidefinido positivo.
Bajo una aproximación local de la serie de Taylor, el gradiente viene dado por:
wJˆ(w) = H(w − w
250
).
(7.34)
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
w
w
w˜
w2
w2
w˜
w1
w1
Figura 7.4: Una ilustración del efecto de detenerse temprano. (Izquierda)Las líneas de contorno sólidas
indican los contornos de la probabilidad logarítmica negativa. La línea discontinua indica la trayectoria.
tomado por SGD comenzando desde el origen. En lugar de detenerse en el punto w
que
minimiza el costo, la parada temprana da como resultado que la trayectoria se detenga en un punto anterior w˜.
2 regularización para comparación. Los círculos discontinuos
(Derecha) Una ilustración del efecto de L
2
indicar los contornos de la L
penalización, que hace que el mínimo del coste total recaiga
más cerca del origen que el mínimo del costo no regularizado.
Vamos a estudiar la trayectoria que sigue el vector de parámetros durante
capacitación. Para simplificar, establezcamos el vector de parámetros inicial en el origen,3 que
es w(0) = 0. Estudiemos el comportamiento aproximado del descenso del gradiente en J mediante
analizando el descenso de gradiente en Jˆ:
w−w
w (τ) = w(τ−1) −
wJˆ(w(τ−1) )
= w(τ−1) −
H(w(τ−1) − w
= (I −
H)(w(τ−1) − w
(7.35)
) (τ)
).
(7.36)
(7.37)
Reescribamos ahora esta expresión en el espacio de los vectores propios de H, explotando
la descomposición propia de H: H = QΛQ , donde Λ es una matriz diagonal y Q
es una base ortonormal de vectores propios.
w (τ)
Q
(w (τ) − w
−w
= (I −
) = (I −
QΛQ
)(w(τ−1) − w
Λ)Q
(w(τ−1) − w
)
)
(7.38)
(7.39)
3Para las redes neuronales, para obtener ruptura de simetría entre unidades ocultas, no podemos inicializar
todos los parámetros a 0, como se analiza en la sección 6.2. Sin embargo, el argumento es válido para cualquier otro
valor inicial w(0) .
251
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Suponiendo que w(0) = 0 y que
se elige para que sea lo suficientemente pequeño como para garantizar |
1− λi| < 1, la trayectoria del parámetro durante el entrenamiento después de la actualización del parámetro
τ es la siguiente:
Q
Ahora, la expresión para Q
w (τ)
= [I − (I −
Λ) τ ]Q
w
.
(7.40)
w˜ en la ecuación 7.13 para L oscilaba entre: 2 la regularización puede ser posterior
Q
w˜ = (Λ + αI)−1ΛQ
w
Q
w˜ = [I − (Λ + αI)−1α]Q
(7.41)
w
(7.42)
Comparando la ecuación 7.40 y la ecuación 7.42, vemos que si los hiperparámetros
, α y τ se eligen de manera que
(yo −
Λ)
τ
= (Λ + αI)−1α,
(7.43)
Se puede considerar que la regularización y la parada temprana son equivalentes (al
menos bajo la aproximación cuadrática de la función objetivo). Yendo aún más lejos, tomando
2 entonces l
logaritmos y usando la expansión en serie para log(1 +x), podemos concluir que si todos los λi
son pequeños (es decir, λi
1 y λi/α
1) entonces
1
τ≈
,
α≈
(7.44)
α
1
τ
.
(7.45)
Es decir, bajo estos supuestos, el número de iteraciones de entrenamiento τ juega un papel
2
inversamente proporcional al parámetro
de regularización L , y el inverso de τ juega el papel
del coeficiente de disminución de peso.
Los valores de los parámetros correspondientes a direcciones de curvatura significativa (de la función objetivo) se
regularizan menos que las direcciones de menor curvatura. Por supuesto, en el contexto de la parada temprana, esto realmente
significa que los parámetros que corresponden a direcciones de curvatura significativa tienden a aprender temprano en relación
con los parámetros correspondientes a direcciones de menor curvatura.
Las derivaciones en esta sección han demostrado que una trayectoria de longitud τ termina en
en un punto que corresponde a un mínimo de L, detenerse 2 el objetivo regularizado. Temprano
es, por supuesto, algo más que la mera restricción de la longitud de la trayectoria; en cambio,
la parada anticipada normalmente implica monitorear el error del conjunto de validación para
detener la trayectoria en un punto particularmente bueno en el espacio. Por lo tanto, la parada
temprana tiene la ventaja sobre la caída de peso de que la parada temprana determina
automáticamente la cantidad correcta de regularización, mientras que la caída de peso requiere
muchos experimentos de entrenamiento con diferentes valores de su hiperparámetro.
252
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
7.9 Vinculación y uso compartido de parámetros
Hasta ahora, en este capítulo, cuando hemos discutido cómo agregar restricciones o
penalizaciones a los parámetros, siempre lo hemos hecho con respecto a una región o punto fijo.
Por ejemplo, la regularización L2 (o disminución de peso) penaliza los parámetros del modelo por
desviarse del valor fijo de cero. Sin embargo, a veces es posible que necesitemos otras formas
de expresar nuestro conocimiento previo sobre los valores adecuados de los parámetros del modelo.
A veces es posible que no sepamos con precisión qué valores deben tomar los parámetros,
pero sabemos, por el conocimiento del dominio y la arquitectura del modelo, que debe
haber algunas dependencias entre los parámetros del modelo.
Un tipo común de dependencia que a menudo queremos expresar es que ciertos
parámetros deben estar cerca unos de otros. Considere el siguiente escenario: tenemos
dos modelos que realizan la misma tarea de clasificación (con el mismo conjunto de
clases) pero con distribuciones de entrada algo diferentes. Formalmente, tenemos el
modelo A con parámetros w(A) y el modelo B con parámetros w(B) . Los dos modelos
asignan la entrada a dos salidas diferentes, pero relacionadas: yˆ (A) = f(w(A) , x) e yˆ (B)
= g(w(B) , x).
Imaginemos que las tareas son lo suficientemente similares (quizás con distribuciones de entrada y salida similares) que creemos que los
parámetros del modelo deberían ser cercanos (A) i
entre sí:
i, w
(B)
debe estar cerca de w . Podemos aprovechar esta información a través de la regularización. Específicamente,
podemos usar una penalización de norma de parámetro de la forma: Ω(w(A) , w(B)) =
2
w(A) − w(B)
2 . Aquí usamos una L
También son posibles 2 opciones.
pena, pero otros
Este tipo de enfoque fue propuesto por Lasserre et al. (2006), quienes regularizaron los
parámetros de un modelo, entrenado como clasificador en un paradigma supervisado, para
estar cerca de los parámetros de otro modelo, entrenado en un paradigma no supervisado
(para capturar la distribución de los datos de entrada observados). Las arquitecturas se
construyeron de manera que muchos de los parámetros del modelo clasificador pudieran
emparejarse con los parámetros correspondientes del modelo no supervisado.
Si bien una penalización de norma de parámetro es una forma de regularizar los parámetros
para que estén cerca unos de otros, la forma más popular es utilizar restricciones: forzar que
conjuntos de parámetros sean iguales. Este método de regularización a menudo se denomina
intercambio de parámetros, porque interpretamos que los distintos modelos o componentes del
modelo comparten un conjunto único de parámetros. Una ventaja significativa de compartir
parámetros sobre la regularización de los parámetros para que estén cerca (mediante una
penalización de norma) es que solo es necesario almacenar en la memoria un subconjunto de
parámetros (el conjunto único). En ciertos modelos, como la red neuronal convolucional, esto
puede conducir a una reducción significativa en la huella de memoria del modelo.
253
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Redes neuronales convolucionales Con diferencia, el uso más popular y extendido del uso
compartido de parámetros se produce en las redes neuronales convolucionales (CNN) aplicadas
a la visión por computadora.
Las imágenes naturales tienen muchas propiedades estadísticas que son invariantes a la traducción.
Por ejemplo, una foto de un gato sigue siendo una foto de un gato si se traslada un píxel a la
derecha. Las CNN tienen en cuenta esta propiedad al compartir parámetros en múltiples
ubicaciones de imágenes. La misma característica (una unidad oculta con los mismos pesos)
se calcula en diferentes ubicaciones de la entrada. Esto significa que podemos encontrar un
gato con el mismo detector de gatos ya sea que el gato aparezca en la columna i o en la
columna i + 1 de la imagen.
El intercambio de parámetros ha permitido a las CNN reducir drásticamente la cantidad de
parámetros únicos del modelo y aumentar significativamente el tamaño de la red sin requerir el
correspondiente aumento en los datos de entrenamiento. Sigue siendo uno de los mejores
ejemplos de cómo incorporar eficazmente el conocimiento del dominio en la arquitectura de la red.
Las CNN se analizarán con más detalle en el capítulo 9.
7.10 Representaciones dispersas
La caída de peso actúa imponiendo una penalización directamente a los parámetros del
modelo. Otra estrategia es penalizar las activaciones de las unidades en una red neuronal,
fomentando que sus activaciones sean escasas. Esto impone indirectamente una
penalización complicada a los parámetros del modelo.
Ya hemos discutido (en la sección 7.1.2) cómo L 1 la penalización induce
una parametrización escasa, lo que significa que muchos de los parámetros se vuelven
cero (o cerca de cero). La escasez de representación, por otro lado, describe una
representación donde muchos de los elementos de la representación son cero (o
cercanos a cero). Se puede ilustrar una visión simplificada de esta distinción en el
contexto de la regresión lineal:
18
5
=
15­9
−3
y
Rm
4 0 0 −2 0
0 0 −1 0 3
0 5 0 0 0 1 0 0 −1
0 −4
1 0 0 0 −5 0
A
Rm×n
254
2
0
3­2
0
0
−5
1
4x
(7.46)
Rn
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
−14
1
19
y
2
0
=
3
2 23
0
3 −1 2 −5 4 1 4 2 −3 −1 1 3
−1 5 4 2 −3 −2 1 2 −3 0 −3
−5 4 −2 2 −5 −1
B
Rm
Rm×n
(7.47)
0­3
0h
Rn
En la primera expresión, tenemos un ejemplo de un modelo de regresión lineal
escasamente parametrizado. En el segundo, tenemos regresión lineal con una
representación escasa h de los datos x. Es decir, h es una función de x que, en algún
sentido, representa la información presente en x, pero lo hace con un vector disperso.
La regularización representacional se logra mediante el mismo tipo de mecanismos
que hemos utilizado en la regularización de parámetros.
La regularización de la penalización normativa de las representaciones se realiza agregando
a la función de pérdida J una penalización normativa en la representación. Esta penalización
se denota Ω(h). Como antes, denotamos la función de pérdida regularizada
por J˜: J˜(θ; X, y) = J(θ; X, y) + αΩ(h)
(7.48)
donde α
[0, ∞) pondera la contribución relativa del término de penalización de la norma,
donde valores mayores de α corresponden a una mayor regularización.
Como una L 1 una penalización en los parámetros induce escasez de parámetros, una 1
penalización L en los elementos de la representación induce escasez de representación: Ω(h)
= ||h||1 =
|hi|. Por supuesto,
la penalización L es1sólo una opción de penalización que puede
i
resultar en una representación escasa. Otras incluyen la penalización derivada de una t de
Student previa en la representación (Olshausen y Field, 1996; Bergstra, 2011) y penalizaciones
por divergencia de KL (Larochelle y Bengio, 2008) que son especialmente útiles para
representaciones con elementos restringidos a estar en la unidad. intervalo.
Lee y cols. (2008) y Goodfellow et al. (2009) proporcionan ejemplos de estrategias
basadas en regularizar la activación promedio en varios ejemplos, 1m
i Hola ) , a
estar cerca de algún valor objetivo, como un vector con .01 para cada entrada.
Otros enfoques obtienen escasez de representación con una restricción estricta de
los valores de activación. Por ejemplo, la búsqueda de coincidencia ortogonal (Pati et
al., 1993) codifica una entrada x con la representación h que resuelve el problema de
optimización restringida.
2
,
arg min
x − Wh
(7.49)
h,
h
0 <k
donde h 0 es el número de entradas distintas de cero de h. Este problema se puede resolver
eficientemente cuando W se restringe a ser ortogonal. Este método a menudo se llama
255
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
OMP­k con el valor de k especificado para indicar el número de funciones distintas de cero
permitidas. Coates y Ng (2011) demostraron que OMP­1 puede ser un extractor de
características muy eficaz para arquitecturas profundas.
Básicamente, cualquier modelo que tenga unidades ocultas puede hacerse escaso. A lo largo de este libro,
veremos muchos ejemplos de regularización de dispersión utilizada en una variedad de contextos.
7.11 Ensacado y otros métodos de conjunto
Bagging (abreviatura de bootstrap agregating) es una técnica para reducir el error de generalización
mediante la combinación de varios modelos (Breiman, 1994). La idea es entrenar varios modelos
diferentes por separado y luego hacer que todos los modelos voten sobre el resultado para los ejemplos
de prueba. Este es un ejemplo de una estrategia general en aprendizaje automático llamada promedio de
modelos. Las técnicas que emplean esta estrategia se conocen como métodos de conjunto.
La razón por la que el promedio de modelos funciona es que diferentes modelos generalmente no
cometerán los mismos errores en el conjunto de prueba.
Consideremos, por ejemplo, un conjunto de k modelos de regresión. Supongamos que cada
modelo comete un error
i en cada ejemplo, con los errores extraídos de una distribución normal
2
multivariada de media cero con varianzas E[ i ] = v y covarianzas E[ i j] = c. Entonces el error
cometido por la predicción promedio de todos los modelos de conjunto es
1k
yo
i. El error cuadrático esperado del predictor de conjunto es
mi
k
1
=
yo
i
1
2
mi
yo +
k2
2
yo
=
1k­1v+k
k
i
j
j
(7.50)
=yo
C.
(7.51)
En el caso de que los errores estén perfectamente correlacionados y c = v, el error cuadrático
medio se reduce a v, por lo que el promedio del modelo no ayuda en absoluto. En el caso en
que los errores no estén perfectamente correlacionados y c = 0, el error cuadrático esperado
del conjunto es solo 1k
v. Esto significa que el error cuadrático esperado del conjunto disminuye
linealmente con el tamaño del conjunto. En otras palabras, en promedio, el conjunto se
desempeñará al menos tan bien como cualquiera de sus miembros, y si los miembros cometen
errores independientes, el conjunto se desempeñará significativamente mejor que sus miembros.
Los diferentes métodos de conjunto construyen el conjunto de modelos de diferentes maneras.
Por ejemplo, cada miembro del conjunto podría formarse entrenando a un
256
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Conjunto de datos originales
Primer miembro del conjunto
Primer conjunto de datos remuestreado
8
Segundo miembro del conjunto
Segundo conjunto de datos remuestreado
8
Figura 7.5: Una caricatura de cómo funciona el embolsado. Supongamos que entrenamos un detector 8
en el conjunto de datos que se muestra arriba, que contiene un 8, un 6 y un 9. Supongamos que creamos
dos conjuntos de datos remuestreados diferentes. El procedimiento de entrenamiento de embolsado
consiste en construir cada uno de estos conjuntos de datos mediante muestreo con reemplazo. El primer
conjunto de datos omite el 9 y repite el 8. En este conjunto de datos, el detector aprende que un bucle
encima del dígito corresponde a un 8. En el segundo conjunto de datos, repetimos el 9 y omitimos el 6.
En este caso, el El detector aprende que un bucle en la parte inferior del dígito corresponde a un 8. Cada
una de estas reglas de clasificación individuales es frágil, pero si promediamos su salida, entonces el
detector es robusto y logra la máxima confianza solo cuando ambos bucles del 8 están presentes.
tipo diferente de modelo utilizando un algoritmo o función objetivo diferente. El embolsado es un método
que permite reutilizar varias veces el mismo tipo de modelo, algoritmo de entrenamiento y función
objetivo.
Específicamente, el embolsado implica la construcción de k conjuntos de datos diferentes. Cada
conjunto de datos tiene la misma cantidad de ejemplos que el conjunto de datos original, pero cada
conjunto de datos se construye mediante muestreo con reemplazo del conjunto de datos original.
Esto significa que, con una alta probabilidad, a cada conjunto de datos le faltan algunos de los
ejemplos del conjunto de datos original y también contiene varios ejemplos duplicados (en promedio,
alrededor de 2/3 de los ejemplos del conjunto de datos original se encuentran en el conjunto de
entrenamiento resultante , si tiene el mismo tamaño que el original). Luego, el modelo i se entrena en
el conjunto de datos i. Las diferencias entre los ejemplos que se incluyen en cada conjunto de datos
dan como resultado diferencias entre los modelos entrenados. Consulte la figura 7.5 para ver un ejemplo.
Las redes neuronales alcanzan una variedad suficientemente amplia de puntos de solución que a
menudo pueden beneficiarse del promedio del modelo incluso si todos los modelos están entrenados en el
mismo conjunto de datos. Las diferencias en la inicialización aleatoria, la selección aleatoria de minilotes, las
diferencias en los hiperparámetros o los diferentes resultados de implementaciones no deterministas de
redes neuronales son a menudo suficientes para causar que diferentes miembros de la red neuronal sean diferentes.
257
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
conjunto para cometer errores parcialmente independientes.
El promedio de modelos es un método extremadamente poderoso y confiable para reducir el error
de generalización. Generalmente se desaconseja su uso cuando se comparan algoritmos para artículos
científicos, porque cualquier algoritmo de aprendizaje automático puede beneficiarse sustancialmente
del promedio del modelo al precio de una mayor computación y memoria.
Por este motivo, las comparaciones de referencia se suelen realizar utilizando un único modelo.
Los concursos de aprendizaje automático generalmente se ganan mediante métodos que utilizan
el promedio de docenas de modelos. Un ejemplo destacado reciente es el Gran Premio Netflix (Koren,
2009).
No todas las técnicas para construir conjuntos están diseñadas para hacer que el conjunto esté más
regularizado que los modelos individuales. Por ejemplo, una técnica llamada refuerzo (Freund y Schapire,
1996b,a) construye un conjunto con mayor capacidad que los modelos individuales. Se ha aplicado el
impulso para construir conjuntos de redes neuronales (Schwenk y Bengio, 1998) añadiendo
progresivamente redes neuronales al conjunto. También se ha aplicado el impulso interpretando una red
neuronal individual como un conjunto (Bengio et al., 2006a), añadiendo de forma incremental unidades
ocultas a la red neuronal.
7.12 Abandono
Dropout (Srivastava et al., 2014) proporciona un método computacionalmente económico pero poderoso
para regularizar una amplia familia de modelos. En una primera aproximación, se puede considerar la
deserción como un método para hacer que el embolsado sea práctico para conjuntos de muchas redes
neuronales grandes. El embolsado implica entrenar varios modelos y evaluar varios modelos en cada
ejemplo de prueba. Esto parece poco práctico cuando cada modelo es una red neuronal grande, ya que
entrenar y evaluar dichas redes es costoso en términos de tiempo de ejecución y memoria. Es común
utilizar conjuntos de cinco a diez redes neuronales (Szegedy et al. (2014a) utilizaron seis para ganar el
ILSVRC, pero más que esto rápidamente se vuelve difícil de manejar. El abandono proporciona una
aproximación económica al entrenamiento y evaluación de un conjunto empaquetado de redes neuronales
exponencialmente numerosas.
Específicamente, la deserción entrena el conjunto que consta de todas las subredes que
se pueden formar eliminando unidades que no son de salida de una red base subyacente,
como se ilustra en la figura 7.6. En la mayoría de las redes neuronales modernas, basadas
en una serie de transformaciones afines y no linealidades, podemos eliminar efectivamente
una unidad de una red multiplicando su valor de salida por cero. Este procedimiento requiere
algunas ligeras modificaciones para modelos como las redes de funciones de base radial, que toman
258
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
la diferencia entre el estado de la unidad y algún valor de referencia. Aquí, presentamos el algoritmo de
abandono en términos de multiplicación por cero para simplificar, pero se puede modificar trivialmente
para que funcione con otras operaciones que eliminan una unidad de la red.
Recuerde que para aprender con embolsado, definimos k modelos diferentes, construimos k
conjuntos de datos diferentes mediante muestreo del conjunto de entrenamiento con reemplazo y
luego entrenamos el modelo i en el conjunto de datos i. El abandono pretende aproximarse a este
proceso, pero con un número exponencialmente grande de redes neuronales. Específicamente, para
entrenar con abandono, utilizamos un algoritmo de aprendizaje basado en minibatch que realiza
pequeños pasos, como el descenso de gradiente estocástico. Cada vez que cargamos un ejemplo
en un minibatch, tomamos muestras aleatoriamente de una máscara binaria diferente para aplicarla
a todas las unidades de entrada y ocultas de la red. La máscara de cada unidad se muestrea
independientemente de todas las demás. La probabilidad de muestrear un valor de máscara de uno
(lo que provoca que se incluya una unidad) es un hiperparámetro fijado antes de que comience el
entrenamiento. No es una función del valor actual de los parámetros del modelo o del ejemplo de
entrada. Normalmente, se incluye una unidad de entrada con una probabilidad de 0,8 y una unidad
oculta con una probabilidad de 0,5. Luego ejecutamos la propagación hacia adelante, la propagación
hacia atrás y la actualización del aprendizaje como de costumbre. La Figura 7.7 ilustra cómo ejecutar
la propagación hacia adelante con abandono.
Más formalmente, supongamos que un vector de máscara µ especifica qué unidades
incluir, y J (θ, µ) define el costo del modelo definido por los parámetros θ y la máscara µ.
Entonces el entrenamiento de abandono consiste en minimizar EμJ(θ, µ). La expectativa contiene
exponencialmente muchos términos, pero podemos obtener una estimación insesgada de su
gradiente muestreando valores de µ.
El entrenamiento de abandono no es exactamente lo mismo que el entrenamiento de
embolsado. En el caso del embolsado los modelos son todos independientes. En el caso de la
deserción, los modelos comparten parámetros y cada modelo hereda un subconjunto diferente de
parámetros de la red neuronal principal. Este intercambio de parámetros permite representar un
número exponencial de modelos con una cantidad manejable de memoria. En el caso del
embolsado, cada modelo se entrena para que converja en su respectivo conjunto de entrenamiento.
En el caso de la deserción, normalmente la mayoría de los modelos no se entrenan explícitamente
en absoluto; por lo general, el modelo es lo suficientemente grande como para que no sea factible
muestrear todas las subredes posibles durante la vida del universo. En cambio, una pequeña
fracción de las subredes posibles se entrena para un solo paso, y el intercambio de parámetros
hace que las subredes restantes alcancen una buena configuración de los parámetros. Estas son
las únicas diferencias. Más allá de estos, la deserción sigue el algoritmo de embolsado. Por
ejemplo, el conjunto de entrenamiento encontrado por cada subred es de hecho un subconjunto
del conjunto de entrenamiento original muestreado con reemplazo.
259
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
y
y
h1
h2
x1
x2
y
y
h1
h1
x2
x1
y
h2
h2
x1 x2
y
y
h2
h2
h2
x1
x2
x1
y
x1
h2
y
h1
h1
h1
y
y
x2
x2
y
y
x2
h1
h1
h2
Red básica
x1
x2
y
x1
y
x1
y
h2
y
h1
x2
Conjunto de subredes
Figura 7.6: La deserción entrena un conjunto que consta de todas las subredes que se pueden construir eliminando
unidades que no son de salida de una red base subyacente. Aquí comenzamos con una red base con dos unidades
visibles y dos unidades ocultas. Hay dieciséis subconjuntos posibles de estas cuatro unidades. Mostramos las
dieciséis subredes que pueden formarse eliminando diferentes subconjuntos de unidades de la red original. En este
pequeño ejemplo, una gran proporción de las redes resultantes no tienen unidades de entrada o ninguna ruta que
conecte la entrada con la salida. Este problema se vuelve insignificante para redes con capas más amplias, donde
la probabilidad de descartar todos los caminos posibles desde las entradas a las salidas se vuelve menor.
260
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
y
h1
h2
x1
x2
y
hˆ1
hˆ2
h1
µh1
h2
xˆ1
µx1
µh2
xˆ2
x1
x2
µx2
Figura 7.7: Un ejemplo de propagación directa a través de una red feedforward utilizando
Abandonar. (Arriba) En este ejemplo, utilizamos una red feedforward con dos unidades de entrada, una
Capa oculta con dos unidades ocultas y una unidad de salida. (Abajo)Para realizar hacia adelante
propagación con abandono, tomamos muestras aleatorias de un vector µ con una entrada para cada entrada
o unidad oculta en la red. Las entradas de µ son binarias y se muestrean de forma independiente.
de cada uno. La probabilidad de que cada entrada sea 1 es un hiperparámetro, normalmente 0,5
para las capas ocultas y 0,8 para la entrada. Cada unidad en la red se multiplica por
la máscara correspondiente, y luego la propagación hacia adelante continúa a través del resto de la
red como de costumbre. Esto equivale a seleccionar aleatoriamente una de las subredes de
figura 7.6 y ejecutando la propagación hacia adelante a través de ella.
261
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Para hacer una predicción, un conjunto embolsado debe acumular votos de todos sus
miembros. En este contexto nos referimos a este proceso como inferencia . Hasta ahora,
nuestra descripción del embolsamiento y la deserción no ha requerido que el modelo sea
explícitamente probabilístico. Ahora, asumimos que la función del modelo es generar una
distribución de probabilidad. En el caso del embolsado, cada modelo i produce una distribución
de probabilidad (i) (y | x). La predicción del conjunto viene dada por la media aritmética de
todas estas distribuciones,
pag
1
k
k
(7.52)
p (i)(y | x).
yo=1
En el caso de la deserción, cada submodelo definido por el vector de máscara µ define una
distribución de probabilidad p(y | x, µ). La media aritmética de todas las máscaras viene dada
por
(7.53)
p(µ)p(y | x, µ)
µ
donde p(μ) es la distribución de probabilidad que se utilizó para muestrear μ en el momento del entrenamiento.
Debido a que esta suma incluye un número exponencial de términos, es difícil de evaluar
excepto en los casos en que la estructura del modelo permite alguna forma de simplificación.
Hasta ahora, no se sabe que las redes neuronales profundas permitan ninguna simplificación
manejable. En cambio, podemos aproximar la inferencia con muestreo, promediando el
resultado de muchas máscaras. Incluso entre 10 y 20 mascarillas suelen ser suficientes para
obtener un buen rendimiento.
Sin embargo, existe un enfoque aún mejor, que nos permite obtener una buena
aproximación a las predicciones de todo el conjunto, a costa de una sola propagación
hacia adelante. Para hacerlo, pasamos a utilizar la media geométrica en lugar de la
media aritmética de las distribuciones predichas de los miembros del conjunto. Warde­
Farley et al. (2014) presentan argumentos y evidencia empírica de que la media
geométrica funciona de manera comparable a la media aritmética en este contexto.
No se garantiza que la media geométrica de múltiples distribuciones de probabilidad sea
una distribución de probabilidad. Para garantizar que el resultado sea una distribución de
probabilidad, imponemos el requisito de que ninguno de los submodelos asigne probabilidad 0
a ningún evento y renormalizamos la distribución resultante. La distribución de probabilidad no
normalizada definida directamente por la media geométrica viene dada por
p(y | x, µ)
p˜conjunto (y | x) = 2d
(7.54)
µ
donde d es el número de unidades que se pueden descartar. Aquí usamos una distribución
uniforme sobre µ para simplificar la presentación, pero las distribuciones no uniformes son
262
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
también es posible. Para hacer predicciones debemos volver a normalizar el conjunto:
p˜conjunto(y | x)
pensemble(y | x) =
p˜conjunto(y
y
(7.55)
| x) .
Una idea clave (Hinton et al., 2012c) involucrada en la deserción escolar es que podemos
aproximar pensemble evaluando p (y | x) en un modelo: el modelo con todas las unidades, pero con
los pesos que salen de la unidad i multiplicados. por la probabilidad de incluir la unidad i. La motivación
para esta modificación es capturar el valor esperado correcto de la producción de esa unidad. A este
enfoque lo llamamos regla de inferencia de escala de peso.
Todavía no existe ningún argumento teórico sobre la precisión de esta regla de inferencia aproximada
en redes no lineales profundas, pero empíricamente funciona muy bien.
Debido a que usualmente usamos una probabilidad de inclusión de 1 2 , La regla de escala de peso
generalmente equivale a dividir los pesos por 2 al final del entrenamiento y luego usar el modelo como
de costumbre. Otra forma de conseguir el mismo resultado es multiplicar los estados de las unidades
por 2 durante el entrenamiento. De cualquier manera, el objetivo es garantizar que la entrada total
esperada de una unidad en el momento de la prueba sea aproximadamente la misma que la entrada
total esperada de esa unidad en el momento del tren, aunque en promedio faltan la mitad de las
unidades en el momento del tren.
Para muchas clases de modelos que no tienen unidades ocultas no lineales, la regla de inferencia
de escala de peso es exacta. Para un ejemplo simple, considere un clasificador de regresión softmax
con n variables de entrada representadas por el vector v:
P(y = y | v) = softmax
W
.
v+b
(7.56)
y
Podemos indexar en la familia de submodelos multiplicando por elementos la entrada con un vector
binario d:
P(y = y | v; d) = softmax
W
(d
v) + b
.
(7.57)
y
El predictor de conjunto se define volviendo a normalizar la media geométrica de las predicciones
de todos los miembros del conjunto:
Conjunto P˜ (y = y | v)
Pensemble(y = y | v) =
Conjunto P˜ (y = y
| v)
(7.58)
años
dónde
P(y = y | v; d).
d
Conjunto P˜ (y = y | v) = 2n
263
{0,1}n
(7.59)
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Para ver que la regla de escalamiento de peso es exacta, podemos simplificar P˜ conjunto:
P(y = y | v; d)
(7.60)
(d
v) + b)
(7.61)
W y,:(d
v) + por
PAG
conjunto (y = y | v) = 2n
= 2n
d {0,1}n
softmax (W
d
exp
= 2n
=
y
y
{0,1}n
d
{0,1}n
2n
d
{0,1}n exp
2n
d
{0,1}ny
exp
y
Wy
W
exp
,:(d
v) + por
y,:(d
W y
(7.62)
v) + b
,:(d
(7.63)
v) + por
Debido a que P˜ estará normalizado, podemos ignorar con seguridad la multiplicación por factores
que son constantes con respecto a y:
Conjunto P˜ (y = y | v)
2n
d
exp
W y,:(d
W
2n
y,:(d
v) + por
=
exp
d
(7.64)
{0,1}n
1
= exp.
v) + por
(7.65)
{0,1}n
1 2W
y,:v + by
.
(7.66)
Sustituyendo esto nuevamente en la ecuación 7.58 obtenemos un clasificador softmax con pesos
1
2W.El
La regla de escala de peso también es exacta en otras configuraciones, incluidas
redes de regresión con resultados condicionalmente normales y redes profundas que tienen
capas ocultas sin no linealidades. Sin embargo, la regla de escala de peso es sólo una
aproximación para modelos profundos que tienen no linealidades. Aunque la aproximación
no ha sido caracterizada teóricamente, a menudo funciona bien empíricamente. Goodfellow
et al. (2013a) encontraron experimentalmente que la aproximación de escala de peso puede
funcionar mejor (en términos de precisión de clasificación) que las aproximaciones de Monte
Carlo al predictor de conjunto. Esto se mantuvo incluso cuando se permitió que la
aproximación de Monte Carlo muestreara hasta 1.000 subredes. Gal y Ghahramani (2015)
encontraron que algunos modelos obtienen una mejor precisión de clasificación utilizando veinte muestras
264
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
la aproximación de Montecarlo. Parece que la elección óptima de la aproximación
de inferencia depende del problema.
Srivastava et al. (2014) demostraron que el abandono es más efectivo que otros
regularizadores estándar computacionalmente económicos, como la disminución del peso, las
restricciones de las normas de filtrado y la regularización de la actividad escasa. La deserción
también se puede combinar con otras formas de regularización para lograr una mejora adicional.
Una ventaja del abandono es que es muy barato desde el punto de vista computacional. El
uso de la deserción durante el entrenamiento requiere solo O(n) cálculo por ejemplo por
actualización, para generar n números binarios aleatorios y multiplicarlos por el estado.
Dependiendo de la implementación, también puede requerir memoria O(n) para almacenar estos
números binarios hasta la etapa de retropropagación. Ejecutar la inferencia en el modelo entrenado
tiene el mismo costo por ejemplo que si no se utilizara el abandono, aunque debemos pagar el
costo de dividir los pesos por 2 una vez antes de comenzar a ejecutar la inferencia en los ejemplos.
Otra ventaja importante del abandono es que no limita significativamente el tipo de modelo o
procedimiento de entrenamiento que se puede utilizar. Funciona bien con casi cualquier modelo que
utilice una representación distribuida y se pueda entrenar con descenso de gradiente estocástico. Esto
incluye redes neuronales de avance, modelos probabilísticos como máquinas de Boltzmann restringidas
(Srivastava et al., 2014) y redes neuronales recurrentes (Bayer y Osendorfer, 2014; Pascanu et al.,
2014a). Muchas otras estrategias de regularización de poder comparable imponen restricciones más
severas a la arquitectura del modelo.
Aunque el costo por paso de aplicar la deserción a un modelo específico es insignificante, el
costo de usar la deserción en un sistema completo puede ser significativo. Debido a que el
abandono es una técnica de regularización, reduce la capacidad efectiva de un modelo. Para
compensar este efecto, debemos aumentar el tamaño del modelo. Normalmente, el error del
conjunto de validación óptimo es mucho menor cuando se utiliza el abandono, pero esto tiene el
costo de un modelo mucho más grande y muchas más iteraciones del algoritmo de entrenamiento.
Para conjuntos de datos muy grandes, la regularización confiere poca reducción en el error de
generalización. En estos casos, el costo computacional del uso de modelos de abandono y más
grandes puede superar el beneficio de la regularización.
Cuando hay muy pocos ejemplos de capacitación etiquetados disponibles, el abandono es
menos efectivo. Las redes neuronales bayesianas (Neal, 1996) superan el abandono en el
conjunto de datos de empalme alternativo (Xiong et al., 2011) , donde hay menos de 5000
ejemplos disponibles (Srivastava et al., 2014). Cuando hay datos adicionales sin etiquetar
disponibles, el aprendizaje de funciones no supervisado puede obtener una ventaja sobre el abandono.
Apuesta y col. (2013) demostraron que, cuando se aplica a la regresión lineal, la caída del
2
es equivalente a L
peso en la deserción, con un coeficiente de caída del peso diferente para
265
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
cada característica de entrada. La magnitud del coeficiente de disminución de peso de cada característica
está determinada por su varianza. Resultados similares se aplican a otros modelos lineales. Para los
modelos profundos, la abandono no equivale a una caída de peso.
La estocasticidad utilizada durante el entrenamiento con abandono no es necesaria para el éxito del
enfoque. Es sólo una forma de aproximar la suma de todos los submodelos. Wang y Manning (2013)
derivaron aproximaciones analíticas a esta marginación. Su aproximación, conocida como abandono
rápido, resultó en un tiempo de convergencia más rápido debido a la estocasticidad reducida en el cálculo
del gradiente. Este método también se puede aplicar en el momento de la prueba, como una aproximación
más basada en principios (pero también más costosa desde el punto de vista computacional) al promedio
de todas las subredes que la aproximación de escala de peso. El abandono rápido se ha utilizado para
casi igualar el rendimiento del abandono estándar en pequeños problemas de redes neuronales, pero
aún no ha producido una mejora significativa ni se ha aplicado a un problema grande.
Así como la estocasticidad no es necesaria para lograr el efecto regularizador de la deserción,
tampoco es suficiente. Para demostrar esto, Warde­Farley et al. (2014) diseñaron experimentos de
control utilizando un método llamado aumento de la deserción que diseñaron para usar exactamente el
mismo ruido de máscara que la deserción tradicional, pero carecen de su efecto regularizador. El impulso
de deserción entrena a todo el conjunto para maximizar conjuntamente la probabilidad logarítmica en el
conjunto de entrenamiento. En el mismo sentido en que la deserción escolar tradicional es análoga al
embolsamiento, este enfoque es análogo al impulso. Como se esperaba, los experimentos con aumento
de la deserción casi no muestran ningún efecto de regularización en comparación con el entrenamiento
de toda la red como un modelo único. Esto demuestra que la interpretación de la deserción como
ensacamiento tiene valor más allá de la interpretación de la deserción como robustez al ruido. El efecto
de regularización del conjunto en bolsas sólo se logra cuando los miembros del conjunto muestreados
estocásticamente están entrenados para desempeñarse bien independientemente unos de otros.
La deserción ha inspirado otros enfoques estocásticos para entrenar conjuntos
exponencialmente grandes de modelos que comparten pesos. DropConnect es un caso
especial de abandono en el que cada producto entre un único peso escalar y un único estado
de unidad oculta se considera una unidad que se puede descartar (Wan et al., 2013). La
agrupación estocástica es una forma de agrupación aleatoria (consulte la sección 9.3) para
construir conjuntos de redes convolucionales en las que cada red convolucional atiende a
diferentes ubicaciones espaciales de cada mapa de características. Hasta ahora, el abandono
sigue siendo el método de conjunto implícito más utilizado.
Una de las ideas clave del abandono es que entrenar una red con comportamiento estocástico y
hacer predicciones promediando múltiples decisiones estocásticas implementa una forma de embolsado
con parámetros compartidos. Anteriormente, describimos
266
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
abandono como embolsar un conjunto de modelos formado por la inclusión o exclusión de
unidades. Sin embargo, no es necesario que este modelo de estrategia de promediación se
base en la inclusión y la exclusión. En principio, es admisible cualquier tipo de modificación aleatoria.
En la práctica, debemos elegir familias de modificaciones que las redes neuronales puedan
aprender a resistir. Idealmente, también deberíamos utilizar familias de modelos que permitan
una regla de inferencia aproximada rápida. Podemos pensar en cualquier forma de
modificación parametrizada por un vector µ como entrenamiento de un conjunto formado por
p(y | x, µ) para todos los valores posibles de µ. No es necesario que µ tenga un número finito
de valores. Por ejemplo, µ puede tener un valor real. Srivastava et al. (2014) demostraron
que multiplicar los pesos por µ
N (1, I) puede superar el abandono basado en máscaras
binarias. Debido a que E[μ] = 1, la red estándar implementa automáticamente una inferencia
aproximada en el conjunto, sin necesidad de ningún escalamiento de peso.
Hasta ahora hemos descrito el abandono simplemente como un medio para realizar un embolsado
aproximado y eficiente. Sin embargo, existe otra visión de la deserción que va más allá . Dropout
entrena no solo un conjunto de modelos en bolsas, sino un conjunto de modelos que comparten
unidades ocultas. Esto significa que cada unidad oculta debe poder funcionar bien independientemente
de qué otras unidades ocultas haya en el modelo. Las unidades ocultas deben estar preparadas para
ser intercambiadas e intercambiadas entre modelos. Hinton et al. (2012c) se inspiraron en una idea de
la biología: la reproducción sexual, que implica el intercambio de genes entre dos organismos diferentes,
crea una presión evolutiva para que los genes no solo se vuelvan buenos, sino que se intercambien
fácilmente entre diferentes organismos. Estos genes y características son muy resistentes a los cambios
en su entorno porque no pueden adaptarse incorrectamente a características inusuales de ningún
organismo o modelo. Por lo tanto, la deserción regulariza cada unidad oculta para que sea no sólo una
buena característica sino una característica que es buena en muchos contextos. Warde­ Farley et al.
(2014) compararon el entrenamiento con abandono con el entrenamiento de conjuntos grandes y
concluyeron que el abandono ofrece mejoras adicionales al error de generalización más allá de las
obtenidas por conjuntos de modelos independientes.
Es importante comprender que una gran parte del poder de caída surge del hecho de que
el ruido de enmascaramiento se aplica a las unidades ocultas. Esto puede verse como una
forma de destrucción adaptativa y altamente inteligente del contenido de información de la
entrada en lugar de destrucción de los valores brutos de la entrada. Por ejemplo, si el modelo
aprende una unidad oculta hi que detecta una cara al encontrar la nariz, soltar hi corresponde
a borrar la información de que hay una nariz en la imagen. El modelo debe aprender otro hola,
ya sea que codifique de forma redundante la presencia de una nariz o que detecte la cara por
otra característica, como la boca.
Las técnicas tradicionales de inyección de ruido que añaden ruido no estructurado en la
entrada no son capaces de borrar aleatoriamente la información sobre una nariz de una
imagen de un rostro a menos que la magnitud del ruido sea tan grande que casi toda la información en
267
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
la imagen se elimina. Destruir las características extraídas en lugar de los valores originales
permite que el proceso de destrucción utilice todo el conocimiento sobre la distribución de
entrada que el modelo ha adquirido hasta el momento.
Otro aspecto importante de la deserción escolar es que el ruido es multiplicativo. Si el
ruido fuera aditivo con escala fija, entonces una unidad oculta lineal rectificada hi con ruido
añadido
podría simplemente aprender a que hi se volviera muy grande para hacer que
el ruido añadido
fuera insignificante en comparación. El ruido multiplicativo no permite
una solución tan patológica al problema de la robustez del ruido.
Otro algoritmo de aprendizaje profundo, la normalización por lotes, reparametriza el modelo de una
manera que introduce ruido tanto aditivo como multiplicativo en las unidades ocultas en el momento del
entrenamiento. El objetivo principal de la normalización por lotes es mejorar la optimización, pero el ruido
puede tener un efecto de regularización y, en ocasiones, hace que el abandono sea innecesario. La
normalización de lotes se describe con más detalle en la sección 8.7.1.
7.13 Entrenamiento de confrontación
En muchos casos, las redes neuronales han comenzado a alcanzar el rendimiento humano cuando se
evalúan en un conjunto de pruebas iid. Por lo tanto, es natural preguntarse si estos modelos han obtenido
una verdadera comprensión de estas tareas a nivel humano. Para probar el nivel de comprensión que
tiene una red de la tarea subyacente, podemos buscar ejemplos que el modelo clasifique erróneamente.
Szegedy et al. (2014b) encontraron que incluso las redes neuronales que funcionan con precisión a nivel
humano tienen una tasa de error de casi el 100% en ejemplos que se construyen intencionalmente
mediante el uso de un procedimiento de optimización para buscar una entrada x cerca de un punto de
datos x de modo que la salida del modelo sea muy diferente en x
. En muchos casos, x puede ser tan
similar a x que un observador humano no puede distinguir entre el ejemplo original y el ejemplo adversario,
pero la red puede hacer predicciones muy diferentes. Consulte la figura 7.8 para ver un ejemplo.
Los ejemplos contradictorios tienen muchas implicaciones, por ejemplo, en la seguridad informática,
que están más allá del alcance de este capítulo. Sin embargo, son interesantes en el contexto de la
regularización porque se puede reducir la tasa de error en el conjunto de pruebas iid original a través del
entrenamiento adversario : entrenamiento en ejemplos adversamente perturbados del conjunto de
entrenamiento (Szegedy et al., 2014b; Goodfellow et al., 2014b ).
Goodfellow et al. (2014b) mostraron que una de las causas principales de estos
ejemplos contradictorios es la linealidad excesiva. Las redes neuronales se construyen
principalmente a partir de bloques de construcción lineales. En algunos experimentos, la
función global que implementan resulta ser altamente lineal. Estas funciones lineales son fáciles
268
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
=
+ .007 ×
X
y =“panda” con
x+
signo(
xJ (θ, x, y))
“nematodo” con
57,7% de
8,2% de
confianza
confianza
signo(
xJ(θ, x, y)) “gibón” con 99,3
% de
confianza
Figura 7.8: Una demostración de generación de ejemplos contradictorios aplicada a
GoogLeNet (Szegedy et al., 2014a) en ImageNet. Agregando un vector imperceptiblemente
pequeño cuyos elementos son iguales al signo de los elementos del gradiente de la función
de costo con respecto a la entrada, podemos cambiar la clasificación de la imagen de
GoogLeNet. Reproducido con autorización de Goodfellow et al. (2014b).
Para optimizar. Desafortunadamente, el valor de una función lineal puede cambiar muy
rápidamente si tiene numerosas entradas. Si cambiamos cada entrada en , entonces una
función lineal con pesos w puede cambiar hasta ||w||1, lo que puede ser una cantidad muy
grande si w es de alta dimensión. El entrenamiento adversario desalienta este comportamiento
localmente lineal altamente sensible al alentar a la red a ser localmente constante en la
vecindad de los datos de entrenamiento. Esto puede verse como una forma de introducir
explícitamente una constancia local previa en las redes neuronales supervisadas.
El entrenamiento adversario ayuda a ilustrar el poder de utilizar una gran familia de
funciones en combinación con una regularización agresiva. Los modelos puramente lineales,
como la regresión logística, no pueden resistir ejemplos contradictorios porque se ven obligados
a ser lineales. Las redes neuronales pueden representar funciones que pueden variar desde
casi lineales hasta casi localmente constantes y, por lo tanto, tienen la flexibilidad de capturar
tendencias lineales en los datos de entrenamiento y al mismo tiempo aprender a resistir la perturbación local.
Los ejemplos contradictorios también proporcionan un medio para lograr un aprendizaje semisupervisado . En un
punto x que no está asociado con una etiqueta en el conjunto de datos, el modelo mismo asigna alguna etiqueta yˆ. La
etiqueta yˆ del modelo puede no ser la etiqueta verdadera, pero si el modelo es de alta calidad, entonces yˆ tiene una alta
probabilidad de proporcionar la etiqueta verdadera. Podemos buscar un ejemplo contradictorio x que haga que el clasificador
sea
= yˆ. Los ejemplos contradictorios generados utilizando no el resultado real, una etiqueta y con etiqueta y , sino una
contradictorios virtuales (Miyato et
etiqueta proporcionada por un modelo entrenado, se denominan ejemplos
al., 2015). Luego se puede entrenar al clasificador para que asigne la misma etiqueta a x y x
a aprender una función que es
269
. Esto anima al clasificador
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
robusto a pequeños cambios en cualquier lugar de la variedad donde se encuentran los datos sin
etiquetar . La suposición que motiva este enfoque es que diferentes clases generalmente se encuentran
en variedades desconectadas, y una pequeña perturbación no debería poder saltar de una variedad de
clase a otra variedad de clase.
7.14 Clasificador de distancia tangente, apoyo tangente y
tangente múltiple
Muchos algoritmos de aprendizaje automático pretenden superar la maldición de la dimensionalidad
asumiendo que los datos se encuentran cerca de una variedad de baja dimensión, como se describe en la
sección 5.11.3.
Uno de los primeros intentos de aprovechar la hipótesis múltiple es el algoritmo
de distancia tangente (Simard et al., 1993, 1998). Es un algoritmo no paramétrico del
vecino más cercano en el que la métrica utilizada no es la distancia euclidiana
genérica sino una que se deriva del conocimiento de las variedades cerca de las
cuales se concentra la probabilidad. Se supone que estamos tratando de clasificar
ejemplos y que los ejemplos de la misma variedad comparten la misma categoría.
Dado que el clasificador debe ser invariante a los factores de variación locales que
corresponden al movimiento en la variedad, tendría sentido usar como distancia del
vecino más cercano entre los puntos x1 y x2 la distancia entre las variedades M1 y
M2 a las que pertenecen respectivamente. Aunque esto puede ser computacionalmente
difícil (requeriría resolver un problema de optimización para encontrar el par de puntos
más cercano en M1 y M2), una alternativa barata que tiene sentido localmente es
aproximar Mi por su plano tangente en xi y medir la distancia entre las dos tangentes,
o entre un plano tangente y un punto. Eso se puede lograr resolviendo un sistema
lineal de baja dimensión (en la dimensión de las variedades). Por supuesto, este
algoritmo requiere que se especifiquen los vectores tangentes.
En un espíritu similar, el algoritmo de apoyo tangente (Simard et al., 1992) (figura 7.9) entrena un
clasificador de red neuronal con una penalización adicional para hacer que cada salida f(x) de la red
neuronal sea localmente invariante ante factores de variación conocidos. Estos factores de variación
corresponden al movimiento a lo largo de la variedad cerca de la cual se concentran ejemplos de la
misma clase. La invariancia local se logra requiriendo que
xf (x) sea (i) en x, o de manera equivalente,
vectores tangentes conocidos sea pequeña agregando a la derivadaque v (i) ortogonal a los múltiples
direcciones v de regularización. penalización Ω:
Ω(f) =
i
direccional de f en x en las
(
270
xf(x))
v (i)
2.
(7.67)
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
Por supuesto, este regularizador se puede escalar mediante un hiperparámetro apropiado
y, para la mayoría de las redes neuronales, necesitaríamos sumar muchas salidas en
lugar de la única salida f(x) descrita aquí para simplificar. Al igual que con el algoritmo de
distancia tangente, los vectores tangentes se derivan a priori, generalmente del
conocimiento formal del efecto de transformaciones como traslación, rotación y escalado en imágenes.
El apoyo tangente se ha utilizado no sólo para el aprendizaje supervisado (Simard et al.,
1992) sino también en el contexto del aprendizaje por refuerzo (Thrun, 1995).
La propagación tangente está estrechamente relacionada con el aumento del conjunto de datos.
En ambos casos, el usuario del algoritmo codifica su conocimiento previo de la tarea especificando un
conjunto de transformaciones que no deberían alterar la salida de la red. La diferencia es que en el
caso del aumento del conjunto de datos, la red está entrenada explícitamente para clasificar
correctamente distintas entradas que se crearon aplicando más de una cantidad infinitesimal de estas
transformaciones. La propagación tangente no requiere visitar explícitamente un nuevo punto de
entrada. En cambio, regulariza analíticamente el modelo para resistir la perturbación en las direcciones
correspondientes a la transformación especificada. Si bien este enfoque analítico es intelectualmente
elegante, tiene dos inconvenientes importantes. En primer lugar, sólo regulariza el modelo para resistir
perturbaciones infinitesimales. El aumento explícito del conjunto de datos confiere resistencia a
perturbaciones mayores. En segundo lugar, el enfoque infinitesimal plantea dificultades para los
modelos basados en unidades lineales rectificadas. Estos modelos sólo pueden reducir sus derivados
apagando las unidades o reduciendo sus pesos. No pueden reducir sus derivados saturándolos a un
valor alto con pesos grandes, como pueden hacerlo las unidades sigmoideas o tanh . El aumento del
conjunto de datos funciona bien con unidades lineales rectificadas porque se pueden activar diferentes
subconjuntos de unidades rectificadas para diferentes versiones transformadas de cada entrada original.
La propagación tangente también está relacionada con el doble backprop (Drucker y LeCun, 1992)
y el entrenamiento adversario (Szegedy et al., 2014b; Goodfellow et al., 2014b).
El doble backprop regulariza el jacobiano para que sea pequeño, mientras que el entrenamiento
adversario encuentra entradas cercanas a las entradas originales y entrena el modelo para producir el
mismo resultado en estas que en las entradas originales. La propagación tangente y el aumento del
conjunto de datos mediante transformaciones especificadas manualmente requieren que el modelo sea
invariante a ciertas direcciones de cambio específicas en la entrada.
Tanto el entrenamiento de doble backprop como el de confrontación requieren que el modelo
sea invariante en todas las direcciones de cambio en la entrada, siempre que el cambio sea
pequeño. Así como el aumento del conjunto de datos es la versión no infinitesimal de la
propagación tangente, el entrenamiento adversario es la versión no infinitesimal de la doble backprop.
El clasificador tangente múltiple (Rifai et al., 2011c), elimina la necesidad de conocer los vectores
tangentes a priori. Como veremos en el capítulo 14, los codificadores automáticos pueden
271
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
x2
Normal
Tangente
x1
Figura 7.9: Ilustración de la idea principal del algoritmo de apoyo tangente (Simard et al.,
1992) y del clasificador tangente múltiple (Rifai et al., 2011c), que regularizan la función de
salida del clasificador f(x). Cada curva representa la variedad para una clase diferente,
ilustrada aquí como una variedad unidimensional incrustada en un espacio bidimensional.
En una curva, hemos elegido un solo punto y hemos dibujado un vector que es tangente a la variedad
de clases (paralelo y tocando la variedad) y un vector que es normal a la variedad de clases (ortogonal
a la variedad). En múltiples dimensiones puede haber muchas direcciones tangentes y muchas
direcciones normales. Esperamos que la función de clasificación cambie rápidamente a medida que se
mueve en la dirección normal a la variedad, y que no cambie a medida que se mueve a lo largo de la
variedad de clases. Tanto la propagación tangente como el clasificador tangente múltiple regularizan f(x)
para que no cambie mucho a medida que x se mueve a lo largo de la variedad. La propagación tangente
requiere que el usuario especifique manualmente funciones que calculan las direcciones tangentes
(como especificar que las pequeñas traducciones de imágenes permanezcan en la misma variedad de
clases), mientras que el clasificador de tangentes múltiples estima las direcciones tangentes múltiples
entrenando un codificador automático para que se ajuste a los datos de entrenamiento. El uso de
codificadores automáticos para estimar variedades se describirá en el capítulo 14.
estimar los múltiples vectores tangentes. El clasificador tangente múltiple utiliza esta técnica
para evitar la necesidad de vectores tangentes especificados por el usuario. Como se ilustra en
la figura 14.10, estos vectores tangentes estimados van más allá de las invariantes clásicas
que surgen de la geometría de las imágenes (como traslación, rotación y escalamiento) e
incluyen factores que deben aprenderse porque son específicos de un objeto (como un cuerpo
en movimiento). partes). Por lo tanto , el algoritmo propuesto con el clasificador tangente
múltiple es simple: (1) use un codificador automático para aprender la estructura múltiple
mediante aprendizaje no supervisado, y (2) use estas tangentes para regularizar un clasificador
de red neuronal como en la propiedad tangente (ecuación 7.67).
Este capítulo ha descrito la mayoría de las estrategias generales utilizadas para regularizar
las redes neuronales. La regularización es un tema central del aprendizaje automático y como tal
272
Machine Translated by Google
CAPÍTULO 7. REGULARIZACIÓN PARA EL APRENDIZAJE PROFUNDO
será revisado periódicamente por la mayoría de los capítulos restantes. Otro tema central del
aprendizaje automático es la optimización, que se describe a continuación.
273
Machine Translated by Google
Capítulo 8
Optimización para un entrenamiento profundo
Modelos
Los algoritmos de aprendizaje profundo implican optimización en muchos contextos. Por
ejemplo, realizar inferencias en modelos como PCA implica resolver un problema de
optimización. A menudo utilizamos la optimización analítica para escribir pruebas o diseñar algoritmos.
De todos los muchos problemas de optimización involucrados en el aprendizaje profundo,
el más difícil es el entrenamiento de redes neuronales. Es bastante común invertir días o
meses en cientos de máquinas para resolver incluso una sola instancia del problema de
entrenamiento de redes neuronales. Debido a que este problema es tan importante y
costoso, se ha desarrollado un conjunto especializado de técnicas de optimización para resolverlo.
Este capítulo presenta estas técnicas de optimización para el entrenamiento de redes neuronales.
Si no está familiarizado con los principios básicos de la optimización basada en gradientes,
le sugerimos revisar el capítulo 4. Ese capítulo incluye una breve descripción general de la
optimización numérica en general.
Este capítulo se centra en un caso particular de optimización: encontrar los parámetros θ de
una red neuronal que reducen significativamente una función de costo J(θ), que normalmente
incluye una medida de rendimiento evaluada en todo el conjunto de entrenamiento, así como
términos de regularización adicionales.
Comenzamos con una descripción de en qué se diferencia la optimización utilizada como
algoritmo de entrenamiento para una tarea de aprendizaje automático de la optimización pura. A
continuación, presentamos varios de los desafíos concretos que dificultan la optimización de las
redes neuronales. Luego definimos varios algoritmos prácticos, incluidos los propios algoritmos
de optimización y las estrategias para inicializar los parámetros. Los algoritmos más avanzados
adaptan sus tasas de aprendizaje durante el entrenamiento o aprovechan la información contenida en
274
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
las segundas derivadas de la función de costos. Finalmente, concluimos con una revisión
de varias estrategias de optimización que se forman combinando algoritmos de optimización
simples en procedimientos de nivel superior.
8.1 En qué se diferencia el aprendizaje de la optimización pura
Los algoritmos de optimización utilizados para el entrenamiento de modelos profundos difieren de los
algoritmos de optimización tradicionales en varios aspectos. El aprendizaje automático suele actuar de forma indirecta.
En la mayoría de los escenarios de aprendizaje automático, nos preocupamos por alguna
medida de rendimiento P, que se define con respecto al conjunto de pruebas y también puede
ser intratable. Por lo tanto, optimizamos P sólo indirectamente. Reducimos una función de costo
diferente J(θ) con la esperanza de que al hacerlo mejore P . Esto contrasta con la optimización
pura, donde minimizar J es un objetivo en sí mismo. Los algoritmos de optimización para
entrenar modelos profundos también suelen incluir cierta especialización en la estructura
específica de las funciones objetivo del aprendizaje automático.
Normalmente, la función de costo se puede escribir como un promedio del conjunto de entrenamiento,
como
J(θ) = E(x,y)
pˆdataL(f(x; θ), y), (8.1) donde L es la función de
pérdida por ejemplo, f (x; θ) es la salida predicha cuando la entrada es x, pˆdata es la distribución
empírica. En el caso del aprendizaje supervisado, y es el resultado objetivo. A lo largo de este
capítulo, desarrollamos el caso supervisado no regularizado, donde los argumentos para L son
f(x; θ) e y. Sin embargo, es trivial ampliar este desarrollo, por ejemplo, para incluir θ o x como
argumentos, o excluir y como argumentos, para desarrollar diversas formas de regularización o
aprendizaje no supervisado.
La ecuación 8.1 define una función objetivo con respecto al conjunto de entrenamiento. Por
lo general, preferiríamos minimizar la función objetivo correspondiente donde la expectativa se
toma a través de los datos que generan pdata de distribución en lugar de solo sobre el conjunto
de entrenamiento finito:
J
(θ) = E(x,y)
pdataL(f(x; θ), y).
(8.2)
8.1.1 Minimización empírica del riesgo
El objetivo de un algoritmo de aprendizaje automático es reducir el error de generalización
esperado dado por la ecuación 8.2. Esta cantidad se conoce como riesgo. Destacamos aquí
que la expectativa se asume sobre los verdaderos datos de distribución subyacentes. Si
conociéramos la verdadera distribución pdata(x, y), la minimización del riesgo sería una tarea de optimización.
275
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
solucionable mediante un algoritmo de optimización. Sin embargo, cuando no conocemos pdata(x, y) pero
solo tenemos un conjunto de muestras de entrenamiento, tenemos un problema de aprendizaje automático.
La forma más sencilla de convertir un problema de aprendizaje automático en un
problema de optimización es minimizar la pérdida esperada en el conjunto de entrenamiento.
Esto significa reemplazar la distribución verdadera p(x, y) con la distribución empírica pˆ(x, y)
definida por el conjunto de entrenamiento. Ahora minimizamos el riesgo empírico.
1
Ej,y
pˆdata(x,y) [L(f(x; θ), y)] =
metro
m
yo=1
L(f(x (i) (i) ); θ), y
(8.3)
donde m es el número de ejemplos de entrenamiento.
El proceso de formación basado en minimizar este error medio de formación se conoce
como minimización de riesgos empíricos. En este contexto, el aprendizaje automático sigue
siendo muy similar a la optimización sencilla. En lugar de optimizar el riesgo directamente,
optimizamos el riesgo empírico y esperamos que el riesgo también disminuya significativamente .
Una variedad de resultados teóricos establecen condiciones bajo las cuales se puede esperar
que el riesgo real disminuya en diversas cantidades.
Sin embargo, la minimización empírica del riesgo es propensa a un sobreajuste. Los
modelos con alta capacidad pueden simplemente memorizar el conjunto de entrenamiento. En
muchos casos, la minimización empírica del riesgo no es realmente factible. Los algoritmos de
optimización modernos más eficaces se basan en el descenso de gradiente, pero muchas
funciones de pérdida útiles, como la pérdida 0­1, no tienen derivadas útiles (la derivada es cero
o no está definida en todas partes). Estos dos problemas significan que, en el contexto del
aprendizaje profundo, rara vez utilizamos la minimización empírica de riesgos. En lugar de ello,
debemos utilizar un enfoque ligeramente diferente, en el que la cantidad que realmente
optimizamos sea aún más diferente de la cantidad que realmente queremos optimizar.
8.1.2 Funciones de pérdida sustituta y detención anticipada
A veces, la función de pérdida que realmente nos importa (por ejemplo, el error de
clasificación) no se puede optimizar de manera eficiente. Por ejemplo, minimizar
exactamente la pérdida esperada 0­1 suele ser intratable (exponencial en la dimensión
de entrada), incluso para un clasificador lineal (Marcotte y Savard, 1992). En tales
situaciones, normalmente se optimiza una función de pérdida sustituta , que actúa como proxy pero tien
Por ejemplo, la probabilidad logarítmica negativa de la clase correcta se suele utilizar como
sustituto de la derrota 0­1. La probabilidad logarítmica negativa permite al modelo estimar la
probabilidad condicional de las clases, dada la entrada, y si el modelo puede hacerlo bien,
entonces puede elegir las clases que produzcan el menor error de clasificación esperado .
276
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
En algunos casos, una función de pérdida sustituta en realidad da como resultado la capacidad
de aprender más. Por ejemplo, la pérdida 0­1 del conjunto de prueba a menudo continúa
disminuyendo durante mucho tiempo después de que la pérdida 0­1 del conjunto de entrenamiento
haya llegado a cero, cuando se entrena con el sustituto de probabilidad logarítmica. Esto se debe a
que incluso cuando la pérdida esperada 0­1 es cero, se puede mejorar la robustez del clasificador
separando aún más las clases entre sí, obteniendo un clasificador más seguro y confiable,
extrayendo así más información de los datos de entrenamiento de la que se obtendría. han sido
posibles simplemente minimizando la pérdida promedio de 0­1 en el set de entrenamiento.
Una diferencia muy importante entre la optimización en general y la optimización tal como la
usamos para entrenar algoritmos es que los algoritmos de entrenamiento generalmente no se
detienen en un mínimo local. En cambio, un algoritmo de aprendizaje automático generalmente
minimiza una función de pérdida sustituta pero se detiene cuando se satisface un criterio de
convergencia basado en la detención temprana (sección 7.8) . Normalmente, el criterio de detención
temprana se basa en la verdadera función de pérdida subyacente, como la pérdida 0­1 medida en un
conjunto de validación, y está diseñado para hacer que el algoritmo se detenga cada vez que comienza a ocurrir un so
El entrenamiento a menudo se detiene mientras la función de pérdida sustituta todavía tiene
derivadas grandes, lo cual es muy diferente de la configuración de optimización pura, donde se
considera que un algoritmo de optimización ha convergido cuando el gradiente se vuelve muy pequeño.
8.1.3 Algoritmos por lotes y minibatch
Un aspecto de los algoritmos de aprendizaje automático que los separa de los algoritmos de optimización
generales es que la función objetivo generalmente se descompone como una suma entre los ejemplos
de entrenamiento. Los algoritmos de optimización para el aprendizaje automático normalmente calculan
cada actualización de los parámetros en función de un valor esperado de la función de costos estimado
utilizando solo un subconjunto de los términos de la función de costos completa.
Por ejemplo, los problemas de estimación de máxima verosimilitud, cuando se ven en el espacio
logarítmico, se descomponen en una suma sobre cada ejemplo:
θML = arg máx.
θ
m log pmodel(x (i)
y (i) ; θ). ,
(8.4)
yo=1
Maximizar esta suma equivale a maximizar la expectativa sobre el
distribución empírica definida por el conjunto de entrenamiento:
J(θ) = Ex,y
pˆregistro de datos pmodel(x, y; θ).
(8.5)
La mayoría de las propiedades de la función objetivo J utilizada por la mayoría de nuestros
algoritmos de optimización también son expectativas sobre el conjunto de entrenamiento. Por ejemplo, el
277
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
La propiedad más utilizada es el gradiente:
θJ(θ) = Ex,y
pˆdata
θ log pmodel(x, y; θ).
(8.6)
Calcular esta expectativa exactamente es muy costoso porque requiere evaluar el modelo en cada
ejemplo del conjunto de datos completo. En la práctica, podemos calcular estas expectativas
muestreando aleatoriamente una pequeña cantidad de ejemplos del conjunto de datos y luego tomando
el promedio solo de esos ejemplos.
Recuerde que el error estándar de la media (ecuación 5.46) estimada a partir de n muestras
viene dado por σ/ √ n, donde σ es la verdadera desviación estándar del valor de las muestras. El
denominador de √ n muestra que hay rendimientos menores que los lineales al usar más ejemplos
para estimar el gradiente. Compare dos estimaciones hipotéticas del gradiente, una basada en 100
ejemplos y otra basada en 10 000 ejemplos. Este último requiere 100 veces más cálculo que el
primero, pero reduce el error estándar de la media sólo en un factor de 10. La mayoría de los
algoritmos de optimización convergen mucho más rápido (en términos de cálculo total, no en
términos de número de actualizaciones) si son permitió calcular rápidamente estimaciones
aproximadas del gradiente en lugar de calcular lentamente el gradiente exacto.
Otra consideración que motiva la estimación estadística del gradiente a partir de un pequeño
número de muestras es la redundancia en el conjunto de entrenamiento. En el peor de los casos,
las m muestras del conjunto de entrenamiento podrían ser copias idénticas entre sí. Una estimación
del gradiente basada en muestreo podría calcular el gradiente correcto con una sola muestra,
utilizando m veces menos cálculo que el enfoque ingenuo. En la práctica, es poco probable que
realmente nos encontremos con esta peor situación, pero podemos encontrar una gran cantidad
de ejemplos que hacen contribuciones muy similares al gradiente.
Los algoritmos de optimización que utilizan todo el conjunto de entrenamiento se denominan
métodos de gradiente deterministas o por lotes , porque procesan todos los ejemplos de entrenamiento
simultáneamente en un lote grande. Esta terminología puede resultar algo confusa porque la palabra
"lote" también se utiliza a menudo para describir el minibatch utilizado por el descenso de gradiente
estocástico de minibatch. Normalmente, el término "descenso de gradiente por lotes" implica el uso del
conjunto de entrenamiento completo, mientras que el uso del término "por lotes" para describir un grupo
de ejemplos no. Por ejemplo, es muy común utilizar el término "tamaño de lote" para describir el tamaño
de un minibatch.
Los algoritmos de optimización que utilizan solo un ejemplo a la vez a veces se denominan métodos
estocásticos o en línea . El término en línea suele reservarse para el caso en el que los ejemplos se
extraen de un flujo de ejemplos creados continuamente en lugar de un conjunto de entrenamiento de
tamaño fijo sobre el que se realizan varias pasadas.
La mayoría de los algoritmos utilizados para el aprendizaje profundo se encuentran en algún punto intermedio, ya que utilizan más
278
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
de uno pero menos que todos los ejemplos de capacitación. Estos se llamaban tradicionalmente minibatch
o métodos estocásticos minibatch y ahora es común llamarlos simplemente métodos estocásticos .
El ejemplo canónico de un método estocástico es el descenso de gradiente estocástico,
presentado en detalle en la sección 8.3.1.
Los tamaños de minibatch generalmente dependen de los siguientes factores:
• Los lotes más grandes proporcionan una estimación más precisa del gradiente, pero con retornos
menos que lineales.
• Las arquitecturas multinúcleo suelen estar infrautilizadas por lotes extremadamente pequeños.
Esto motiva el uso de un tamaño de lote mínimo absoluto, por debajo del cual no hay reducción en
el tiempo para procesar un minibatch.
• Si todos los ejemplos del lote se van a procesar en paralelo (como suele ser el caso), entonces la
cantidad de memoria aumenta con el tamaño del lote. Para muchas configuraciones de hardware,
este es el factor limitante en el tamaño del lote.
• Algunos tipos de hardware logran un mejor tiempo de ejecución con tamaños específicos de matrices.
Especialmente cuando se utilizan GPU, es común que la potencia de 2 tamaños de lote
ofrezca un mejor tiempo de ejecución. La potencia típica de 2 tamaños de lote varía de 32 a
256, y a veces se intenta 16 para modelos grandes.
• Los lotes pequeños pueden ofrecer un efecto regularizador (Wilson y Martínez, 2003), quizás
debido al ruido que añaden al proceso de aprendizaje. El error de generalización suele ser
mejor para un tamaño de lote de 1. El entrenamiento con un tamaño de lote tan pequeño
puede requerir una tasa de aprendizaje pequeña para mantener la estabilidad debido a la
alta variación en la estimación del gradiente. El tiempo de ejecución total puede ser muy
alto debido a la necesidad de realizar más pasos, tanto por la tasa de aprendizaje reducida
como porque se necesitan más pasos para observar todo el conjunto de entrenamiento.
Diferentes tipos de algoritmos utilizan diferentes tipos de información del minilote de diferentes
maneras. Algunos algoritmos son más sensibles al error de muestreo que otros, ya sea porque
utilizan información que es difícil de estimar con precisión con pocas muestras o porque utilizan
información de manera que amplifican más los errores de muestreo. Los métodos que calculan
actualizaciones basadas únicamente en el gradiente g suelen ser relativamente robustos y pueden
manejar tamaños de lote más pequeños, como 100. Los métodos de segundo orden , que utilizan
también la matriz de Hesse H y calculan actualizaciones como H­1g, normalmente requieren
tamaños de lote mucho más grandes . como 10.000. Estos lotes de gran tamaño son necesarios
para minimizar las fluctuaciones en las estimaciones de H­1g. Supongamos que H se estima
perfectamente pero tiene un número de condición deficiente. Multiplicación por
279
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
H o su inversa amplifica los errores preexistentes, en este caso, errores de estimación en g.
Por lo tanto , cambios muy pequeños en la estimación de g pueden causar grandes cambios en la
actualización H−1g, incluso si H se estimara perfectamente. Por supuesto, H se estimará sólo
aproximadamente, por lo que la actualización H−1g contendrá incluso más error del que predeciríamos
al aplicar una operación mal condicionada a la estimación de g.
También es fundamental que los minilotes se seleccionen al azar. Calcular una estimación
insesgada del gradiente esperado a partir de un conjunto de muestras requiere que esas
muestras sean independientes. También deseamos que dos estimaciones de gradiente
posteriores sean independientes entre sí, por lo que dos minilotes de ejemplos posteriores
también deberían ser independientes entre sí. Muchos conjuntos de datos se organizan de
forma más natural de manera que los ejemplos sucesivos estén altamente correlacionados.
Por ejemplo, podríamos tener un conjunto de datos médicos con una larga lista de resultados
de análisis de muestras de sangre. Esta lista podría organizarse de manera que primero se
tomen cinco muestras de sangre en diferentes momentos del primer paciente, luego se tomen
tres muestras de sangre del segundo paciente, luego las muestras de sangre del tercer
paciente, y así sucesivamente. Si tuviéramos que extraer ejemplos en orden de esta lista,
entonces cada uno de nuestros minilotes estaría extremadamente sesgado, porque
representaría principalmente a un paciente de los muchos pacientes en el conjunto de datos.
En casos como este, en los que el orden del conjunto de datos tiene cierta importancia, es
necesario mezclar los ejemplos antes de seleccionar minilotes. Para conjuntos de datos muy
grandes, por ejemplo conjuntos de datos que contienen miles de millones de ejemplos en un
centro de datos, puede resultar poco práctico muestrear ejemplos verdaderamente
uniformemente al azar cada vez que queremos construir un minibatch. Afortunadamente, en
la práctica suele ser suficiente mezclar el orden del conjunto de datos una vez y luego
almacenarlo de forma aleatoria. Esto impondrá un conjunto fijo de posibles minilotes de
ejemplos consecutivos que utilizarán todos los modelos entrenados a partir de entonces, y
cada modelo individual se verá obligado a reutilizar este orden cada vez que pase por los
datos de entrenamiento. Sin embargo, esta desviación de la verdadera selección aleatoria no
parece tener un efecto perjudicial significativo. No mezclar los ejemplos de ninguna manera puede reducir ser
Muchos problemas de optimización en el aprendizaje automático se descomponen en ejemplos
lo suficientemente bien como para que podamos calcular actualizaciones completas por separado en
diferentes ejemplos en paralelo. En otras palabras, podemos calcular la actualización que minimiza
J(X) para un minilote de ejemplos X al mismo tiempo que calculamos la actualización para varios otros
minilotes. Estos enfoques distribuidos paralelos asincrónicos se analizan con más detalle en la sección
12.1.3.
Una motivación interesante para el descenso de gradiente estocástico de minibatch es
que sigue el gradiente del verdadero error de generalización (ecuación 8.2) siempre que no
se repitan ejemplos. La mayoría de las implementaciones de gradiente estocástico minibatch
280
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
Descent mezcle el conjunto de datos una vez y luego páselo varias veces. En la primera pasada,
cada minibatch se utiliza para calcular una estimación insesgada del verdadero error de
generalización. En la segunda pasada, la estimación se vuelve sesgada porque se forma
remuestreando valores que ya se han utilizado, en lugar de obtener nuevas muestras justas de los
datos que generan la distribución.
El hecho de que el descenso de gradiente estocástico minimice el error de
generalización es más fácil de ver en el caso del aprendizaje en línea, donde se extraen
ejemplos o minilotes de un flujo de datos. En otras palabras, en lugar de recibir un conjunto
de entrenamiento de tamaño fijo, el alumno es similar a un ser vivo que ve un nuevo
ejemplo en cada instante, y cada ejemplo (x, y) proviene de los datos que generan la distribución pdata(x,
En este escenario, los ejemplos nunca se repiten; cada experiencia es una muestra justa
de pdata.
La equivalencia es más fácil de derivar cuando tanto x como y son discretos. En esto
En este caso, el error de generalización (ecuación 8.2) se puede escribir como una suma
J
(θ) =
pdata(x, y)L(f(x; θ), y),
(8.7)
y
X
con el gradiente exacto
g=
θJ
(θ) =
pdata(x, y)
X
θL(f(x; θ), y).
(8.8)
y
Ya hemos visto el mismo hecho demostrado para la probabilidad logarítmica en las
ecuaciones 8.5 y 8.6 ; observamos ahora que esto es válido para otras funciones L
además de la verosimilitud. Se puede obtener un resultado similar cuando xey son
continuos, bajo supuestos suaves con respecto a pdata y L.
Por tanto, podemos obtener un estimador insesgado del gradiente exacto del error de
generalización muestreando un minilote de ejemplos {x (1) , . . . x (m)} con cor­ (i) a partir
,
que responden a los objetivos
de los datos
y y calculan
que generan
el gradiente
pdata de
dedistribución
pérdida con respecto
a los
parámetros para ese minibatch:
1
ˆg =
metro
θ
L(f(x (i) ; θ), y (i)).
i
(8.9)
La actualización de θ en la dirección de gˆ realiza SGD en el error de generalización.
Por supuesto, esta interpretación sólo se aplica cuando no se reutilizan los ejemplos.
No obstante, normalmente es mejor realizar varias pasadas por el conjunto de entrenamiento, a
menos que el conjunto de entrenamiento sea extremadamente grande. Cuando se utilizan varias
épocas de este tipo, sólo la primera época sigue el gradiente insesgado del error de generalización, pero
281
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
Por supuesto, las épocas adicionales generalmente brindan suficiente beneficio debido a la disminución del
error de entrenamiento para compensar el daño que causan al aumentar la brecha entre el error de
entrenamiento y el error de prueba.
Dado que algunos conjuntos de datos crecen rápidamente en tamaño, más rápido que la potencia
informática, cada vez es más común que las aplicaciones de aprendizaje automático utilicen cada ejemplo
de entrenamiento solo una vez o incluso realicen un recorrido incompleto por el conjunto de entrenamiento.
Cuando se utiliza un conjunto de entrenamiento extremadamente grande, el sobreajuste no es un
problema, por lo que el desajuste y la eficiencia computacional se convierten en las preocupaciones
predominantes. Véase también Bottou y Bousquet (2008) para un análisis del efecto de los cuellos de
botella computacionales sobre el error de generalización, a medida que crece el número de ejemplos de entrenamiento.
8.2 Desafíos en la optimización de redes neuronales
La optimización en general es una tarea extremadamente difícil. Tradicionalmente, el aprendizaje
automático ha evitado la dificultad de la optimización general diseñando cuidadosamente la función
objetivo y las restricciones para garantizar que el problema de optimización sea convexo. Al entrenar
redes neuronales, debemos afrontar el caso general no convexo. Incluso la optimización convexa no está
exenta de complicaciones. En esta sección, resumimos varios de los desafíos más destacados
involucrados en la optimización para el entrenamiento de modelos profundos.
8.2.1 Mal acondicionamiento
Surgen algunos desafíos incluso al optimizar funciones convexas. De estos, el más destacado es el mal
condicionamiento de la matriz de Hesse H. Este es un problema muy general en la mayoría de las
optimizaciones numéricas, convexas o no, y se describe con más detalle en la sección 4.3.1.
Generalmente se cree que el problema de mal condicionamiento está presente en los problemas de
entrenamiento de redes neuronales. El mal condicionamiento puede manifestarse haciendo que el SGD
se "atasque" en el sentido de que incluso pasos muy pequeños aumentan la función de costos.
Recuerde de la ecuación 4.9 que una expansión en serie de Taylor de segundo orden de la
La función de costo predice que un paso de descenso de gradiente de −
g agregará
1
2
2g
Hg −
g
g
(8.10)
1
al costo. El mal acondicionamiento del gradiente se convierte en un problema cuando se
2
excede g g. Para determinar si el mal acondicionamiento es perjudicial para una tarea de
entrenamiento de una red neuronal, se puede monitorear la norma de gradiente cuadrado g
282
2g
gy
Hg
Machine Translated by Google
dieciséis
1.0
14
0,9
12
0,8
10
0,7
8
0,6
6
0,5
clasificación
error
de
Tasa
gradiente
de
Norma
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
4
0,4
2
0.3
0
0,2
−2
0.1
−50 0 50 100 150 200 250
0
50 100 150 200 250
Tiempo de entrenamiento (épocas)
Tiempo de entrenamiento (épocas)
Figura 8.1: El descenso del gradiente a menudo no llega a un punto crítico de ningún tipo. En este ejemplo, la
norma de gradiente aumenta durante el entrenamiento de una red convolucional utilizada para la detección de
objetos. (Izquierda) Un diagrama de dispersión que muestra cómo se distribuyen a lo largo del tiempo las normas
de las evaluaciones de gradientes individuales. Para mejorar la legibilidad, solo se traza una norma de gradiente
por época. El promedio móvil de todas las normas de gradiente se traza como una curva sólida. La norma del
gradiente claramente aumenta con el tiempo, en lugar de disminuir como esperaríamos si el proceso de
entrenamiento convergiera a un punto crítico. (Derecha) A pesar del gradiente creciente, el proceso de formación
es razonablemente exitoso. El error de clasificación del conjunto de validación disminuye a un nivel bajo.
el término g Hg . En muchos casos, la norma del gradiente no se reduce significativamente
a lo largo del aprendizaje, pero el término g Hg crece en más de un orden de magnitud.
El resultado es que el aprendizaje se vuelve muy lento a pesar de la presencia de un fuerte
gradiente porque la tasa de aprendizaje debe reducirse para compensar una curvatura aún
más fuerte. La Figura 8.1 muestra un ejemplo del gradiente que aumenta significativamente
durante el entrenamiento exitoso de una red neuronal.
Aunque el mal condicionamiento está presente en otros entornos además del entrenamiento
de redes neuronales, algunas de las técnicas utilizadas para combatirlo en otros contextos son
menos aplicables a las redes neuronales. Por ejemplo, el método de Newton es una herramienta
excelente para minimizar funciones convexas con matrices de Hesse mal condicionadas, pero
en las secciones siguientes argumentaremos que el método de Newton requiere modificaciones
significativas antes de que pueda aplicarse a redes neuronales.
8.2.2 Mínimos locales
Una de las características más destacadas de un problema de optimización convexa es
que puede reducirse al problema de encontrar un mínimo local. Cualquier mínimo local es
283
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
garantizado como un mínimo global. Algunas funciones convexas tienen una región plana
en la parte inferior en lugar de un único punto mínimo global, pero cualquier punto dentro
de dicha región plana es una solución aceptable. Al optimizar una función convexa,
sabemos que hemos alcanzado una buena solución si encontramos un punto crítico de cualquier tipo.
Con funciones no convexas, como las redes neuronales, es posible tener muchos mínimos locales. De
hecho, se garantiza esencialmente que casi cualquier modelo profundo tendrá un número extremadamente
grande de mínimos locales. Sin embargo, como veremos, esto no es necesariamente un problema importante.
Las redes neuronales y cualquier modelo con múltiples variables latentes parametrizadas
de manera equivalente tienen múltiples mínimos locales debido al problema de identificabilidad
del modelo . Se dice que un modelo es identificable si un conjunto de entrenamiento
suficientemente grande puede descartar todos los parámetros del modelo excepto uno. Los
modelos con variables latentes a menudo no son identificables porque podemos obtener
modelos equivalentes intercambiando variables latentes entre sí. Por ejemplo, podríamos
tomar una red neuronal y modificar la capa 1 intercambiando el vector de peso entrante de la
unidad i con el vector de peso entrante de la unidad j, y luego hacer lo mismo con los vectores
de peso salientes. Si tenemos m capas con n unidades cada una, entonces hay n!m formas
de organizar las unidades ocultas. Este tipo de no identificabilidad se conoce como simetría del espacio de pe
Además de la simetría del espacio de peso, muchos tipos de redes neuronales tienen causas adicionales
de no identificabilidad. Por ejemplo, en cualquier red lineal rectificada o maxout, podemos escalar todos los
pesos entrantes y sesgos de una unidad en α si también escalamos todos sus pesos salientes en 1α . Esto
significa que, si la función de costos no incluye términos como la caída del peso, que dependen directamente
de los pesos en lugar de los resultados de los modelos, cada mínimo local de una red lineal rectificada o
máxima se encuentra en una hipérbola de dimensiones (m × n). de mínimos locales equivalentes .
Estos problemas de identificabilidad del modelo significan que puede haber una cantidad extremadamente
grande o incluso incontablemente infinita de mínimos locales en una función de costo de red neuronal. Sin
embargo, todos estos mínimos locales que surgen de la no identificabilidad son equivalentes entre sí en el
valor de la función de costo. Como resultado, estos mínimos locales no son una forma problemática de no
convexidad.
Los mínimos locales pueden ser problemáticos si tienen un costo elevado en comparación con el mínimo
global. Se pueden construir pequeñas redes neuronales, incluso sin unidades ocultas, que tengan mínimos
locales con un costo mayor que el mínimo global (Sontag y Sussman, 1989; Brady et al., 1989; Gori y Tesi,
1992). Si los mínimos locales con alto costo son comunes, esto podría plantear un problema grave para los
algoritmos de optimización basados en gradientes .
Sigue siendo una pregunta abierta si existen muchos mínimos locales de alto costo.
284
Machine Translated by Google
CAPÍTULO 8. OPTIMIZACIÓN PARA EL ENTRENAMIENTO DE MODELOS PROFUNDO
para redes de interés práctico y si los algoritmos de optimización las encuentran. Durante muchos
años, la mayoría de los profesionales creyeron que los mínimos locales eran un problema común
que afectaba a la optimización de las redes neuronales. Hoy, ese no parece ser el caso. El problema
sigue siendo un área activa de investigación, pero los expertos ahora sospechan que, para redes
neuronales suficientemente grandes, la mayoría de los mínimos locales tienen un valor de función
de bajo costo, y que no es importante encontrar un verdadero mínimo global en lugar de encontrar
un punto en espacio de parámetros que tiene un costo bajo pero no mínimo (Saxe et al., 2013;
Dauphin et al., 2014; Goodfellow et al., 2015; Choromanska et al., 2014).
Muchos profesionales atribuyen casi todas las dificultades con la optimización de redes
neuronales a mínimos locales. Alentamos a los profesionales a realizar pruebas cuidadosas para
detectar problemas específicos. Una prueba que puede descartar mínimos locales como problema
es trazar la norma del gradiente a lo largo del tiempo. Si la norma del gradiente no se reduce a un
tamaño insignificante, el problema no son los mínimos locales ni ningún otro tipo de punto crítico.
Este tipo de prueba negativa puede descartar mínimos locales. En espacios de grandes dimensiones,
puede resultar muy difícil establecer positivamente que los mínimos locales son el problema.
Muchas estructuras distintas de los mínimos locales también tienen pequeños gradientes.
8.2.3 Mesetas, puntos de silla y otras regiones planas
Para muchas funciones no convexas de alta dimensión, los mínimos (y máximos) locales son de
hecho raros en comparación con otro tipo de punto con gradiente cero: un punto de silla. Algunos
puntos alrededor de un punto de silla tienen un costo mayor que el punto de silla, mientras que otros
tienen un costo menor. En un punto de silla, la matriz de Hesse tiene valores propios tanto positivos
como negativos. Los puntos que se encuentran a lo largo de vectores propios asociados con valores
propios positivos tienen un costo mayor que el punto silla, mientras que los puntos que se
encuentran a lo largo de valores propios negativos tienen un valor menor. Podemos pensar en un
punto de silla como un mínimo local a lo largo de una sección transversal de la función de costos y
un máximo local a lo largo de otra sección transversal. Consulte la figura 4.5 para ver una ilustración.
Muchas clases de funciones aleatorias exhiben el siguiente comportamiento: en espacios de baja
dimensión, los mínimos locales son comunes. En espacios de dimensiones superiores, los mínimos
locales son raros y los puntos de silla son más comunes. Para una función f : R → R de este tipo, la
norte
relación esperada entre el número de puntos silla y los mínimos locales crece exponencialmente con
n. Para comprender la intuición detrás de este comportamiento, observe que la matriz de Hesse en un
mínimo local solo tiene valores propios positivos. La matriz de Hesse en un punto de silla tiene una
mezcla de valores propios positivos y negativos.
Imagine que el signo de cada valor propio se genera lanzando una moneda al aire. En una sola
dimensión, es fácil obtener un mínimo local lanzando una moneda y obteniendo cara una vez. En un
espacio n­dimensional, es exponencialmente improbable que todos los n lanzamientos de monedas
285
Download