¿Con qué biblioteca de aprendizaje automático debo experimentar entre SparkML, Microsoft Azure ML y AWS ML?

Tanto scikit-learn como TensorFlow son en realidad bibliotecas de alto nivel.

En scikit-learn , puede implementar canalizaciones de aprendizaje automático con 5–10 líneas de código que requerirían cientos de líneas si las implementara desde cero. En mi experiencia, es una de las bibliotecas de aprendizaje automático más fáciles de trabajar.

TensorFlow podría ser un poco más de nivel bajo, pero si desea una versión de nivel superior de TensorFlow, puede envolver Keras sobre él. TensorFlow es ideal para el aprendizaje profundo, mientras que scikit-learn se destaca en el aprendizaje automático tradicional, por lo que los dos se complementan muy bien.

Spark ML es una envoltura de canalización sobre MLlib que es similar en términos de complejidad a las dos bibliotecas mencionadas anteriormente. La principal diferencia es que se ejecuta en Spark, lo que le permite realizar un procesamiento paralelo en una escala masiva. Eso no es realmente necesario para fines de aprendizaje. Hacer girar un clúster de Spark no sería el primer punto en mi agenda al aprender sobre el aprendizaje automático.

Azure Machine Learning es una herramienta excelente en muchos sentidos, pero también es lenta. Cada vez que ejecuta un fragmento de código, lleva segundos, si no minutos. Eso es realmente malo cuando estás iterando. Para comprender correctamente el aprendizaje automático, es importante iterar con frecuencia. Utilizo mucho Azure ML, pero principalmente para la producción y el mantenimiento de modelos. Por cierto, viene con un costo.

No tengo experiencia con Amazon Machine Learning, pero la última vez que lo leí, el consenso general fue que no era tan bueno como Azure.

En general, le recomendaría que profundice en los detalles de nivel inferior del aprendizaje automático antes de recurrir a bibliotecas y API de alto nivel, lo que me lleva a mi punto principal:

Uno no simplemente se relaja en ML.

El aprendizaje automático es inherentemente difícil. Si cree que puede conectar sus datos a API de alto nivel y obtener buenos resultados, se está engañando a sí mismo. Es muy importante comprender los conceptos teóricos de lo que estás haciendo.

Con eso en mente, mi consejo es este:

  1. Escriba al menos un algoritmo de aprendizaje automático desde cero. No tiene que ser más complejo que la regresión lineal con descenso de gradiente.
  2. Experimenta con scikit-learn. Es rápido, fácil y gratis. Le permite iterar con frecuencia y comprender lo que está haciendo.
  3. Después de tener una buena comprensión de los conceptos básicos, expanda a otras bibliotecas y API.

¿Has recorrido algunos de los ejemplos en el sitio web de TensorFlow? Yo diría que TensorFlow no es de bajo nivel o difícil. Es tan difícil como lo haces. Si desea comenzar a jugar con el aprendizaje automático, mi recomendación es crear un cuaderno jupyter o usar uno alojado que le permita examinar línea por línea cómo y qué está haciendo el código. Hay muchos repositorios de código geniales para comenzar la ingeniería inversa de lo que está haciendo el código usando las notebooks jupyter.

Mi favorito es obviamente el famoso MNIST. Hacen un gran trabajo al mostrarle lo que puede hacer con un modelo simple, luego le muestran cómo puede obtener mejores resultados usando un modelo diferente, solo con un poco de cambio en el código.

  1. MNIST para principiantes que lo guía a través de 1 forma de tratar de clasificar dígitos escritos a mano utilizando un modelo lineal.
  2. MNIST for Experts no es tan malo como parece: utiliza una CNN para hacer lo mismo y obtener mejores resultados.

No consideraría TensorFlow como una biblioteca de bajo nivel, especialmente con una capa de abstracción con tf.contrib.learn que simplifica toda la codificación que necesita.

Desafortunadamente, si va a hacer un aprendizaje automático en el que está creando una nueva aplicación que requiere capacitación, pruebas y validación, debe tener una base bastante sólida en ciencia de datos.

Puede intentar usar la plataforma MLJAR para construir modelos de Machine Learning, lo que hace que el proceso de construcción y creación de prototipos de modelos de machine learning sea muy fácil. Hay muchos algoritmos disponibles de libs como: sklearn, xgboost, keras, lightGBM. Hay una interfaz de usuario de navegador web y API de Python. Después de entrenar el modelo en MLJAR, simplemente puede descargarlo y usarlo sin conexión o puede usar el modelo a través de la API. Puedes ver videos con ejemplos de análisis

More Interesting

¿Cuál es el mejor modelo de predicción de la siguiente palabra en R?

Como dicen, cada función posible se puede modelar con una percepción de 2 capas, en teoría, ¿se puede modelar una función del universo en una red neuronal con 2 o 3 capas de profundidad?

¿Qué recursos debo usar para comenzar a aprender Machine Learning durante el verano con mi educación actual?

¿Por qué se usa Python para el aprendizaje profundo si es tan lento?

Visión por computadora: ¿cómo sé qué vector de características en un vector combinado es más confiable?

¿Qué tecnologías de IA están disponibles para el reconocimiento del usuario por comportamiento (interacción con el sistema), estilo de escritura, etc. y cómo procedo a hacer una?

Cómo construir un generador de lenguaje natural

¿Cuáles son las ideas principales detrás de los principales algoritmos de clasificación de búsqueda?

En una explicación intuitiva, ¿cómo puedo calcular formas primarias y duales en SVM?

¿Cuál es la mejor manera de encontrar el conjunto de patrones similares en datos de series de tiempo?

¿Es posible que, en el futuro, los países sean manejados por una súper computadora que calcule el mejor resultado de una decisión política?

¿Cuáles son los beneficios y desafíos de hacer una investigación de aprendizaje profundo en la academia, en comparación con la industria?

¿Puedo usar TensorFlow sin tener experiencia con el aprendizaje automático?

¿Por qué el impulso ayuda a entrenar una red neuronal?

¿Puede la operación de agrupamiento aumentar el número de neuronas en el aprendizaje profundo?