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