Este documento proporciona una introducción al aprendizaje profundo (deep learning). Explica que el aprendizaje profundo se basa en redes neuronales de gran profundidad para realizar tareas de aprendizaje automático. Cubre conceptos clave como redes neuronales artificiales, redes neuronales convolucionales y recurrentes, y aplicaciones como la recomendación de sistemas, detección de spam y procesamiento de lenguaje natural. Finalmente, analiza conceptos como conjuntos de datos de entrenamiento y test, variables independientes y dependientes para evaluar mode
An introduction to Machine Learning (and a little bit of Deep Learning)Thomas da Silva Paula
25-min talk about Machine Learning and a little bit of Deep Learning. Starts with some basic definitions (Supervised and Unsupervised Learning). Then, neural networks basic functionality is explained, ending up in Deep Learning and Convolutional Neural Networks.
Machine Learning Meetup that happened in Porto Alegre, Brazil.
We will discuss the following: Graph, Directed vs Undirected Graph, Acyclic vs Cyclic Graph, Backedge, Search vs Traversal, Breadth First Traversal, Depth First Traversal, Detect Cycle in a Directed Graph.
An introduction to Machine Learning (and a little bit of Deep Learning)Thomas da Silva Paula
25-min talk about Machine Learning and a little bit of Deep Learning. Starts with some basic definitions (Supervised and Unsupervised Learning). Then, neural networks basic functionality is explained, ending up in Deep Learning and Convolutional Neural Networks.
Machine Learning Meetup that happened in Porto Alegre, Brazil.
We will discuss the following: Graph, Directed vs Undirected Graph, Acyclic vs Cyclic Graph, Backedge, Search vs Traversal, Breadth First Traversal, Depth First Traversal, Detect Cycle in a Directed Graph.
This Machine Learning presentation is ideal for beginners to learn Machine Learning from scratch. By the end of this presentation, you will learn why Machine Learning is so important in our lives, what is Machine Learning, the various types of Machine Learning (Supervised, Unsupervised and Reinforcement learning), how do we choose the right Machine Learning solution, what are the different Machine Learning algorithms and how do they work (with simple examples and use-cases).
This Machine Learning presentation will cover the following topics:
1. Life without Machine Learning
2. Life with Machine Learning
3. What is Machine Learning
4. Machine Learning Process
5. Types of Machine Learning
6. Supervised Vs Unsupervised
7. The right Machine Learning solutions
8. Machine Learning Algorithms
9. Use case - Predicting the price of a house using Linear Regression
What is Machine Learning: Machine Learning is an application of Artificial Intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.
- - - - - - - -
About Simplilearn Machine Learning course:
A form of artificial intelligence, Machine Learning is revolutionizing the world of computing as well as all people’s digital interactions. Machine Learning powers such innovative automated technologies as recommendation engines, facial recognition, fraud protection and even self-driving cars.This Machine Learning course prepares engineers, data scientists and other professionals with knowledge and hands-on skills required for certification and job competency in Machine Learning.
- - - - - - -
Why learn Machine Learning?
Machine Learning is taking over the world- and with that, there is a growing need among companies for professionals to know the ins and outs of Machine Learning
The Machine Learning market size is expected to grow from USD 1.03 Billion in 2016 to USD 8.81 Billion by 2022, at a Compound Annual Growth Rate (CAGR) of 44.1% during the forecast period.
- - - - - - -
Who should take this Machine Learning Training Course?
We recommend this Machine Learning training course for the following professionals in particular:
1. Developers aspiring to be a data scientist or Machine Learning engineer
2. Information architects who want to gain expertise in Machine Learning algorithms
3. Analytics professionals who want to work in Machine Learning or artificial intelligence
4. Graduates looking to build a career in data science and Machine Learning
- - - - - -
An introductory course on building ML applications with primary focus on supervised learning. Covers the typical ML application cycle - Problem formulation, data definitions, offline modeling, platform design. Also, includes key tenets for building applications.
Note: This is an old slide deck. The content on building internal ML platforms is a bit outdated and slides on the model choices do not include deep learning models.
This presentation Neural Network will help you understand what is a neural network, how a neural network works, what can the neural network do, types of neural network and a use case implementation on how to classify between photos of dogs and cats. Deep Learning uses advanced computing power and special types of neural networks and applies them to large amounts of data to learn, understand, and identify complicated patterns. Automatic language translation and medical diagnoses are examples of deep learning. Most deep learning methods involve artificial neural networks, modeling how our brains work. Neural networks are built on Machine Learning algorithms to create an advanced computation model that works much like the human brain. This neural network tutorial is designed for beginners to provide them the basics of deep learning. Now, let us deep dive into these slides to understand how a neural network actually work.
Below topics are explained in this neural network presentation:
1. What is Neural Network?
2. What can Neural Network do?
3. How does Neural Network work?
4. Types of Neural Network
5. Use case - To classify between the photos of dogs and cats
Simplilearn’s Deep Learning course will transform you into an expert in deep learning techniques using TensorFlow, the open-source software library designed to conduct machine learning & deep neural network research. With our deep learning course, you'll master deep learning and TensorFlow concepts, learn to implement algorithms, build artificial neural networks and traverse layers of data abstraction to understand the power of data and prepare you for your new role as deep learning scientist.
Why Deep Learning?
It is one of the most popular software platforms used for deep learning and contains powerful tools to help you build and implement artificial neural networks.
Advancements in deep learning are being seen in smartphone applications, creating efficiencies in the power grid, driving advancements in healthcare, improving agricultural yields, and helping us find solutions to climate change. With this Tensorflow course, you’ll build expertise in deep learning models, learn to operate TensorFlow to manage neural networks and interpret the results.
You can gain in-depth knowledge of Deep Learning by taking our Deep Learning certification training course. With Simplilearn’s Deep Learning course, you will prepare for a career as a Deep Learning engineer as you master concepts and techniques including supervised and unsupervised learning, mathematical and heuristic aspects, and hands-on modeling to develop algorithms.
Learn more at: https://www.simplilearn.com
https://telecombcn-dl.github.io/2017-dlsl/
Winter School on Deep Learning for Speech and Language. UPC BarcelonaTech ETSETB TelecomBCN.
The aim of this course is to train students in methods of deep learning for speech and language. Recurrent Neural Networks (RNN) will be presented and analyzed in detail to understand the potential of these state of the art tools for time series processing. Engineering tips and scalability issues will be addressed to solve tasks such as machine translation, speech recognition, speech synthesis or question answering. Hands-on sessions will provide development skills so that attendees can become competent in contemporary data analytics tools.
P, NP, NP-Complete, and NP-Hard
Reductionism in Algorithms
NP-Completeness and Cooks Theorem
NP-Complete and NP-Hard Problems
Travelling Salesman Problem (TSP)
Travelling Salesman Problem (TSP) - Approximation Algorithms
PRIMES is in P - (A hope for NP problems in P)
Millennium Problems
Conclusions
Much of data is sequential – think speech, text, DNA, stock prices, financial transactions and customer action histories. Modern methods for modelling sequence data are often deep learning-based, composed of either recurrent neural networks (RNNs) or attention-based Transformers. A tremendous amount of research progress has recently been made in sequence modelling, particularly in the application to NLP problems. However, the inner workings of these sequence models can be difficult to dissect and intuitively understand.
This presentation/tutorial will start from the basics and gradually build upon concepts in order to impart an understanding of the inner mechanics of sequence models – why do we need specific architectures for sequences at all, when you could use standard feed-forward networks? How do RNNs actually handle sequential information, and why do LSTM units help longer-term remembering of information? How can Transformers do such a good job at modelling sequences without any recurrence or convolutions?
In the practical portion of this tutorial, attendees will learn how to build their own LSTM-based language model in Keras. A few other use cases of deep learning-based sequence modelling will be discussed – including sentiment analysis (prediction of the emotional valence of a piece of text) and machine translation (automatic translation between different languages).
The goals of this presentation are to provide an overview of popular sequence-based problems, impart an intuition for how the most commonly-used sequence models work under the hood, and show that quite similar architectures are used to solve sequence-based problems across many domains.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Esta presentación pretende realizar una breve descripción de las ramas y algoritmos más frecuentes en Machine Learning (ML), tales como ML supervisado, no supervisado, Deep Learning, así como del panorama tecnológico en el que se desenvuelven.
This Machine Learning presentation is ideal for beginners to learn Machine Learning from scratch. By the end of this presentation, you will learn why Machine Learning is so important in our lives, what is Machine Learning, the various types of Machine Learning (Supervised, Unsupervised and Reinforcement learning), how do we choose the right Machine Learning solution, what are the different Machine Learning algorithms and how do they work (with simple examples and use-cases).
This Machine Learning presentation will cover the following topics:
1. Life without Machine Learning
2. Life with Machine Learning
3. What is Machine Learning
4. Machine Learning Process
5. Types of Machine Learning
6. Supervised Vs Unsupervised
7. The right Machine Learning solutions
8. Machine Learning Algorithms
9. Use case - Predicting the price of a house using Linear Regression
What is Machine Learning: Machine Learning is an application of Artificial Intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.
- - - - - - - -
About Simplilearn Machine Learning course:
A form of artificial intelligence, Machine Learning is revolutionizing the world of computing as well as all people’s digital interactions. Machine Learning powers such innovative automated technologies as recommendation engines, facial recognition, fraud protection and even self-driving cars.This Machine Learning course prepares engineers, data scientists and other professionals with knowledge and hands-on skills required for certification and job competency in Machine Learning.
- - - - - - -
Why learn Machine Learning?
Machine Learning is taking over the world- and with that, there is a growing need among companies for professionals to know the ins and outs of Machine Learning
The Machine Learning market size is expected to grow from USD 1.03 Billion in 2016 to USD 8.81 Billion by 2022, at a Compound Annual Growth Rate (CAGR) of 44.1% during the forecast period.
- - - - - - -
Who should take this Machine Learning Training Course?
We recommend this Machine Learning training course for the following professionals in particular:
1. Developers aspiring to be a data scientist or Machine Learning engineer
2. Information architects who want to gain expertise in Machine Learning algorithms
3. Analytics professionals who want to work in Machine Learning or artificial intelligence
4. Graduates looking to build a career in data science and Machine Learning
- - - - - -
An introductory course on building ML applications with primary focus on supervised learning. Covers the typical ML application cycle - Problem formulation, data definitions, offline modeling, platform design. Also, includes key tenets for building applications.
Note: This is an old slide deck. The content on building internal ML platforms is a bit outdated and slides on the model choices do not include deep learning models.
This presentation Neural Network will help you understand what is a neural network, how a neural network works, what can the neural network do, types of neural network and a use case implementation on how to classify between photos of dogs and cats. Deep Learning uses advanced computing power and special types of neural networks and applies them to large amounts of data to learn, understand, and identify complicated patterns. Automatic language translation and medical diagnoses are examples of deep learning. Most deep learning methods involve artificial neural networks, modeling how our brains work. Neural networks are built on Machine Learning algorithms to create an advanced computation model that works much like the human brain. This neural network tutorial is designed for beginners to provide them the basics of deep learning. Now, let us deep dive into these slides to understand how a neural network actually work.
Below topics are explained in this neural network presentation:
1. What is Neural Network?
2. What can Neural Network do?
3. How does Neural Network work?
4. Types of Neural Network
5. Use case - To classify between the photos of dogs and cats
Simplilearn’s Deep Learning course will transform you into an expert in deep learning techniques using TensorFlow, the open-source software library designed to conduct machine learning & deep neural network research. With our deep learning course, you'll master deep learning and TensorFlow concepts, learn to implement algorithms, build artificial neural networks and traverse layers of data abstraction to understand the power of data and prepare you for your new role as deep learning scientist.
Why Deep Learning?
It is one of the most popular software platforms used for deep learning and contains powerful tools to help you build and implement artificial neural networks.
Advancements in deep learning are being seen in smartphone applications, creating efficiencies in the power grid, driving advancements in healthcare, improving agricultural yields, and helping us find solutions to climate change. With this Tensorflow course, you’ll build expertise in deep learning models, learn to operate TensorFlow to manage neural networks and interpret the results.
You can gain in-depth knowledge of Deep Learning by taking our Deep Learning certification training course. With Simplilearn’s Deep Learning course, you will prepare for a career as a Deep Learning engineer as you master concepts and techniques including supervised and unsupervised learning, mathematical and heuristic aspects, and hands-on modeling to develop algorithms.
Learn more at: https://www.simplilearn.com
https://telecombcn-dl.github.io/2017-dlsl/
Winter School on Deep Learning for Speech and Language. UPC BarcelonaTech ETSETB TelecomBCN.
The aim of this course is to train students in methods of deep learning for speech and language. Recurrent Neural Networks (RNN) will be presented and analyzed in detail to understand the potential of these state of the art tools for time series processing. Engineering tips and scalability issues will be addressed to solve tasks such as machine translation, speech recognition, speech synthesis or question answering. Hands-on sessions will provide development skills so that attendees can become competent in contemporary data analytics tools.
P, NP, NP-Complete, and NP-Hard
Reductionism in Algorithms
NP-Completeness and Cooks Theorem
NP-Complete and NP-Hard Problems
Travelling Salesman Problem (TSP)
Travelling Salesman Problem (TSP) - Approximation Algorithms
PRIMES is in P - (A hope for NP problems in P)
Millennium Problems
Conclusions
Much of data is sequential – think speech, text, DNA, stock prices, financial transactions and customer action histories. Modern methods for modelling sequence data are often deep learning-based, composed of either recurrent neural networks (RNNs) or attention-based Transformers. A tremendous amount of research progress has recently been made in sequence modelling, particularly in the application to NLP problems. However, the inner workings of these sequence models can be difficult to dissect and intuitively understand.
This presentation/tutorial will start from the basics and gradually build upon concepts in order to impart an understanding of the inner mechanics of sequence models – why do we need specific architectures for sequences at all, when you could use standard feed-forward networks? How do RNNs actually handle sequential information, and why do LSTM units help longer-term remembering of information? How can Transformers do such a good job at modelling sequences without any recurrence or convolutions?
In the practical portion of this tutorial, attendees will learn how to build their own LSTM-based language model in Keras. A few other use cases of deep learning-based sequence modelling will be discussed – including sentiment analysis (prediction of the emotional valence of a piece of text) and machine translation (automatic translation between different languages).
The goals of this presentation are to provide an overview of popular sequence-based problems, impart an intuition for how the most commonly-used sequence models work under the hood, and show that quite similar architectures are used to solve sequence-based problems across many domains.
https://telecombcn-dl.github.io/2018-dlai/
Deep learning technologies are at the core of the current revolution in artificial intelligence for multimedia data analysis. The convergence of large-scale annotated datasets and affordable GPU hardware has allowed the training of neural networks for data analysis tasks which were previously addressed with hand-crafted features. Architectures such as convolutional neural networks, recurrent neural networks or Q-nets for reinforcement learning have shaped a brand new scenario in signal processing. This course will cover the basic principles of deep learning from both an algorithmic and computational perspectives.
Esta presentación pretende realizar una breve descripción de las ramas y algoritmos más frecuentes en Machine Learning (ML), tales como ML supervisado, no supervisado, Deep Learning, así como del panorama tecnológico en el que se desenvuelven.
En esta charla divulgativa Gonzalo Álvarez Marañón explica de forma amena y clara cómo funciona el criptoanálisis cuántico y de qué manera amenaza a la criptografía tradicional. ¿Qué ocurriría con la criptografía de clave pública si mañana se pusiera en funcionamiento un ordenador cuántico? ¿Servirían de algo RSA, Diffie-Hellman, o las curvas elípticas? ¿Cuál es el futuro de la criptografía en la era post-cuántica?
Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...saulnml
Proyecto desarrollado dentro el grupo de Análisis de Imágenes, Visualización e Informática del CCADET.
Modelos de la cabeza Humana 3D para aplicaciones en antropometría.
Diseño de herramientas computacionales para extracción interactiva, representación y análisis de puntos de interés: rasgos faciales.
Programación de algoritmos, interfaces y sistemas de análisis y visualización científica con aplicaciones principalmente de tipo biomédico.
2. 2
• Introducción
• Artificial Neural Networks
• Deep Neural Networks
• Aspectos prácticos del Deep Learning
• Métodos de optimización
• Estrategias para ML
• Redes neuronales convolucionales (CNN)
• Modelos recurrentes (RNN)
• Procesamiento natural del lenguaje (NLP)
• Consideraciones finales
Índice
3. 3
Introducción
• Se trata de una rama del Machine Learning (ML) basada en la
creación de redes neuronales de gran profundidad (muchas capas
ocultas) en las que basar las tareas de aprendizaje
• Tipos de Redes neuronales:
• Redes neuronales (NN)
• Convolutional Neural Networks (CNN)
• Recurrent Neural Networks (RNN)
• Multitud de aplicaciones
¿Qué es el Deep Learning (DL)?
4. 4
Introducción
Ejemplos Prácticos
• Sistemas de Recomendación
• Detección de spam
• Natural Language Processing (NLP)
• Photo OCR (Optical Character Recognition)
• Visión Artifical
• Diagnósticos médicos
• Conducción Autónoma
• …
5. 5
Introducción
• Conjunto de datos (data set): El total del conjunto de datos sobre los que queremos
desarrollar un algoritmo de ML con el fin de obtener un modelo que lo represente lo mejor
posible. Contendrá variables independientes y dependientes
• Variables independientes (features), (VI): Aquellas columnas del data set que serán usadas
por el algoritmo para generar un modelo que prediga lo mejor posible las variables
dependientes
• Variables dependientes (labels), (VD): Columna del data set que responde a una correlación
de VI y que debe ser predicha por el futuro modelo
• Conjunto de datos de entrenamiento (training set): Subconjunto del data set que será
utilizado para entrenar el modelo que se pretende generar
• Conjunto de datos de test (test set): Subconjunto del data set que se le pasará al modelo una
vez haya sido entrenado para comprobar, mediante el uso de diferentes métricas, su calidad
Definiciones básicas
6. 6
Introducción
Datos del Titanic
pclass survived name sex age sibsp parch ticket fare cabin embarked boat body home.dest
1 1 Allen, Miss. Elisabeth Walton female 29 0 0 24160 211,3375 B5 S 2 St Louis, MO
1 1 Allison, Master. Hudson Trevor male 0,9167 1 2 113781 151,5500 C22 C26 S 11 Montreal, PQ / Chesterville, ON
1 0 Allison, Miss. Helen Loraine female 2 1 2 113781 151,5500 C22 C26 S Montreal, PQ / Chesterville, ON
1 0 Allison, Mr. Hudson Joshua Creighton male 30 1 2 113781 151,5500 C22 C26 S 135 Montreal, PQ / Chesterville, ON
1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female 25 1 2 113781 151,5500 C22 C26 S Montreal, PQ / Chesterville, ON
1 1 Anderson, Mr. Harry male 48 0 0 19952 26,5500 E12 S 3 New York, NY
1 1 Andrews, Miss. Kornelia Theodosia female 63 1 0 13502 77,9583 D7 S 10 Hudson, NY
1 0 Andrews, Mr. Thomas Jr male 39 0 0 112050 0,0000 A36 S Belfast, NI
1 1 Appleton, Mrs. Edward Dale (Charlotte Lamson) female 53 2 0 11769 51,4792 C101 S D Bayside, Queens, NY
1 0 Artagaveytia, Mr. Ramon male 71 0 0 PC 17609 49,5042 C 22 Montevideo, Uruguay
1 0 Astor, Col. John Jacob male 47 1 0 PC 17757 227,5250 C62 C64 C 124 New York, NY
1 1 Astor, Mrs. John Jacob (Madeleine Talmadge Force) female 18 1 0 PC 17757 227,5250 C62 C64 C 4 New York, NY
1 1 Aubart, Mme. Leontine Pauline female 24 0 0 PC 17477 69,3000 B35 C 9 Paris, France
1 1 Barber, Miss. Ellen "Nellie" female 26 0 0 19877 78,8500 S 6
1 1 Barkworth, Mr. Algernon Henry Wilson male 80 0 0 27042 30,0000 A23 S B Hessle, Yorks
1 0 Baumann, Mr. John D male 0 0 PC 17318 25,9250 S New York, NY
1 0 Baxter, Mr. Quigg Edmond male 24 0 1 PC 17558 247,5208 B58 B60 C Montreal, PQ
1 1 Baxter, Mrs. James (Helene DeLaudeniere Chaput) female 50 0 1 PC 17558 247,5208 B58 B60 C 6 Montreal, PQ
1 1 Bazzani, Miss. Albina female 32 0 0 11813 76,2917 D15 C 8
1 0 Beattie, Mr. Thomson male 36 0 0 13050 75,2417 C6 C A Winnipeg, MN
1 1 Beckwith, Mr. Richard Leonard male 37 1 1 11751 52,5542 D35 S 5 New York, NY
1 1 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47 1 1 11751 52,5542 D35 S 5 New York, NY
1 1 Behr, Mr. Karl Howell male 26 0 0 111369 30,0000 C148 C 5 New York, NY
1 1 Bidois, Miss. Rosalie female 42 0 0 PC 17757 227,5250 C 4
𝑥1 𝑥2, … , 𝑥13
𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑖𝑛𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒𝑠
𝑦
𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒 𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒
Datos de
entrenamiento
Datos de
test
20. 20
Artificial Neural Networks
Representación de una red neuronal
𝒂𝒊
[𝒋]
: Función de activación de la neurona
i de la capa j
𝑥1
𝑥2
𝑥3
𝑎1
[1]
𝑎2
[1]
𝑎3
[1]
𝑎4
[1]
𝑎[0]
= 𝑥
𝑎[1]
ො𝑦 = 𝑎[2]
Capa de
entrada
Capa
oculta
Capa de
salida
𝑤[1]
, 𝑏[1]
(4, 3), (4, 1)
𝑤[2]
, 𝑏[2]
(1, 4), (1, 1)
𝒘[𝒋]
: Parámetros (pesos) aprendibles que
relacionan las variables de entrada con
las neuronas de la red
𝑎[2]
26. 26
Artificial Neural Networks
Inicialización aleatoria de pesos
𝑎1
[1]
𝑎2
[1]
𝑎1
[2]
𝑊[1]
=
0 0
0 0
𝑏[1]
=
0
0
𝑎1
[1]
= 𝑎2
[1]
𝑑𝑧1
[1]
= 𝑑𝑧2
[1]
𝑥1
𝑥2
• De inicializarse a cero los pesos de la RN, las funciones de activación permanecerían
constantes y sin actualizar después de la backpropagation
• Se suelen inicializar con valores próximos a cero, para evitar caer en valores
extremos de las funciones de activación y que el proceso de aprendizaje mediante el
gradiente de descenso sea excesivamente lento
• Supuesto: pesos inicializados a cero:
𝑛[0]
= 2 𝑛[1]
= 2 𝑛[2]
= 2
29. 29
Deep Neural Networks
Forward Propagation en DNN
𝑥1
𝑥2
𝑥3
ො𝑦
𝑍[𝑙]
= 𝑊[𝑙]
𝐴[𝑙−1]
+ 𝑏[𝑙]
𝐴[𝑙] = 𝑔[𝑙] 𝑍[𝑙]
𝑔 = 𝑓𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝑎𝑐𝑡𝑖𝑣𝑎𝑐𝑖ó𝑛
• Paso en el que se calculan las activaciones de cada capa
(de izquierda a derecha)
30. 30
Deep Neural Networks
Backpropagation en DNN
𝑥1
𝑥2
𝑥3
ො𝑦
𝑑𝑍[𝑙] = 𝑑𝐴[𝑙] ∗ 𝑔[𝑙]′
𝑍[𝑙]
• Se deriva la función de coste respecto a la salida y se
retropropaga la señal de “error” por las capas de la NN
𝑑𝑊[𝑙]
=
1
𝑚
𝑑𝑍[𝑙]
· 𝐴[𝑙−1] 𝑇
𝑑𝑏[𝑙] =
1
𝑚
𝑑𝑍[𝑙] · 𝐴[𝑙−1] 𝑇
𝑑𝐴[𝑙−1]
= 𝑊[𝑙] 𝑇
· 𝑑𝑍[𝑙]
32. 32
Deep Neural Networks
Parámetros e Hiperparámetros
• Parámetros: Todos aquellos que son aprendidos por la red neuronal
𝑊[1], 𝑏[1], 𝑊[2], 𝑏[2], 𝑊[3], 𝑏[3], . . .
• Hiperparámetros: Todos aquellos que son definidos por el desarrollador
Ratio de aprendizaje 𝛼
Nº iteraciones de entrenamiento (epochs)
Nº capas ocultas 𝐿
Nº unidades ocultas 𝑛[1]
, 𝑛[2]
, . . .
Elección de las funciones de activación (ReLU, sigmoidea, …)
• Todas estas elecciones
hacen del Deep Learning
una práctica sumamente
empírica, en función tanto
de la arquitectura diseñada
como de los datos a tratar
Code
Experiment
Idea
34. 34
Aspectos prácticos del Deep Learning
• En el aprendizaje automático supervisado, los datos suelen dividirse en:
Conjuntos de Entrenamiento / Desarrollo / Test
Training set Development
set
Test set
• Proceso de trabajo:
• Entrenar modelos en el set de entrenamiento
• Comprobar su actuación en el set de desarrollo
• Pruebas en el set de test
• Tradicionalmente los sets estaban balanceados en un 70/30% - 60/20/20%
• En la era del Big Data, con cantidades ingentes de datos, el set de entrenamiento
puede llegar a tener el 98% o más de ellos
• Es posible no tener set de test, únicamente de desarrollo
• Los datos pueden provenir de distintas distribuciones, asegurar que dev y test
estén igualmente distribuidos
35. 35
Aspectos prácticos del Deep Learning
Balance Sesgo/Varianza (Bias/Variance Tradeoff)
“Underfitting”, “High Bias” OK “Overfitting”, “High variance”
Train set error 1 % 15 % 15 % 0,5 %
Dev set error 11 % 16 % 30 % 1 %
High Bias High Bias &
High variance
Low Bias &
Low variance
High Variance
• Identificación mediante los errores de los conjuntos de entrenamiento
y desarrollo:
36. 36
Aspectos prácticos del Deep Learning
Proceso básico Machine Learning
High bias?
(actuación datos
entrenamiento)
High variance?
(actuación datos
desarrollo)
• Red más profunda
• Entrenar más tiempo
• Búsqueda de nuevas
arquitecturas
• Más datos
• Regularización
• Búsqueda de nuevas
arquitecturas
Hecho
No
No
Sí
Sí
37. 37
Aspectos prácticos del Deep Learning
Métodos de regularización
• Regularización en Regresión Logística: Adición de un término penalizador
que reduzca la magnitud de los pesos
𝐽 𝑤[𝑙]
, 𝑏[𝑙]
=
1
𝑚
𝑖=1
𝑚
ℒ ො𝑦(𝑖)
, 𝑦(𝑖)
+
𝜆
𝑚
𝑙=1
𝐿
𝑤[𝑙]
𝐹
2
𝑤[𝑙]
𝐹
2
=
𝑖=1
𝑛[𝑙−1]
𝑗=1
𝑛[𝑙]
𝑤𝑖𝑗
[𝑙] 2
Norma Frobenius:
Weight decay: 𝑤[𝑙]
≔ 𝑤 𝑙
− 𝛼 𝑑𝑒 𝑙𝑎 𝑏𝑎𝑐𝑘𝑝𝑟𝑜𝑝𝑎𝑔𝑎𝑡𝑖𝑜𝑛 +
𝜆
𝑚
𝑤 𝑙
𝐽 𝑤, 𝑏 =
1
𝑚
𝑖=1
𝑚
ℒ ො𝑦(𝑖)
, 𝑦(𝑖)
+
𝜆
2𝑚
𝑤[𝑙]
2
2
𝑤 2
2
=
𝑗=1
𝑛 𝑥
𝑤𝑗
2
• Regularización en redes Neuronales: Aumentar el parámetro 𝜆 aproxima a
cero los pesos, reduciendo la complejidad de la red neuronal
𝑤 1
2
=
𝑗=1
𝑛 𝑥
𝑤𝑗
Regularización 𝐿2:
Regularización 𝐿1:
38. 38
Aspectos prácticos del Deep Learning
Métodos de regularización
• Dropout: Inhabilitación de ciertas neuronas de la red para evitar el
sobreajuste
𝑥1
𝑥2
𝑥3
ො𝑦
39. 39
Aspectos prácticos del Deep Learning
Métodos de regularización
• Data Augmentation: Aumentar la cantidad de los datos puede resultar
costoso. Mediante transformaciones, es posible generar nuevos datos, por
ejemplo rotando, aumentando o recortando imágenes
• Early stopping: Se escoge la iteración en la que se minimiza la función de
coste en el conjunto de desarrollo
• Normalización del set de entrenamiento: El algoritmo de optimización irá
más rápido sobre datos normalizados. Usar la misma 𝜇 y 𝜎2 para el set de
test
Error set entrenamiento
Error set desarrollo
𝐸𝑟𝑟𝑜𝑟
𝑁º 𝑖𝑡𝑒𝑟𝑎𝑐𝑖𝑜𝑛𝑒𝑠
𝜇 =
1
𝑚
𝑖=1
𝑚
𝑥(𝑖)
𝑥 ≔ 𝑥 − 𝜇
𝜎2
=
1
𝑚
𝑖=1
𝑚
𝑥(𝑖)2
𝑥 ≔ ൗ𝑥
𝜎2
1º Restar la media 2º Normalizar la varianza
𝑥1
𝑥1
𝑥1
𝑥2
𝑥2
𝑥2
40. 40
Aspectos prácticos del Deep Learning
Vanishing / Exploding gradients
• A medida que la red neuronal crece, incrementan las multiplicaciones tensoriales
que contienen los pesos
• Si los pesos son pequeños (< 1), su límite tenderá a 0, y si son grandes (> 1), a ∞
• Solución: Correcta inicialización de pesos, ResNets, . . .
𝑥1
𝑥2
𝑔 𝑧 = 𝑧 , 𝑏[𝑙]
= 0
ො𝑦 = 𝑤[𝐿]
𝑤[𝐿−1]
𝑤[𝐿−2]
. . . 𝑤[3]
𝑤[2]
𝑤[1]
𝑥
𝑧[1]
= 𝑤[1]
𝑥
𝑎[1] = 𝑔 𝑧[1] = 𝑧[1]
𝑎[2] = 𝑔 𝑧[2] = 𝑔 𝑤[2] 𝑎[1]
𝑤[1] 𝑤[2]
𝑤[3] 𝑤[𝐿]
Simplificación
41. 41
Aspectos prácticos del Deep Learning
Inicialización de pesos
Una elección cuidadosa de los pesos puede ser beneficiosa para el
entrenamiento de una red neuronal, evitando problemas como vanishing /
exploding gradients, converger a un mínimo más rápidamente, etc.
𝑥1
𝑥2
𝑧 = 𝑤1 𝑥1 + 𝑤2 𝑥2+. . . +𝑤 𝑛 𝑥 𝑛 + 𝑏
𝑤[𝑙] = 𝑛𝑝. 𝑟𝑎𝑛𝑑𝑜𝑚. 𝑟𝑎𝑛𝑑𝑛 𝑑𝑖𝑚𝑒𝑛𝑠𝑖ó𝑛 ∗ 𝑛𝑝. 𝑠𝑞𝑟𝑡
1
𝑛[𝑙−1]
𝑥3
𝑥4
𝑎 = 𝑔 𝑧
ො𝑦
𝑛 𝑔𝑟𝑎𝑛𝑑𝑒 → 𝑤𝑖 𝑝𝑒𝑞𝑢𝑒ñ𝑜
Otras variantes:
1
𝑛[𝑙−1]
2
𝑛[𝑙−1] + 𝑛[𝑙]
Elección de varianza:
𝑉𝑎𝑟 𝑤𝑖 =
1
𝑛
𝑉𝑎𝑟 𝑤𝑖 =
2
𝑛ReLU
tanh:
Xavier initialization
43. 43
Métodos de optimización
Mini-batch gradient descent
• La vectorización ayuda a tratar grandes cantidades de datos, pero ¿qué sucede
cuando se cuentan por millones?
• Solución: dividir en lotes (batches) el conjunto total de datos
𝑋 = 𝑥(1)
𝑥(2)
𝑥(3)
. . . 𝑥(1000)
𝑥 1001
. . . 𝑥 2000
. . . | . . . 𝑥(𝑚)
𝑌 = 𝑦(1)
𝑦(2)
𝑦(3)
. . . 𝑦(1000)
𝑦 1001
. . . 𝑦 2000
. . . | . . . 𝑦(𝑚)
𝑋{1}
𝑋{2} 𝑋{5000}
for 𝑡 = 1, . . . , 5000 {
𝑟𝑒𝑝𝑒𝑡𝑖𝑟 {
Forward propagation en 𝑋{𝑡}
𝑍[1]
= 𝑊[1]
𝑋{𝑡}
+ 𝑏[1]
𝐴[1]
= 𝑔[1]
𝑍[1]
𝐴[𝐿]
= 𝑔[𝐿]
𝑍[𝐿]
Calcular el coste 𝐽{𝑡}
=
1
1000
σ𝑖=1
𝑙
ℒ ො𝑦(𝑖)
, 𝑦(𝑖)
+
𝜆
2·1000
σ𝑙 𝑤[𝐿]
𝐹
2
Backprop para calcular los gradientes con respecto a 𝐽{𝑡}
(usando 𝑋{𝑡}
, 𝑌{𝑡}
)
𝑤[𝑙]
≔ 𝑤 𝑙
− 𝛼𝑑𝑤 𝑙
, 𝑏 𝑙
≔ 𝑏 𝑙
− 𝛼𝑑𝑏[𝑙]
}
}
⋮
1 época: un paso entero del set de entrenamiento
• Mini-batch gradient descent:
𝑌{1} 𝑌{2}
𝑌{5000}
Cada lote 𝑋{𝑡}
, 𝑌{𝑡}
contiene 1000 ejemplos
𝑚 = 5.000.000 ejemplos
Implementación vectorial
(1000 ejemplos)
44. 44
Métodos de optimización
Elección del tamaño del mini-batch
• Tamaño mini-batch = m: Batch Gradient Descent 𝑋{𝑡}, 𝑌{𝑡} = 𝑋, 𝑌
• Tamaño mini-batch = 1: Stochastic Gradient Descent. Cada ejemplo es un mini-batch
• En la práctica: Valores entre 1 y m
Stochastic
Gradient
Descent
Se pierde la
velocidad de la
vectorización
Término medio
Aprendizaje
más rápido.
Se hacen
progresos sin
procesar todo
el conjunto
Batch Gradient
Descent
Demasiado
tiempo por
iteración
• Si el set de entrenamiento es pequeño (𝑚 ≤ 2000): Usar Batch Gradient Descent
• Tamaños de mini-batch en potencias de dos: 64, 128, 256, 512, . . .
• Ajustar el tamaño para que quepa en memoria
45. 45
Métodos de optimización
Gradient descent con momentum
• Se basa en calcular las medias ponderadas exponenciales de los gradientes y
aplicarlas para la obtención de los nuevos gradientes
En la iteración t
Calcular 𝑑𝑤, 𝑑𝑏 para el mini − batch actual
𝑣 𝑑𝑤 = 𝛽𝑣 𝑑𝑤 + 1 − 𝛽 𝑑𝑤
𝑣 𝑑𝑏 = 𝛽𝑣 𝑑𝑏 + 1 − 𝛽 𝑑𝑏
𝑤 ≔ 𝑤 − 𝛼𝑣 𝑑𝑤 , 𝑏 ≔ 𝑏 − 𝛼𝑣 𝑑𝑏
𝑠 𝑑𝑤 = 𝛽𝑠 𝑑𝑤 + 1 − 𝛽 𝑑𝑤2
𝑠 𝑑𝑏 = 𝛽𝑠 𝑑𝑏 + 1 − 𝛽 𝑑𝑏2
RMSprop (Root Mean Squared Propagation)
En la iteración t
Calcular 𝑑𝑤, 𝑑𝑏 para el mini − batch actual
𝑤 ≔ 𝑤 − 𝛼
𝑑𝑤
𝑠 𝑑𝑤
, 𝑏 ≔ 𝑏 − 𝛼
𝑑𝑏
𝑠 𝑑𝑏
𝛽 → 𝑓𝑟𝑖𝑐𝑐𝑖ó𝑛
𝑣 𝑑𝑏 → 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑
𝑑𝑏 → 𝑎𝑐𝑒𝑙𝑒𝑟𝑎𝑐𝑖ó𝑛
Aprendizaje lento
Aprendizaje rápido
𝑏
𝑤
elemento a elemento
47. 47
Métodos de optimización
Learning rate decay
En mini-batch gradient descent las actualizaciones en los parámetros 𝑤 y 𝑏 llevarán al
modelo a oscilar sobre el mínimo global sin llegar hasta él. Disminuir el ratio de aprendizaje
progresivamente hace que las oscilaciones se concentre más en el mínimo global
1 epoch = 1 paso de todos los ejemplos de entrenamiento
𝛼 =
1
1 + 𝑑𝑒𝑐𝑎𝑦_𝑟𝑎𝑡𝑒 · 𝑒𝑝𝑜𝑐ℎ_𝑛𝑢𝑚
𝛼0
Otros métodos
𝛼 = 0,95 𝑒𝑝𝑜𝑐ℎ_𝑛𝑢𝑚
· 𝛼0 − 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡𝑖𝑎𝑙𝑙𝑦 𝑑𝑒𝑐𝑎𝑦
𝛼 =
𝑘
𝑒𝑝𝑜𝑐ℎ_𝑛𝑢𝑚
𝛼0 o
𝑘
𝑡
𝛼0
Para 𝛼0 = 2 y 𝑑𝑒𝑐𝑎𝑦 𝑟𝑎𝑡𝑒 = 1
epoch 𝛼
1 0,1
2 0,67
3 0,5
4 0,4
⋮ ⋮
𝛼
𝑒𝑝𝑜𝑐ℎs
48. 48
Métodos de optimización
Problema de mínimos locales
En la práctica, el problema de localización de mínimos globales se asemeja a la figura
de la derecha. Aunque el gradiente sea nulo, no significa que haya encontrado un
mínimo
𝐽 𝐽
𝑤1 𝑤1
𝑤2 𝑤2
𝑑𝑒𝑒𝑝𝑙𝑒𝑎𝑟𝑛𝑖𝑛𝑔. 𝑎𝑖
49. 49
Métodos de optimización
Batch Normalization
También permite
normalizar las
activaciones de las
capas pare que w y b se
entrenen más rápido
𝜇 =
1
𝑚
𝑖=1
𝑚
𝑥(𝑖)
𝑥 ≔ 𝑥 − 𝜇
𝜎2
=
1
𝑚
𝑖=1
𝑚
𝑥(𝑖)2
𝑥 ≔ ൗ𝑥
𝜎2
𝑥1
𝑥2
𝑥3
ො𝑦
Normalizar las entradas acelera el entrenamiento
𝜇 =
1
𝑚
𝑖=1
𝑚
𝑧(𝑖)
𝜎2
=
1
𝑚
𝑖=1
𝑚
(𝑧 𝑖
− 𝜇)2
𝑧 𝑛𝑜𝑟𝑚
(𝑖)
=
𝑧(𝑖)
− 𝜇
𝜎2 + 𝜀
ǁ𝑧(𝑖)
= 𝛾𝑧 𝑛𝑜𝑟𝑚
(𝑖)
+ 𝛽
Implementación
Dados algunos valores intermedios en la RN 𝑍(1)
, . . . , 𝑍(𝑚)
Parámetros de aprendizaje del modelo
𝑆𝑖
𝛾 = 𝜎2 + 𝜀
𝛽 = 𝜇
ǁ𝑧(𝑖)
= 𝑧(𝑖)
Usar ǁ𝑧[𝑙](𝑖) en lugar de 𝑧(𝑖)
52. 52
Métodos de optimización
Explicación Batch Norm
• Considerando un problema de clasificación clásico: si los conjuntos de datos
provienen de distintas distribuciones, es posible que el modelo generado por la RN
no generalice bien
• Aplicar batch normalization a las capas ocultas de la red ayuda a mantener
constantes la media y la varianza de esas actualizaciones, lo que estabilizará la señal
y, por tanto, la variable dependiente ො𝑦
• De esta manera, se aplica un escalado sobre la media/varianza a cada mini-batch
para regularizar la señal de salida
54. 54
Estrategias para ML
Ideas para mejorar un modelo de ML
• Conseguir más datos
• Conseguir un set de entrenamiento más diverso
• Entrenar el modelo con Gradient Descent durante más tiempo
• Probar Adam en lugar de Gradient Descent
• Probar una red más grande
• Probar una red más pequeña
• Probar con dropout
• Añadir regularización
• Alterar la arquitectura de la red:
• Funciones de activación
• Nº de unidades ocultas por capa
• . . .
Pueden haber una gran cantidad de ideas que probar. Seleccionarlas indebidamente
puede suponer retrasos de meses
55. 55
Estrategias para ML
Cadena de asunciones en ML
• Ajustar bien el set de entrenamiento a la función de coste
• Ajustar bien el set de desarrollo a la función de coste
• Ajustar bien el set de test a la función de coste
• Buen comportamiento en un entorno real
Red más grande
Adam
Regularización
Mayor set de entrenamiento
Mayor set de desarrollo
Cambiar el set de desarrollo o la
función de coste
56. 56
Estrategias para ML
Métrica de evaluación única
Es de gran utilidad contar con una única métrica de evaluación para comparar
rápidamente el desempeño de diversos modelos
Clasificador Precisión Recuperación Puntuación 𝑭 𝟏
A 95 % 90 % 92,4 %
B 98 % 85 % 91,0 %
• Precisión: De los ejemplos reconocidos como gatos, ¿cuántos eran realmente gatos?
• Recuperación: ¿Qué porcentaje de gatos reales son realmente reconocidos?
• Puntuación 𝑭 𝟏: Media armónica entre 𝑃 y 𝑅: 𝐹1 =
2
1
𝑃
+
1
𝑅
=
2𝑃𝑅
𝑃+𝑅
Code
Experiment
Idea
Ejemplo de uso: Clasificador de gatos
57. 57
Estrategias para ML
Distribuciones de los conjuntos de train/dev/test
Es importante que los conjuntos de desarrollo y test provengan de la misma distribución.
Si no lo hacen, será complicado que el modelo se comporte adecuadamente, ya que los
casos sobre los que va a ser aplicado (test) provienen de una distribución de datos
desconocida para él
El conjunto de desarrollo debe ser lo suficientemente grande como para dar confianza
sobre el desempeño global del sistema
Training set Development
set
Test set
Training set Test set
Training set D T
Training set
Test set
Dev set
100
1.000
10.000
1.000.000 ejemplos
ejemplos
Es posible tener sólo un conjunto de desarrollo y no de test
70%
60%
30%
20% 20%
98%
1% 1%
58. 58
Estrategias para ML
Cambiar los conjuntos de dev/test y las métricas
Es posible que la métrica de evaluación escogida no recoja completamente la actuación
del algoritmo. En el caso del clasificado de gatos, es posible que el modelo con menor
error de clasificación tenga también un comportamiento inaceptable, como clasificación
de imágenes pornográficas. Para evitar estos casos, se puede definir una nueva métrica
de evaluación
Error:
𝑤(𝑖)
൝
1 𝑠𝑖 𝑥(𝑖)
𝑒𝑠 𝑛𝑜 − 𝑝𝑜𝑟𝑛𝑜
10 𝑠𝑖 𝑥(𝑖)
𝑒𝑠 𝑝𝑜𝑟𝑛𝑜
Se hace tan importante la definición de qué métrica utilizar como lo bien que se
comporta el algoritmo con esa métrica
Si hacerlo bien en dev/test no se corresponde con hacerlo bien en el entorno real,
cambiar los conjuntos de desarrollo y test
1
σ𝑖 𝑤(𝑖)
1
𝑚 𝑑𝑒𝑣
𝑖=1
𝑚 𝑑𝑒𝑣
𝑤(𝑖)
Ι 𝑦𝑝𝑟𝑒𝑑
(𝑖)
≠ 𝑦(𝑖)
Identificador
59. 59
Estrategias para ML
Comparación con el nivel humano
Basado en la gran capacidad de los humanos para resolver determinadas tareas
Esto hace posible:
• Conseguir datos etiquetados de los humanos
• Ganar conocimiento del análisis de errores manual
• Mejorar el análisis de sesgo/varianza (bias/variance)
Error óptimo Bayesiano
Nivel humano
𝑒𝑥𝑎𝑐𝑡𝑖𝑡𝑢𝑑
𝑡𝑖𝑒𝑚𝑝𝑜
60. 60
Estrategias para ML
Análisis de error
Humano
𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑐𝑖ó𝑛 𝑎𝑙
𝑒𝑟𝑟𝑜𝑟 𝑏𝑎𝑦𝑒𝑠𝑖𝑎𝑛𝑜
Error de entrenamiento
Error de desarrollo
0,5% - 1% 0,5% - 1% 0,5% - 0,7%
5%
6%
1%
5%
0,7%
0,8%
𝐵𝑖𝑎𝑠
𝑉𝑎𝑟𝑖𝑎𝑛𝑐𝑒
4%
4,5%
0%
0,5%
0,2%
0%
1% 4% 0,1%
Centrarse en el
sesgo (bias)
Centrarse en la
varianza(variance)
61. 61
Estrategias para ML
Medidas para mejorar el modelo
Humano
Error de entrenamiento
Error de desarrollo
𝐵𝑖𝑎𝑠
𝑉𝑎𝑟𝑖𝑎𝑛𝑐𝑒
• Entrenar un modelo más grande
• Entrenar más tiempo/mejores algoritmos de optimización
• Momentum, RMSprop, Adam, . . .
• Búsqueda de arquitecturas de RN/hiperparámetros
• Conseguir más datos
• Regularización
• 𝐿2, Dropout, Data Augmentation, . . .
• Búsqueda de arquitecturas de RN/hiperparámetros
Dos asunciones fundamentales en aprendizaje supervisado:
1. Se puede ajustar el set de entrenamiento bastante bien
2. La actuación en el set de entrenamiento puede generalizar bien a los sets de desarrollo/test
↓ 𝐵𝑖𝑎𝑠
↓ 𝑉𝑎𝑟𝑖𝑎𝑛𝑐𝑒
62. 62
Estrategias para ML
Transfer Learning
Técnica usada para aprovechar los parámetros aprendidos por una red neuronal para
una determinada tarea y reutilizarlos para otra distinta. Ejemplo:
𝑋 ො𝑦
ො𝑦
Reconocimiento
de imágenes 𝑥, 𝑦 → (𝑥, 𝑦)
radiografía diagnóstico
Usado cuando:
• Las tareas A y B tienen la misma entrada
• Se poseen muchos más datos de la tarea A que de la B
• Los parámetros de bajo nivel de A pueden ser de ayuda para el aprendizaje de B
63. 63
Estrategias para ML
Multi-Task Learning
Se aprovecha una red neuronal para que realice varias tareas
𝑋
Usado cuando:
• Las tareas pueden beneficiarse de compartir parámetros de bajo nivel
• La cantidad de datos para cada tarea es similar
ො𝑦
Peatones 1
Coches 1
Signos de STOP 0
Semáforos 1
. . . . . .
𝑦(𝑖)
𝑌 =
|
𝑦(1)
|
|
𝑦(2)
|
. . .
|
𝑦(𝑚)
|
64. 64
Estrategias para ML
End-to-End Deep Learning
Técnica basada en eliminar las múltiples etapas de preprocesamiento que pudieran ser
necesarias para el aprendizaje de una tarea y sustituirlas por una gran red neuronal
Ejemplos:
• Reconocimiento del habla
𝑥
𝑎𝑢𝑑𝑖𝑜
→ 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟í𝑠𝑡𝑖𝑐𝑎𝑠 → 𝑓𝑜𝑛𝑒𝑚𝑎𝑠 → 𝑝𝑎𝑙𝑎𝑏𝑟𝑎𝑠 →
𝑦
𝑡𝑟𝑎𝑛𝑠𝑐𝑟𝑖𝑝𝑐𝑖ó𝑛
• Reconocimiento facial
𝑎𝑢𝑑𝑖𝑜 𝑡𝑟𝑎𝑛𝑠𝑐𝑟𝑖𝑝𝑐𝑖ó𝑛
𝑥
𝑖𝑚𝑎𝑔𝑒𝑛
𝑦
𝑖𝑑𝑒𝑛𝑡𝑖𝑑𝑎𝑑
𝑥
𝑖𝑚𝑎𝑔𝑒𝑛 𝑑𝑒𝑡𝑒𝑐𝑐𝑖ó𝑛 𝑓𝑎𝑐𝑖𝑎𝑙
𝑦
𝑖𝑑𝑒𝑛𝑡𝑖𝑑𝑎𝑑
• Traducción automática
𝑥
𝑖𝑛𝑔𝑙é𝑠 𝑎𝑛á𝑙𝑖𝑠𝑖𝑠 𝑑𝑒 𝑡𝑒𝑥𝑡𝑜 . . .
𝑥
𝑖𝑛𝑔𝑙é𝑠
𝑦
𝑐ℎ𝑖𝑛𝑜
𝑦
𝑐ℎ𝑖𝑛𝑜
Mejores resultados
con grandes
volúmenes de datos
No demasiado fiable
Más usado
Funciona cada vez mejor
66. 66
Convolutional Neural Networks
Problemas en Visión Artificial
Diversos problemas dentro del campo de la Visión Artificial pueden resolverse mediante
Deep Learning:
• Neural Style Transfer: Dada una
imagen y otra con un patrón de
estilo, modificar la primera según
el patrón
• Clasificación de imágenes: Identificación de qué aparece una imagen (una sola instancia por
imagen)
• Detección de objetos: Identificación de qué aparece una imagen (múltiples instancias) y
localización de las mismas mediante cajas de detección (bounding boxes)
• Segmentación semántica: Detección de objetos en la que la detección se efectúa pixel a pixel
68. 68
Convolutional Neural Networks
Aplicación a Deep Learning
Como resultado de la investigación se propuso hacer de los números de los filtros
parámetros “aprendibles” por la red neuronal.
3 0 1 2 7 4
1 5 8 9 3 1
2 7 2 5 1 3
0 1 3 1 7 8
4 2 1 6 2 8
2 4 5 2 3 9
𝑤1 𝑤2 𝑤3
𝑤4 𝑤5 𝑤6
𝑤7 𝑤8 𝑤9
∗ =
Así, la CNN será capaz de detectar las características que crea conveniente de la
imagen de entrada para ajustarse mejor a su tarea objetivo
69. 69
Convolutional Neural Networks
Padding
A medida que se van aplicando convoluciones, la salida se va comprimiendo y se pierde
información sobre los bordes de la imagen. El padding rellena la entrada con p píxeles
en dos tipos distintos de convolución:
• Valid: No hay padding:
• Same: Se determina un relleno p tal que las dimensiones de la salida son iguales a las
de la entrada:
∗ =
𝑛 𝑥 𝑛 ∗ 𝑓 𝑥 𝑓 → 𝑛 − 𝑓 + 1 𝑥 𝑛 − 𝑓 + 1
𝑛 + 2𝑝 − 𝑓 + 1 𝑥 𝑛 + 2𝑝 − 𝑓 + 1
𝑛 + 2𝑝 − 𝑓 + 1 = 𝑛 → 𝑝 =
𝑓 − 1
2 f impar normalmente
𝑛 𝑥 𝑛
𝑓 𝑥 𝑓
𝑛 + 2𝑝 − 𝑓 + 1 𝑥 𝑛 + 2𝑝 − 𝑓 + 1
70. 70
Convolutional Neural Networks
Strided convolution
Es posible definir el stride o paso con el que se aplicará el filtro a la imagen de entrada
𝑛+2𝑝−𝑓
𝑠
+ 1 𝑥
𝑛+2𝑝−𝑓
𝑠
+ 1
2 3 7 4 6 2 2 9
6 6 9 8 7 4 4 3
3 4 8 3 8 9 9 7
7 8 3 6 6 3 3 4
4 2 1 8 3 4 4 6
3 2 4 1 9 8 8 3
0 1 3 9 2 1 1 4
3 4 4
1 0 2
-1 0 3
91 100 88
69 91 127
44 72 74
∗ =
imagen 𝑛 𝑥 𝑛
padding 𝑝
filtro 𝑓 𝑥 𝑓
stride 𝑠
Dimensiones de la salida
71. 71
Convolutional Neural Networks
Convoluciones sobre volumen
• Convoluciones sobre una imagen RGB
∗ =
1 0 -1
1 0 -1
1 0 -1
1 0 -1
1 0 -1
1 0 -1
1 0 -1
1 0 -1
1 0 -1
• Convoluciones sobre una imagen RGB
∗ =
=∗
Análisis dimensional: 𝑛 𝑥 𝑛 𝑥 𝑛 𝑐 ∗ 𝑓 𝑥 𝑓 𝑥 𝑛 𝑐 → 𝑛 − 𝑓 + 1 𝑥 𝑛 − 𝑓 + 1 𝑥 𝑛 𝑐
′
6 𝑥 6 𝑥 3
3 𝑥 3 𝑥 3
𝑎𝑙𝑡𝑢𝑟𝑎
𝑎𝑛𝑐ℎ𝑢𝑟𝑎
𝑐𝑎𝑛𝑎𝑙𝑒𝑠
4 𝑥 4 𝑥 2
𝒏 𝒄: El número de canales
ha de ser equivalente
𝒏 𝒄
′ : El número de canales
ha de ser equivalente
R G B
74. 74
Convolutional Neural Networks
Capa de Pooling
Técnica usada para reducir el tamaño de las matrices tratadas y darle importancia a sus
características principales. En Max Pooling se divide la matriz de entrada según los
hiperparámetros f y s y se completa la salida con el valor máximo encontrado según
estos parámetros
1 3 2 1
2 9 1 1
1 3 2 3
5 6 1 2
9 2
6 3
𝑓 = 2
s= 2
Otra alternativa es el Average Pooling, donde en lugar de conservar el valor máximo de
una sección de la matriz se calcula y recoge su media.
La operación de pooling no cuenta con valores “aprendibles” mediante la
backpropagation
75. 75
Convolutional Neural Networks
Motivación de las convoluciones
Tomando como ejemplo una imagen RGB de 32 pixeles, tratar de implementar un
algoritmo de Machine Learning con una RN totalmente conectada resultaría en
operaciones que involucrarían millones de parámetros
Con operaciones convolucionales, el nº de parámetros se reduce drásticamente,
demostrando un gran desempeño en campos como la visión artificial. Esto puede
deberse a:
• Parameter sharing: Un detector de características (feature detector) en particular (e.g. de ejes
verticales) puede resultar útil en varias partes de una imagen
• Sparsity of connections: En cada capa, cada valor de salida depende únicamente de un pequeño
número de entradas
⋮
⋮
⋮
⋮
32𝑥32𝑥3 28𝑥28𝑥6
𝑓 = 5
6 𝑓𝑖𝑙𝑡𝑟𝑜𝑠
3072
4704
5 · 5 = 25 + 1 = 26
6 · 26 = 156 𝑝𝑎𝑟á𝑚𝑒𝑡𝑟𝑜𝑠
3072 · 4704 ≅ 14 𝑀 𝑝𝑎𝑟á𝑚𝑒𝑡𝑟𝑜𝑠
• NN
• CNN
76. 76
Convolutional Neural Networks: Casos de estudio
LeNet - 5
Presentada por Yann LeCun en 1998 como solución para MNIST (base de datos con
números manuscritos para su reconocimiento mediante Visión Artificial). Características:
• Alrededor de 60k parámetros
• Se comienza a ver la tendencia de que, a medida que avanza la red, 𝑛 𝐻 ↓, 𝑛 𝑊 ↓, 𝑛 𝐶 ↑
• Entre capas se aplican no-linearidades de tipo sigmoidea y tangencial, no ReLU
[LeCun et. al., 1998, Gradient-Based Learning Applied to Document Recognition]
77. 77
Convolutional Neural Networks: Casos de estudio
AlexNet
• Estructura similar a LeNet, pero mucho más grande (entrenada en ImageNet)
• Mejoró en un 10,8% el error top-5 del subcampeón
• Uso de Relu’s
• Uso de múltiples GPU’s para acelerar el entrenamiento
• Técnica llamada Local Response Normalization
[Krizhevsky et. al., 2012, ImageNet Classification with Deep Convolutional Neural Networks]
78. 78
Convolutional Neural Networks: Casos de estudio
ResNets
[He et al., 2015, Deep Residual Learning for Image Recognition]
Entrenar redes neuronales profundas acarrea problemas como vanishing/exploding gradients,
donde a medida que la red crece los valores de los gradientes aumentan o disminuyen mucho:
𝑎[𝑙] 𝐿𝑖𝑛𝑒𝑎𝑟 𝑅𝑒𝐿𝑈 𝐿𝑖𝑛𝑒𝑎𝑟 𝑅𝑒𝐿𝑈 𝑎[𝑙+2]𝑎[𝑙+1]
𝑧[𝑙+1]
= 𝑊[𝑙+1]
𝑎 𝑙
+ 𝑏[𝑙+1] 𝑎[𝑙+1]
= 𝑔 𝑧[𝑙+1]
𝑧[𝑙+2]
= 𝑊[𝑙+2]
𝑎 𝑙+1
+ 𝑏[𝑙+2]
𝑎[𝑙+2]
= 𝑔 𝑧[𝑙+2]
𝑎[𝑙+2]
= 𝑔 𝑧[𝑙+2]
+ 𝑎[𝑙]
𝑋 𝑎[𝑙]
Las redes residuales hacen que la adición de bloques no aumente la complejidad de la red, con lo
que se pueden obtener modelos mucho más optimizados
79. 79
Convolutional Neural Networks: Casos de estudio
Convolución 1x1
[Lin et al., 2013, Network in Network]
La convolución 1x1 actúa como una multiplicación lineal sobre todos los canales de la entrada
Se puede usar para manipular el número de canales de una entrada del mismo modo en el que las
capas de Pool reducían las dimensiones de altura y anchura 𝑛 𝐻, 𝑛 𝑊
6𝑥6𝑥32
1𝑥1𝑥32 6𝑥6𝑥 𝑛º 𝑓𝑖𝑙𝑡𝑟𝑜𝑠
𝑛 𝐶 𝑓𝑖𝑙𝑡𝑟𝑜𝑠
∗ =
𝑅𝑒𝐿𝑈
𝐶𝑂𝑁𝑉 1𝑥1
32
28𝑥28𝑥192
28𝑥28𝑥32
80. 80
Convolutional Neural Networks: Casos de estudio
Red Inception
[Szegedy et al., 2014, Going deeper with convolutions]
Se basa en el acople de muchos módulos, en cada uno de los cuales se aplican simultáneamente
diversas etapas de convolución o de pooling de distintas características
En ciertos puntos de la red, y no solo al final, se introducen subramas con activaciones softmax para
observar la exactitud de las predicciones de las capas intermedias
Activación
previa
1x1
CONV
1x1
CONV
MAXPOOL
3x3, s=1
same
3x3
CONV
5x5
CONV
1x1
CONV
1x1
CONV
Concatenación
de canales
32
32
128
64
81. 81
Convolutional Neural Networks: Consejos prácticos
Consejos prácticos
• Usar implementaciones libres
• Transfer Learning: Pueden encontrarse tanto arquitecturas como pesos (modelos ya entrenados.
Dependiendo del caso de uso se puede:
• Tratar los pesos como “congelados” (frozen) y sustituir la última capa (e.g. softmaz de 1000
clases) por otra acorde a las necesidades
• Tratar los pesos como “congelados” (frozen) y entrenar de nuevo sustituyendo las últimas
capas
• Entrenar toda la arquitectura sobre un conjunto de datos lo suficientemente grande
• Aumento de datos: Contar con más imágenes suele mejorar el desempeño del modelo. Con data
augmentation se pueden aprovechar las que ya se tienen mediante:
• Mirroring
• Random cropping
• Rotación
• Deformación local
• Cambio de colores
• . . .
83. 83
Convolutional Neural Networks: Detección de objetos
Sliding Windows
Dada una ventana de detección, se aplica a la sección de
la imagen a la que apunta una red convolucional ya
entrenada. Se desplaza esta ventana por toda la imagen
y se aplica la misma operación hasta completarla.
Cambiar el tamaño y el stride para mejorar el desempeño
de la detección.
Esto presenta varios puntos negativos, sobre todo el gran
coste computacional requerido.
Para solventarlo se puede recurrir a una implementación
convolucional de las sliding Windows.
84. 84
Convolutional Neural Networks: Detección de objetos
Implementación convolucional de Sliding Windows
Así, en lugar de aplicar sliding windows en la imagen original (jugando con strides y tamaños), si se
aplican en la última capa convolucional, se ahorran costes computacionales.
16𝑥16𝑥3 12𝑥12𝑥16 6𝑥6𝑥16
2𝑥2𝑥400 2𝑥2𝑥400 2𝑥2𝑥400
5𝑥5 2𝑥2 5𝑥5 1𝑥1 1𝑥1
MAX POOL FC FC FC
5𝑥5 2𝑥2
MAX POOL FC
⋮ ⋮
FC
14𝑥14𝑥3 10𝑥10𝑥16 5𝑥5𝑥16
400 400
𝑦
𝑠𝑜𝑓𝑡𝑚𝑎𝑥
La implementación de capas totalmente conectadas (arriba) es sustituida por capas convolucionales
(abajo). Esto permite que el tratamiento de las capas convolucionales se extienda por toda la red,
hasta el punto inicial.
400 400 400
[Sermanet et al., 2014, OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks]
85. 85
Convolutional Neural Networks: Detección de objetos
Intersection over Union (IoU)
Si sobrepasa cierto valor umbral (e.g. 0,5) se considera que la detección ha sido correcta
Función usada para evaluar el desempeño de un algoritmo de detección de objetos.
Mide la superposición del área predicha por el algoritmo de detección y el ejemplo etiquetado
(ground truth box)
𝐼𝑜𝑈 =
Á𝑟𝑒𝑎 𝑑𝑒 𝑙𝑎 𝑖𝑛𝑡𝑒𝑟𝑠𝑒𝑐𝑐𝑖ó𝑛
Á𝑟𝑒𝑎 𝑑𝑒 𝑙𝑎 𝑢𝑛𝑖ó𝑛
86. 86
Convolutional Neural Networks: Detección de objetos
Non-Max Supression
Se descartan todas las predicciones con 𝑝𝑐 ≤ 0,6
De las cajas que quedasen:
• Tomar la caja con el 𝑝𝑐 más alto como predicción
• Descartar cualquier caja restante con un 𝐼𝑜𝑈 ≥ 0,5 respecto a la caja predicción
• Repetir
Es posible que el algoritmo de detección genere más de una bounding box para una misma
instancia (objeto).
0,9
0,7
0,60,8
0,7
ො𝑦 =
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
87. 87
Convolutional Neural Networks: Detección de objetos
Cajas de detección (Bounding Boxes)
La sliding window puede no detectar las bounding boxes de un objeto, debido a diferencias de
forma, tamaño, etc.
Una alternativa es la presentada por el sistema de detección de objetos YOLO.
En él, se divide una imagen en celdas (e.g. 3𝑥3) y se efectúa la detección en cada una de ellas una
única vez.
La salida seré de dimensiones 3𝑥3𝑥8. Se localiza el punto medio de cada instancia detectada
asociada a cada una de las celdas. Nótese que la anchura y la altura de la bounding box detectada
puede superar la de la celda, contemplándose así casos en los que un objeto ocupe más espacio
que una celda.
1- peatón
2- coche
3- moto
𝑦 =
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
𝑐1
𝑐2
𝑐3
100𝑥100𝑥3 3𝑥3𝑥8
. . .
𝐶𝑜𝑛𝑣𝑁𝑒𝑡
88. 88
Convolutional Neural Networks: Detección de objetos
Anchor Boxes
Técnica usada para:
• Diferenciar dos objetos cuyo punto medio coincida en la misma celda
• Distinguir mejor entre instancias cuyas bounding boxes tengan distintas formas (e.g. personas y
coches)
Clases:
1- peatón
2- coche
3- moto
𝑦 =
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
𝑐1
𝑐2
𝑐3
𝑦 =
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
𝑐1
𝑐2
𝑐3
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
𝑐1
𝑐2
𝑐3
De esta manera se asocia cada objeto en la imagen con la celda que contiene su punto medio y con
la anchor box con mayor IoU respecto a la groundtruth box
Anchor Box 1 Anchor Box 2
Anchor
Box 1
Anchor
Box 2
𝑦 =
1
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
1
0
0
1
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
0
1
0
Ejemplo imagen
89. 89
Convolutional Neural Networks: Detección de objetos
YOLO (You Only Look Once)
Algoritmo de detección de objetos basado en la división de la imagen de entrada en celdas.
Se aplica un modelo de detección a cada una de las celdas
Clases:
1- peatón
2- coche
3- moto
𝑦 =
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
𝑐1
𝑐2
𝑐3
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
𝑐1
𝑐2
𝑐3
Pasos:
• Obtener dos predicciones de bounding boxes por
cada celda de la cuadrícula
• Eliminar las predicciones de baja probabilidad
• Para cada clase, usar non-max supression
Anchor Box 1 Anchor Box 2
Anchor
Box 1
Anchor
Box 2
𝑦 =
0
?
?
?
?
?
?
?
1
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
0
1
0
Ejemplo imagen
Dimensiones de 𝑦: 3𝑥3𝑥2𝑥8
nº anchor 5 + nº classes
100𝑥100𝑥3
3𝑥3𝑥16
. . .
𝐶𝑜𝑛𝑣𝑁𝑒𝑡
[Redmon et al., 2015, You Only Look Once: Unified, Real-Time Object Detection]
90. 90
Convolutional Neural Networks: Detección de objetos
Otros métodos: Region Proposal
Aplicar un algoritmo de segmentación a la imagen a tratar. Alimentar una red convolucional con las
zonas resaltadas que hayan surgido en lugar de a todas las regiones de la imagen.
Algoritmos más rápidos:
• R-CNN: Propone regiones. Clasifica las regiones propuestas una a una. Devuelve un label y una
bounding box
• Fast R-CNN: propone regiones. Usa la implementaciónconvolucional de las sliding Windows
para clasificar todas las regiones
• Faster R-CNN: Usa una red convolucional para proponer regiones
[Girshick et al., 2014, Rich feature hierarchies for accurate object detection and semantic segmentation]
[Girshick et al., 2015, Fast R-CNN]
[Ren et al., 2016, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks]
92. 92
Recurrent Neural Networks
¿Por qué modelos secuenciales?
Gran parte de los ámbitos que nos rodean se comportan de manera secuencial.
x y
Reconocimiento del habla “¿Cuál será el tiempo mañana?”
Generación musical ∅
Clasificación de sentimientos “La comida ha sido decepcionante”
Análisis secuencial de ADN AGCCCCTGTGAAGAGGAACTAG AGCCCCTGTGAAGAGGAACTAG
Traducción automática ¿Dónde está el cine? Where is the cinema?
Reconocimiento de actividad en
vídeo
Corriendo
Reconocimiento de nombres
propios
Cuando Gregorio Samsa se despertó una
mañana después de un sueño intranquilo…
Cuando Gregorio Samsa se despertó una
mañana después de un sueño intranquilo
94. 94
Recurrent Neural Networks
Aproximación a Red Neuronal tradicional
Problemas:
• Las entradas y salidas pueden ser de distinta longitud en distintos ejemplos
• No comparte las características aprendidas sobre distintas posiciones del texto
𝑥<1>
𝑥<2>
𝑥<𝑇𝑥>
𝑦<1>
𝑦<2>
⋮ ⋮
𝑦<𝑇𝑦>
98. 98
Recurrent Neural Networks
Modelos lingüísticos y generación secuencial
𝑥<1>
= 0 𝑥<2>
= ො𝑦<1>
ො𝑦<1>
ො𝑦<2>
𝑎<0>
= 0
. . .
España tiene 47 millones de habitantes<EOS>
𝑎<1>
𝑎<2>
𝑥<3>
= ො𝑦<2>
ො𝑦<3>
𝑎<3>
𝑥<6>
= ො𝑦<5>
ො𝑦<6>
𝑎<6>
España tiene
𝑃 𝑎 𝑃 𝑎𝑎𝑟𝑜𝑛 … 𝑃 𝑒𝑠𝑝𝑎ñ𝑎 … 𝑃 𝑧𝑢𝑙𝑢 𝑃 𝑡𝑖𝑒𝑛𝑒|𝑒𝑠𝑝𝑎ñ𝑎 𝑃 47|"𝑒𝑠𝑝𝑎ñ𝑎 𝑡𝑖𝑒𝑛𝑒" 𝑃 < 𝐸𝑂𝑆 > |". . . "
habitantes
Entrenamiento realizado sobre un gran corpus lingüístico de texto en castellano
Dividir en tokens una frase:
• Función de coste
ℒ <𝑡>
ො𝑦<𝑡>
, 𝑦<𝑡>
= −
𝑖
𝑦𝑖
<𝑡>
log 𝑦𝑖
<𝑡>
ℒ =
𝑖
ℒ <𝑡>
ො𝑦<𝑡>
, 𝑦<𝑡>
• Función de pérdida
99. 99
Recurrent Neural Networks
Problema de Vanishing Gradients con RNN’s
Cuanto más profunda sea la red, más complicado será mantener las dependencias a largo
término.
En RNN’s, es complicado que, dada una secuencia larga, las últimas predicciones se vean influidas
por las de las primeras fases.
Los perros, que ya habían comido . . . , estaba lleno
Los perros, que ya habían comido . . . , estaban llenos
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮. . .𝑥 𝑦
Esto genera problemas de exploding / vanishing gradients.
Los exploding gradients son fácilmente evitados mediante gradient clipping, donde se limita el
valor máximo que puede tomar un gradiente
En cuanto a los vanishing gradients, existen varias posibles soluciones que minimizan su impacto:
• Gated Recurrent Unit (GRU)
• Long Short Term Memory (LSTM)
100. 100
Recurrent Neural Networks
RNN’s bidireccionales
Técnica usada para que la salida en un momento t no esté influida únicamente por los estados
anteriores (pasado), sino también por los posteriores (futuro)
En RNN’s, es complicado que, dada una secuencia larga, las últimas predicciones se vean influidas
por las de las primeras fases.
La vela del barco se ha roto
La vela se ha apagado
𝑥<1>
Ԧ𝑎<1>
ො𝑦<1>
ശ𝑎<1>
𝑥<2>
Ԧ𝑎<2>
ො𝑦<2>
ശ𝑎<2>
𝑥<3>
Ԧ𝑎<3>
ො𝑦<3>
ശ𝑎<3>
𝑥<4>
Ԧ𝑎<4>
ො𝑦<4>
ശ𝑎<4>
Grafo acíclico donde ො𝑦<𝑡>
= 𝑔 𝑊𝑦 Ԧ𝑎<𝑡>
, ശ𝑎<𝑡>
+ 𝑏 𝑦
101. 101
Recurrent Neural Networks
RNN’s profundas
𝑥<1> 𝑥<2>
𝑎[1]<0>
𝑎[1]<1>
𝑎[1]<2>
𝑥<3>
𝑎[1]<3>
𝑥<4>
𝑎[1]<4>
• Ejemplo:
No es habitual ver RNN’s de más de tres capas
Se puede acoplar a la salida una red neuronal tradicional más profunda
𝑦<1>
𝑎[2]<1>
𝑎[2]<2>
𝑎[2]<3> 𝑎[2]<4>
𝑎[3]<1>
𝑎[3]<2>
𝑎[3]<3> 𝑎[3]<4>
𝑦<2>
𝑦<3>
𝑦<4>
𝑎[2]<0>
𝑎[3]<0>
𝑊𝑎
[1]
𝑏 𝑎
[1]
𝑊𝑎
[2]
𝑏 𝑎
[2]
𝑊𝑎
[3]
𝑏 𝑎
[3]
𝑎 2 <3> = 𝑔 𝑊𝑎
[2]
𝑎 2 <2>, 𝑎 1 <3> + 𝑏 𝑎
[2]
𝒂 𝒍 <𝒕>
capa instante
103. 103
Natural Language Processing
Representación de palabras: One-Hot
Es necesario contar con una representación vectorial de las palabras para su tratamiento
Dado un vocabulario 𝑉 = 𝑎, 𝑎𝑎𝑟𝑜𝑛, . . . , 𝑧𝑢𝑙𝑢, < 𝑈𝑁𝐾 > 𝑉 = 10000
0
⋮
1
⋮
0
0
0
0
𝑈𝑣𝑎
(8937)
0
0
0
⋮
1
⋮
0
0
0
0
0
⋮
1
⋮
0
0
0
0
0
0
⋮
1
⋮
0
0
0
0
0
⋮
1
⋮
0
0
0
0
0
⋮
1
⋮
0
𝐻𝑜𝑚𝑏𝑟𝑒
(4362)
𝑀𝑢𝑗𝑒𝑟
(7231)
𝑅𝑒𝑦
(8384)
𝑅𝑒𝑖𝑛𝑎
(8322)
𝑁𝑎𝑟𝑎𝑛𝑗𝑎
(7549)
𝑜4362 𝑜7231 𝑜8384 𝑜8322 𝑜7549 𝑜8937
Quiero un vaso de zumo de naranja
Quiero un vaso de ____ de uva
Problema: La representación One-Hot no establece relaciones entre las palabras del vocabulario,
así que establecer que zumo es la palabra que relaciona naranja y uva es difícil
104. 104
Natural Language Processing
Representación caracterizada: Word Embeddings
Representación multidimensional de palabras que sí guardan relaciones semánticas
Visualización mediante t-SNE
𝐻𝑜𝑚𝑏𝑟𝑒
(4362)
𝑀𝑢𝑗𝑒𝑟
(7231)
𝑅𝑒𝑦
(8384)
𝑅𝑒𝑖𝑛𝑎
(8322)
𝑁𝑎𝑟𝑎𝑛𝑗𝑎
(7549)
𝑈𝑣𝑎
(8937)
Género -1 1 -0,95 0,97 0,00 0,01
Realeza 0,01 0,02 0,93 0,95 -0,01 0,00
Edad 0,03 0,02 0,7 0,69 0,03 -0,02
Comestible 0,04 0,01 0,02 0,01 0,62 0,97
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮
ℎ𝑜𝑚𝑏𝑟𝑒
𝑚𝑢𝑗𝑒𝑟𝑟𝑒𝑦
𝑟𝑒𝑖𝑛𝑎
𝑡𝑟𝑒𝑠
𝑐𝑢𝑎𝑡𝑟𝑜
𝑢𝑛𝑜
𝑑𝑜𝑠
𝑝𝑒𝑟𝑟𝑜
𝑔𝑎𝑡𝑜
𝑝𝑒𝑧
𝑢𝑣𝑎
𝑚𝑎𝑛𝑧𝑎𝑛𝑎
𝑛𝑎𝑟𝑎𝑛𝑗𝑎
[van der Maaten y Hinton, 2008, Visualizing Data using t-SNE]
𝑒4362 𝑒7231 𝑒8384 𝑒8322 𝑒7549 𝑒8937
300
𝑒ℎ𝑜𝑚𝑏𝑟𝑒 𝑒 𝑚𝑢𝑗𝑒𝑟 𝑒 𝑟𝑒𝑦 𝑒 𝑟𝑒𝑖𝑛𝑎 𝑒 𝑛𝑎𝑟𝑎𝑛𝑗𝑎 𝑒 𝑢𝑣𝑎
105. 105
Natural Language Processing
Propiedades de las Word Embeddings
• Analogías
ℎ𝑜𝑚𝑏𝑟𝑒
𝑚𝑢𝑗𝑒𝑟
𝑟𝑒𝑦
𝑟𝑒𝑖𝑛𝑎
[Mikolov et al., 2013, Linguistic Regularities in Continuous Space Word Representations]
𝑒ℎ𝑜𝑚𝑏𝑟𝑒 − 𝑒 𝑚𝑢𝑗𝑒𝑟 ≈ 𝑒 𝑟𝑒𝑦 − 𝑒 𝑤
hombre es a mujer lo que rey es a _____
Encontrar la palabra w: arg max
𝑤
𝑠𝑖𝑚 𝑒 𝑤, 𝑒 𝑟𝑒𝑦 − 𝑒ℎ𝑜𝑚𝑏𝑟𝑒 + 𝑒 𝑚𝑢𝑗𝑒𝑟
• Similaridad coseno
𝑠𝑖𝑚 𝑢, 𝑣 =
𝑢 𝑇
𝑣
𝑢 2 𝑣 2
Puede encontrar relaciones tales como:
Hombre: Mujer lo que Chico: Chica
París: Francia lo que Asunción: Paraguay
Dólar: EEUU lo que Yen: Japón
𝜙
𝜙
cos(𝜙)
𝑣
𝑢
𝑠𝑖𝑚 𝑢, 𝑣 = 𝑢 − 𝑣 2
Otra posible función de
similaridad:
106. 106
Natural Language Processing
Embedding matrix
• Obtención de un embedded vector
embedding para la palabra 𝑗 = 𝑒𝑗 = 𝐸 · 𝑜𝑗
𝑎 𝑎𝑎𝑟𝑜𝑛 … … … … … … … … … 𝑛𝑎𝑟𝑎𝑛𝑗𝑎 … … … … … … … … … 𝑧𝑢𝑙𝑢 < 𝑈𝑁𝐾 >
𝑂7549 =
0
0
0
⋮
1
⋮
0
0
𝐸 · 𝑜7549 = = 𝑒7549
En la práctica, se usan funciones específicas según el framework para recoger embeddings
300
10000
10000
𝟕𝟓𝟒𝟗
𝟕𝟓𝟒𝟗
(300, 10𝐾) (10𝐾, 1) (300, 1)
107. 107
Natural Language Processing
Aprendizaje Neuronal de Word Embeddings
La red neuronal aprende de esta manera una matriz de embeddings E
Quiero un vaso de zumo de naranja
𝑜7549𝑜2418𝑜9765𝑜2418𝑜9037𝑜8894𝑜8190
Quiero
un
vaso
de
zumo
de
naranja 𝑜7549
𝑜2418
𝑜9765
𝑜2418
𝑜9037
𝑜8894
𝑜8190 𝐸
𝐸
𝐸
𝐸
𝐸
𝐸
𝐸 𝑒7549
𝑒2418
𝑒9765
𝑒2418
𝑒9037
𝑒8894
𝑒8190
𝑠𝑜𝑓𝑡𝑚𝑎𝑥
10000
Se pueden hacer cambios en el contexto por el cual aprender las word embeddings, como:
• Las 4 últimas palabras
• 4 palabras a izquierda y derecha
• Última palabra
• Una palabra cercana (skip-gram)
Otros contextos
Quiero un vaso de zumo de naranja con mis tostadas de tomate
𝑝𝑎𝑙𝑎𝑏𝑟𝑎 𝑜𝑏𝑗𝑒𝑡𝑖𝑣𝑜
108. 108
Natural Language Processing
Word2Vec Skip-Gram
Se construye un modelo lingüístico basado en tomar una palabra como contexto c y, para varias
palabras objetivo t, aprender una matriz de embeddings E
Quiero un vaso de zumo de naranja con mis tostadas de tomate
𝐶𝑜𝑛𝑡𝑒𝑥𝑡𝑜 𝑐 "naranja" → 𝑂𝑏𝑗𝑒𝑡𝑖𝑣𝑜 𝑡 "zumo"
𝑜𝑐 𝐸 𝑒 𝑐
𝑠𝑜𝑓𝑡𝑚𝑎𝑥
ො𝑦
𝑆𝑜𝑓𝑡𝑚𝑎𝑥: 𝑝 𝑡 𝑐 =
𝑒 𝜃𝑡
𝑇
𝑒 𝑐
σ 𝑗=1
10000
𝑒 𝜃𝑡
𝑇 𝑒 𝑐
ℒ ො𝑦, 𝑦 = −
𝑖=1
10000
𝑦𝑖 log ො𝑦𝑖
Contexto Objetivo
naranja zumo
naranja vaso
naranja mis
97657549
𝑦 =
0
0
⋮
1
0
9765
[Mikolov et al., 2013, Efficient Estimation of Word Representations in Vector Space]
109. 109
Natural Language Processing
Muestreo negativo (Negative Sampling)
Quiero un vaso de zumo de naranja con mis tostadas de tomate
𝑜6257 𝐸 𝑒 𝑐
Contexto (c) Palabra (t) Objetivo (y)
naranja zumo 1
naranja rey 0
naranja el 0
naranja de 0
[Mikolov et al., 2013, Distributed Representations of Words and Phrases and their Compositionality]
𝑃 𝑦 = 1 | 𝑐, 𝑡 = 𝜎 𝜃𝑡
𝑇
𝑒 𝑐
⋮
𝑧𝑢𝑚𝑜
𝑟𝑒𝑦
𝑘 𝑘 = 5 − 20 para datasets pequeños
𝑘 = 5 para datasets grandes
En cada iteración, en lugar de
entrenar para las 10.000 palabras
del vocabulario, se entrena para
k+1 ejemplos
• Selección de ejemplos negativos
𝑃 𝑤𝑖 =
𝑓 𝑤𝑖
ൗ3
4
σ 𝑗=1
10000
𝑓 𝑤𝑗
ൗ3
4
𝑓 𝑤 : frecuencia con la que aparece la palabra 𝑤
10.000
110. 110
Natural Language Processing
GloVe word vectors (Global Vectors for Word Representation)
Quiero un vaso de zumo de naranja con mis tostadas de tomate
[Pennington et al., 2014, GloVe: Global Vectors for Word Representation]
• Modelo
𝑋𝑖𝑗 = 𝑁º 𝑑𝑒 𝑣𝑒𝑐𝑒𝑠 𝑞𝑢𝑒 𝑖 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑒𝑛 𝑒𝑙 𝑐𝑜𝑛𝑡𝑒𝑥𝑡𝑜 𝑑𝑒 𝑗
𝑖=1
10000
𝑗=1
10000
𝑓 𝑋𝑖𝑗 𝜃𝑖
𝑇
𝑒𝑗 + 𝑏𝑖 + 𝑏𝑗
′
− log 𝑋𝑖𝑗
2
𝑓 𝑋𝑖𝑗 = 0 𝑠𝑖 𝑋𝑖𝑗 = 0
𝜃𝑖, 𝑒𝑗 son simétricas, así que 𝑒 𝑤
(𝑓𝑖𝑛𝑎𝑙)
=
𝑒 𝑤+𝜃 𝑤
2
111. 111
Natural Language Processing
Aplicación de Word Embeddings: Clasificación de sentimientos
Análisis de críticas de restaurantes y asignarles una valoración
A pesar de tener un set de entrenamiento pequeño (10.000 – 100.000), las embedded
words (entrenadas en millones de palabras) pueden garantizar grandes resultados
• Modelo simple
El tiramisú es excelente
El
tiramisú
es
excelente 𝑜4027
𝑜3916
𝑜7932
𝑜3748 𝐸
𝐸
𝐸
𝐸 𝑒4027
𝑒3916
𝑒7932
𝑒3748
Media
𝑠𝑜𝑓𝑡𝑚𝑎𝑥
1 − 5
4027
ො𝑦
391679323748
Problema: “Carente por completo de buen gusto, buen servicio y buen ambiente”
es considerada positiva
• RNN (many-to-one)
Carente
𝐸
𝑒2098
𝑎<1>
𝑎<0>
por
𝐸
𝑒6930
𝑎<2>
completo
𝐸
𝑒2406
𝑎<3>
de
𝐸
𝑒2863
𝑎<4>
buen
𝐸
𝑒1435
𝑎<5>
ambiente
𝐸
𝑒854
𝑎<11>
. . .
𝑠𝑜𝑓𝑡𝑚𝑎𝑥
ො𝑦
. . .
112. 112
Natural Language Processing
Eliminación de sesgos en word embeddings
Las word embeddings pueden reflejar sesgos de género, etnia, edad u orientación sexual a
raíz del texto usado para entrenar el modelo
𝑛𝑖ñ𝑒𝑟𝑎
𝑎𝑏𝑢𝑒𝑙𝑎
𝑐ℎ𝑖𝑐𝑎
𝑒𝑙𝑙𝑎
𝑑𝑜𝑐𝑡𝑜𝑟
𝑎𝑏𝑢𝑒𝑙𝑜
𝑐ℎ𝑖𝑐𝑜
é𝑙
1º Identificar la dirección del sesgo:
𝑒é𝑙 − 𝑒 𝑒𝑙𝑙𝑎
𝑒ℎ𝑜𝑚𝑏𝑟𝑒 − 𝑒 𝑚𝑢𝑗𝑒𝑟
⋮
2º Neutralizar: Para cada palabra que no
aporte información definitoria, proyectar y
deshacerse del sesgo
3º igualar pares:
𝑎𝑏𝑢𝑒𝑙𝑎 − 𝑎𝑏𝑢𝑒𝑙𝑜
𝑐ℎ𝑖𝑐𝑎 − 𝑐ℎ𝑖𝑐𝑜
𝑠𝑒𝑠𝑔𝑜 (1𝐷)
𝑛𝑜 − 𝑠𝑒𝑠𝑔𝑜 (299𝐷)
113. 113
Natural Language Processing
Modelos de atención
𝑥<1>
Ԧ𝑎<1>
𝑐
ശ𝑎<1>
𝑥<2>
Ԧ𝑎<2>
ശ𝑎<2>
𝑥<3>
Ԧ𝑎<3>
ശ𝑎<3>
𝑥<4>
Ԧ𝑎<4>
ശ𝑎<4>
𝑥<5>
Ԧ𝑎<5> ശ𝑎<5>
𝑠<1>
𝑠<2>
𝑠<1>
𝑐 𝑐
𝑇ℎ𝑒 𝑝𝑎𝑡ℎ 𝑡ℎ𝑎𝑡
𝛼<1,1> 𝛼<1,2>
𝛼<1,3>
𝛼<2,1>
𝛼<2,2>
𝛼<2,3>
𝛼<3,1>
𝛼<3,2>
𝛼<3,3>
𝐸𝑙 𝑐𝑎𝑚𝑖𝑛𝑜 𝑞𝑢𝑒 𝑛𝑢𝑛𝑐𝑎 𝑠𝑒
𝑠<0>
. . .
. . .
• A medida que la longitud de las frases crece, la traducción se vuelve más compleja
• Los modelos de atención se basan en una nueva RNN que toma como entrada
contextos (e.g. 3 palabras) con sus correspondientes pesos
[Bahdanau et al., 2014, Neural Machine Translation by Jointly Learning to Align and Translate]
116. 116
Dónde aprender más
MOOC’s recomendados
• Deep Learning Specialization – Andrew Ng
• Fast.AI – Jeremy Howard
• Deep Learning A-Z - Kirill Eremenko y Hadelin de Ponteves