Redes Neuronales de 1 capa
Regresión lineal
Dataset
Dirección | Superficie | Antigüedad | Precio |
Calle 123 | 130 | 2 | 7,5 M |
Pasaje 456 | 75 | 10 | 3 M |
Avenida 789 | 1000 | 25 | 39 M |
... | ... | ... | ... |
Features (X)
Target (y)
Muestras (n filas)
Modelo lineal
Precio = w * superficie + b
precio
superficie
Precio = w1 * superficie + w2 * antigüedad + b
precio
superficie
antigüedad
Notación coeficientes
Inicialización al azar / con prior de pesos
W1 = 1.300 (valor del metro cuadrado)
W2 = 2.000 (valorización anual de la propiedad)
B = 30.000
75000 = 1.300 * 130 + 2.000 * 2 + 30.000
30000 = 1.300 * 75 + 2.000 * 10 + 30.000
Estos valores son estimaciones de precios (ŷ)
ŷ = w1x1 + … + wdxd + b
Notación matricial
130
2
75000 =
+ 30000
La magia del producto interno
ŷ = wTx + b
1.300 2.000
30000 =
+ 30000
75
10
1.300 2.000
Matriz de diseño
Ahora ŷ es un vector
Ahora X es una matriz
ŷ = Xw + b
=
1.300
2.000
130 2
75 10
+ 30000
75000
30000
broadcasting
Matriz de diseño
ŷ = Xw + b
Error
Error o residuo
Error cuadrático
75000 = 1.300 * 130 + 2.000 * 2 + 30.000
30000 = 1.300 * 75 + 2.000 * 10 + 30.000
VS
estimaciones
realidad
???? = (75.000 - 7.500.000)^2 / 2
???? = (30.000 - 3.000.000)^2 / 2
Función de pérdida
La variable objetivo es fija.
Las estimaciones dependen de los pesos (w,b).
L
Error cuadrático medio
L = ???? + ???? + ....
Son los errores de la diapo anterior
Descenso por gradiente
Lotes
Descenso por gradiente naive
X = features
Y = target
For epoca in epocas:
Y_hat = modelo(X)
L = mse(Y, Y_hat)
actualizar_pesos(L)
Descenso por gradiente estocástico
For época in épocas:
For x,y in random(X,Y):
y_hat = modelo(x)
l = mse(y, y_hat)
actualizar_pesos(l)
Descenso por gradiente estocástico usando mini lotes
For época in épocas:
For X_lote, Y_lote in lotes_random(X,Y):
Y_hat_lote = modelo(X_lote)
L_lote = mse(Y_lote, y_hat_lote)
actualizar_pesos(L_lote)
Proyección de curvas de valor constante
CURVAS DE NIVEL
Diagramas de conectividad
Modelo lineal
Perceptrón
y
y
Agrega función de activación para lograr un modelo no-lineal
Regresión lineal desde 0
Regresión lineal desde 0
Antes de comenzar debemos generar algunas funciones que modularicen tareas que vamos a usar en cualquier proceso de entrenamiento. A saber:
Generación de los datos
Separación en lotes
Separación en lotes
Inicialización de los parámetros
Definición del modelo
Definición del algoritmo de optimización
Definición de la función de pérdida
Bucle de entrenamiento
IMPLEMENTACIÓN CONCISA
Generación de los datos
Separación en lotes
Inicialización de los parámetros
Definición del modelo
Definición del algoritmo de optimización
Definición de la función de pérdida
Bucle de entrenamiento
Dataset
Píxel 1 | Píxel ... | Píxel 256 | Clase |
| | | remera |
| | | vestido |
imágenes etiquetadas
Píxel 1 | Píxel ... | Píxel 256 | remera | vestido | saco |
| | | 1 | 0 | 0 |
| | | 0 | 1 | 0 |
Cada píxel es un atributo / columna
One-hot encoding
X
Y (ahora es una matriz)
Generalización del perceptrón
píxeles
remera
vestido
saco
Múltiples variables objetivo
o = x W + b (para una sola imagen, W es una matriz, o es un vector)
O = X W + b
La matriz O tendrá tantas filas como muestras en X y tantas columnas como clases en el dataset.
La capa densa es como tener varios modelos lineales en simultáneo.
Capa densa
Múltiples variables objetivo
O = XW + b
píxeles
número
número
número
Probabilidades
Queremos que las salidas estén entre 0 y 1
784
10
píxeles
número
número
número
Probabilidades
Queremos que las salidas estén entre 0 y 1
píxeles
remera
vestido
saco
?
probabilidad
píxeles
remera
vestido
saco
Probabilidades
?
Queremos que las salidas estén entre 0 y 1
píxeles
remera
vestido
saco
Probabilidades
ŷ = softmax(x W + b)
Softmax
Queremos que las salidas estén entre 0 y 1
La función SoftMax se aplica componente a componente
píxeles
remera
vestido
saco
Probabilidades
Softmax
Queremos que las salidas estén entre 0 y 1
Ŷ = softmax(X W + b)
Usando matriz de diseño X en vez de una sola muestra x
Función de pérdida
Entropía cruzada
Estimación
ŷ = [0,20 0,20 0,60]
Realidad
y = [0 0 1]
Error
L = - 0 log(0,20) - 0 log(0,20) - 1 log(0,60)
Remera, anulado
Vestido, anulado
Saco, sobrevive
VS
log ŷ = [log (0,20) log(0,20) log(0,60)]
Función de pérdida
Entropía cruzada
o = x W + b
ENTROPIA
Tenemos una bolsa con 4 pelotas:
Sacamos una al azar.
¿Cúal es el mínimo número de preguntas para adivinar el color?
“Hello class, I wanna play a game”
Número promedio de preguntas: 2
ESTRATEGIA
ÓPTIMA
¿Es gris?
¿Es blanca?
¿Es clara?
Probabilidad | 0.25 | 0.25 | 0.25 | 0.25 |
Preguntas | 2 | 2 | 2 | 2 |
Tenemos una bolsa con 8 pelotas:
Sacamos una al azar.
¿Cúal es el mínimo número de preguntas para adivinar el color?
ANOTHER
“Hello class, I wanna play a game”
ESTRATEGIA
ÓPTIMA
ANOTHER
Número promedio de preguntas: 1.75
¿Es negra?
¿Es gris clara?
¿Es blanca?
Probabilidad | 0.5 | 0.25 | 0.125 | 0.125 |
Preguntas | 1 | 2 | 3 | 3 |
Las preguntas que hemos hecho parecen las que menos información pueden darnos:�Sí o No.
En este sentido la cantidad de preguntas se parecen a una cantidad de información.
Además el número de preguntas se parece al logaritmo de base 2 de la probabilidad
ENTROPÍA DE SHANNON
¿Logaritmo de base 2?
¡Qué elección más fea!
Todos los logaritmos son el mismo logaritmo
¿Y la entropía cruzada?
¿Qué pasa si juego “a game” con estrategia óptima?
ANOTHER
Número promedio de preguntas: 2.25
Probabilidad | 0.25 | 0.25 | 0.25 | 0.25 |
Preguntas | 1 | 2 | 3 | 3 |
El número de preguntas promedio ha aumentado. La estrategia no es óptima.
Pudimos hacer esto porque conocemos a priori como es cada sistema (juego). En casos realistas no tenemos ambos sistemas y solo podemos tratar de que nuestro modelo describa lo mejor posible nuestros datos. Por esto usamos entropía cruzada.
De hecho, mínimos cuadrados también se puede pensar como maximizar entropía de una distribución gaussiana (de los errores)
Regresión Softmax desde 0
Regresión softmax desde 0
Antes de comenzar debemos generar algunas funciones que modularicen tareas que vamos a usar en cualquier proceso de entrenamiento. A saber:
Carga de los datos
Definición del modelo
En este punto tenemos que implementar la función softmax.
Recordemos que la función softmax consiste en 3 pasos:
Definición del modelo
Paso 1
exponencial
Definición del modelo
Paso 1
Paso 2
exponencial
suma por filas
Definición del modelo
Paso 3
división
broadcasting
Definición del modelo
O1
exp
O2
+
O3
÷
O4
Definición del modelo
O1
exp
O2
+
O3
÷
O4
Definición del modelo
O1
exp
O2
+
O3
÷
O4
Definición del modelo
Definición de la función de pérdida
En este punto tenemos que implementar la entropía cruzada donde para cualquier par de etiqueta y y predicción del modelo ŷ sobre q clases, la función de pérdida l es
Definición de la función de pérdida
IMPLEMENTACIÓN CONCISA
Sobre SoftMax
SoftMax usa exponenciales, lo que es un problema para puntos flotantes:
Soluciones:
Sobre SoftMax
SoftMax usa exponenciales, lo que es un problema para puntos flotantes:
Soluciones:
Definición del modelo
O1
exp
O2
+
O3
÷
O4
Sobre SoftMax
SoftMax usa exponenciales, lo que es un problema para puntos flotantes:
Soluciones:
Relación entre H y S
H (entropía de la información)
S (entropía termodinámica)
H (entropía de la información)
H (entropía de la información)
-Σi pilog(pi)
H (entropía de la información)
H (entropía de la información)
-Σi pilog(pi)
∂pi[-Σi pilog(pi)] = -log(pi) - 1
pi ∈ [0,1] ⇒ -log(pi) ≥ 0
H (entropía de la información)
H (entropía de la información)
-Σi pilog(pi)
pi ∈ [0,1] ⇒ -log(pi) ≥ 0
-log(pi) ≥ 0 ⇒ -pilog(pi) ≥ 0
H (entropía de la información)
H (entropía de la información)
-Σi pilog(pi)
pi = 1 ⇒ -pilog(pi) = 0
H (entropía de la información)
H (entropía de la información)
-Σi pilog(pi)
Dos eventos independientes tienen como cantidad de información, la suma de la información de cada uno
Dos eventos independientes tienen como cantidad de información, la suma de la información de cada uno
-Σi pilog(pi)
P[p(x)&q(x)] = p(x)×q(x)
H[p(x)&q(x)] = H(p(x))+H(q(x))
log(pi)
Notación matricial
75000 =
1.300
2.000
130 2 + 30000
30000 =
1.300
2.000
75 10 + 30000
La magia del producto interno
ŷ = wTx + b
Notación matricial
75000 =
1.300
2.000
130 2 + 30000
30000 =
1.300
2.000
75 10 + 30000
La magia del producto interno
ŷ = wTx + b
CONTRACCIONES
Matriz de diseño
Ahora ŷ es un vector
Ahora X es una matriz
ŷ = Xw + b
=
1.300
2.000
130 2
75 10
+ 30000
75000
30000
broadcasting
La magia del producto de una matriz por un vector
Matriz de diseño
Ahora ŷ es un vector
Ahora X es una matriz
ŷ = Xw + b
=
1.300
2.000
130 2
75 10
+ 30000
75000
30000
broadcasting
La magia de las CONTRACCIONES
Generalización del perceptrón
píxeles
remera
vestido
saco
Múltiples variables objetivo
O = X W + b
La matriz O tendrá tantas filas como muestras en X y tantas columnas como clases en el dataset.
La magia del producto de matrices
Generalización del perceptrón
píxeles
remera
vestido
saco
Múltiples variables objetivo
O = X W + b
La matriz O tendrá tantas filas como muestras en X y tantas columnas como clases en el dataset.
La magia de las CONTRACCIONES
CONTRACCIONES
Algebra lineal
Algebra tensorial
Calculo tensorial
CONTRACCIONES
(aplicacadas 2 veces)
Algebra lineal
Algebra tensorial
Calculo tensorial
(*) Terms and conditions may apply
CONTRACCIONES
(muchas veces)