APRENDIZAJE PROFUNDO PARA VISIÓN ARTIFICIAL

Post on 19-May-2022

13 views 0 download

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