'¿Que son las Redes Convolucionales Deeps?

Continuando con las diferentes técnicas existentes de Inteligencia Artificial hoy se escribirá acerca de las Redes Neuronales Convolucionales (CNN), por supuesto no antes sin decir que esta técnica tiene integrados diferentes sistemas de clasificación de imágenes con el fin de asignar una determinada probabilidad de que una imagen pertenezca a una emoción u otra.


Durante los últimos años con la aparición del Aprendizaje Profundo (Deep Learning) y en especial por las redes de las que se hablara hoy (CNN - Convolutional Neural Networks) este tipo de técnicas ha crecido bastante para los temas relacionados de clasificación mediante imágenes.

¿Qué es una Red Neuronal Convolucional?

Una Red Neuronal Convolucional también conocida como convnets es un tipo de red neuronal, que como todas las redes neuronales consiste en un sistema de aprendizaje automático inspirado en el sistema nervioso biológico. Las CNN por sus siglas Convolutional Neural Networks son un tipo de red neuronal multicapa con la diferencia que su arquitectura esta optimizada para trabajar con entradas de más de una dimensión, como por ejemplo las imágenes cuyas entradas son en 2D. Se denominan convolucionales debido a que ahora los pesos no serán escalares sino que serán en forma matricial, es decir, n-dimensionales. También son conocidas como filtros por los cuales se aplicara una convolución en la entrada para así obtener una salida. 

¿Cual es su finalidad?

Las CNN tienen como objetivo extraer información de alto nivel de las imágenes de entrada para finalmente clasificarlas o extraer vectores de características. Para poder llevar a acabo este proceso, las diferentes capas que conforman la red neuronal convolucional se encargar de procesar la imagen de entrada de tal forma que la salida de la ultima capa pueda obtener el resultado. Dichas capas se encuentran organizadas de tal forma que cada una de ellas procesa la salida de la anterior, con excepción de la primera capa que es la que se encarga de procesar directamente la imagen. 

¿Qué tipos de capas contienen?

Existen diferentes tipos de capas, a continuación se describirán algunas de las mas usadas en las CNN:
Capa convolucional
Es la capa básica que constituye una CNN. Los parámetros de esta capa son un conjunto de filtros (las matrices de pesos) que realizan una convolución sobre la información de entrada. De modo que si tenemos K filtros de dimensiones n filas x n columnas x r profundidad que operan sobre unos datos de entrada con dimensión m filas x m columnas x r profundidad obtendremos una salida con dimensiones (m filas-n filas + 1) x (m columnas n columnas + 1) x K. Uno de los parámetros de este tipo de capas es el paso de convolución (stride), que es equivalente aplicar un diezmado a la salida de la convolución. Como vemos esta capa aumenta la profundidad de la salida.

Pooling o Subsampling
Pooling o subsampling Esta capa fue creada por las dificultades de cálculo cuando la entrada de la red tiene demasiada información. Se encarga de reducir en parámetros la información de su entrada aplicando una operación llamada pooling. El tipo de pooling más utilizado es el llamado MaxPooling que, de entre diferentes valores de píxeles escoge el de valor mayor como salida, eliminando los restantes. Lo que hace es una reducción espacial de la imagen.
Rectified Linear Unit ReLU
Rectified Linear Unit (ReLU) Es una función de activación que nos permite normalizar la entrada (stack de imágenes filtradas + maxpooling). Para ello hace el máximo entre el valor de cada píxel de la entrada y 0, eliminando así cualquier valor negativo que se haya podido crear en las operaciones anteriores. Responde a la siguiente ecuación: 𝒇(𝒙) = 𝐦𝐚𝐱(𝟎, 𝒙)

Fully - Connected (FC)
Fully-Connected (FC) Mediante una convolución 1x1 este tipo de capas se encargan de generar una salida monodimensional. Normalmente se posiciona en las últimas posiciones y se encargan de realizar clasificación o razonamientos de alto nivel puesto que todas las neuronas de esa capa con la anterior están conectadas. Este tipo de capas no dejan de ser un caso particular de capas convoluciones. En estás existe un parámetro de gran utilidad, el Dropout, que determina con que probabilidad va a existir la conexión entre dos neuronas. Este parámetro permite reducir el overfitting, o sobreentrenamiento, de una red. 

Upsampling 
Es la Operación inversa al Pooling 

¿Como se entrenan?

El entrenamiento de estas redes se lleva a cabo por el proceso de Backpropagation, donde para cada imagen de entrada se computa el error que se ha producido en la clasificación y se actualizan los parámetros de los filtros para minimizarlo. Algo muy importante al momento de entrenar la red es el algoritmo de optimización a utlizar para el cálculo de los pesos de los filtros. Ademas, para determinar los parametros de los filtros de las capas se debe realizar un entrenamiento de la red sobre un conjunto de imagenes, con previa etiquetación, destinadas para entrenamiento.  Existen muchas formas de entrenar la red pero es importante elegir una buena técnica de calculo dado al gran volumen de computación que estas conllevan. Dos de los entrenamientos mas conocidos son  el Stochastic Gradient Descent (SGD)  y el Adaptative Moment Estimation (ADAM)

¿Qué clasificadores existen?

Dos de las opciones mas utilizadas en las CNN para clasificar son los siguientes clasificadores: 
Softmax
En resumen la regresión Softmax es una generalización de la regresión logística pero usada para clasificación multi-clase. Esta función nos permite mapear un vector de dimensión K (el vector de características) en un vector de probabilidades asignando una probabilidad entre 0 y 1 a cada clase bajo la premisa que la suma de las probabilidades de 1. Se trata de un clasificador que busca actuar como normalizador.
Support Vector Machine SVM
De la misma maneral que el Softmax,, el SVM es un modelo discriminativo, es decir, es capaz de trazar las fronteras entre las diferentes clases de un conjunto sin necesidad de modelar la función de distribución de la probabilidad. Se basa en buscar diferentes hiperplanos separadores (en el espacio transformado) que maximicen el margen. Ya que tal maximizar este margen minimiza el error de generalización del clasificador. 




Comentarios

Entradas populares