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 Parte 2
Ya lo sé, lo sé. Sé que ha pasado mucho tiempo entre vídeo y vídeo.
¿Cómo? ¿Que no te acuerdas de la primera parte? Vale, me hago cargo.
Repaso rápido. A ver, recuerda, en la primera parte nos centramos en entender qué era una
neurona artificial, componente básico dentro de una red neuronal. Vimos cómo matemáticamente
una neurona se definía como una suma ponderada de sus valores de entrada y cómo esto se
equivalía al modelo de regresión lineal. Hablamos de nachos y de realidad virtual.
Sí, en serio. Y con esto planteamos un ejemplo en el que comprobamos que el uso de una neurona
podría modelar la información de una puerta AND y lo visualizamos. E hicimos lo mismo
con una puerta OR y con una puerta SHOR. Bueno, con la puerta SHOR no pudimos. Y es que también
comprobamos que con una sola neurona no se podía separar linealmente a una nube de puntos
distribuidos de esta manera. Ese será nuestro punto de partida en el vídeo de hoy.
Para solucionar el problema de la puerta SHOR, vimos que la solución venía por duplicar
a nuestras neuronas para así poder tener dos separadores que de forma combinada no separaban
correctamente ambas clases. Una demostración muy clara de cómo añadiendo neuronas podíamos
empezar a modelar información más compleja. En el vídeo de hoy vamos a desarrollar este
concepto y veremos qué ventajas podemos obtener de juntar cada vez más y más neuronas.
Sin decir, hoy nos centraremos en entender la red de una red neuronal.
Empecemos a juntar neuronas. Si te lo planteas, hay dos formas diferentes de organizar a estas
neuronas de aquí. Una manera sería colocarlas en la misma columna, o llamado de forma más
correcta, en la misma capa. Como se puede ver, dos neuronas que se encuentran en la
misma capa recibirán la misma información de entrada de la capa anterior y los cálculos
que realizan los pasarán a la capa siguiente. A la primera capa donde está la variable
de entrada se le denomina capa de entrada y a la última capa de salida. A las capas
intermedias se le denominan capas ocultas. Vale, de momento parece sencillo, ¿no? Pero
no nos quedemos solo con eso. Como nos gusta hacer en este canal, vamos a intentar entender
de forma intuitiva qué es lo que ocurre cuando colocamos las neuronas de una manera u otra.
Como hemos dicho, cuando colocamos dos neuronas de forma secuencial, una de ellas recibe la
información procesada por la neurona anterior. ¿Y qué ventajas nos aporta esto? Bueno,
pues con esto lo que conseguimos es algo muy importante, que la red pueda aprender conocimiento
jerarquizado. Fíjate, si recuerdas el ejemplo de la primera parte, te acordarás que teníamos
dos variables de entrada, nachos y realidad virtual, y que con una sola neurona conseguíamos
modelar si pasaríamos una noche entretenida o no. Es decir, nuestra neurona ha procesado
la información de entrada y el resultado de salida nos aporta una información más elaborada
y compleja. ¿Y por qué no utilizar esta información para elaborar algo más complejo aún? A lo
mejor lo que queremos que aprenda nuestra red no es saber si estaremos entretenidos el
viernes noche, sino la nota que sacaremos en el examen de la semana que viene. A lo
mejor tenemos otros variables de entrada que son motivación por la asignatura y dificultad
del examen. Siendo así, esta podría ser una posible arquitectura de nuestra red. Ahora,
de forma jerarquizada, la red neuronal podría aprender conocimiento más básico en las
primeras capas, como por ejemplo que esta neurona se especializa en saber si vas a estar
entretenido el viernes por la noche, y esta otra neurona que se especializa en saber cuál
es tu motivación de cara al examen. El conocimiento elaborado en esta capa será procesado nuevamente
por las siguientes capas, elaborando cada vez conocimiento más complejo, abstracto
e interesante. Esta neurona de aquí podría descubrir que si tu motivación de cara al
examen es baja y tu noche del viernes posiblemente sea entretenida, quizá vayas a estudiar poco
y tu desempeño en el examen sea más bajo. ¿Lo entiendes? Como ves, entre más capas
añadimos, más complejo puede ser el conocimiento que elaboremos. Esta profundidad en la cantidad
de capas es lo que da nombre al aprendizaje profundo, el deep learning. Pero... Bueno,
eso, que hay un pero. Pero un pero muy importante. Para alcanzar este aprendizaje profundo, hemos
dicho que queremos conectar múltiples neuronas de forma secuencial, y si recuerdas de la
primera parte, al final lo que hace cada una de estas neuronas es un problema de regresión
lineal. Es decir, que lo que estamos haciendo, si lo planteamos matemáticamente, es concatenar
diferentes operaciones de regresión lineal. El problema aquí es que matemáticamente se
puede comprobar que el efecto de sumar muchas operaciones de regresión lineal, es decir,
sumar muchas líneas rectas, equivale a solamente haber hecho una única operación. Es decir,
da como resultado otra línea recta. O, visto de otra manera, tal y como está planteada
la red de momento, hace que toda la estructura que queríamos conseguir colapse hasta ser
equivalente a tener una única neurona. Para conseguir que nuestra red no colapse, necesitamos
que esta suma de aquí, de como resultado algo diferente a una línea recta. Y para
eso, necesitaríamos que cada una de estas líneas sufra alguna manipulación no lineal
que las distorsione. ¿Cómo lo conseguimos? Entran en escena las funciones de activación.
La función de activación es la última componente que nos faltó ver en la estructura de la
neurona. Básicamente, si en nuestra neurona lo que hacíamos era calcular como valor de
salida una suma ponderada de nuestras entradas, lo que queremos hacer ahora es pasar dicho
valor de salida por nuestra función de activación. Lo que hará la función de activación será
distorsionar nuestro valor de salida, añadiéndole deformaciones no lineales, para que así podamos
encadenar de forma efectiva la computación de varias neuronas.
¿Y cómo son estas deformaciones? Bueno, pues depende de la función de activación.
Vamos a ver alguna de ellas. Realmente, ya en el video anterior, habíamos
visto una primera función de activación. Cuando decíamos que una vez hubiéramos obtenido
el resultado de la suma, asignaríamos 0,1 en función de si el valor era mayor o menor
que el umbral, lo que estábamos haciendo era transformar el valor de salida. Es decir,
estábamos pasando nuestro resultado por una función de activación. Más concretamente
esta función es la función escalonada. Esta de aquí.
Como ves, lo que nos cuenta esta función es que para un valor de entrada mayor al umbral,
el output es 1, y si es inferior, es igual a 0. Se llama escalonada porque el cambio
de valor se produce instantáneamente y no de forma gradual, produciendo así un escalón,
algo que como veremos en el próximo video, no favorece el aprendizaje. Por tanto, esta
función de activación no nos interesa. Sin embargo, esta función de aquí es más
interesante. Esta es la función sigmoide, y como vemos, la distorsión que produce hace
que los valores muy grandes se saturen en 1, y los valores muy pequeños se saturen
en 0. Por tanto, con esta función sigmoide no solo conseguimos añadir la deformación
que estamos buscando, sino que también nos sirve para representar probabilidades, que
siempre vienen en el rango de 0 a 1. Similar a esta, tenemos también la función tangente
hiperbólica, cuya forma es similar a la sigmoide, pero cuyo rango varía de menos 1 a 1.
Y finalmente, otro tipo de función de activación muy utilizada es la unidad rectificada lineal,
reLU para los colegas, que básicamente se comporta como una función lineal cuando es
positiva y constante a 0 cuando el valor de entrada es negativo. Cada una de estas funciones,
además de aportar la no linealidad que estamos buscando, también ofrecen diferentes beneficios
dependiendo de cuándo las utilicemos. Temario que queda para otro vídeo aparte.
Al añadir estas deformaciones no lineales, damos por solucionado el problema de poder
encadenar varias neuronas. Como no quiero que me creas, sino que realmente lo entiendas,
vamos a ver un ejemplo. Oh bueno, mira, realmente ya llevo hablando un rato, así que mejor
lo buscas en internet y yo creo que me voy a echar un rato al sofá. A ver qué echan
a la tele.
Oh, sigues aquí. Bueno, quizás te estés comiendo algún spoiler de Juego de Tronos.
Estamos en el punto este de la batalla, coño en nieve, en la que están rodeados, pero
bueno, luego todo al final sale bien y se largan volando en águilas para destruir el
anillo y... Bueno, yo qué sé, no soy DayoScript, ¿vale? Pero... Madre mía, qué batalla. Es
decir, están completamente rodeados. Todos estos de aquí son los malos y estos de aquí
son los buenos. Uff, vaya movida. Por cierto, ahora que me fijo, ¿y si quisiéramos salvarlos
usando una red neuronal? ¿Qué? No me mires así. No te olvides que esto no deja de ser
un canal sobre inteligencia artificial.
Mira, vamos a aplicar toda la teoría que hemos visto en el vídeo para intentar separar estas
dos nubes de puntos. Quizás este ejemplo te parezca muy tonto, pero en la realidad este
mismo problema podría ser el de clasificar en una imagen qué células son cancerígenas
y cuáles no. ¿Cómo lo hacemos? Para que lo pueda ver claro, voy a intentar enseñarte
la interpretación geométrica de lo que ocurre en una red neuronal. Esto ya lo empezamos
a ver en el vídeo anterior. ¿Recuerdas esta gráfica de aquí? Aquí podíamos ver el
resultado del procesamiento de una neurona operando en una tarea de clasificación. Pero
antes te he dicho que aquí ya estábamos haciendo uso de una función de activación
escalonada, cuya forma está de aquí. ¿Y cómo podríamos ver geométricamente el efecto
de esta función de activación en nuestra gráfica? ¿Dónde se esconde? Pues fíjate
bien, aquí está. Efectivamente, el efecto de la función de activación es el de distorsionar
el plano generado por la neurona. Toda la geometría de este plano distorsionado que
sea superior a este plano de aquí, pertenecerá a un grupo, en este caso en verde, y lo que
quede debajo pertenecerá al otro grupo en rojo. ¿Y cómo sería esta misma figura
si hubiéramos utilizado las otras funciones? Pues aquí lo puede ver. Como ves, podemos
encontrar en la silueta del plano la forma original de nuestras funciones de activación.
Aún así, fíjate que de momento en los tres casos, nuestra frontera no deja de ser una
línea recta debido a la intersección de la figura geométrica con el plano. Entonces
si solo conseguimos una línea recta, ¿cómo podemos encontrar una frontera curva que pueda
solucionar este problema? Esto lo vamos a solucionar aprovechando que gracias a la función
de activación ahora ya podemos encadenar varias neuronas al mismo tiempo.
Una posible solución al problema sería la siguiente. Vamos a colocar en la primera
capa oculta de nuestra red una neurona con una función sigmoide. Como ya eres capaz
de reconocer, la función sigmoide tiene esta forma de aquí, y en realidad su forma la
podemos ir variando según ajustamos los parámetros de nuestra red. Podemos ver que cambiando
los parámetros podemos conseguir incluso cambiar la orientación de la figura, y esto
nos puede servir. En vez de una sola neurona vamos a colocar cuatro, y cada una de ellas
con una orientación diferente. Si te fijas, con una nueva neurona podemos construir la
combinación de estas cuatro figuras geométricas de aquí, obteniendo como resultado una superficie
plana con un bulto en medio. Esta figura es la solución a nuestro problema, porque como
se puede ver, la intersección del plano con esta montaña produce la frontera circular
que estábamos buscando. Nuestro problema de clasificación está resuelto y John Nieves
y sus amigos están salvados. Con este ejemplo espero haberte convencido de que las redes
neuronales son capaces de desarrollar soluciones muy complejas gracias a la unión de muchas
y muchas neuronas. Si tras ver este vídeo la única duda con la que te quedas es por
qué sigo empeñado en decir John Nieves en vez de John Snow, entonces significa que
ya estás preparado para lo que nos falta por ver en la tercera parte de esta serie.
Porque claro, todo esto que hemos visto que puede hacer la red neuronal lo tiene que aprender
a hacer ella por sí sola. ¿Quieres saber cómo? Te lo cuento en el próximo vídeo.