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.

Hace unos meses me encontraba haciendo eso que todo apasionado del Machine Learning nace cuando se
encuentra con alguien ajeno a este campo. Efectivamente al ardear sobre las redes
neuronales. Que si análisis de caracteres por aquí, que si reconocimiento facial por allá,
todo iba sobre ruedas hasta el momento en el que mi interlocutor desde el máximo
desconocimiento de esta tecnología afirmó lo siguiente.
Entonces tú a una red neuronal la alimentas con muchos datos y estás capaz de resolver
una tarea determinada porque al final lo que hace es memorizar esos ejemplos, ¿verdad?
¡Oh! Memorizar. Esta es una pregunta muy interesante porque tras ella se esconde uno
de los conceptos más importantes del campo del Machine Learning. ¿Quieres saber cuál es?
Es hora de volver a estudiar.
No sé tú, pero yo cuando estudiaba en el colegio era de aquellos alumnos que realmente disfrutaba
del proceso de aprender algo nuevo. Cada asignatura, cada tema, cada píldora de información
no la disfrutaba hasta que finalmente tras dedicar un esfuerzo acababa por comprenderla,
como si de un juego lógico se tratara. En resumidas cuentas me gustaba aprender. Así quizás por eso
yo encajaría dentro del perfil del estudiante A, el aprendiz. Este no es el único perfil que te
encontrarás. También tenemos el de ese estudiante que, bueno, sin esforzarse mucho, tampoco terminaba
de aprender bien los conceptos que se veían en clase y su rendimiento no era bueno. Este
es el estudiante tipo B, el burro. Finalmente tenemos un tercer tipo de estudiante que,
si bien tampoco se esforzaba por aprender en profundidad el temario del curso, lo que se
hacía era prepararse muy bien aquellos problemas que sabía iban a entrar en el examen, ya fuera
memorizándolo o haciendo trampas. Este, por tanto, es nuestro tercer estudiante, el tipo C, el chuletas.
Seguramente estos tres estereotipos de estudiantes te serán familiares y, por tanto, no te costará
responder a la siguiente pregunta. Si hiciéramos un examen, ¿qué tal lo haría cada uno? Lo más
probable es que el estudiante A sacara una buena nota en el examen, ya que al fin y al cabo ha hecho
el esfuerzo de entender en profundidad todo el temario y, por tanto, no tendría dificultad en
hacer bien los problemas. Por otro lado, nuestro estudiante B haría su mejor esfuerzo, pero puesto
que no ha adquirido los conocimientos necesarios, probablemente la mayoría de sus respuestas estén
incorrectas. Sin embargo, algo diferente ocurre con el estudiante C, y es que en este caso,
todo su esfuerzo se ha centrado en prepararse muy bien aquellos ejercicios que sabía que iban a
entrar en el examen, simplemente tras memorizarse o copiar el procedimiento de las prácticas hechas
en el curso. Sin embargo, aunque su método sea poco ortodoxo, el resultado final es que nuestro
estudiante C también ha obtenido una muy buena nota, incluso por encima de la del estudiante A.
Esto es lo que ocurre cuando te concentras en hacer muy bien una única tarea.
Pero, más allá de la nota del examen, ¿realmente son iguales estos dos estudiantes? Si tuvieras que
decir cuál de los dos tendrá un mejor rendimiento en el futuro cuando se tengan que enfrentar a
resolver nuevos problemas de ese tema pero diferentes a los examinados, ¿en quién depositarías
tu confianza? En el estudiante A, ¿verdad? ¿Y sabría decirme por qué? Tu intuición es correcta,
y es que es en la capacidad resolutiva del alumno A, en la cual deberíamos confiar más en el futuro.
El motivo es que si bien ambos alumnos han demostrado ser capaces de resolver aquellos
problemas planteados en el examen, el alumno A lo ha hecho a partir de entender la lógica
subyacente de la materia. Y por tanto, no solo debería ser capaz de resolver los problemas
vistos en el curso, sino que de ser correcta su lógica también debería servir para resolver
nuevos problemas. Es decir, ¿será capaz de generalizar su conocimiento? Como ya deberás
de saber, que tu modelo sea capaz de generalizar es la componente más perseguida en el campo del
machine learning. Porque a ti te da igual que tu modelo sepa clasificar con acierto que una
imagen contiene a un perro o un gato, si estas son las imágenes que ya has utilizado para su
entrenamiento. Porque, bueno, si las has utilizado para el entrenamiento es que entonces ya sabías
la etiqueta asignada a cada imagen, y por tanto no hacía falta entrenar a ningún modelo. No,
tú lo que quieres es que a partir de esos ejemplos tu modelo sea capaz de hacer predicciones y
clasificar imágenes nuevas, nunca antes vistas durante su entrenamiento. Pero no te hagas el
sorprendido, porque esto por ejemplo ya lo vimos cuando hablamos del modelo de regresión lineal
simple. Si partíamos de una serie de muestras iniciales que notaban pistas de una relación
entre dos variables X e Y, lo que queríamos hacer era inferir a partir de esos datos un modelo,
que en ese caso se restringía a solo una línea recta, para que una vez estuviera ajustado a
nuestros datos no sirviera para hacer predicciones incluso de datos que no habíamos visto antes,
por ejemplo este de aquí. Nada nuevo de momento. Ahora, una pregunta, ¿podemos concluir que un
modelo bien ajustado a los datos va a ser siempre un modelo que generalice bien? Pues no exactamente,
fíjate. Imagínate que tus datos originales, en vez de distribuirse como una recta, tienen la
siguiente forma, en forma de S. Ahora, si quisiéramos volver a ajustar a nuestro modelo utilizando el
modelo de regresión lineal de antes con la recta, nos encontraríamos con que la hipótesis de que la
relación entre ambas variables es lineal no es suficiente, puesto que la recta no es capaz de
adaptarse a la curva natural de los datos. Esto hará que nuestro modelo sea incapaz de hacer buenas
predicciones. Diremos por tanto que tenemos un modelo mal ajustado, que el ajuste es deficiente,
o usando el término que se suele utilizar con frecuencia en inglés, que el modelo sufre de
underfitting. Aquí, como puede ver, lo que ocurre es que al asumir que nuestro modelo es una recta,
no le damos la flexibilidad suficiente para poder adaptarse a la nube de puntos de nuestros datos.
Por suerte, esto tiene una fácil solución. Si recuerdas tus clases de matemáticas en el
colegio, recordarás que si esta ecuación de aquí defina una línea recta, podemos conseguir que se
curve aumentando el grado del polinomio, es decir, elevando el exponente de las variables de pendientes.
Además, como se puede ver, el grado de nuestro polinomio va a determinar el número de puntos
críticos que podrá tener nuestra curva. Es decir, cuánto se podrá curvar. Como se puede ver,
entre mayores el grado del polinomio, más flexible llega a ser nuestra curva. La buena noticia es que
esta teoría la podemos utilizar dentro de nuestro modelo de regresión lineal simple. Simplemente
introduces tus variables elevadas a un exponente en tu ecuación y listo. Ya puedes utilizar las
ecuaciones del mínimo cuadrado ordinario del descenso del gradiente para ajustar tu línea curva
a los datos. Este modelo se conoce como el modelo de regresión polinomial. En nuestro caso, con un
polinomio de grado 2, parece que mejoramos a nuestro modelo y reducimos el error. Pero aún así se puede
apreciar que esto se puede mejorar. Si lo subiéramos a un grado 3, ahí sí conseguiríamos la curva
suficiente para que se ajuste perfectamente a los datos. No esconde ningún misterio. Simplemente
aplicar las matemáticas y listo. Pero aún no hemos respondido a la pregunta que nos hemos planteado.
¿Podemos concluir que un modelo bien ajustado a los datos va a ser un modelo que generalice bien?
Bueno, pues vamos a ver. En este caso, imaginemos que de repente notan otro conjunto nuevo de datos
con valores de X e Y que no hemos usado en el entrenamiento. Si lo visualizáramos en nuestra
gráfica veríamos cómo estos datos pertenecen también a la distribución de puntos original.
Por tanto, parece que el modelo ajustado sí generaliza bien. Esto lo podemos comparar con
el rendimiento que obteníamos con el modelo que sufría de underfitting, el que estaba mal ajustado.
En ese caso, el modelo elegido era tan rígido que no podía adaptarse a los datos. Y por tanto,
los errores de las predicciones para datos nunca vistos eran mayores. Parece por tanto que sí,
que entre mejor se ajusta el modelo, mejor es su capacidad de generalizar las predicciones.
Y parece que entre más flexibilidad damos a la curva, mejor se ajusta el modelo y menor
error obtenemos. Entonces, ¿por qué no seguimos dándole flexibilidad? Vamos a ello.
Si comenzamos a elevar el grado de nuestro modelo de regresión polinomial, como es de esperar,
la curva cada vez se vuelve más flexible. Y efectivamente, poco a poco se va ajustando
mejor a nuestros datos. ¿Pero no notas algo raro? Es decir, efectivamente esta curva de aquí está
mejor ajustada a la nube de puntos que esta otra de antes. Pero algo me dice que realmente este
no es el patrón real y que sin embargo este modelo de aquí lo que está haciendo es modelar
el ruido de nuestros datos. De hecho, podemos comprobar cómo esto es problemático,
simplemente analizando la capacidad de generalizar del modelo. Si antes veíamos que el modelo era
capaz de generalizar bien para valores nuevos, en este caso podemos ver que por mucho que el
modelo se ajuste bien a los datos de entrenamiento, las predicciones para los nuevos valores tienen
un error mayor, es decir, el modelo generaliza peor. Por tanto, ¿un modelo bien ajustado a los
datos va a ser un modelo que generalice bien? Falso. Este problema que hemos identificado se
conoce como overfitting. Y como su nombre indica, es exactamente lo contrario a lo que nos ocurría
antes con el underfitting. Aquí es el exceso de flexibilidad dotado al modelo, el que hace que
este sea capaz de modelar incluso el ruido contenido en nuestros datos. Si lo queremos
entender conceptualmente, lo que está haciendo el overfitting en tu modelo es que este se especializa
en resolver muy bien los casos para los que ha sido entrenado, casi como si memorizara las
soluciones. Como vimos antes en el ejemplo de los estudiantes, esto es equivalente al chaval que
se preocupa de aprender muy bien a cómo resolver sólo los ejercicios que van a salir en el examen,
sin realmente preocuparse por entender el conocimiento que subyace a dichos problemas.
Si por el contrario tu modelo sufre de underfitting, es porque no tiene la capacidad
suficiente como para resolver el entrenamiento que le estamos planteando, al igual que ocurría con
nuestro estudiante tipo B. La clave es encontrar aquel modelo que esté en el punto intermedio,
es decir, que sea capaz de aprender en el entrenamiento, pero que también sea capaz
de generalizar su conocimiento. Y claro, con esto me asaltan muchas dudas, porque ¿cómo
identificamos el overfitting? O más importante aún, ¿cómo lo solucionamos? Y además,
¿no habíamos empezado este vídeo hablando de redes neuronales? Si tú también te estás haciendo
todas estas preguntas, hay una cosa que está clara, y es que tú también eres el tipo de estudiante A,
y eso es bueno. Quizás lo que no sea tan bueno es que las respuestas te las daré. Sí,
pero eso será en el próximo vídeo. Ay, recuerdo cuando estaba en el colegio que
una de las cosas que más odiaba era la maldita campana. Algo que realmente también sucede en
YouTube con la maldita campana que tenemos al lado del botón de suscripción, y la cual debería
de pulsar si quieres que YouTube te notifique de todo el contenido sobre Inteligencia Artificial que vaya subiendo.