Elegir un algoritmo - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Elegir un algoritmo

El machine learning puede ayudarlo con tareas empíricas que requieran algún tipo de inferencia inductiva. Esta tarea implica la inducción, ya que utiliza datos para entrenar algoritmos con el fin de hacer inferencias generalizables. Esto significa que los algoritmos pueden realizar predicciones, o tomar decisiones, estadísticamente fiables, o completar otras tareas cuando se aplican a datos nuevos que no se utilizaron para entrenarlos.

Para ayudarlo a seleccionar el mejor algoritmo para su tarea, clasificamos estas tareas en varios niveles de abstracción. En el nivel más alto de abstracción, el machine learning intenta encontrar patrones o relaciones entre características o elementos menos estructurados, como el texto de un conjunto de datos. Las técnicas de reconocimiento de patrones se pueden clasificar en distintos paradigmas de machine learning, cada uno de los cuales aborda tipos de problemas específicos. Actualmente, existen tres paradigmas básicos de machine learning que se utilizan para abordar varios tipos de problemas:

Los tipos de problemas que puede abordar cada paradigma de aprendizaje se identifican teniendo en cuenta las inferencias (o predicciones, decisiones u otras tareas) que desea realizar a partir del tipo de datos que tiene o podría recopilar. Los paradigmas de machine learning utilizan métodos algorítmicos para abordar los distintos tipos de problemas. Los algoritmos proporcionan recetas para resolver estos problemas.

Sin embargo, muchos algoritmos, como las redes neuronales, se pueden implementar con diferentes paradigmas de aprendizaje y en diferentes tipos de problemas. Además, distintos algoritmos pueden abordar un tipo de problema específico. Algunos algoritmos son de aplicación más general, mientras que otros son bastante específicos para determinados tipos de objetivos y datos. Por lo tanto, el mapeo entre los algoritmos de aprendizaje automático y los tipos de problemas es many-to-many. Además, hay varias opciones de implementación disponibles para los algoritmos.

Las siguientes secciones proporcionan orientación sobre las opciones de implementación, los paradigmas del machine learning y los algoritmos adecuados para los diferentes tipos de problemas.

Seleccionar una implementación de algoritmo

Después de elegir un algoritmo, debe decidir qué implementación desea usar. Amazon SageMaker admite tres opciones de implementación que requieren niveles de esfuerzo cada vez mayores.

  • Los modelos previamente entrenados requieren el menor esfuerzo y están listos para implementarse o para ajustarse e implementarse mediante el uso. SageMaker JumpStart

  • Los algoritmos integrados requieren más esfuerzo y escalabilidad si el conjunto de datos es grande, y hacen falta muchos recursos para entrenar e implementar el modelo.

  • Si no hay una solución integrada que funcione, intente desarrollar una que utilice imágenes prediseñadas para los marcos de aprendizaje automático y profundo para los marcos compatibles, como Scikit-Learn,,, o Chainer. TensorFlow PyTorch MXNet

  • Si necesitas ejecutar paquetes personalizados o utilizar algún código que no forme parte de un marco compatible o que no esté disponible a través de él PyPi, tendrás que crear tu propia imagen de Docker personalizada que esté configurada para instalar los paquetes o el software necesarios. La imagen personalizada también debe enviarse a un repositorio en línea, como el Amazon Elastic Container Registry.

Guía de implementación de algoritmos

Implementación Requiere código Algoritmos precodificados Compatibilidad con paquetes de terceros Compatibilidad con código personalizado Nivel de esfuerzo
Integrada No No No Baja
Scikit-learn PyPi solo Medio
Spark ML PyPi solo Medio
XGBoost(de código abierto) PyPi únicamente Medio
TensorFlow No PyPi solo Medio-alto
PyTorch No PyPi solo Medio-alto
MXNet No PyPi solo Medio-alto
Chainer No PyPi solo Medio-alto
Imagen personalizada No Sí, desde cualquier origen Alta

Uso de un algoritmo integrado

Al elegir un algoritmo para su tipo de problema y datos, la opción más sencilla es utilizar uno de los algoritmos integrados SageMaker de Amazon. Estos algoritmos integrados ofrecen dos ventajas principales.

  • Los algoritmos integrados no requieren codificación para empezar a ejecutar los experimentos. Las únicas entradas que debe proporcionar son los datos, los hiperparámetros y los recursos de computación. Esto le permite ejecutar experimentos con mayor rapidez y con menos gastos generales para el seguimiento de los resultados y los cambios de código.

  • Los algoritmos integrados permiten la paralelización en varias instancias informáticas y son GPU compatibles de forma inmediata con todos los algoritmos aplicables (es posible que algunos algoritmos no estén incluidos debido a limitaciones inherentes). Si tiene muchos datos con los que entrenar a su modelo, la mayoría de los algoritmos integrados se pueden escalar fácilmente para satisfacer la demanda. Incluso si ya tiene un modelo previamente entrenado, puede que le resulte más fácil usar su corolario SageMaker e introducir los hiperparámetros que ya conoce que transferirlo mediante el modo script en un marco compatible.

Para obtener más información sobre los algoritmos integrados que proporciona, consulte. SageMaker Usa algoritmos SageMaker integrados o modelos previamente entrenados de Amazon

Para obtener información importante sobre las rutas de registro de docker, los formatos de datos, los tipos de EC2 instancias recomendados y los CloudWatch registros comunes a todos los algoritmos integrados que proporciona SageMaker, consulte. Información común sobre los algoritmos integrados

Uso del modo script en un marco compatible

Si el algoritmo que quieres usar para tu modelo no es compatible con una opción integrada y te sientes cómodo codificando tu propia solución, entonces deberías considerar usar un marco SageMaker compatible con Amazon. Esto se denomina “modo script” porque el código personalizado (script) se escribe en un archivo de texto con una extensión .py. Como se indica en la tabla anterior, SageMaker es compatible con la mayoría de los marcos de aprendizaje automático más populares. Estos marcos vienen precargados con el marco correspondiente y algunos paquetes de Python adicionales, como Pandas y NumPy, para que pueda escribir su propio código para entrenar un algoritmo. Estos marcos también le permiten instalar cualquier paquete de Python alojado PyPi al incluir un archivo requirements.txt con su código de entrenamiento o incluir sus propios directorios de códigos. R también se admite de forma nativa en los núcleos de los SageMaker portátiles. Algunos marcos, como scikit-learn y Spark ML, tienen algoritmos precodificados que puedes usar fácilmente, mientras que otros marcos, como scikit-learn TensorFlow y Spark ML, PyTorch pueden requerir que implementes el algoritmo tú mismo. La única limitación al utilizar una imagen de marco compatible es que no se puede importar ningún paquete de software que no esté alojado en la imagen del marco PyPi o que no esté ya incluido en ella.

Para obtener más información sobre los marcos compatibles SageMaker, consulteMarcos y lenguajes de machine learning.

Uso de una imagen de Docker personalizada

Los algoritmos integrados y los marcos compatibles SageMaker de Amazon deberían cubrir la mayoría de los casos de uso, pero hay ocasiones en las que es posible que necesites usar un algoritmo de un paquete que no esté incluido en ninguno de los marcos compatibles. También es posible que hayas elegido un modelo previamente entrenado o conservado en algún lugar para implementarlo. SageMaker utiliza imágenes de Docker para alojar el entrenamiento y el servicio de todos los modelos, por lo que puede proporcionar su propia imagen de Docker personalizada si el paquete o el software que necesita no está incluido en un marco compatible. Puede ser su propio paquete de Python o un algoritmo codificado en un lenguaje como Stan o Julia. Para estas imágenes, también debe configurar correctamente el entrenamiento del algoritmo y el suministro del modelo en su Dockerfile. Esto requiere un conocimiento intermedio de Docker y no se recomienda a menos que se sienta cómodo diseñando su propio algoritmo de machine learning. La imagen de Docker debe cargarse en un repositorio en línea, como Amazon Elastic Container Registry (ECR), antes de poder entrenar y servir el modelo correctamente.

Para obtener más información sobre las imágenes de Docker personalizadas SageMaker, consulte. Use contenedores Docker para entrenar e implementar modelos

Tipos de problemas para los paradigmas básicos de machine learning

En las tres secciones siguientes se describen los principales tipos de problemas abordados por los tres paradigmas básicos del machine learning. Para obtener una lista de los algoritmos integrados que SageMaker permiten abordar estos tipos de problemas, consulteUsa algoritmos SageMaker integrados o modelos previamente entrenados de Amazon.

Aprendizaje supervisado

Si su conjunto de datos consta de características o atributos (entradas) que contienen valores objetivo (salidas), tiene un problema de aprendizaje supervisado. Si sus valores objetivo son categóricos (matemáticamente discretos), tiene un problema de clasificación. Distinguir la clasificación binaria de la multiclase es un procedimiento estándar.

  • La clasificación binaria es un tipo de aprendizaje supervisado que asigna un individuo a una de dos clases predefinidas y mutuamente excluyentes con base en los atributos del individuo. Se considera supervisado porque los modelos se entrenan utilizando ejemplos en los que los atributos se proporcionan con objetos etiquetados correctamente. Un ejemplo de clasificación binaria es un diagnóstico médico de si un individuo tiene una enfermedad o no en función de los resultados de las pruebas de diagnóstico.

  • La clasificación multiclase es un tipo de aprendizaje supervisado que asigna un individuo a una de varias clases en función de sus atributos. Se considera supervisado porque los modelos se entrenan utilizando ejemplos en los que los atributos se proporcionan con objetos etiquetados correctamente. Un ejemplo es la predicción del tema más relevante para un documento de texto. La clasificación puede indicar que el documento habla de religión, política, finanzas o cualquier otra clase de tema predefinido.

Si los valores objetivo que intenta predecir son matemáticamente continuos, se trata de un problema de regresión. La regresión estima los valores de una variable objetivo dependiente en función de una o más variables o atributos que están correlacionados con ella. Un ejemplo es la predicción de los precios de la vivienda mediante características como el número de baños y dormitorios o los metros cuadrados de la casa y el jardín. El análisis de regresión puede crear un modelo que tome una o más de estas características como entrada y prediga el precio de la casa.

Para obtener más información sobre los algoritmos de aprendizaje supervisado integrados que proporciona SageMaker, consulteAprendizaje supervisado.

Aprendizaje no supervisado

Si su conjunto de datos consta de características o atributos (entradas) que no contienen etiquetas o valores objetivo (salidas), tiene un problema de aprendizaje no supervisado. En este tipo de problema, la salida debe predecirse en función del patrón descubierto en los datos de entrada. El objetivo de los problemas de aprendizaje no supervisado es descubrir patrones, como las agrupaciones, dentro de los datos. Existe una gran variedad de tareas o tipos de problemas en los que se puede aplicar el aprendizaje no supervisado. Los análisis de componentes principales y clústeres son dos de los principales métodos que se utilizan habitualmente para preprocesar los datos. Esta es una breve lista de los tipos de problemas que se pueden abordar mediante el aprendizaje no supervisado:

  • La reducción de dimensiones suele formar parte del paso de exploración de datos empleado para determinar las características más relevantes que se utilizarán en la construcción del modelo. La idea es transformar los datos de un espacio de alta dimensión y poco poblado en un espacio de baja dimensión que conserve las propiedades más importantes de los datos originales. Esto alivia el problema de la dimensionalidad con los datos de alta dimensión y poco poblados, cuyo análisis estadístico es complejo. También se puede utilizar para comprender los datos y reducir su dimensión: de una dimensión alta a una dimensión inferior que se pueda visualizar.

  • El análisis de clústeres es una clase de técnicas que se utilizan para clasificar objetos o casos en grupos denominados clústeres. Si intenta buscar agrupaciones discretas dentro de datos, en las que los miembros de un grupo son lo más parecido posible que otro y lo más diferente posible de los miembros de otros grupos. Usted define las características o los atributos que desea que utilice el algoritmo para determinar la similitud, selecciona una función de distancia para medir la similitud y especifica el número de clústeres que se utilizarán en el análisis.

  • La detección de anomalías consiste en la identificación de elementos, eventos u observaciones poco frecuentes en un conjunto de datos, que suscitan sospechas porque difieren considerablemente del resto de los datos. La identificación de elementos anómalos se puede utilizar, por ejemplo, para detectar fraudes bancarios o errores médicos. Las anomalías también se denominan valores atípicos, novedades, ruido, desviaciones y excepciones.

  • La estimación de la densidad es la construcción de estimaciones de funciones de densidad probabilísticas subyacentes no observables con base en datos observados. Un uso natural de las estimaciones de densidad es la exploración de datos. Las estimaciones de densidad pueden detectar características como la asimetría y la multimodalidad en los datos. La forma más básica de estimar la densidad es un histograma reescalado.

SageMaker proporciona varios algoritmos de aprendizaje automático integrados que puede utilizar para estas tareas de aprendizaje no supervisadas. Para obtener más información sobre los algoritmos no supervisados integrados que proporciona SageMaker, consulte. Aprendizaje no supervisado

Aprendizaje por refuerzo

El aprendizaje por refuerzo es un tipo de aprendizaje que se basa en la interacción con el entorno. Este tipo de aprendizaje lo utiliza un agente que debe aprender el comportamiento a través de trial-and-error interacciones con un entorno dinámico en el que el objetivo es maximizar las recompensas a largo plazo que el agente recibe como resultado de sus acciones. Las recompensas se maximizan cuando se intercambia la exploración de acciones que tienen recompensas inciertas con la explotación de acciones que tienen recompensas conocidas.

Para obtener más información sobre SageMaker los marcos, los conjuntos de herramientas y los entornos para el aprendizaje por refuerzo, consulteUsa el aprendizaje por refuerzo con Amazon SageMaker.