Redes neuronales para tontos: una introducción rápida a este fascinante campo

¿Alguna vez te has preguntado cuáles son todas estas redes neuronales de las que todo el mundo habla y has tenido demasiado miedo de preguntar? Bueno, no temas más! ¡Al final de esta publicación, podrá ingresar a cualquier conferencia y deslumbrar a la mesa del almuerzo con sus palabras de moda recién adquiridas!

Si ha abierto su navegador en los últimos años, debe haber visto la expresión "Redes neuronales" un par (cientos) de veces.

En esta breve lectura, le daré algo de contexto sobre el dominio y sobre la cosa en sí. No se convertirá en el experto mundial en el campo en los próximos 5 minutos, pero pasará la etapa de incorporación no trivial. También aprenderá algunas palabras de moda para impresionar a la familia en la mesa de la cena, especialmente si sigue la lista de lectura al final.

¿Qué es el aprendizaje automático?

Para comprender las redes neuronales, primero debemos comprender el aprendizaje automático. Y para comprender el aprendizaje automático, hablemos primero del aprendizaje humano o "programación clásica".

En la programación clásica, yo, el desarrollador, necesito comprender los aspectos del problema que estoy tratando de resolver y saber exactamente cuáles son todas las reglas para llegar a la solución.

Por ejemplo, digamos que quiero que mi programa sepa la diferencia entre un cuadrado y un círculo. Entonces, una forma de manejarlo es escribir un programa que pueda detectar esquinas y luego aplicarlo para contar las esquinas. Si mi programa ve 4 esquinas, entonces esta forma es un cuadrado, y si ve que no hay esquinas, entonces esta forma es un círculo.

¿Y el aprendizaje automático? En términos muy generales, Machine Learning = aprender de ejemplos.

En Machine Learning, al enfrentar exactamente el mismo problema de diferenciar círculos y cuadrados, diseñaríamos un sistema de aprendizaje que tomaría como entrada muchos ejemplos de formas y su clase (cuadrado o círculo). Esperamos que la máquina aprenda por sí misma las propiedades que los distinguen.

Y luego, amigos míos, una vez que la máquina haya aprendido todas estas propiedades, puedo darle una nueva imagen de un círculo o un cuadrado, uno que no haya visto antes , y espero que lo clasifique correctamente.

¿Qué es una neurona?

Una neurona, en el contexto de las redes neuronales, es un nombre elegante que las personas inteligentes usan cuando son demasiado elegantes para decir función . Una función , en el contexto de las matemáticas y la informática, es un nombre elegante para algo que toma alguna entrada, aplica algo de lógica y genera el resultado.

Más concretamente, se puede pensar en una neurona como una unidad de aprendizaje .

Por lo tanto, necesitamos comprender qué es una unidad de aprendizaje , en el contexto del aprendizaje automático. Entonces también entenderemos el bloque de construcción más básico de una red neuronal, que es la neurona.

Para ilustrar, digamos que estoy tratando de entender la relación entre la cantidad de palabras en una publicación de blog y la cantidad de palabras que la gente realmente lee de esa publicación de blog. Recuerde: estamos en el dominio del aprendizaje automático, donde aprendemos de los ejemplos.

Así que recopilo muchos ejemplos de recuento de palabras en publicaciones de blog, indicadas por x , y cuántas palabras realmente leen las personas en esas publicaciones, y , e imagino que existe alguna relación entre ellas, indicadas por f .

Sin embargo, el truco es, que sólo hay que indicar a la máquina (el programa) especie de lo que es la relación que espero ver (por ejemplo, una línea recta), y la máquina comprender la línea real que necesita para dibujar.

¿Qué gané aquí?

La próxima vez que quiera escribir una publicación de blog que tenga x palabras, la máquina puede aplicar la relación f que encontró y decirme cuántas palabras puedo esperar que la gente lea realmente, y .

Entonces, una red neuronal es ...

Bueno, si una neurona es una función, ¡entonces una red neuronal es una red de funciones! Lo que significa que tenemos muchas (muchas muchas) funciones de este tipo, unidades de aprendizaje , y todas sus entradas y salidas están entrelazadas y se alimentan entre sí.

Como diseñador de esta red, es mi trabajo responder algunas preguntas:

  • ¿Cómo modelo las entradas y salidas ? (por ejemplo, si la entrada es un texto, ¿puedo modelarlo en letras? ¿números? ¿vectores?….)
  • ¿Cuáles son las funciones de cada neurona? (¿son lineales? ¿exponenciales?…)
  • ¿Cuál es la arquitectura de la red? (es decir, ¿qué salida de función es la entrada de qué función?)
  • Cuáles son las palabras de moda¿Puedo usar para describir mi red?

Una vez que haya respondido a estas preguntas, puedo "mostrar" a la red muchos (muchos muchos) ejemplos de entradas y salidas correctas, con la esperanza de que cuando le "muestre" un nuevo ejemplo de entrada que nunca antes había visto, sabrá para dar la salida correcta.

Cómo funciona este proceso de aprendizaje está más allá del alcance de esta publicación, pero para obtener más información, puede ver esto. También puedes ir a este increíblemente genial Neural Network Playground para tener una mejor idea de lo que esto significa.

Redes neuronales: la historia sin fin

Como este campo está literalmente explotando, la cantidad de contenido nuevo (¡y de alta calidad!) Que sale cada minuto es imposible de seguir para cualquier humano. (Dios mío, ¿crees que llegará el momento en que los humanos puedan construir una IA que pueda realizar un seguimiento de los avances humanos en el dominio de la IA?)

Al entrar en este campo, lo primero que debe saber es que NADIE lo sabe todo. Así que siéntete cómodo donde estás y sigue siendo curioso :)

Por lo tanto, quiero que mis últimas palabras en esta publicación sean una referencia a algunos de mis recursos favoritos personales de los que aprender:

  • Gal Yona, una de mis blogueras favoritas en el campo. Sus publicaciones van desde explicaciones técnicas rigurosas hasta reseñas semifilosóficas.
  • Siraj Raval: un youtuber con una gran colección de videos, que van desde explicaciones teóricas hasta tutoriales prácticos, ¡todo muy divertido también!
  • Christopher Olah, un investigador apasionado y perspicaz, mantiene un blog visualmente atractivo, con publicaciones que van desde conceptos básicos hasta inmersiones profundas.
  • Towards Data Science es la publicación de Medium más grande específica del campo, y lo que me encanta de ella es que los editores son excelentes curadores. Siempre que tenga unos minutos / horas de sobra, vaya a su página de inicio y comience a explorar todo , desde herramientas prácticas hasta contenido algorítmico profundo.