maquinas discriminativas profundas´ deep learningmlazaro/docencia/dl/dl-sesion-01-lab-2p.pdf ·...

14
aquinas Discriminativas Profundas (Deep Learning) Ejemplo pr ´ actico en laboratorio . http://www.tsc.uc3m.es/ ˜ mlazaro/Docencia/DL.html Marcelino L´ azaro Universidad Carlos III de Madrid Marcelino L´ azaro, 2020 1 / 27 Instrucciones iniciales Ficheros necesarios en el directorio de trabajo http://www.tsc.uc3m.es/ ˜ mlazaro/Docencia/DL.html I Python Notebook F practicaDL-2020.ipynb I Fichero de m ´ etodos de aprendizaje F metodosDL.py I Ficheros de datos (http://yann.lecun.com/exdb/mnist/) F train-images-idx3-ubyte.gz F train-labels-idx1-ubyte.gz F t10k-images-idx3-ubyte.gz F t10k-labels-idx1-ubyte.gz Librer´ ıas necesarias I numpy I matplotlib I gzip I tensorflow I scikit-learn Marcelino L´ azaro, 2020 aquinas Discriminativas Profundas (LAB) 2 / 27

Upload: others

Post on 21-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Maquinas Discriminativas Profundas(Deep Learning)

Ejemplo practico en laboratorio.

http://www.tsc.uc3m.es/˜mlazaro/Docencia/DL.html

Marcelino Lazaro

Universidad Carlos III de Madrid

Marcelino Lazaro, 2020 1 / 27

Instrucciones iniciales

Ficheros necesarios en el directorio de trabajohttp://www.tsc.uc3m.es/˜mlazaro/Docencia/DL.html

I Python NotebookF practicaDL-2020.ipynb

I Fichero de metodos de aprendizajeF metodosDL.py

I Ficheros de datos (http://yann.lecun.com/exdb/mnist/)F train-images-idx3-ubyte.gzF train-labels-idx1-ubyte.gzF t10k-images-idx3-ubyte.gzF t10k-labels-idx1-ubyte.gz

Librerıas necesariasI numpyI matplotlibI gzipI tensorflowI scikit-learn

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 2 / 27

Page 2: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Indice de contenidos

Aprendizaje profundo (“deep learning” ) para clasificacion

I Aplicacion a una version reducida de la base de datos MNISTBreve descripcion de las funciones de aprendizaje disponiblesDiseno de varias soluciones neuronales

I Diseno de una red neuronal no profunda (1 capa oculta)I Diseno de una red neuronal profunda (4 capas oculta)I Diseno de una red de autocodificadores apilados (SDAs:

Stacked Denoising Autoencoders)F Entreno de autocodificadoresF Uso de autocodificadores para la construccion de una red

profundaI Redes profundas con Dropout (y/o Batch normalization)I Redes convolucionales (CNNs: Convolutional Neural Networks)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 3 / 27

Python

Descripcion de las funciones presentes enmetodosDL.py

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 4 / 27

Page 3: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Funciones en Python (evaluacion MLPs)

(o,H)=mlp(x,W,tAct)I x: patrones de entrada (Np ⇥ Ne)I W: pesos de la red: lista the No + 1 elementos

F Capa oculta 1 : (Ne+1) ⇥ Nn1F Capa oculta i : (Nn(i-1)+1) ⇥ NniF Capa de salida : (Nnu+1) ⇥ Ns

I tAct : parametro que define el tipo de funciones de activacion delas diferentes capas (lista de No+1 elementos)

F ‘linear’F ‘sigmoid’F ‘tanh’F ‘relu’F ‘softmax’

Nni: numero de neuronas de la capa oculta i (si i=0, Nni=Ne)Nnu: numero de neuronas de la ultima capa ocultaNo: numero de capas ocultas

I o: salida de la red neuronal (Np ⇥ Ns)I H: lista con las salidas de las capas ocultas (No elementos)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 5 / 27

Funciones de activacion

Lineal

f (x) = x+1

�1Logıstica (sigmoide)

f (x) = 11+e�x

+1

�1Tangente Hiperbolica

f (x) = tanh(x)+1

�1

Lineal rectificada (ReLU)

f (x) =

(0, x < 0x, x � 0

+1

�1Softmax

oi =ezi

MX

k=1

ezk

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 6 / 27

Page 4: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Funciones en Python (entrenamiento MLPs)

Entrenamiento de MLPs con distinto numero de capas ocultas(W,paso,coste,dWm)=entrena mlp(x,y,W,Nepoch)

I x: patrones de entrada (Np ⇥ Ne)I y: etiquetas de salida (Np ⇥ Nc)I W: lista con los pesos de la red (No + 1 elementos)I Nepoch: lista con el numero de iteraciones y el tamano del mini-batch

F Nepoch=[Niter,Nbatch]

Parametros adicionalesI fCoste: funcion de coste a minimizar (’mmse’, ’entropia’, ’wmmse’)I optimizador: metodo de optimizacion (’gradiente’, ’momento’)I tAct: tipo de funciones de activacion de las capas de la redI pDO: probabilidad de Drop-Out de la entrada y capas ocultas (lista No+1 el.)I paso: parametros del paso de adaptacion

F Gradiente: paso=[mu,muCrec,muDec]F Momento: paso=[mu,momento]

I flagEvo: True para que se obtenga el coste cada iteracion

Nc : numero de clases para un problema de clasificacion (ONE-HOT ENCODING)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 7 / 27

Funciones en Python (entrenamiento AE)

Funciones para el entrenamiento de autocodificadores (AE)(we,wd,coste,mu)=entrena AE(x,we,wd,Nepoch,tAct,mu)Entrenamiento de un autocodificador(we,wd,coste,mu)=entrena AEtied(x,we,wd,Nepoch,tAct,mu)Entrenamiento de un autocodificador con pesos “atados”(we,wd,coste,mu)=entrena DAE(x,we,wd,Nepoch,tAct,mu,pRuido)Entrenamiento de un autocodificador con ruido(we,wd,coste,mu)=entrena DAEtied(x,we,wd,Nepoch,tAct,mu,pRuido)Entrenamiento de un autocodificador con ruido y pesos “atados”

I we: pesos del codificador (Ne+1 ⇥ Nn)I wd: pesos del decodificador (Nn+1 ⇥ Ne)I pRuido: probabilidad de ruido (de poner una entrada a cero)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 8 / 27

Page 5: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Perceptron multicapa

(MLP: Multi-Layer Perceptron)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 9 / 27

Red neuronal no profunda: 1 capa oculta (M-ario)

...

......

......

......

......

......

......

......

x(0) x(1) x(2)

Entrada CO-1 CS

o1

o2

o3

o4

o5

oM

y

maximo

y = Ci

si oi > oj 8j 6= i

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 10 / 27

Page 6: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Red profunda: red neuronal con L capas ocultas (M-ario)

...

......

...... ...

...

......

......

......

......

......

......

......

x(0) x(1) x(2) x(L�1) x(L) x(L+1)

EntradaCO-1 CO-2 CO-(L � 1) CO-L CSo1

o2

o3

o4

o5

oM

y

maximo

y = Ci

si oi > oj 8j 6= i

...

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 11 / 27

Autocodificadores Apilados

(SDAs: Stacked Denoising Autoencoders)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 12 / 27

Page 7: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Autocodificadores (“autoencoders”)

...

......

......

x x(k) x

CO-k CS⇤

El entrenamiento de una capa oculta serealiza para obtener una proyeccion de suentrada sin perdida de informacion

I Entrada: x = x(k�1)

I Salida deseada: x = x(k�1)

Denoising autoencodersI Se incluye ruido en la entrada para hacer la

proyeccion robusta a perturbaciones sobre laentrada (y para evitar soluciones triviales)

F Entrada: x = x(k�1) + nF Salida deseada: x = x(k�1)

La capa de salida se descartaI Se usa como mecanısmo para evitar la perdida

de informacion, al garantizar que la proyeccionobtenida es reversible

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 13 / 27

Construccion de red profunda con autocodificadores

x

AE1

xAE1

D1

x xAE1

AE2

xAE2

D2

xAE1

xAE2

AE3

xAE3

D3

xAE2 xAE3

COCS

y

x

AE1

xAE1

AE2

xAE2

AE3

xAE3

COCS

y

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 14 / 27

Page 8: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Redes profundas con Drop-Out

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 15 / 27

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 16 / 27

Page 9: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 17 / 27

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 18 / 27

Page 10: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 19 / 27

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 20 / 27

Page 11: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 21 / 27

Redes Convolucionales

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 22 / 27

Page 12: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Convolutional Neural Network (CNN)

x

CONV1 SUB1 CONV2 SUB2 MLP

y

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 23 / 27

Convolucion (con “padding”)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 24 / 27

Page 13: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Max-Pooling

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 25 / 27

Resultados (Aproximados)

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 26 / 27

Page 14: Maquinas Discriminativas Profundas´ Deep Learningmlazaro/Docencia/DL/DL-Sesion-01-LAB-2p.pdf · Aprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Resultados aproximados esperables

Resolucion 10 ⇥ 10 (2.000 patrones de entrenamiento)I Red neuronal de 1 capa oculta: ⇡ 87 %I Red neuronal de 4 capas ocultas (tanh): ⇡ 86 %I Red neuronal profunda con autocodificadores: ⇡ 88,5 %I Red neuronal profunda (relu) con Dropout: ⇡ 89,75 %I Red neuronal profunda (relu) con Dropout + BN: ⇡ 90,5 %I Red CNN: ⇡ 91,5 %

Resolucion 28 ⇥ 28I Red neuronal de 1 capa oculta: ⇡ 92 %I Red neuronal profunda con autocodificadores: ⇡ 98 %I Red neuronal profunda con Dropout: ⇡ 98,25 %I Red CNN: ⇡ 99 %I Resultados detallados (a lo largo del tiempo)

F http://yann.lecun.com/exdb/mnist/

Marcelino Lazaro, 2020 Maquinas Discriminativas Profundas (LAB) 27 / 27