APRENDIZAJE PROFUNDO PARA VISIÓN ARTIFICIAL
Transcript of APRENDIZAJE PROFUNDO PARA VISIÓN ARTIFICIAL
APRENDIZAJE PROFUNDOPARA VISIÓN ARTIFICIAL
Gastón García, José Lezama, Pablo Musé, Javier Preciozzi
Instituto de Ingeniería Eléctrica
Facultad de IngenieríaUniversidad de la República
2020
Agenda · Clase 4
1 Modelos Lineales, Generalización
2 Redes Neuronales
3 Neuronas Artificiales
4 Teorema Aproximación Universal
5 Desafíos en Aprendizaje Profundo
2 / 38
Clasificadores Lineales
Un clasificador lineal tiene la forma:
f(x) = wTx+ b
• a w ∈ Rd se lo conoce como vector de pesos (“weights”)
w : vector normal a la frontera de clasificación
• a b ∈ R se le llama “bias” (de-centrado, sesgo)
• Un clasificador lineal no necesita memorizar el training set(a diferencia del clasificador K-nn)
• Generalización a clasificación multiclase: (wi,bi), para i = 1, ..., c(conjunto de pesos por clase)
3 / 38
Clasificadores Lineales
Un clasificador lineal tiene la forma:
f(x) = wTx+ b
• a w ∈ Rd se lo conoce como vector de pesos (“weights”)
w : vector normal a la frontera de clasificación
• a b ∈ R se le llama “bias” (de-centrado, sesgo)
• Un clasificador lineal no necesita memorizar el training set(a diferencia del clasificador K-nn)
• Generalización a clasificación multiclase: (wi,bi), para i = 1, ..., c(conjunto de pesos por clase)
3 / 38
Clasificadores Lineales
Un clasificador lineal tiene la forma:
f(x) = wTx+ b
• a w ∈ Rd se lo conoce como vector de pesos (“weights”)
w : vector normal a la frontera de clasificación
• a b ∈ R se le llama “bias” (de-centrado, sesgo)
• Un clasificador lineal no necesita memorizar el training set(a diferencia del clasificador K-nn)
• Generalización a clasificación multiclase: (wi,bi), para i = 1, ..., c(conjunto de pesos por clase)
3 / 38
Clasificadores Lineales• Dado un dataset (xi, yi), i = 1, . . . ,n, con yi ∈ {1, . . . , c}• Supongamos que tenemos puntajes de la forma: s = Wx
• Vimos dos maneras de definir una función de ajuste (loss):
SVM (hinge)
Li =∑j 6=yi
max(0, sj − syi + 1)
Logistic regression (softmax)
Li = − log
(esyi∑j e
sj
)
• En general: datos no son linealmente separables...
4 / 38
Clasificadores Lineales• Dado un dataset (xi, yi), i = 1, . . . ,n, con yi ∈ {1, . . . , c}• Supongamos que tenemos puntajes de la forma: s = Wx
• Vimos dos maneras de definir una función de ajuste (loss):
SVM (hinge)
Li =∑j 6=yi
max(0, sj − syi + 1)
Logistic regression (softmax)
Li = − log
(esyi∑j e
sj
)
• En ambos casos, hay que minimizar L(W) (+ regularización)
L(W) =
n∑i=1
Li(W) + λR(W)
• En general: datos no son linealmente separables...
4 / 38
Clasificadores Lineales• Dado un dataset (xi, yi), i = 1, . . . ,n, con yi ∈ {1, . . . , c}• Supongamos que tenemos puntajes de la forma: s = Wx
• Vimos dos maneras de definir una función de ajuste (loss):
SVM (hinge)
Li =∑j 6=yi
max(0, sj − syi + 1)
Logistic regression (softmax)
Li = − log
(esyi∑j e
sj
)
• En ambos casos, hay que minimizar L(W) (+ regularización)
L(W) =
n∑i=1
Li(W) + λR(W)
• Descenso por gradiente:
∇WL(W) =
n∑i=1
∇WLi(xi, yi;W) + λ∇WR(W).
• En general: datos no son linealmente separables...
4 / 38
Clasificadores Lineales• Dado un dataset (xi, yi), i = 1, . . . ,n, con yi ∈ {1, . . . , c}• Supongamos que tenemos puntajes de la forma: s = Wx
• Vimos dos maneras de definir una función de ajuste (loss):
SVM (hinge)
Li =∑j 6=yi
max(0, sj − syi + 1)
Logistic regression (softmax)
Li = − log
(esyi∑j e
sj
)
• En ambos casos, hay que minimizar L(W) (+ regularización)
L(W) =
n∑i=1
Li(W) + λR(W)
• Descenso por gradiente estocástico, nmb � n:
∇WL(W) ≈nmb∑i=1
∇WLi(xi, yi;W) + λ∇WR(W).
• En general: datos no son linealmente separables...
4 / 38
Clasificadores Lineales• Dado un dataset (xi, yi), i = 1, . . . ,n, con yi ∈ {1, . . . , c}• Supongamos que tenemos puntajes de la forma: s = Wx
• Vimos dos maneras de definir una función de ajuste (loss):
SVM (hinge)
Li =∑j 6=yi
max(0, sj − syi + 1)
Logistic regression (softmax)
Li = − log
(esyi∑j e
sj
)
• En general: datos no son linealmente separables...
4 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables
• ¿Cómo encontramos Φ(x) que transforme los datos a unespacio donde sean fácilmente separables?
f(x) = wTx+ b
1 Usar Φ(x) muy genérica que lleve los datos a un espacio de muy alta
dimension (puede ser infinita), en este espacio es fácil de separar lospuntos del conjunto de entrenamiento (e.g., kernel RBF).
Problema: Difícil de generalizar bien a datos no conocidos (test).
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
f(x) = wTΦ(x) + b
1 Usar Φ(x) muy genérica que lleve los datos a un espacio de muy alta
dimension (puede ser infinita), en este espacio es fácil de separar lospuntos del conjunto de entrenamiento (e.g., kernel RBF).
Problema: Difícil de generalizar bien a datos no conocidos (test).
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
1 Usar Φ(x) muy genérica que lleve los datos a un espacio de muy alta
dimension (puede ser infinita), en este espacio es fácil de separar lospuntos del conjunto de entrenamiento (e.g., kernel RBF).
Problema: Difícil de generalizar bien a datos no conocidos (test).
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
1 Usar Φ(x) muy genérica que lleve los datos a un espacio de muy alta
dimension (puede ser infinita), en este espacio es fácil de separar lospuntos del conjunto de entrenamiento (e.g., kernel RBF).
Problema: Difícil de generalizar bien a datos no conocidos (test).
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
1 Usar Φ(x) muy genérica que lleve los datos a un espacio de muy alta
dimension (puede ser infinita), en este espacio es fácil de separar lospuntos del conjunto de entrenamiento (e.g., kernel RBF).Problema: Difícil de generalizar bien a datos no conocidos (test).
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
2 Encontrar Φ(x) (artesanal) de manera de separar los datos.
Problema: Difícil de hacer en la práctica, el diseño depende de unconocimiento muy fino del problema
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
2 Encontrar Φ(x) (artesanal) de manera de separar los datos.Problema: Difícil de hacer en la práctica, el diseño depende de unconocimiento muy fino del problema
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
3 Aprendizaje Profundo: Aprender Φ(x). Partir de un modeloparamétrico Φ(x; θ) que define una representación y buscarminimizar el error de ajuste.
Objetivo: Definir Φ(x; θ) y luego entrenar (encontrar θ).
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
5 / 38
Clasificadores no Lineales
Se requiere que los datos sean linealmente separables• ¿Cómo encontramos Φ(x) que transforme los datos a un
espacio donde sean fácilmente separables?
3 Aprendizaje Profundo: Aprender Φ(x). Partir de un modeloparamétrico Φ(x; θ) que define una representación y buscarminimizar el error de ajuste.
Objetivo: Definir Φ(x; θ) y luego entrenar (encontrar θ).
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
5 / 38
Redes Neuronales
• Objetivo: Aproximar y = f?(x), mapeo de x en una salida y (e.g., una categoría).
• Redes neuronales: familia de funciones no lineales, paramétricas, son la basefundamental del Aprendizaje Profundo.
• Una red neuronal define un mapeo y = f(x; θ), y buscaremos losparámetros θ que mejor aproximan f?.
• Son redes porque se componen de múltiples neuronas artificiales que secomunican entre sí.
6 / 38
Redes Neuronales
• Objetivo: Aproximar y = f?(x), mapeo de x en una salida y (e.g., una categoría).
• Redes neuronales: familia de funciones no lineales, paramétricas, son la basefundamental del Aprendizaje Profundo.
• Una red neuronal define un mapeo y = f(x; θ), y buscaremos losparámetros θ que mejor aproximan f?.
• Son redes porque se componen de múltiples neuronas artificiales que secomunican entre sí.
6 / 38
Redes Neuronales
• Objetivo: Aproximar y = f?(x), mapeo de x en una salida y (e.g., una categoría).
• Redes neuronales: familia de funciones no lineales, paramétricas, son la basefundamental del Aprendizaje Profundo.
• Una red neuronal define un mapeo y = f(x; θ), y buscaremos losparámetros θ que mejor aproximan f?.
• Son redes porque se componen de múltiples neuronas artificiales que secomunican entre sí.
6 / 38
Redes Neuronales
• Objetivo: Aproximar y = f?(x), mapeo de x en una salida y (e.g., una categoría).
• Redes neuronales: familia de funciones no lineales, paramétricas, son la basefundamental del Aprendizaje Profundo.
• Una red neuronal define un mapeo y = f(x; θ), y buscaremos losparámetros θ que mejor aproximan f?.
• Son redes porque se componen de múltiples neuronas artificiales que secomunican entre sí.
6 / 38
Redes Neuronales
• En general se componen de varias capas, y se modelan como unacomposición de funciones:
f(x) := f(n)(f(n−1)
(· · · f(2)
(f(1) (x)
)· · ·))
,
donde f(1) es la primera capa (first layer), f(2) la segunda ...
• Son prealimentadas (feedforward) porque la información fluye a partir de x
sin existir conexiones de realimentación.• Es decir, son Grafos Acíclicos Direccionados (DAGs)
7 / 38
Redes Neuronales
• En general se componen de varias capas, y se modelan como unacomposición de funciones:
f(x) := f(n)(f(n−1)
(· · · f(2)
(f(1) (x)
)· · ·))
,
donde f(1) es la primera capa (first layer), f(2) la segunda ...
• Son prealimentadas (feedforward) porque la información fluye a partir de x
sin existir conexiones de realimentación.• Es decir, son Grafos Acíclicos Direccionados (DAGs)
7 / 38
Redes Neuronales ProfundasDeep Neural Networks
• La profundidad (depth) de la red: cantidad de capas en el modelo (deep)
• Primera, capa de entrada (input layer), última, capa de salida (output layer)
• El entrenamiento no especifica la salida de cada capa sino de punta a punta.
• Datos de entrenamiento no es observado por las capas intermedias, estas sonllamadas capas ocultas (hidden layers)
• Cada capa es en general una función vectorial: f(j) : Rnj → Rnj+1 .Dimensión nj determina el ancho de la capa (width).
• Cada elemento de una capa [f(j)]i es llamado neurona (o unidad) : dado unaserie de entradas calcula salida unidimensional (su función de activación)
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
8 / 38
Redes Neuronales ProfundasDeep Neural Networks
• La profundidad (depth) de la red: cantidad de capas en el modelo (deep)
• Primera, capa de entrada (input layer), última, capa de salida (output layer)
• El entrenamiento no especifica la salida de cada capa sino de punta a punta.
• Datos de entrenamiento no es observado por las capas intermedias, estas sonllamadas capas ocultas (hidden layers)
• Cada capa es en general una función vectorial: f(j) : Rnj → Rnj+1 .Dimensión nj determina el ancho de la capa (width).
• Cada elemento de una capa [f(j)]i es llamado neurona (o unidad) : dado unaserie de entradas calcula salida unidimensional (su función de activación)
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
8 / 38
Redes Neuronales ProfundasDeep Neural Networks
• La profundidad (depth) de la red: cantidad de capas en el modelo (deep)
• Primera, capa de entrada (input layer), última, capa de salida (output layer)
• El entrenamiento no especifica la salida de cada capa sino de punta a punta.
• Datos de entrenamiento no es observado por las capas intermedias, estas sonllamadas capas ocultas (hidden layers)
• Cada capa es en general una función vectorial: f(j) : Rnj → Rnj+1 .Dimensión nj determina el ancho de la capa (width).
• Cada elemento de una capa [f(j)]i es llamado neurona (o unidad) : dado unaserie de entradas calcula salida unidimensional (su función de activación)
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
8 / 38
Redes Neuronales ProfundasDeep Neural Networks
• La profundidad (depth) de la red: cantidad de capas en el modelo (deep)
• Primera, capa de entrada (input layer), última, capa de salida (output layer)
• El entrenamiento no especifica la salida de cada capa sino de punta a punta.
• Datos de entrenamiento no es observado por las capas intermedias, estas sonllamadas capas ocultas (hidden layers)
• Cada capa es en general una función vectorial: f(j) : Rnj → Rnj+1 .Dimensión nj determina el ancho de la capa (width).
• Cada elemento de una capa [f(j)]i es llamado neurona (o unidad) : dado unaserie de entradas calcula salida unidimensional (su función de activación)
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
8 / 38
Redes Neuronales ProfundasDeep Neural Networks
• La profundidad (depth) de la red: cantidad de capas en el modelo (deep)
• Primera, capa de entrada (input layer), última, capa de salida (output layer)
• El entrenamiento no especifica la salida de cada capa sino de punta a punta.
• Datos de entrenamiento no es observado por las capas intermedias, estas sonllamadas capas ocultas (hidden layers)
• Cada capa es en general una función vectorial: f(j) : Rnj → Rnj+1 .Dimensión nj determina el ancho de la capa (width).
• Cada elemento de una capa [f(j)]i es llamado neurona (o unidad) : dado unaserie de entradas calcula salida unidimensional (su función de activación)
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
8 / 38
Redes Neuronales ProfundasDeep Neural Networks
• La profundidad (depth) de la red: cantidad de capas en el modelo (deep)
• Primera, capa de entrada (input layer), última, capa de salida (output layer)
• El entrenamiento no especifica la salida de cada capa sino de punta a punta.
• Datos de entrenamiento no es observado por las capas intermedias, estas sonllamadas capas ocultas (hidden layers)
• Cada capa es en general una función vectorial: f(j) : Rnj → Rnj+1 .Dimensión nj determina el ancho de la capa (width).
• Cada elemento de una capa [f(j)]i es llamado neurona (o unidad) : dado unaserie de entradas calcula salida unidimensional (su función de activación)
f(1)
1st -layer
Feedforward networks
f(2)
2nd -layerf(3)
3rd -layerf(n)
nth -layerci=f(x)
8 / 38
Neuronas Artificiales
• Componente elemental del Aprendizaje Profundo
• Típicamente, está compuesta por: operación lineal + función deactivación no lineal.
• El nombre viene de su “paralelismo” con las neuronas biológicas
a(x) =n∑
i=1
wixi + b
h(x) = g(a(x))
9 / 38
Neuronas Artificiales
• Componente elemental del Aprendizaje Profundo
• Típicamente, está compuesta por: operación lineal + función deactivación no lineal.
• El nombre viene de su “paralelismo” con las neuronas biológicas
a(x) =n∑
i=1
wixi + b
h(x) = g(a(x))
9 / 38
Neuronas Artificiales
• Componente elemental del Aprendizaje Profundo
• Típicamente, está compuesta por: operación lineal + función deactivación no lineal.
• El nombre viene de su “paralelismo” con las neuronas biológicas
a(x) =n∑
i=1
wixi + b
h(x) = g(a(x))
9 / 38
Neuronas artificiales
• Una neurona artificial se compone (en general) de:una operación lineal + una función de activación no lineal
1 Pre-activación:
a(x) =n∑
i=1
wixi+b = wTx+b
2 Activación (salida):
h(x) = g(a(x)) = g
(n∑
i=1
wixi + b
) x1
xn
input
1b
w1
wn
h(x)
10 / 38
Neuronas artificiales
• Una neurona artificial se compone (en general) de:una operación lineal + una función de activación no lineal
1 Pre-activación:
a(x) =n∑
i=1
wixi+b = wTx+b
2 Activación (salida):
h(x) = g(a(x)) = g
(n∑
i=1
wixi + b
)
x1
xn
input
1b
w1
wn
h(x)
10 / 38
Neuronas artificiales
• Una neurona artificial se compone (en general) de:una operación lineal + una función de activación no lineal
1 Pre-activación:
a(x) =n∑
i=1
wixi+b = wTx+b
2 Activación (salida):
h(x) = g(a(x)) = g
(n∑
i=1
wixi + b
) x1
xn
input
1b
w1
wn
h(x)
10 / 38
Neuronas artificiales
• Una neurona se compone (en general) de: una operación lineal + unafunción de activación no lineal. (linear units):
h(x) = g(a(x)) = g
(n∑
i=1
wixi + b
) x1
xn
input
1b
w1
wn
h(x)
11 / 38
Funciones de Activación
12 / 38
Funciones de Activación
12 / 38
Funciones de Activación
12 / 38
Funciones de Activación
12 / 38
Funciones de Activación
12 / 38
Neuronas lineales: Capacidad
• Una única neurona puede hacerclasificación binaria:
→ Frontera de decisión es lineal
x1
xn
input
1b
w1
wn
h(x)
13 / 38
Red neuronal de una capa oculta
• Entrada: x
• Pre-activación:
a = W(1)Tx+ b(1)
• Activación capa oculta:
h(1)(x) = g(a(x))
• Capa de salida:
f(x) = o(w(2)Th(1) + b(2)
)
h1
hi
hd
f(x)
x1
xj
xn
W(1)
W(1)
W(1)w(2)
w(2)
w(2)
1,1
j,i
2,1
1
i
d
input layer hidden layer
output layer
1 b(1)1
1b(2)
14 / 38
Red neuronal de una capa oculta
• Entrada: x
• Pre-activación:
a = W(1)Tx+ b(1)
• Activación capa oculta:
h(1)(x) = g(a(x))
• Capa de salida:
f(x) = o(w(2)Th(1) + b(2)
)
h1
hi
hd
f(x)
x1
xj
xn
W(1)
W(1)
W(1)w(2)
w(2)
w(2)
1,1
j,i
2,1
1
i
d
input layer hidden layer
output layer
1 b(1)1
1b(2)
14 / 38
Red neuronal de una capa oculta
• Entrada: x
• Pre-activación:
a = W(1)Tx+ b(1)
• Activación capa oculta:
h(1)(x) = g(a(x))
• Capa de salida:
f(x) = o(w(2)Th(1) + b(2)
)
h1
hi
hd
f(x)
x1
xj
xn
W(1)
W(1)
W(1)w(2)
w(2)
w(2)
1,1
j,i
2,1
1
i
d
input layer hidden layer
output layer
1 b(1)1
1b(2)
14 / 38
Red neuronal de una capa oculta
• Entrada: x
• Pre-activación:
a = W(1)Tx+ b(1)
• Activación capa oculta:
h(1)(x) = g(a(x))
• Capa de salida:
f(x) = o(w(2)Th(1) + b(2)
)
h1
hi
hd
f(x)
x1
xj
xn
W(1)
W(1)
W(1)w(2)
w(2)
w(2)
1,1
j,i
2,1
1
i
d
input layer hidden layer
output layer
1 b(1)1
1b(2)
14 / 38
Red neuronal de una capa oculta
• Entrada: x
• Pre-activación:
a = W(1)Tx+ b(1)
• Activación capa oculta:
h(1)(x) = g(a(x))
• Capa de salida:
f(x) = o(w(2)Th(1) + b(2)
)
h1
hi
hd
f(x)
x1
xj
xn
W(1)
W(1)
W(1)w(2)
w(2)
w(2)
1,1
j,i
2,1
1
i
d
input layer hidden layer
output layer
1 b(1)1
1b(2)
14 / 38
Ejemplo: XOR
• Supongamos que queremos aproximar la función f?(x) = xor(x1, x2)
• 4 puntos : {(0, 0), (0, 1), (1, 0), (1, 1)}, con salidas 0, 1, 1, 0 respec.
• Objetivo: encontrar f que prediga bien los cuatro puntos
• Planteamos una regresión:
J(θ) =1
4
4∑i=1
(f?(xi)− f(x; θ))2
• Si buscamos un modelo lineal: f(x;w,b) = wTx+ b y resolvemos lasecuaciones normales
, se obtiene: w = 0,b = 12 .
• J(θ) > 0: no se logra aproximar de maneraperfecta la salida.
• Era esperable porque los datos no sonlinealmente separables
15 / 38
Ejemplo: XOR
• Supongamos que queremos aproximar la función f?(x) = xor(x1, x2)
• 4 puntos : {(0, 0), (0, 1), (1, 0), (1, 1)}, con salidas 0, 1, 1, 0 respec.
• Objetivo: encontrar f que prediga bien los cuatro puntos
• Planteamos una regresión:
J(θ) =1
4
4∑i=1
(f?(xi)− f(x; θ))2
• Si buscamos un modelo lineal: f(x;w,b) = wTx+ b y resolvemos lasecuaciones normales
, se obtiene: w = 0,b = 12 .
• J(θ) > 0: no se logra aproximar de maneraperfecta la salida.
• Era esperable porque los datos no sonlinealmente separables
15 / 38
Ejemplo: XOR
• Supongamos que queremos aproximar la función f?(x) = xor(x1, x2)
• 4 puntos : {(0, 0), (0, 1), (1, 0), (1, 1)}, con salidas 0, 1, 1, 0 respec.
• Objetivo: encontrar f que prediga bien los cuatro puntos
• Planteamos una regresión:
J(θ) =1
4
4∑i=1
(f?(xi)− f(x; θ))2
• Si buscamos un modelo lineal: f(x;w,b) = wTx+ b y resolvemos lasecuaciones normales
, se obtiene: w = 0,b = 12 .
• J(θ) > 0: no se logra aproximar de maneraperfecta la salida.
• Era esperable porque los datos no sonlinealmente separables
15 / 38
Ejemplo: XOR
• Supongamos que queremos aproximar la función f?(x) = xor(x1, x2)
• 4 puntos : {(0, 0), (0, 1), (1, 0), (1, 1)}, con salidas 0, 1, 1, 0 respec.
• Objetivo: encontrar f que prediga bien los cuatro puntos
• Planteamos una regresión:
J(θ) =1
4
4∑i=1
(f?(xi)− f(x; θ))2
• Si buscamos un modelo lineal: f(x;w,b) = wTx+ b y resolvemos lasecuaciones normales , se obtiene: w = 0,b = 1
2 .
• J(θ) > 0: no se logra aproximar de maneraperfecta la salida.
• Era esperable porque los datos no sonlinealmente separables
15 / 38
Ejemplo: XOR
• Supongamos que queremos aproximar la función f?(x) = xor(x1, x2)
• 4 puntos : {(0, 0), (0, 1), (1, 0), (1, 1)}, con salidas 0, 1, 1, 0 respec.
• Objetivo: encontrar f que prediga bien los cuatro puntos
• Planteamos una regresión:
J(θ) =1
4
4∑i=1
(f?(xi)− f(x; θ))2
• Si buscamos un modelo lineal: f(x;w,b) = wTx+ b y resolvemos lasecuaciones normales , se obtiene: w = 0,b = 1
2 .
• J(θ) > 0: no se logra aproximar de maneraperfecta la salida.
• Era esperable porque los datos no sonlinealmente separables
15 / 38
Ejemplo: XOR
• Supongamos que queremos aproximar la función f?(x) = xor(x1, x2)
• 4 puntos : {(0, 0), (0, 1), (1, 0), (1, 1)}, con salidas 0, 1, 1, 0 respec.
• Objetivo: encontrar f que prediga bien los cuatro puntos
• Planteamos una regresión:
J(θ) =1
4
4∑i=1
(f?(xi)− f(x; θ))2
• Si buscamos un modelo lineal: f(x;w,b) = wTx+ b y resolvemos lasecuaciones normales , se obtiene: w = 0,b = 1
2 .
• J(θ) > 0: no se logra aproximar de maneraperfecta la salida.
• Era esperable porque los datos no sonlinealmente separables
15 / 38
Ejemplo: XOR
Supongamos que se utilizan dos capas (una capa oculta)
• Es decir: y = f(x;W(1),b(1),w(2),b(2)) = f(2)(f(1)(x))
• ¿Qué pasa si f(1) es lineal?
• Utilizamos función de activación ReLU (rectified linear unit)g(x) = max(0, x) (aplicada elemento a elemento)
Si capa oculta tiene dos neuronas, tenemos:
f(2)(f(1)(x)) = w(2)T max{0,W(1)Tx+ b(1)}+ b(2)
Solución con error cero (J(θ) = 0):
W(1) =
[1 11 1
], b(1) =
[0−1
],w(2) =
[1−2
], b(2) = 0
16 / 38
Ejemplo: XOR
Supongamos que se utilizan dos capas (una capa oculta)
• Es decir: y = f(x;W(1),b(1),w(2),b(2)) = f(2)(f(1)(x))
• ¿Qué pasa si f(1) es lineal?
• Utilizamos función de activación ReLU (rectified linear unit)g(x) = max(0, x) (aplicada elemento a elemento)
Si capa oculta tiene dos neuronas, tenemos:
f(2)(f(1)(x)) = w(2)T max{0,W(1)Tx+ b(1)}+ b(2)
Solución con error cero (J(θ) = 0):
W(1) =
[1 11 1
], b(1) =
[0−1
],w(2) =
[1−2
], b(2) = 0
16 / 38
Ejemplo: XOR
Supongamos que se utilizan dos capas (una capa oculta)
• Es decir: y = f(x;W(1),b(1),w(2),b(2)) = f(2)(f(1)(x))
• ¿Qué pasa si f(1) es lineal?
• Utilizamos función de activación ReLU (rectified linear unit)g(x) = max(0, x) (aplicada elemento a elemento)
Si capa oculta tiene dos neuronas, tenemos:
f(2)(f(1)(x)) = w(2)T max{0,W(1)Tx+ b(1)}+ b(2)
Solución con error cero (J(θ) = 0):
W(1) =
[1 11 1
], b(1) =
[0−1
],w(2) =
[1−2
], b(2) = 0
16 / 38
Ejemplo: XOR
Supongamos que se utilizan dos capas (una capa oculta)
• Es decir: y = f(x;W(1),b(1),w(2),b(2)) = f(2)(f(1)(x))
• ¿Qué pasa si f(1) es lineal?
• Utilizamos función de activación ReLU (rectified linear unit)g(x) = max(0, x) (aplicada elemento a elemento)
Si capa oculta tiene dos neuronas, tenemos:
f(2)(f(1)(x)) = w(2)T max{0,W(1)Tx+ b(1)}+ b(2)
Solución con error cero (J(θ) = 0):
W(1) =
[1 11 1
], b(1) =
[0−1
],w(2) =
[1−2
], b(2) = 0
16 / 38
Ejemplo: XOR
Supongamos que se utilizan dos capas (una capa oculta)
• Es decir: y = f(x;W(1),b(1),w(2),b(2)) = f(2)(f(1)(x))
• ¿Qué pasa si f(1) es lineal?
• Utilizamos función de activación ReLU (rectified linear unit)g(x) = max(0, x) (aplicada elemento a elemento)
Si capa oculta tiene dos neuronas, tenemos:
f(2)(f(1)(x)) = w(2)T max{0,W(1)Tx+ b(1)}+ b(2)
Solución con error cero (J(θ) = 0):
W(1) =
[1 11 1
], b(1) =
[0−1
],w(2) =
[1−2
], b(2) = 0
16 / 38
Ejemplo: XOR
Supongamos que se utilizan dos capas (una capa oculta)
• Es decir: y = f(x;W(1),b(1),w(2),b(2)) = f(2)(f(1)(x))
• ¿Qué pasa si f(1) es lineal?
• Utilizamos función de activación ReLU (rectified linear unit)g(x) = max(0, x) (aplicada elemento a elemento)
Si capa oculta tiene dos neuronas, tenemos:
f(2)(f(1)(x)) = w(2)T max{0,W(1)Tx+ b(1)}+ b(2)
Solución con error cero (J(θ) = 0):
W(1) =
[1 11 1
], b(1) =
[0−1
],w(2) =
[1−2
], b(2) = 0
16 / 38
Ejemplo: XOR
• Intuición: Se puede construir con dos capas que separan linealmente
17 / 38
Capacidad de red de una capa oculta
18 / 38
Capacidad de red de una capa oculta
18 / 38
Capacidad de red de una capa oculta
• Cuantas más neuronas, más capacidad de ajustar
• Capacidad relacionada con número de neuronas ocultas(volveremos sobre esto) y regularización
+λ‖W‖2 “weight decay”
Demo:
http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html
18 / 38
Capacidad de red de una capa oculta
• Cuantas más neuronas, más capacidad de ajustar
• Capacidad relacionada con número de neuronas ocultas(volveremos sobre esto) y regularización
+λ‖W‖2 “weight decay”
Demo:
http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html
18 / 38
Teorema de Aproximación Universal
Teorema (Cybenko, 1989; Hornik 1991)
“Una red neuronal prealimentada con una única capa oculta y unnúmero finito de neuronas, puede aproximar cualquier funcióncontinua en un espacio compacto de Rn.”
• Con los paramétros adecuados, se puede representar una granvariedad de funciones
• Cybenko (1989) para función de activación sigmoide
• Hornik (1991) muestra que lo importante es la arquitecturafeedfoward no función de activación
• Leshno et al. (1993) lo demuestra para una familia más general defunciones, que incluyen a la ReLU.
19 / 38
Teorema de Aproximación Universal
Teorema (Cybenko, 1989; Hornik 1991)
“Una red neuronal prealimentada con una única capa oculta y unnúmero finito de neuronas, puede aproximar cualquier funcióncontinua en un espacio compacto de Rn.”
• Con los paramétros adecuados, se puede representar una granvariedad de funciones
• Cybenko (1989) para función de activación sigmoide
• Hornik (1991) muestra que lo importante es la arquitecturafeedfoward no función de activación
• Leshno et al. (1993) lo demuestra para una familia más general defunciones, que incluyen a la ReLU.
19 / 38
Ejemplo: función Pulso con una Red Neuronal
• Utilizando una Red Neuronal con función de activación ReLU
g(x) = max{x, 0}
• ¿Cómo podemos construir el siguiente Pulso?
β1 β2 β3 β4
Pendiente γ
Slides de Miguel Calvo-Fullana
20 / 38
Ejemplo: función Pulso con una Red Neuronal
γ (x − β2)
γ (x − β1)
γ (x − β3)
γ (x − β4)
max{0, x}
max{0, x}
max{0, x}
max{0, x}
x
+
−
−
+
β1β2 β3β4
Slides de Miguel Calvo-Fullana
21 / 38
Ejemplo: función Pulso con una Red Neuronal
γ (x − β2)
γ (x − β1)
γ (x − β3)
γ (x − β4)
max{0, x}
max{0, x}
max{0, x}
max{0, x}
x
+
−
−
+
β1β2 β3β4
Slides de Miguel Calvo-Fullana
22 / 38
Ejemplo: función Pulso con una Red Neuronal
γ (x − β2)
γ (x − β1)
γ (x − β3)
γ (x − β4)
max{0, x}
max{0, x}
max{0, x}
max{0, x}
x
+
−
−
+
β1β2 β3β4
Slides de Miguel Calvo-Fullana
23 / 38
Ejemplo: función Pulso con una Red Neuronal
γ (x − β2)
γ (x − β1)
γ (x − β3)
γ (x − β4)
max{0, x}
max{0, x}
max{0, x}
max{0, x}
x
+
−
−
+
β1β2 β3β4
γ
Slides de Miguel Calvo-Fullana
24 / 38
Representando funciones continuas con el Pulso
−4 −3 −2 −1 0 1 2 3 4−100
−50
0
50
100
• Podemos aproximar funciones continuas usando pulsos
Slides de Miguel Calvo-Fullana
25 / 38
¿Por qué usar redes profundas?
• Una única capa oculta con número arbitrariamente grande deneuronas es un aproximador universal.
26 / 38
¿Por qué usar redes profundas?
• Una única capa oculta con número arbitrariamente grande deneuronas es un aproximador universal.
1. Redes poco profundas son ineficientes para representar funcionescomplejas
26 / 38
¿Por qué usar redes profundas?
• Una única capa oculta con número arbitrariamente grande deneuronas es un aproximador universal.
Montufar et al. [2014], “Red neuronal (ReLu), concon d entradas, L capas, n unidades por capa oculta,puede calcular funciones con:
O
(nd
)d(L−1)
nd
,
regiones lineales.”
• Número de regiones crece de manera exponencial con profundidadL y polinomial con n, (mucho más rápido que red de una capa ocultacon nL neuronas).
26 / 38
¿Por qué usar redes profundas?
• Una única capa oculta con número arbitrariamente grande deneuronas es un aproximador universal.
Montufar et al. [2014]
26 / 38
¿Por qué usar redes profundas?
• Una única capa oculta con número arbitrariamente grande deneuronas es un aproximador universal.
2. Los datos (o tareas) tienen en general una organización jerárquica
26 / 38
Arquitectura de red de múltiples capas
Red con L capas ocultas.
• Entrada:
x (= h(0))
• Pre-activación capa (j):
a(j)(x) =(W(j)Th(j−1) + b
(j))
• Salida capa (j)
h(j)(x) = g(a(j)(x))
• Salida de la red (capa L+ 1)
f(x) = o(a(L+1)
)
h(1)
h(1)
h(1)
h(2)
f(x)
x1
x2
x3
W(1)
W(1) W(2)
w(3)
w(3)
w(3)
1
2
3
4
1
2
3
1,1
3,3
2,1
3,4
1
2
4
input layer
1st hidden layer
2nd hidden layer
output layer
1 b(1)11 b(2)1
1b(3)h(2)
h(2)
h(2)
W(2)1,1
W(1)
Nomenclatura:
• “3-layer neural net” o“2-hidden-layer neural net”
• Capas totalmente conectadas(“Fully-connected layers”)
• Tambien conocido como(Multi-layer Perceptron (MLP))
27 / 38
Arquitectura de red de múltiples capas
Red con L capas ocultas.
• Entrada:
x (= h(0))
• Pre-activación capa (j):
a(j)(x) =(W(j)Th(j−1) + b
(j))
• Salida capa (j)
h(j)(x) = g(a(j)(x))
• Salida de la red (capa L+ 1)
f(x) = o(a(L+1)
)
h(1)
h(1)
h(1)
h(2)
f(x)
x1
x2
x3
W(1)
W(1) W(2)
w(3)
w(3)
w(3)
1
2
3
4
1
2
3
1,1
3,3
2,1
3,4
1
2
4
input layer
1st hidden layer
2nd hidden layer
output layer
1 b(1)11 b(2)1
1b(3)h(2)
h(2)
h(2)
W(2)1,1
W(1)
Nomenclatura:
• “3-layer neural net” o“2-hidden-layer neural net”
• Capas totalmente conectadas(“Fully-connected layers”)
• Tambien conocido como(Multi-layer Perceptron (MLP))
27 / 38
Arquitectura de red de múltiples capas
Red con L capas ocultas.
• Entrada:
x (= h(0))
• Pre-activación capa (j):
a(j)(x) =(W(j)Th(j−1) + b
(j))
• Salida capa (j)
h(j)(x) = g(a(j)(x))
• Salida de la red (capa L+ 1)
f(x) = o(a(L+1)
)
h(1)
h(1)
h(1)
h(2)
f(x)
x1
x2
x3
W(1)
W(1) W(2)
w(3)
w(3)
w(3)
1
2
3
4
1
2
3
1,1
3,3
2,1
3,4
1
2
4
input layer
1st hidden layer
2nd hidden layer
output layer
1 b(1)11 b(2)1
1b(3)h(2)
h(2)
h(2)
W(2)1,1
W(1)
Nomenclatura:
• “3-layer neural net” o“2-hidden-layer neural net”
• Capas totalmente conectadas(“Fully-connected layers”)
• Tambien conocido como(Multi-layer Perceptron (MLP))
27 / 38
Arquitectura de red de múltiples capas
Red con L capas ocultas.
• Entrada:
x (= h(0))
• Pre-activación capa (j):
a(j)(x) =(W(j)Th(j−1) + b
(j))
• Salida capa (j)
h(j)(x) = g(a(j)(x))
• Salida de la red (capa L+ 1)
f(x) = o(a(L+1)
)
h(1)
h(1)
h(1)
h(2)
f(x)
x1
x2
x3
W(1)
W(1) W(2)
w(3)
w(3)
w(3)
1
2
3
4
1
2
3
1,1
3,3
2,1
3,4
1
2
4
input layer
1st hidden layer
2nd hidden layer
output layer
1 b(1)11 b(2)1
1b(3)h(2)
h(2)
h(2)
W(2)1,1
W(1)
Nomenclatura:
• “3-layer neural net” o“2-hidden-layer neural net”
• Capas totalmente conectadas(“Fully-connected layers”)
• Tambien conocido como(Multi-layer Perceptron (MLP))
27 / 38
Arquitectura de red de múltiples capas
Red con L capas ocultas.
• Entrada:
x (= h(0))
• Pre-activación capa (j):
a(j)(x) =(W(j)Th(j−1) + b
(j))
• Salida capa (j)
h(j)(x) = g(a(j)(x))
• Salida de la red (capa L+ 1)
f(x) = o(a(L+1)
)
h(1)
h(1)
h(1)
h(2)
f(x)
x1
x2
x3
W(1)
W(1) W(2)
w(3)
w(3)
w(3)
1
2
3
4
1
2
3
1,1
3,3
2,1
3,4
1
2
4
input layer
1st hidden layer
2nd hidden layer
output layer
1 b(1)11 b(2)1
1b(3)h(2)
h(2)
h(2)
W(2)1,1
W(1)
Nomenclatura:
• “3-layer neural net” o“2-hidden-layer neural net”
• Capas totalmente conectadas(“Fully-connected layers”)
• Tambien conocido como(Multi-layer Perceptron (MLP))
27 / 38
Arquitectura de red de múltiples capas
Red con L capas ocultas.
• Entrada:
x (= h(0))
• Pre-activación capa (j):
a(j)(x) =(W(j)Th(j−1) + b
(j))
• Salida capa (j)
h(j)(x) = g(a(j)(x))
• Salida de la red (capa L+ 1)
f(x) = o(a(L+1)
)
h(1)
h(1)
h(1)
h(2)
f(x)
x1
x2
x3
W(1)
W(1) W(2)
w(3)
w(3)
w(3)
1
2
3
4
1
2
3
1,1
3,3
2,1
3,4
1
2
4
input layer
1st hidden layer
2nd hidden layer
output layer
1 b(1)11 b(2)1
1b(3)h(2)
h(2)
h(2)
W(2)1,1
W(1)
Nomenclatura:
• “3-layer neural net” o“2-hidden-layer neural net”
• Capas totalmente conectadas(“Fully-connected layers”)
• Tambien conocido como(Multi-layer Perceptron (MLP))
27 / 38
Desafíos en Aprendizaje Profundo
• Las Redes Neuronales proporcionan una familia de funcionesparamétricas capaz de aproximar cualquier función de losdatos.
• ¿Esto resuelve todos los problemas?
1 Optimización: Ya no es convexa!• Métodos eficientes, pero sin garantías (clase 8)
2 Arquitectura: ¿Cuántas capas, neuronas, conexiones, etc.?• Conocimiento del problema / datos (inductive bias)
3 Generalización: Aproxima la función de los datos deentrenamiento ¿y en evaluación?
• Regularización (clase 7), (también en clase 19)
28 / 38
Desafíos en Aprendizaje Profundo
• Las Redes Neuronales proporcionan una familia de funcionesparamétricas capaz de aproximar cualquier función de losdatos.
• ¿Esto resuelve todos los problemas?
1 Optimización: Ya no es convexa!
• Métodos eficientes, pero sin garantías (clase 8)
2 Arquitectura: ¿Cuántas capas, neuronas, conexiones, etc.?• Conocimiento del problema / datos (inductive bias)
3 Generalización: Aproxima la función de los datos deentrenamiento ¿y en evaluación?
• Regularización (clase 7), (también en clase 19)
28 / 38
Desafíos en Aprendizaje Profundo
• Las Redes Neuronales proporcionan una familia de funcionesparamétricas capaz de aproximar cualquier función de losdatos.
• ¿Esto resuelve todos los problemas?
1 Optimización: Ya no es convexa!• Métodos eficientes, pero sin garantías (clase 8)
2 Arquitectura: ¿Cuántas capas, neuronas, conexiones, etc.?• Conocimiento del problema / datos (inductive bias)
3 Generalización: Aproxima la función de los datos deentrenamiento ¿y en evaluación?
• Regularización (clase 7), (también en clase 19)
28 / 38
Desafíos en Aprendizaje Profundo
• Las Redes Neuronales proporcionan una familia de funcionesparamétricas capaz de aproximar cualquier función de losdatos.
• ¿Esto resuelve todos los problemas?
1 Optimización: Ya no es convexa!• Métodos eficientes, pero sin garantías (clase 8)
2 Arquitectura: ¿Cuántas capas, neuronas, conexiones, etc.?
• Conocimiento del problema / datos (inductive bias)
3 Generalización: Aproxima la función de los datos deentrenamiento ¿y en evaluación?
• Regularización (clase 7), (también en clase 19)
28 / 38
Desafíos en Aprendizaje Profundo
• Las Redes Neuronales proporcionan una familia de funcionesparamétricas capaz de aproximar cualquier función de losdatos.
• ¿Esto resuelve todos los problemas?
1 Optimización: Ya no es convexa!• Métodos eficientes, pero sin garantías (clase 8)
2 Arquitectura: ¿Cuántas capas, neuronas, conexiones, etc.?• Conocimiento del problema / datos (inductive bias)
3 Generalización: Aproxima la función de los datos deentrenamiento ¿y en evaluación?
• Regularización (clase 7), (también en clase 19)
28 / 38
Desafíos en Aprendizaje Profundo
• Las Redes Neuronales proporcionan una familia de funcionesparamétricas capaz de aproximar cualquier función de losdatos.
• ¿Esto resuelve todos los problemas?
1 Optimización: Ya no es convexa!• Métodos eficientes, pero sin garantías (clase 8)
2 Arquitectura: ¿Cuántas capas, neuronas, conexiones, etc.?• Conocimiento del problema / datos (inductive bias)
3 Generalización: Aproxima la función de los datos deentrenamiento ¿y en evaluación?
• Regularización (clase 7), (también en clase 19)
28 / 38
Desafíos en Aprendizaje Profundo
• Las Redes Neuronales proporcionan una familia de funcionesparamétricas capaz de aproximar cualquier función de losdatos.
• ¿Esto resuelve todos los problemas?
1 Optimización: Ya no es convexa!• Métodos eficientes, pero sin garantías (clase 8)
2 Arquitectura: ¿Cuántas capas, neuronas, conexiones, etc.?• Conocimiento del problema / datos (inductive bias)
3 Generalización: Aproxima la función de los datos deentrenamiento ¿y en evaluación?
• Regularización (clase 7), (también en clase 19)
28 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Espacio de funciones paramétricas de predicción fΘ(x)
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Espacio de funciones paramétricas de predicción fΘ(x)fΘ(x)
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Espacio de funciones paramétricas de predicción fΘ(x)fΘ(x) Error de
Aproximación
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Espacio de funciones paramétricas de predicción fΘ(x)fΘ(x)
fΘ(x;D )
Error de Aproximación
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Espacio de funciones paramétricas de predicción fΘ(x)fΘ(x)
fΘ(x;D )
Error de Aproximación
Error de Generalización
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Espacio de funciones paramétricas de predicción fΘ(x)fΘ(x)
fΘ(x;D )
fΘ(x;D )
Error de Aproximación
Error de Generalización
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Espacio de funciones de predicción f(x)f*(x)
Espacio de funciones paramétricas de predicción fΘ(x)fΘ(x)
fΘ(x;D )
fΘ(x;D )
Error de Aproximación
Error de Generalización
Error de Optimización
Basado en slides de R. Vidal
29 / 38
Tres desafíos en Aprendizaje Profundo
Arquitectura(Aproximación)
Generalización Optimización
Basado en slides de R. Vidal
29 / 38
Aprendizaje basado en Optimización
Red de 50 capas Red de 100 capas
Li et al. “Visualizing the Loss Landscape of Neural Nets”, NeurIPS 2018
30 / 38
Aprendizaje basado en Optimización
• Queremos encontrar f(x; θ) que aproxime datos en un conjuntode puntos {(x1, y1), . . . , (x1, y1)},
• Definimos una arquitectura de red:
f(x; θ) := f (n)(f (n−1)
(· · · f (2)
(f (1) (x)
)· · ·))
.
• Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
parámetros θ =[W(1),W(2), . . . ,W(n)
]• Optimización mediante descenso por gradiente (estocástico)
• Necesitamos calcular el gradiente: Algoritmo Backpropagation(¡Próxima clase!) [Repasar regla de la cadena]
31 / 38
Aprendizaje basado en Optimización
• Queremos encontrar f(x; θ) que aproxime datos en un conjuntode puntos {(x1, y1), . . . , (x1, y1)},
• Definimos una arquitectura de red:
f(x; θ) := f (n)(f (n−1)
(· · · f (2)
(f (1) (x)
)· · ·))
.
• Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
parámetros θ =[W(1),W(2), . . . ,W(n)
]• Optimización mediante descenso por gradiente (estocástico)
• Necesitamos calcular el gradiente: Algoritmo Backpropagation(¡Próxima clase!) [Repasar regla de la cadena]
31 / 38
Aprendizaje basado en Optimización
• Queremos encontrar f(x; θ) que aproxime datos en un conjuntode puntos {(x1, y1), . . . , (x1, y1)},
• Definimos una arquitectura de red:
f(x; θ) := f (n)(f (n−1)
(· · · f (2)
(f (1) (x)
)· · ·))
.
• Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
parámetros θ =[W(1),W(2), . . . ,W(n)
]
• Optimización mediante descenso por gradiente (estocástico)
• Necesitamos calcular el gradiente: Algoritmo Backpropagation(¡Próxima clase!) [Repasar regla de la cadena]
31 / 38
Aprendizaje basado en Optimización
• Queremos encontrar f(x; θ) que aproxime datos en un conjuntode puntos {(x1, y1), . . . , (x1, y1)},
• Definimos una arquitectura de red:
f(x; θ) := f (n)(f (n−1)
(· · · f (2)
(f (1) (x)
)· · ·))
.
• Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
parámetros θ =[W(1),W(2), . . . ,W(n)
]• Optimización mediante descenso por gradiente (estocástico)
• Necesitamos calcular el gradiente: Algoritmo Backpropagation(¡Próxima clase!) [Repasar regla de la cadena]
31 / 38
Aprendizaje basado en Optimización
• Queremos encontrar f(x; θ) que aproxime datos en un conjuntode puntos {(x1, y1), . . . , (x1, y1)},
• Definimos una arquitectura de red:
f(x; θ) := f (n)(f (n−1)
(· · · f (2)
(f (1) (x)
)· · ·))
.
• Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
parámetros θ =[W(1),W(2), . . . ,W(n)
]• Optimización mediante descenso por gradiente (estocástico)
• Necesitamos calcular el gradiente: Algoritmo Backpropagation(¡Próxima clase!) [Repasar regla de la cadena]
31 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
En realidad, nos gustaría minimizar error de predicción esperado:
θ? = argminθ
Ex,y
{L(f(x; θ), y)
}Para obtener una buena aproximación del error esperado necesito:
• contar con muchos datos (n � 1)
• los datos sean de la misma distribución subyacente.
32 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
En realidad, nos gustaría minimizar error de predicción esperado:
θ? = argminθ
Ex,y
{L(f(x; θ), y)
}
Para obtener una buena aproximación del error esperado necesito:
• contar con muchos datos (n � 1)
• los datos sean de la misma distribución subyacente.
32 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
Planteamos el problema como una minimización:
θ = argminθ
n∑i=1
L(f(xi; θ), yi)
En realidad, nos gustaría minimizar error de predicción esperado:
θ? = argminθ
Ex,y
{L(f(x; θ), y)
}Para obtener una buena aproximación del error esperado necesito:
• contar con muchos datos (n � 1)
• los datos sean de la misma distribución subyacente.
32 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que el algoritmo entrenadofuncione bien en datos no conocidos
• A esta habilidad se le llama generalización y se mide con el error degeneralización o test error
• Error de generalización: valor esperado del error en una muestra noconocida (se asume proviene de la misma distribución subyacente)
• Esto diferencia el aprendizaje automático de la optimización
• Podemos estimar el error de generalización en un conjunto de datosno utilizado durante la etapa de entrenamiento:
• partición de datos en: train + validation + test• validación cruzada + test
33 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que el algoritmo entrenadofuncione bien en datos no conocidos
• A esta habilidad se le llama generalización y se mide con el error degeneralización o test error
• Error de generalización: valor esperado del error en una muestra noconocida (se asume proviene de la misma distribución subyacente)
• Esto diferencia el aprendizaje automático de la optimización
• Podemos estimar el error de generalización en un conjunto de datosno utilizado durante la etapa de entrenamiento:
• partición de datos en: train + validation + test• validación cruzada + test
33 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que el algoritmo entrenadofuncione bien en datos no conocidos
• A esta habilidad se le llama generalización y se mide con el error degeneralización o test error
• Error de generalización: valor esperado del error en una muestra noconocida (se asume proviene de la misma distribución subyacente)
• Esto diferencia el aprendizaje automático de la optimización
• Podemos estimar el error de generalización en un conjunto de datosno utilizado durante la etapa de entrenamiento:
• partición de datos en: train + validation + test• validación cruzada + test
33 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que el algoritmo entrenadofuncione bien en datos no conocidos
• A esta habilidad se le llama generalización y se mide con el error degeneralización o test error
• Error de generalización: valor esperado del error en una muestra noconocida (se asume proviene de la misma distribución subyacente)
• Esto diferencia el aprendizaje automático de la optimización
• Podemos estimar el error de generalización en un conjunto de datosno utilizado durante la etapa de entrenamiento:
• partición de datos en: train + validation + test• validación cruzada + test
33 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que el algoritmo entrenadofuncione bien en datos no conocidos
• A esta habilidad se le llama generalización y se mide con el error degeneralización o test error
• Error de generalización: valor esperado del error en una muestra noconocida (se asume proviene de la misma distribución subyacente)
• Esto diferencia el aprendizaje automático de la optimización
• Podemos estimar el error de generalización en un conjunto de datosno utilizado durante la etapa de entrenamiento:
• partición de datos en: train + validation + test• validación cruzada + test
33 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• Sea Dtrain,Dtest ∼ pdata(x, y) conjuntos de entrenamiento y testing generados apartir de la misma distribución generadora
• Entrenamos un sistema de manera de obtener los parámetros que minimizanla función
θ = argminθ
ntrain∑i=1
Li(f(xi; θ), yi)
• Podemos definir los errores en el conjunto de entrenamiento y de test,
Etrain =1
ntrain
ntrain∑i=1
Li(f(xi; θ), yi), Etest =1
ntest
ntest∑i=1
Li(f(xi; θ), yi)
• El objetivo del aprendizaje automático es que• Etrain sea muy pequeno• Etrain y Etest sean similares
• Si Etrain es grande: modelo subajusta (underfitting), modelo elegido no essuficientemente complejo como para representar los datos (poca capacidad)
• Si Etest − Etrain es grande: modelo sobreajusta (overfitting), modelo demasiadocomplejo y sobreajusta conjunto de entrenamiento (demasiada capacidad)
• Capacidad del modelo es controlada por: espacio de funciones (e.g.,polinomios de grado n), regularización, cantidad de parámetros
34 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• Sea Dtrain,Dtest ∼ pdata(x, y) conjuntos de entrenamiento y testing generados apartir de la misma distribución generadora
• Entrenamos un sistema de manera de obtener los parámetros que minimizanla función
θ = argminθ
ntrain∑i=1
Li(f(xi; θ), yi)
• Podemos definir los errores en el conjunto de entrenamiento y de test,
Etrain =1
ntrain
ntrain∑i=1
Li(f(xi; θ), yi), Etest =1
ntest
ntest∑i=1
Li(f(xi; θ), yi)
• El objetivo del aprendizaje automático es que• Etrain sea muy pequeno• Etrain y Etest sean similares
• Si Etrain es grande: modelo subajusta (underfitting), modelo elegido no essuficientemente complejo como para representar los datos (poca capacidad)
• Si Etest − Etrain es grande: modelo sobreajusta (overfitting), modelo demasiadocomplejo y sobreajusta conjunto de entrenamiento (demasiada capacidad)
• Capacidad del modelo es controlada por: espacio de funciones (e.g.,polinomios de grado n), regularización, cantidad de parámetros
34 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• Sea Dtrain,Dtest ∼ pdata(x, y) conjuntos de entrenamiento y testing generados apartir de la misma distribución generadora
• Entrenamos un sistema de manera de obtener los parámetros que minimizanla función
θ = argminθ
ntrain∑i=1
Li(f(xi; θ), yi)
• Podemos definir los errores en el conjunto de entrenamiento y de test,
Etrain =1
ntrain
ntrain∑i=1
Li(f(xi; θ), yi), Etest =1
ntest
ntest∑i=1
Li(f(xi; θ), yi)
• El objetivo del aprendizaje automático es que• Etrain sea muy pequeno• Etrain y Etest sean similares
• Si Etrain es grande: modelo subajusta (underfitting), modelo elegido no essuficientemente complejo como para representar los datos (poca capacidad)
• Si Etest − Etrain es grande: modelo sobreajusta (overfitting), modelo demasiadocomplejo y sobreajusta conjunto de entrenamiento (demasiada capacidad)
• Capacidad del modelo es controlada por: espacio de funciones (e.g.,polinomios de grado n), regularización, cantidad de parámetros
34 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• Sea Dtrain,Dtest ∼ pdata(x, y) conjuntos de entrenamiento y testing generados apartir de la misma distribución generadora
• Entrenamos un sistema de manera de obtener los parámetros que minimizanla función
θ = argminθ
ntrain∑i=1
Li(f(xi; θ), yi)
• Podemos definir los errores en el conjunto de entrenamiento y de test,
Etrain =1
ntrain
ntrain∑i=1
Li(f(xi; θ), yi), Etest =1
ntest
ntest∑i=1
Li(f(xi; θ), yi)
• El objetivo del aprendizaje automático es que• Etrain sea muy pequeno• Etrain y Etest sean similares
• Si Etrain es grande: modelo subajusta (underfitting), modelo elegido no essuficientemente complejo como para representar los datos (poca capacidad)
• Si Etest − Etrain es grande: modelo sobreajusta (overfitting), modelo demasiadocomplejo y sobreajusta conjunto de entrenamiento (demasiada capacidad)
• Capacidad del modelo es controlada por: espacio de funciones (e.g.,polinomios de grado n), regularización, cantidad de parámetros
34 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que• Etrain sea muy pequeno• Etrain y Etest sean similares
• Si Etrain es grande: modelo subajusta (underfitting), modelo elegido no essuficientemente complejo como para representar los datos (poca capacidad)
• Si Etest − Etrain es grande: modelo sobreajusta (overfitting), modelo demasiadocomplejo y sobreajusta conjunto de entrenamiento (demasiada capacidad)
• Capacidad del modelo es controlada por: espacio de funciones (e.g.,polinomios de grado n), regularización, cantidad de parámetros
34 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que• Etrain sea muy pequeno• Etrain y Etest sean similares
• Si Etrain es grande: modelo subajusta (underfitting), modelo elegido no essuficientemente complejo como para representar los datos (poca capacidad)
• Si Etest − Etrain es grande: modelo sobreajusta (overfitting), modelo demasiadocomplejo y sobreajusta conjunto de entrenamiento (demasiada capacidad)
• Capacidad del modelo es controlada por: espacio de funciones (e.g.,polinomios de grado n), regularización, cantidad de parámetros
34 / 38
Capacidad, sobreajuste, subajustecapacity, overfitting, underfitting
• El objetivo del aprendizaje automático es que• Etrain sea muy pequeno• Etrain y Etest sean similares
• Si Etrain es grande: modelo subajusta (underfitting), modelo elegido no essuficientemente complejo como para representar los datos (poca capacidad)
• Si Etest − Etrain es grande: modelo sobreajusta (overfitting), modelo demasiadocomplejo y sobreajusta conjunto de entrenamiento (demasiada capacidad)
• Capacidad del modelo es controlada por: espacio de funciones (e.g.,polinomios de grado n), regularización, cantidad de parámetros
34 / 38
Capacidad: Ejemplo
Dado un conjunto de ntrain puntos de entrenamiento ajustamos unpolinomio de orden n,
y = b+
n∑i=1
wixi.
35 / 38
Capacidad: Ejemplo
Dado un conjunto de ntrain puntos de entrenamiento ajustamos unpolinomio de orden n,
y = b+
n∑i=1
wixi.
Evaluamos el error de ajuste utilizando un conjunto de testing
Capacidad ideal: orden ≈ 3
35 / 38
Capacidad: Ejemplo
Dado un conjunto de ntrain puntos de entrenamiento ajustamos unpolinomio de orden n,
y = b+
n∑i=1
wixi.
Evaluamos el error de ajuste utilizando un conjunto de testing
Capacidad ideal: orden ≈ 3
35 / 38
Capacidad: Ejemplo
ntrain = 5
36 / 38
Capacidad: Ejemplo
ntrain = 6
36 / 38
Capacidad: Ejemplo
ntrain = 7
36 / 38
Capacidad: Ejemplo
ntrain = 10
36 / 38
Capacidad: Ejemplo
Capacidad ideal depende del (tamaño) conjunto de
entrenamiento
ntrain = 5 ntrain = 10
36 / 38
Número de parámetros de una red
• Red de 2 capas
• 1 capa oculta (4 neuronas), 1 capa de salida (2 neuronas), 3 entradas
• 4 + 2 = 6 neuronas
• 3x4 + 4x2 = 20 pesos, 4 + 2 = 6 bias = 26 parámetros
37 / 38
Número de parámetros de una red
• Red de 3 capas
• 2 capas ocultas (4 neuronas cada una), 1 capa de salida (1 neurona)
• 4 + 4 + 1 = 9 neuronas
• 3x4 + 4x4 + 4x1 = 32 pesos, 4 + 4 +1 = 9 biases = 41 parámetros
37 / 38
Número de parámetros de una red
¿Es el número de parámetros una buena medida de la capacidad?
37 / 38
Número de parámetros de una red
w
• Redes de convolución (que vamos a ver más adelante), muyutilizadas en la práctica pueden llegar a tener decenas de capas yvarios millones de parámetros.
37 / 38
Número de parámetros de una red
Xie et al. “Exploring Randomly Wired Neural Networks for Image Recognition”, ICCV 2019
• No todas las redes neuronales tienen una estructura regular de capas!
37 / 38
Red Neuronal de Dos Capas en 16 líneas de código
• W1,W2 – parámetros a aprender (sin bias)
• Minimiza la norma 2 entre predicción y valor realEjemplo de J. Johnson
38 / 38