(Tomado de: Algobeans – Tutoriales Layman en Analytics )
Las redes neuronales, como su nombre lo indica, es una técnica de aprendizaje automático que se basa en la estructura del cerebro. Se compone de una red de unidades de aprendizaje llamadas neuronas. Estas neuronas aprenden cómo convertir las señales de entrada (por ejemplo, la imagen de un gato) en las señales de salida correspondientes (por ejemplo, la etiqueta “gato”), formando la base del reconocimiento automático.
Tomemos el ejemplo del reconocimiento automático de imágenes. El proceso de determinar si una imagen contiene un gato implica una función de activación . Si la imagen se parece a imágenes de gatos anteriores que las neuronas han visto antes, se activaría la etiqueta “gato”. Por lo tanto, cuantas más imágenes etiquetadas estén expuestas las neuronas, mejor aprenderá a reconocer otras imágenes no etiquetadas. Llamamos a esto el proceso de entrenamiento de neuronas. (Para obtener una explicación detallada, consulte nuestro tutorial sobre Redes neuronales artificiales).
- ¿Cómo funciona la hipótesis para una red neuronal simple (MLP con activación logística, salida única) en forma simplificada?
- ¿Cómo usa Quora el aprendizaje automático en 2017?
- ¿Qué startups están trabajando en IA y ML?
- ¿Qué hace la informática afectiva?
- ¿Por qué el umbral para superar la prueba de Turing se estableció para engañar al 30% de las personas en promedio en lugar del 50%?
La inteligencia de las redes neuronales es asombrosa. Si bien las redes neuronales artificiales fueron investigadas a principios de la década de 1960 por Rosenblatt, fue solo a fines de la década de 2000 cuando despegó el aprendizaje profundo utilizando redes neuronales. El habilitador clave fue la escala del poder de cómputo y los conjuntos de datos con la investigación pionera de Google en el aprendizaje profundo. En julio de 2012, los investigadores de Google expusieron una red neuronal avanzada a una serie de imágenes estáticas sin etiqueta recortadas de videos de YouTube. Para su sorpresa, descubrieron que la red neuronal aprendió una neurona detectora de gatos por sí sola, apoyando la afirmación popular de que “Internet está hecho de gatos”.
Una de las neuronas en la red neuronal artificial, entrenada a partir de cuadros fijos de videos de YouTube sin etiqueta, aprendió a detectar gatos. Imagen del blog de Google.
Modelo inspirado biológicamente
La técnica que utilizaron los investigadores de Google se llama Redes neuronales convolucionales (CNN), un tipo de red neuronal artificial avanzada. Se diferencia de las redes neuronales regulares en términos del flujo de señales entre las neuronas. Las redes neuronales típicas pasan señales a lo largo del canal de entrada-salida en una sola dirección, sin permitir que las señales vuelvan a la red. Esto se llama alimentación hacia adelante.
Si bien las redes de alimentación directa se emplearon con éxito para el reconocimiento de imágenes y texto, requirió que todas las neuronas estuvieran conectadas, lo que resultó en una estructura de red demasiado compleja. El costo de la complejidad aumenta cuando la red tiene que ser capacitada en grandes conjuntos de datos que, junto con las limitaciones de las velocidades de procesamiento de la computadora, dan como resultado tiempos de capacitación extremadamente largos. Por lo tanto, las redes de alimentación directa han caído en desuso del aprendizaje automático convencional en la era de los medios de comunicación de alta resolución y ancho de banda de hoy en día. Se necesitaba una nueva solución.
En 1986, los investigadores Hubel y Wiesel estaban examinando la corteza visual de un gato cuando descubrieron que su campo receptivo comprendía subregiones superpuestas para cubrir todo el campo visual. Estas capas actúan como filtros que procesan las imágenes de entrada, que luego se pasan a las capas posteriores. Esto resultó ser una forma más simple y más eficiente de transportar señales. En 1998, Yann LeCun y Yoshua Bengio intentaron capturar la organización de las neuronas en la corteza visual del gato como una forma de red neuronal artificial, estableciendo la base de la primera CNN.
CNN resumido en 4 pasos
Hay cuatro pasos principales en CNN: convolución, submuestreo, activación y conectividad total.
La implementación más popular de la CNN es LeNet, después de Yann LeCun. Las 4 capas clave de una CNN son Convolución, Submuestreo, Activación y Conexión total. Imagen cortesía: http://www.ais.uni-bonn.de/deep_…
Paso 1: convolución
Las primeras capas que reciben una señal de entrada se denominan filtros de convolución. La convolución es un proceso en el que la red intenta etiquetar la señal de entrada haciendo referencia a lo que ha aprendido en el pasado. Si la señal de entrada se parece a las imágenes de gato anteriores que ha visto antes, la señal de referencia de “gato” se mezclará con la señal de entrada o se combinará con ella. La señal de salida resultante se pasa a la siguiente capa.
Envolviendo a Wally con un filtro circular. El filtro circular responde fuertemente a los ojos.
La convolución tiene la agradable propiedad de ser invariante traslacional . Intuitivamente, esto significa que cada filtro de convolución representa una característica de interés (por ejemplo, bigotes, pelaje), y el algoritmo CNN aprende qué características comprenden la referencia resultante (es decir, cat). La intensidad de la señal de salida no depende de dónde se encuentran las características, sino simplemente de si las características están presentes. Por lo tanto, un gato podría estar sentado en diferentes posiciones, y el algoritmo CNN aún podría reconocerlo.
Paso 2: submuestreo
Las entradas de la capa de convolución se pueden “suavizar” para reducir la sensibilidad de los filtros al ruido y las variaciones. Este proceso de suavizado se llama submuestreo y se puede lograr tomando promedios o tomando el máximo sobre una muestra de la señal. Los ejemplos de métodos de submuestreo (para señales de imagen) incluyen reducir el tamaño de la imagen o reducir el contraste de color en los canales rojo, verde, azul (RGB).
Submuestreo Wally por 10 veces. Esto crea una imagen de menor resolución.
Paso 3: Activación
La capa de activación controla cómo fluye la señal de una capa a la siguiente, emulando cómo se activan las neuronas en nuestro cerebro. Las señales de salida que están fuertemente asociadas con referencias pasadas activarían más neuronas, permitiendo que las señales se propaguen más eficientemente para su identificación.
CNN es compatible con una amplia variedad de funciones de activación complejas para modelar la propagación de señales, siendo la función más común la Unidad lineal rectificada (ReLU) , que se ve favorecida por su mayor velocidad de entrenamiento.
Paso 4: completamente conectado
Las últimas capas de la red están completamente conectadas, lo que significa que las neuronas de las capas anteriores están conectadas a cada neurona en las capas posteriores. Esto imita el razonamiento de alto nivel donde se consideran todas las vías posibles desde la entrada hasta la salida.
(Durante el entrenamiento) Paso 5: Pérdida
Al entrenar la red neuronal, hay una capa adicional llamada capa de pérdida . Esta capa proporciona retroalimentación a la red neuronal sobre si identificó las entradas correctamente y, de no ser así, qué tan lejos estaban sus conjeturas. Esto ayuda a guiar la red neuronal para reforzar los conceptos correctos mientras se entrena. Esta es siempre la última capa durante el entrenamiento.
Implementación
Los algoritmos utilizados en el entrenamiento de CNN son análogos a estudiar para los exámenes con tarjetas flash. Primero, dibuja varias tarjetas y verifica si ha dominado los conceptos en cada tarjeta. Para tarjetas con conceptos que ya conoce, deséchelos. Para aquellas tarjetas con conceptos de los que no está seguro, vuelva a colocarlos en la pila. Repita este proceso hasta que esté bastante seguro de que conoce suficientes conceptos para que le vaya bien en el examen. Este método le permite enfocarse en conceptos menos familiares al volver a visitarlos con frecuencia. Formalmente, estos algoritmos se denominan algoritmos de descenso de gradiente para el aprendizaje de paso adelante. El algoritmo moderno de aprendizaje profundo utiliza una variación llamada descenso de gradiente estocástico , donde en lugar de dibujar las tarjetas de forma secuencial, las dibuja al azar. Si se dibujan temas similares en secuencia, los alumnos pueden sobreestimar qué tan bien conocen el tema. El enfoque aleatorio ayuda a minimizar cualquier forma de sesgo en el aprendizaje de temas.
Los algoritmos de aprendizaje requieren comentarios. Esto se hace usando un conjunto de validación donde la CNN haría predicciones y las compararía con las etiquetas verdaderas o la verdad fundamental. Las predicciones de los errores que se realizan se envían hacia atrás a la CNN para refinar los pesos aprendidos, en un llamado pase hacia atrás. Formalmente, este algoritmo se denomina retropropagación de errores y requiere que las funciones en la CNN sean diferenciables (casi).
Las CNN son demasiado complejas para implementar desde cero. Hoy en día, los profesionales del aprendizaje automático a menudo utilizan cajas de herramientas desarrolladas como Caffe, Torch, MatConvNet y Tensorflow para su trabajo.
Interpretación
Al igual que a veces nos resulta difícil racionalizar nuestros pensamientos, la CNN inspirada en el cerebro también es difícil de interpretar debido a su gran complejidad. Utiliza numerosos filtros, combinados de diferentes maneras, gobernados por varias funciones de activación. Sin embargo, recientemente se desarrolló una técnica para ayudarnos a observar cómo una red neuronal aprendió a reconocer señales.
(Imagen por cortesía: http://www.iro.umontreal.ca/~bengioy/talks/DL-Tutorial-NIPS2015.pdf )
La red neuronal DeConvolution , como su nombre lo indica, disecciona el progreso del entrenamiento en cada capa. Examina la primera capa de convolución, así como la última capa completamente conectada. La primera capa representa el conjunto de características con las que la CNN está familiarizada y determina cuáles son los objetos básicos (características de bajo nivel) que la CNN podría detectar. Por otro lado, la capa final representa qué tan bien se unen las características para formar conceptos: una separación más clara de conceptos implica que la red neuronal puede distinguir mejor entre diferentes conceptos sin confusión.
Conclusión
Convolutional Neural Net es una técnica popular de aprendizaje profundo para las tareas actuales de reconocimiento visual. Al igual que todas las técnicas de aprendizaje profundo, CNN depende mucho del tamaño y la calidad de los datos de capacitación. Dado un conjunto de datos bien preparado, las CNN son capaces de superar a los humanos en las tareas de reconocimiento visual. Sin embargo, todavía no son resistentes a los artefactos visuales, como el resplandor y el ruido, que los humanos pueden hacer frente. La teoría de la CNN aún se está desarrollando y los investigadores están trabajando para dotarla de propiedades como la atención activa y la memoria en línea, lo que permite a las CNN evaluar nuevos elementos que son muy diferentes de los que recibieron capacitación. Esto emula mejor el sistema visual de los mamíferos, avanzando así hacia un sistema de reconocimiento visual artificial más inteligente.
¿Aprendiste algo útil hoy? Echa un vistazo a Algobeans para obtener más tutoriales en ciencia de datos .