8 formas de poner en marcha el aprendizaje automático

0
44
Custom Text

¿Necesita clasificar datos o predecir resultados? ¿Tiene problemas para poner en marcha su proyecto de aprendizaje automático? Hay una serie de técnicas disponibles para ayudarlo a despegar.

Algunos de los ocho métodos que se comentan a continuación acelerarán dramáticamente su proceso de aprendizaje automático, mientras que otros no solo acelerarán el proceso, sino que le ayudarán a construir un mejor modelo. No todos estos métodos serán adecuados para un proyecto determinado, pero el primero –el análisis exploratorio de datos- nunca debería dejarse de lado.

He aquí ocho maneras de poner en marcha su proyecto de aprendizaje automático o aprendizaje profundo.

Comience con un análisis exploratorio de los datos
Lanzarse a la preparación del aprendizaje automático sin examinar primero sus datos en profundidad es como el sexo sin los juegos previos. Es mucho trabajo y no será tan gratificante.

El análisis exploratorio de datos combina métodos gráficos y estadísticos. Algunas de las técnicas más comunes son los histogramas y los diagramas de caja y bigotes de las variables individuales, los diagramas de dispersión de pares de variables y los gráficos de estadística descriptiva, por ejemplo, las correlaciones entre las variables como un mapa de calor de las correlaciones por pares.

El análisis exploratorio de datos también puede incluir técnicas de reducción de la dimensionalidad, como el análisis de componentes principales (ACP, por sus siglas en inglés) y la reducción de la dimensionalidad no lineal (NLDR, por sus siglas en inglés). En el caso de los datos basados en el tiempo, es conveniente trazar gráficos de líneas de las variables y las estadísticas brutas en función del tiempo, lo que puede, entre otras cosas, poner de manifiesto las variaciones estacionales y por día de la semana, así como los saltos anómalos debido a factores externos como las tormentas y las epidemias.

El análisis exploratorio de datos es algo más que gráficos estadísticos. Es un enfoque filosófico del análisis de datos diseñado para ayudarle a mantener una mente abierta, en lugar de tratar de forzar los datos dentro de un modelo. Actualmente, muchas de las ideas del análisis exploratorio de datos han sido incorporadas a la minería de datos.

Construir clústeres no supervisados
El análisis de clústeres es un problema de aprendizaje no supervisado que pide al modelo que encuentre grupos de puntos de datos similares. Existen varios algoritmos de clustering actualmente en uso, que suelen tener características ligeramente diferentes. En general, los algoritmos de clustering se fijan en las métricas o funciones de distancia entre los vectores de características de los puntos de datos, y luego agrupan los que están «cerca». Los algoritmos de clustering funcionan mejor si las clases no se superponen.

Uno de los métodos de clustering más comunes es k-medias, que intenta dividir n observaciones en k clústeres utilizando la métrica de distancia euclidiana, con el objetivo de minimizar la varianza (suma de cuadrados) dentro de cada clúster. Es un método de cuantificación vectorial y es útil para el aprendizaje de características.

El algoritmo de Lloyd (aglomeración iterativa de conglomerados con actualizaciones de centroides) es la heurística más utilizada para resolver el problema y es relativamente eficiente, pero no garantiza la convergencia global. Para mejorarla, a menudo se ejecuta el algoritmo varias veces utilizando centros de clústeres iniciales aleatorios generados por los métodos Forgy o Random Partition.

K-medias asume que los clústeres son esféricos y separables, de modo que la media converge hacia el centro del clúster, y también asume que el orden de los puntos de datos no importa. Se espera que los clústeres tengan un tamaño similar para que la asignación al centro del clúster más cercano sea la correcta.

Si el clustering de k-medias no le funciona, considere el análisis de clúster jerárquico, los modelos de mezcla o DBSCAN. Considere también otros tipos de aprendizaje no supervisado, como los autocodificadores y el método de los momentos.

Etiquete sus datos con el aprendizaje semisupervisado
Los datos etiquetados son la condición sine qua non del aprendizaje automático. Si no los tiene, no podrá entrenar un modelo para predecir el valor objetivo.

La respuesta sencilla, pero costosa, es etiquetar manualmente todos los datos. El «chiste» que se hace en el mundo académico (entre los profesores) es que sus estudiantes de posgrado pueden hacerlo (aunque no es gracioso si usted es un estudiante de posgrado).

La respuesta menos costosa es etiquetar manualmente algunos de los datos, y luego intentar predecir el resto de los valores objetivo con uno o más modelos. Esto se llama aprendizaje semisupervisado. Con los algoritmos de autoentrenamiento (un tipo de aprendizaje semisupervisado) se aceptan todos los valores predichos por un único modelo con una probabilidad superior a cierto umbral y se utiliza el conjunto de datos de entrenamiento, ahora más amplio, para construir un modelo refinado. Luego, se utiliza ese modelo para otra ronda de predicciones, y se itera hasta que no haya más predicciones que sean seguras. El autoentrenamiento a veces funciona, pero otras veces, el modelo se corrompe por una mala predicción.

Si construye varios modelos y los utiliza para comprobarlos entre sí, podrá conseguir algo más robusto, como el tri-entrenamiento. Otra alternativa es combinar el aprendizaje semisupervisado con el aprendizaje por transferencia de un modelo existente construido a partir de datos diferentes.

Puede implementar cualquiera de estos esquemas usted mismo. También puede utilizar un servicio web con etiquetadores capacitados, como Amazon SageMaker Ground TruthHive DataLabelboxDataloop y Datasaur.

Añada conjuntos de datos complementarios
Las externalidades a menudo arrojan luz sobre las anomalías en los conjuntos de datos, particularmente los de series temporales. Por ejemplo, si se añaden datos meteorológicos a un conjunto de datos de alquiler de bicicletas, se podrán explicar muchas desviaciones que, de otro modo, habrían sido un misterio, como la fuerte caída de los alquileres durante las tormentas.

La predicción de las ventas al por menor ofrece otros buenos ejemplos. Los descuentos, las ofertas de la competencia, los cambios en la publicidad, los acontecimientos económicos y el clima pueden afectar a las ventas. En resumen, si los datos no tienen sentido, añada algo de contexto y quizás todo se aclare.

Pruebe el aprendizaje automático
Antes, la única manera de encontrar el mejor modelo para los datos era entrenar todos los modelos posibles y ver cuál era el mejor. Para muchos tipos de datos, especialmente los datos tabulares etiquetados, puede dirigir una herramienta de aprendizaje automático (AutoML) al conjunto de datos y volver más tarde para obtener algunas buenas respuestas. A veces, el mejor modelo será un conjunto de otros modelos, cuyo uso para la inferencia puede ser costoso, pero a menudo el mejor modelo simple es casi tan bueno como el conjunto y mucho más barato de ejecutar.

Bajo el capó, los servicios AutoML suelen hacer algo más que probar ciegamente todos los modelos adecuados. Por ejemplo, algunos crean automáticamente conjuntos de características normalizados y diseñados, imputan valores perdidos, eliminan rasgos correlacionados y añaden columnas retardadas para la predicción de series temporales. Otra actividad opcional es la optimización de los hiperparámetros de algunos de los mejores modelos para mejorarlos aún más. Para obtener el mejor resultado posible en el tiempo asignado, algunos servicios AutoML terminan rápidamente el entrenamiento de los modelos que no están mejorando mucho y se dedican a los que parecen más prometedores.

Personalice un modelo entrenado con aprendizaje de transferencia
Entrenar una gran red neuronal desde cero suele requerir una gran cantidad de datos (no es raro que haya millones de elementos de entrenamiento) y un tiempo y unos recursos informáticos considerables (varias semanas utilizando GPUs de varios servidores). Un atajo potente, denominado aprendizaje de transferencia, consiste en personalizar una red neuronal entrenada mediante el entrenamiento de unas cuantas capas nuevas sobre la red con nuevos datos, o extraer las características de la red y utilizarlas para entrenar un clasificador lineal simple. Esto puede hacerse utilizando un servicio en la nube, como Azure Custom Vision o Custom Language Understanding, o aprovechando las bibliotecas de redes neuronales entrenadas creadas con, por ejemplo, TensorFlow o PyTorch. El aprendizaje de transferencia o el ajuste fino pueden, a menudo, completarse en minutos con una sola GPU.

Pruebe algoritmos de aprendizaje profundo desde un ‘model zoo’
Incluso si no puede crear fácilmente el modelo que necesita con el aprendizaje de transferencia utilizando su servicio en la nube o marco de aprendizaje profundo preferido, aún puede evitar el esfuerzo de diseñar y entrenar un modelo de red neuronal profunda desde cero. La mayoría de los principales marcos tienen un model zoo que es más amplio que sus API de modelo. Incluso hay algunos sitios web que tienen model zoos para múltiples frameworks o para cualquier framework que pueda manejar una representación específica, como ONNX.

Muchos de los modelos que encontrará en los model zoos están completamente entrenados y listos para usar. Sin embargo, algunos son snapshots parcialmente entrenadas, cuyos pesos son útiles como puntos de partida para el entrenamiento con sus propios conjuntos de datos.

Optimice los hiperparámetros de su modelo
Entrenar un modelo la primera vez no suele ser el final del proceso. Los modelos de aprendizaje automático pueden mejorarse utilizando diferentes hiperparámetros, y los mejores se encuentran optimizando o ajustando los hiperparámetros. No, esto no es realmente un arranque, pero es una forma de pasar de un modelo inicial no tan bueno a uno mucho mejor.

Los hiperparámetros son parámetros externos al modelo que se utilizan para controlar el proceso de aprendizaje. Los parámetros dentro del modelo, como los pesos de los nodos, se aprenden durante el entrenamiento. La optimización de los hiperparámetros es esencialmente el proceso de encontrar el mejor conjunto de hiperparámetros para un modelo dado. Cada paso de la optimización implica volver a entrenar el modelo y obtener un valor de la función de pérdida.

Los hiperparámetros que importan dependen del modelo y del optimizador utilizado dentro de éste. Por ejemplo, la tasa de aprendizaje es un hiperparámetro común para las redes neuronales, excepto cuando el optimizador toma el control de la tasa de aprendizaje de una época a otra. Para un clasificador de máquina de vectores de soporte con un núcleo RBF (función de base radial), los hiperparámetros pueden ser una constante de regularización y del núcleo.

Los optimizadores de hiperparámetros pueden utilizar varios algoritmos de búsqueda. La búsqueda en cuadrícula es tradicional. Por un lado, esta requiere muchos entrenamientos para cubrir todas las combinaciones de múltiples hiperparámetros; pero, por otro lado, todos los entrenamientos pueden ejecutarse en paralelo si se dispone de suficientes recursos informáticos. La búsqueda aleatoria es a veces más eficiente y también es fácil de paralelizar. Otras alternativas son la optimización bayesiana, el descenso de gradiente, la optimización evolutiva y los algoritmos de parada temprana.

En resumen, comience su proceso de creación de modelos con un análisis exploratorio de los datos. Utilice el aprendizaje no supervisado para comprender mejor sus datos y características. Pruebe AutoML para analizar rápidamente muchos modelos. Si necesita un modelo de red neuronal profunda, pruebe primero el aprendizaje por transferencia o un model zoo antes de intentar diseñar y entrenar su propia red desde cero. Si encuentra un modelo que le parece bueno, intente mejorarlo con el ajuste de hiperparámetros, y finalmente, pruebe y supervise el modelo en producción.

En realidad, el proceso no termina en ese punto. Con el tiempo, los datos o el concepto se desviarán debido a los acontecimientos del mundo real, y tendrá que refinar y volver a entrenar su modelo. Incluso puede que descubra que otro tipo de modelo funciona mejor con los nuevos datos.

Martin Heller InfoWorld.com – CIOPeru.pe

Artículo anteriorLa Fundación Bancaribe pone a disposición de sus lectores otras obras de Caracciolo Parra Pérez en su Biblioteca Digital
Artículo siguiente¿Qué sigue para el cifrado si el algoritmo RSA no funciona?