Ir al contenido principal

Diagrama de temas

    • 5.1 Identificar algoritmos de AA

      • Un repaso sobre el aprendizaje automático

        Como se definió anteriormente en el curso, el aprendizaje automático es el proceso mediante el cual los computadores realizan predicciones o toman otras decisiones con base en conjuntos de datos, y lo hacen sin instrucciones explícitas proporcionadas por un ser humano. La otra gran fortaleza del aprendizaje automático se encuentra en la primera palabra de su nombre: su capacidad de aprender. En otras palabras, los procesos de aprendizaje automático se basan en sí mismos a lo largo del tiempo a través de la experiencia, volviéndose más efectivos para resolver un problema o un conjunto de ellos.

        El concepto más fundamental detrás del aprendizaje automático es el algoritmo. Un algoritmo es un conjunto de reglas para resolver problemas. En esencia, un algoritmo es una fórmula matemática o grupo de fórmulas que toman algunas entradas y, a continuación, generan algunas salidas. Los algoritmos también admiten el aspecto de "aprendizaje" del aprendizaje automático, ya que están diseñados para actualizar las creencias y suposiciones sobre los datos con los que están trabajando a lo largo del tiempo.

        Ahora que comprende el propósito y el mecanismo básico detrás del aprendizaje automático, es hora de profundizar un poco más en cómo se pone en práctica.

      • Modelos de aprendizaje automático


        Un modelo de aprendizaje automático, llamado con frecuencia simplemente un modelo, es una representación matemática de datos aplicados a un algoritmo. Es un subconjunto de la idea más general de un modelo estadístico. Los modelos estadísticos presentan suposiciones sobre una población con base en los datos de la muestra disponibles. Tenga en cuenta el ejemplo de un conjunto de datos que incluye las edades y alturas de unos pocos cientos de personas. Puede crear un modelo estadístico para observar el patrón general de edad en relación con la altura en el conjunto de datos (la muestra) y, a continuación, extrapolar esa información a un país completo (la población). El modelo puede responder a preguntas como: "¿A qué edad los ciudadanos noruegos suelen dejar de crecer en altura?" o "¿Cuál es la altura habitual de un ciudadano estadounidense entre las edades de 18 y 30 años?". La cantidad y los tipos de preguntas que puede responder un modelo dependen de los datos y de su propia curiosidad.

        Es frecuente pensar en los modelos estadísticos como si se realizaran predicciones, pero no todas las conclusiones que un modelo puede extraer son predictivas en el sentido más estricto de la palabra. Es más preciso referirse a la salida de un modelo como una estimación o una inferencia. Por ejemplo, el modelo podría predecir qué altura tendrá alguien cuando sea mayor. El modelo también podría hacer una estimación no predictiva, como qué altura tiene alguien en este momento, aunque solo sea en función de su edad y nacionalidad. El modelo también podría tomar decisiones proactivas, como sugerir un régimen alimenticio y de ejercicio a alguien con base en su altura y edad.

        Nota: A pesar de estas distinciones, muchas personas todavía utilizan el término "predicción" para referirse a cualquier tipo de estimación o inferencia.

        El modelo de aprendizaje automático es a menudo el "producto" definitivo del proceso de aprendizaje automático: es lo que se crea para realizar realmente la tarea necesaria, sea cual sea.

        El proceso general para crear y utilizar un modelo es el siguiente:


        1. El profesional selecciona un algoritmo a utilizar.

        2. El profesional (o un proceso automatizado) introduce datos en el algoritmo. Esto se denomina datos de entrenamiento o ejemplo de entrenamiento.

        3. El algoritmo genera un modelo con base en los datos de entrenamiento.

        4. El profesional (o un proceso automatizado) introduce en el modelo nuevos datos que no ha visto antes.

        5. El modelo realiza una predicción o decisión con base en estos nuevos datos.


        De forma tal que, un modelo es una implementación de un algoritmo. Es específico de cualquier problema que trate de resolver, pero un algoritmo puede generar muchos tipos de modelos si se le proporcionan datos diferentes o se configura de diferentes maneras.

        El proceso de entrenamiento en el paso 3 es de particular importancia, ya que crea el modelo, en realidad. Aquí es donde el algoritmo hace todo el esfuerzo, tomando sus datos de entrada y realizando muchos cálculos con ellos. El profesional no hace mucho en este momento, pero todo lo que hace antes del entrenamiento (e incluso las cosas que hace después) tendrá un impacto en el éxito de ese entrenamiento. Este es también el punto en el proceso donde la potencia de cómputo se convierte en un factor, ya que incluso cuando se ejecutan en hardware de gama alta, ciertos modelos pueden tardar horas, días o incluso semanas en terminar el entrenamiento. Por lo tanto, prepararse para entrenar un modelo de aprendizaje automático es fundamental para obtener los resultados que desea del proceso.

      • Algoritmos de aprendizaje automático

        Antes de entrenar el modelo de aprendizaje automático inicial, tendrá que seleccionar uno o varios algoritmos que usará para producir el resultado que necesita. Por ejemplo, si necesita realizar una tarea de clasificación, como determinar si alguien está en riesgo de contraer una enfermedad en función de varios insumos (factores de estilo de vida, edad, sexo, etc.), podría usar la regresión logística, el bosque aleatorio, Bayes ingenuos o uno de varios otros algoritmos.

        En la ilustración siguiente se coloca algunos algoritmos de ejemplo en los tres modos principales de aprendizaje automático (supervisado, no supervisado y refuerzo) y tres resultados/tareas (regresión, clasificación y agrupación en clústeres). Esta no es una lista exhaustiva de algoritmos, solo algunos de los más comunes utilizados en el campo (aparte de las redes neuronales utilizadas en el aprendizaje profundo, que están fuera del ámbito de este curso).

        Figura 1. Ejemplo de algoritmos de aprendizaje automático.


        Algunos algoritmos, dependiendo de cómo se utilicen, pueden admitir varios tipos de resultados. Por ejemplo, un bosque aleatorio se podría usar para varios tipos de tareas de clasificación o regresión. Tenga en cuenta también que algunos de estos términos se refieren a grupos de algoritmos relacionados, en lugar de algoritmos específicos. Por ejemplo, hay varios tipos de algoritmos de árbol de decisión, pero tienden a funcionar de forma similar y producen el mismo tipo de resultado.

        Información adicional

        Para obtener más información sobre los algoritmos de aprendizaje automático, consulte este sitio.



      • Selección de algoritmos


        Seleccionar el algoritmo correcto para un modelo de aprendizaje automático puede parecer abrumador porque hay numerosos algoritmos de aprendizaje automático supervisados y no supervisados, cada uno empleando su propio enfoque para el proceso de aprendizaje. El algoritmo "correcto" depende de la situación y puede haber más de un algoritmo que resuelva un problema en particular. Incluso los profesionales de IA altamente experimentados pueden no ser capaces de seleccionar inmediatamente el mejor algoritmo para una situación particular sin un poco de experimentación.

        Es útil pensar en los algoritmos que podría usar incluso antes de que esté listo para aplicarlos, ya que puede afectar a cómo debe preparar los datos anteriormente en el proceso de ciencia de datos. La asignación de algoritmos a los resultados/tareas que espera es un buen lugar para comenzar, ya que es posible que pueda descartar algunos algoritmos que no se aplican a su situación. Por ejemplo, la regresión logística se usa principalmente para tareas de clasificación, por lo que probablemente decida no entrenar un modelo de regresión logística si necesita predecir temperaturas. Sin embargo, incluso si la tarea deseada está clara, todavía puede haber muchos algoritmos adecuados. ¿Por qué elegir la regresión logística en lugar de un árbol de decisión, por ejemplo? ¿Qué sucede si usa un modelo de Bayes ingenuo en su lugar?

        Hay algunos factores que puede buscar que difieren entre los algoritmos que realizan el mismo tipo básico de tarea, incluso cuando se utilizan los mismos conjuntos de datos. Estos factores incluyen:

        - Velocidad de entrenamiento. Algunos algoritmos tardan mucho más en entrenar un modelo que otros, incluso cuando se utiliza el mismo conjunto de datos.

        - Efectividad del modelo. Algunos algoritmos producen modelos que funcionan mejor que otros en una tarea determinada.

        - Requisitos de preparación de datos. Algunos algoritmos requieren más preparación de datos que otros para ser eficaces, o requieren diferentes tipos de preparación.

        - Complejidad. Algunos algoritmos, especialmente los de aprendizaje profundo, pueden ser mucho más complejos y difíciles de trabajar que otros.

        - Transparencia, explicabilidad o interpretabilidad. Algunos algoritmos son más cerrados o de "caja negra" que otros, lo que significa que es más difícil determinar por qué el modelo tomó una determinada decisión.

        - Disponibilidad. Cada biblioteca de programación admite una selección de algoritmos y es posible que algunas bibliotecas no admitan el algoritmo que está buscando.

        - Aceptación del usuario. Las personas que en última instancia usarán una solución de IA pueden preferir ciertos algoritmos sobre otros por varias razones, incluidas preocupaciones como la explicabilidad.


        Por supuesto, si tiene la capacidad y la habilidad, debe considerar entrenar varios modelos mediante algoritmos diferentes. De esa manera, podrá comparar cada modelo y elegir el que mejor se adapte a sus necesidades.


        Información adicional

        Para obtener un ejemplo del mundo real que ilustra el problema de la "caja negra", consulte este sitio.

      • Ajuste iterativo


        A medida que trabaja con modelos de aprendizaje automático, debe resolver constantemente a varios desafíos que conducirán a resultados ineficaces y defectuosos. O bien, resultados que no están a la altura de sus expectativas. Después de todo, el aprendizaje automático es probabilístico. Por lo tanto, un enfoque típico para mejorar la eficacia de un modelo es utilizar diferentes muestras para el entrenamiento y las pruebas, para reflejar los tipos de desafíos que el modelo enfrentará cuando se use con datos reales. Pruebe el modelo en varias iteraciones, ajuste y vuelva a probar.

        En las estadísticas, a menudo se dice que "todos los modelos son incorrectos, pero algunos son útiles". El punto es que los modelos estadísticos siempre contendrán algún grado de error, debido a las variaciones basadas en la probabilidad. En el aprendizaje automático, el objetivo es producir un modelo que sea lo suficientemente correcto como para ser útil, aunque las predicciones o decisiones no sean exactamente correctas o siempre correctas. Un modelo que es útil para su tarea, se describe comúnmente como hábil. Existen grados de habilidad; algunos modelos son más útiles que otros. Mejorar la habilidad de un modelo es el objetivo final del proceso de ajuste iterativo.

        Hay muchas maneras de ajustar un modelo de aprendizaje automático. La mayoría de ellos implica entrenar y reentrenar el modelo para que la habilidad aumente gradualmente hasta que se cumplan los requisitos. Del mismo modo, hay muchas maneras de medir la habilidad del modelo sobre el cual recibirá entrenamiento. La conclusión clave en este punto es comprender el proceso de ajuste general, que tiende a seguir este patrón:


        - Entrenar el modelo.
        - Pruebe la finalidad básica del modelo (por ejemplo, su capacidad para predecir algo).
        - Ajuste algunos aspectos del modelo.
        - Evalúe el modelo utilizando varias métricas.
        - Ajuste el modelo nuevamente.
        - Evalúe el modelo de nuevo para ver si se han realizado mejoras.
        - Repita tantas veces como sea necesario.

        Información adicional

        Para obtener más información sobre el ajuste iterativo, consulte este sitio.

      • Sesgo y varianza

        Cuando se mejora la habilidad de los modelos de aprendizaje automático, es necesario reducir el error en esos modelos. Dos tipos principales de error que pueden surgir en el aprendizaje automático son el sesgo y la varianza.

        El sesgo mide la diferencia entre las estimaciones del modelo y los valores verdaderos de los datos reales. En el contexto del aprendizaje automático, los datos reales son lo mismo que una etiqueta en el aprendizaje supervisado (es decir, la variable que intenta estimar con valores reales para su conjunto de datos). Si un modelo con alto sesgo se simplifica para que sea menos complejo y más fácil de entender, el modelo puede aprender patrones más fácilmente. En otras palabras, se hacen muchas suposiciones sobre cómo lograr el resultado deseado. Algunos algoritmos, como la regresión lineal, tienden a errar en favor de un sesgo elevado. La capacidad de estimación en problemas complejos con los modelos de sesgo elevado es menor.

        La varianza, que anteriormente se definió como igual a la desviación estándar al cuadrado, mide la variabilidad de las estimaciones del modelo. Se refiere a la medida en que el algoritmo de aprendizaje automático se adaptará a un nuevo conjunto de datos. Un modelo de varianza elevada será bastante complejo, quizás cambiando su enfoque significativamente de un conjunto de datos a otro, basado en patrones sutiles y en las relaciones entre las entradas. Esto lo hará muy adaptable a diferentes conjuntos de datos, pero también agrega complejidad. En general, los algoritmos como los árboles de decisión son más elevados en la varianza que en los algoritmos como la regresión lineal.



      • Al entrenar un modelo de aprendizaje automático, los profesionales querrán que el modelo realice una estimación razonablemente buena sobre los nuevos conjuntos de datos que pueda encontrar, más allá del conjunto de datos que se utilizó originalmente para entrenarlo. Esta característica se llama generalización. Un modelo que generaliza bien es eficaz más allá de las condiciones originales en las que se entrenó y, por lo tanto, se puede aplicar a un espectro de problemas y continuar siendo relativamente útil. Por el contrario, un modelo que no generaliza bien solo es útil en circunstancias muy limitadas.

        Tanto el sesgo como la varianza se relacionan directamente con el concepto de generalización. Una gran cantidad de cualquiera de ellos afectará directamente a la capacidad de generalización del modelo.

        - Un sesgo elevado produce un subajuste. Un modelo de subajuste es demasiado simple para que resulte útil para los nuevos datos ya que no puede derivar información pertinente del conjunto de datos. Simplemente no puede aprender los patrones apropiados sobre los cuales realizar una estimación efectiva. Por ejemplo, usted cuenta con un conjunto de datos de automóviles y sus atributos y desea desarrollar un modelo que pueda estimar la eficiencia del combustible de un automóvil nuevo. Si el modelo no se ajusta a los datos del entrenamiento, habrá una gran discrepancia entre la eficiencia del combustible verdaderamente real y la eficiencia de combustible que predice el modelo. La eficiencia de combustible real del vehículo A podría ser 20 millas por galón (mpg), pero el modelo estima que es 40 mpg. Si esto sucede para la mayoría de los automóviles en el conjunto de datos, entonces el modelo no es lo suficientemente bueno para ejecutar la tarea asignada.


        - Una varianza elevada produce un sobreajuste. Un modelo de sobreajuste es demasiado complejo y se corresponde muy estrechamente con los datos del entrenamiento. Por lo tanto, realizará de manera inapropiada su tarea con conjuntos de datos nuevos e invisibles ya que no fue posible separar la señal del ruido y aprender el verdadero patrón. Por ejemplo, el modelo podría estimar que la eficiencia de combustible para el vehículo A en el mismo conjunto de datos es 21 mpg. Esto está muy cerca de la verdad real, lo cual parece ser superficialmente bueno. Pero cuando se presenta con un nuevo conjunto de datos de vehículos (es decir, una muestra diferente de la población), un modelo de sobreajuste estima que el vehículo B obtiene 21 mpg cuando en realidad obtiene 35 mpg. Ello se debe a que el modelo piensa que el vehículo B sigue el mismo patrón que el vehículo A cuando realmente no lo hace.


        Figura 1. Un modelo que se subajusta frente a un modelo que sobreajusta a los datos del entrenamiento. Ninguno de los dos modelos es capaz de hallar la curva que es el verdadero patrón.



        Por lo general, se puede evitar el subajuste seleccionando algoritmos más complejos, aumentando el número de características y reduciendo el efecto de las técnicas que mitigan el sobreajuste. El sobreajuste suele ser más común y hay varias técnicas que pueden reducir sus efectos. Agregar más ejemplos de datos y reducir el número de características (entre otros métodos de preparación de datos) también puede ayudar a un modelo a evitar el sobreajuste.

      • Equilibrio entre sesgo y varianza


        Cuando los profesionales desarrollan un modelo de aprendizaje automático, su objetivo es encontrar el "punto óptimo" que genere un buen acuerdo entre el sesgo y la varianza. El modelo puede errar en favor de un sesgo o una varianza elevados y estos dos tipos de errores están inversamente relacionados. En otras palabras, a medida que uno aumenta, el otro tiende a disminuir. El punto óptimo es el punto donde se produce la menor cantidad de errores totales.

        Incluso cuando encuentre el punto óptimo, cierta cantidad de errores, llamados errores irreducibles, siempre estarán allí. Esta cantidad de errores no se puede reducir aún más, debido a la forma en que se enmarca el problema y a las variables que el profesional nunca identificó o decidió no controlar.

        El equilibrio entre el sesgo y la varianza típicamente se encuentra a través de la experimentación. Configure un modelo de aprendizaje automático con controles que puede ajustar. Al ejecutar repetidamente el modelo y ajustar estos controles externos, puede encontrar la mejor configuración para lograr un buen equilibrio.
        Sesgo elevado El punto óptimo Varianza elevada
        Puede subajustar el conjunto de entrenamiento Ajuste muy bueno Puede sobreajustar el conjunto de entrenamiento
        Más simplista Solo lo suficientemente complejo Más complejo
        Es menos probable que sea objeto de influencia por parte de las relaciones reales entre las características y las salidas deseadas. Hábil para encontrar relaciones verdaderas entre las características y las salidas deseadas, a la vez que no está demasiado influenciado por el ruido. Es más probable que sea objeto de influencia por parte de las relaciones falsas entre las características y las salidas deseadas ("ruido").




        Figura 1. Encontrar un equilibrio entre el sesgo y la varianza que no sobreajuste o subajuste el modelo.


        Información adicional

        Para obtener más información sobre el sesgo, la varianza y la generalización del modelo, consulte este sitio.







      • El método de retención implica dividir el conjunto de datos original varios conjuntos diferentes. Esencialmente, es un proceso de muestreo de datos y una de las técnicas más básicas para abordar el problema del sobreajuste. Se crean dos o tres de estos subconjuntos, donde cada subconjunto se utiliza para un propósito diferente.


        - Conjunto de entrenamiento: datos que se usan para entrenar el modelo. En otras palabras, los datos de los que el modelo aprende. En el aprendizaje automático supervisado, el conjunto de entrenamiento incluye etiquetas objetivo para los datos reales.


        - Conjunto de validación: el modelo no aprende de este conjunto de datos. Se usa para evaluar qué tan bien puede funcionar el modelo en un nuevo conjunto de datos en el que no se entrenó. Por ejemplo, en función del rendimiento del modelo en el conjunto de validación, podría determinar que necesita ajustar algunos valores del algoritmo hasta que mejore el rendimiento. Estará familiarizado con los datos del conjunto de validación y tendrá acceso a las etiquetas del mismo. Este conjunto en particular es opcional.


        - Conjunto de prueba: este es otro conjunto etiquetado con datos que el modelo no vio durante el entrenamiento. No lo usaría para ajustar el rendimiento (como lo haría con un conjunto de validación), sino solo para evaluar el ajuste final del modelo.

        Figura 1. Uso del método de retención para crear un conjunto de validación y de prueba.





        Es posible que no se necesite un conjunto de validación en todas las situaciones. Por lo general, solo se usa en situaciones en las que hay una configuración para el algoritmo de aprendizaje (hiperparámetros) que puede ajustarse, ya que el ajuste del rendimiento es la razón principal para usar un conjunto de validación. Si usa un conjunto de validación, los porcentajes típicos para dividir los datos son un 60 % de entrenamiento, un 20 % de validación y un 20 % de prueba. Si solo usa un conjunto de entrenamiento y de prueba, las divisiones típicas son entre un 70-80 % de entrenamiento y un 20-30 % de prueba. De cualquier manera, puede ver que la mayoría de los datos se usan normalmente para el entrenamiento con el fin de producir un modelo mejor. Los porcentajes de división de datos dependen de la situación. Los profesionales pueden ajustar las cantidades divididas para producir el mejor resultado.


        Nota: Desafortunadamente, los términos "conjunto de validación" y "conjunto de prueba" a menudo se usan indistintamente en el campo del aprendizaje automático, lo que puede ser confuso.




      • Validación cruzada

        La validación cruzada (también llamada estimación de rotación o prueba fuera de la muestra) es una técnica para dividir datos con el fin de mejorar la capacidad de un modelo para generalizar a nuevos datos. En realidad, hay varias técnicas de validación cruzada, la más básica de las cuales es el método de retención.
        Otra técnica común de validación cruzada es la validación cruzada de k-means. En esta técnica, los datos se dividen en k grupos (iteraciones). Un grupo es el conjunto de pruebas. Los grupos restantes conforman el conjunto de entrenamiento. El modelo entrena y luego evalúa su rendimiento. Luego, los grupos rotan: se designa un grupo diferente como conjunto de prueba y el resto se utiliza en el conjunto de entrenamiento. Nuevamente, el modelo entrena y evalúa su rendimiento. Este proceso se repite k veces. Luego, se calcula el error promedio en todas estas pruebas.

        La ventaja de esta estrategia es que minimiza la varianza, ya que cada punto de datos se utiliza tanto para entrenar como para probar en algún momento. Sin embargo, debido a que el entrenamiento y las pruebas deben realizarse una k cantidad de veces, este método requiere tiempo y potencia de procesamiento. Una regla general práctica es establecer k entre 5 y 10.

        Similar a la validación cruzada de k-means, la validación cruzada estratificada de k-means es una alternativa que ayuda a minimizar los problemas de varianza y sesgo al garantizar que cada iteración de entrenamiento/prueba sea una buena representación de los datos en su conjunto. El método de estratificación es, por lo tanto, más adecuado en casos de desequilibrio de clases. Por ejemplo, supongamos que tiene un conjunto de datos de personas y sus atributos físicos y trata de clasificar a alguien como zurdo (clase 0) o diestro (clase 1). Si su conjunto de datos es representativo de la población, entonces muy pocas personas serán zurdas (aproximadamente el 10 %), mientras que la mayoría serán diestras (aproximadamente el 90 %). Por lo tanto, en un enfoque estratificado de k-means, el 10 % de todas las personas en la primera iteración serán zurdas (clase 0) y el 90 % restante de las personas serán diestras (clase 1). Lo mismo ocurre con la segunda iteración, la tercer iteración, etc.: El 10 % de los datos en la iteración será de clase 0 y el 90 % será de clase 1.

        Figura 1. Cómo se muestrean los datos en la validación cruzada quíntuple.


        Información adicional
        Para obtener más información sobre la validación cruzada, consulte este sitio.

      • Parámetros

        Las matemáticas del aprendizaje automático implican el uso de parámetros o valores configurables que son de importancia para el proceso de aprendizaje automático de múltiples maneras. En el aprendizaje automático, los parámetros se pueden dividir en dos grupos: parámetros e hiperparámetros del modelo.

        Un parámetro de modelo es un parámetro que se deriva del modelo de aprendizaje automático a medida que se somete al proceso de entrenamiento. En otras palabras, los parámetros de modelo son lo "aprendido" por el modelo mientras realiza cálculos con los datos de entrenamiento. Por lo tanto, estos parámetros determinan el grado en el que el modelo las predicciones y otras decisiones inteligentes de manera correcta. Como se derivan del proceso de entrenamiento, los parámetros del modelo normalmente no son configurados por el profesional del aprendizaje automático, sino por los algoritmos y las funciones matemáticas que componen el proceso de aprendizaje automático. Un ejemplo de un parámetro de modelo es un coeficiente de una variable independiente para los modelos de regresión lineal (es decir, el parámetro de modelo es por lo que se multiplica la variable).

        Un hiperparámetro es un parámetro que se establece en el propio algoritmo y no en el modelo de aprendizaje. Esto significa que se proporciona un hiperparámetro antes del entrenamiento, normalmente por parte del profesional de aprendizaje automático. El profesional ajusta los hiperparámetros para que el modelo final sea mejor en la estimación de los parámetros del modelo, mejorando así el rendimiento de aprendizaje del modelo.

        Nota: Se dice que los parámetros del modelo son internos al modelo y que los hiperparámetros son externos al modelo.


        Información adicional

        Para obtener más información sobre los parámetros en el aprendizaje automático, consulte este sitio.

      • Identificación de algoritmos de aprendizaje automático