Google Machine Learning

Consultores estratégicos en Ciencia de Datos

El presente curso es el curso basico de Machine Learning elaborado por Google pero que en este caso ha sido editado,  adaptado y ampliado por juanbarrios.com

Contenido Ocultar

DEFINICIONES

¿Qué es el aprendizaje automático (supervisado)?

A continuación, se incluye una definición concisa:

Los sistemas de AA aprenden cómo combinar entradas para producir predicciones útiles sobre datos nunca antes vistos.

Exploremos la terminología básica del aprendizaje automático.

A.) Etiquetas

Una etiqueta es el valor que estamos prediciendo, es decir, la variable y en la regresión lineal simple. La etiqueta podría ser el precio futuro del trigo, el tipo de animal que se muestra en una imagen, el significado de un clip de audio o simplemente cualquier cosa.

b.) Atributos

Un atributo es una variable de entrada, es decir, la variable x en la regresión lineal simple. Un proyecto de aprendizaje automático simple podría usar un solo atributo, mientras que otro más sofisticado podría usar millones de atributos, especificados como:

En el ejemplo del detector de spam, los atributos podrían incluir los siguientes:

  • palabras en el texto del correo electrónico
  • dirección del remitente
  • hora del día a la que se envió
  • presencia de la frase “un truco increíble” en el correo electrónico

c.) Ejemplos

Un ejemplo es una instancia de datos en particular, x. (La x se coloca en negrita para indicar que es un vector). Los ejemplos se dividen en dos categorías:

  • ejemplos etiquetados
  • ejemplos sin etiqueta

Un ejemplo etiquetado incluye tanto atributos como la etiqueta. Esto significa lo siguiente:

  labeled examples: {features, label}: (x, y)

Los ejemplos etiquetados se usan para entrenar el modelo. En nuestro ejemplo del detector de spam, los ejemplos etiquetados serían los correos electrónicos individuales que los usuarios marcaron explícitamente como “es spam” o “no es spam”.

Por ejemplo, en la siguiente tabla se muestran 5 ejemplos etiquetados de un conjunto de datos que contiene información sobre los precios de vivienda en California:

housingMedianAge
(atributo)
totalRooms
(atributo)
totalBedrooms
(atributo)
medianHouseValue
(etiqueta)
15 5,612 1,283 66,900
19 7,650 1,901 80,100
17 720 174 85,700
14 1,501 337 73,400
20 1,454 326 65,500

Un ejemplo sin etiqueta contiene atributos, pero no la etiqueta. Esto significa lo siguiente:

  unlabeled examples: {features, ?}: (x, ?)

Estos son 3 ejemplos sin etiqueta del mismo conjunto de datos de viviendas, que no incluyen medianHouseValue:

housingMedianAge
(atributo)
totalRooms
(atributo)
totalBedrooms
(atributo)
42 1686 361
34 1226 180
33 1077 271

Una vez que el modelo se entrena con ejemplos etiquetados, ese modelo se usa para predecir la etiqueta en ejemplos sin etiqueta. En el detector de spam, los ejemplos sin etiqueta son correos electrónicos nuevos que las personas todavía no han etiquetado.

d.) Modelos

Un modelo define la relación entre los atributos y la etiqueta. Por ejemplo, un modelo de detección de spam podría asociar de manera muy definida determinados atributos con “es spam”. Destaquemos dos fases en el ciclo de un modelo:

  • Entrenamiento significa crear o aprender el modelo. Es decir, le muestras ejemplos etiquetados al modelo y permites que este aprenda gradualmente las relaciones entre los atributos y la etiqueta.
  • Inferencia significa aplicar el modelo entrenado a ejemplos sin etiqueta. Es decir, usas el modelo entrenado para realizar predicciones útiles (y'). Por ejemplo, durante la inferencia, puedes predecir medianHouseValue para nuevos ejemplos sin etiqueta.

e.) Regresión frente a clasificación

Un modelo de regresión predice valores contínuos. Por ejemplo, los modelos de regresión hacen predicciones que responden a preguntas como las siguientes:

  • ¿Cuál es el valor de una casa en California?
  • ¿Cuál es la probabilidad de que un usuario haga clic en este anuncio?

Un modelo de clasificación predice valores discretos. Por ejemplo, los modelos de clasificación hacen predicciones que responden a preguntas como las siguientes:

  • ¿Un mensaje de correo electrónico determinado es spam o no es spam?
  • ¿Esta imagen es de un perro, un gato o un hámster?

Reducción de la pérdida:

A.) el Descenso de gradientes

El diagrama de enfoque iterativo (Figura 1) contenía un cuadro verde con afirmaciones sin fundamento llamado “Actualizar parámetros”. Ahora reemplazaremos esa solución algorítmica mágica por algo más sustancial.

Supón que tuviéramos el tiempo y los recursos de cómputo para calcular la pérdida de todos los valores posibles de

. Para el tipo de problemas de regresión que hemos estado examinando, la representación resultante de pérdida frente a siempre será convexa. En otras palabras, la representación siempre tendrá forma de tazón, como la siguiente:

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 2. Los problemas de regresión producen gráficas de pérdida convexa vs. pesos.

 

Los problemas convexos tienen un solo mínimo, es decir, un solo lugar en el que la pendiente es exactamente 0. Ese mínimo es donde converge la función de pérdida.

Calcular la función de pérdida para cada valor concebible de

en todo el conjunto de datos sería una manera ineficaz de buscar el punto de convergencia. Examinemos un mecanismo más útil, muy popular en el aprendizaje automático, denominado descenso de gradientes.

La primera etapa en el descenso de gradientes es elegir un valor de inicio (un punto de partida) para

. El punto de partida no es muy importante; por lo tanto, muchos algoritmos simplemente establecen en 0 o eligen un valor al azar. En la siguiente figura, se muestra que elegimos un punto de partida levemente mayor que 0.

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 3. Un punto de partida para el descenso de gradientes.

Luego, el algoritmo de descenso de gradientes calcula la gradiente de la curva de pérdida en el punto de partida. En resumen, una gradiente es un vector de derivadas parciales; indica por dónde es más cerca o más lejos. Ten en cuenta que la gradiente de pérdida con respecto a un solo peso (como en la Figura 3) es equivalente a la derivada.

Ten en cuenta que la gradiente es un vector, de manera que tiene las dos características siguientes:

  • una dirección
  • una magnitud

La gradiente siempre apunta en la dirección del aumento más empinado de la función de pérdida. El algoritmo de descenso de gradientes toma un paso en dirección de la gradiente negativa para reducir la pérdida lo más rápido posible.

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 4. El descenso de gradientes se basa en gradientes negativas.

Para determinar el siguiente punto a lo largo de la curva de la función de pérdida, el algoritmo de descenso de gradientes agrega alguna fracción de la magnitud de la gradiente al punto de partida, como se muestra en la siguiente figura:

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 5. Un paso de la gradiente nos mueve hacia el siguiente punto en la curva de pérdida.

Luego, el descenso de gradientes repite este proceso y se acerca cada vez más al mínimo.

Documento original en:

H.) EVALUACION

(exactitud, precisión, exhaustividad)

H.1) EXACTITUD

Explora las opciones que aparecen a continuación.

¿En cuál de las siguientes situaciones un alto valor de exactitud sugeriría que el modelo de AA está dando buenos resultados?

H.2) Precisión

Explora las opciones que aparecen a continuación.

Considera un modelo de clasificación que separe los correos electrónicos en dos categorías: “es spam” o “no es spam”. Si aumentas el umbral de clasificación, ¿qué ocurrirá con la precisión?

H.3) Exhaustividad

Explora las opciones que aparecen a continuación.

Considera un modelo de clasificación que separe el correo electrónico en dos categorías: “es spam” o “no es spam”. Si aumentas el umbral de clasificación, ¿qué ocurrirá con la recuperación?

I.) EVALUACION : Exactitud y recuperación

Explora las opciones que aparecen a continuación.

Considera dos modelos, A y B, que evalúan el mismo conjunto de datos. ¿Cuál de las siguientes afirmaciones es verdadera?

J.) Clasificación: ROC y AUC

J.1) .) Curva ROC

Una curva ROC (curva de característica operativa del recepto) es un gráfico que muestra el rendimiento de un modelo de clasificación en todos los umbrales de clasificación. Esta curva representa dos parámetros:

  • Tasa de verdaderos positivos
  • Tasa de falsos positivos

Tasa de verdaderos positivos (TPR) es sinónimo de exhaustividad y, por lo tanto, se define de la siguiente manera:

Tasa de falsos positivos (FPR) se define de la siguiente manera:

Una curva ROC representa TPR frente a FPR en diferentes umbrales de clasificación. Reducir el umbral de clasificación clasifica más elementos como positivos, por lo que aumentarán tanto los falsos positivos como los verdaderos positivos. En la siguiente figura, se muestra una curva ROC típica.

La curva ROC muestra una curva que indica la tasa de VP frente a la tasa de FP en diferentes umbrales de clasificación.

Figura 4. Tasa de VP frente a FP en diferentes umbrales de clasificación.

Para calcular los puntos en una curva ROC, podríamos evaluar un modelo de regresión logística muchas veces con diferentes umbrales de clasificación, pero esto es ineficiente. Afortunadamente, existe un algoritmo eficiente basado en ordenamiento que puede brindarnos esta información, denominado AUC.

J.2.) Área bajo la curva ROC

AUC significa “área bajo la curva ROC”. Esto significa que el AUC mide toda el área bidimensional por debajo de la curva ROC completa (piensa en un cálculo integral) de (0,0) a (1,1).

AUC (área bajo la curva ROC).

Figura 5. AUC (área bajo la curva ROC).

El AUC proporciona una medición agregada del rendimiento en todos los umbrales de clasificación posibles. Una forma de interpretar el AUC es como la probabilidad de que el modelo clasifique un ejemplo positivo aleatorio más alto que un ejemplo negativo aleatorio. Observa, a modo de ilustración, los siguientes ejemplos, que están ordenados de izquierda a derecha en orden ascendente con respecto a las predicciones de regresión logística:

Ejemplos positivos y negativos clasificados en orden ascendente con respecto a la clasificación de regresión logística.

Figura 6. Predicciones en orden ascendente con respecto a la clasificación de regresión logística.

En ete caso AUC representa la probabilidad de que un ejemplo aleatorio positivo (verde) se posicione a la derecha de un ejemplo aleatorio negativo (rojo).

El AUC oscila en valor del 0 al 1. Un modelo cuyas predicciones son un 100% incorrectas tiene un AUC de 0.0; otro cuyas predicciones son un 100% correctas tiene un AUC de 1.0.

Siempre el  AUC es conveniente por las dos razones siguientes:

  • AUC es invariable con respecto a la escala. Mide qué tan bien se clasifican las predicciones, en lugar de sus valores absolutos.
  • Tambien AUC es invariable con respecto al umbral de clasificación. Mide la calidad de las predicciones del modelo, sin tener en cuenta qué umbral de clasificación se elige.

Sin embargo, estas dos razones tienen algunas advertencias, que pueden limitar la utilidad del AUC en determinados casos:

  • La invariabilidad de escala no siempre es conveniente. Por ejemplo, en algunas ocasiones, realmente necesitamos resultados de probabilidad bien calibrados, y el AUC no nos indicará eso.
  • Consideremopds que la invariabilidad del umbral de clasificación no siempre es conveniente. En los casos en que hay amplias discrepancias en las consecuencias de los falsos negativos frente a los falsos positivos, es posible que sea fundamental minimizar un tipo de error de clasificación. Por ejemplo, al realizar la detección de spam de correo electrónico, es probable que quieras priorizar la minimización de los falsos positivos (aunque eso resulte en un aumento significativo de los falsos negativos). El AUC no es una métrica útil para este tipo de optimización.

K.) EVALUACION: clasificacion (ROC y AUC)

Explora las opciones que aparecen a continuación.

1.) ¿Cuál de las siguientes curvas de ROC producen valores de AUC mayores que 0.5?

l.) AUC y ajuste de predicciones

Explora las opciones que aparecen a continuación.

¿Cómo cambiaría el rendimiento de un modelo determinado al multiplicar todas las predicciones por 2.0 (por ejemplo, si el modelo predice 0.4, se multiplica por 2.0 para obtener una predicción de 0.8) según la medición del AUC?

M.) Sesgo de predicción

Las predicciones de regresión logística no deben tener sesgo. Esto significa lo siguiente:

“promedio de predicciones” debe ser ≈ “promedio de observaciones”

El sesgo de predicción es una cantidad que mide qué tan alejados están esos dos promedios. Esto significa lo siguiente:

ó

Un margen de predicción significativamente distinto de cero revela que hay un error en alguna parte del modelo, ya que indica que el modelo es incorrecto con respecto a la frecuencia con la que ocurren las etiquetas positivas.

Por ejemplo, supongamos que sabemos que, en promedio, el 1% de todos los correos electrónicos son spam. Si no sabemos absolutamente nada sobre un determinado correo electrónico, debemos predecir que tiene un 1% de probabilidades de ser spam. De manera similar, un buen modelo de spam debería predecir en promedio que los correos electrónicos tienen un 1% de probabilidades de ser spam. (En otras palabras, si promediamos las probabilidades predichas de cada correo electrónico individual de ser spam, el resultado debería ser 1%). Si, en lugar de eso, la predicción promedio del modelo es del 20% de probabilidad de ser spam, podemos concluir que muestra sesgo de predicción.

Las posibles causas fundamentales del sesgo de predicción son las siguientes:

  • conjunto de atributos incompleto
  • conjunto de datos contaminado
  • canalización con errores
  • muestra de entrenamiento con sesgo
  • regularización excesivamente fuerte

Es posible que te sientas tentado a corregir el sesgo de predicción a través de un procesamiento posterior del modelo aprendido, es decir, agregando un nivel de calibración que ajuste el resultado del modelo para reducir el sesgo de predicción. Por ejemplo, si tu modelo tiene más del 3% de sesgo, podrías agregar un nivel de calibración que reduzca la predicción media en un 3%. Sin embargo, agregar un nivel de calibración no es una buena idea, debido a las siguientes razones:

  • Estarás solucionando el síntoma en lugar de la causa.
  • Crearás un sistema frágil que deberás mantener actualizado.

En lo posible, evita los niveles de calibración. Los proyectos que usan niveles de calibración tienden a volverse dependientes de ellos y usan niveles de calibración para solucionar todos los problemas de modelo. En definitiva, mantener los niveles de calibración puede volverse una agonía.

N.) Agrupamiento y sesgo de predicción

La regresión logística predice un valor entre 0 y 1. Sin embargo, todos los ejemplos etiquetados son exactamente 0 (lo que significa, por ejemplo, “no es spam”) o exactamente 1 (lo que significa, por ejemplo, “es spam”). Por lo tanto, cuando se evalúa el sesgo de predicción, no se puede determinar con exactitud el sesgo de predicción en función de un solo ejemplo; el sesgo de predicción se debe examinar en un “agrupamiento” de ejemplos. Esto significa que, en regresión logística, el sesgo de predicción solo tiene sentido cuando se agrupan suficientes ejemplos para poder comparar un valor predicho (por ejemplo, 0.392) con los valores observados (por ejemplo, 0.394).

Los agrupamientos se pueden formar de las siguientes maneras:

  • Puedes dividir de forma lineal las predicciones objetivo.
  • Puedes formar cuantiles.

Considera la siguiente representación de calibración de un modelo específico. Cada punto representa un agrupamiento de 1,000 valores. Los ejes tienen los siguientes significados:

  • El eje x representa el promedio de valores que el modelo predijo para ese agrupamiento.
  • El eje y representa el promedio de valores real en el conjunto de datos para ese agrupamiento.

Ambos ejes son escalas logarítmicas.

El eje x es Predicción y el eje y es Etiqueta.Para los valores de predicción medios y altos, el sesgo de predicción es insignificante.Para los valores de predicción bajos, el sesgo de predicción es relativamente alto.

Figura 8. Curva del sesgo de predicción (escalas logarítmicas)

¿Por qué las predicciones son tan deficientes solo para parte del modelo? Aquí hay algunas posibilidades:

  • El conjunto de entrenamiento no representa de forma adecuada determinados subconjuntos del espacio de datos.
  • Algunos subconjuntos de los datos están más contaminados que otros.
  • El modelo está regularizado en exceso. (Considera reducir el valor de lambda)

O.) Ejercicio de programación

En el siguiente ejercicio, explorarás la regresión logística y la clasificación en TensorFlow:

Los ejercicios de programación se ejecutan directamente en tu navegador mediante Colaboratory (no es necesario configurar nada). Esta plataforma es compatible con la mayoría de los navegadores principales y se prueba minuciosamente en las versiones de escritorio de Chrome y Firefox. Si prefieres descargar y ejecutar los ejercicios sin conexión, consulta estas instrucciones para configurar un entorno local.

 

Regularización para lograr dispersión

Este módulo se centra en los requisitos especiales para los modelos aprendidos con vectores de atributos que tienen muchas dimensiones.

 Dependencias de datos

Los datos son tan importantes para los desarrolladores de AA como lo es el código para los desarrolladores tradicionales. Esta lección se centra en los tipos de preguntas que deberías hacerte sobre los datos.

Resumen de la clase por video

El comportamiento de un sistema de AA depende del comportamiento y la calidad de sus atributos de entrada. A medida que cambian los datos de entrada para esos atributos, también lo hará el modelo. A veces, ese cambio es intencional; otras veces, no.

En el desarrollo de software tradicional, te centras más en el código que en los datos. En el desarrollo de aprendizaje automático, si bien la codificación es parte del trabajo, debes ampliar el enfoque para incluir los datos. Por ejemplo, en proyectos de desarrollo de software tradicional, se recomienda escribir pruebas de unidades para validar el código. En los proyectos de AA, debes probar, verificar y controlar los datos de entrada de forma continua.

Por ejemplo, debes controlar continuamente el modelo para quitar los atributos que se usan poco o no se usan. Imagina un determinado atributo que contribuyó poco o nada al modelo. Si los datos de entrada para ese atributo cambian de forma abrupta, es probable que el comportamiento del modelo también cambie de una forma indeseada.

Fiabilidad

Preguntas para hacer sobre la fiabilidad de los datos de entrada:

  • ¿La señal siempre estará disponible o proviene de una fuente que no es confiable? Por ejemplo:
  • ¿La señal proviene de un servidor que falla cuando hay muchas cargas?
  • ¿La señal proviene de personas que se van de vacaciones todos los meses de agosto?

Control de versiones

Preguntas para hacer sobre el control de versiones:

  • ¿El sistema que calcula los datos cambia alguna vez? Si es así:
  • ¿Con qué frecuencia?
  • ¿Cómo sabes que el sistema cambia?

A veces, los datos provienen de un proceso superior. Si ese proceso cambia de forma abrupta, el modelo será afectado.

Considera crear tu propia copia de los datos que recibes del proceso superior. Luego, usa solo la siguiente versión de los datos superiores cuando tengas la certeza de que es seguro hacerlo.

Necesidad

Es posible que siguiente pregunta te recuerde a la regularización:

  • ¿La utilidad del atributo justifica el costo de incluirlo?

Siempre es tentador agregar más atributos al modelo. Por ejemplo, supongamos que encuentras un atributo nuevo que permite que el modelo sea más exacto. Más exactitud parece mucho mejor que menos exactitud. Sin embargo, acabas de agregar una carga de mantenimiento. Es posible que el atributo adicional se degrade de forma inesperada, por lo que deberás controlarlo. Piensa con cuidado antes de agregar atributos que solo generen beneficios menores a corto plazo.

Correlaciones

Algunos atributos se correlacionan (de forma positiva o negativa) con otros. Pregúntate lo siguiente:

  • ¿Algunos de los atributos están tan vinculados que se necesitan estrategias adicionales para separarlos?

Retroalimentación

A veces, un modelo puede afectar sus propios datos de entrenamiento. Por ejemplo, los resultados de algunos modelos son, a su vez, atributos de entrada directos o indirectos de ese mismo modelo.

A veces, un modelo puede afectar a otro modelo. Por ejemplo, analiza dos modelos para predecir los precios de las acciones:

  • el Modelo A, con una predicción muy inexacta
  • el Modelo B

Como el Modelo A tiene fallas, a veces decide por error comprar valores de la Acción X. El Modelo B usa el precio de la Acción X como atributo de entrada, por lo que este modelo puede llegar con facilidad a conclusiones erróneas sobre el precio de los valores de la Acción X. Por lo tanto, es posible que el Modelo B compre o venda valores de la Acción X, según el comportamiento con fallas del Modelo A. A su vez, el comportamiento del Modelo B puede afectar al Modelo A, por lo que se desencadena una tulipomanía o una caída en las acciones de la Empresa X.

evaluacion

¿En cuál de los siguientes modelos se puede encontrar un ciclo de reacción?

Sistemas de aprendizaje automático en el mundo real

A.) Predicción del cáncer

En esta lección, depurarás un problema de aprendizaje automático en el mundo real* relacionado con la predicción del cáncer.

* Este módulo se basó en líneas muy generales (con algunas modificaciones sobre la marcha) en “Meaning and Mining: the Impact of Implicit Assumptions in Data Mining for the Humanities” de Sculley y Pasanek.

C.)  el mundo real

En esta lección, se resumen los lineamientos aprendidos de estos ejemplos del mundo real.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *