SlideShare una empresa de Scribd logo
Deep Learning
Javier Esteve Meliá
Especialización deeplearning.ai – Andrew Ng
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
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
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
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
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
7
Artificial Neural Networks
Artificial Neural Networks (ANN)
Redes Neuronales
8
Artificial Neural Networks
• Ampliamente usado durante los 80-90.
Fuerte resurgir en la actualidad
• Gran herramienta para tratar modelos
con un gran número de entradas
• Inspirado en la estructura neuronal
humana
Introducción
• Unidad logística
𝑏𝑖𝑎𝑠 𝑢𝑛𝑖𝑡
𝑥0
𝑥1
𝑥2
𝑥3
𝑐𝑢𝑒𝑟𝑝𝑜 𝑛𝑒𝑢𝑟𝑜𝑛𝑎𝑙
ℎ 𝜃 𝑥 =
1
1 + 𝑒−𝜃 𝑇 𝑥
𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝑎𝑐𝑡𝑖𝑣𝑎𝑐𝑖ó𝑛 𝑙𝑜𝑔í𝑠𝑡𝑖𝑐𝑎 𝑠𝑖𝑔𝑚𝑜𝑖𝑑𝑒𝑎 𝑔 𝑧 =
1
1 + 𝑒−𝑧
𝑥 =
𝑥0
𝑥1
𝑥2
𝑥3
𝜃 =
𝜃0
𝜃1
𝜃2
𝜃3
𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑖𝑛𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒𝑠 𝑃𝑒𝑠𝑜𝑠 𝑜 𝑝𝑎𝑟á𝑚𝑒𝑡𝑟𝑜𝑠
9
Artificial Neural Networks
• Una única variable independiente: tamaño
Regresión: Predicción de precios de casas
𝑥 =
𝑥1
𝑥2
𝑥3
𝑥4
𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑖𝑛𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒𝑠
𝑝𝑟𝑒𝑐𝑖𝑜
𝑡𝑎𝑚𝑎ñ𝑜
𝑥
𝑝𝑟𝑒𝑐𝑖𝑜
𝑦
𝑡𝑎𝑚𝑎ñ𝑜
• Múltiples variables independientes
𝑥1
𝑥2
𝑥3
𝑥4
𝑡𝑎𝑚𝑎ñ𝑜
𝑛º 𝑑𝑜𝑟𝑚𝑖𝑡𝑜𝑟𝑖𝑜𝑠
𝑐ó𝑑𝑖𝑔𝑜 𝑝𝑜𝑠𝑡𝑎𝑙
𝑛𝑖𝑣𝑒𝑙 𝑎𝑑𝑞𝑢𝑖𝑠𝑖𝑡𝑖𝑣𝑜
𝑦 𝑝𝑟𝑒𝑐𝑖𝑜
10
Artificial Neural Networks
• Tipos de datos
• Estructurados • No estructurados
Aprendizaje supervisado
Entrada (𝒙) Salida (𝒚) Aplicación
Características de casas Precio Bienes inmuebles
Información publicitaria de
usuarios
¿Click en anuncio? (0, 1) Marketing online
Imagen Objeto (1, … , 1000) Etiquetado de fotos
Sonido Transcripción textual Reconocimiento del habla
Castellano Francés Traducción automática
Imagen, información de radar,
etc.
Posición de otros vehículos Conducción autónoma
Tamaño Nº habitaciones … Precio
.
.
.
.
.
.
.
.
.
.
.
.
Edad
usuario
Id Anuncio … Click
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
Artificial Neural Networks
Razones del éxito del DL
𝐴𝑐𝑡𝑢𝑎𝑐𝑖ó𝑛
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑
𝑑𝑒 𝑑𝑎𝑡𝑜𝑠
𝐴𝑙𝑔𝑜𝑟𝑖𝑡𝑚𝑜 𝑑𝑒
𝑎𝑝𝑟𝑒𝑛𝑑𝑖𝑧𝑎𝑗𝑒
𝑡𝑟𝑎𝑑𝑖𝑐𝑖𝑜𝑛𝑎𝑙
𝑅𝑁 𝑝𝑒𝑞𝑢𝑒ñ𝑎
𝑅𝑁 𝑔𝑟𝑎𝑛𝑑𝑒
12
Artificial Neural Networks
Clasificación binaria
𝑋 =
255
231
⋮
255
134
⋮
64
64
64 · 64 · 3 = 12288
𝑛 = 𝑛 𝑥 = 12288
1 𝑝𝑒𝑟𝑟𝑜 ó 0 (𝑛𝑜 𝑝𝑒𝑟𝑟𝑜)
• Identificar una imagen como perro o no perro
13
Artificial Neural Networks
Notación
𝑥 1
, 𝑦 1
, 𝑥 2
, 𝑦 2
, . . . , 𝑥 𝑚
, 𝑦 𝑚
𝑥, 𝑦 𝑥 𝜖 ℝ 𝑛 𝑥 , 𝑦 𝜖 0, 1• Ejemplo de entrenamiento:
• m ejemplos de entrenamiento:
𝑚 = 𝑚 𝑡𝑟𝑎𝑖𝑛 𝑚 𝑡𝑒𝑠𝑡 = 𝑛º 𝑒𝑗𝑒𝑚𝑝𝑙𝑜𝑠 𝑑𝑒 𝑡𝑒𝑠𝑡
𝑋 = 𝑥(1)
𝑥(2)
… 𝑥(𝑚) 𝑋 𝜖 ℝ 𝑛 𝑥×𝑚
𝑌 = 𝑦(1)
𝑦(2)
… 𝑦(𝑚) 𝑌 𝜖 ℝ1×𝑚
𝑚
𝑛 𝑥
14
Regresión Logística con Redes Neuronales
• Algoritmo usado en problemas de clasificación binaria
• Dada una entrada 𝑥, se desea una predicción ො𝑦 = 𝑃(𝑦 = 1|𝑥)
Regresión Logística
• Parámetros:
• Salida:
𝑥 𝜖 ℝ 𝑛 𝑥
𝑤 𝜖 ℝ 𝑛 𝑥 , 𝑏 𝜖 ℝ
ො𝑦 = 𝜎 𝑤 𝑇 𝑥 + 𝑏
0 ≤ ො𝑦 ≤ 1
𝜎(𝑧)
𝜎 𝑧 =
1
1 + 𝑒−𝑧
𝑆𝑖 𝑧 𝑒𝑠 𝑔𝑟𝑎𝑛𝑑𝑒 ; 𝜎 𝑧 ≃
1
1 + 0
= 1
𝑆𝑖 𝑧 𝑒𝑠 𝑝𝑒𝑞𝑢𝑒ñ𝑎 ; 𝜎 𝑧 ≃
1
1 + ∞
≃ 0
𝑧
1
0,5
𝑧 = 𝑤 𝑇
𝑥 +b
15
Regresión Logística con Redes Neuronales
ො𝑦(𝑖)
= 𝜎(𝑤 𝑇
𝑥 𝑖
+ 𝑏), donde 𝜎 𝑧 𝑖
=
1
1+𝑒−𝑧(𝑖)
Función de coste de la Regresión Logística
Dado 𝑥 1
, 𝑦 1
, 𝑥 2
, 𝑦 2
, . . . , 𝑥 𝑚
, 𝑦 𝑚
se desea ො𝑦(𝑖)
≃ 𝑦(𝑖)
• Función de pérdida (error): ℒ ො𝑦, 𝑦 =
1
2
(ො𝑦 − 𝑦)2
ℒ ො𝑦, 𝑦 = − 𝑦 log ො𝑦 + 1 − 𝑦 log 1 − ො𝑦
• Si 𝑦 = 1:
• Si 𝑦 = 0:
ℒ ො𝑦, 𝑦 = − log ො𝑦
ℒ ො𝑦, 𝑦 = − log(1 − ො𝑦)
• Función de coste:
𝐽 𝑤, 𝑏 =
1
𝑚
෍
𝑖=1
𝑚
ℒ ො𝑦(𝑖)
, 𝑦(𝑖)
= −
1
𝑚
෍
𝑖=1
𝑚
𝑦(𝑖)
log ො𝑦(𝑖)
+ 1 − 𝑦(𝑖)
log 1 − ො𝑦 𝑖
No usada en
regresión logística,
muchos mínimos
locales
Queremos log ො𝑦 grande, por tanto ො𝑦 grande
Queremos log(1 − ො𝑦) grande, por tanto ො𝑦 pequeño
16
Regresión Logística con Redes Neuronales
Gradiente de Descenso
Recordatorio:
Objetivo: encontrar 𝑤, 𝑏 que minimicen 𝐽 𝑤, 𝑏
𝐽 𝑤, 𝑏 =
1
𝑚
෍
𝑖=1
𝑚
ℒ ො𝑦(𝑖), 𝑦(𝑖) = −
1
𝑚
෍
𝑖=1
𝑚
𝑦(𝑖) log ො𝑦(𝑖) − 1 − 𝑦(𝑖) log 1 − ො𝑦 𝑖
ො𝑦 = 𝜎(𝑤 𝑇 𝑥 + 𝑏) , 𝜎 𝑧 =
1
1+𝑒−𝑧
𝑅𝑒𝑝𝑒𝑡𝑖𝑟 {
𝑤 ≔ 𝑤 − 𝛼
𝑑𝐽(𝑤)
𝑑𝑤
}
𝑤 ≔ 𝑤 − 𝛼
𝑑𝐽(𝑤, 𝑏)
𝑑𝑤
𝑏 ≔ 𝑏 − 𝛼
𝑑𝐽(𝑤, 𝑏)
𝑑𝑏
Simplificación sin 𝑏
𝐽 𝑤
𝑤 Ratio de
aprendizaje
𝑑𝑏𝑑𝑤
17
Regresión Logística con Redes Neuronales
Derivando la Regresión Logística
Recordatorio: 𝑧 = 𝑤 𝑇
𝑥 + 𝑏 , ො𝑦 = 𝑎 = 𝜎(𝑧)
𝑤1 ≔ 𝑤1 − 𝛼 𝑑𝑤1
𝑏 ≔ 𝑏 − 𝛼 𝑑𝑏
𝑥1
𝑤1
𝑥2
𝑤2
𝑏
𝑧 = 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 𝑎 = 𝜎 𝑧 ℒ(a, y)
"da" =
𝜕ℒ(a, y)
𝜕𝑎
= −
𝑦
𝑎
+
1 − 𝑦
1 − 𝑎
"dz" =
𝜕ℒ
𝜕𝑧
=
𝜕ℒ
𝜕𝑧
𝑑𝑎
𝑑𝑧
= −
𝑦
𝑎
+
1 − 𝑦
1 − 𝑎
· 𝑎 1 − 𝑎 = 𝑎 − 𝑦
𝑤2 ≔ 𝑤2 − 𝛼 𝑑𝑤2
𝜕ℒ
𝜕𝑤1
= 𝑑𝑤1 = 𝑥1 𝑑𝑧
𝑑𝑤2 = 𝑥2 𝑑𝑧
𝑑𝑏 = 𝑑𝑧
Objetivo: ver cómo cambiar 𝑤1, 𝑤2 y 𝑏 para minimizar ℒ
ℒ 𝑎, 𝑦 = −(𝑦 log 𝑎 + (1 − 𝑦) log 1 − 𝑎
18
Regresión Logística con Redes Neuronales
Gradiente de descenso en m ejemplos
𝐽 𝑤, 𝑏 =
1
𝑚
෍
𝑖=1
𝑚
ℒ 𝑎(𝑖)
, 𝑦(𝑖)
𝑎(𝑖)
= ො𝑦(𝑖)
= 𝜎 𝑧 𝑖
= 𝜎(𝑤 𝑇
𝑥 𝑖
+ 𝑏)
𝜕
𝜕𝑤1
𝐽 𝑤, 𝑏 =
1
𝑚
෍
𝑖=1
𝑚
𝜕
𝜕𝑤1
ℒ 𝑎(𝑖)
, 𝑦(𝑖)
𝐽 = 0; 𝑑𝑤1 = 0; 𝑑𝑤2 = 0; 𝑑𝑏 = 0
𝑓𝑜𝑟 𝑖 = 1 𝑡𝑜 𝑚:
𝑧 𝑖
= 𝑤 𝑇
𝑥 𝑖
+ 𝑏
𝑎(𝑖)
= 𝜎 𝑧 𝑖
𝐽 += − 𝑦(𝑖)
log 𝑎(𝑖)
+ (1 − ො𝑦(𝑖)
) log(1 − 𝑎 𝑖
)
𝑑𝑧 𝑖
= 𝑎 𝑖
− 𝑦(𝑖)
𝑑𝑤1 += 𝑥1
(𝑖)
𝑑𝑧(𝑖)
𝑑𝑤2 += 𝑥2
(𝑖)
𝑑𝑧(𝑖)
𝑑𝑏 += 𝑑𝑧(𝑖)
Implementación:
𝐽 = ൗ𝐽
𝑚 ; 𝑑𝑤1 = ൗ𝑑𝑤1
𝑚 ; 𝑑𝑤2 = ൗ𝑑𝑤2
𝑚 ; 𝑑𝑏 = ൗ𝑑𝑏
𝑚
Bucle
n=2
Todos estos pasos corresponden a una
actualización del gradiente de descenso:
𝑤1 ≔ 𝑤1 − 𝛼 𝑑𝑤1
𝑤2 ≔ 𝑤2 − 𝛼 𝑑𝑤2
𝑏 ≔ 𝑏 − 𝛼 𝑑𝑏
Hay presentes dos bucles en esta
implementación. La vectorización es necesaria
para una mayor eficiencia en el aprendizaje
19
Artificial Neural Networks
Redes neuronales y grafos computacionales
𝑥1
𝑥2
𝑥3
𝑧 = 𝑤 𝑇
𝑥 + 𝑏 𝑎 = 𝜎 𝑧 ℒ(a, y)
𝑥
𝑤
𝑏
𝑧[1]
= 𝑊[1]
𝑥 + 𝑏[1] 𝑎[1]
= 𝜎 𝑧[1]
ℒ(𝑎[2]
, y)𝑊[1]
𝑏[1]
𝑧[2]
= 𝑊[2]
𝑎[1]
+ 𝑏 𝑎[2]
= 𝜎 𝑧[2]
𝑥
𝑥1
𝑥2
𝑥3
𝑊[1]
𝑏[1]
[1]
[2]
ො𝑦 = 𝑎
ො𝑦 = 𝑎[2]
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]
21
Artificial Neural Networks
Calculando la salida de una red neuronal
• Funciones de activación: Forward Propagation
𝑧1
[1]
= 𝑤1
[1] 𝑇
𝑥 + 𝑏1
[1]
,
𝑤 𝑇 𝑥 + 𝑏 𝜎(𝑧)
𝑥1
𝑥2
𝑥3
𝑎1
[1]
= 𝜎(𝑧1
[1]
)
𝑧2
[1]
= 𝑤2
[1] 𝑇
𝑥 + 𝑏2
[1]
,
𝑧3
[1]
= 𝑤3
[1] 𝑇
𝑥 + 𝑏3
[1]
,
𝑧4
[1]
= 𝑤4
[1] 𝑇
𝑥 + 𝑏4
[1]
,
𝑎2
[1]
= 𝜎(𝑧2
[1]
)
𝑎3
[1]
= 𝜎(𝑧3
[1]
)
𝑎4
[1]
= 𝜎(𝑧4
[1]
)
𝑧[1]
=
𝑤1
[1] 𝑇
𝑤2
[1] 𝑇
𝑤3
[1] 𝑇
𝑤4
[1] 𝑇
𝑥1
𝑥2
𝑥3
+
𝑏1
[1]
𝑏2
[1]
𝑏3
[1]
𝑏4
[1]
=
𝑧1
[1]
𝑧2
[1]
𝑧3
[1]
𝑧4
[1]
, 𝑎[1]
=
𝑎1
[1]
𝑎2
[1]
𝑎3
[1]
𝑎4
[1]
𝑎 = ො𝑦
𝑥1
𝑥2
𝑥3
𝑎1
[1]
𝑎2
[1]
𝑎3
[1]
𝑎4
[1]
ො𝑦 = 𝑎[2]𝑎[2]
22
Artificial Neural Networks
Funciones de activación
• Sigmoidea
𝑧
𝑎 = 𝑔 𝑧 =
1
1 + 𝑒−𝑧
𝑔′
(𝑧) = 𝑎 · (1 − 𝑎)
𝑎 = 𝑔 𝑧 = tanh(𝑧) =
𝑒 𝑧
− 𝑒−𝑧
𝑒 𝑧 + 𝑒−𝑧
𝑔′ 𝑧 = 1 − 𝑎2
𝑎
• Tangencial hiperbólica
Usada en la capa de salida de problemas de
clasificación binaria
𝑎
𝑧
23
Artificial Neural Networks
Funciones de activación
• Rectified Linear Unit (ReLU)
𝑧
𝑎 = max(0, 𝑧) 𝑔′(𝑧) = ቊ
0 𝑠𝑖 𝑧 < 0
1 𝑠𝑖 𝑧 ≥ 0
𝑎 = max(0.001𝑧, 𝑧)
𝑎
• Leaky ReLU
La derivada en valores negativos de z es cero
𝑎
𝑧 La derivada en valores negativos de z ya no es
exactamente cero
𝑔′
(𝑧) = ቊ
0.01 𝑠𝑖 𝑧 < 0
1 𝑠𝑖 𝑧 > 0
24
Artificial Neural Networks
Backpropagation
𝑧 = 𝑤 𝑇
𝑥 + 𝑏 𝑎 = 𝜎 𝑧 ℒ(a, y)
𝑥
𝑤
𝑏
𝑧[1]
= 𝑊[1]
𝑥 + 𝑏[1]
𝑎[1]
= 𝜎 𝑧[1]
ℒ(𝑎[2]
, y)𝑊[1]
𝑏[1]
𝑧[2]
= 𝑊[2]
𝑎[1]
+ 𝑏 𝑎[2]
= 𝜎 𝑧[2]
𝑥
𝑊[1]
𝑏[1]
𝑑𝑎 =
𝑑
𝑑𝑎
ℒ 𝑎, 𝑦 =
=
𝑑
𝑑𝑎
−𝑦 log 𝑎 − 1 − 𝑦 log 1 − 𝑎 =
= −
𝑦
𝑎
+
1−𝑦
1−𝑎
𝑑𝑧 =
𝜕ℒ
𝜕𝑧
=
𝜕ℒ
𝜕𝑧
𝑑𝑎
𝑑𝑧
=
= −
𝑦
𝑎
+
1 − 𝑦
1 − 𝑎
· 𝑎 1 − 𝑎 = 𝑎 − 𝑦𝑑𝑤 = 𝑑𝑧 · 𝑥
𝑑𝑧[2]
= 𝑎[2]
− 𝑦
𝑑𝑊[2]
= 𝑑𝑧[2]
𝑎[1] 𝑇
𝑑𝑏[2]
= 𝑑𝑧[2]
𝑑𝑏 = 𝑑𝑧
• Regresión Logística
• Gradientes en redes neuronales
𝑑𝑎[2]𝑑𝑧[1]
= 𝑊[2] 𝑇
𝑑𝑧[2]
∗ 𝑔[1]′
𝑧[1]
𝑑𝑏[1]
= 𝑑𝑧[1]
𝑑𝑤[1]
= 𝑑𝑧[1]
𝑥 𝑇
𝑛[1], 1 𝑛[1]
, 𝑛[2]
𝑛[2]
, 1 𝑛[1]
, 1
𝑑𝑎[1]
25
Artificial Neural Networks
Resumen Gradiente de descenso
𝐽 . . . =
1
𝑚
෍
𝑖=1
𝑚
ℒ ො𝑦, 𝑦
𝑑𝑧[2]
= 𝑎[2]
− 𝑦
𝑑𝑤[2]
= 𝑑𝑧[2]
𝑎[1] 𝑇
𝑑𝑏[2]
= 𝑑𝑧[2]
𝑑𝑧[1]
= 𝑊[2] 𝑇
𝑑𝑧[2]
∗ 𝑔[1]′
𝑧[1]
𝑑𝑏[1]
= 𝑑𝑧[1]
𝑑𝑤[1]
= 𝑑𝑧[1]
𝑥 𝑇
𝑑𝑍[2]
= 𝐴[2]
− 𝑌
𝑑𝑊[2]
=
1
𝑚
𝑑𝑍[2]
𝐴[1] 𝑇
𝑑𝑏[2]
=
1
𝑚
𝑛𝑝. 𝑠𝑢𝑚 𝑑𝑍[2]
, 𝑎𝑥𝑖𝑠 = 1, 𝑘𝑒𝑒𝑝𝑑𝑖𝑚𝑠 = 𝑇𝑟𝑢𝑒
𝑑𝑍[1]
= 𝑊[2] 𝑇
𝑑𝑍[2]
∗ 𝑔[1]′
𝑍[1]
𝑑𝑊[1]
=
1
𝑚
𝑑𝑍[1]
𝐴 𝑇
𝑑𝑏[1]
=
1
𝑚
𝑛𝑝. 𝑠𝑢𝑚 𝑑𝑍[1]
, 𝑎𝑥𝑖𝑠 = 1, 𝑘𝑒𝑒𝑝𝑑𝑖𝑚𝑠 = 𝑇𝑟𝑢𝑒
𝑛[1], 𝑚𝑛[1], 𝑚 𝑛[1], 𝑚
𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜 𝑎 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜
• Vectorización
𝑛[1], 𝑚
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
27
Deep Neural Networks
Redes neuronales
profundas (DNN)
28
Deep Neural Networks
Representación y nomenclatura
𝐿 = 4 𝑁º 𝑑𝑒 capas
𝑛[𝑙]
= 𝑁º 𝑑𝑒 unidades en la capa 𝑙
𝑎[𝑙]
= 𝑔 𝑙
𝑧 𝑙
Activaciones en la capa 𝑙
𝑤[𝑙]
= 𝑃𝑒𝑠𝑜𝑠 𝑝𝑎𝑟𝑎 𝑧 𝑙
𝑏[𝑙]
= 𝐵𝑖𝑎𝑠 𝑝𝑎𝑟𝑎 𝑧 𝑙
𝑛[0]
= 𝑛 𝑥 = 3, 𝑛[1]
= 5, 𝑛[2]
= 5, 𝑛[3]
= 3, 𝑛[4]
= 𝑛[𝐿]
= 1
𝑥 = 𝑎[0]
ො𝑦 = 𝑎[𝐿]
𝑥1
𝑥2
𝑥3
ො𝑦
𝑤[𝑙]
: 𝑛[𝑙]
, 𝑛[𝑙−1]
𝑏[𝑙]
: 𝑛[𝑙]
, 1
𝑑𝑤[𝑙]
: 𝑛[𝑙]
, 𝑛[𝑙−1]
𝑑𝑏[𝑙]
: 𝑛[𝑙]
, 1
Análisis dimensional
1 2
3
4
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
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]
= 𝑊[𝑙] 𝑇
· 𝑑𝑍[𝑙]
31
Deep Neural Networks
Funciones forward y backward
ො𝑦
𝑤[1]
, 𝑏[1] 𝑤[2]
, 𝑏[2]
𝑤[3]
, 𝑏[3]
𝑤[𝐿]
, 𝑏[𝐿]
𝑎[0]
𝑥
𝑑𝑧[1]
𝑤[1]
, 𝑏[1] 𝑤[2]
, 𝑏[2]
𝑤[3]
, 𝑏[3]
𝑤[𝐿]
, 𝑏[𝐿]
𝑑𝑧[2]
𝑑𝑧[3] 𝑑𝑧[𝐿]
𝑎[1] 𝑎[2]
𝑎[3]
𝑎[𝐿−1] 𝑎[𝐿]
𝑑𝑎[𝐿]
𝑑𝑤[1]
𝑑𝑏[1]
𝑑𝑤[2]
𝑑𝑏[2]
𝑑𝑤[3]
𝑑𝑏[3]
𝑑𝑤[𝐿]
𝑑𝑏[𝐿]
𝑑𝑎[1]
𝑑𝑎[2]
𝑑𝑎[3]
𝑑𝑎[𝐿−1]
𝑑𝑎[0]
Gradiente de descenso
𝑤[𝑙]
= 𝑤[𝑙]
− 𝛼 𝑑𝑤[𝑙]
𝑏[𝑙]
= 𝑏[𝑙]
− 𝛼 𝑑𝑏[𝑙]
. . .
. . .
𝑐𝑎𝑐ℎ𝑒 𝑍[1] 𝑍[2]
𝑍[3]
𝑍[𝐿]
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
33
Aspectos prácticos del Deep Learning
Aspectos prácticos del
Deep Learning
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
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
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
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
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
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
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
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
42
Métodos de optimización
Métodos de optimización
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
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
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
46
Métodos de optimización
Algoritmo de optimización Adam (Adaptive momentum estimation)
Basado en la combinación del momentum y RMSprop
En la iteración t
𝑣 𝑑𝑤 = 0 , 𝑠 𝑑𝑤 = 0 , 𝑣 𝑑𝑏 = 0 , 𝑠 𝑑𝑏 = 0
𝑣 𝑑𝑤 = 𝛽1 𝑣 𝑑𝑤 + 1 − 𝛽1 𝑑𝑤 , 𝑣 𝑑𝑏 = 𝛽1 𝑣 𝑑𝑏 + 1 − 𝛽1 𝑑𝑏
𝑠 𝑑𝑤 = 𝛽2 𝑠 𝑑𝑤 + 1 − 𝛽2 𝑑𝑤2
, 𝑠 𝑑𝑏 = 𝛽2 𝑠 𝑑𝑏 + 1 − 𝛽2 𝑑𝑏2
𝑣 𝑑𝑤
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
= ൘
𝑣 𝑑𝑤
1 + 𝛽1
𝑡 , 𝑣 𝑑𝑏
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
= ൘
𝑣 𝑑𝑏
1 + 𝛽1
𝑡
𝑠 𝑑𝑤
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
= ൘
𝑠 𝑑𝑤
1 + 𝛽2
𝑡 , 𝑠 𝑑𝑏
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
= ൘
𝑠 𝑑𝑏
1 + 𝛽2
𝑡
𝑤 ≔ 𝑤 − 𝛼
𝑣 𝑑𝑤
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
𝑠 𝑑𝑤
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
+ 𝜀
, 𝑏 ≔ 𝑏 − 𝛼
𝑣 𝑑𝑏
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
𝑠 𝑑𝑏
𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜
+ 𝜀
Elección de hiperparámetros:
𝛼: 𝑛𝑒𝑐𝑒𝑠𝑖𝑡𝑎 𝑠𝑒𝑟 𝑎𝑓𝑖𝑛𝑎𝑑𝑜
𝛽1: 0,9 (𝑑𝑤)
𝛽2: 0,999 (𝑑𝑤2
)
𝜀: 10−8
“momentum” 𝛽1
“RMSprop” 𝛽2
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
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
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 𝑧(𝑖)
50
Métodos de optimización
Añadir Batch Norm a una Red Neuronal
𝑥1
𝑥2
𝑥3
ො𝑦
𝑥
𝑤[1], 𝑏[1]
𝑧[1]
𝛽[1], 𝛾[1]
ǁ𝑧[1]
→ 𝑎[1]
= 𝑔 1
ǁ𝑧 1
𝑤[2], 𝑏[2]
𝑧[2]
𝛽[2], 𝛾[2]
ǁ𝑧[2]
→ 𝑎[2]
→ . . .
Parámetros:
𝑧1
[1]
𝑎1
[1]
𝑧2
[1]
𝑎2
[1]
𝑧1
[2]
𝑎1
[2]
𝑧2
[2]
𝑎2
[2]
𝑤[1]
, 𝑏[1]
, 𝑤[2]
, 𝑏[2]
, . . . , 𝑤[𝐿]
, 𝑏[𝐿]
𝛽[1]
, 𝛾[1]
, 𝛽[2]
, 𝛾[2]
, . . . , 𝛽[𝐿]
, 𝛾[𝐿]
𝑑𝛽[𝑙]
𝛽[𝑙]
= 𝛽[𝑙]
− 𝛼𝑑𝛽[𝑙]
Backpropagation:
BN BN
51
Métodos de optimización
Añadir Batch Norm a una Red Neuronal (Mini-Batch)
𝑋{1}
𝑤[1], 𝑏[1]
𝑧[1]
𝛽[1], 𝛾[1]
ǁ𝑧[1]
→ 𝑎[1]
= 𝑔 1
ǁ𝑧 1
𝑤[2], 𝑏[2]
𝑧[2]
𝛽[2], 𝛾[2]
ǁ𝑧[2]
→ . . .
Parámetros:
𝑤[𝑙]
, 𝑏[𝑙]
, 𝛽[𝑙]
, 𝛾[𝑙]
Implementación Gradient Descent:
𝑓𝑜𝑟 𝑡 = 1, . . . , 𝑛𝑢𝑚𝑀𝑖𝑛𝑖𝐵𝑎𝑡𝑐ℎ𝑒𝑠:
Calcular forward propagation para 𝑋{𝑡}
En cada capa oculta, usar BN para reemplazar 𝑧[𝑙]
por ǁ𝑧[𝑙]
Usar back propagation para calcular 𝑑𝑤[𝑙]
, 𝑑𝑏[𝑙]
, 𝑑𝛽[𝑙]
, 𝑑𝛾[𝑙]
Actualizar parámetros:
𝛽[𝑙]
= 𝛽[𝑙]
− 𝛼𝑑𝛽[𝑙]
𝑤[𝑙]
= 𝑤[𝑙]
− 𝛼𝑑𝑤[𝑙]
𝛾[𝑙]
= 𝛾[𝑙]
− 𝛼𝑑𝛾[𝑙]
𝑋{2}
𝑤[1], 𝑏[1]
𝑧[1]
𝛽[1], 𝛾[1]
ǁ𝑧[1] → . . .
BN BN
⋮
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
53
Estrategias para ML
Estrategias para Machine
Learning
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
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
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
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
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
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
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
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
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
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
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
65
Convolutional Neural Networks
Redes Neuronales
Convolucionales
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
67
Convolutional Neural Networks
La operación convolucional
A medida que se trabaja con imágenes de mayor resolución se hace inviable tratar cada
píxel como variable de entrada. Se requiere implementar la operación convolucional
• Detección de ejes verticales
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 0 -1
1 0 -1
1 0 -1
-5 -4 0 8
-10 -2 2 3
0 -2 -4 -7
-3 -2 -3 -16
∗
3 · 1 + 1 · 1 + 2 · 1 + 0 · 0 + 5 · 0 + 7 · 0 + 1 · −1 + 8 · −1 + 2 · (−1)
=
6𝑥6
3𝑥3
filtro o
kernel
4𝑥4
convolución
1 0 -1
2 0 -2
1 0 -1
3 0 -3
10 0 -10
3 0 -3
1 1 1
0 0 0
-1 -1 -1
1 0 -1
1 0 -1
1 0 -1
• Ejemplos de filtros
Vertical Filtro Sobel Filtro Scharr Horizontal
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
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
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
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
72
Convolutional Neural Networks
Capa convolucional
• Notación
∗
∗
ReLU + 𝑏1
ReLU + 𝑏1
𝑓[𝑙]
= 𝑡𝑎𝑚𝑎ñ𝑜 𝑑𝑒𝑙 𝑓𝑖𝑙𝑡𝑟𝑜
𝑝[𝑙]
= 𝑝𝑎𝑑𝑑𝑖𝑛𝑔 (𝑟𝑒𝑙𝑙𝑒𝑛𝑜)
𝑠[𝑙]
= 𝑠𝑡𝑟𝑖𝑑𝑒(𝑝𝑎𝑠𝑜)
𝑛 𝑐
[𝑙]
= 𝑛º 𝑑𝑒 𝑓𝑖𝑙𝑡𝑟𝑜𝑠
Dimensiones de cada filtro: 𝑓[𝑙]
𝑥 𝑓[𝑙]
𝑥 𝑛 𝑐
[𝑙−1]
Activaciones: 𝑎[𝑙]
→ 𝑛 𝐻
[𝑙]
𝑥 𝑛 𝑊
[𝑙]
𝑥 𝑛 𝑐
[𝑙]
𝐴[𝑙]
→ 𝑚 𝑥 𝑛 𝐻
[𝑙]
𝑥 𝑛 𝑊
[𝑙]
𝑥 𝑛 𝑐
[𝑙]
Pesos: 𝑓[𝑙]
𝑥 𝑓[𝑙]
𝑥 𝑛 𝑐
[𝑙−1]
𝑥 𝑛 𝑐
[𝑙]
Bias: 𝑛 𝑐
[𝑙]
- 1, 1, 1, 𝑛 𝑐
[𝑙]
Entrada: 𝑛 𝐻
[𝑙−1]
𝑥 𝑛 𝑊
[𝑙−1]
𝑥 𝑛 𝑐
[𝑙−1]
Salida: 𝑛 𝐻
[𝑙]
𝑥 𝑛 𝑊
[𝑙]
𝑥 𝑛 𝑐
[𝑙]
𝑛 ൗ𝐻
𝑊
[𝑙]
=
𝑛 ൗ𝐻
𝑊
[𝑙−1]
+2𝑝[𝑙]
− 𝑓[𝑙]
𝑠[𝑙]
+ 1
𝑎[0]
𝑤[1]
𝑧[1]
𝑎[1]
𝑧[𝑙]
= 𝑤[𝑙]
𝑎[𝑙−1]
+ 𝑏[𝑙]
𝑎[𝑙]
= 𝑔 𝑧[𝑙]
73
Convolutional Neural Networks
Ejemplo de red convolucional
39𝑥39𝑥3 37𝑥37𝑥10
𝑛 𝐻
[0]
= 𝑛 𝐻
[0]
= 39
𝑛 𝑐
[0]
= 3
𝑓[1]
= 3
𝑠[1]
= 1
𝑝[1]
= 0
10 𝑓𝑖𝑙𝑡𝑟𝑜𝑠
𝑓[2]
= 5
𝑠[2]
= 2
𝑝[2]
= 0
20 𝑓𝑖𝑙𝑡𝑟𝑜𝑠
17𝑥17𝑥20
𝑛 𝑐
[2]
= 20
𝑛 𝐻
[1]
= 𝑛 𝐻
[1]
= 37
𝑛 𝑐
[0]
= 3
7𝑥7𝑥40
1960
𝑛 𝐻
[2]
= 𝑛 𝐻
[2]
= 17
𝑓[3]
= 5
𝑠[3]
= 2
𝑝[3]
= 0
40 𝑓𝑖𝑙𝑡𝑟𝑜𝑠
𝑛 + 2𝑝 − 𝑓
𝑠
+ 1 =
39 + 0 − 3
1
+ 1 = 37
Tipos de capa en una red convolucional
• Convolution (CONV)
• Pooling (POOL)
• Fully Connected (FC)
Flatten
⋮
ො𝑦
Regresión logística /
softmax
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
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
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
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
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
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
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
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
• . . .
82
Convolutional Neural Networks: Detección de objetos
Detección de objetos
⋮
𝑠𝑜𝑓𝑡𝑚𝑎𝑥 (4)
𝑏 𝑥, 𝑏 𝑦, 𝑏ℎ, 𝑏 𝑤
𝑏𝑜𝑢𝑛𝑑𝑖𝑛𝑔 𝑏𝑜𝑥
1- peatón
2- coche
3- moto
4- background (nada)
. . .
𝑦 =
𝑝𝑐
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
𝑐1
𝑐2
𝑐3
1
𝑏 𝑥
𝑏 𝑦
𝑏ℎ
𝑏 𝑤
0
1
0
0
?
?
?
?
?
?
?
ℒ ො𝑦, 𝑦 = ൝
ො𝑦1 − 𝑦1
2
+ ො𝑦2 − 𝑦2
2
+. . . + ො𝑦8 − 𝑦8
2
𝑠𝑖 𝑦1 = 1
ො𝑦1 − 𝑦1
2
𝑠𝑖 𝑦1 = 0
• Función de coste
Es posible utilizar otras funciones de
coste, como log likelihood para 𝑐1, 𝑐2, 𝑐3
o regresión logística para 𝑝𝑐
𝑏 𝑥, 𝑏 𝑦
𝑏 𝑤
𝑏ℎ
0, 0
1, 1
𝐶𝑜𝑛𝑣𝑁𝑒𝑡
¿Hay algún
objeto?
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
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
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
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
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
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
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
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]
91
Recurrent Neural Networks
Modelos secuenciales
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
93
Recurrent Neural Networks
Notación
Ejemplo: Name Entity Recognition (NER): Identificar nombres propios de una frase
Cuando Gregorio Samsa se despertó una mañana
𝑥<1>
𝑥<2>
𝑥<3> 𝑥<4>
𝑥<5> 𝑥<6>
𝑥<7>
0 1 1 0 0 0 0
𝑦<1>
𝑦<2>
𝑦<3> 𝑦<4>
𝑦<5> 𝑦<6>
𝑦<7>
𝑥:
Representación de palabras: One Hot Encoding
vocabulario
𝑎
𝑎𝑎𝑟𝑜𝑛
⋮
𝑐𝑢𝑎𝑛𝑑𝑜
⋮
𝐺𝑟𝑒𝑔𝑜𝑟𝑖𝑜
⋮
𝑆𝑎𝑚𝑠𝑎
⋮
𝑧𝑢𝑙𝑢
1
2
⋮
3687
⋮
4502
⋮
7812
⋮
1000
𝑥<1>
=
0
0
⋮
1
⋮
0
⋮
0
⋮
0
𝑥<2>
=
0
0
⋮
0
⋮
1
⋮
0
⋮
0
𝑥<3>
=
0
0
⋮
0
⋮
0
⋮
1
⋮
0
3687
4502
7812
𝑦:
𝑥 𝑖 <𝑡>
𝑖: 𝑒𝑗𝑒𝑚𝑝𝑙𝑜 𝑑𝑒 𝑒𝑛𝑡𝑟𝑒𝑛𝑎𝑚𝑖𝑒𝑛𝑡𝑜
𝑡: 𝑝𝑎𝑙𝑎𝑏𝑟𝑎 𝑒𝑛 𝑒𝑙 𝑒𝑗𝑒𝑚𝑝𝑙𝑜
𝑇𝑥 = 9
𝑇𝑦 = 9
. . .
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>
⋮ ⋮
𝑦<𝑇𝑦>
95
Recurrent Neural Networks
Red Neuronal Recurrente
Problema: Una predicción es sensible sólo a los estado anteriores, no a los posteriores
• Ejemplo:
𝐿𝑎 𝑣𝑒𝑙𝑎 𝑑𝑒𝑙 𝑏𝑎𝑟𝑐𝑜 𝑠𝑒 ℎ𝑎 𝑟𝑜𝑡𝑜
𝐿𝑎 𝑣𝑒𝑙𝑎 𝑠𝑒 ℎ𝑎 𝑎𝑝𝑎𝑔𝑎𝑑𝑜
Forward propagation
𝑥<1>
𝑥<2> 𝑥<3> 𝑥<𝑇𝑥>
ො𝑦<1>
ො𝑦<2> ො𝑦<3> ො𝑦<𝑇𝑦>
𝑎<0> 𝑎<1>
𝑎<2>
𝑎<3> 𝑎<𝑇𝑥−1>
𝑤 𝑎𝑎 𝑤 𝑎𝑎 𝑤 𝑎𝑎 𝑤 𝑎𝑎 𝑤 𝑎𝑎
𝑤 𝑎𝑥 𝑤 𝑎𝑥 𝑤 𝑎𝑥 𝑤 𝑎𝑥
𝑤 𝑦𝑎 𝑤 𝑦𝑎 𝑤 𝑦𝑎 𝑤 𝑦𝑎
𝑥<𝑡>
ො𝑦<𝑡>
. . .
𝑎<0>
= 0 𝑎<1>
= 𝑔1 𝑤 𝑎𝑎 𝑎<0>
+ 𝑤 𝑎𝑥 𝑥<1>
+ 𝑏 𝑎
ො𝑦<1>
= 𝑔2 𝑤 𝑦𝑎 𝑎<1>
+ 𝑏 𝑦
𝒂<𝒕>
= 𝒈 𝟏 𝒘 𝒂𝒂 𝒂<𝒕−𝟏>
+ 𝒘 𝒂𝒙 𝒙<𝒕>
+ 𝒃 𝒂
ෝ𝒚<𝒕>
= 𝒈 𝟐 𝒘 𝒚𝒂 𝒂<𝒕>
+ 𝒃 𝒚
𝑤 𝑎𝑥
𝑤 𝑎𝑎
𝑤 𝑦𝑎
𝑡𝑎𝑛ℎ/𝑅𝑒𝐿𝑈
𝑠𝑖𝑔𝑚𝑜𝑖𝑑𝑒𝑎
𝑇𝑥 = 𝑇𝑦
vector de
ceros
𝒂<𝒕>
= 𝒈 𝟏 𝒘 𝒂 𝒂<𝒕−𝟏>
, 𝒙<𝒕>
+ 𝒃 𝒂
ෝ𝒚<𝒕>
= 𝒈 𝟐 𝒘 𝒚 𝒂<𝒕>
+ 𝒃 𝒚
Notación
simplificada
96
Recurrent Neural Networks
Backpropagation sobre el tiempo
𝑥<1>
𝑎<0>
𝑎<1>
𝑥<2>
𝑎<0>
𝑥<3>
𝑎<0>
𝑥<𝑇𝑥>
𝑎<0>
ො𝑦<1>
ℒ<1>
ො𝑦<1>
ℒ<1>
ො𝑦<1>
ℒ<1>
ො𝑦<1>
ℒ<1>
ℒΣ
𝑊𝑎, 𝑏 𝑎
𝑊𝑦, 𝑏 𝑦
. . .
ℒ <𝑡>
ො𝑦<𝑡>
, 𝑦<𝑡>
= −𝑦<𝑡>
log ො𝑦<𝑡>
− 1 − 𝑦<𝑡>
log 1 − ො𝑦<𝑡>
ℒ ො𝑦<𝑡>
, 𝑦<𝑡>
= ෍
𝑡=1
𝑇𝑦
ℒ <𝑡>
ො𝑦<𝑡>
, 𝑦<𝑡>
97
Recurrent Neural Networks
Tipos de RNN’s
Many-to-many
𝑥<1>
𝑥<2> 𝑥<𝑇𝑥>
ො𝑦<1> ො𝑦<2>
ො𝑦<𝑇𝑦>
𝑎<0>
. . .
𝑥<1>
𝑥<2> 𝑥<𝑇𝑥>
ො𝑦
. . .
𝑥
ො𝑦
𝑥<1>
ො𝑦<1> ො𝑦<2>
ො𝑦<𝑇𝑦>
𝑎<0>
. . .
𝑥<1>
𝑥<𝑇𝑥>
𝑎<0>
. . .
ො𝑦<1>
ො𝑦<𝑇𝑦>
. . .
Many-to-one One-to-one
One-to-many Many-to-many
𝐺𝑒𝑛𝑒𝑟𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑚ú𝑠𝑖𝑐𝑎 𝑇𝑟𝑎𝑑𝑢𝑐𝑐𝑖ó𝑛 𝑎𝑢𝑡𝑜𝑚á𝑡𝑖𝑐𝑎
𝐶𝑙𝑎𝑠𝑖𝑓𝑖𝑐𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑠𝑒𝑛𝑡𝑖𝑚𝑖𝑒𝑛𝑡𝑜𝑠
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
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
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
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
102
Natural Language Processing
Procesamiento Natural del
Lenguaje (NLP)
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
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
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
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
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
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
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
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
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
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
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]
114
Consideraciones finales
115
Panorama tecnológico
Frameworks y librerías
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

Más contenido relacionado

La actualidad más candente

Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
Simplilearn
 
Theory of Computation "Chapter 1, introduction"
Theory of Computation "Chapter 1, introduction"Theory of Computation "Chapter 1, introduction"
Theory of Computation "Chapter 1, introduction"
Ra'Fat Al-Msie'deen
 
Tensorflow
TensorflowTensorflow
Tensorflow
marwa Ayad Mohamed
 
Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7
Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7
Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7
Ono Shigeru
 
Augmenting Data Structures
Augmenting Data StructuresAugmenting Data Structures
Augmenting Data Structures
Dr Sandeep Kumar Poonia
 
ML Basics
ML BasicsML Basics
ML Basics
SrujanaMerugu1
 
Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...
Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...
Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...
Simplilearn
 
AI: Learning in AI
AI: Learning in AI AI: Learning in AI
AI: Learning in AI
DataminingTools Inc
 
Vc dimension in Machine Learning
Vc dimension in Machine LearningVc dimension in Machine Learning
Vc dimension in Machine Learning
VARUN KUMAR
 
End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...
End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...
End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...
Universitat Politècnica de Catalunya
 
Neural Networks
Neural NetworksNeural Networks
Neural Networks
Adri Jovin
 
Approximation Algorithms TSP
Approximation Algorithms   TSPApproximation Algorithms   TSP
P, NP, NP-Complete, and NP-Hard
P, NP, NP-Complete, and NP-HardP, NP, NP-Complete, and NP-Hard
P, NP, NP-Complete, and NP-Hard
Animesh Chaturvedi
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
sandeep54552
 
Introduction to deep learning
Introduction to deep learningIntroduction to deep learning
Introduction to deep learning
Amr Rashed
 
Sequence Modelling with Deep Learning
Sequence Modelling with Deep LearningSequence Modelling with Deep Learning
Sequence Modelling with Deep Learning
Natasha Latysheva
 
Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018
Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018
Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018
Universitat Politècnica de Catalunya
 
Solving problems by searching
Solving problems by searchingSolving problems by searching
Solving problems by searchingLuigi Ceccaroni
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and Debugging
Rich Helton
 
DESIGN AND ANALYSIS OF ALGORITHMS
DESIGN AND ANALYSIS OF ALGORITHMSDESIGN AND ANALYSIS OF ALGORITHMS
DESIGN AND ANALYSIS OF ALGORITHMSGayathri Gaayu
 

La actualidad más candente (20)

Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
 
Theory of Computation "Chapter 1, introduction"
Theory of Computation "Chapter 1, introduction"Theory of Computation "Chapter 1, introduction"
Theory of Computation "Chapter 1, introduction"
 
Tensorflow
TensorflowTensorflow
Tensorflow
 
Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7
Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7
Goodfellow, Bengio, Couville (2016) "Deep Learning", Chap. 7
 
Augmenting Data Structures
Augmenting Data StructuresAugmenting Data Structures
Augmenting Data Structures
 
ML Basics
ML BasicsML Basics
ML Basics
 
Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...
Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...
Artificial Neural Network | Deep Neural Network Explained | Artificial Neural...
 
AI: Learning in AI
AI: Learning in AI AI: Learning in AI
AI: Learning in AI
 
Vc dimension in Machine Learning
Vc dimension in Machine LearningVc dimension in Machine Learning
Vc dimension in Machine Learning
 
End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...
End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...
End-to-end Speech Recognition with Recurrent Neural Networks (D3L6 Deep Learn...
 
Neural Networks
Neural NetworksNeural Networks
Neural Networks
 
Approximation Algorithms TSP
Approximation Algorithms   TSPApproximation Algorithms   TSP
Approximation Algorithms TSP
 
P, NP, NP-Complete, and NP-Hard
P, NP, NP-Complete, and NP-HardP, NP, NP-Complete, and NP-Hard
P, NP, NP-Complete, and NP-Hard
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Introduction to deep learning
Introduction to deep learningIntroduction to deep learning
Introduction to deep learning
 
Sequence Modelling with Deep Learning
Sequence Modelling with Deep LearningSequence Modelling with Deep Learning
Sequence Modelling with Deep Learning
 
Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018
Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018
Loss Functions for Deep Learning - Javier Ruiz Hidalgo - UPC Barcelona 2018
 
Solving problems by searching
Solving problems by searchingSolving problems by searching
Solving problems by searching
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and Debugging
 
DESIGN AND ANALYSIS OF ALGORITHMS
DESIGN AND ANALYSIS OF ALGORITHMSDESIGN AND ANALYSIS OF ALGORITHMS
DESIGN AND ANALYSIS OF ALGORITHMS
 

Similar a Introducción al Deep Learning

Introducción al Machine Learning
Introducción al Machine LearningIntroducción al Machine Learning
Introducción al Machine Learning
Javier Esteve Meliá
 
¿Sueñan los crackers con ordenadores cuánticos
¿Sueñan los crackers con ordenadores cuánticos¿Sueñan los crackers con ordenadores cuánticos
¿Sueñan los crackers con ordenadores cuánticos
Eventos Creativos
 
¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?
Gonzalo Álvarez Marañón
 
Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...
Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...
Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...
saulnml
 
Comprensión de Archivos
Comprensión de ArchivosComprensión de Archivos
Comprensión de Archivos
Christian Collaguazo Malla
 
Circuitosdigitales
CircuitosdigitalesCircuitosdigitales
Circuitosdigitalesedgarj200010
 
Analisis Canonico
Analisis CanonicoAnalisis Canonico
Analisis Canonico
Facultad de Ciencias, UCR
 
Ies valentin turienzo
Ies valentin turienzo Ies valentin turienzo
Ies valentin turienzo
angelagonzalez147
 
Diapositivas Máquina de goldberg
Diapositivas  Máquina de goldbergDiapositivas  Máquina de goldberg
Diapositivas Máquina de goldberg
Robayo3rik
 
Ies valentin turienzo
Ies valentin turienzo Ies valentin turienzo
Ies valentin turienzo
angelagonzalez147
 
Unidad didáctica 2.
Unidad didáctica 2.Unidad didáctica 2.
Unidad didáctica 2.
Pablo Jan Palacio De Miguel
 
Practico 2
Practico 2Practico 2
Practico 2
Angel Menchaca
 
Torres de hanói
Torres de hanóiTorres de hanói
Torres de hanói
Davixe
 
1388 Elizabeth SDI U123 ago-dic 2018.pptx
1388 Elizabeth SDI  U123 ago-dic 2018.pptx1388 Elizabeth SDI  U123 ago-dic 2018.pptx
1388 Elizabeth SDI U123 ago-dic 2018.pptx
limbertErickochoaBla
 
Red Neuronal Artificial
Red Neuronal ArtificialRed Neuronal Artificial

Similar a Introducción al Deep Learning (16)

Introducción al Machine Learning
Introducción al Machine LearningIntroducción al Machine Learning
Introducción al Machine Learning
 
¿Sueñan los crackers con ordenadores cuánticos
¿Sueñan los crackers con ordenadores cuánticos¿Sueñan los crackers con ordenadores cuánticos
¿Sueñan los crackers con ordenadores cuánticos
 
¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?
 
Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...
Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...
Herramientas Computacionales para Extraer, Representar y Analizar Rasgos Faci...
 
Comprensión de Archivos
Comprensión de ArchivosComprensión de Archivos
Comprensión de Archivos
 
Circuitosdigitales
CircuitosdigitalesCircuitosdigitales
Circuitosdigitales
 
Electronica digital
Electronica digitalElectronica digital
Electronica digital
 
Analisis Canonico
Analisis CanonicoAnalisis Canonico
Analisis Canonico
 
Ies valentin turienzo
Ies valentin turienzo Ies valentin turienzo
Ies valentin turienzo
 
Diapositivas Máquina de goldberg
Diapositivas  Máquina de goldbergDiapositivas  Máquina de goldberg
Diapositivas Máquina de goldberg
 
Ies valentin turienzo
Ies valentin turienzo Ies valentin turienzo
Ies valentin turienzo
 
Unidad didáctica 2.
Unidad didáctica 2.Unidad didáctica 2.
Unidad didáctica 2.
 
Practico 2
Practico 2Practico 2
Practico 2
 
Torres de hanói
Torres de hanóiTorres de hanói
Torres de hanói
 
1388 Elizabeth SDI U123 ago-dic 2018.pptx
1388 Elizabeth SDI  U123 ago-dic 2018.pptx1388 Elizabeth SDI  U123 ago-dic 2018.pptx
1388 Elizabeth SDI U123 ago-dic 2018.pptx
 
Red Neuronal Artificial
Red Neuronal ArtificialRed Neuronal Artificial
Red Neuronal Artificial
 

Último

La oratoria forense utilizando cada una de las tres reglas especiales y donde...
La oratoria forense utilizando cada una de las tres reglas especiales y donde...La oratoria forense utilizando cada una de las tres reglas especiales y donde...
La oratoria forense utilizando cada una de las tres reglas especiales y donde...
FreddyTuston1
 
SOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLO
SOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLOSOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLO
SOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLO
WilhelmSnchez
 
Presentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdf
Presentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdfPresentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdf
Presentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdf
IvanJimnezGonzlez
 
5 RECETA MEDICA. TIPOS DE RECETAS FARMACIA
5  RECETA MEDICA. TIPOS DE RECETAS FARMACIA5  RECETA MEDICA. TIPOS DE RECETAS FARMACIA
5 RECETA MEDICA. TIPOS DE RECETAS FARMACIA
solizines27
 
Estudio de la respiración celular en diferentes tipos de tejidos .pptx
Estudio de la respiración celular en diferentes tipos de tejidos .pptxEstudio de la respiración celular en diferentes tipos de tejidos .pptx
Estudio de la respiración celular en diferentes tipos de tejidos .pptx
JoseAlbertoArmenta
 
Hayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdf
Hayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdfHayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdf
Hayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdf
frank0071
 
Pelvis y periné anatomía clínica básica
Pelvis y periné anatomía clínica básicaPelvis y periné anatomía clínica básica
Pelvis y periné anatomía clínica básica
manuelminion05
 
10 razones para estudiar filosofia1.pptx
10 razones para estudiar filosofia1.pptx10 razones para estudiar filosofia1.pptx
10 razones para estudiar filosofia1.pptx
2024311042
 
CANCER DE PROSTATA lllllllllllllllll.pptx
CANCER DE PROSTATA lllllllllllllllll.pptxCANCER DE PROSTATA lllllllllllllllll.pptx
CANCER DE PROSTATA lllllllllllllllll.pptx
PerlaOvando
 
5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf
5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf
5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf
EdsonCienfuegos
 
Historia Electromagnetismo .... Física M
Historia Electromagnetismo .... Física MHistoria Electromagnetismo .... Física M
Historia Electromagnetismo .... Física M
RichardVasquez80
 
2.-Tema Genetica y el sistema del ser humano
2.-Tema Genetica y el sistema del ser humano2.-Tema Genetica y el sistema del ser humano
2.-Tema Genetica y el sistema del ser humano
KaterineElizabethCor1
 
Diapositivas sobre Trauma Músculo-Esquelético
Diapositivas sobre Trauma Músculo-EsqueléticoDiapositivas sobre Trauma Músculo-Esquelético
Diapositivas sobre Trauma Músculo-Esquelético
etaguirrees
 
CEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCION
CEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCIONCEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCION
CEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCION
do4alexwell
 
Modonesi, M. (coord.) - La revolución pasiva [2021].pdf
Modonesi, M. (coord.) - La revolución pasiva [2021].pdfModonesi, M. (coord.) - La revolución pasiva [2021].pdf
Modonesi, M. (coord.) - La revolución pasiva [2021].pdf
frank0071
 
Tipos-de-Fracciones-Algebraicas1234.pptx
Tipos-de-Fracciones-Algebraicas1234.pptxTipos-de-Fracciones-Algebraicas1234.pptx
Tipos-de-Fracciones-Algebraicas1234.pptx
JonathanMorales422812
 
Los raizales en colombia, su historia, idioma, religion y otros aspectos . .pptx
Los raizales en colombia, su historia, idioma, religion y otros aspectos . .pptxLos raizales en colombia, su historia, idioma, religion y otros aspectos . .pptx
Los raizales en colombia, su historia, idioma, religion y otros aspectos . .pptx
lady870727
 
Fisiopatología lesiones más frecuente en la columna vertebral.pdf
Fisiopatología lesiones más frecuente en la columna vertebral.pdfFisiopatología lesiones más frecuente en la columna vertebral.pdf
Fisiopatología lesiones más frecuente en la columna vertebral.pdf
KarlaRamos209860
 
Sistema Hemolinfopoyetico, síntomas y signos
Sistema Hemolinfopoyetico, síntomas y signosSistema Hemolinfopoyetico, síntomas y signos
Sistema Hemolinfopoyetico, síntomas y signos
mairamarquina
 
Semiología de Peritonitis - Univ. Wiener
Semiología de Peritonitis - Univ. WienerSemiología de Peritonitis - Univ. Wiener
Semiología de Peritonitis - Univ. Wiener
LuzArianaUlloa
 

Último (20)

La oratoria forense utilizando cada una de las tres reglas especiales y donde...
La oratoria forense utilizando cada una de las tres reglas especiales y donde...La oratoria forense utilizando cada una de las tres reglas especiales y donde...
La oratoria forense utilizando cada una de las tres reglas especiales y donde...
 
SOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLO
SOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLOSOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLO
SOPLOS CARDIACOS - UNIVERSIDAD NACIONAL DE TRUJILLO
 
Presentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdf
Presentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdfPresentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdf
Presentación Tema 7- TRATAMIENTOS DE AGUAS 14ABRIL.pdf
 
5 RECETA MEDICA. TIPOS DE RECETAS FARMACIA
5  RECETA MEDICA. TIPOS DE RECETAS FARMACIA5  RECETA MEDICA. TIPOS DE RECETAS FARMACIA
5 RECETA MEDICA. TIPOS DE RECETAS FARMACIA
 
Estudio de la respiración celular en diferentes tipos de tejidos .pptx
Estudio de la respiración celular en diferentes tipos de tejidos .pptxEstudio de la respiración celular en diferentes tipos de tejidos .pptx
Estudio de la respiración celular en diferentes tipos de tejidos .pptx
 
Hayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdf
Hayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdfHayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdf
Hayek, Friedrich A. - Camino de servidumbre [ocr] [2000].pdf
 
Pelvis y periné anatomía clínica básica
Pelvis y periné anatomía clínica básicaPelvis y periné anatomía clínica básica
Pelvis y periné anatomía clínica básica
 
10 razones para estudiar filosofia1.pptx
10 razones para estudiar filosofia1.pptx10 razones para estudiar filosofia1.pptx
10 razones para estudiar filosofia1.pptx
 
CANCER DE PROSTATA lllllllllllllllll.pptx
CANCER DE PROSTATA lllllllllllllllll.pptxCANCER DE PROSTATA lllllllllllllllll.pptx
CANCER DE PROSTATA lllllllllllllllll.pptx
 
5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf
5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf
5+La+alimentación+de+la+trucha+arcoíris+_versión+final+(1).pdf
 
Historia Electromagnetismo .... Física M
Historia Electromagnetismo .... Física MHistoria Electromagnetismo .... Física M
Historia Electromagnetismo .... Física M
 
2.-Tema Genetica y el sistema del ser humano
2.-Tema Genetica y el sistema del ser humano2.-Tema Genetica y el sistema del ser humano
2.-Tema Genetica y el sistema del ser humano
 
Diapositivas sobre Trauma Músculo-Esquelético
Diapositivas sobre Trauma Músculo-EsqueléticoDiapositivas sobre Trauma Músculo-Esquelético
Diapositivas sobre Trauma Músculo-Esquelético
 
CEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCION
CEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCIONCEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCION
CEFALEAS CLASIFICACIÓN, TRATAMIENTO Y PREVENCION
 
Modonesi, M. (coord.) - La revolución pasiva [2021].pdf
Modonesi, M. (coord.) - La revolución pasiva [2021].pdfModonesi, M. (coord.) - La revolución pasiva [2021].pdf
Modonesi, M. (coord.) - La revolución pasiva [2021].pdf
 
Tipos-de-Fracciones-Algebraicas1234.pptx
Tipos-de-Fracciones-Algebraicas1234.pptxTipos-de-Fracciones-Algebraicas1234.pptx
Tipos-de-Fracciones-Algebraicas1234.pptx
 
Los raizales en colombia, su historia, idioma, religion y otros aspectos . .pptx
Los raizales en colombia, su historia, idioma, religion y otros aspectos . .pptxLos raizales en colombia, su historia, idioma, religion y otros aspectos . .pptx
Los raizales en colombia, su historia, idioma, religion y otros aspectos . .pptx
 
Fisiopatología lesiones más frecuente en la columna vertebral.pdf
Fisiopatología lesiones más frecuente en la columna vertebral.pdfFisiopatología lesiones más frecuente en la columna vertebral.pdf
Fisiopatología lesiones más frecuente en la columna vertebral.pdf
 
Sistema Hemolinfopoyetico, síntomas y signos
Sistema Hemolinfopoyetico, síntomas y signosSistema Hemolinfopoyetico, síntomas y signos
Sistema Hemolinfopoyetico, síntomas y signos
 
Semiología de Peritonitis - Univ. Wiener
Semiología de Peritonitis - Univ. WienerSemiología de Peritonitis - Univ. Wiener
Semiología de Peritonitis - Univ. Wiener
 

Introducción al Deep Learning

  • 1. Deep Learning Javier Esteve Meliá Especialización deeplearning.ai – Andrew Ng
  • 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
  • 7. 7 Artificial Neural Networks Artificial Neural Networks (ANN) Redes Neuronales
  • 8. 8 Artificial Neural Networks • Ampliamente usado durante los 80-90. Fuerte resurgir en la actualidad • Gran herramienta para tratar modelos con un gran número de entradas • Inspirado en la estructura neuronal humana Introducción • Unidad logística 𝑏𝑖𝑎𝑠 𝑢𝑛𝑖𝑡 𝑥0 𝑥1 𝑥2 𝑥3 𝑐𝑢𝑒𝑟𝑝𝑜 𝑛𝑒𝑢𝑟𝑜𝑛𝑎𝑙 ℎ 𝜃 𝑥 = 1 1 + 𝑒−𝜃 𝑇 𝑥 𝐹𝑢𝑛𝑐𝑖ó𝑛 𝑑𝑒 𝑎𝑐𝑡𝑖𝑣𝑎𝑐𝑖ó𝑛 𝑙𝑜𝑔í𝑠𝑡𝑖𝑐𝑎 𝑠𝑖𝑔𝑚𝑜𝑖𝑑𝑒𝑎 𝑔 𝑧 = 1 1 + 𝑒−𝑧 𝑥 = 𝑥0 𝑥1 𝑥2 𝑥3 𝜃 = 𝜃0 𝜃1 𝜃2 𝜃3 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑖𝑛𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒𝑠 𝑃𝑒𝑠𝑜𝑠 𝑜 𝑝𝑎𝑟á𝑚𝑒𝑡𝑟𝑜𝑠
  • 9. 9 Artificial Neural Networks • Una única variable independiente: tamaño Regresión: Predicción de precios de casas 𝑥 = 𝑥1 𝑥2 𝑥3 𝑥4 𝑉𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑖𝑛𝑑𝑒𝑝𝑒𝑛𝑑𝑖𝑒𝑛𝑡𝑒𝑠 𝑝𝑟𝑒𝑐𝑖𝑜 𝑡𝑎𝑚𝑎ñ𝑜 𝑥 𝑝𝑟𝑒𝑐𝑖𝑜 𝑦 𝑡𝑎𝑚𝑎ñ𝑜 • Múltiples variables independientes 𝑥1 𝑥2 𝑥3 𝑥4 𝑡𝑎𝑚𝑎ñ𝑜 𝑛º 𝑑𝑜𝑟𝑚𝑖𝑡𝑜𝑟𝑖𝑜𝑠 𝑐ó𝑑𝑖𝑔𝑜 𝑝𝑜𝑠𝑡𝑎𝑙 𝑛𝑖𝑣𝑒𝑙 𝑎𝑑𝑞𝑢𝑖𝑠𝑖𝑡𝑖𝑣𝑜 𝑦 𝑝𝑟𝑒𝑐𝑖𝑜
  • 10. 10 Artificial Neural Networks • Tipos de datos • Estructurados • No estructurados Aprendizaje supervisado Entrada (𝒙) Salida (𝒚) Aplicación Características de casas Precio Bienes inmuebles Información publicitaria de usuarios ¿Click en anuncio? (0, 1) Marketing online Imagen Objeto (1, … , 1000) Etiquetado de fotos Sonido Transcripción textual Reconocimiento del habla Castellano Francés Traducción automática Imagen, información de radar, etc. Posición de otros vehículos Conducción autónoma Tamaño Nº habitaciones … Precio . . . . . . . . . . . . Edad usuario Id Anuncio … Click . . . . . . . . . . . . . . .
  • 11. 11 Artificial Neural Networks Razones del éxito del DL 𝐴𝑐𝑡𝑢𝑎𝑐𝑖ó𝑛 𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑑𝑎𝑡𝑜𝑠 𝐴𝑙𝑔𝑜𝑟𝑖𝑡𝑚𝑜 𝑑𝑒 𝑎𝑝𝑟𝑒𝑛𝑑𝑖𝑧𝑎𝑗𝑒 𝑡𝑟𝑎𝑑𝑖𝑐𝑖𝑜𝑛𝑎𝑙 𝑅𝑁 𝑝𝑒𝑞𝑢𝑒ñ𝑎 𝑅𝑁 𝑔𝑟𝑎𝑛𝑑𝑒
  • 12. 12 Artificial Neural Networks Clasificación binaria 𝑋 = 255 231 ⋮ 255 134 ⋮ 64 64 64 · 64 · 3 = 12288 𝑛 = 𝑛 𝑥 = 12288 1 𝑝𝑒𝑟𝑟𝑜 ó 0 (𝑛𝑜 𝑝𝑒𝑟𝑟𝑜) • Identificar una imagen como perro o no perro
  • 13. 13 Artificial Neural Networks Notación 𝑥 1 , 𝑦 1 , 𝑥 2 , 𝑦 2 , . . . , 𝑥 𝑚 , 𝑦 𝑚 𝑥, 𝑦 𝑥 𝜖 ℝ 𝑛 𝑥 , 𝑦 𝜖 0, 1• Ejemplo de entrenamiento: • m ejemplos de entrenamiento: 𝑚 = 𝑚 𝑡𝑟𝑎𝑖𝑛 𝑚 𝑡𝑒𝑠𝑡 = 𝑛º 𝑒𝑗𝑒𝑚𝑝𝑙𝑜𝑠 𝑑𝑒 𝑡𝑒𝑠𝑡 𝑋 = 𝑥(1) 𝑥(2) … 𝑥(𝑚) 𝑋 𝜖 ℝ 𝑛 𝑥×𝑚 𝑌 = 𝑦(1) 𝑦(2) … 𝑦(𝑚) 𝑌 𝜖 ℝ1×𝑚 𝑚 𝑛 𝑥
  • 14. 14 Regresión Logística con Redes Neuronales • Algoritmo usado en problemas de clasificación binaria • Dada una entrada 𝑥, se desea una predicción ො𝑦 = 𝑃(𝑦 = 1|𝑥) Regresión Logística • Parámetros: • Salida: 𝑥 𝜖 ℝ 𝑛 𝑥 𝑤 𝜖 ℝ 𝑛 𝑥 , 𝑏 𝜖 ℝ ො𝑦 = 𝜎 𝑤 𝑇 𝑥 + 𝑏 0 ≤ ො𝑦 ≤ 1 𝜎(𝑧) 𝜎 𝑧 = 1 1 + 𝑒−𝑧 𝑆𝑖 𝑧 𝑒𝑠 𝑔𝑟𝑎𝑛𝑑𝑒 ; 𝜎 𝑧 ≃ 1 1 + 0 = 1 𝑆𝑖 𝑧 𝑒𝑠 𝑝𝑒𝑞𝑢𝑒ñ𝑎 ; 𝜎 𝑧 ≃ 1 1 + ∞ ≃ 0 𝑧 1 0,5 𝑧 = 𝑤 𝑇 𝑥 +b
  • 15. 15 Regresión Logística con Redes Neuronales ො𝑦(𝑖) = 𝜎(𝑤 𝑇 𝑥 𝑖 + 𝑏), donde 𝜎 𝑧 𝑖 = 1 1+𝑒−𝑧(𝑖) Función de coste de la Regresión Logística Dado 𝑥 1 , 𝑦 1 , 𝑥 2 , 𝑦 2 , . . . , 𝑥 𝑚 , 𝑦 𝑚 se desea ො𝑦(𝑖) ≃ 𝑦(𝑖) • Función de pérdida (error): ℒ ො𝑦, 𝑦 = 1 2 (ො𝑦 − 𝑦)2 ℒ ො𝑦, 𝑦 = − 𝑦 log ො𝑦 + 1 − 𝑦 log 1 − ො𝑦 • Si 𝑦 = 1: • Si 𝑦 = 0: ℒ ො𝑦, 𝑦 = − log ො𝑦 ℒ ො𝑦, 𝑦 = − log(1 − ො𝑦) • Función de coste: 𝐽 𝑤, 𝑏 = 1 𝑚 ෍ 𝑖=1 𝑚 ℒ ො𝑦(𝑖) , 𝑦(𝑖) = − 1 𝑚 ෍ 𝑖=1 𝑚 𝑦(𝑖) log ො𝑦(𝑖) + 1 − 𝑦(𝑖) log 1 − ො𝑦 𝑖 No usada en regresión logística, muchos mínimos locales Queremos log ො𝑦 grande, por tanto ො𝑦 grande Queremos log(1 − ො𝑦) grande, por tanto ො𝑦 pequeño
  • 16. 16 Regresión Logística con Redes Neuronales Gradiente de Descenso Recordatorio: Objetivo: encontrar 𝑤, 𝑏 que minimicen 𝐽 𝑤, 𝑏 𝐽 𝑤, 𝑏 = 1 𝑚 ෍ 𝑖=1 𝑚 ℒ ො𝑦(𝑖), 𝑦(𝑖) = − 1 𝑚 ෍ 𝑖=1 𝑚 𝑦(𝑖) log ො𝑦(𝑖) − 1 − 𝑦(𝑖) log 1 − ො𝑦 𝑖 ො𝑦 = 𝜎(𝑤 𝑇 𝑥 + 𝑏) , 𝜎 𝑧 = 1 1+𝑒−𝑧 𝑅𝑒𝑝𝑒𝑡𝑖𝑟 { 𝑤 ≔ 𝑤 − 𝛼 𝑑𝐽(𝑤) 𝑑𝑤 } 𝑤 ≔ 𝑤 − 𝛼 𝑑𝐽(𝑤, 𝑏) 𝑑𝑤 𝑏 ≔ 𝑏 − 𝛼 𝑑𝐽(𝑤, 𝑏) 𝑑𝑏 Simplificación sin 𝑏 𝐽 𝑤 𝑤 Ratio de aprendizaje 𝑑𝑏𝑑𝑤
  • 17. 17 Regresión Logística con Redes Neuronales Derivando la Regresión Logística Recordatorio: 𝑧 = 𝑤 𝑇 𝑥 + 𝑏 , ො𝑦 = 𝑎 = 𝜎(𝑧) 𝑤1 ≔ 𝑤1 − 𝛼 𝑑𝑤1 𝑏 ≔ 𝑏 − 𝛼 𝑑𝑏 𝑥1 𝑤1 𝑥2 𝑤2 𝑏 𝑧 = 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑏 𝑎 = 𝜎 𝑧 ℒ(a, y) "da" = 𝜕ℒ(a, y) 𝜕𝑎 = − 𝑦 𝑎 + 1 − 𝑦 1 − 𝑎 "dz" = 𝜕ℒ 𝜕𝑧 = 𝜕ℒ 𝜕𝑧 𝑑𝑎 𝑑𝑧 = − 𝑦 𝑎 + 1 − 𝑦 1 − 𝑎 · 𝑎 1 − 𝑎 = 𝑎 − 𝑦 𝑤2 ≔ 𝑤2 − 𝛼 𝑑𝑤2 𝜕ℒ 𝜕𝑤1 = 𝑑𝑤1 = 𝑥1 𝑑𝑧 𝑑𝑤2 = 𝑥2 𝑑𝑧 𝑑𝑏 = 𝑑𝑧 Objetivo: ver cómo cambiar 𝑤1, 𝑤2 y 𝑏 para minimizar ℒ ℒ 𝑎, 𝑦 = −(𝑦 log 𝑎 + (1 − 𝑦) log 1 − 𝑎
  • 18. 18 Regresión Logística con Redes Neuronales Gradiente de descenso en m ejemplos 𝐽 𝑤, 𝑏 = 1 𝑚 ෍ 𝑖=1 𝑚 ℒ 𝑎(𝑖) , 𝑦(𝑖) 𝑎(𝑖) = ො𝑦(𝑖) = 𝜎 𝑧 𝑖 = 𝜎(𝑤 𝑇 𝑥 𝑖 + 𝑏) 𝜕 𝜕𝑤1 𝐽 𝑤, 𝑏 = 1 𝑚 ෍ 𝑖=1 𝑚 𝜕 𝜕𝑤1 ℒ 𝑎(𝑖) , 𝑦(𝑖) 𝐽 = 0; 𝑑𝑤1 = 0; 𝑑𝑤2 = 0; 𝑑𝑏 = 0 𝑓𝑜𝑟 𝑖 = 1 𝑡𝑜 𝑚: 𝑧 𝑖 = 𝑤 𝑇 𝑥 𝑖 + 𝑏 𝑎(𝑖) = 𝜎 𝑧 𝑖 𝐽 += − 𝑦(𝑖) log 𝑎(𝑖) + (1 − ො𝑦(𝑖) ) log(1 − 𝑎 𝑖 ) 𝑑𝑧 𝑖 = 𝑎 𝑖 − 𝑦(𝑖) 𝑑𝑤1 += 𝑥1 (𝑖) 𝑑𝑧(𝑖) 𝑑𝑤2 += 𝑥2 (𝑖) 𝑑𝑧(𝑖) 𝑑𝑏 += 𝑑𝑧(𝑖) Implementación: 𝐽 = ൗ𝐽 𝑚 ; 𝑑𝑤1 = ൗ𝑑𝑤1 𝑚 ; 𝑑𝑤2 = ൗ𝑑𝑤2 𝑚 ; 𝑑𝑏 = ൗ𝑑𝑏 𝑚 Bucle n=2 Todos estos pasos corresponden a una actualización del gradiente de descenso: 𝑤1 ≔ 𝑤1 − 𝛼 𝑑𝑤1 𝑤2 ≔ 𝑤2 − 𝛼 𝑑𝑤2 𝑏 ≔ 𝑏 − 𝛼 𝑑𝑏 Hay presentes dos bucles en esta implementación. La vectorización es necesaria para una mayor eficiencia en el aprendizaje
  • 19. 19 Artificial Neural Networks Redes neuronales y grafos computacionales 𝑥1 𝑥2 𝑥3 𝑧 = 𝑤 𝑇 𝑥 + 𝑏 𝑎 = 𝜎 𝑧 ℒ(a, y) 𝑥 𝑤 𝑏 𝑧[1] = 𝑊[1] 𝑥 + 𝑏[1] 𝑎[1] = 𝜎 𝑧[1] ℒ(𝑎[2] , y)𝑊[1] 𝑏[1] 𝑧[2] = 𝑊[2] 𝑎[1] + 𝑏 𝑎[2] = 𝜎 𝑧[2] 𝑥 𝑥1 𝑥2 𝑥3 𝑊[1] 𝑏[1] [1] [2] ො𝑦 = 𝑎 ො𝑦 = 𝑎[2]
  • 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]
  • 21. 21 Artificial Neural Networks Calculando la salida de una red neuronal • Funciones de activación: Forward Propagation 𝑧1 [1] = 𝑤1 [1] 𝑇 𝑥 + 𝑏1 [1] , 𝑤 𝑇 𝑥 + 𝑏 𝜎(𝑧) 𝑥1 𝑥2 𝑥3 𝑎1 [1] = 𝜎(𝑧1 [1] ) 𝑧2 [1] = 𝑤2 [1] 𝑇 𝑥 + 𝑏2 [1] , 𝑧3 [1] = 𝑤3 [1] 𝑇 𝑥 + 𝑏3 [1] , 𝑧4 [1] = 𝑤4 [1] 𝑇 𝑥 + 𝑏4 [1] , 𝑎2 [1] = 𝜎(𝑧2 [1] ) 𝑎3 [1] = 𝜎(𝑧3 [1] ) 𝑎4 [1] = 𝜎(𝑧4 [1] ) 𝑧[1] = 𝑤1 [1] 𝑇 𝑤2 [1] 𝑇 𝑤3 [1] 𝑇 𝑤4 [1] 𝑇 𝑥1 𝑥2 𝑥3 + 𝑏1 [1] 𝑏2 [1] 𝑏3 [1] 𝑏4 [1] = 𝑧1 [1] 𝑧2 [1] 𝑧3 [1] 𝑧4 [1] , 𝑎[1] = 𝑎1 [1] 𝑎2 [1] 𝑎3 [1] 𝑎4 [1] 𝑎 = ො𝑦 𝑥1 𝑥2 𝑥3 𝑎1 [1] 𝑎2 [1] 𝑎3 [1] 𝑎4 [1] ො𝑦 = 𝑎[2]𝑎[2]
  • 22. 22 Artificial Neural Networks Funciones de activación • Sigmoidea 𝑧 𝑎 = 𝑔 𝑧 = 1 1 + 𝑒−𝑧 𝑔′ (𝑧) = 𝑎 · (1 − 𝑎) 𝑎 = 𝑔 𝑧 = tanh(𝑧) = 𝑒 𝑧 − 𝑒−𝑧 𝑒 𝑧 + 𝑒−𝑧 𝑔′ 𝑧 = 1 − 𝑎2 𝑎 • Tangencial hiperbólica Usada en la capa de salida de problemas de clasificación binaria 𝑎 𝑧
  • 23. 23 Artificial Neural Networks Funciones de activación • Rectified Linear Unit (ReLU) 𝑧 𝑎 = max(0, 𝑧) 𝑔′(𝑧) = ቊ 0 𝑠𝑖 𝑧 < 0 1 𝑠𝑖 𝑧 ≥ 0 𝑎 = max(0.001𝑧, 𝑧) 𝑎 • Leaky ReLU La derivada en valores negativos de z es cero 𝑎 𝑧 La derivada en valores negativos de z ya no es exactamente cero 𝑔′ (𝑧) = ቊ 0.01 𝑠𝑖 𝑧 < 0 1 𝑠𝑖 𝑧 > 0
  • 24. 24 Artificial Neural Networks Backpropagation 𝑧 = 𝑤 𝑇 𝑥 + 𝑏 𝑎 = 𝜎 𝑧 ℒ(a, y) 𝑥 𝑤 𝑏 𝑧[1] = 𝑊[1] 𝑥 + 𝑏[1] 𝑎[1] = 𝜎 𝑧[1] ℒ(𝑎[2] , y)𝑊[1] 𝑏[1] 𝑧[2] = 𝑊[2] 𝑎[1] + 𝑏 𝑎[2] = 𝜎 𝑧[2] 𝑥 𝑊[1] 𝑏[1] 𝑑𝑎 = 𝑑 𝑑𝑎 ℒ 𝑎, 𝑦 = = 𝑑 𝑑𝑎 −𝑦 log 𝑎 − 1 − 𝑦 log 1 − 𝑎 = = − 𝑦 𝑎 + 1−𝑦 1−𝑎 𝑑𝑧 = 𝜕ℒ 𝜕𝑧 = 𝜕ℒ 𝜕𝑧 𝑑𝑎 𝑑𝑧 = = − 𝑦 𝑎 + 1 − 𝑦 1 − 𝑎 · 𝑎 1 − 𝑎 = 𝑎 − 𝑦𝑑𝑤 = 𝑑𝑧 · 𝑥 𝑑𝑧[2] = 𝑎[2] − 𝑦 𝑑𝑊[2] = 𝑑𝑧[2] 𝑎[1] 𝑇 𝑑𝑏[2] = 𝑑𝑧[2] 𝑑𝑏 = 𝑑𝑧 • Regresión Logística • Gradientes en redes neuronales 𝑑𝑎[2]𝑑𝑧[1] = 𝑊[2] 𝑇 𝑑𝑧[2] ∗ 𝑔[1]′ 𝑧[1] 𝑑𝑏[1] = 𝑑𝑧[1] 𝑑𝑤[1] = 𝑑𝑧[1] 𝑥 𝑇 𝑛[1], 1 𝑛[1] , 𝑛[2] 𝑛[2] , 1 𝑛[1] , 1 𝑑𝑎[1]
  • 25. 25 Artificial Neural Networks Resumen Gradiente de descenso 𝐽 . . . = 1 𝑚 ෍ 𝑖=1 𝑚 ℒ ො𝑦, 𝑦 𝑑𝑧[2] = 𝑎[2] − 𝑦 𝑑𝑤[2] = 𝑑𝑧[2] 𝑎[1] 𝑇 𝑑𝑏[2] = 𝑑𝑧[2] 𝑑𝑧[1] = 𝑊[2] 𝑇 𝑑𝑧[2] ∗ 𝑔[1]′ 𝑧[1] 𝑑𝑏[1] = 𝑑𝑧[1] 𝑑𝑤[1] = 𝑑𝑧[1] 𝑥 𝑇 𝑑𝑍[2] = 𝐴[2] − 𝑌 𝑑𝑊[2] = 1 𝑚 𝑑𝑍[2] 𝐴[1] 𝑇 𝑑𝑏[2] = 1 𝑚 𝑛𝑝. 𝑠𝑢𝑚 𝑑𝑍[2] , 𝑎𝑥𝑖𝑠 = 1, 𝑘𝑒𝑒𝑝𝑑𝑖𝑚𝑠 = 𝑇𝑟𝑢𝑒 𝑑𝑍[1] = 𝑊[2] 𝑇 𝑑𝑍[2] ∗ 𝑔[1]′ 𝑍[1] 𝑑𝑊[1] = 1 𝑚 𝑑𝑍[1] 𝐴 𝑇 𝑑𝑏[1] = 1 𝑚 𝑛𝑝. 𝑠𝑢𝑚 𝑑𝑍[1] , 𝑎𝑥𝑖𝑠 = 1, 𝑘𝑒𝑒𝑝𝑑𝑖𝑚𝑠 = 𝑇𝑟𝑢𝑒 𝑛[1], 𝑚𝑛[1], 𝑚 𝑛[1], 𝑚 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜 𝑎 𝑒𝑙𝑒𝑚𝑒𝑛𝑡𝑜 • Vectorización 𝑛[1], 𝑚
  • 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
  • 27. 27 Deep Neural Networks Redes neuronales profundas (DNN)
  • 28. 28 Deep Neural Networks Representación y nomenclatura 𝐿 = 4 𝑁º 𝑑𝑒 capas 𝑛[𝑙] = 𝑁º 𝑑𝑒 unidades en la capa 𝑙 𝑎[𝑙] = 𝑔 𝑙 𝑧 𝑙 Activaciones en la capa 𝑙 𝑤[𝑙] = 𝑃𝑒𝑠𝑜𝑠 𝑝𝑎𝑟𝑎 𝑧 𝑙 𝑏[𝑙] = 𝐵𝑖𝑎𝑠 𝑝𝑎𝑟𝑎 𝑧 𝑙 𝑛[0] = 𝑛 𝑥 = 3, 𝑛[1] = 5, 𝑛[2] = 5, 𝑛[3] = 3, 𝑛[4] = 𝑛[𝐿] = 1 𝑥 = 𝑎[0] ො𝑦 = 𝑎[𝐿] 𝑥1 𝑥2 𝑥3 ො𝑦 𝑤[𝑙] : 𝑛[𝑙] , 𝑛[𝑙−1] 𝑏[𝑙] : 𝑛[𝑙] , 1 𝑑𝑤[𝑙] : 𝑛[𝑙] , 𝑛[𝑙−1] 𝑑𝑏[𝑙] : 𝑛[𝑙] , 1 Análisis dimensional 1 2 3 4
  • 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] = 𝑊[𝑙] 𝑇 · 𝑑𝑍[𝑙]
  • 31. 31 Deep Neural Networks Funciones forward y backward ො𝑦 𝑤[1] , 𝑏[1] 𝑤[2] , 𝑏[2] 𝑤[3] , 𝑏[3] 𝑤[𝐿] , 𝑏[𝐿] 𝑎[0] 𝑥 𝑑𝑧[1] 𝑤[1] , 𝑏[1] 𝑤[2] , 𝑏[2] 𝑤[3] , 𝑏[3] 𝑤[𝐿] , 𝑏[𝐿] 𝑑𝑧[2] 𝑑𝑧[3] 𝑑𝑧[𝐿] 𝑎[1] 𝑎[2] 𝑎[3] 𝑎[𝐿−1] 𝑎[𝐿] 𝑑𝑎[𝐿] 𝑑𝑤[1] 𝑑𝑏[1] 𝑑𝑤[2] 𝑑𝑏[2] 𝑑𝑤[3] 𝑑𝑏[3] 𝑑𝑤[𝐿] 𝑑𝑏[𝐿] 𝑑𝑎[1] 𝑑𝑎[2] 𝑑𝑎[3] 𝑑𝑎[𝐿−1] 𝑑𝑎[0] Gradiente de descenso 𝑤[𝑙] = 𝑤[𝑙] − 𝛼 𝑑𝑤[𝑙] 𝑏[𝑙] = 𝑏[𝑙] − 𝛼 𝑑𝑏[𝑙] . . . . . . 𝑐𝑎𝑐ℎ𝑒 𝑍[1] 𝑍[2] 𝑍[3] 𝑍[𝐿]
  • 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
  • 33. 33 Aspectos prácticos del Deep Learning Aspectos prácticos del Deep Learning
  • 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
  • 46. 46 Métodos de optimización Algoritmo de optimización Adam (Adaptive momentum estimation) Basado en la combinación del momentum y RMSprop En la iteración t 𝑣 𝑑𝑤 = 0 , 𝑠 𝑑𝑤 = 0 , 𝑣 𝑑𝑏 = 0 , 𝑠 𝑑𝑏 = 0 𝑣 𝑑𝑤 = 𝛽1 𝑣 𝑑𝑤 + 1 − 𝛽1 𝑑𝑤 , 𝑣 𝑑𝑏 = 𝛽1 𝑣 𝑑𝑏 + 1 − 𝛽1 𝑑𝑏 𝑠 𝑑𝑤 = 𝛽2 𝑠 𝑑𝑤 + 1 − 𝛽2 𝑑𝑤2 , 𝑠 𝑑𝑏 = 𝛽2 𝑠 𝑑𝑏 + 1 − 𝛽2 𝑑𝑏2 𝑣 𝑑𝑤 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 = ൘ 𝑣 𝑑𝑤 1 + 𝛽1 𝑡 , 𝑣 𝑑𝑏 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 = ൘ 𝑣 𝑑𝑏 1 + 𝛽1 𝑡 𝑠 𝑑𝑤 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 = ൘ 𝑠 𝑑𝑤 1 + 𝛽2 𝑡 , 𝑠 𝑑𝑏 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 = ൘ 𝑠 𝑑𝑏 1 + 𝛽2 𝑡 𝑤 ≔ 𝑤 − 𝛼 𝑣 𝑑𝑤 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 𝑠 𝑑𝑤 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 + 𝜀 , 𝑏 ≔ 𝑏 − 𝛼 𝑣 𝑑𝑏 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 𝑠 𝑑𝑏 𝑐𝑜𝑟𝑟𝑟𝑒𝑔𝑖𝑑𝑜 + 𝜀 Elección de hiperparámetros: 𝛼: 𝑛𝑒𝑐𝑒𝑠𝑖𝑡𝑎 𝑠𝑒𝑟 𝑎𝑓𝑖𝑛𝑎𝑑𝑜 𝛽1: 0,9 (𝑑𝑤) 𝛽2: 0,999 (𝑑𝑤2 ) 𝜀: 10−8 “momentum” 𝛽1 “RMSprop” 𝛽2
  • 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 𝑧(𝑖)
  • 50. 50 Métodos de optimización Añadir Batch Norm a una Red Neuronal 𝑥1 𝑥2 𝑥3 ො𝑦 𝑥 𝑤[1], 𝑏[1] 𝑧[1] 𝛽[1], 𝛾[1] ǁ𝑧[1] → 𝑎[1] = 𝑔 1 ǁ𝑧 1 𝑤[2], 𝑏[2] 𝑧[2] 𝛽[2], 𝛾[2] ǁ𝑧[2] → 𝑎[2] → . . . Parámetros: 𝑧1 [1] 𝑎1 [1] 𝑧2 [1] 𝑎2 [1] 𝑧1 [2] 𝑎1 [2] 𝑧2 [2] 𝑎2 [2] 𝑤[1] , 𝑏[1] , 𝑤[2] , 𝑏[2] , . . . , 𝑤[𝐿] , 𝑏[𝐿] 𝛽[1] , 𝛾[1] , 𝛽[2] , 𝛾[2] , . . . , 𝛽[𝐿] , 𝛾[𝐿] 𝑑𝛽[𝑙] 𝛽[𝑙] = 𝛽[𝑙] − 𝛼𝑑𝛽[𝑙] Backpropagation: BN BN
  • 51. 51 Métodos de optimización Añadir Batch Norm a una Red Neuronal (Mini-Batch) 𝑋{1} 𝑤[1], 𝑏[1] 𝑧[1] 𝛽[1], 𝛾[1] ǁ𝑧[1] → 𝑎[1] = 𝑔 1 ǁ𝑧 1 𝑤[2], 𝑏[2] 𝑧[2] 𝛽[2], 𝛾[2] ǁ𝑧[2] → . . . Parámetros: 𝑤[𝑙] , 𝑏[𝑙] , 𝛽[𝑙] , 𝛾[𝑙] Implementación Gradient Descent: 𝑓𝑜𝑟 𝑡 = 1, . . . , 𝑛𝑢𝑚𝑀𝑖𝑛𝑖𝐵𝑎𝑡𝑐ℎ𝑒𝑠: Calcular forward propagation para 𝑋{𝑡} En cada capa oculta, usar BN para reemplazar 𝑧[𝑙] por ǁ𝑧[𝑙] Usar back propagation para calcular 𝑑𝑤[𝑙] , 𝑑𝑏[𝑙] , 𝑑𝛽[𝑙] , 𝑑𝛾[𝑙] Actualizar parámetros: 𝛽[𝑙] = 𝛽[𝑙] − 𝛼𝑑𝛽[𝑙] 𝑤[𝑙] = 𝑤[𝑙] − 𝛼𝑑𝑤[𝑙] 𝛾[𝑙] = 𝛾[𝑙] − 𝛼𝑑𝛾[𝑙] 𝑋{2} 𝑤[1], 𝑏[1] 𝑧[1] 𝛽[1], 𝛾[1] ǁ𝑧[1] → . . . BN BN ⋮
  • 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
  • 53. 53 Estrategias para ML Estrategias para Machine Learning
  • 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
  • 65. 65 Convolutional Neural Networks Redes Neuronales Convolucionales
  • 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
  • 67. 67 Convolutional Neural Networks La operación convolucional A medida que se trabaja con imágenes de mayor resolución se hace inviable tratar cada píxel como variable de entrada. Se requiere implementar la operación convolucional • Detección de ejes verticales 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 0 -1 1 0 -1 1 0 -1 -5 -4 0 8 -10 -2 2 3 0 -2 -4 -7 -3 -2 -3 -16 ∗ 3 · 1 + 1 · 1 + 2 · 1 + 0 · 0 + 5 · 0 + 7 · 0 + 1 · −1 + 8 · −1 + 2 · (−1) = 6𝑥6 3𝑥3 filtro o kernel 4𝑥4 convolución 1 0 -1 2 0 -2 1 0 -1 3 0 -3 10 0 -10 3 0 -3 1 1 1 0 0 0 -1 -1 -1 1 0 -1 1 0 -1 1 0 -1 • Ejemplos de filtros Vertical Filtro Sobel Filtro Scharr Horizontal
  • 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
  • 72. 72 Convolutional Neural Networks Capa convolucional • Notación ∗ ∗ ReLU + 𝑏1 ReLU + 𝑏1 𝑓[𝑙] = 𝑡𝑎𝑚𝑎ñ𝑜 𝑑𝑒𝑙 𝑓𝑖𝑙𝑡𝑟𝑜 𝑝[𝑙] = 𝑝𝑎𝑑𝑑𝑖𝑛𝑔 (𝑟𝑒𝑙𝑙𝑒𝑛𝑜) 𝑠[𝑙] = 𝑠𝑡𝑟𝑖𝑑𝑒(𝑝𝑎𝑠𝑜) 𝑛 𝑐 [𝑙] = 𝑛º 𝑑𝑒 𝑓𝑖𝑙𝑡𝑟𝑜𝑠 Dimensiones de cada filtro: 𝑓[𝑙] 𝑥 𝑓[𝑙] 𝑥 𝑛 𝑐 [𝑙−1] Activaciones: 𝑎[𝑙] → 𝑛 𝐻 [𝑙] 𝑥 𝑛 𝑊 [𝑙] 𝑥 𝑛 𝑐 [𝑙] 𝐴[𝑙] → 𝑚 𝑥 𝑛 𝐻 [𝑙] 𝑥 𝑛 𝑊 [𝑙] 𝑥 𝑛 𝑐 [𝑙] Pesos: 𝑓[𝑙] 𝑥 𝑓[𝑙] 𝑥 𝑛 𝑐 [𝑙−1] 𝑥 𝑛 𝑐 [𝑙] Bias: 𝑛 𝑐 [𝑙] - 1, 1, 1, 𝑛 𝑐 [𝑙] Entrada: 𝑛 𝐻 [𝑙−1] 𝑥 𝑛 𝑊 [𝑙−1] 𝑥 𝑛 𝑐 [𝑙−1] Salida: 𝑛 𝐻 [𝑙] 𝑥 𝑛 𝑊 [𝑙] 𝑥 𝑛 𝑐 [𝑙] 𝑛 ൗ𝐻 𝑊 [𝑙] = 𝑛 ൗ𝐻 𝑊 [𝑙−1] +2𝑝[𝑙] − 𝑓[𝑙] 𝑠[𝑙] + 1 𝑎[0] 𝑤[1] 𝑧[1] 𝑎[1] 𝑧[𝑙] = 𝑤[𝑙] 𝑎[𝑙−1] + 𝑏[𝑙] 𝑎[𝑙] = 𝑔 𝑧[𝑙]
  • 73. 73 Convolutional Neural Networks Ejemplo de red convolucional 39𝑥39𝑥3 37𝑥37𝑥10 𝑛 𝐻 [0] = 𝑛 𝐻 [0] = 39 𝑛 𝑐 [0] = 3 𝑓[1] = 3 𝑠[1] = 1 𝑝[1] = 0 10 𝑓𝑖𝑙𝑡𝑟𝑜𝑠 𝑓[2] = 5 𝑠[2] = 2 𝑝[2] = 0 20 𝑓𝑖𝑙𝑡𝑟𝑜𝑠 17𝑥17𝑥20 𝑛 𝑐 [2] = 20 𝑛 𝐻 [1] = 𝑛 𝐻 [1] = 37 𝑛 𝑐 [0] = 3 7𝑥7𝑥40 1960 𝑛 𝐻 [2] = 𝑛 𝐻 [2] = 17 𝑓[3] = 5 𝑠[3] = 2 𝑝[3] = 0 40 𝑓𝑖𝑙𝑡𝑟𝑜𝑠 𝑛 + 2𝑝 − 𝑓 𝑠 + 1 = 39 + 0 − 3 1 + 1 = 37 Tipos de capa en una red convolucional • Convolution (CONV) • Pooling (POOL) • Fully Connected (FC) Flatten ⋮ ො𝑦 Regresión logística / softmax
  • 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 • . . .
  • 82. 82 Convolutional Neural Networks: Detección de objetos Detección de objetos ⋮ 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 (4) 𝑏 𝑥, 𝑏 𝑦, 𝑏ℎ, 𝑏 𝑤 𝑏𝑜𝑢𝑛𝑑𝑖𝑛𝑔 𝑏𝑜𝑥 1- peatón 2- coche 3- moto 4- background (nada) . . . 𝑦 = 𝑝𝑐 𝑏 𝑥 𝑏 𝑦 𝑏ℎ 𝑏 𝑤 𝑐1 𝑐2 𝑐3 1 𝑏 𝑥 𝑏 𝑦 𝑏ℎ 𝑏 𝑤 0 1 0 0 ? ? ? ? ? ? ? ℒ ො𝑦, 𝑦 = ൝ ො𝑦1 − 𝑦1 2 + ො𝑦2 − 𝑦2 2 +. . . + ො𝑦8 − 𝑦8 2 𝑠𝑖 𝑦1 = 1 ො𝑦1 − 𝑦1 2 𝑠𝑖 𝑦1 = 0 • Función de coste Es posible utilizar otras funciones de coste, como log likelihood para 𝑐1, 𝑐2, 𝑐3 o regresión logística para 𝑝𝑐 𝑏 𝑥, 𝑏 𝑦 𝑏 𝑤 𝑏ℎ 0, 0 1, 1 𝐶𝑜𝑛𝑣𝑁𝑒𝑡 ¿Hay algún objeto?
  • 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
  • 93. 93 Recurrent Neural Networks Notación Ejemplo: Name Entity Recognition (NER): Identificar nombres propios de una frase Cuando Gregorio Samsa se despertó una mañana 𝑥<1> 𝑥<2> 𝑥<3> 𝑥<4> 𝑥<5> 𝑥<6> 𝑥<7> 0 1 1 0 0 0 0 𝑦<1> 𝑦<2> 𝑦<3> 𝑦<4> 𝑦<5> 𝑦<6> 𝑦<7> 𝑥: Representación de palabras: One Hot Encoding vocabulario 𝑎 𝑎𝑎𝑟𝑜𝑛 ⋮ 𝑐𝑢𝑎𝑛𝑑𝑜 ⋮ 𝐺𝑟𝑒𝑔𝑜𝑟𝑖𝑜 ⋮ 𝑆𝑎𝑚𝑠𝑎 ⋮ 𝑧𝑢𝑙𝑢 1 2 ⋮ 3687 ⋮ 4502 ⋮ 7812 ⋮ 1000 𝑥<1> = 0 0 ⋮ 1 ⋮ 0 ⋮ 0 ⋮ 0 𝑥<2> = 0 0 ⋮ 0 ⋮ 1 ⋮ 0 ⋮ 0 𝑥<3> = 0 0 ⋮ 0 ⋮ 0 ⋮ 1 ⋮ 0 3687 4502 7812 𝑦: 𝑥 𝑖 <𝑡> 𝑖: 𝑒𝑗𝑒𝑚𝑝𝑙𝑜 𝑑𝑒 𝑒𝑛𝑡𝑟𝑒𝑛𝑎𝑚𝑖𝑒𝑛𝑡𝑜 𝑡: 𝑝𝑎𝑙𝑎𝑏𝑟𝑎 𝑒𝑛 𝑒𝑙 𝑒𝑗𝑒𝑚𝑝𝑙𝑜 𝑇𝑥 = 9 𝑇𝑦 = 9 . . .
  • 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> ⋮ ⋮ 𝑦<𝑇𝑦>
  • 95. 95 Recurrent Neural Networks Red Neuronal Recurrente Problema: Una predicción es sensible sólo a los estado anteriores, no a los posteriores • Ejemplo: 𝐿𝑎 𝑣𝑒𝑙𝑎 𝑑𝑒𝑙 𝑏𝑎𝑟𝑐𝑜 𝑠𝑒 ℎ𝑎 𝑟𝑜𝑡𝑜 𝐿𝑎 𝑣𝑒𝑙𝑎 𝑠𝑒 ℎ𝑎 𝑎𝑝𝑎𝑔𝑎𝑑𝑜 Forward propagation 𝑥<1> 𝑥<2> 𝑥<3> 𝑥<𝑇𝑥> ො𝑦<1> ො𝑦<2> ො𝑦<3> ො𝑦<𝑇𝑦> 𝑎<0> 𝑎<1> 𝑎<2> 𝑎<3> 𝑎<𝑇𝑥−1> 𝑤 𝑎𝑎 𝑤 𝑎𝑎 𝑤 𝑎𝑎 𝑤 𝑎𝑎 𝑤 𝑎𝑎 𝑤 𝑎𝑥 𝑤 𝑎𝑥 𝑤 𝑎𝑥 𝑤 𝑎𝑥 𝑤 𝑦𝑎 𝑤 𝑦𝑎 𝑤 𝑦𝑎 𝑤 𝑦𝑎 𝑥<𝑡> ො𝑦<𝑡> . . . 𝑎<0> = 0 𝑎<1> = 𝑔1 𝑤 𝑎𝑎 𝑎<0> + 𝑤 𝑎𝑥 𝑥<1> + 𝑏 𝑎 ො𝑦<1> = 𝑔2 𝑤 𝑦𝑎 𝑎<1> + 𝑏 𝑦 𝒂<𝒕> = 𝒈 𝟏 𝒘 𝒂𝒂 𝒂<𝒕−𝟏> + 𝒘 𝒂𝒙 𝒙<𝒕> + 𝒃 𝒂 ෝ𝒚<𝒕> = 𝒈 𝟐 𝒘 𝒚𝒂 𝒂<𝒕> + 𝒃 𝒚 𝑤 𝑎𝑥 𝑤 𝑎𝑎 𝑤 𝑦𝑎 𝑡𝑎𝑛ℎ/𝑅𝑒𝐿𝑈 𝑠𝑖𝑔𝑚𝑜𝑖𝑑𝑒𝑎 𝑇𝑥 = 𝑇𝑦 vector de ceros 𝒂<𝒕> = 𝒈 𝟏 𝒘 𝒂 𝒂<𝒕−𝟏> , 𝒙<𝒕> + 𝒃 𝒂 ෝ𝒚<𝒕> = 𝒈 𝟐 𝒘 𝒚 𝒂<𝒕> + 𝒃 𝒚 Notación simplificada
  • 96. 96 Recurrent Neural Networks Backpropagation sobre el tiempo 𝑥<1> 𝑎<0> 𝑎<1> 𝑥<2> 𝑎<0> 𝑥<3> 𝑎<0> 𝑥<𝑇𝑥> 𝑎<0> ො𝑦<1> ℒ<1> ො𝑦<1> ℒ<1> ො𝑦<1> ℒ<1> ො𝑦<1> ℒ<1> ℒΣ 𝑊𝑎, 𝑏 𝑎 𝑊𝑦, 𝑏 𝑦 . . . ℒ <𝑡> ො𝑦<𝑡> , 𝑦<𝑡> = −𝑦<𝑡> log ො𝑦<𝑡> − 1 − 𝑦<𝑡> log 1 − ො𝑦<𝑡> ℒ ො𝑦<𝑡> , 𝑦<𝑡> = ෍ 𝑡=1 𝑇𝑦 ℒ <𝑡> ො𝑦<𝑡> , 𝑦<𝑡>
  • 97. 97 Recurrent Neural Networks Tipos de RNN’s Many-to-many 𝑥<1> 𝑥<2> 𝑥<𝑇𝑥> ො𝑦<1> ො𝑦<2> ො𝑦<𝑇𝑦> 𝑎<0> . . . 𝑥<1> 𝑥<2> 𝑥<𝑇𝑥> ො𝑦 . . . 𝑥 ො𝑦 𝑥<1> ො𝑦<1> ො𝑦<2> ො𝑦<𝑇𝑦> 𝑎<0> . . . 𝑥<1> 𝑥<𝑇𝑥> 𝑎<0> . . . ො𝑦<1> ො𝑦<𝑇𝑦> . . . Many-to-one One-to-one One-to-many Many-to-many 𝐺𝑒𝑛𝑒𝑟𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑚ú𝑠𝑖𝑐𝑎 𝑇𝑟𝑎𝑑𝑢𝑐𝑐𝑖ó𝑛 𝑎𝑢𝑡𝑜𝑚á𝑡𝑖𝑐𝑎 𝐶𝑙𝑎𝑠𝑖𝑓𝑖𝑐𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑠𝑒𝑛𝑡𝑖𝑚𝑖𝑒𝑛𝑡𝑜𝑠
  • 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
  • 102. 102 Natural Language Processing Procesamiento Natural del Lenguaje (NLP)
  • 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