¿Por qué los CNN se usan más para tareas de visión por computadora que otras tareas?

La respuesta de Aakash Moghariya proporciona una respuesta muy completa a su pregunta de por qué CNN se presta a problemas de visión. TL: DR, no solo tenemos un sólido cuerpo de investigación que indica que esta es la forma en que funcionan los sistemas de visión biológica (¡GUAU en ese nivel de investigación de fondo por cierto!) Sino también porque hay una evidencia empírica lógica de que la convolución debería funcionar bien en visión. La razón por la que las personas usan redes neuronales no convolucionales en campos donde los datos no son datos de imágenes es porque la convolución no siempre representa relaciones en sus datos originales, o los fenómenos naturales que representan los datos.

Para el resumen lógico . Si lo piensas, ¿qué es una convolución? Khan Academy tiene una excelente visión general de bajo nivel, pero en la práctica puede pensar en la convolución como una función que tiene una alta respuesta cuando existe una alta correlación espacial entre otras dos funciones.

En el caso de una convolución 2D (o incluso 3D), esta función genera “características” o una relación de correlación basada en señales (o datos visuales) que están cerca una de la otra.

Lógicamente, si se supone que las características son indicadores locales de significado global (p. Ej., Buscar ojos separados por un cierto ancho en relación con su tamaño para detectar caras), entonces la convolución es la operación que nos da esta localidad. Obviamente estoy tratando de mantener un alto nivel aquí, pero eso debería ser suficiente para facilitar la comprensión, o al menos suspender tu incredulidad 🙂

Para obtener una visión general empírica, debemos analizar por qué las redes totalmente conectadas, la alternativa natural a la convolución, tienen algunos problemas. Como se mencionó nuevamente en la publicación de Aakash, hemos tenido el instinto de que la profundidad en la forma en que nuestro cerebro procesa los datos es profunda . Sin embargo, como resultado de su propia estructura, las redes totalmente conectadas con múltiples capas de profundidad, ahora generalmente denominadas perceptrones multicapa o MLP, no entrenaron bien. El primer problema importante fue el problema de gradiente de desaparición (o, a veces, de explosión), que puede considerarse como el error entre la predicción y el resultado real utilizado por las capas más cercanas al final de la pila de red y, por lo tanto, no entrenando al primero capas muy rápidamente. Este problema se resuelve en gran parte por los advenimientos de las conexiones de salto entre capas, y quizás lo más importante es que las GPU. El segundo problema es el tamaño del modelo, como en un MLP, si conecta todos los nodos (que en el caso de una imagen es un píxel) entre sí, su tamaño de red escala exponencialmente. Esto es lo que resolvió la CNN; usando la convolución para relacionar píxeles, efectivamente solo está mirando las conexiones entre los nodos (píxeles) y los nodos más locales para ellos. ¿Y qué pasa si una característica necesita ser grande? Ahí es donde entran en juego la dilatación de convolución y agrupación, pero no abordaré eso aquí.

Sin embargo, la implicación más importante de su pregunta no es tanto por qué funcionan para la visión por computadora, sino por qué no funcionan tan bien para otras aplicaciones de aprendizaje automático. La respuesta a esa pregunta vuelve al mismo tema: localidad. Los datos visuales casi siempre tienen relaciones espaciales entre objetos relacionados en la imagen, ya que la “objetividad” es exactamente la ocurrencia única de ese objeto. Tener una red que identifique “pares”, por ejemplo, podría ser más difícil de hacer en una sola red. De hecho, gran parte de los datos del mundo no tienen esta buena restricción de localidad. Si piensa en grandes problemas de investigación abierta como la “comprensión de la escena”, la “descripción del video”, incluso todos los campos de hápticos (datos de sensores táctiles) y procesamiento del lenguaje natural (datos de lenguaje), puede hacer algunas suposiciones de localidad (especialmente cuando se piensa en la localidad temporal) , pero en general estos supuestos serán violados.

Me gusta pensar en la CNN de una manera algo peculiar que me ayuda con esta comprensión: la compresión de la red neuronal. La convolución es elegante, sin duda, pero el hecho de que podamos comprimir el concepto general (cada punto o nodo de datos en la red neuronal está conectado entre sí) en uno que está mucho más estructurado y simplificado (cada nodo o punto de datos solo está conectado a cosas cercanas), de repente tenemos una versión altamente comprimida de la red más general. Sin embargo, al igual que en la compresión de datos convencional, algunas cosas no se comprimen bien, por ejemplo, datos binarios aleatorios. Más importante aún para esta discusión, no todas las cosas se comprimen a su tamaño más pequeño de la misma manera. Esta imagen del conjunto de Mandelbrot, por ejemplo, se puede comprimir al máximo para la definición del conjunto de Mandelbrot, y luego algunos bits de datos sobre el color deseado y el grado de iteración, que serían muchos órdenes de magnitud más pequeños en tamaño de datos. Por otro lado, como imagen, la compresión convencional probablemente solo podría reducirla al 90% de su tamaño actual. La razón por la cual las personas que usan redes neuronales no convolucionales en campos donde los datos no son datos de imágenes es porque la “compresión convolucional” es, para continuar la analogía, “demasiado perdida”, y por lo tanto no siempre representa bien sus datos originales, o el fenómenos naturales que representan los datos.

Una de las principales razones por las cuales CNN es más prominente en la tarea de visión por computadora en comparación con otras es debido a nuestra comprensión de la visión y la forma en que el cerebro trata de hacerla.

En 1959, dos estudiantes postdoctorales de la Universidad de Harvard iniciaron el campo del aprendizaje profundo después de trabajar con gatos para comprender la parte del cerebro responsable de la visión. Entonces, el experimento que llevaron a cabo fue colocar una tecnología similar a un electrodo que detecta la actividad en el cerebro del gato y le mostró una imagen de pez. Sin embargo, durante las etapas iniciales no encontraron signos de actividad en el cerebro a pesar de mostrar a los gatos la imagen de los peces. Después de este incidente, pensaron que su experimento iba a fallar. Pero en lugar de frustrarse, pudieron observar cada parte del experimento con cuidado y encontraron un gran avance. Se dieron cuenta de que justo cuando intentaban alejar la imagen del pez del gato para cambiarlo, la parte segura de su cerebro se activó. Entonces, la conclusión a la que llegaron en el documento fue que el cerebro tiene neuronas en forma de columna y cada neurona es responsable de detectar un tipo específico de estímulos. Por ejemplo, ciertas neuronas pueden ser responsables de detectar bordes en movimiento, mientras que otras pueden ser responsables de detectar otro tipo de patrones como el color o cualquier otra cosa.

Nota: Realmente no tengo un enlace al documento. Pero espero que alguien pueda ayudarme aquí con el enlace.

Con más y más trabajo en la visión, se propusieron ciertas otras ideas con respecto a cómo funciona la visión del cerebro. En 1970, David Marr escribió un artículo llamado visión. Fue un gran avance en la comprensión de cómo el cerebro hace la visión, afirmó que la tarea de visión se realiza de manera jerárquica. Empiezas simple y te vuelves complejo. Por ejemplo, comienza con tan simple como identificar bordes, colores y luego construir sobre ellos para detectar objetos y luego clasificarlos y así sucesivamente.

Y luego hubo otros dos grandes científicos como Brook y Binford que declararon en su artículo que el mundo está compuesto de formas simples como cilindros, bloques y otros. Cualquier objeto del mundo real es básicamente una combinación de tales formas con ángulos diferentes. Y esta fue también otra perspectiva poderosa para comprender la visión por computadora en su conjunto. (1979)

Nota: Nuevamente no tengo un enlace en papel.

En resumen, hubo muchos avances en la comprensión de las técnicas normales de procesamiento de la visión del cerebro humano en el pasado. Pero si comparamos tareas similares a otras, como el procesamiento del lenguaje natural, se puede afirmar que nuestra perspectiva en la comprensión y el modelado del lenguaje es completamente diferente de la de entender la visión. Además, nuestra comprensión de las técnicas del cerebro humano para comprender el lenguaje natural también es completamente diferente de la visión. En resumen, los humanos tenemos perspectivas totalmente diferentes para determinar y comprender cómo nuestro cerebro se ocupa de diferentes tareas. Y parte de la razón, por qué existen diferentes perspectivas para explicar el algoritmo general del cerebro humano para resolver cualquier tarea, se debe a las diferentes comunidades científicas. Por ejemplo, la terminología y la perspectiva de algunos científicos que trabajan para comprender cómo el cerebro humano procesa el lenguaje natural es totalmente diferente a la de un científico con visión que explica cómo el cerebro humano se ocupa de la tarea de la visión. Y, por lo tanto, tenemos muchas perspectivas diferentes sobre estas tareas en lugar de tener una perspectiva universal sobre cómo el cerebro se ocupa de todas las tareas. Me refiero a que el cerebro está formado por células similares llamadas neuronas y realizan alguna actividad para realizar cualquier tarea. Entonces, ¿cómo es que tenemos tantas teorías diferentes sobre cómo nuestro cerebro las maneja y procesa?

Entonces, la pregunta principal ahora es ¿por qué estoy enfatizando más en nuestra capacidad de entender cómo el cerebro humano se ocupa de una tarea similar? Solo hay una respuesta simple a la pregunta, es decir, tratamos de emular esta comprensión al diseñar algoritmos de aprendizaje automático. ¡Después de todo, nuestro objetivo final es diseñar una máquina que pueda emular a los humanos! Y ha habido múltiples casos en que los científicos se inspiraron en la naturaleza para resolver un problema de ingeniería. Por ejemplo, Wright se molesta en estudiar el vuelo de las aves antes de diseñar sus aviones. La ingeniería no tiene que entender completamente cómo lo hace la naturaleza, sino simplemente encontrar una solución simple y elegante de cómo la naturaleza podría hacerlo simplificando la solución. Entonces, en el caso de las aves, los aviones realmente no heredaron su cabeza, frijol o incluso plumas. Pero lo que el avión heredó fue la idea de cómo ocurre el flujo de aire en el ala de un pájaro y se cansa de replicarlo para que sea posible volar. Por lo tanto, se toma una inspiración similar al diseñar algunos algoritmos de aprendizaje automático, al comprender cómo el cerebro humano trata el problema y tratar de replicarlo simplificando las soluciones.

Entonces, después de elaborar toda la historia, vamos a las CNN. Las redes neuronales enrevesadas son un tipo de redes neuronales que se usan comúnmente con el fin de implementar el aprendizaje automático en imágenes.

La arquitectura de las CNN está diseñada como tal para emular la técnica del cerebro humano para manejar imágenes. Como las convoluciones se usan principalmente para extraer características de alto nivel de las imágenes, como bordes / otros patrones, estos algoritmos intentan emular nuestra comprensión de la visión como se describe en los documentos anteriores. Hay ciertos filtros que realizan operaciones como desenfocar la imagen, enfocar la imagen y luego realizar operaciones de agrupación en cada uno de estos filtros para extraer información de una imagen. Como se indicó anteriormente, nuestra comprensión de la visión consiste en que la visión es un proceso jerárquico y nuestro cerebro trata con la visión de manera similar. CNN también se ocupa de comprender y clasificar imágenes de manera similar. ¿Ves el patrón aquí?

¿Ves cómo las CNN tienden a seguir al cerebro? ¿Extraer características de alto nivel como bordes, etc. de una imagen para comprender qué es el objeto?

Ejemplo de extracción y clasificación de características CNN.

Visualización de varias capas de la red neuronal enrevesada.

Básicamente, las CNN fueron diseñadas emulando nuestra comprensión de la visión. Y, por lo tanto, los CNN se usan mucho en tareas de imagen en comparación con otras tareas. Como nuestra comprensión de la imagen es similar a la de las CNN que nuestra comprensión de algo como los lenguajes naturales. Pruébelo usted mismo para comprender el lenguaje natural en la perspectiva de la visión. Háganos saber si podría llegar a una teoría similar, como la procesión de la visión del cerebro en otras tareas, como el procesamiento del cerebro del lenguaje natural o cualquier otra tarea. Si pudiera entonces estar seguro, la gente no solo usará CNN para otras tareas, sino que también diseñará un algoritmo eficiente para resolverlas teniendo en cuenta su teoría.

Nota: El propósito de esta respuesta no es explicar qué son las CNN en detalle, sino explicar por qué se usan más comúnmente para tareas de visión por computadora en comparación con otras. Si desea comprender las CNN en detalle, consulte otras fuentes en línea.

More Interesting

En el autoencoder variacional, ¿por qué solo tomamos muestras de variables latentes de un gaussiano estándar y aplicamos el decodificador para generar nuevos datos en las pruebas?

Quiero aprender Python para el análisis de datos y el aprendizaje automático. ¿De dónde debería comenzar?

¿Qué excelente proyecto universitario podemos construir usando Machine Learning para obtener una gran exposición?

¿Es posible cambiar a un doctorado en aprendizaje automático después de un MPhil en econometría?

¿Cómo debo aprender el aprendizaje automático? ¿Puede proporcionar una hoja de ruta específica desde un principiante hasta un experto?

Quiero hacer aplicaciones de visión por computadora. ¿Dónde empiezo?

¿Qué algoritmo de aprendizaje automático debo usar cuando tengo 5-6 valores categóricos independientes y 1 variable continua dependiente?

¿Cuál es el mejor foro de red neuronal en Internet?

Cómo calcular gradientes en una red neuronal de avance utilizando matrices

¿Cómo estimar la divergencia KL si no se conoce el posterior? En inferencia variacional, KL se utiliza para encontrar una distribución que se aproxime al verdadero posterior, pero el KL requiere conocer el posterior mismo. ¿Cómo se trata esto?

¿Qué te sorprendió después de ver algo relacionado con el aprendizaje automático, la IA, la PNL o la visión por computadora?

En el aprendizaje profundo, ¿son el "aprendizaje incremental" y el "aprendizaje de transferencia" el mismo enfoque?

Cómo proceder si no puedo desempeñarme mejor en un conjunto de datos en particular cuando intento ajustar un modelo de aprendizaje automático

¿Por qué no es una buena idea tener el mismo tren y equipo de prueba?

Al entrenar a un clasificador, ¿cómo trato con clases que tienen números muy diferentes de muestras en el conjunto de entrenamiento? ¿Cómo evito un ajuste excesivo en la clase que tiene la mayor cantidad de muestras?