Módulo 3
Aprendizaje Automático
1
Módulo 3
Aprendizaje Automático
Semana 10 – Repaso
2
Contenidos del módulo
3
Repaso redes neurales
Capas visibles: input, output
Input:
● estas son las variables (features) de los datos, que vamos a
usar para aprender y hacer predicciones.
● Una neurona input por feature
○ Para datos tabulares, estas serían las columnas
○ Para imágenes, estas son las dimensiones
■ Ej 28*28 = 784 (MNIST)
■ Ej 224*224*3 = 150,528(ImageNet)
4
Repaso redes neurales
Capas visibles: input, output
Output:
● estas son las predicciones que queremos hacer
○ Para regresión, puede ser un solo valor
■ Ej Valor de la casa (California
housing)
○ Para regresión multivariada, una neurona por valor
■ Ej predecir cuadro delimitador (alto,
ancho, posicion x, posicion y)
● Una neurona por output
5
Redes neurales: keras
Acá es donde se elige:
Se crean en forma secuencial agregando capas:
● Número de neuronas
[Link]() ● Tipos de activaciones
○ Ej ReLU, SoftMax
● Input – [Link]() ● Tipos de capas
○ Convolutional, Pooling
● Hidden – [Link]()
Acá es donde se elige:
● Output – [Link]()
● Optimizador
Se compila el modelo final antes de entrenar: ○ Ej SGD - Stochastic Gradient Descent
● Función de Pérdida
[Link]() ○ Ej Cross Entropy
Se entrena el modelo: Acá es donde se elige:
model.fit() ● Tamaño de batch
● Epocas
6
Sobre activaciones
El propósito principal de las funciones de activación es el
de introducir no-linealidad en el output
Activation Functions in Neural Networks [12 Types & Use Cases]
[Link]
7
Backpropagation
Es el algoritmo que se encarga de
calcular el descenso del gradiente para
disminuir la pérdida (loss).
Recorre la red hacia atrás, para averiguar ArgMax
cuales son los nodos (neuronas)
responsables de las pérdidas y sus
magnitudes.
Durante la propagación hacia atrás, se
Prediction
actualizan los pesos y los sesgos
(weights & biases) de manera de
minimizar la pérdida, dándole menor What is backpropagation? (3Blue1Brown)
peso a los nodos que tienen mayor error. [Link]
[Link]
En español: [Link]
8
Backpropagation
Como retocamos los pesos y bias?
Comparamos el vector target (y) vs
predicción (ŷ)
Buscamos minimizar alguna
función de pérdida (loss)
Loss
What is backpropagation? (3Blue1Brown)
[Link]
[Link]
En español: [Link]
9
from tensorflow import keras
from [Link] import layers
model = [Link]()
[Link]([Link](64, kernel_initializer='uniform', input_shape=(10,)))
[Link]([Link]('softmax'))
opt = [Link](learning_rate=0.01)
[Link](loss='categorical_crossentropy', optimizer=opt)
[Link](X_train, t, epochs=250, batch_size=int(len(X_train)/4))
10
Sobre optimizadores
Todos buscan lo mismo: en un espacio
multidimensional, encontrar un mínimo
(el de la función de pérdida).
Usan distintas estrategias. No los vimos
en profundidad en el curso, son todas
optimizaciones algorítmicas, que pueden
interesarles estudiar:
Various Optimization Algorithms For Training Neural Network
[Link]
al-network-59450d71caf6
11
Sobre funciondes de pérdida (loss functions)
● Una métrica de ajuste mide la pérdida (la diferencia) entre los valores
reales (target) y los valores de output de la red (predicciones)
● Recordemos que usualmente trabajamos en dos tipos de tareas de
aprendizaje: REGRESION vs CLASIFICACION
● En regresión usamos, por ej
○ Mean Squared Error (MSE), Mean Absolute Error (MAE), Cross-Entropy, Huber Loss
● En clasificación usamos, por ej
○ Binary Cross-Entropy, Categorical Cross-Entropy
12
Pero ...
Pero en el fondo, todo problema de
clasificación puede ser pensado como un
problema de regresión.
There is no classification — here’s why
[Link]
heres-why-bdc8539bc898
13
MSE y MAE
En este y otros módulos ya vimos MSE y MAE
MSE: las diferencias se elevan al cuadrado → los
errores más grandes pagan! Se magnifican los
errores (dicho de otra forma, es sensible a outliers!).
Es una función convexa (se puede derivar) → ideal
para Gradient Descent
MAE: da igual peso a errores, no es sensible a
outliers pero la función no es derivable en el
mínimo.
14
Huber loss the best of both worlds
Y acá es donde entra Huber MSE
UBER LOSS
𝜹 MAE
Por eso es que a mis amigos
Los tengo muy escogidos,
Son lo mejor de cada casa
Joan Manuel Serrat
– Las malas compañias
15
Huber loss the best of both worlds
Y acá es donde entra Huber MSE
LOSS
𝜹 MAE
Por eso es que a mis amigos
Los tengo muy escogidos,
Son lo mejor de cada casa
Joan Manuel Serrat
– Las malas compañias
HUBER
16
Cross-entropy
Es una métrica para evaluar cuán bien se ajusta una red a los datos
CE = cross-entropy
[Link]
StatQuest: Cross Entropy
17
Cross-entropy
18
Tipos de arquitecturas de redes neuronales
Convolutional Neural Networks
Las capas (ocultas) convolucionales lo que hacen es detectar y
extraer, las features
Convolutions = feature detection + extraction
Fully connected network = classifier based on features
Bajo nivel Nivel medio
19
Repaso redes neurales
Capas ocultas (hidden layers): muchos tipos de arquitecturas y técnicas
● Capas convolucionales (Convolutional layers)
○ Una convolución es la aplicación de un filtro sobre un input (ej una imagen)
○ Ej multiplicar la señal de input * un kernel (filtro) para obtener una señal modificada
● Capas de pooling (agrupamiento)
○ Proceso de discretización / sub-muestreo / reducción de dimensiones
○ El objetivo es submuestrear una representación de input
20
Redes Neurales Recurrentes (RNNs)
Las redes neurales recurrentes (Recurrent Neural Networks, RNNs en inglés) tienen
loops. Los loops sirven para recordar información que pasó por la red.
loop
Flujo de información
input
output
21
Qué modelan las RNNs?
Domingo Carnes rojas
Lunes Pollo
Que vamos a comer?
Normalmente modelamos la correlación entre x e y
Martes Pasta
Miercoles Pescado
Jueves Carnes rojas
Pero en este caso no hay correlación!!!
Viernes Pollo
Sabado Pasta
Para poder predecir lo que vamos a comer, necesitamos
Domingo Pescado
modelar la correlación de y con y (autocorrelation)
Lunes Carnes rojas
Martes Pollo
Miercoles Pasta
Jueves Pescado
Viernes Carnes rojas
22
Redes Neurales Recurrentes (RNNs)
Las redes neurales recurrentes (Recurrent Neural Networks, RNNs en inglés)
tienen loops. Los loops pasan información de un paso al próximo.
output
loop
input
Esto
Es lo mismo que esto (una red recurrente desplegada)
23
Aplicaciones de RNNs
Las RNNs se aplican en muchos problemas diversos. Pero en todos hay una secuencia de eventos
(palabras, por ejemplo).
● Reconocimiento de Voz (lenguaje hablado)
● Traducción
● Subtitulado de imágenes (video, o descripción de fotos)
● Clasificacion de videos (secuencia de frames)
● Respuestas a preguntas visuales (input = imagen)
○ Ej que hay enfrente de la mesa? (Rta = una silla)
○ En donde está sentado el gato? (Rta= en el alfeizar de la ventana)
● Prediccion de series temporales (forecasting, pronósticos)
○ Predecir valores futuros (precios de activos, temperaturas, lluvias, ventas, transito...) a partir de datos históricos
colectados y registrados en periodos de tiempo regulares (horas, dias, meses, años)
24
Long Short Term Memory Networks (LSTM)
Son un tipo especial de arquitectura de RNNs
(recurrent neural networks).
LSTMs usan una serie de compuertas (gates) que
controlan cómo la información (que viene en una
secuencia) entra, se almacena, y sale de la red.
Hay 3 tipos de compuertas:
● Forget (olvidar)
● Input
● Output
25
Redes neurales: modulos
A lo largo del desarrollo y la investigación en Redes Neurales Artificiales, se
van descubriendo y validando arquitecturas (maneras de conectar capas
ocultas) para lograr distintos objetivos: compresión, recordar.
Esto módulos (conjuntos de capas con una arquitectura definida que funcionan
26
Atención
Attention is the most interesting recent architectural innovation in
neural networks.
27
Redes modulares
Como ven ... podemos encapsular arquitecturas tipo en forma de
modulos reusables
28
Circuitos, diseños, arquitecturas
Podemos entender como funciona cada uno de estos componentes?
29
Circuitos, diseños, arquitecturas
Podemos entender como funciona cada uno de los diseños o arquitecturas en
las que estos componentes electricos y electronicos se conectan?
Circuito de una radio
30
31
32
Las redes neurales como estructuras complejas
33
Intervalo hasta 19.20
34
Tipos de arquitecturas de redes neuronales
Perceptron
● Primera generación de redes neurales
● Modelos computacionales de única neurona
También llamadas feed forward networks
La información fluye hacia adelante
La excepción es el backpropagation que durante el
entrenamiento envía información hacia atrás
(generalmente alguna forma de diferencia (loss)
entre input y output.
35
Tipos de arquitecturas de redes neuronales
Autoencoders
Diseñadas para aprender en forma no supervisada.
Como son modelos de compresión de datos, pueden
codificar el input en una representación de menor
dimensionalidad.
36
Variational autoencoders
Son modelos probabilísticos
generativos, aprenden los
parámetros centrales que
definen una función de
densidad de probabilidades
(PDF = probability density
function)
37
Aplicaciones de Autoencoders
Los autoencoders se aplican por ejemplo en:
● Reducción de ruido en el input (Image Denoising)
● Reduccion de dimensiones
● Extracción de Features (foco en las más importantes)
● Compresión de datos
● Detección de anomalías
● Sustitución de datos faltantes (Missing Value Imputation
38
Tipos de arquitecturas de redes neuronales
Generative Adversarial Networks
39
Region-based Convolutional Neural Networks (R-CNNs)
● Clasificación
○ Hay un globo en la imagen
● Segmentación semántica
○ Estos son los pixeles donde hay
globos
● Detección de objetos
○ Hay 7 globos en la imagen en estas
posiciones
● Segmentación de instancias
○ Hay 7 globos en estas posiciones y
estos son los pixeles que
corresponden a cada uno
40
Foundational models
Son modelos entrenados que
producen una variedad de
outputs:
● Texto
● Imagenes
● Voz (audio)
41
Transfer learning
Importamos el modelo base
include_top = False
Freezamos el modelo:
[Link] = False
Agregamos capas:
pooling , dropout, dense
42
Beneficios de transfer-learning
En el Notebook: ResNet50 model entrenado con >14
millones de imágenes, de 20 categorías
Transfer learning & fine-tuning
[Link]
43
Fine-tuning
Después de aplicar un proceso de transfer-learning
(importar, modelo, freezar, agregar capas, entrenar, etc.)
podemos hacer sintonía fina y ajustar los pesos y los
sesgos (weights & biases) del modelo completo.
Unfreeze | Descongelar (todo o parte)! ← esa es la cuestión
Transfer learning & fine-tuning
[Link]
44
Parametros, parámetros, parámetros
Batch size?
Dropout?
Learning rate?
Epochs?
45
Batch size
El batch size define el número de muestras que van a pasar por [Link](X_train,
la red antes de actualizar los parámetros. y_train,
batch_size = 64,
Un batch (bloque) de muestras completa un proceso de forward
epochs = 500,...)
+ backward propagation.
Ejemplo:
Total de imágenes de entrenamiento = 3000
Batch size = 64
Epochs = 500
Entonces:
● 64 imágenes se toman cada vez para entrenar la red
● Para procesar las 3000 imagenes necesitamos 47
iteraciones (3000/64) → 1 epoch
● Este proceso continua 500 veces (epochs)
46
Tamaño del batch size?
● La limitación principal está dada por el hardware (RAM, GPU)
○ Y por el tamaño de las imágenes! No es lo mismo imágenes de 512 x 512 x 3 (RGB) que imagenes
de 28 x 28 x 1 (MNIST)
● Batch size pequeño puede hacer al descenso del gradiente menos preciso,
pero el algoritmo puede ser más rápido en converger.
● Batch size muy grande puede haber degradación del modelo, sobre todo
en su capacidad de generalización. Pero son más lentos en
47
Dropout
Dropout es el proceso por el cual se desconectan algunas neuronas aleatoriamente, durante el
proceso de entrenamiento.
Es un método de regularización para reducir overfitting.
Es una aproximación al
proceso de entrenar un
gran número de redes
con arquitecturas
distintas.
48
Argmin / Argmax
Qué son Argmax y Argmin?
● Argmax es una operación que encuentra el
argumento que da el valor máximo de una función
objetivo (target)
● Suele usarse argmax() de NumPy.
● En machine learning se usa para encontrar las
mejores predicciones
○ yhat_probs = [Link](X_validation)
○ yhat_classes = [Link](yhat_probs, axis=1)
● ArgMin es lo mismo (pero al revés)
49
ArgMax vs SoftMax
Red para clasificar flores (Iris dataset)
Raw output > 1
Raw output < 0
[Link]
StatQuest: ArgMax and SoftMax
50
ArgMax vs SoftMax
ArgMax – facilita interpretación del output de una red (predicciones!)
Pero no se puede usar para backpropagation! (optimizar weights and biases!)
51
Las derivadas del output de ArgMax son cero
No se pueden usar en Gradient Descent!
52
ArgMax vs SoftMax
SoftMax
53
ArgMax vs SoftMax
● ArgMax y SoftMax
devuelven valores en un
rango entre 0 y 1
● ArgMax devuelve un único
valor como 1 (el máximo) y
el resto como 0
● SoftMax devuelve valores
intermedios para todos los
datos
54
IMPORTANTE!
ArgMax en Numpy – nos devuelve la posición en un array donde está el
elemento con el valor más alto! Ojo! A no confundirse.
MAX
MIN
55
ArgMax vs SoftMax
Recapitulando
● ArgMax nos ayuda a decidir
● Encontrar cuál es la mejor predicción
entre varias
○ No sirve en capas intermedias, los
valores de output de ArgMax no
pueden usarse para optimizar pesos y
bias en backpropagation!
● SoftMax nos ayuda a convertir los valores
de output de la red en valores uniformes
● Parecidos a probabilidades
● Que pueden usarse en backpropagation!
56
Y ahora el meme tiene sentido
57
Preguntas?
58
Buena suerte en el examen!
59