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

Post on 10-Jun-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

Aprendizaje profundo(para clasificacion)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 3 / 25

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

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

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

Stacked Denoising Autoencoders

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 7 / 25

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

Redes profundas con Drop-Out

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 9 / 25

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 10 / 25

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 11 / 25

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 12 / 25

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 13 / 25

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 14 / 25

x1

x2

x3

x4

x5

o1

o2

o3

o4

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 15 / 25

Redes Convolucionales

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 16 / 25

Convolutional Neural Network (CNN)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 17 / 25

Convolucion (con “padding”)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 18 / 25

Max-Pooling

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 19 / 25

Python

Descripcion de las funciones presentes enmetodosDL.py

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 20 / 25

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

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

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

Resultados (Aproximados)

Marcelino Lazaro, 2018 Demostraciones: Aprendizaje Profundo 24 / 25

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

top related