¿qué son las redes neuronales convolucionales (CNN)?
Este artículo es parte de la desmitificación de la IA, una serie de publicaciones que (intentan) desambiguar la jerga y los mitos que rodean a la IA.
desde la década de 1950, los primeros días de la inteligencia artificial, los científicos de la computación han estado tratando de construir computadoras que puedan dar sentido a los datos visuales., En las décadas siguientes, el campo, que se ha conocido como visión por computadora, vio avances graduales. En 2012, la visión por computadora dio un salto cuántico cuando un grupo de investigadores de la Universidad de Toronto desarrolló un modelo de IA que superó los mejores algoritmos de reconocimiento de imágenes por un amplio margen.
el sistema de IA, que se conoció como AlexNet (llamado así por su creador principal, Alex Krizhevsky), ganó el concurso de visión por computadora ImageNet 2012 con una increíble precisión del 85 por ciento. El subcampeón anotó un modesto 74 por ciento en la prueba.,
en el corazón de AlexNet estaba una red neuronal convolucional (CNN), un tipo especializado de red neuronal artificial que imita aproximadamente el sistema de visión humana. En los últimos años, los CNN se han convertido en fundamentales para muchas aplicaciones de visión artificial. Esto es lo que necesita saber sobre la historia y el funcionamiento de CNNs.
una breve historia de las redes neuronales convolucionales
las redes neuronales convolucionales, también llamadas ConvNets, fueron introducidas por primera vez en la década de 1980 por Yann LeCun, un investigador postdoctoral de Ciencias de la computación., LeCun se había basado en el trabajo realizado por Kunihiko Fukushima, un científico japonés que, unos años antes, había inventado el neocognitrón, una red neuronal de reconocimiento de imágenes muy básica.
la primera versión de CNNs, llamada LeNet (después de LeCun), podía reconocer dígitos escritos a mano. CNNs encontró un nicho de mercado en la banca y los servicios postales y la banca, donde leen códigos postales en sobres y dígitos en cheques.
pero a pesar de su ingenio, ConvNets se mantuvo al margen de la visión por computadora y la inteligencia artificial porque se enfrentaban a un problema grave: no podían escalar., CNNs necesitaba una gran cantidad de datos y recursos informáticos para trabajar eficientemente con imágenes grandes. En ese momento, la técnica solo era aplicable a imágenes con baja resolución.
en 2012, AlexNet demostró que tal vez había llegado el momento de volver al aprendizaje profundo, la rama de la IA que utiliza redes neuronales de múltiples capas. La disponibilidad de grandes conjuntos de datos, a saber, el conjunto de datos ImageNet con millones de imágenes etiquetadas, y los vastos recursos informáticos permitieron a los investigadores crear CNN complejos que podrían realizar tareas de visión por computadora que antes eran imposibles.
¿cómo funcionan los CNN?,
las redes neuronales convolucionales se componen de múltiples capas de neuronas artificiales. Las neuronas artificiales, una imitación aproximada de sus contrapartes biológicas, son funciones matemáticas que calculan la suma ponderada de múltiples entradas y salidas de un valor de activación.
El comportamiento de cada neurona se define por sus pesos., Cuando se alimenta con los valores de píxeles, las neuronas artificiales de una CNN seleccionan varias características visuales.
cuando introduce una imagen en una ConvNet, cada una de sus capas genera varios mapas de activación. Los mapas de activación resaltan las características relevantes de la imagen. Cada una de las neuronas toma un parche de píxeles como entrada, multiplica sus valores de color por sus pesos, los resume y los ejecuta a través de la función de activación.
la primera capa (o inferior) de la CNN generalmente detecta características básicas como bordes horizontales, verticales y diagonales., La salida de la primera capa se alimenta como entrada de la siguiente capa, que extrae características más complejas, como esquinas y combinaciones de bordes. A medida que profundiza en la red neuronal convolucional, las capas comienzan a detectar características de nivel superior, como objetos, caras y más.
la operación de multiplicar los valores de píxeles por pesos y sumarlos se denomina» convolución » (de ahí el nombre de red neuronal convolucional). Una CNN generalmente se compone de varias capas de convolución, pero también contiene otros componentes. La capa final de una CNN es una capa de clasificación, que toma la salida de la capa de convolución final como entrada (recuerde, las capas de convolución más altas detectan objetos complejos).,
basado en el mapa de activación de la capa de convolución final, la capa de clasificación genera un conjunto de puntuaciones de confianza (valores entre 0 y 1) que especifican la probabilidad de que la imagen pertenezca a una «clase».»Por ejemplo, si tienes una ConvNet que detecta gatos, perros y caballos, la salida de la capa final es la posibilidad de que la imagen de entrada contenga cualquiera de esos animales.,
entrenar la red neuronal convolucional
uno de los grandes retos del desarrollo de cnns es ajustar los pesos de las neuronas individuales para extraer las características correctas de las imágenes. El proceso de ajuste de estos pesos se llama «entrenamiento» de la red neuronal.
Al principio, la CNN comienza con Pesos aleatorios., Durante el entrenamiento, los desarrolladores proporcionan a la red neuronal un gran conjunto de imágenes anotadas con sus clases correspondientes (gato, perro, caballo, etc.).). ConvNet procesa cada imagen con sus valores aleatorios y luego compara su salida con la etiqueta correcta de la imagen. Si la salida de la red no coincide con la etiqueta-lo que es probablemente el caso al comienzo del proceso de entrenamiento—hace un pequeño ajuste a los pesos de sus neuronas para que la próxima vez que vea la misma imagen, su salida estará un poco más cerca de la respuesta correcta.,
las correcciones se realizan a través de una técnica llamada backpropagation (o backprop). Esencialmente, backpropagation optimiza el proceso de ajuste y hace que sea más fácil para la red decidir qué unidades ajustar en lugar de hacer correcciones aleatorias.
cada ejecución de todo el conjunto de datos de entrenamiento se denomina «época».»El ConvNet pasa por varias épocas durante el entrenamiento, ajustando sus pesos en pequeñas cantidades. Después de cada época, la red neuronal se vuelve un poco mejor en la clasificación de las imágenes de entrenamiento., A medida que la CNN mejora, los ajustes que hace a los pesos se vuelven más y más pequeños. En algún momento, la red «converge», lo que significa que esencialmente se vuelve tan buena como puede.
después de entrenar a CNN, los desarrolladores usan un conjunto de datos de prueba para verificar su precisión. El conjunto de datos de prueba es un conjunto de imágenes etiquetadas que no forman parte del proceso de formación. Cada imagen se ejecuta a través de la ConvNet, y la salida se compara con la etiqueta real de la imagen. Esencialmente, el conjunto de datos de prueba evalúa qué tan buena se ha vuelto la red neuronal para clasificar imágenes que no ha visto antes.,
si una CNN puntúa bien en sus datos de entrenamiento pero puntúa mal en los datos de la prueba, se dice que ha sido «overfitted.»Esto suele ocurrir cuando no hay suficiente variedad en los datos de entrenamiento o cuando ConvNet pasa por demasiadas épocas en el conjunto de datos de entrenamiento.
el éxito de las redes neuronales convolucionales se debe en gran medida a la disponibilidad de enormes conjuntos de datos de imágenes desarrollados en la última década. ImageNet, el concurso mencionado al principio de este artículo, obtuvo su título de un conjunto de datos homónimo con más de 14 millones de imágenes etiquetadas., Hay otros conjuntos de datos más especializados, como el MNIST, una base de datos de 70.000 imágenes de dígitos escritos a mano.
sin embargo, no es necesario entrenar cada red neuronal convolucional en millones de imágenes. En muchos casos, puede usar un modelo preentrenado, como AlexNet o ResNet de Microsoft, y ajustarlo para otra aplicación más especializada. Este proceso se llama aprendizaje de Transferencia, en el que una red neuronal entrenada se vuelve a entrenar un conjunto más pequeño de nuevos ejemplos.,
los límites de las redes neuronales convolucionales
a pesar de su poder y complejidad, las redes neuronales convolucionales son, en esencia, máquinas de reconocimiento de patrones. Pueden aprovechar recursos informáticos masivos para descubrir patrones visuales pequeños y discretos que podrían pasar desapercibidos para el ojo humano. Pero cuando se trata de entender el significado de los contenidos de las imágenes, funcionan mal.
Considere la siguiente imagen. Una ConvNet bien entrenada le dirá que es la imagen de un soldado, un niño y la bandera estadounidense., Pero una persona puede dar una larga Descripción de la escena, y hablar sobre el servicio militar, viajes en un país extranjero, el sentimiento de anhelo por el hogar, la alegría de reunirse con la familia, etc. Las redes neuronales artificiales no tienen noción de esos conceptos.
Estos límites se hacen más evidentes en las aplicaciones prácticas de convolucional redes neuronales. Por ejemplo, los CNN ahora se utilizan ampliamente para moderar el contenido en las redes sociales., Pero a pesar de los enormes repositorios de imágenes y videos en los que están entrenados, todavía tienen dificultades para detectar y bloquear contenido inapropiado. En un caso, la IA de Moderación de contenido de Facebook prohibió la foto de una estatua de 30.000 años de antigüedad como desnudez.
Además, las redes neuronales comienzan a romperse tan pronto como se mueven un poco fuera de su contexto. Varios estudios han demostrado que los CNN entrenados en ImageNet y otros conjuntos de datos populares no detectan objetos cuando los VEN bajo diferentes condiciones de iluminación y desde nuevos ángulos.,
un estudio reciente realizado por investigadores del MIT-IBM Watson AI Lab destaca estas deficiencias. También presenta ObjectNet, un conjunto de datos que representa mejor los diferentes matices de cómo se ven los objetos en la vida real. Los CNN no desarrollan los modelos mentales que los humanos tienen sobre diferentes objetos y su capacidad para imaginar esos objetos en contextos nunca vistos.
otro problema con las redes neuronales convolucionales es su incapacidad para entender las relaciones entre diferentes objetos. Considere la siguiente imagen, que se conoce como un» problema de Bongard», que lleva el nombre de su inventor, el científico informático ruso Mikhail Moiseevich Bongard. Los problemas de Bongard le presentan dos conjuntos de imágenes (seis a la izquierda y seis a la derecha), y debe explicar la diferencia clave entre los dos conjuntos., Por ejemplo, en el ejemplo siguiente, Las imágenes del conjunto izquierdo contienen un objeto y las imágenes del conjunto derecho contienen dos objetos.
es fácil para los humanos sacar tales conclusiones de tan pequeñas cantidades de muestras. Si le muestro estos dos conjuntos y luego le proporciono una nueva imagen, podrá decidir rápidamente si debe ir al conjunto izquierdo o derecho.
pero todavía no hay una red neuronal convolucional que pueda resolver problemas de Bongard con tan pocos ejemplos de entrenamiento. En un estudio realizado en 2016, los investigadores de IA entrenaron a CNN en 20,000 muestras de Bongard y las probaron en 10,000 más. El rendimiento de la CNN fue mucho menor que el de los humanos promedio.
las peculiaridades de los ConvNets también los hacen vulnerables a ataques adversarios, perturbaciones en los datos de entrada que pasan desapercibidas para el ojo humano pero afectan el comportamiento de las redes neuronales., Los ataques adversarios se han convertido en una fuente importante de preocupación, ya que el aprendizaje profundo y, especialmente, los CNN se han convertido en un componente integral de muchas aplicaciones críticas, como los automóviles autónomos.
¿esto significa que los CNN son inútiles?, A pesar de los límites de las redes neuronales convolucionales, sin embargo, no se puede negar que han causado una revolución en la inteligencia artificial. Hoy en día, los CNN se utilizan en muchas aplicaciones de visión por computadora, como el reconocimiento facial, la búsqueda y edición de imágenes, la realidad aumentada y más. En algunas áreas, como el procesamiento de imágenes médicas, ConvNets bien entrenados podrían incluso superar a los expertos humanos en la detección de patrones relevantes.,
Como muestran los avances en las redes neuronales convolucionales, nuestros logros son notables y útiles, pero todavía estamos muy lejos de replicar los componentes clave de la inteligencia humana.