Redes Neuronales Convolucionales Daniel Sebasti´ an an San Sa n Mart Mar t´ın 22 de mayo de 2017
´ Indice 1. Introducci´ Introducci´ on on
1
2. Historia
2
3. Arquitectura 3.1. Convoluci´ Convoluci´ on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 5 5
4. Funciones de aprendiza je
7
5. Software
9
6. Conclusiones
1.
11
Intr Introdu oducc cci´ i´ on on
En este trabajo se realizar´a una introducci´on on a las Redes Neuronales Convolucionales. Con este tipo de redes neuronales se intenta simular a las neuronas de la corteza visual primaria [1], esto se debe a que est´an principalmente enfocadas al reconocimiento de im´agenes. agenes. Se basan en los perceptrones, a los que se les a˜ naden capas extra que realizan un preprocesado de los datos. naden
1
2.
Historia ria
Antes de comenzar con la exposici´on on de los modelos matem´aticos aticos que usan las Redes Neuronales Convolucionales, conviene entender su motivaci´on on y conocer su historia. 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 computaci´ on. Sin embargo, los primeros te´oricos on. oricos que concibieron los fundamentos de la computaci´on on neuronal fueron el neurofisi´ologo ologo Warren McCullock y el matem´atico atico Walter Pitts, quienes en 1943 lanzaron una teor´ıa ıa acerca de la forma de trabajar de las neuronas ( Un C´ alculo L´ ogico de la Inminente Idea de la Actividad Nerviosa - Bolet´ ın ın de Matematica Biof´ ısica ısica 5: 115-133 ). Su modelo de red neuronal se basaba en los circuitos el´ ectricos. ectricos. Seis a˜ nos nos despu´ de spu´es, es, en 1949, Donald Held public´ p ublic´o en su libro The Organization Organization of Behavior Behavior unas reglas que intentaban explicar los procesos de aprendizaje. Su idea fue que el aprendiza je ocurr o curr´´ıa cuando ciertos cambios en una neurona eran activados. acti vados. Tambi´en, en, intent´ intent ´o encontrar semejanzas entre el aprendizaje y la actividad nerviosa. Los trabajos traba jos de Hebb constituyen las bases de la Teor´ Teor´ıa de las redes neuronales. En 1950, el psic´ologo ologo conductista Karl Lashley se di´o cuenta en sus ensayos que la informaci´ informaci´ on no era almacenada de forma centralizada en el cerebro, sino on que se distri dis tribu´ bu´ıa ıa por po r ´el. el. En el verano 1956, tiene lugar en Dartmouth la primera conferencia de inteligencia artificial. En esta conferencia se discuti´o el uso potencial de los ordenado denadores res para para simula simularr ’todos ’todos los aspecto aspectoss del aprend aprendizaje izaje o cualqu cualquier ier otra otra caracter´ caracter´ıstica de la inteligencia’ y se present´ o la primera primera simulaci´ simulaci´ on on de una red neuronal, sin embargo, no supieron interpretar los resultados obtenidos. En 1957, el psic´ologo ologo Frank Rosenblatt comenz´o a desarrollar el perceptr´on on ’Mark I Perceptron’. Se trata de la red neuronal m´as antigua, hoy en d´ıa se sigue utilizando para la identificaci´on on de patrones. Este modelo era capaz de generalizar, esto es, tras aprender una serie de patrones, po d´ıa reconocer otros similares aunque no hubiesen aparecido durante el entrenamiento. Sin embargo, ten´ ten´ıa una serie de limitaciones limitaciones,, por ejemplo, ejemplo, su incapacida incapacidad d para resolver resolver el problema de la OR exclusiva, y en general, no era capaz de clasificar clases que no fueran linealmente separables. En 1959, este psic´ologo ologo demostr´o en su libro Principios de la Neurodin´ amica que bajo ciertas condiciones el aprendizaje del perceptr´on on converg´ converg´ıa hacia un estado finito, esto se conoce como el Teorema de Convergencia del Perceptr´on. on. Al a˜ no no siguiente, sigu iente, en 1960, 19 60, los ingeniero i ngenieross el´ectricos ectricos Bernard Widro W idro ff y Marcian Hoff desarrollaron desarrollaron el modelo Adaline (Adaptative Linear Elements). Esta fue la 2
primera red neuronal aplicada a un problema real, se us´o para crear filtros adaptativos que eliminasen los ecos en las llamadas telef´onicas. onicas. En 1969, las redes neuronales estuvieron a punto de desaparecer. Esto fue debido a que los l os cient´ıficos ıficos de la computaci´ computaci ´on on Marvin Minsky y Seymour Papert probaron matem´aticamente aticamente que el perceptr´on on simple era incapaz de resolver problemas relativamente f´aciles, aciles, como puede ser el aprendizaje de una funci´on no lineal. Esto demostr´o que el perceptr´on on simple no era tan ´util uti l como c omo se cre´ıa, ıa, ya que las funciones no lineales son ampliamente utilizadas en computaci´on y en problemas del mundo real. En el a˜ no no 1974, 19 74, el e l cient ci ent´´ıfico Paul Werbos describi´ describ i´o en su tesis doctoral la idea b´asica asica del algoritmo de aprendizaje de propagaci´on on hacia atr´as as (backpropagation). La tesis doctoral y alguna informaci´on on complementaria puede encontrarse en un libro publicado en 1994 por Werbos llamado The Roots of Backpropagation [5]. En 1977, 19 77, el e l cient ci ent´´ıfico estadounidense estadoun idense Stephen Grossberg Grossb erg junto ju nto con la cient ci ent´´ıfica Gail Carpenter Carpenter desarroll´ desarroll´ o la Teor´ Teor´ıa de la Resonancia Resonanc ia Adaptada. Adaptada . Esta teor´ıa ıa es una arquitectura de red que se diferencia de todas las anteriores, ya que simula otras habilidades del cerebro, como pueden ser la memoria a largo y corto plazo. Como ya hemos dicho, a principios de la d´ ecada ecada de los setenta desaprareci´o pr´ acticamente acticamente todo el inter´ es es sobre las redes neuronales debido a los art´ art´ıculos de Marvin Minsky y Seymour Papert. Sin embargo, en 1985 el cient´ cient´ıfico John Hopfield public´ o su libro Computacion neuronal de decisiones en problemas de muchos cient cient´ıficos volviesen a interesar interesarse se en el optimizacion , el cual hizo que muchos ´area de las redes neuronales. area A partir del a˜ no no 1986, el ´area area de las redes neuronales ha ido evolucionando a pasos agigantado agigantados. s. En la actualidad, actualidad, se publican publican trabajos trabajos de forma constant constantee y cada poco tiempo aparecen nuevas aplicaciones.
3
3.
Arqu Arquit itec ectu tura ra
Como ya hemos dicho en la introducci´on, on, el principal objetivo de las Redes Neuronales Convolucionales es el reconocimiento de im´agenes, agenes, por ello, la mayor´ mayor´ıa de conceptos y procedimientos de los que vamos a hablar estar´an destinados a este fin. Al igual que los perceptrones, perceptrones, las Redes Neuronales Neuronales Convolucio Convolucionales nales son redes multicapa, sin embargo, las hidden layers de los perceptrones tienen siempre la misma funcionalidad, cosa que no ocurre en las redes convolucionales multicapa, ya que van a aparecer unas nuevas capas que se usar´an an para el preprocesado de los datos usando t´ ecnicas ecnicas como la convoluci´ convoluci´on on o el pooling. En las Redes Neuronales Neuronales Convolu Convoluciona cionales, les, encontramo encontramoss al principio principio unas capas que se utilizan para la fase de extracci´on de d e caracter cara cter´´ısticas ıstica s (preproce (pr eprocesado), sado), las cuales est´an an compuestas compuestas por neuronas neuronas convolucion convolucionales ales y de pooling. p ooling. Al final de la red se encuentran aquellas neuronas que poseen los perceptrones, las cuales realizan realizan la clasificaci´ clasificaci´ on on final sobre las caracter´ caracter´ısticas que se han extraido, m´as as adelante, veremos que en la may mayor or´´ıa de los casos la conectividad de las neuronas que est´an an en la fase de extracci´on on no es total.
Figura 1: Arquitectura de la red neuronal convolucional. Figura: [12]
En la fase de extracci´on on de caracter´ car acter´ısticas ıstica s (preprocesa (prepr ocesado) do) se intenta i ntenta simular el proceso de estimulaci´on on de las c´elulas elulas de la corteza visual. Esta fase se compone de capas alternas de neuronas convolucionales y neuronas de pooling. La finalidad de esta fase es disminuir la dimensi´on on de los datos, cabe destacar que a medida que avanza el proceso, las neuronas son cada vez menos sensibles a las perturbaciones de los datos de entrada, pero al mismo tiempo est´an an activando caracter´ısticas ısticas cada vez m´as as complejas. Las capas de la fase de extracci´on tienen una entrada de dimensi´on on m × m × r donde m es tanto la altura como el ancho de la imagen (normalmente se utilizan im´ agenes agenes cuadradas) y r es el n´ umero umero de canales de color (por ejemplo, en RGB son 3). Las capas convolucionales tienen k filtros (o kernels), cuyas dimensiones son n × n × q donde n y q son elegidos por el programador, y pueden variar entre los distintos filtros. Cada filtro genera mediante un proceso 4
de convoluci´on on un mapa de rasgos de tama˜no no n − m + 1. A continu continuaci´ aci´ on, on, cada mapa es sub - muestreado con la operaci´on o n max - pooling o mean - pooling sobre regiones adyacentes de tama˜no no p × p donde p suele tomar valores entre 2 (para im´agenes agenes peque˜ nas) nas) y 5 (para im´agenes agenes grandes). Normalmente, se suele aplicar una funci´on on no lineal como la sigmoide log´ıstica, ıstica, la tangente hiperb´olica olica o ReLU tras la el proceso de convoluci´on, on, esto se hace para volver a tener datos no lineales, ya que el proceso de convoluci´on on como veremos es lineal. En los p´arrafos arrafos anteriores hemos estado hablando del proceso de convoluci´on y del sub - muestreo muestreo o pooling, pero ¿ en qu´e consisten consisten estos dos procesos procesos que diferencia diferencian n a los perceptrone perceptroness de la Redes Neuronales Neuronales Convoluciona Convolucionales les ? Lo veremos en las dos siguientes subsecciones.
3.1. 3.1.
Convo Convoluc luci´ i´ on on
Cuando se trabaja en el reconocimiento de im´agenes, la conectividad total entre neuronas de capas consecutivas del percepti´on on es una limitaci´on on cuando va creciendo el tama˜no no de las im´agenes agenes a procesar. Las redes neuronales funcionan correctamente cuando trabajan con im´agenes agenes peque˜ nas nas (alrededor de 20 × 20 pixels), sin embargo, si trabajamos con im´agenes algo m´as as grandes (100 × 100 pixels ) el n´ umero umero de par´ametros ametros 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 conexiones locales, permitir permitir que las hidden hidden layers layers est´ est´en en solamente conectadas a regiones contiguas de los pixels de la imagen. Usar t´ ecnicas ecnicas y herramientas de procesamiento paralelo. Redes con convoluci´on. on. La convoluci´ on on es una operaci´on on de productos y sumas entre la imagen de entrada y un filtro (o kernel), que qu e genera un u n mapa de rasgos. r asgos. Los L os rasgos rasgo s extra´ıdos ıdos corresponden a cada posible ubicaci´on on del filtro en la imagen original. La ventaja que tiene esta t´ecnica ecnica es que cada filtro (que no es m´as as que una neurona) sirve para extraer extr aer el mismo mism o rasgo o caracter´ car acter´ıstica ıstica en e n cualquier cualqui er parte de la l a imagen. Esto permite reducir el n´umero umero de conexiones y el n´umero umero de par´ametros ametros a entrenar en comparaci´on on con una red multicapa de conexi´on on total. Si la dimensi´on on de la imagen es n × m y hay k filtros en una capa, entonces se generan k mapas de rasgos con una dimensi´on on total de k × (n − a + 1) × (m − b + 1).
3.2. 3.2.
Poo ooli ling ng
Tras realizar el proceso de convoluci´on, on, podr´ p odr´ıamos ıamos usar directamente d irectamente los mama pas de rasgos para clasificar las im´agenes, agenes, sin embargo, estos siguen requiriendo 5
mucho procesamiento, adem´as, as, en estos mapas suele producirse el efecto de sobreajuste. Por ejemplo, si tenemos una imagen de 100 × 100 pixels y 400 filtros de dimensi´on on 8 × 8 en una de las l as capas convolucionales, convolucionales, tendr´ tendr´ıamos 400 mapas de rasgos con (100 − 8 + 1) × (100 − 8 + 1) = 8649 rasgos en cada filtro, lo que dar´ dar´ıa un total de 400 × 8649 = 3429600 rasgos a utilizar en el proceso de clasificaci´ on. Algunas soluciones que se han propuesto son: on. Sub-muestrar los mapas de rasgos. Extraer algunas estad´ estad´ısticas de los mapas de rasgos (agrupamiento (agrupamiento o pooling). La finalidad finalidad del pooling es extraer extraer estad´ estad´ısticas ısticas como el promedio promedio (mean - pooling) o el m´aximo aximo (max - pooling) de una regi´on on del mapa de rasgos. Esta t´ ecnica ecnica reduce reduce de forma forma considerabl considerablee el n´umero umero de rasgos usados en el proceso de clasificaci´ clasificaci´ on y mitiga el efecto del sobreajuste. Adem´as, si la regi´on on on de agrupamiento es contigua, los rasgos agrupados presentan cierta invarianza de traslaci´on on del patr´on on a reconocer. Cabe desatcar, que el agrupamiento divide el mapa de rasgos en regiones disjuntas. Por otro lado, si se aplican varias capas de agrupamiento se pierde informaci´on on de la localizaci´on on del rasgo, provocando por ejemplo, que se puedan reconocer rostros, pero no sea posible identificar a quien pertenece. p ertenece. Normalmente, las t´ ecnicas ecnicas de pooling se aplican tras el proceso de convoluci´on. on.
on de la t´ecnica ecnica max - pooling. p ooling. Figura: [7] Figura 2: Aplicaci´on
6
4.
Funci uncion ones es de apren aprendi dizaje zaje
Una vez que se ha realizado el preprocesado de los datos, es necesario utilizar funciones no lineales para el aprendizaje. En esta secci´on on se expondr´an an las funciones que se emplean actualmente en la fase de clasificaci´on de las Redes Neuronales Convolucionales. Sigmoi Sig moide de log´ıstica ıst ica - σ (x) = 1+1e− . Se trata de una funci´on on no lineal cuyo conjunto imagen comprende a los n´umeros umeros reales entre 0 y 1. Aunque esta funci´ on es ampliamente usada en otras ´areas del Aprendizaje Autom´atico on atico y Miner´ Miner´ıa de Datos, no se suele usar casi nunca en redes neuronales por dos razones: la primera es que satura la salida y provoca el desvanecimiento del gradiente y la segunda es que no pasa por el (0 , 0) lo que implica que puede producirse producirse un efecto efecto zig-zag zig-zag durante el aprendizaje. aprendizaje. x
• Saturaci´ on on y desvaneci desvanecimien miento to del gradiente gradiente:: Una propiedad indeseable de las neuronas que implementan la funci´on on sigmoide es que se saturen en alguno de los extremos (0 o 1), ya que provocar´an que el gradiente de esas regiones sea cercano a 0, basta notar que la derivada de la funci´on on sigmoide es σ (x) = σ (x)(1 − σ (x)). Por lo tanto, si el gradiente se ’desvanece’ en una regi´on, on, esto producir´a por la propagaci´on on hacia atr´as as que se ’desvanezca’ el gradiente en el resto de regiones. Por ello, debemos de tener mucho cuidado en la inicializaci inicializaci´ o´n de los pesos. Por ejemplo, si los pesos iniciales son on demasiado grandes, la may mayor or´´ıa de las neuronas se saturar´an an y la red apenas aprender´a. a. 0
Tangente hiperb´ olica olica - Se - Se trata de una funci´on on no lineal cuyo conjunto imagen comprende a los n´umeros umeros reales entre −1 y 1. Al igual que en la sigmoide log l og´´ıstica, las neuronas que implementan la tangente hiperb´olica olica pueden saturarse, sin embargo, ´esta esta pasa por el (0, 0). Por lo tanto, en la pr´ actica actica siempre ser´a preferible usar la tangente hiperb´olica olica antes que la sigmoide sigmoid e log lo g´ıstica. Destacar, Destaca r, que q ue tanh(x) = 2σ (2x) − 1. Sigmoide rectificada - f (x) = |gi tanh(x)| donde gi es un par´ametro ametro ajustable durante el aprendizaje. Normalmente se usa para el reconocimiento de im´agenes agenes naturales. ReLU ReLU (Recti (Rectified fied Linear Linear Unit) Unit) - f (x) = max(0, x). Actualmen Actualmente te tiene una gran popularidad, sobre todo en Deep Learning ya que acelera el proceso de aprendizaje en un factor 6 como se indica en [6] comparado con las funciones sigmoide log´ log´ıstica y tangente hiperb´olica, olica, adem´as as evita el problema del desvanecimiento de gradiente cuando hay muchas capas. Esto es debido a que es lineal y no hay saturaci´on en la parte positiva de su dominio. Sin embargo, algunas neuronas pueden ”morir”durante el proceso de aprendizaje. Si el gradiente mueve los pesos de forma que la neurona no se activa para ninguno de los ejemplos de entrenamiento, entonces el gradiente ser´a siempre 0 para esa neurona y nunca se activar´a. a. A veces 7
pueden pueden morir hasta un 40 % de las neuronas neuronas si el ratio de aprendizaje aprendizaje es muy alto. El problema se puede reducir con un ajuste adecuado de la tasa de aprendizaje aprendizaje o usando usando alguna alguna variaci´ variaci´ on on de la funci´on on ReLU: on on Softplus - f (x) = ln (1 + ex ) es una versi´on • Funci´ on aproximada y continua de la ReLU. Destacar, que la derivada de la funci´on on Softplus es la sigmoide sigmoid e log´ıstica. ıstica . • Leaky ReLU f (x) =
x 0,01
x > 0
en otro caso
permite tener un gradiente peque˜no no (no cero) cuando la neurona no est´ a activa. Se suele utilizar en programas de reconocimiento de voz. Neurona Maxout - f (x) = max (w1t x + b1 , w2t + b2 ). Es una generalizaci´on on de las funciones ReLU y Leaky ReLU que tiene las ventajas de una ReLU (lineal, no saturaci´ on), pero sin el problema de la muerte de neuroon), nas. Como desventaja, puede llegar a duplicar el n´umero umero de par´ametros. ametros. Ahora bien, vistas las funciones, ¿ cu´al al deber´ d eber´ıa ıa usar us ar ? La recomendaci re comendaci´´on on es usar siempre ReLU si el ratio de aprendizaje es adecuado y no mueren muchas neuronas. neuronas. Si se considera considera que con ReLU no va del todo bien, se tendr´ tendr´ıa que probar con Leaky ReLU o Maxout. Nunca se debe usar la sigmoide log´ log´ıstica. Con la tangente hiperb´olica olica se pueden obtener resultados satisfactorios, sin embargo, los resultado resultado siempre ser´an an peores que con ReLU.
8
5.
Soft Softw ware are
Acompa˜ nando al trabajo, se incluye un software de reconocimiento de im´agenando nes en el que se usan las t´ecnicas ecnicas descritas en las secciones anteriores. A modo mo do de ejemplo, la siguiente imagen es un fragmento del c´odigo utilizado donde se utiliza ReLU combinado con convoluci´on on y max - pooling. odigo de la clase VGG16 Figura 3: Fragmento de c´odigo
Para elaborar el c´odigo odigo he seguido los tutoriales del blog [3] y de [4]. El uso del software software es bastante bastante sencillo, sencillo, basta escribir escribir en la terminal terminal python test imagenet.py −− image nombre nombre imagen.png imagen.png
Una vez que el softwar softwaree tiene la imagen, imagen, ´este este la redimension redimensionaa a 224 × 224 pixels, la transforma en un array multidimensional y finalmente aplica las t´ ecniecnicas vistas en el trabajo. Al finalizar, el software muestra la imagen junto a la predicci´ on para la que se ha obtenido una mayor probabilidad. Las etiquetas on que usa Imagenet pueden encontrarse en [10]. Algunos ejemplos de la ejecuci´on del software son
9
on: ’Killer whale’ con probabilidad 0.99998 Figura 4: Ejemplo de predicci´on:
on: ’lemon’ con probabilidad 0.993024 Figura 5: Ejemplo de predicci´on:
10
6.
Conc Conclu lusi sion ones es
Al no haberse mencionado mencionado anterior anteriormen mente te en el trabajo, me gustar gustar´ıa decir que el m´ etodo etodo de optimizaci´ optimiza ci´on on que se suele emplear para las Redes Neuronales Convolucionales es el gradiente descendente estoc´astico, astico, y que como funciones de coste se suelen utilizar normas matem´aticas aticas como L1 y L2 y funciones de + parte positiva [f (x)] . Por ultimo, u ´ ltimo, creo que las Redes Neuronales Convolucionales van a marcar el futuro en el campo del procesamiento y reconocimiento de im´agenes. Ejemplo de ello, ell o, son las multitudes de librer´ librer´ıas que est´ an an apareciendo como http://caffe.berkeleyvision. n. Caff e (C++ con interfaces para Matlab y Python) http://caffe.berkeleyvisio org
Torch (C y Lua) usado por Facebook Research, Google Deepmind y Twithttp://torch.ch ter http://torch.ch http://deeplearning.net/software/theano ftware/theano/ / Theano (Python) http://deeplearning.net/so http://www.vlfeat.org/matconvnet/ onvnet/ MatConvnet (Matlab) http://www.vlfeat.org/matc https://code.google.com/archive/p/cuda-convnet2/ chive/p/cuda-convnet2/ Cuda-convnet (CUDA) https://code.google.com/ar https://deeplearning4j.org Deepleaning4j (Java) (Java) https://deeplearning4j.org https://www.tensorflow.org TensorFlow (Python) https://www.tensorflow.org https://keras.io Keras (Python) https://keras.io
11
Referencias https://en.wikipedia. [1] Wikiped Wikipedia, ia, Visual Cortex, Cortex, 15 de Ma Mayo yo de 201 20177 https://en.wikipedia. org/wiki/Visual_cortex
[2] Wikipedia, Redes neuronales convolucionales, convolucionales, 15 de Mayor de 2017, 2017, https: //es.wikipedia.org/wiki/R //es.wikipedia.org/wiki/Redes_neuronal edes_neuronales_convolucio es_convolucionales nales http://www.pyimagesearch.com om [3] pyimages pyimagesearc earch, h, 15 de Mayo de 2017, http://www.pyimagesearch.c
[4] GitHub, Trained Trained image classification models for Keras, 15 de Mayo Mayo de 2017, https://github.com/fchollet/deep-learning-models
[5] Paul Paul John Werbos, Werbos, ’The Roots of Backpropagatio Backpropagation: n: From Ordered DerivaDerivatives to Neural Networks and Political Forecasting’, John Wiley & Sons, 1994 [6] Alex Krizhevsky Krizhevsky, Ilya Ilya Sutskeve Sutskever, r, Geoff rey rey E. Hinton, ’ImageNet Classification with Deep Convolutional Neural Networks’, Universidad de Toronto [7] the data science science blog, ’An Intuitiv Intuitivee Explanatio Explanation n of Convolu Convolutiona tionall Neural Neural https://ujjwalkarn.me/2016/08/11/ /08/11/ Netwo Networks rks’, ’, 15 de Ma Mayo yo de 201 2017, 7, https://ujjwalkarn.me/2016 intuitive-explanation-convnets/
[8] Dami´ Dami´ an an Jorge Jorge Matic Matich, h, ’Redes ’Redes neuron neuronale ales: s: Concep Conceptos tos B´ asicos asicos y Aplica Aplica-ciones ciones’, ’, Univers Universida idad d Tecnolo ecnologic gicaa Nac Nacion ional al Faculta acultad d Region Regional al Rosari Rosario, o, https://www.frro.utn.edu.ar/repositorio r/repositorio/catedras/qui /catedras/quimica/ mica/ 2001, https://www.frro.utn.edu.a 5_anio/orientadora1/monog 5_anio/orientadora1/monograias/matich-redesneu raias/matich-redesneuronales.pdf ronales.pdf
[9] Erik Zamo Zamora, ra, ’Redes Neuronales Neuronales Convolu Convoluciona cionales’, les’, https://es.scribd. com/doc/295974900/Redes-Neuronales-Convolucionales
[10] [10] Imag Imagen eneet
Clas Classe ses, s, https://gist.github.com/aaronpolhamus/ 964a4411c0906315deb9f4a3723aac57
[11]] Luis [11 Luis Cebri´ Cebri´ an an Chuli Chuli´ a, a´, ’Reconocimie ’Reconocimiento nto de emociones emociones mediante mediante tecnicas de aprendizaje aprendizaje profundo’, profundo’, Universida Universidad d Polit´ Polit´ ecnica ecnica de Valencia, alencia, 2016, https://riunet.upv.es/bit https://riunet.upv.es/bitstream/handle stream/handle/10251/69085/ /10251/69085/CEBRIN%20-% CEBRIN%20-% 20Reconocimiento%20de%20E 20Reconocimiento%20de%20Emociones%20me mociones%20mediante%20tcni diante%20tcnicas%20de% cas%20de% 20aprendizaje%20profundo. 20aprendizaje%20profundo.pdf?sequence= pdf?sequence=2 2
[12] Adit ding
Deshpande, Convolutional
’A
Beginner’s Guide Neural Networks’,
To Understan2016, https://
adeshpande3.github.io/ade adeshpande3.github.io/adeshpande3.gith shpande3.github.io/A-Beginner% ub.io/A-Beginner% 27s-Guide-To-Understanding-Convolutional-Neural-Networks/
[13] Fernando ernando Sancho Sancho Caparrini, Caparrini, ’Mapas ’Mapas Auto-Organ Auto-Organizados izados’, ’, 2017, http:// www.cs.us.es/~fsancho/?e=76
[14] CS231n CS231n Convunat Convunational ional Neural Networ Networks ks for Visual Recognitio Recognition, n, http:// cs231n.github.io/neural-networks-1/
12