Perceptrón Multicapa
Redes neuronales
FEATURES
OUTPUT
PARÁMETROS
LABELS
Perceptron
Frank Rosenblatt
1957
Perceptron
Seymour Papert
Marvin Minsky
1969
Los perceptrones de una capa tienen problemas con etiquetas XOR
El libro no decía nada de perceptrones multicapas. Aún así fue usado para invertir menos en MLP
“It would seem that Perceptrons has much the same role as The Necronomicon — that is, often cited but never read.”
Minsky,1994
Otros problemas de perceptrones de 1 capa
El invierno de la Inteligencia Artificial
Perceptrones Multicapa (ver. alpha)
o
x
h
h = W1x + b1
o = W2h + b2
h = W1x + b1
o = W2h + b2
T. afin
o = W2(W1x + b1 )+ b2
o = W2W1x + W2b1 + b2
o = W3x + c + b2
o = W3x + b3
h = W1x + b1
o = W2h + b2
o = W3x + b3
Volvimos a lo mismo pero con más cuentas
La composición de funciones lineales es lineal. Necesitamos algo más
Funciones de activación
y = W1x + b1
h = σ(y)
o = W2h + b2
Funciones de activación más comunes
Los 3 sabores de PReLU
En PReLU necesitamos la derivada parcial respecto de a.
∂aPReLU(x,a) = min(x,0)
Observaciones
Convergencia y modelos no lineales
Modelo Lineal
Modelo No Lineal
Modelo Lineal
Modelo No Lineal
!?
Modelo Lineal
Modelo No Lineal
El problema de cómo elegir los parámetros iniciales es un problema abierto
MLP y Teoremas de aproximación universal
Los resultados son empíricos porque hay teoremas que nos aseguran condiciones suficientes para encontrar soluciones
Los teoremas existentes analizan qué ocurre al limitar número de capas, número de salidas, número de entradas, funciones de activación…
… en muchos casos los teoremas aseguran la existencia de soluciones óptimas.
Backward y Forward Propagation
“or There and Back Again”
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
∂W1 Loss(o)
∂b1 Loss(o)
∂a Loss(o)
∂W2 Loss(o)
∂b2 Loss(o)
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
∂W1 Loss
∂b1 Loss
∂a Loss
∂W2 Loss
∂b2 Loss
∂W1 y
∂b1 y
∂y h
∂a h
∂h o
∂W2 o
∂b2 o
∂o Loss
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
∂W1 Loss
∂b1 Loss
∂a Loss
∂W2 Loss
∂b2 Loss
∂W1 y
∂b1 y
∂y h
∂a h
∂h o
∂W2 o
∂b2 o
∂o Loss
Regla de la cadena
g[f(x)]
∂xg = ∂fg∙∂xf
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
∂W1 Loss
∂b1 Loss
∂a Loss
∂W2 Loss
∂b2 Loss
∂W1 y
∂b1 y
∂y h
∂a h
∂h o
∂W2 o
∂b2 o
∂o Loss
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂b1 Loss = ∂o Loss∙∂h o∙∂y h∙∂b1 y
∂a Loss = ∂o Loss∙∂h o∙∂a h
∂W2 Loss = ∂o Loss∙∂W2 o
∂b2 Loss = ∂o Loss∙∂b2 o
∂W1 y
∂b1 y
∂y h
∂a h
∂h o
∂W2 o
∂b2 o
∂o Loss
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂b1 Loss = ∂o Loss∙∂h o∙∂y h∙∂b1 y
∂a Loss = ∂o Loss∙∂h o∙∂a h
∂W2 Loss = ∂o Loss∙∂W2 o
∂b2 Loss = ∂o Loss∙∂b2 o
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂b1 Loss = ∂o Loss∙∂h o∙∂y h∙∂b1 y
∂a Loss = ∂o Loss∙∂h o∙∂a h
∂W2 Loss = ∂o Loss∙∂W2 o
∂b2 Loss = ∂o Loss∙∂b2 o
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂b1 Loss = ∂o Loss∙∂h o∙∂y h∙∂b1 y
∂a Loss = ∂o Loss∙∂h o∙∂a h
∂W2 Loss = ∂o Loss∙∂W2 o
∂b2 Loss = ∂o Loss∙∂b2 o
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂b1 Loss = ∂o Loss∙∂h o∙∂y h∙∂b1 y
∂a Loss = ∂o Loss∙∂h o∙∂a h
∂W2 Loss = ∂o Loss∙∂W2 o
∂b2 Loss = ∂o Loss∙∂b2 o
y = W1x + b1
h = σ(y,a)
o = W2h + b2
Loss(o)
Cálculo de función de pérdida
Cálculo del gradiente
Regla de la cadena
g[f(x)]
∂xg = ∂fg∙∂xf
Backward Propagation
Notebook
MLP desde 0
Antes de comenzar debemos generar algunas funciones que modularicen tareas que vamos a usar en cualquier proceso de entrenamiento. A saber:
Inicialización de parámetros
Función de activación
Definimos modelo
Implementación concisa
Implementación concisa
BASE TODO MLP
Observaciones:
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
Observaciones:
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
Observaciones:
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
Observaciones:
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂W1 Loss
∂W1 y
∂y h
∂h o
∂o Loss
!?
∂W1 y
Por lo general los frameworks se encargan de este problema por nosotros
∂W1 Loss= ∂o Loss∙∂h o∙∂y h∙∂W1 y
Álgebra tensorial
o cómo aprendí a dejar de preocuparme y amar las contracciones.
Observaciones:
Observaciones:
Observaciones:
gradiente del campo eléctrico
Observaciones:
∂W1 Loss(o)
∂W1 y
∂y h
∂h o
∂o Loss(o)
Observaciones:
Solución 1: PyTorch se encarga por mí.
Solución 2: Voy a estudiar cálculo tensorial.
Solución 3: ¿Qué es una contracción?
CONTRACCIONES
Álgebra lineal
Álgebra tensorial
Cálculo tensorial
Multiplicación que mata 2 índices
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂o Loss
∂W1 Loss
∂W1 y
∂h o
∂y h
2
1
2
2
3
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂o Loss
∂W1 Loss
∂W1 y
2
1
3
M
2
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂o Loss
∂W1 Loss
∂W1 y
2
1
3
M
2
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂o Loss
∂W1 Loss
∂W1 y
2
1
3
M
2
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂W1 Loss
∂W1 y
2
3
v
2
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂W1 Loss
∂W1 y
2
3
v
1
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂W1 Loss
∂W1 y
2
3
v
2
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂W1 Loss
2
K
2
∂W1 Loss = ∂o Loss∙∂h o∙∂y h∙∂W1 y
∂W1 Loss
2
K
2
MLP y Teoremas de aproximación universal. Ejemplos de papers
Limitando profundidad
Limitando ancho