Búsqueda de sitios web

Diferencia entre algoritmo y modelo en aprendizaje automático


El aprendizaje automático implica el uso de algoritmos y modelos de aprendizaje automático.

Para los principiantes, esto resulta muy confuso ya que a menudo "algoritmo de aprendizaje automático" se usa indistintamente con "modelo de aprendizaje automático". ¿Son lo mismo o algo diferente?

Como desarrollador, su intuición con “algoritmos”, como algoritmos de clasificación y algoritmos de búsqueda, le ayudará a aclarar esta confusión.

En esta publicación, descubrirá la diferencia entre los “algoritmos” y los “modelos” de aprendizaje automático.

Después de leer este post, sabrás:

  • Los algoritmos de aprendizaje automático son procedimientos que se implementan en código y se ejecutan a partir de datos.
  • Los modelos de aprendizaje automático se generan mediante algoritmos y se componen de datos del modelo y un algoritmo de predicción.
  • Los algoritmos de aprendizaje automático proporcionan un tipo de programación automática donde los modelos de aprendizaje automático representan el programa.

Pon en marcha tu proyecto con mi nuevo libro Master Machine Learning Algorithms, que incluye tutoriales paso a paso y los archivos de hoja de cálculo de Excel para todos los ejemplos. .

Empecemos.

Descripción general

Este tutorial se divide en cuatro partes; ellos son:

  1. ¿Qué es un algoritmo en el aprendizaje automático?
  2. ¿Qué es un modelo en aprendizaje automático?
  3. Algoritmo versus marco modelo
  4. El aprendizaje automático es programación automática

¿Qué es un “Algoritmo” en el aprendizaje automático?

Un "algoritmo" en el aprendizaje automático es un procedimiento que se ejecuta con datos para crear un "modelo" de aprendizaje automático.

Los algoritmos de aprendizaje automático realizan "reconocimiento de patrones". Los algoritmos “aprenden” de los datos o “se ajustan” a un conjunto de datos.

Existen muchos algoritmos de aprendizaje automático.

Por ejemplo, tenemos algoritmos de clasificación, como k-vecinos más cercanos. Tenemos algoritmos de regresión, como la regresión lineal, y tenemos algoritmos de agrupación, como k-medias.

Ejemplos de algoritmos de aprendizaje automático:

  • Regresión lineal
  • Regresión logística
  • Árbol de decisión
  • Red neuronal artificial
  • k-vecinos más cercanos
  • k-medias

Puede pensar en un algoritmo de aprendizaje automático como cualquier otro algoritmo en informática.

Por ejemplo, algunos otros tipos de algoritmos con los que quizás esté familiarizado incluyen el ordenamiento por burbujas para ordenar datos y el mejor primero para realizar búsquedas.

Como tal, los algoritmos de aprendizaje automático tienen varias propiedades:

  • Los algoritmos de aprendizaje automático se pueden describir mediante matemáticas y pseudocódigo.
  • La eficiencia de los algoritmos de aprendizaje automático se puede analizar y describir.
  • Los algoritmos de aprendizaje automático se pueden implementar con cualquiera de una variedad de lenguajes de programación modernos.

Por ejemplo, es posible que vea algoritmos de aprendizaje automático descritos con pseudocódigo o álgebra lineal en artículos de investigación y libros de texto. Es posible que vea la eficiencia computacional de un algoritmo de aprendizaje automático específico en comparación con otro algoritmo específico.

Los académicos pueden diseñar algoritmos de aprendizaje automático completamente nuevos y los profesionales del aprendizaje automático pueden utilizar algoritmos de aprendizaje automático estándar en sus proyectos. Esto es como en otras áreas de la informática donde los académicos pueden idear algoritmos de clasificación completamente nuevos y los programadores pueden utilizar los algoritmos de clasificación estándar en sus aplicaciones.

También es probable que vea varios algoritmos de aprendizaje automático implementados juntos y proporcionados en una biblioteca con una interfaz de programación de aplicaciones (API) estándar. Un ejemplo popular es la biblioteca scikit-learn que proporciona implementaciones de muchos algoritmos de aprendizaje automático de clasificación, regresión y agrupación en Python.

¿Qué es un "modelo" en el aprendizaje automático?

Un "modelo" en el aprendizaje automático es el resultado de un algoritmo de aprendizaje automático que se ejecuta a partir de datos.

Un modelo representa lo aprendido mediante un algoritmo de aprendizaje automático.

El modelo es la "cosa" que se guarda después de ejecutar un algoritmo de aprendizaje automático en datos de entrenamiento y representa las reglas, los números y cualquier otra estructura de datos específica del algoritmo necesaria para hacer predicciones.

Algunos ejemplos podrían aclarar esto:

  • El algoritmo de regresión lineal da como resultado un modelo compuesto por un vector de coeficientes con valores específicos.
  • El algoritmo del árbol de decisión da como resultado un modelo compuesto por un árbol de declaraciones si-entonces con valores específicos.
  • Los algoritmos de red neuronal/retropropagación/descenso de gradiente juntos dan como resultado un modelo compuesto por una estructura gráfica con vectores o matrices de pesos con valores específicos.

Un modelo de aprendizaje automático es más desafiante para un principiante porque no existe una analogía clara con otros algoritmos en informática.

Por ejemplo, la salida de la lista ordenada de un algoritmo de clasificación no es realmente un modelo.

La mejor analogía es pensar en el modelo de aprendizaje automático como un "programa".

El modelo de aprendizaje automático “programa” se compone tanto de datos como de un procedimiento para utilizar los datos para hacer una predicción.

Por ejemplo, considere el algoritmo de regresión lineal y el modelo resultante. El modelo se compone de un vector de coeficientes (datos) que se multiplican y suman con una fila de nuevos datos tomados como entrada para hacer una predicción (procedimiento de predicción).

Guardamos los datos del modelo de aprendizaje automático para su uso posterior.

A menudo utilizamos el procedimiento de predicción para el modelo de aprendizaje automático proporcionado por una biblioteca de aprendizaje automático. A veces podemos implementar el procedimiento de predicción nosotros mismos como parte de nuestra aplicación. Esto suele ser sencillo de hacer dado que la mayoría de los procedimientos de predicción son bastante simples.

Algoritmo versus marco modelo

Ahora estamos familiarizados con un “algoritmo” de aprendizaje automático frente a un “modelo” de aprendizaje automático.

Específicamente, se ejecuta un algoritmo con datos para crear un modelo.

  • Aprendizaje automático => Modelo de aprendizaje automático

También entendemos que un modelo se compone tanto de datos como de un procedimiento sobre cómo utilizarlos para hacer una predicción sobre datos nuevos. Si lo desea, puede considerar el procedimiento como un algoritmo de predicción.

  • Modelo de aprendizaje automático == Datos del modelo + Algoritmo de predicción

Esta división es muy útil para comprender una amplia gama de algoritmos.

Por ejemplo, la mayoría de los algoritmos tienen todo su trabajo en el “algoritmo” y el “algoritmo de predicción” hace muy poco.

Normalmente, el algoritmo es algún tipo de procedimiento de optimización que minimiza el error del modelo (datos + algoritmo de predicción) en el conjunto de datos de entrenamiento. El algoritmo de regresión lineal es un buen ejemplo. Realiza un proceso de optimización (o se resuelve analíticamente usando álgebra lineal) para encontrar un conjunto de pesos que minimice el error de suma cuadrada en el conjunto de datos de entrenamiento.

Regresión lineal:

  • Algoritmo: busque un conjunto de coeficientes que minimicen el error en el conjunto de datos de entrenamiento
  • Modelo:

    • Datos del modelo: Vector de coeficientes
    • Algoritmo de predicción: coeficientes múltiples y sumados con fila de entrada

Algunos algoritmos son triviales o incluso no hacen nada, y todo el trabajo está en el modelo o algoritmo de predicción.

El algoritmo vecino k más cercano no tiene otro “algoritmo” que guardar todo el conjunto de datos de entrenamiento. Por lo tanto, los datos del modelo son el conjunto de datos de entrenamiento completo y todo el trabajo está en el algoritmo de predicción, es decir, cómo interactúa una nueva fila de datos con el conjunto de datos de entrenamiento guardado para hacer una predicción.

k-vecinos más cercanos

  • Algoritmo: guarda datos de entrenamiento.
  • Modelo:

    • Datos del modelo: conjunto de datos de entrenamiento completo.
    • Algoritmo de predicción: busque las k filas más similares y promedie su variable objetivo.

Puede utilizar este desglose como marco para comprender cualquier algoritmo de aprendizaje automático.

¿Cuál es tu algoritmo favorito?
¿Puedes describirlo usando este marco en los comentarios a continuación?

¿Conoce algún algoritmo que no encaje perfectamente en este desglose?

El aprendizaje automático es programación automática

Realmente solo queremos un “modelo” de aprendizaje automático y el “algoritmo” es solo el camino que seguimos para obtener el modelo.

Las técnicas de aprendizaje automático se utilizan para problemas que no se pueden resolver de manera eficiente o efectiva de otras maneras.

Por ejemplo, si necesitamos clasificar los correos electrónicos como spam o no spam, necesitamos un programa de software para hacerlo.

Podríamos sentarnos, revisar manualmente una tonelada de correos electrónicos y escribir declaraciones if para realizar esta tarea. La gente lo ha intentado. Resulta que este enfoque es lento, frágil y poco eficaz.

En cambio, podemos utilizar técnicas de aprendizaje automático para resolver este problema. Específicamente, un algoritmo como Naive Bayes puede aprender cómo clasificar mensajes de correo electrónico como spam y no spam a partir de un gran conjunto de datos de ejemplos históricos de correo electrónico.

No queremos "Naive Bayes". Queremos que el modelo que ofrece Naive Bayes sea el que podamos usar para clasificar el correo electrónico (los vectores de probabilidades y el algoritmo de predicción para usarlos). Queremos el modelo, no el algoritmo utilizado para crear el modelo.

En este sentido, el modelo de aprendizaje automático es un programa escrito, creado o aprendido automáticamente por el algoritmo de aprendizaje automático para resolver nuestro problema.

Como desarrolladores, estamos menos interesados en el “aprendizaje” realizado por algoritmos de aprendizaje automático en el sentido de inteligencia artificial. No nos importa simular procesos de aprendizaje. Algunas personas pueden serlo, y es interesante, pero no es por eso que utilizamos algoritmos de aprendizaje automático.

En cambio, estamos más interesados en la capacidad de programación automática que ofrecen los algoritmos de aprendizaje automático. Queremos un modelo eficaz creado de manera eficiente que podamos incorporar a nuestro proyecto de software.

Los algoritmos de aprendizaje automático realizan programación automática y los modelos de aprendizaje automático son los programas creados para nosotros.

Resumen

En esta publicación, descubrió la diferencia entre los “algoritmos” y los “modelos” de aprendizaje automático.

Específicamente, aprendiste:

  • Los algoritmos de aprendizaje automático son procedimientos que se implementan en código y se ejecutan con datos.
  • Los modelos de aprendizaje automático se generan mediante algoritmos y se componen de datos del modelo y un algoritmo de predicción.
  • Los algoritmos de aprendizaje automático proporcionan un tipo de programación automática donde los modelos de aprendizaje automático representan el programa.

¿Tiene alguna pregunta?
Haga sus preguntas en los comentarios a continuación y haré todo lo posible para responderlas.

Artículos relacionados