¿Qué son las redes neuronales y cómo funcionan?

¿Qué son las redes neuronales y cómo funcionan? / Tecnología explicada

Si te mantienes al día con las noticias de tecnología, probablemente te hayas cruzado con el concepto de Redes neuronales (también conocido como redes neuronales).

En 2016, por ejemplo, la red neuronal AlphaGo de Google venció a uno de los mejores jugadores profesionales de Go en una serie 4-1. YouTube también anunció que utilizarían redes neuronales para comprender mejor sus videos. YouTube usará redes neuronales para entender realmente los videos. YouTube usará redes neuronales para entender realmente los videos. La búsqueda en YouTube puede ser frustrante, porque YouTube no ve los videos de la manera en que lo hacen. una persona lo hace Recientemente, Google presenta una patente que podría cambiar eso. Lee mas . Decenas de otras historias pueden venir a la mente.

Pero, ¿qué es exactamente una red neuronal? ¿Como funciona? ¿Y por qué es tan popular en el aprendizaje automático??

Una computadora como un cerebro

Los neurocientíficos modernos a menudo discuten el cerebro como un tipo de computadora. Las redes neuronales pretenden hacer lo contrario: construir una computadora que funcione como un cerebro.

Por supuesto, solo tenemos una comprensión superficial de las funciones extremadamente complejas del cerebro, pero al crear una simulación simplificada de cómo el cerebro procesa los datos, podemos construir un tipo de computadora que funciona de manera muy diferente a la estándar..

Los procesadores informáticos procesan los datos en serie (“en orden”). Realizan muchas operaciones en un conjunto de datos, uno a la vez. Procesamiento en paralelo (“Procesando varios flujos a la vez”) acelera significativamente la computadora usando varios procesadores en serie.

En la imagen de abajo, el ejemplo de procesamiento paralelo requiere cinco procesadores diferentes:

Crédito de la imagen: ExplainThatStuff

Una red neuronal artificial (llamada así para distinguirla de las redes neuronales reales en el cerebro) tiene una estructura fundamentalmente diferente. Está muy interconectado. Esto le permite procesar datos muy rápidamente, aprender de esos datos y actualizar su propia estructura interna para mejorar el rendimiento.

El alto grado de interconexión, sin embargo, tiene algunos efectos sorprendentes. Por ejemplo, las redes neuronales son muy buenas para reconocer patrones oscuros en los datos.

La capacidad de aprender

La capacidad de una red neuronal para aprender es su mayor fortaleza. Con la arquitectura informática estándar, un programador tiene que desarrollar un algoritmo que le diga a la computadora qué hacer con los datos entrantes para asegurarse de que la computadora dé la respuesta correcta.

Una respuesta de entrada-salida podría ser tan simple como “cuando se presiona la tecla A, se muestra 'A' en la pantalla” O tan complicado como realizar estadísticas complejas. Las redes neuronales, por otro lado, no necesitan el mismo tipo de algoritmos. A través de los mecanismos de aprendizaje, esencialmente pueden diseñar sus propios algoritmos. 4 Algoritmos de aprendizaje automático que dan forma a su vida. 4 Algoritmos de aprendizaje automático que configuran su vida. Puede que no se dé cuenta, pero el aprendizaje automático ya está a su alrededor y puede ejercer un grado sorprendente de influencia sobre tu vida No me crees Te sorprenderías. Leer más que aseguren que funcionen correctamente..

Es importante tener en cuenta que dado que las redes neuronales son programas de software escritos en máquinas que utilizan hardware estándar de procesamiento en serie, la tecnología actual aún impone límites. En realidad, construir una versión de hardware de una red neuronal es otro problema totalmente distinto..

De las neuronas a los nodos

Ahora que hemos sentado las bases de cómo funcionan las redes neuronales, podemos comenzar a analizar algunos de los detalles. La estructura básica de una red neuronal artificial se ve así:

Cada uno de los círculos se llama “nodo” y simula una sola neurona. A la izquierda están los nodos de entrada, en el centro están los nodos ocultos y a la derecha los nodos de salida.

En términos muy básicos, los nodos de entrada aceptan valores de entrada, que podrían ser un 1 o un 0 binarios, parte de un valor de color RGB, el estado de una pieza de ajedrez o cualquier otra cosa. Estos nodos representan la información que fluye hacia la red..

Cada nodo de entrada está conectado a una serie de nodos ocultos (a veces a cada nodo oculto, a veces a un subconjunto). Los nodos de entrada toman la información que se les da y la pasan a la capa oculta.

Por ejemplo, un nodo de entrada podría enviar una señal (“fuego,” en el lenguaje de la neurociencia) si recibe un 1, y permanece inactivo si recibe un cero. Cada nodo oculto tiene un umbral: si todas sus entradas sumadas alcanzan un cierto valor, se dispara.

De las sinapsis a las conexiones

A cada conexión, el equivalente de una sinapsis anatómica, también se le asigna un peso específico, que permite a la red poner un mayor énfasis en la acción de un nodo específico. Aquí hay un ejemplo:

Como puede ver, el peso de la conexión B es mayor que el de las conexiones A y C. Digamos que el nodo 4 oculto solo se disparará si recibe una entrada total de 2 o mayor. Eso significa que si 1 o 3 se disparan por su cuenta, entonces 4 no se activarán, pero 1 y 3 juntos dispararán el nodo. El nodo 2 también podría activar el nodo por sí mismo a través de la conexión B.

Tomemos el tiempo como un ejemplo práctico. Digamos que diseñas una red neuronal simple para determinar si debería haber una advertencia de tormenta de invierno.

Usando las conexiones y los pesos anteriores, el nodo 4 solo podría dispararse si la temperatura es inferior a 0 F y los vientos son superiores a 30 MPH, o se dispararía si hubiera más del 70 por ciento de probabilidad de nieve. La temperatura se alimentaría al nodo 1, los vientos al nodo 3 y la probabilidad de nieve en el nodo 2. Ahora el nodo 4 puede tener todo esto en cuenta al determinar qué señal enviar a la capa de salida.

Mejor que la lógica simple

Por supuesto, esta función podría ser ejecutada simplemente con compuertas lógicas AND / OR. Pero las redes neuronales más complejas, como la de abajo, son capaces de operaciones significativamente más complejas.

Crédito de la imagen: Redes neuronales y aprendizaje profundo por Michael A. Nielsen

Los nodos de capa de salida funcionan de la misma manera que los de capa oculta: los nodos de salida suman la entrada de la capa oculta, y si alcanzan un cierto valor, los nodos de salida se activan y envían señales específicas. Al final del proceso, la capa de salida enviará un conjunto de señales que indican el resultado de la entrada.

Si bien la red que se muestra arriba es simple, las redes neuronales profundas pueden tener muchas capas ocultas y cientos de nodos.

Crédito de la imagen: Redes neuronales y aprendizaje profundo por Michael A. Nielsen

Error de corrección

El proceso, hasta ahora, es relativamente simple. Pero donde las redes neuronales realmente brillan es en el aprendizaje. La mayoría de las redes neuronales utilizan un proceso llamado retropropagación, que envía señales hacia atrás a través de la red.

Antes de que los programadores implementen una red neuronal, la ejecutan a través de una fase de capacitación en la que recibe un conjunto de entradas con resultados conocidos. Por ejemplo, un programador podría enseñar a una red neuronal a reconocer imágenes. Use su teléfono inteligente para identificar cualquier cosa con CamFind. Use su teléfono inteligente para identificar cualquier cosa con CamFind. Esta aplicación realmente puede identificar casi cualquier objeto que le arroje. Eso no solo es genial, sino que también tiene un montón de usos prácticos. Lee mas . La entrada podría ser una imagen de un automóvil, y la salida correcta sería la palabra “coche.”

El programador proporciona la imagen como entrada y ve lo que sale de los nodos de salida. Si la red responde con “avión,” El programador le dice a la computadora que es incorrecto.

La red luego realiza ajustes a sus propias conexiones, alterando los pesos de diferentes enlaces entre nodos. Esta acción está guiada por un algoritmo de aprendizaje específico agregado a la red. La red continúa ajustando los pesos de conexión hasta que proporciona la salida correcta.

Esto es una simplificación, pero las redes neuronales pueden aprender operaciones altamente complejas usando principios similares.

Mejora continua

Incluso después del entrenamiento, la propagación hacia atrás continúa, y aquí es donde las redes neuronales se vuelven realmente geniales. Continúan aprendiendo a medida que se usan, integrando nueva información y haciendo ajustes a los pesos de diferentes conexiones, volviéndose cada vez más efectivos y eficientes en la tarea para la que fueron diseñados..

Esto podría ser tan simple como el reconocimiento de imágenes o tan complejo como jugar Go.

De esta manera, las redes neuronales siempre están cambiando y mejorando. Y esto puede tener efectos sorprendentes, dando como resultado redes que priorizan las cosas que un programador no habría pensado priorizar.

Además del proceso descrito anteriormente, que se llama aprendizaje supervisado, También hay otro método: aprendizaje sin supervisión.

En esta situación, las redes neuronales toman una entrada e intentan recrearla exactamente en su salida, utilizando la propagación hacia atrás para actualizar sus conexiones. Esto puede parecer un ejercicio infructuoso, pero de esta manera, las redes aprenden a extraer características útiles y a generalizar esas características para mejorar sus modelos..

Cuestiones de profundidad

La propagación hacia atrás es una forma muy efectiva de enseñar redes neuronales ... cuando solo tienen unas pocas capas de profundidad. A medida que aumenta el número de capas ocultas, la efectividad de la propagación hacia atrás disminuye. Este es un problema para las redes profundas. Usando backpropagation, a menudo no son más efectivos que las redes simples.

Los científicos han encontrado una serie de soluciones a este problema, cuyos detalles son bastante complicados y están más allá del alcance de esta introducción. Lo que muchas de estas soluciones intentan hacer, en términos simples, es disminuir la complejidad de la red al capacitarla para “comprimir” los datos.

Crédito de la imagen: Song Han

Para hacer esto, la red aprende a extraer un número menor de características de identificación de la entrada, lo que eventualmente se vuelve más eficiente en sus cálculos. En efecto, la red está haciendo generalizaciones y abstracciones, de la misma manera que los humanos aprenden..

Después de este aprendizaje, la red puede eliminar los nodos y las conexiones que considere menos importantes. Esto hace que la red sea más eficiente y que el aprendizaje sea más fácil..

Aplicaciones de red neuronal

Así que las redes neuronales simulan cómo aprende el cerebro mediante el uso de múltiples capas de nodos (entrada, ocultación y salida) y pueden aprender tanto en situaciones supervisadas como no supervisadas. Las redes complejas son capaces de hacer abstracciones y generalizar, lo que las hace más eficientes y más capaces de aprender.

¿Qué podemos usar estos fascinantes sistemas para?

En teoría, podemos usar redes neuronales para casi cualquier cosa. Y probablemente los has estado usando sin darte cuenta. Son muy comunes en el reconocimiento de voz y visual, por ejemplo, porque pueden aprender a seleccionar rasgos específicos que los sonidos o las imágenes tienen en común..

Entonces, cuando le preguntas a Siri 8 cosas que probablemente no te diste cuenta de que Siri podía hacer 8 cosas que probablemente no te diste cuenta de que Siri podía hacer Siri se ha convertido en una de las características definitorias del iPhone, pero para muchas personas no siempre es la más útil. Si bien parte de esto se debe a las limitaciones del reconocimiento de voz, la rareza de usar… Lea más dónde está la gasolinera más cercana, su iPhone está transmitiendo su voz a través de una red neuronal para descubrir lo que está diciendo. Puede haber otra red neuronal que aprende a predecir el tipo de cosas que es probable que pidas.

Los autos autónomos pueden usar redes neuronales para procesar datos visuales, por lo tanto, seguir las reglas de la carretera y evitar colisiones. Los robots de todo tipo pueden beneficiarse de las redes neuronales que les ayudan a aprender a completar tareas de manera eficiente. Las computadoras pueden aprender a jugar juegos como el ajedrez, ir y Atari los clásicos Si alguna vez ha hablado con un chatbot, existe la posibilidad de que esté utilizando una red neuronal para ofrecer respuestas adecuadas.

La búsqueda en Internet puede beneficiarse enormemente de las redes neuronales, ya que el modelo de procesamiento paralelo altamente eficiente puede producir una gran cantidad de datos rápidamente. Una red neuronal también podría aprender sus hábitos para personalizar sus resultados de búsqueda o predecir qué buscará en un futuro próximo. Este modelo de predicción obviamente sería muy valioso para los mercadólogos (y cualquier otra persona que necesite predecir el comportamiento humano complejo).

Reconocimiento de imagen, reconocimiento óptico de caracteres Las 5 mejores herramientas de OCR para extraer texto de las imágenes Las 5 mejores herramientas de OCR para extraer texto de las imágenes Cuando tiene resmas de papel, ¿cómo puede convertir todo el texto impreso en algo que un programa digital será? capaz de reconocer e indexar? Mantenga un buen software de OCR cerca. Lea más, predicción del mercado de valores, búsqueda de rutas, procesamiento de big data, análisis de costos médicos, pronóstico de ventas, videojuegos de inteligencia artificial ... las posibilidades son casi infinitas. La capacidad de las redes neuronales para aprender patrones, hacer generalizaciones y predecir con éxito el comportamiento las hace valiosas en innumerables situaciones.

El futuro de las redes neuronales

Las redes neuronales han avanzado desde modelos muy simples hasta simulaciones de aprendizaje altamente complejas. Están en nuestros teléfonos, nuestras tabletas y ejecutan muchos de los servicios web que utilizamos. Hay muchos otros sistemas de aprendizaje automático por ahí..

Pero las redes neuronales, debido a su similitud (de una manera muy simplificada) con el cerebro humano, son algunas de las más fascinantes. A medida que continuamos desarrollando y refinando modelos, no se sabe de qué serán capaces..

¿Conoces algún uso interesante de las redes neuronales? ¿Tienes experiencia con ellos? ¿Qué es lo que más te interesa de esta tecnología? Comparte tus pensamientos en los comentarios a continuación!

Explorar más sobre: ​​futurología, redes neuronales, tecnología..