ML.NET es una biblioteca de aprendizaje automático de software gratuito para los lenguajes de programación C # y F # . [4] [5] [6] También admite modelos de Python cuando se usa junto con NimbusML. La versión preliminar de ML.NET incluyó transformaciones para la ingeniería de funciones, como la creación de n-gramas , y estudiantes para manejar la clasificación binaria, la clasificación de clases múltiples y las tareas de regresión. [7] Desde entonces, se han agregado tareas de aprendizaje automático adicionales, como sistemas de recomendación y detección de anomalías, y en versiones futuras se incluirán otros enfoques como el aprendizaje profundo. [8] [9]
Autor (es) original (es) | Microsoft |
---|---|
Desarrollador (es) | Fundación .NET |
Versión inicial | 7 de mayo de 2018 [1] |
Lanzamiento estable | 1.5.5 / 3 de marzo de 2021 |
Repositorio | github |
Escrito en | C # y C ++ |
Sistema operativo | Linux , macOS , Windows [2] |
Plataforma | .NET Core , .NET Framework |
Tipo | Biblioteca de aprendizaje automático |
Licencia | Licencia MIT [3] |
Sitio web | punto |
Aprendizaje automático
ML.NET ofrece capacidades analíticas y de predicción de Machine Learning basadas en modelos a los desarrolladores de .NET existentes. El marco se basa en .NET Core y .NET Standard heredando la capacidad de ejecutar multiplataforma en Linux , Windows y macOS . Aunque el marco ML.NET es nuevo, sus orígenes comenzaron en 2002 como un proyecto de investigación de Microsoft llamado TMSN (búsqueda y navegación de minería de texto) para su uso interno dentro de los productos de Microsoft. Más tarde se le cambió el nombre a TLC (el código de aprendizaje) alrededor de 2011. ML.NET se derivó de la biblioteca TLC y ha superado en gran medida a su padre, dice el Dr. James McCaffrey, Microsoft Research. [10]
Los desarrolladores pueden entrenar un modelo de aprendizaje automático o reutilizar un modelo existente por un tercero y ejecutarlo en cualquier entorno sin conexión. Esto significa que los desarrolladores no necesitan tener experiencia en ciencia de datos para usar el marco. La compatibilidad con el formato de modelo de aprendizaje profundo de Open Neural Network Exchange ( ONNX ) de código abierto se introdujo a partir de la compilación 0.3 en ML.NET. El lanzamiento incluyó otras mejoras notables como Factorization Machines, LightGBM , Ensembles, LightLDA transform y OVA. [11] La integración ML.NET de TensorFlow está habilitada desde la versión 0.5. Se agregó soporte para aplicaciones x86 y x64 para construir 0.7, incluidas capacidades de recomendación mejoradas con Matrix Factorization. [12] Se ha puesto a disposición una hoja de ruta completa de las funciones planificadas en el repositorio oficial de GitHub. [13]
La primera versión 1.0 estable del marco se anunció en Build (conferencia de desarrolladores) 2019. Incluyó la adición de una herramienta Model Builder y capacidades de AutoML (Automated Machine Learning). [14] La compilación 1.3.1 introdujo una vista previa del entrenamiento de redes neuronales profundas utilizando enlaces C # [15] para Tensorflow y un cargador de base de datos que permite el entrenamiento de modelos en bases de datos. La vista previa 1.4.0 agregó puntuación ML.NET en procesadores ARM y entrenamiento de redes neuronales profundas con GPU para Windows y Linux. [dieciséis]
Actuación
El artículo de Microsoft sobre aprendizaje automático con ML.NET demostró que es capaz de entrenar modelos de análisis de sentimientos utilizando grandes conjuntos de datos mientras logra una alta precisión. Sus resultados mostraron una precisión del 95% en el conjunto de datos de revisión de 9 GB de Amazon. [17]
Constructor de modelos
ML.NET CLI es una interfaz de línea de comandos que utiliza ML.NET AutoML para realizar el entrenamiento del modelo y elegir el mejor algoritmo para los datos. La vista previa de ML.NET Model Builder [18] es una extensión para Visual Studio que usa ML.NET CLI y ML.NET AutoML para generar el mejor modelo ML.NET usando una GUI . [14]
Explicabilidad del modelo
La imparcialidad y la explicabilidad de la IA ha sido un área de debate para los especialistas en ética de la IA en los últimos años. [19] Un problema importante para las aplicaciones de aprendizaje automático es el efecto de caja negra donde los usuarios finales y los desarrolladores de una aplicación no están seguros de cómo un algoritmo tomó una decisión o si el conjunto de datos contiene sesgos. [20] La compilación 0.8 incluía API de explicabilidad del modelo que se habían utilizado internamente en Microsoft. Agregó la capacidad de comprender la importancia de las características de los modelos con la adición de 'Importancia general de las características' y 'Modelos aditivos generalizados'. [21]
Cuando hay varias variables que contribuyen al puntaje general, es posible ver un desglose de cada variable y qué características tuvieron el mayor impacto en el puntaje final. La documentación oficial demuestra que las métricas de puntuación se pueden generar con fines de depuración. Durante el entrenamiento y la depuración de un modelo, los desarrolladores pueden obtener una vista previa e inspeccionar los datos filtrados en vivo. Esto es posible utilizando las herramientas de Visual Studio DataView. [22]
Infer.NET
Microsoft Research anunció que el popular marco de aprendizaje automático basado en modelos Infer.NET que se utiliza para la investigación en instituciones académicas desde 2008 se ha lanzado de código abierto y ahora es parte del marco ML.NET. [23] El marco Infer.NET utiliza programación probabilística para describir modelos probabilísticos que tiene la ventaja adicional de interpretabilidad. Desde entonces, el espacio de nombres Infer.NET se ha cambiado a Microsoft.ML.Probabilistic de acuerdo con los espacios de nombres ML.NET. [24]
Soporte NimbusML Python
Microsoft reconoció que el lenguaje de programación Python es popular entre los científicos de datos, por lo que ha introducido NimbusML, los enlaces experimentales de Python para ML.NET. Esto permite a los usuarios entrenar y usar modelos de aprendizaje automático en Python. Se hizo de código abierto similar a Infer.NET. [12]
Aprendizaje automático en el navegador
ML.NET permite a los usuarios exportar modelos entrenados al formato Open Neural Network Exchange (ONNX). [25] Esto establece una oportunidad para usar modelos en diferentes entornos que no usan ML.NET. Sería posible ejecutar estos modelos en el lado del cliente de un navegador usando ONNX.js, un marco del lado del cliente de JavaScript para modelos de aprendizaje profundo creados en el formato Onnx. [26]
Curso de aprendizaje automático de la escuela de inteligencia artificial
Junto con el lanzamiento de la vista previa de ML.NET, Microsoft lanzó tutoriales y cursos de IA gratuitos para ayudar a los desarrolladores a comprender las técnicas necesarias para trabajar con el marco. [27] [28] [29]
Ver también
- Scikit-aprender
- Accord.NET
- NimbusML
- LightGBM
- TensorFlow
- Kit de herramientas cognitivas de Microsoft
- Lista de software de análisis numérico
- Lista de bibliotecas numéricas para .NET framework
Referencias
- ↑ Ankit Asthana (7 de mayo de 2017). "Presentación de ML.NET: Marco de aprendizaje automático de código abierto, probado y multiplataforma" . blogs.msdn.microsoft.com . Consultado el 10 de mayo de 2018 .
- ^ "ML.NET: Machine Learning hecho para .NET" . Microsoft . Consultado el 11 de mayo de 2018 .
- ^ en el maestro · DotNet / MachineLearning
- ^ David Ramel (8 de mayo de 2018). "El código abierto, multiplataforma ML.NET simplifica el aprendizaje automático - Revista Visual Studio" . Revista Visual Studio . Consultado el 10 de mayo de 2018 .
- ^ Kareem Anderson (9 de mayo de 2017). "Microsoft estrena el marco de aprendizaje automático multiplataforma ML.NET" . En MSFT . Consultado el 10 de mayo de 2018 .
- ^ Ankit Asthana (7 de agosto de 2018). "Anuncio de ML.NET 0.4" . blogs.msdn.microsoft.com . Consultado el 8 de agosto de 2018 .
- ^ Gal Oshri (6 de mayo de 2018). "Notas de la versión de ML.NET 0.1" . GitHub . Consultado el 10 de mayo de 2018 .
- ^ Tiwari, Aditya (8 de mayo de 2018). "Microsoft lanza ML.NET Open Source Machine Learning Framework" . Fossbytes . Consultado el 10 de mayo de 2018 .
Con el tiempo, permitirá otras tareas de aprendizaje automático como la detección de anomalías, el sistema de recomendación y otros enfoques como el aprendizaje profundo utilizando los beneficios de las bibliotecas adicionales.
- ^ "Tareas de aprendizaje automático en ML.NET" . Microsoft . Consultado el 26 de diciembre de 2018 .
- ^ James McCaffrey (19 de diciembre de 2018). "ML.NET: el marco de aprendizaje automático para desarrolladores .NET" . Número especial de MSDN Magazine Connect () 2018 . Consultado el 9 de enero de 2019 .
Aunque la biblioteca ML.NET es nueva, sus orígenes se remontan a muchos años atrás. Poco después de la introducción de Microsoft .NET Framework en 2002, Microsoft Research inició un proyecto llamado TMSN ("búsqueda y navegación de minería de texto") para permitir a los desarrolladores de software incluir código ML en productos y tecnologías de Microsoft. El proyecto tuvo mucho éxito y, a lo largo de los años, creció en tamaño y uso internamente en Microsoft. Alrededor de 2011, la biblioteca pasó a llamarse TLC ("el código de aprendizaje"). TLC se usa ampliamente en Microsoft y actualmente se encuentra en la versión 3.10. La biblioteca ML.NET es un descendiente de TLC, con características específicas de Microsoft eliminadas. He usado ambas bibliotecas y, en muchos sentidos, el hijo ML.NET ha superado a su padre.
- ^ "Lanzamiento de Microsoft ML.NET v0.3" . Github . 2018-07-03 . Consultado el 3 de julio de 2018 .
- ^ a b "Anuncio de ML.NET 0.7 (Machine Learning .NET)" . Microsoft . 2018-11-08 . Consultado el 14 de noviembre de 2018 .
- ^ "La hoja de ruta de ML.NET" . Github . 2018-05-09 . Consultado el 30 de junio de 2018 .
- ^ a b "Anuncio de ML.NET 1.0" . Microsoft . 2019-05-06 . Consultado el 7 de mayo de 2019 .
- ^ "SciSharp / TensorFlow.NET" . PILA SciSharp. 21 de febrero de 2020.
- ^ "ML.NET 1.4.0-preview2" . Github . 2019-10-09 . Consultado el 9 de octubre de 2019 .
- ^ Ahmed, Zeeshan; Amizadeh, Saeed; Bilenko, Mikhail; Carr, Rogan; Chin, Wei-Sheng; Dekel, Yael; Dupre, Xavier; Eksarevskiy, Vadim; Erhardt, Eric; Eseanu, Costin; Filipi, Senja; Finley, Tom; Goswami, Abhishek; Hoover, Monte; Inglis, Scott; Interlandi, Matteo; Katzenberger, Shon; Kazmi, Najeeb; Krivosheev, Gleb; Luferenko, Pete; Matantsev, Ivan; Matusevych, Sergiy; Moradi, Shahab; Nazirov, Gani; Ormont, Justin; Oshri, Gal; Pagnoni, Artidoro; Parmar, Jignesh; Roy, Prabhat; et al. (15 de mayo de 2019). "arXiv 1905.05715: Aprendizaje automático en Microsoft con ML .NET". Microsoft y Yandex . arXiv : 1905.05715 . doi : 10.1145 / 3292500.3330667 . S2CID 53380995 .
- ^ "dotnet / machinelearning-modelbuilder" . Plataforma .NET. 17 de febrero de 2020.
- ^ "La inteligencia artificial puede reforzar el sesgo, los gigantes de la nube anuncian herramientas para la equidad de la IA" . Forbes . 2018-09-24 . Consultado el 5 de diciembre de 2018 .
- ^ "Qué significa abrir la caja negra de la IA" . PwC . 2018-05-15 . Consultado el 5 de diciembre de 2018 .
- ^ Hastie, Trevor J. (1 de noviembre de 2017). "Modelos aditivos generalizados". Modelos estadísticos en S . págs. 249-307. doi : 10.1201 / 9780203738535-7 . ISBN 9780203738535.
- ^ "Anuncio de ML.NET 0.8 - Aprendizaje automático para .NET" . Microsoft . 2018-12-04 . Consultado el 5 de diciembre de 2018 .
- ^ "Código AI Infer.NET de fuentes abiertas de Microsoft justo a tiempo para el fin de semana" . El registro . 2018-10-05 . Consultado el 31 de octubre de 2018 .
- ^ "Microsoft open sources Infer.NET, su popular marco de aprendizaje automático basado en modelos" . Packt . 2018-10-08 . Consultado el 31 de octubre de 2018 .
- ^ "ML.NET - Exportar modelos de Machine Learning.Net a formato ONNX" . El Bruno . 2018-07-11 . Consultado el 9 de enero de 2019 .
- ^ "ONNX.js: modelos universales de aprendizaje profundo en el navegador" . Will Badr . 2019-01-08 . Consultado el 9 de enero de 2019 .
- ^ "Escuela de IA" . Microsoft AI . 2018-05-07 . Consultado el 29 de junio de 2018 .
- ^ "Guía ML.NET" . Microsoft . 2018-05-07 . Consultado el 29 de junio de 2018 .
- ^ "Guía del usuario de Infer.NET" . Infer.NET . 2018-10-05 . Consultado el 31 de octubre de 2018 .
Otras lecturas
- Capellman, Jarred (2020). Aprendizaje automático práctico con ML.NET: Introducción a Microsoft ML.NET para implementar algoritmos populares de aprendizaje automático en C # . Packt Publishing. ISBN 978-1789801781.
- Mukherjee, Sudipta (2020). ML.NET Revelado: Herramientas simples para aplicar el aprendizaje automático a sus aplicaciones . Presione. ISBN 978-1484265420.
enlaces externos
- Repositorio de GitHub : machinelearning en GitHub
- Repositorio de GitHub : NimbusML en GitHub