logo

Dot CSV

Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀 Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀

Transcribed podcasts: 213
Time transcribed: 5d 22h 50m 3s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

Redes neuronales. Ya conozcas o no sobre el campo de la inteligencia
artificial, posiblemente te hayas cruzado con este término en alguna ocasión. Y es
que las redes neuronales se han convertido en la familia de algoritmos de machine learning
más populares de esta última oleada que estamos viviendo. En realidad, como modelo
computacional, existen desde mediados del siglo pasado, pero no ha sido hasta hace unos
años con la mejora de la técnica y la tecnología que hemos empezado a utilizarlas a lo bestia.
Reconocimiento de caracteres, de imágenes, de voz, predicción bursátil, generación
de texto, traducción de idiomas, prevención de fraude, conducción autónoma, análisis
genético, pronóstico de enfermedades o quizás lo más espectacular, clasificar pepinos.
Wow, el futuro ya ha llegado. Como ves, se trata de una familia de algoritmos muy potentes
con los que podemos modelar comportamientos inteligentes. Pero… ¿y cómo funcionan?
Como suele ocurrir con la mayoría de comportamientos y estructuras avanzadas, la complejidad de
estos sistemas emerge de la interacción de muchas partes más simples trabajando conjuntamente.
En el caso de una red neuronal, a cada una de estas partes se le denomina neurona. En
el vídeo de hoy nos centraremos en entender el funcionamiento de una neurona y cómo podemos
utilizarlas para codificar información dentro de ellas. En futuros vídeos veremos cómo
estas neuronas se agrupan para formar una red neuronal y cómo estos sistemas son capaces
de aprender.
Veamos, como hemos dicho una neurona es la unidad básica de procesamiento que nos vamos
a encontrar dentro de una red neuronal. Similar a una neurona biológica, estas neuronas tienen
conexiones de entrada a través de los que reciben estímulos externos, los valores de
entrada. Con estos valores, la neurona realizará un cálculo interno y generará un valor
de salida. Vamos, que realmente una neurona no deja de ser un nombre muy guay para referirnos
a una función matemática.
Pero, ¿y de qué se trata este cálculo numérico? Internamente, la neurona utiliza todos los
valores de entrada para realizar una suma ponderada de ellos. La ponderación de cada
una de las entradas viene dada por el peso que se le asigna a cada una de las conexiones
de entrada. Es decir, cada conexión que llega a nuestra neurona tendrá asociado un valor
que servirá para definir con qué intensidad cada variable de entrada afecta a la neurona.
Intuitivamente, esto se suele representar como palancas que podemos subir o bajar para
modificar positiva o negativamente el valor de nuestra suma. Como te imaginarás, estos
pesos son los parámetros de nuestro modelo, y serán los valores que podremos ajustar
para que nuestra red neuronal pueda apretar.
Espera, espera, espera. Esta ocasión ya la habíamos visto antes. Esto es muy parecido
a lo que utilizamos en el video del modelo de regresión lineal. ¿Quiere decir eso que
lo que hace una neurona internamente es una regresión lineal? Bueno, pues algo parecido
así. De hecho, mi motivación por empezar esta serie explicando ese modelo se debe
a todo lo que vamos a ver ahora. Sí, ahí lo tienen. Se puede decir que una neurona
lo que hace internamente es algo así como un modelo de regresión lineal. Si recuerdan,
tenemos una variable de entrada que define una recta o un hiperplano a la que podemos
variar la inclinación utilizando nuestros parámetros. ¿Ven que es lo mismo? Es más,
si se acuerdan de nuestro modelo de regresión lineal, recordarán que teníamos un término
independiente que nos servía para mover verticalmente a la recta. Pues fíjate que en la neurona
también tendremos este mismo término que nos dará control para mover a nuestra función.
A este valor se le denomina sesgo, o bias en inglés, y se representa básicamente como
otra conexión a la neurona pero en el que la variable siempre está asignada a 1 y que
podemos controlar manipulando el valor del parámetro de sesgo. De esta manera, nuestra
neurona ahora actuaría exactamente como el modelo de regresión lineal. Sin embargo,
esta diferencia vendrá con un último componente que les presentaré luego. Antes, quiero que
entiendas con un ejemplo cómo nos puede ser útil esta neurona para codificar información.
Realidad virtual Esa maravillosa tecnología que te permite
vivir aventuras de manera totalmente inmersiva. Porque, ¿quién querría vivir en la realidad
real cuando existe la realidad virtual? Imagínate experimentar esto, o esto, o esto. Bueno no,
al pensar sobre esta idea, llegas a la conclusión de que tener un plan perfecto para el viernes
por la noche depende de dos cosas. Por un lado, contar con un casco de realidad virtual que
poder usar. Y por el otro lado, para que la noche esté completa, necesitas, no amigos,
no, nachos. Efectivamente, un plan perfecto solo se puede dar si tenemos la combinación
de realidad virtual y nachos. Vamos a utilizar nuestra neurona para modelar este ejemplo. En
este caso, ambas variables serán variables binarias, es decir, su valor solo puede ser
0 o 1, y esto indicará si tenemos realidad virtual y si tenemos nacho. De igual forma,
la variable de salida que queremos modelar es una que nos indique si el plan del viernes
por la noche ha sido perfecto o no, es decir, esto será otra variable binaria. Pero nuestra
neurona, tal y como funciona ahora mismo, actúa como un modelo de regresión lineal,
y si recuerdan, este modelo notaba un resultado numérico continuo y no una variable binaria.
Lo que se suele hacer es evaluar el resultado de la regresión lineal, y si el valor supera
un cierto umbral, le asignamos a la salida el valor 1, y si este es inferior al umbral,
el valor 0. Como en nuestra neurona contamos con el término de sesgo, podemos asignarle
un valor equivalente al opuesto del umbral y así podemos reescribir esta fórmula de
manera más sencilla. Ahora simplemente el valor de la salida dependerá de si el cúmputo
de nuestra neurona es mayor o menor que 0. Ahora sí estamos listos para empezar a modelar
nuestro plan de viernes noche. Hemos dicho que para que nuestra noche sea épica, es
decir, que la salida sea 1, necesitamos que ambas variables de entrada estén activas,
es decir, que tengamos realidad virtual y que tengamos nachos. Cualquier otra combinación
diferente hará que esta noche no sea tan interesante. En esta tabla también vamos
a visualizar cuál es el resultado de nuestra neurona para cada combinación de variables.
Visto así, nuestra tarea será la de ir variando el valor de nuestros parámetros, tanto los
pesos de las conexiones como el sesgo, para encontrar la combinación perfecta que modele
nuestra noche ideal. Si vamos probando diferentes combinaciones vemos cómo el resultado va
variando. Finalmente podríamos encontrar una combinación como esta, en la que como
ves, para todas las combinaciones de variables conseguimos el resultado esperado. Fíjate
como con estos parámetros solo es posible obtener una respuesta positiva, es decir,
un valor de 1 en la salida, cuando ambas variables de entrada están activadas. Hemos por tanto
conseguido utilizar a nuestra neurona para codificar información sobre nuestra noche
épica. Un ejemplo muy simple, sí, pero oye, por algo se empieza.
Para entender mejor lo que hemos hecho, vamos a intentar visualizar esta tabla de aquí.
Para ello dibujamos una gráfica donde cada eje representa nuestras variables, nachos
y realidad virtual. Como habíamos dicho, si alguno de estos elementos o ambos nos faltaban,
nuestra noche no sería tan épica. Solo tendremos un resultado positivo en el caso de que ambas
variables estuvieran activadas. Desde los ojos de un informático vemos que realmente
este problema, si le quitamos la capa narrativa, no es más que el modelo de una puerta lógica
AND. Vamos a continuar trabajando desde este prisma.
Si sobre esta gráfica ahora visualizaramos la recta de regresión definida por nuestra
neurona, veríamos lo siguiente. Como ves, la combinación de parámetros que hemos encontrado
antes han trazado una recta que separa nuestros puntos de la gráfica en dos grupos diferentes.
Por tanto, otra manera de entender este problema es la de encontrar aquellos valores de nuestros
parámetros que tracen una frontera entre las dos clases que queremos clasificar, a
que es mucho más intuitivo de ver. Ahora que entiendes esto, podemos probar con
otros ejemplos. Por ejemplo, este de aquí sería la gráfica de una puerta OR. Nuevamente,
podemos ir ajustando los valores de nuestros parámetros hasta que encontramos la combinación
correcta que trace una recta que separe ambos grupos. En este caso sería esta. Vaya, parece
sencillo. Prueba ahora con el ejemplo de una puerta SHOR.
Intentamos separarlo en dos grupos, quizás así. No, mejor así. No, tampoco.
No te preocupes, este problema no tiene solución, y es que se trata de una de las limitaciones
de utilizar una única neurona para codificar este modelo. Es imposible separar linealmente
ambas clases. La solución a este problema es muy sencilla, añadir una segunda neurona.
Si era con dos neuronas, tendríamos dos rectas que podríamos usar para separar ambos grupos.
¿Ves? Problema resuelto. Esta limitación de las neuronas de poder
resolver el problema de la puerta SHOR se conoce desde 1969, e ilustra muy bien la necesidad
de combinar varias neuronas para poder conseguir modelos más complejos. En la siguiente parte
de esta serie hablaremos de cómo se combinan las neuronas para construir redes neuronales.
Para ello, como ya les dije antes, hará falta introducir un último componente a la estructura
de nuestra neurona, la función de activación. Pero como se trata de un concepto tan interesante
y este video ya empieza a quedar largo, lo dejaremos para el próximo video.