Reiterando la información del artículo del Centro de aprendizaje Redes neuronales, estas son un subconjunto de aprendizaje automático y están en el centro de los algoritmos de aprendizaje profundo. Están compuestas de capas de nodos, que contienen una capa de entrada, una o más capas ocultas y una capa de salida. Cada nodo se conecta a otro y tiene un peso y umbral asociados. Si la salida de cualquier nodo individual está por encima del valor del umbral especificado, ese nodo se activa y envía datos a la siguiente capa de la red. De lo contrario, no se pasa ningún dato a la siguiente capa de la red.
Si bien nos enfocamos principalmente en redes de feedforward en ese artículo, existen varios tipos de redes neuronales que se utilizan para diferentes casos de uso y tipos de datos. Por ejemplo, las redes neuronales recurrentes se usan comúnmente para el procesamiento del lenguaje natural y el reconocimiento de voz, mientras que las redes neuronales convolucionales (ConvNets o CNN) se utilizan con mayor frecuencia para tareas de clasificación y visión artificial. Antes de las CNN, se usaban métodos manuales de extracción de características que consumían mucho tiempo a fin de identificar objetos en las imágenes. Ahora, las CNN proporcionan un enfoque más escalable para las tareas de clasificación de imágenes y reconocimiento de objetos, aprovechando principios del álgebra lineal, específicamente la multiplicación de matrices, para identificar patrones dentro de una imagen. Sin embargo, pueden ser muy exigentes desde el punto de vista informático, ya que requieren unidades de procesamiento gráfico (GPU) para entrenar los modelos.
Las CNN se distinguen de otras redes neuronales por su mejor desempeño con entradas de señal de imagen, voz o audio. Tienen tres tipos principales de capas, que son:
La capa convolucional es la primera capa de una red convolucional. Si bien a las capas convolucionales las pueden seguir capas convolucionales adicionales o capas agrupadas, la capa totalmente conectada es la capa final. Con cada capa, la CNN aumenta su complejidad, identificando mayores porciones de la imagen. Las primeras capas se enfocan en características simples, como colores y bordes. A medida que los datos de la imagen avanzan a través de las capas de CNN, se comienzan a reconocer elementos o formas más grandes del objeto, hasta que finalmente se identifica el objeto previsto.
La capa convolucional es el pilar central de una CNN, y es donde ocurre la mayor parte del cálculo. Requiere algunos componentes, que son datos de entrada, un filtro y un mapa de características. Supongamos que la entrada será una imagen en color, que se compone de una matriz de píxeles en 3D. Esto significa que la entrada tendrá tres dimensiones (altura, ancho y profundidad) que corresponden a RGB en una imagen. También hay un detector de características, conocido como kernel o filtro, que se moverá a través de los campos receptivos de la imagen, verificando si la característica está presente. Este proceso se conoce como convolución.
El detector de características es una matriz bidimensional (2-D) de pesos, que representa parte de la imagen. Aunque esto puede variar, el tamaño del filtro suele ser una matriz 3 x 3; esto también determina el tamaño del campo receptivo. Luego, el filtro se aplica a un área de la imagen y se calcula un producto de punto entre los píxeles de entrada y el filtro. Este producto de punto se introduce entonces en una matriz de salida. Después, el filtro cambia a pasos agigantados, repitiendo el proceso hasta que el kernel ha barrido toda la imagen. El resultado final de la serie de productos de puntos de la entrada y el filtro se conoce como mapa de características, mapa de activación o característica convolucionada.
Después de cada operación de convolución, una CNN aplica una transformación de Unidad lineal rectificada (ReLu) al mapa de características, introduciendo la no linealidad en el modelo.
Como se mencionó anteriormente, otra capa de convolución puede seguir a la capa de convolución inicial. Cuando esto sucede, la estructura de la CNN puede convertirse en jerárquica, ya que las capas posteriores pueden ver los píxeles dentro de los campos receptivos de las capas anteriores. Por ejemplo, supongamos que intentamos determinar si una imagen contiene una bicicleta. Pensemos en la bicicleta como una suma de partes. Está compuesta por una estructura, un manubrio, llantas, pedales, etc. Cada parte individual de la bicicleta constituye un patrón de nivel inferior en la red neuronal, y la combinación de sus piezas representa un patrón de nivel superior, creando una jerarquía de características dentro de la CNN.
La agrupación de capas, también conocida como reducción de muestreo, reduce la dimensionalidad y, por lo tanto, el número de parámetros en la entrada. De manera similar a la capa convolucional, la operación de agrupación muestra un filtro en toda la entrada, pero la diferencia es que este filtro no tiene pesos. En cambio, el kernel aplica una función de agregación a los valores dentro del campo receptivo, poblando la matriz de salida. Hay dos tipos principales de agrupación:
Aunque se pierde mucha información en la capa de agrupación, también tiene una serie de beneficios para la CNN. Ayuda a reducir la complejidad, mejorar la eficiencia y limitar el riesgo de sobreajuste.
El nombre de la capa totalmente conectada es claro. Como se mencionó antes, los valores de píxeles de la imagen de entrada no se conectan de manera directa a la capa de salida en capas parcialmente conectadas. Sin embargo, en la capa totalmente conectada, cada nodo de la capa de salida establece una conexión directa a un nodo en la capa anterior.
Esta capa realiza la tarea de clasificación basada en las características extraídas a través de las capas anteriores y sus diferentes filtros. Mientras que las capas convolucionales y agrupadas tienden a usar funciones ReLu, las capas FC suelen aprovechar una función de activación softmax para clasificar las entradas adecuadamente, produciendo una probabilidad de 0 a 1.
Kunihiko Fukushima y Yann LeCun sentaron la base de la investigación en torno a redes neuronales convolucionales en su trabajo de 1980 (PDF, 1.1 MB) (enlace externo a IBM) y Backpropagation Applied to Handwritten Zip Code Recognition en 1989, respectivamente. Yann LeCun aplicó con éxito la propagación inversa para entrenar redes neuronales a fin de identificar y reconocer patrones dentro de una serie de códigos postales escritos a mano. Continuó su investigación con su equipo durante la década de los 90, que culminó con “LeNet-5”, que aplicaba los mismos principios de investigación previa al reconocimiento de documentos. Desde entonces, surgieron varias arquitecturas CNN variantes con la introducción de nuevos conjuntos de datos, como MNIST y CIFAR-10, así como competidores, como el ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Algunas de estas otras arquitecturas son:
Sin embargo, LeNet-5 se conoce como la clásica arquitectura CNN.
Las redes neuronales convolucionales impulsan el reconocimiento de imágenes y las tareas de visión artificial. La visión artificial es un campo de la inteligencia artificial (IA) que permite a los equipos y sistemas obtener información significativa de imágenes digitales, videos y otras entradas visuales, en función de las cuales puede actuar. Esta capacidad de proporcionar recomendaciones la distingue de las tareas de reconocimiento de imágenes. Algunas aplicaciones comunes de la visión artificial se pueden apreciar hoy en día en:
IBM SPSS Neural Networks puede ayudarle a descubrir relaciones complejas y obtener un mayor valor de sus datos.
Cree y amplíe la IA de confianza en cualquier nube. Automatice el ciclo de vida de la IA para ModelOps.