aprendizaje profundo (primera sesión de demostraciones...

25
Aprendizaje Profundo (Primera sesi ´ on de demostraciones) Actuales avances en M´ aquinas de Aprendizaje (Seminario FOM) . http://www.tsc.uc3m.es/ ˜ mlazaro/Docencia/FOM.html Marcelino L´ azaro Universidad Carlos III de Madrid Marcelino L´ azaro, 2018 1 / 25

Upload: others

Post on 10-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Aprendizaje Profundo(Primera sesion de demostraciones)

Actuales avances en Maquinas de Aprendizaje(Seminario FOM)

.

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

Marcelino Lazaro

Universidad Carlos III de Madrid

Marcelino Lazaro, 2018 1 / 25

Page 2: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje 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 MNIST

Diseno de una red de autocodificadores apilados (SDA: StackedDenoising Autoencoders)

I Entreno de autocodificadoresI Uso de autocodificadores para la construccion de una red

profunda

Redes profundas con Drop-outRedes convolucionales (CNN: Convolutional Neural Networks)Breve descripcion de las funciones de aprendizaje disponibles

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 2 / 25

Page 3: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Aprendizaje profundo(para clasificacion)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 3 / 25

Page 4: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje 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)

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

o2

o3

o4

o5

oM

y

maximo...

· · ·

· · ·

· · ·

· · ·

· · ·

· · ·

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 4 / 25

Page 5: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Neurona - Capa k

...

x(k−1)

x(k−1)1

x(k−1)2

x(k−1)3

x(k−1)Dk−1

w(k)1,i

w(k)2,i

w(k)3,i

w(k)Dk−1,i

x(k)i = f

(∑Dk−1j=1 w(k)

j,i x(k−1)j + w(k)

b

)f (·) ≡ funcion de activacion

f (x) = tanh(x)+1

−1

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 5 / 25

Page 6: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Funciones de activacion mas frecuentes

Lineal

f (x) = x+1

−1Logıstica

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

−1

Softmax

oi =ezi∑M

k=1 ezk

Gausiana

f (x) = e−x2

2σ2

+1

−1

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 6 / 25

Page 7: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Stacked Denoising Autoencoders

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 7 / 25

Page 8: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje 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)

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

de informacion, al garantizar que la proyeccionobtenida es reversible

Denoising autoencodersI Se incluye ruido en la entrada para hacer la

proyeccion robusta a perturbaciones sobre laentrada

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

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 8 / 25

Page 9: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Redes profundas con Drop-Out

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 9 / 25

Page 10: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 10 / 25

Page 11: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 11 / 25

Page 12: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 12 / 25

Page 13: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 13 / 25

Page 14: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 14 / 25

Page 15: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 15 / 25

Page 16: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Redes Convolucionales

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 16 / 25

Page 17: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Convolutional Neural Network (CNN)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 17 / 25

Page 18: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Convolucion (con “padding”)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 18 / 25

Page 19: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Max-Pooling

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 19 / 25

Page 20: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Python

Descripcion de las funciones presentes enmetodosDL.py

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 20 / 25

Page 21: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje 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 (Ne x Np)I W: pesos de la red: lista the No + 1 elementos

F Capa oculta 1 (Nn1 x (Ne+1)F Capa oculta i (Nni x (Nn(i-1)+1)F Capa de salida (Ns x Nnu+1)

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

F 0: linealF 1: tanhF 2: logisticF 3: rectified linear (ReLU)F 4: 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 (Ns x Np)I H: lista con las salidas de las capas ocultas (No elementos)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 21 / 25

Page 22: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Funciones en Python (entrenamiento MLPs)

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

I x: patrones de entrada (Ne x Np)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

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 22 / 25

Page 23: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

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 (Nn x Ne+1)I wd: pesos del decodificador (Ne x Nn+1)I pRuido: probabilidad de ruido (de poner una entrada a cero)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 23 / 25

Page 24: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje profundo (“deep learning”) para clasificacion´ I Aplicacion a una

Resultados (Aproximados)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 24 / 25

Page 25: Aprendizaje Profundo (Primera sesión de demostraciones ...mlazaro/Docencia/FOM/AP-Demostracion.pdfAprendizaje 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: ≈ 86,5 %I Red neuronal de 4 capas ocultas: ≈ 85 %I Red neuronal profunda con autocodificadores: ≈ 88,5 %I Red neuronal profunda con Drop-Out: ≈ 88 %

F Pocas muestras de entrenamiento, y muchas capas ocultasen la configuracion de pruebas

I Red CNN: ≈ 91 %Resolucion 28 × 28

I Red neuronal de 1 capa oculta: ≈ 92 %I Red neuronal profunda con autocodificadores: ≈ 98 %I Red neuronal profunda con Drop-Out: ≈ 98 %I Red CNN: ≈ 99 %

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 25 / 25