Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Indice
1. Introduccion 1
2. Historia 2
3. Arquitectura 4
3.1. Convolucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Funciones de aprendizaje 7
5. Software 9
6. Conclusiones 11
1. Introduccion
En este trabajo se realizara una introduccion a las Redes Neuronales Convo-
lucionales. Con este tipo de redes neuronales se intenta simular a las neuronas
de la corteza visual primaria [1], esto se debe a que estan principalmente enfo-
cadas al reconocimiento de imagenes. Se basan en los perceptrones, a los que se
les anaden capas extra que realizan un preprocesado de los datos.
1
2. Historia
Antes de comenzar con la exposicion de los modelos matematicos que usan las
Redes Neuronales Convolucionales, conviene entender su motivacion y conocer
su historia.
La historia de las redes neuronales comienza en 1936 con Alan Turing. Este
fue el primero en estudiar el cerebro como una forma de ver el mundo de la
computacion. Sin embargo, los primeros teoricos que concibieron los fundamen-
tos de la computacion neuronal fueron el neurofisiologo Warren McCullock y
el matematico Walter Pitts, quienes en 1943 lanzaron una teora acerca de la
forma de trabajar de las neuronas ( Un Calculo Logico de la Inminente Idea de
la Actividad Nerviosa - Boletn de Matematica Biofsica 5: 115-133 ). Su modelo
de red neuronal se basaba en los circuitos electricos.
Seis anos despues, en 1949, Donald Held publico en su libro The Organization
of Behavior unas reglas que intentaban explicar los procesos de aprendizaje.
Su idea fue que el aprendizaje ocurra cuando ciertos cambios en una neurona
eran activados. Tambien, intento encontrar semejanzas entre el aprendizaje y la
actividad nerviosa. Los trabajos de Hebb constituyen las bases de la Teora de
las redes neuronales.
2
primera red neuronal aplicada a un problema real, se uso para crear filtros
adaptativos que eliminasen los ecos en las llamadas telefonicas.
A partir del ano 1986, el area de las redes neuronales ha ido evolucionando
a pasos agigantados. En la actualidad, se publican trabajos de forma constante
y cada poco tiempo aparecen nuevas aplicaciones.
3
3. Arquitectura
Como ya hemos dicho en la introduccion, el principal objetivo de las Re-
des Neuronales Convolucionales es el reconocimiento de imagenes, por ello, la
mayora de conceptos y procedimientos de los que vamos a hablar estaran des-
tinados a este fin.
Al igual que los perceptrones, las Redes Neuronales Convolucionales son re-
des multicapa, sin embargo, las hidden layers de los perceptrones tienen siempre
la misma funcionalidad, cosa que no ocurre en las redes convolucionales multica-
pa, ya que van a aparecer unas nuevas capas que se usaran para el preprocesado
de los datos usando tecnicas como la convolucion o el pooling.
4
de convolucion un mapa de rasgos de tamano n m + 1. A continuacion, cada
mapa es sub - muestreado con la operacion max - pooling o mean - pooling
sobre regiones adyacentes de tamano p p donde p suele tomar valores entre 2
(para imagenes pequenas) y 5 (para imagenes grandes). Normalmente, se suele
aplicar una funcion no lineal como la sigmoide logstica, la tangente hiperbolica
o ReLU tras la el proceso de convolucion, esto se hace para volver a tener datos
no lineales, ya que el proceso de convolucion como veremos es lineal.
3.1. Convolucion
Cuando se trabaja en el reconocimiento de imagenes, la conectividad total
entre neuronas de capas consecutivas del perception es una limitacion cuando va
creciendo el tamano de las imagenes a procesar. Las redes neuronales funcionan
correctamente cuando trabajan con imagenes pequenas (alrededor de 20 20
pixels), sin embargo, si trabajamos con imagenes algo mas grandes (100 100
pixels ) el numero de parametros a entrenar es demasiado grande, lo que hace que
el proceso de aprendizaje se realentice considerablemente. Por ello, es necesario
poder contar con alguna alternativa que agilice el proceso:
Redes con conexiones locales, permitir que las hidden layers esten sola-
mente conectadas a regiones contiguas de los pixels de la imagen.
Usar tecnicas y herramientas de procesamiento paralelo.
Redes con convolucion.
3.2. Pooling
Tras realizar el proceso de convolucion, podramos usar directamente los ma-
pas de rasgos para clasificar las imagenes, sin embargo, estos siguen requiriendo
5
mucho procesamiento, ademas, en estos mapas suele producirse el efecto de so-
breajuste. Por ejemplo, si tenemos una imagen de 100 100 pixels y 400 filtros
de dimension 8 8 en una de las capas convolucionales, tendramos 400 mapas
de rasgos con (100 8 + 1) (100 8 + 1) = 8649 rasgos en cada filtro, lo
que dara un total de 400 8649 = 3429600 rasgos a utilizar en el proceso de
clasificacion. Algunas soluciones que se han propuesto son:
6
4. Funciones de aprendizaje
Una vez que se ha realizado el preprocesado de los datos, es necesario utili-
zar funciones no lineales para el aprendizaje. En esta seccion se expondran las
funciones que se emplean actualmente en la fase de clasificacion de las Redes
Neuronales Convolucionales.
7
pueden morir hasta un 40 % de las neuronas si el ratio de aprendizaje es
muy alto. El problema se puede reducir con un ajuste adecuado de la tasa
de aprendizaje o usando alguna variacion de la funcion ReLU:
Funcion Softplus - f (x) = ln(1 + ex ) es una version aproximada y
continua de la ReLU. Destacar, que la derivada de la funcion Softplus
es la sigmoide logstica.
Leaky ReLU -
x x>0
f (x) =
0,01 en otro caso
8
5. Software
Acompanando al trabajo, se incluye un software de reconocimiento de image-
nes en el que se usan las tecnicas descritas en las secciones anteriores. A modo
de ejemplo, la siguiente imagen es un fragmento del codigo utilizado donde se
utiliza ReLU combinado con convolucion y max - pooling.
Para elaborar el codigo he seguido los tutoriales del blog [3] y de [4]. El uso
del software es bastante sencillo, basta escribir en la terminal
9
Figura 4: Ejemplo de prediccion: Killer whale con probabilidad 0.99998
10
6. Conclusiones
Al no haberse mencionado anteriormente en el trabajo, me gustara decir
que el metodo de optimizacion que se suele emplear para las Redes Neuronales
Convolucionales es el gradiente descendente estocastico, y que como funciones
de coste se suelen utilizar normas matematicas como L1 y L2 y funciones de
parte positiva [f (x)]+ .
Por ultimo, creo que las Redes Neuronales Convolucionales van a marcar el
futuro en el campo del procesamiento y reconocimiento de imagenes. Ejemplo
de ello, son las multitudes de libreras que estan apareciendo como
Cae (C++ con interfaces para Matlab y Python) http://caffe.berkeleyvision.
org
11
Referencias
[1] Wikipedia, Visual Cortex, 15 de Mayo de 2017 https://en.wikipedia.
org/wiki/Visual_cortex
[2] Wikipedia, Redes neuronales convolucionales, 15 de Mayor de 2017, https:
//es.wikipedia.org/wiki/Redes_neuronales_convolucionales
[3] pyimagesearch, 15 de Mayo de 2017, http://www.pyimagesearch.com
[4] GitHub, Trained image classification models for Keras, 15 de Mayo de 2017,
https://github.com/fchollet/deep-learning-models
[5] Paul John Werbos, The Roots of Backpropagation: From Ordered Deriva-
tives to Neural Networks and Political Forecasting, John Wiley & Sons,
1994
[6] Alex Krizhevsky, Ilya Sutskever, Georey E. Hinton, ImageNet Classifica-
tion with Deep Convolutional Neural Networks, Universidad de Toronto
[7] the data science blog, An Intuitive Explanation of Convolutional Neural
Networks, 15 de Mayo de 2017, https://ujjwalkarn.me/2016/08/11/
intuitive-explanation-convnets/
[8] Damian Jorge Matich, Redes neuronales: Conceptos Basicos y Aplica-
ciones, Universidad Tecnologica Nacional Facultad Regional Rosario,
2001, https://www.frro.utn.edu.ar/repositorio/catedras/quimica/
5_anio/orientadora1/monograias/matich-redesneuronales.pdf
[9] Erik Zamora, Redes Neuronales Convolucionales, https://es.scribd.
com/doc/295974900/Redes-Neuronales-Convolucionales
[10] Imagenet Classes, https://gist.github.com/aaronpolhamus/
964a4411c0906315deb9f4a3723aac57
[11] Luis Cebrian Chulia, Reconocimiento de emociones mediante tecnicas
de aprendizaje profundo, Universidad Politecnica de Valencia, 2016,
https://riunet.upv.es/bitstream/handle/10251/69085/CEBRIN%20-%
20Reconocimiento%20de%20Emociones%20mediante%20tcnicas%20de%
20aprendizaje%20profundo.pdf?sequence=2
[12] Adit Deshpande, A Beginners Guide To Understan-
ding Convolutional Neural Networks, 2016, https://
adeshpande3.github.io/adeshpande3.github.io/A-Beginner%
27s-Guide-To-Understanding-Convolutional-Neural-Networks/
[13] Fernando Sancho Caparrini, Mapas Auto-Organizados, 2017, http://
www.cs.us.es/~fsancho/?e=76
[14] CS231n Convunational Neural Networks for Visual Recognition, http://
cs231n.github.io/neural-networks-1/
12