Llegamos a ustedes gracias a:



Reportajes y análisis

La explicación de los algoritmos de aprendizaje automático

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

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

Recuerde que el aprendizaje automático es una clase de método para crear, automáticamente, modelos predictivos 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 funcione 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 indican a la computadora qué hacer de una manera directa. Por ejemplo, según algunos criterios, los algoritmos de clasificación convierten los datos no ordenados en datos ordenados -a menudo por medio del orden numérico o alfabético de uno o más campos en los datos.

Los algoritmos de regresión lineal se ajustan a una línea recta, o a otra función que es lineal en sus parámetros -como un polinomio- a datos numéricos, generalmente al realizar inversiones matriciales para minimizar el error al cuadrado entre la línea y los datos. El error al cuadrado se utiliza como la métrica, porque a usted no le importa si la línea de regresión está por encima o por debajo de los puntos de datos; solo le 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 pueden resolverse 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 máxima pendiente.

La máxima pendiente 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 los nuevos valores paramétricos. Finalmente, con suerte, el proceso converge. Las variantes en la máxima pendiente intentan mejorar las propiedades de convergencia.

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

Los problemas de predicción (por ejemplo, ¿Cuál será el precio de apertura para 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 múltiples categorías (animal, vegetal o mineral).

Aprendizaje supervisado vs. 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. La meta 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 recorre los datos en sí, e intenta 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.

La capacitación 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 coincida con la verdad básica de sus datos. Los algoritmos a menudo se basan en variantes de la máxima pendiente para sus optimizadores, por ejemplo, pendiente de gradiente estocástica (SGD, por sus siglas en inglés), que es esencialmente la máxima pendiente realizada varias veces desde puntos de partida aleatorios. Los refinamientos comunes en la SGD agregan, según el impulso, factores que corrigen la dirección de la gradiente o, según el progreso de una pasada a través de los datos (llamada época) a la siguiente, ajustan la velocidad de aprendizaje.

La limpieza de los datos para el aprendizaje automático

No existen datos limpios en la naturaleza. Para ser útil para el aprendizaje automático, los datos deben filtrarse agresivamente. Por ejemplo, usted querrá:

  1. Observar los datos y excluir las columnas que tengan muchos datos faltantes.
  2. Volver a mirar los datos y elegir las columnas que desea usar para su predicción. (Puede que esto sea algo que quiera variar cuando haga repeticiones).
  3. Excluir las filas en las que aún faltan datos en las columnas restantes.
  4. Corregir errores tipográficos obvios y combinar respuestas equivalentes. Por ejemplo, EE. UU., Estados Unidos y USA deben fusionarse en una sola categoría.
  5. Excluir las filas que tengan datos fuera de rango. Por ejemplo, si está analizando los viajes en taxi dentro de la ciudad de Nueva York, querrá filtrar las filas con latitudes de punto de partida o punto de llegada y longitudes que están fuera del cuadro delimitador del área metropolitana.

Existe 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, podrá modificarlo y repetirlo a voluntad.

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

Para usar datos categóricos para la clasificación automática, debe codificar las etiquetas de texto en otra forma. Se cuenta con 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 instantánea, 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 el algoritmo de aprendizaje automático al pensar que la columna codificada está ordenada.

Para usar los datos numéricos destinados a la regresión automática, normalmente necesita normalizar los datos. De lo contrario, los números con rangos más grandes tienden a dominar la distancia euclidiana entre los vectores de las funciones, sus efectos pueden aumentarse a expensas de los otros campos, y la optimización de la máxima pendiente puede tener dificultades para converger. Existen varias formas de normalizar y estandarizar los datos para el aprendizaje automático, incluida la normalización mínima-máxima, la estandarización y el crecimiento a la longitud de la unidad. Este proceso a menudo se denomina crecimiento de funciones.

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

Considerando que mencioné los vectores de las funciones en la sección anterior, debo explicar cuáles son. En primer lugar, una función es una propiedad medible individual o característica de un fenómeno que se observa. El concepto de "función se relaciona con el de una variable explicativa, que se utiliza en técnicas estadísticas como la regresión lineal. Los vectores de función combinan todas las funciones de una sola fila en un vector numérico.

Parte del arte de elegir funciones es elegir un conjunto mínimo de variables independientes que expliquen el problema. Si dos variables están muy correlacionadas, es necesario que se combinen en una sola función o una de ellas debe eliminarse. A veces, las personas realizan el análisis de componentes principales para convertir las variables correlacionadas en un conjunto de variables no correlacionadas linealmente.

Algunas de las transformaciones que utilizan las personas para construir nuevas funciones o reducir la dimensionalidad de los vectores de funciones son simples. Por ejemplo, reste el Año de Nacimiento del Año de Fallecimiento y usted construye Edad de Fallecimiento, que es una variable primordial e independiente para el análisis de tiempo de vida y mortalidad. En otros casos, la construcción de funciones puede no ser tan obvia.

Algoritmos comunes de aprendizaje automático

Existen docenas de algoritmos de aprendizaje automático. En grados de complejidad, estos varían desde la regresión lineal y regresión logística, hasta redes neuronales profundas y ensamblajes (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 categoría múltiple).
  • Árboles de decisión (tanto para clasificación como para regresión).
  • Naïve Bayes (tanto para clasificación como para regresión).
  • K-Nearest Neighbors, también conocido como KNN (tanto para clasificación como para regresión).
  • Learning Vector Quantization, también conocido como LVQ (tanto para clasificación como para regresión).
  • Máquinas de Vectores de Soporte (SVM, por sus siglas en inglés) para la clasificación binaria.
  • Bosques Aleatorios, un tipo de algoritmo ensamblado de "empaquetado (tanto para clasificación como para regresión).
  • Los métodos de impulso, incluidos AdaBoost y XGBoost, son algoritmos conjuntos que crean una serie de modelos en los que cada nuevo modelo intenta corregir los errores del modelo anterior (tanto para la clasificación como para la regresión).

¿Dónde están las redes neuronales y las redes neuronales profundas de las que tanto escuchamos? Tienden a ser intensivas en cómputo hasta el punto de necesitar GPUs u otro hardware especializado, por lo que debe usarlas 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 existen muchas capas ocultas en la red neuronal.

Hiperparámetros para algoritmos de aprendizaje automático

Los algoritmos de aprendizaje automático se entrenan en los datos con el fin de 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. A diferencia de los parámetros, en lugar de determinar los pesos, los hiperparámetros controlan el funcionamiento del algoritmo.

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

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 ocho más.

Afinamiento de hiperparámetro

Varias plataformas de producción de aprendizaje automático ahora ofrecen ajuste automático de hiperparámetros. Esencialmente, usted le indica 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 usted permita. (El ajuste de hiperparámetro de Google Cloud extrae la métrica apropiada del modelo TensorFlow, por lo que no tiene que especificarla).

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

Uno pensaría que sintonizar tantos hiperparámetros como sea posible le daría la mejor respuesta. Sin embargo, a menos que esté ejecutando en su propio hardware personal, eso podría ser muy costoso. En cualquier caso, existen rendimientos decrecientes. 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 existe una manera de saber qué algoritmo, o conjunto de algoritmos, le dará el mejor modelo para sus datos: probándolos todos. Si también intenta todas las posibles normalizaciones y opciones de funciones, está enfrentando una explosión combinatoria.

Por supuesto, no resulta práctico intentarlo todo de forma manual. Es por esto por lo que los proveedores de herramientas de aprendizaje automático han esforzado bastante para lanzar sistemas AutoML. Los mejores sistemas combinan la ingeniería de funciones con barridos sobre algoritmos y normalizaciones. El afinamiento de los 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 la 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 los algoritmos (manual o automática), deberá lidiar con optimizadores, limpieza de datos, selección de funciones, normalización de funciones y (opcionalmente) ajuste de hiperparámetros.

Cuando se haya encargado de eso, además de la creación de un modelo que funcione para sus datos, será el momento de implementar el modelo y luego actualizarlo a medida que cambien las condiciones. Sin embargo, la gestión de modelos de aprendizaje automático en producción es un tema aparte.