Parámetros de entrenamiento - Amazon Machine Learning

Ya no actualizamos el servicio Amazon Machine Learning ni aceptamos nuevos usuarios para él. Esta documentación está disponible para los usuarios actuales, pero ya no la actualizamos. Para obtener más información, consulte Qué es Amazon Machine Learning.

Parámetros de entrenamiento

Normalmente, los algoritmos de aprendizaje automático aceptan parámetros que pueden utilizarse para controlar determinadas propiedades del proceso de aprendizaje y del modelo de ML resultante. En Amazon Machine Learning, se denominan parámetros de entrenamiento. Puede definir estos parámetros utilizando la consola, la API o la interfaz de la línea de comandos (CLI) de Amazon ML. Si no configura ningún parámetro, Amazon ML utilizará los valores predeterminados que funcionan bien para una gran variedad de tareas de machine learning.

Puede especificar valores para los siguientes parámetros de entrenamiento:

  • Tamaño máximo del modelo

  • Número máximo de iteraciones en los datos de aprendizaje

  • Tipo de mezcla

  • Tipo de regularización

  • Cantidad de regularización

En la consola de Amazon ML, los parámetros de aprendizaje están establecidos de forma predeterminada. La configuración predeterminada es suficiente para la mayoría de problemas de ML, pero puede elegir otros valores para afinar el desempeño. Algunos otros parámetros de entrenamiento, como por ejemplo la tasa de aprendizaje, están configuradas automáticamente en función de los datos.

En las secciones siguientes se proporciona más información acerca de los parámetros de entrenamiento.

Tamaño máximo del modelo

El tamaño máximo del modelo es el tamaño total, en unidades de bytes, de patrones que Amazon ML crea durante el entrenamiento de un modelo de ML.

De forma predeterminada, Amazon ML crea un modelo de 100 MB. Puede indicarle a Amazon ML que cree un modelo más grande o más pequeño especificando un tamaño diferente. Para el rango de tamaños disponibles, consulte Tipos de modelos de ML

Si Amazon ML no encuentra patrones suficientes para rellenar el tamaño del modelo, crea un modelo más pequeño. Por ejemplo, si especifica un tamaño máximo de modelo de 100 MB pero Amazon ML encuentra patrones que suman un total de 50 MB, el modelo resultante será de 50 MB. Si Amazon ML encuentra más patrones de los que cabrán en el tamaño especificado, impone un valor de corte máximo recortando los patrones que menos afectan a la calidad del modelo aprendido.

La elección del tamaño del modelo le permite controlar el equilibrio entre la calidad de predicción del modelo y el costo de su uso. Los modelos más pequeños pueden provocar que Amazon ML elimine muchos patrones para que quepan en el límite de tamaño máximo, hecho que afectará a la calidad de las predicciones. Los modelos más grandes, por otro lado, son más costosos de consultar para obtener predicciones en tiempo real.

nota

Si utiliza un modelo de ML para generar predicciones en tiempo real, producirá una pequeña carga de reserva de capacidad que se determina en función del tamaño del modelo. Para obtener más información, consulte Precios de Amazon ML.

Los conjuntos de datos de entrada grandes no generarán necesariamente modelos más grandes. ya que los modelos almacenan patrones y no datos de entrada; si los patrones son pocos y sencillos, el modelo resultante será pequeño. Los datos de entrada que tienen un gran número de atributos sin formato (columnas de entrada) o funciones derivados (salidas de las transformaciones de datos de Amazon ML) generarán probablemente más patrones y estos se almacenarán durante el proceso de entrenamiento. Es mejor realizar algunas pruebas antes de seleccionar el tamaño del modelo correcto para sus datos y problemas. El registro de aprendizaje del modelo de Amazon ML (que puede descargar a través de la consola o de la API) contiene mensajes sobre la cantidad que se ha recortado en el modelo (si procede) durante el proceso de entrenamiento, lo que le permite hacer una estimación de la calidad potencial de la predicción de aciertos.

Número máximo de iteraciones en los datos

Para obtener el mejor resultado, quizá sea necesario que Amazon ML realice varias iteraciones en los datos para descubrir patrones. Amazon ML realiza 10 iteraciones de forma predeterminada, pero puede cambiar el valor predeterminado estableciendo un número de hasta 100. Amazon ML lleva un seguimiento de la calidad de los patrones (convergencia del modelo) mientras va avanzando y detiene automáticamente el entrenamiento cuando no hay más puntos de datos o patrones por descubrir. Por ejemplo, si establece el número de iteraciones a 20 pero Amazon ML descubre que no se pueden encontrar patrones nuevos después de 15 iteraciones, detendrá la formación a 15.

En general, los conjuntos de datos con solo unas cuantas observaciones suelen requerir más iteraciones en los datos para obtener una mayor calidad del modelo. Los conjuntos de datos grandes suelen contener muchos puntos de datos similares, hecho que elimina la necesidad de un gran número de iteraciones. El impacto de la elección de más iteraciones en los datos es doble: el aprendizaje del modelo necesita más tiempo y tiene un costo mayor.

Tipo de mezcla para los datos de entrenamiento

En Amazon ML, debe mezclar sus datos de entrenamiento. La mezcla desordena los datos, de modo que el algoritmo SGD no detecta un tipo de datos por demasiadas observaciones consecutivas. Por ejemplo, si está entrenando un modelo de ML para predecir un tipo de producto y los datos de entrenamiento incluyen tipos de producto como películas, juguetes y videojuegos, si ordena los datos por la columna del tipo de producto antes de cargarlos, el algoritmo ve los datos alfabéticamente por tipo de producto. El algoritmo observa primero todos los datos de películas y el modelo de ML comienza a aprender patrones para películas. A continuación, cuando el modelo encuentra los datos de juguetes, cada actualización que hace el algoritmo ajustaría el modelo al tipo de producto de juguete, incluso si estas actualizaciones degradasen los patrones que se ajustan a las películas. Este cambio repentino del tipo de películas a juguetes puede producir un modelo que no aprenderá a predecir los tipos de productos con precisión.

Debe mezclar sus datos de entrenamiento incluso si selecciona la opción de división aleatoria al dividir la fuente de datos de entrada en partes de formación y evaluación. La estrategia de división aleatoria elige un subconjunto aleatorio de los datos para cada fuente de datos, pero no cambia el orden de las filas en la fuente de datos. Para obtener más información acerca de la división de los datos, consulte División de datos.

Al crear un modelo de ML mediante la consola, Amazon ML mezcla los datos con una técnica de mezcla seudoaleatoria de manera predeterminada. Independientemente de la cantidad de iteraciones establecidas, Amazon ML mezcla los datos solo una vez antes de entrenar el modelo de ML. Si mezcló los datos antes de proporcionarlos a Amazon ML y no desea que Amazon ML vuelva a mezclarlos de nuevo, puede establecer el valor de tipo de mezcla en none. Por ejemplo, si mezcló aleatoriamente los registros en su archivo .csv antes de cargarlo en Amazon S3, usó la función rand() en su consulta SQL de MySQL al crear su fuente de datos desde Amazon RDS o usó la función random() en su consulta SQL de Amazon Redshift al crear su fuente de datos de Amazon Redshift, configurar el tipo de mezcla en none no afectará la precisión predictiva de su modelo de aprendizaje automático. Mezclar los datos solo una vez reduce el tiempo de ejecución y el costo para la creación de un modelo de ML.

importante

Al crear un modelo de ML mediante la API de Amazon ML, Amazon ML no mezcla sus datos de forma predeterminada. Si utiliza la API en lugar de la consola para crear su modelo de ML, recomendamos encarecidamente que mezcle sus datos ajustando el parámetro sgd.shuffleType en auto.

Tipo y cantidad de regularización

El desempeño predictivo de modelos de ML complejos (los que tienen muchos atributos de entrada) se ve perjudicado cuando los datos contienen demasiados patrones. Como aumenta el número de patrones, aumenta también la probabilidad de que el modelo aprenda artefactos de datos involuntarios en lugar de patrones de datos reales. En este caso, el modelo rinde muy bien con los datos de entrenamiento pero no puede generalizar bien los datos nuevos. Este fenómeno se conoce como sobreajuste de los datos de aprendizaje.

La regularización ayuda a prevenir que los modelos lineales realicen un sobreajuste de los ejemplos de datos de entrenamiento penalizando los valores de peso extremos. La regularización L1 reduce el número de funciones utilizadas en el modelo y aumenta el peso de características que, de otro modo, tendrían a cero los pesos muy reducidos. La regularización L1 produce modelos dispersos y reduce la cantidad de ruido en el modelo. La regularización L2 produce en general valores de peso más pequeños, lo que estabiliza las ponderaciones cuando hay gran correlación entre las funciones. Puede controlar la cantidad de regularización L1 o L2 mediante el parámetro Regularization amount. Especificar un valor extremadamente grande de Regularization amount puede provocar que todas las funciones tengan un peso igual a cero.

La selección y el ajuste del valor de regularización óptimo es un tema candente en la investigación del aprendizaje automático. Probablemente se beneficiará de seleccionar una cantidad moderada de regularización L2, que es la opción predeterminada en la consola de Amazon ML. Los usuarios avanzados pueden elegir entre tres tipos de regularización (ninguna, L1, o L2) y de cantidad. Para obtener más información sobre la regularización, consulte Regularization (mathematics) (en inglés).

Parámetros de entrenamiento: tipos y valores predeterminados

En la siguiente tabla se muestran los parámetros de entrenamiento de Amazon ML, junto con los valores predeterminados y el rango admisible para cada uno de ellos.

Parámetro de entrenamiento

Tipo

Default Value (Valor predeterminado)

Descripción

maxMLModelSizeInBytes

Entero

100 000 000 bytes (100 MiB)

Rango admisible: desde 100 000 (100 KiB) hasta 2 147 483 648 (2 GiB)

En función de los datos de entrada, el tamaño del modelo podría afectar al desempeño.

sgd.maxPasses

Entero

10

Rango admisible: desde 1 hasta 100

sgd.shuffleType

Cadena

auto

Valores admisibles: auto o none

sgd.l1RegularizationAmount

Doble

0 (de forma predeterminada no se utiliza L1)

Rango admisible: desde 0 hasta MAX_DOUBLE

Se ha observado que los valores de L1 entre 1E-4 y 1E-8 producen buenos resultados. Los valores más grandes pueden producir modelos que no son muy útiles.

No puede establecer tanto L1 como L2. Debe elegir uno o el otro.

sgd.l2RegularizationAmount

Doble

1E-6 (de forma predeterminada, se utiliza L2 con este nivel de regularización)

Rango admisible: desde 0 hasta MAX_DOUBLE

Se ha observado que los valores de L2 entre 1E-2 y 1E-6 producen buenos resultados. Los valores más grandes pueden producir modelos que no son muy útiles.

No puede establecer tanto L1 como L2. Debe elegir uno o el otro.