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.

El primer algoritmo que vamos a tratar en este canal es el modelo de Regresión Lineal.
Los motivos son varios, es simple de comprender, es fundamental conocerlo si quieres aprender
estadística o machine learning, y además nos va a servir para asentar algunos conceptos
que nos serán de utilidad en los próximos vídeos, cuando comencemos a ver el funcionamiento
de las redes neuronales.
Pero antes de comenzar, te recomiendo que si no has visto el vídeo sobre los modelos
o no recuerda bien de que ibas, pares aquí un momento y vayas a verlo.
¡Venga! ¿A qué esperas? ¿Ya? ¿Lo tienes? Perfecto. Comenzamos.
Eres un experimentado investigador de Inteligencia Artificial y has sido contratado por una importante
empresa del sector para trabajar en Boston, Estados Unidos. Un nuevo plan, una nueva vida
que construir. Necesitas alojamiento, así que te dispones a buscar lo que será tu
futura casa.
Tras mirar muchos anuncios y muchos precios, tu mente curiosa empieza a divagar y a hacerse
preguntas de cómo podrías modelar esa realidad que estás observando.
Por ejemplo, te preguntas ¿Podría encontrar cuál es la relación entre el precio medio
de la vivienda y, por ejemplo, el número medio de habitaciones por hogar?
Coges una servilleta, unos cuantos anuncios y empiezas a escribir.
Según los datos, en un barrio donde el número de habitaciones medio de cada hogar es de
6 habitaciones, el precio medio de cada vivienda es de unos 20.000 dólares.
Así que dibujas una gráfica y colocas este punto.
Una media de 6 habitaciones, un valor de 20.000 dólares.
Perfecto.
Ahora miramos otro barrio y vemos que para una media de 8 habitaciones, la vivienda alcanza
un valor cercano a los 35.000 dólares.
En otro barrio, la media de habitaciones es de 7 y el valor medio es de 28.000 dólares.
Poco a poco seguimos completando esta gráfica con los datos reales y empezamos a darnos
cuenta de una cosa.
Parece que existe una relación directa entre el número de habitaciones y el valor de la
vivienda.
Esto es lógico, es evidente que mayor número de habitaciones tenga una vivienda, mayor
vaya a ser su valor.
Viendo la gráfica, decides entonces trazar una línea que represente esta tendencia y
te sale algo como esto.
Lo creas o no, lo que acabas de dibujar es un modelo.
Acuérdate, tenemos una realidad compleja que queremos comprender y ahora la hemos resumido
simplemente en una línea, que nos va a permitir predecir cuál es el valor de la vivienda
incluso para valores que no se encuentran en los datos.
Por ejemplo, si un barrio tuviera una media de 6,5 habitaciones por hogar, ahora podemos
predecir un valor medio cercano a los 25.000 dólares.
Este modelo que acabamos de dibujar es el modelo de regresión lineal simple.
Pero claro, aquí la línea la has dibujado tú, lo guay sería que pudiéramos plantear
un algoritmo que pudiera dibujar esta línea automáticamente, es decir, que pudiera generar
el modelo solo a partir de los datos, si no, no se llamaría aprendizaje automático.
Vamos a ver cómo lo haríamos.
Matemáticamente, en un espacio bidimensional una recta se define de esta manera.
Por un lado tenemos el término independiente, que nos muestra a qué altura la recta corta
el eje y.
Por el otro lado tenemos la pendiente, que gráficamente define la inclinación de la
recta y conceptualmente cuál es la relación entre la variable entrada x y la variable
de salida y.
Esta sería la estructura en el caso del modelo de regresión lineal simple, donde solamente
tenemos una única variable de entrada.
Sin embargo, la realidad no te muestra que es mucho más compleja, y que un fenómeno
suele estar afectado por muchos factores diferentes.
Por ejemplo, el valor medio de una vivienda está relacionado con el número de habitaciones,
sí, pero también con el grado de criminalidad del barrio o la cercanía a los centros de
negocios.
Si introducimos estas variables al modelo, ya no estaríamos ante un modelo de regresión
simple, sino un modelo de regresión lineal múltiple.
Este modelo sería igual que el de regresión simple, pero ahora nuestra ecuación tendría
más variables.
Por ejemplo, con dos variables la ecuación sería esta, y ya no se trataría de encontrar
la recta que mejor se ajusta a los datos bidimensionales, sino el mejor plano que se ajusta a la nube
de datos tridimensionales.
O si añadimos más variables, estaremos tratando con hiperplanos en espacios multidimensionales.
Recuerda, cada una de estas dimensiones representa una característica de la realidad que los
datos representan, y podemos tener una cantidad muy elevada de atributos y por tanto de dimensiones.
La forma más cómoda de representar esta combinación lineal de variables para cada
una de nuestros datos es de forma vectorial, es decir, en vez de tener todas estas ecuaciones,
podemos crear una matriz en la que cada columna representa una característica de nuestro dato
de entrada, por ejemplo, número de habitaciones, grado de criminalidad, etc.
Y cada fila de esta matriz representa cada una de las mediciones que tenemos en nuestro
conjunto de datos.
Esta sería nuestra matriz X.
Igualmente, en cada una de las ecuaciones tenemos una variable Y, que es la que queremos
modelar.
Si juntamos todas ellas, también podemos formar un vector de elementos que llamaremos
Y mayúscula, y haremos lo mismo con los factores para generar un vector de parámetros.
Si hacemos esto, ahora podemos reducir todas nuestras ecuaciones a una simple ecuación
vectorial.
Fíjate bien y convéncete de que esta ecuación de aquí es exactamente la misma que tenemos
aquí.
Además de ser mucho más elegante de escribir, esto va a hacer que a la hora de programar
nuestros modelos, estos entrenen mucho más eficientemente, ya que las GPUs están especializadas
para el procesamiento de matrices.
Elegante y eficiente.
Todo a ventajas.
Volvamos al caso de una única variable.
Todo lo que veremos de aquí en adelante sirve igualmente para el modelo de regresión
lineal simple como para el múltiple, pero vamos a trabajar con el simple porque, bueno,
porque es más fácil para mí animar la gráfica en dos dimensiones.
Estábamos con que queríamos encontrar la recta que mejor representa nuestro dato, y
queremos hacer esto automáticamente.
¿Cómo lo hacemos?
Bueno, te voy a enseñar dos métodos diferentes.
El primero de ellos es el método de cuadrados ordinarios, y para poder entenderlo tenemos
que rescatar un elemento sobre los modelos que ya vimos en el vídeo anterior, el error.
¿Cómo podemos saber cuándo una recta es mejor que otra?
Fíjate, si dibujamos esta recta por ejemplo, y seleccionamos cualquier punto de nuestro
datos, podemos ver que para este punto nuestro modelo predice este valor de i, pero sin embargo
el valor real según nuestro dato es este de aquí.
Por tanto, esta distancia entre el valor predicho y el valor real será el error del modelo
para este punto.
Pero claro, no estamos trabajando con un único punto, sino con muchos de ellos, así que
una posible función de coste para nuestro modelo sería la de coger todas estas distancias
entre los valores predichos y los reales y calcular la media.
Esta podría ser una función de coste posible, pero sin embargo el método que estamos estudiando
requiere de algo más.
Vamos a coger todos estos errores y lo vamos a elevar al cuadrado.
Esta función de coste se denomina el error cuadrático medio.
Conceptualmente lo que hacemos cuando elevamos al cuadrado es penalizar con mayor intensidad
aquellos puntos que están más alejados de nuestra recta, y con menor intensidad a los
que se encuentran más cerca.
Fíjate en esta animación, cada una de las áreas de cada cuadrado representa el error
asignado por nuestra función de coste para cada punto, y a la derecha tenemos la suma
de todos ellos.
Nuestra tarea es por tanto manipular los parámetros de nuestra recta, el término independiente
y la pendiente, para intentar encontrar aquella combinación de parámetros que minimice esta
suma de cuadrados.
Según vamos probando, obtenemos diferentes cantidades de errores.
Como te dije, el método de cuadrados ordinarios será el que nos ayuda a encontrar la combinación
perfecta de parámetros.
¿Cómo?
Bueno, no haces muchas energías en intentar entender el siguiente procedimiento, simplemente
quiero que entiendas conceptualmente lo que estamos haciendo.
Lo que tenemos aquí es la expresión vectorial de nuestra función de coste, el error cuadrático
medio.
Si trabajamos sobre ella podemos multiplicar ambos paréntesis y obtener esta expresión.
Recuerda que en matemáticas puedes encontrar el mínimo de una función mediante el cálculo
de su derivada e igualando a cero, con lo que si derivamos nuestra función de coste
podemos minimizar el error.
La derivada de esta expresión es la siguiente, y si operamos y despejamos acabamos con esta
expresión de aquí.
De nuevo no te preocupes si no has entendido las ecuaciones del proceso, solo quiero que
entiendas que hemos cogido nuestra función de coste y la hemos minimizado.
El resultado es esta ecuación de aquí.
Básicamente esta ecuación es lo único que necesitamos para resolver nuestro problema,
y lo único que tendrías que programar para encontrar la recta que queremos.
Coges tu matriz X y tu matriz Y, aplicas la ecuación y automáticamente estás obteniendo
los valores de tus parámetros que van a minimizar el error.
¡Bum!
Este es el método de cuadrados ordinarios.
En este caso hemos tenido suerte de que utilizando el método de cuadrados ordinarios hemos
obtenido una fórmula que directamente nos calcula el valor de los parámetros.
Pero esto no siempre va a ocurrir.
Si trabajamos con otros modelos u otras funciones de coste, no siempre vamos a poder encontrar
el mínimo de nuestro coste de forma analítica.
Además, incluso con este método, si aplicamos esta ecuación, tenemos que invertir la matriz
X transpuesta de X e invertir una matriz es una operación que para nuestro ordenador
puede ser muy ineficiente.
Y la vida es muy corta como para verla pasar mientras procesamos matrices.
Así que necesitamos encontrar otra manera de reducir el coste.
El segundo método que veremos nos va a solucionar esto.
Eso sí, no se trata de una fórmula que directamente nota los valores que queremos, sino un método
iterativo que poco a poco nos irá acercando el mínimo error.
¿Y no es cierto que no hay nada más cercano al aprendizaje que poco a poco ir reduciendo
nuestros errores?
Este método que veremos es el método de descenso del gradiente, y es un concepto fundamental
en el funcionamiento interno de las redes neuronales.
Veremos este método en profundidad, pero esto será en el próximo vídeo.
Como siempre, muchas gracias por ver el vídeo hasta el final.
Si te ha parecido interesante y valoras mi trabajo, no te olvides de dejar tu like y
compartirlo en redes sociales.
También recuerda que he habilitado un Patreon para el canal por si quieres apoyarlo económicamente.
Y nada más, un saludo y… ah, esperate un momento, no te olvides de leer la sección
de comentarios porque hay algo importante que te puede interesar.
Ahora sí que sí, un saludo y hasta pronto.