Explicación de los algoritmos de aprendizaje automático

El aprendizaje automático y el aprendizaje profundo han sido ampliamente adoptados y aún más incomprendidos. En este artículo, me gustaría dar un paso atrás y explicar tanto el aprendizaje automático como el aprendizaje profundo en términos básicos, discutir algunos de los algoritmos de aprendizaje automático más comunes y explicar cómo esos algoritmos se relacionan con las otras piezas del rompecabezas de la creación de modelos predictivos. a partir de datos históricos.

¿Qué son los algoritmos de aprendizaje automático?

Recuerde que el aprendizaje automático es una clase de métodos para crear modelos automáticamente a partir de datos. Los algoritmos de aprendizaje automático son los motores del aprendizaje automático, lo que significa que son los algoritmos que convierten un conjunto de datos en un modelo. El tipo de algoritmo que funciona mejor (supervisado, no supervisado, clasificación, regresión, etc.) depende del tipo de problema que esté resolviendo, los recursos informáticos disponibles y la naturaleza de los datos.

Cómo funciona el aprendizaje automático

Los algoritmos de programación ordinarios le dicen a la computadora qué hacer de una manera sencilla. Por ejemplo, los algoritmos de clasificación convierten los datos desordenados en datos ordenados según algunos criterios, a menudo el orden numérico o alfabético de uno o más campos de los datos.

Los algoritmos de regresión lineal ajustan una línea recta u otra función que es lineal en sus parámetros, como un polinomio, a datos numéricos, típicamente realizando inversiones de matriz para minimizar el error al cuadrado entre la línea y los datos. El error al cuadrado se utiliza como métrica porque no le importa si la línea de regresión está por encima o por debajo de los puntos de datos; solo te importa la distancia entre la línea y los puntos.

Los algoritmos de regresión no lineal, que ajustan curvas que no son lineales en sus parámetros a los datos , son un poco más complicados porque, a diferencia de los problemas de regresión lineal, no se pueden resolver con un método determinista. En cambio, los algoritmos de regresión no lineal implementan algún tipo de proceso de minimización iterativo, a menudo alguna variación en el método de descenso más pronunciado.    

El descenso más empinado básicamente calcula el error al cuadrado y su gradiente en los valores de los parámetros actuales, elige un tamaño de paso (también conocido como tasa de aprendizaje), sigue la dirección del gradiente "cuesta abajo" y luego vuelve a calcular el error al cuadrado y su gradiente en el nuevo valores paramétricos. Finalmente, con suerte, el proceso converge. Las variantes en el descenso más pronunciado intentan mejorar las propiedades de convergencia.

Los algoritmos de aprendizaje automático son incluso menos sencillos que la regresión no lineal, en parte porque el aprendizaje automático prescinde de la restricción de ajustarse a una función matemática específica, como un polinomio. Hay dos categorías principales de problemas que a menudo se resuelven mediante el aprendizaje automático: regresión y clasificación. La regresión es para datos numéricos (por ejemplo, ¿cuál es el ingreso probable para alguien con una determinada dirección y profesión?) Y la clasificación es para datos no numéricos (por ejemplo, ¿el solicitante no pagará este préstamo?).

Los problemas de predicción (por ejemplo, ¿cuál será el precio de apertura de las acciones de Microsoft mañana?) Son un subconjunto de problemas de regresión para los datos de series de tiempo. Los problemas de clasificación a veces se dividen en problemas binarios (sí o no) y de categorías múltiples (animales, vegetales o minerales).

Aprendizaje supervisado frente a aprendizaje no supervisado

Independientemente de estas divisiones, existen otros dos tipos de algoritmos de aprendizaje automático: supervisados ​​y no supervisados. En el aprendizaje supervisado , proporciona un conjunto de datos de entrenamiento con respuestas, como un conjunto de imágenes de animales junto con los nombres de los animales. El objetivo de ese entrenamiento sería un modelo que pudiera identificar correctamente una imagen (de un tipo de animal que se incluyó en el conjunto de entrenamiento) que no había visto anteriormente.

En el aprendizaje no supervisado , el algoritmo revisa los datos en sí y trata de obtener resultados significativos. El resultado podría ser, por ejemplo, un conjunto de grupos de puntos de datos que podrían estar relacionados dentro de cada grupo. Eso funciona mejor cuando los grupos no se superponen.

El entrenamiento y la evaluación convierten los algoritmos de aprendizaje supervisado en modelos al optimizar sus parámetros para encontrar el conjunto de valores que mejor se adapte a la verdad básica de sus datos. Los algoritmos a menudo se basan en variantes de descenso más pronunciado para sus optimizadores, por ejemplo, descenso de gradiente estocástico (SGD), que es esencialmente el descenso más pronunciado realizado varias veces desde puntos de partida aleatorios. Los refinamientos comunes en SGD agregan factores que corrigen la dirección del gradiente según el impulso o ajustan la tasa de aprendizaje en función del progreso de una pasada a través de los datos (llamada época) a la siguiente.

Limpieza de datos para aprendizaje automático

No existen datos limpios en la naturaleza. Para que sea útil para el aprendizaje automático, los datos deben filtrarse de manera agresiva. Por ejemplo, querrás:

  1. Mire los datos y excluya las columnas que tengan muchos datos faltantes.
  2. Mire los datos nuevamente y elija las columnas que desea usar para su predicción. (Esto es algo que puede querer variar cuando repita).
  3. Excluya las filas que aún tengan datos faltantes en las columnas restantes.
  4. Corrija errores tipográficos obvios y combine respuestas equivalentes. Por ejemplo, EE. UU., EE. UU., EE. UU. Y América deben fusionarse en una sola categoría.
  5. Excluya las filas que tienen datos fuera de rango. Por ejemplo, si está analizando viajes en taxi dentro de la ciudad de Nueva York, querrá filtrar filas con latitudes y longitudes de recogida o devolución que estén fuera del cuadro delimitador del área metropolitana.

Hay mucho más que puede hacer, pero dependerá de los datos recopilados. Esto puede ser tedioso, pero si configura un paso de limpieza de datos en su canal de aprendizaje automático, puede modificarlo y repetirlo a voluntad.

Codificación y normalización de datos para el aprendizaje automático

Para utilizar datos categóricos para la clasificación de la máquina, debe codificar las etiquetas de texto en otro formulario. Hay dos codificaciones comunes.

Una es la codificación de etiquetas , lo que significa que cada valor de etiqueta de texto se reemplaza por un número. La otra es la codificación one-hot , lo que significa que cada valor de etiqueta de texto se convierte en una columna con un valor binario (1 o 0). La mayoría de los marcos de aprendizaje automático tienen funciones que realizan la conversión por usted. En general, se prefiere la codificación one-hot, ya que la codificación de etiquetas a veces puede confundir al algoritmo de aprendizaje automático haciéndole pensar que la columna codificada está ordenada.

Para usar datos numéricos para la regresión de la máquina, generalmente necesita normalizar los datos. De lo contrario, los números con rangos más grandes pueden tender a dominar la distancia euclidiana entre vectores de características , sus efectos pueden magnificarse a expensas de los otros campos y la optimización de descenso más pronunciada puede tener dificultades para converger. Hay varias formas de normalizar y estandarizar los datos para ML, incluida la normalización mínimo-máximo, la normalización media, la estandarización y el escalado a la longitud de la unidad. Este proceso a menudo se denomina escalamiento de características .

¿Qué son las funciones de aprendizaje automático?

Como mencioné los vectores de características en la sección anterior, debería explicar qué son. En primer lugar, un rasgo es una propiedad individual mensurable o una característica de un fenómeno que se observa. El concepto de “característica” está relacionado con el de variable explicativa, que se utiliza en técnicas estadísticas como la regresión lineal. Los vectores de características combinan todas las características de una sola fila en un vector numérico.

Parte del arte de elegir características es elegir un conjunto mínimo de variables independientes que expliquen el problema. Si dos variables están muy correlacionadas, es necesario combinarlas en una sola característica o descartar una. A veces, las personas realizan análisis de componentes principales para convertir variables correlacionadas en un conjunto de variables linealmente no correlacionadas.

Algunas de las transformaciones que la gente usa para construir nuevas características o reducir la dimensionalidad de los vectores de características son simples. Por ejemplo, reste Year of Birthde Year of Deathy construya Age at Death, que es una variable independiente principal para el análisis de vida y mortalidad. En otros casos, la construcción de características puede no ser tan obvia.

Algoritmos comunes de aprendizaje automático

Hay docenas de algoritmos de aprendizaje automático, cuya complejidad varía desde la regresión lineal y la regresión logística hasta conjuntos y redes neuronales profundas (combinaciones de otros modelos). Sin embargo, algunos de los algoritmos más comunes incluyen:

  • Regresión lineal, también conocida como regresión de mínimos cuadrados (para datos numéricos)
  • Regresión logística (para clasificación binaria)
  • Análisis discriminante lineal (para clasificación de múltiples categorías)
  • Árboles de decisión (tanto para clasificación como para regresión)
  • Naïve Bayes (para clasificación y regresión)
  • K-Neighbours más cercanos, también conocido como KNN (para clasificación y regresión)
  • Learning Vector Quantization, también conocido como LVQ (tanto para clasificación como para regresión)
  • Support Vector Machines, también conocido como SVM (para clasificación binaria)
  • Bosques aleatorios, un tipo de algoritmo de conjunto de "ensacado" (tanto para clasificación como para regresión)
  • Los métodos de impulso, incluidos AdaBoost y XGBoost, son algoritmos de conjunto que crean una serie de modelos en los que cada nuevo modelo intenta corregir los errores del modelo anterior (tanto para clasificación como para regresión)

¿Dónde están las redes neuronales y las redes neuronales profundas de las que tanto escuchamos? Tienden a ser intensivos en computación hasta el punto de necesitar GPU u otro hardware especializado, por lo que debe usarlos solo para problemas especializados, como la clasificación de imágenes y el reconocimiento de voz, que no son adecuados para algoritmos más simples. Tenga en cuenta que "profundo" significa que hay muchas capas ocultas en la red neuronal.

Para obtener más información sobre las redes neuronales y el aprendizaje profundo, consulte "Qué significa realmente el aprendizaje profundo".

Hiperparámetros para algoritmos de aprendizaje automático

Los algoritmos de aprendizaje automático se entrenan con los datos para encontrar el mejor conjunto de ponderaciones para cada variable independiente que afecta el valor o la clase pronosticados. Los propios algoritmos tienen variables, llamadas hiperparámetros. Se denominan hiperparámetros, a diferencia de parámetros, porque controlan el funcionamiento del algoritmo en lugar de determinar los pesos.

El hiperparámetro más importante es a menudo la tasa de aprendizaje, que determina el tamaño de paso utilizado al encontrar el siguiente conjunto de pesos para probar al optimizar. Si la tasa de aprendizaje es demasiado alta, el descenso del gradiente puede converger rápidamente en una meseta o un punto subóptimo. Si la tasa de aprendizaje es demasiado baja, el descenso del gradiente puede detenerse y nunca converger por completo.

Muchos otros hiperparámetros comunes dependen de los algoritmos utilizados. La mayoría de los algoritmos tienen parámetros de detención, como el número máximo de épocas, el tiempo máximo de ejecución o la mejora mínima de una época a otra. Los algoritmos específicos tienen hiperparámetros que controlan la forma de su búsqueda. Por ejemplo, un clasificador de bosque aleatorio tiene hiperparámetros para muestras mínimas por hoja, profundidad máxima, muestras mínimas en una división, fracción de peso mínimo para una hoja y aproximadamente 8 más.

Ajuste de hiperparámetros

Varias plataformas de producción de aprendizaje automático ahora ofrecen ajuste automático de hiperparámetros. Esencialmente, le dice al sistema qué hiperparámetros desea variar y posiblemente qué métrica desea optimizar, y el sistema barre esos hiperparámetros en tantas ejecuciones como permita. (El ajuste de hiperparámetros de Google Cloud extrae la métrica adecuada del modelo de TensorFlow, por lo que no es necesario que la especifique).

Hay tres algoritmos de búsqueda para hiperparámetros de barrido: optimización bayesiana, búsqueda de cuadrícula y búsqueda aleatoria. La optimización bayesiana tiende a ser la más eficiente.

Pensaría que ajustar tantos hiperparámetros como sea posible le daría la mejor respuesta. Sin embargo, a menos que esté ejecutando su propio hardware personal, eso podría ser muy costoso. Hay rendimientos decrecientes, en cualquier caso. Con la experiencia, descubrirá qué hiperparámetros son más importantes para sus datos y elección de algoritmos.

Aprendizaje automático automatizado

Hablando de elegir algoritmos, solo hay una forma de saber qué algoritmo o conjunto de algoritmos le dará el mejor modelo para sus datos, y es probarlos todos. Si también prueba todas las normalizaciones y opciones de funciones posibles, se enfrentará a una explosión combinatoria.

Probar todo no es práctico de hacer manualmente, por lo que, por supuesto, los proveedores de herramientas de aprendizaje automático se han esforzado mucho en lanzar sistemas AutoML. Los mejores combinan la ingeniería de características con barridos de algoritmos y normalizaciones. El ajuste de hiperparámetros del mejor modelo o modelos a menudo se deja para más adelante. Sin embargo, la ingeniería de funciones es un problema difícil de automatizar y no todos los sistemas AutoML lo manejan.

En resumen, los algoritmos de aprendizaje automático son solo una pieza del rompecabezas del aprendizaje automático. Además de la selección de algoritmos (manual o automática), deberá lidiar con optimizadores, limpieza de datos, selección de características, normalización de características y (opcionalmente) ajuste de hiperparámetros.

Cuando haya manejado todo eso y haya creado un modelo que funcione para sus datos, será el momento de implementar el modelo y luego actualizarlo cuando cambien las condiciones. Sin embargo, la gestión de modelos de aprendizaje automático en producción es otra lata de gusanos.