You are on page 1of 19

Redes Neuronales Convolucionales

Dr. Erik Zamora

Contenido

Para qu sirve?
Arquitectura
Convolucin
No-linealidades
Agrupamiento (Pooling)
Aprendizaje
Descenso por gradiente estocstico
Estrategias adicionales (buenas prcticas)
Retro-propagacin
Funcin Objetivo
Libreras
Demostracin en Matlab
Tarea

Para qu sirve una CNN?

Ventajas:
Menos parmetros, ms velocidad de aprendizaje

Especializada para datos 2D: imgenes


o espectrogramas de sonido

Proporciona invarianza a la traslacin

Aplicaciones comerciales:

LeNet: Lector de cheques automtico usado en U.SA. y Europa en los 90s en un DSP por AT&T (video
http://ow.ly/SCpir LeCun 98, Gradient-based learning)
Reconocimiento de caracteres arbigos y chinos por Microsoft (Abdulkader 06, Chellapilla &
Simardvideos 06, http://ow.ly/SCtEX, http://ow.ly/SCri0 )
Deteccin y borrado automtico de rostros y placas vehiculares para proteccin de la privacidad en
Google Street View (Frome et al. 09, Large-scale Privacy Protection)
Identificacin del gnero y la edad de los usuarios de mquinas expendedoras por la empresa NEC
Labs en Japn (http://ow.ly/SCKhe)
Deteccin y seguimiento de clientes en supermercados por NEC Labs (Fan et al. 10, Human Tracking
using video http://ow.ly/SFqFs )
Deteccin de intrusos y ladrones por la empresa AgilityVideo (http://www.agilityvideo.com/)

Para que sirve una CNN?

Aplicaciones experimentales:

Deteccin de rostros con record en velocidad y precisin (Nasse et al. 09 Face Detection using GPU)
Identificacin de expresiones faciales (video http://ow.ly/SCMyB Kahou et al. 13, Combining modality)
Evasin de obstculos para robots mviles usando visin (video http://ow.ly/SCN0S Hassell, LeCun et al.
09)
Deteccin de obstculos a gran distancia (Hassell, LeCun et al. 09)
Segmentacin de imgenes biolgicas (Ning 08 Toward automatic phenotyping video
http://ow.ly/SFqxg )
Restauracin de imgenes (eliminacin del ruido) (Jain et al. 08 Natural image denoising)
Reconstruccin de circuitos neuronales a partir de imgenes transversales del cerebro con espesor
nanomtrico (Jain et al.. 2007 Supervised learning of image restoration )
Y cuando combinan las redes neuronales con algoritmos evolutivos, una computadora puede aprender a
jugar Mario Bros (video http://ow.ly/SDKAp Stanley y Miikkulainen Evolving Neural Networks.)
Robot que aprende a hacer tareas (video http://ow.ly/SP3y2 Levine et al. 2015 End-to-End Training)

Arquitectura

[LeCun 2010]

Convolucin

No-linealidades

Agrupamiento

[LeCun 2010]

[UFLDL Tutorial]

Arquitectura: Convolucin

[A. Dundar 2013]

[UFLDL Tutorial]

Mapas de Rasgos

Arquitectura: No linealidades (funciones de activacin)


1

Sigmoide Logistica =

Sigmoide Hiperbolica = tanh

Sigmoide rectificada = abs (g i tanh ) (normalizacin de contraste local)

ReLU (Rectified linear unit) = max 0,

1+

Funcin Softplus = ln 1 +
> 0
Leaky ReLUs =
0.01
Noisy ReLUs = max 0, + 0, ()

Neurona Maxout max 1 + 1 , 2 + 2 (Goodfeloow et al. 2013)

Qu funcin debera usar? Use ReLU (puede intentar con Leaky ReLu o Maxout). Nunca use la sigmoide
logstica. Puede intentarlo con tanh, pero espere peores resultados.

Arquitectura: Agrupamiento (pooling)


Tipo de Agrupamiento
Promedio
Max

Ventajas:
reduce el nmero de rasgos y reduce el problema del
sobreajuste.
Invarianza la traslacin

[UFLDL Tutorial]

Divide el mapa de rasgos en regiones


sin traslape

Desventaja:
varias capas desvanece la informacin de
la localizacin del rasgo, provocando que
e.g. se pueda reconocer rostros, pero no
de quien pertenece.

Aprendizaje
Ejemplos

Supervisado

80%/20%
Datos de
Entrada

Datos de
Salida

Entrenamiento

Prueba

80%/20%
No Supervisado
Datos de
Entrada

Entrenamiento
?

Descubrir
Estructura
de Datos

Por reforzamiento
Datos de
Entrada

ExploracinExplotacin

Criterios de Reforzamiento

Validacin

Prueba

Usa el conjunto de validacin para ajustar los


hiperparametros del algoritmo de aprendizaje y
prevenir el sobreajuste.
Usa el conjunto de prueba para medir el
desempeo final del modelo; solo una vez.

Aprendizaje: Descenso por gradiente estocstico


Problema: Hallar que minimiza (o maximiza) la funcin .
Solucin:
Inicializacin aleatoria = ,
Desde = 1 a repetir
: = ; ,
Fin

100

100

100

80

80

80

60

60

60

40

40

40

20

20

20

0
-10

-5

pequeo

10

0
-10

-5

mediano

10

0
-10

-5

grande

10

Aprendizaje: Estrategias adicionales (buenas prcticas)


1. Subconjuntos
de ejemplos

3. Adaptacin del ndice de aprendizaje

4. Momento
: = + ; ,
: =

2. Aleatoriedad
Todos Ejemplos de Entrenamiento

0,1
=
[CS231n Stanford]

Iteracin

Subconjunto aleatorio,
No solo un ejemplo por
iteracin

Calcular el gradiente
estocstico

La dificultad de usar SGD es


hallar un adecuado
Comnmente, se necesita
un gran a inicio
y uno grande al final

Aprendizaje: Estrategias adicionales (buenas prcticas)

5. Pre-procesamiento

6. Inicializacin

Sustraccin de
Normalizacin
la media

Pesos
= 2rand 1
= randn

2/

[CS231n Stanford]

Polarizaciones

PCA

Blanqueado

= 0
= 0.01

[CS231n Stanford]

para ReLUs

Aprendizaje: Estrategias adicionales (buenas prcticas)

Problema: Sobreajuste

7. Regularizacin

Modelo
muy
simple

Modelo
muy
complejo

L2

1 2

L1

Norma mxima

<

Dropout (apagado aleatorio)

Error de Validacin

Error de Entrenamiento

Regularizacin de polarizaciones
[CS231n Stanford]

Consejo: usar la regularizacin L2 junto con Dropout, y ajustar y p mediante los ejemplos de validacin

[Srivastava et al. 2014]

Aprendizaje: retro-propagacin

Calculo del Gradiente


Para capas conectividad total

Algoritmo de Retropropagacin
Inicializacin = ,
Desde = 1 a repetir
1.- Propagar hacia adelante
(calcular el error)
2.- Propagar hacia atrs
(calcular el gradiente)
3.- Actualizar parmetros
: = ; ,
Fin

+1

, ; , = +1

Para capas convolutivas y de agrupamiento


= upsample

+1

, ; , =

, ; , = +1

rot90 +1 , 2

=1

+1

, ; , =

Aprendizaje: Funcin Objetivo


Nombre
Norma L2

Expresin Matemtica

22

=
=

Euclideana (L1)
SVM Multiclase

Para qu sirve?
Regresin

max 0, + 1

Clasificacin
excluyente

Clasificador
Softmax (entropa
cruzada)

= log

Softmax
Jerrquico

(Mikolov et al. 2013)

max 0, 1

Clasificacin
excluyente

Clasificacin de un
gran nmero de
clases.
Clasificacin no
excluyente

Regresin
logstica binaria

log

+ 1 log 1

Clasificacin no
excluyente

Libreras

Caffe (C++ con interfaces para Matlab y Python) Es la ms popular


http://caffe.berkeleyvision.org/
Torch (C y Lua) usado por Facebook Research, Google Deepmind y Twitter
http://torch.ch/docs/cvpr15.html
Theano (Python) http://deeplearning.net/software/theano/
MatConvnet (Matlab) http://www.vlfeat.org/matconvnet/
Cuda-convnet (CUDA) https://code.google.com/p/cuda-convnet2/
Deepleaning4j (Java) http://deeplearning4j.org/
A Modern Computer Vision Library - ConvNet: Deep Convolutional Networks
http://libccv.org/doc/doc-convnet/

Deep Learning Libraries by Language


http://www.teglor.com/b/deep-learning-libraries-language-cm569/

Demostracin en Matlab

Tarea

Resumen

Para qu sirve?
Arquitectura
Convolucin
No-linealidades
Agrupamiento (Pooling)
Aprendizaje
Descenso por gradiente estocstico
Estrategias adicionales (buenas prcticas)
Retro-propagacin
Funcin Objetivo
Libreras
Demostracin en Matlab
Tarea

You might also like