Articulo de referencia

ML.NET

ML.NET es una biblioteca de aprendizaje automático de software libre para los lenguajes de programación C# y F# . [4] [5] [6] También admite modelos Python cuando se utiliza jun...

ML.NET es una biblioteca de aprendizaje automático de software libre para los lenguajes de programación C# y F# . [4] [5] [6] También admite modelos Python cuando se utiliza junto con NimbusML. La versión preliminar de ML.NET incluía transformaciones para la ingeniería de características , como la creación de n-gramas , y aprendices para manejar tareas de clasificación binaria, clasificación multiclase y regresión. [7] Desde entonces, se han agregado tareas de aprendizaje automático adicionales, como detección de anomalías y sistemas de recomendación, y se incluirán otros enfoques, como el aprendizaje profundo, en versiones futuras. [8] [9]

Aprendizaje automático

ML.NET ofrece capacidades de predicción y análisis de aprendizaje automático basadas en modelos a los desarrolladores de .NET existentes. El marco se basa en .NET Core y .NET Standard, heredando la capacidad de ejecutarse en plataformas cruzadas en Linux , Windows y macOS . Aunque el marco ML.NET es nuevo, sus orígenes comenzaron en 2002 como un proyecto de Microsoft Research llamado TMSN ( búsqueda y navegación de minería de texto ) para 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 de 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 código abierto Open Neural Network Exchange ( ONNX ) se introdujo a partir de la compilación 0.3 en ML.NET. La versión incluyó otras mejoras notables como Factorization Machines, LightGBM , Ensembles, LightLDA transform y OVA. [11] La integración de TensorFlow en ML.NET está habilitada a partir de la versión 0.5. Se agregó compatibilidad con aplicaciones x86 y x64 a la compilación 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 características planificadas en el repositorio oficial de GitHub. [13]

La primera versión estable 1.0 del marco se anunció en Build (conferencia de desarrolladores) 2019. Incluía la incorporación de una herramienta Model Builder y capacidades de AutoML (aprendizaje automático automatizado). [14] Build 1.3.1 introdujo una vista previa del entrenamiento de redes neuronales profundas mediante enlaces de C# [15] para Tensorflow y un cargador de bases 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. [16]

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 y logrando una alta precisión. Sus resultados mostraron una precisión del 95 % en el conjunto de datos de reseñas de 9 GB de Amazon. [17]

Constructor de modelos

La CLI de ML.NET es una interfaz de línea de comandos que utiliza ML.NET AutoML para realizar el entrenamiento de modelos y elegir el mejor algoritmo para los datos. La versión preliminar de ML.NET Model Builder [18] es una extensión para Visual Studio que utiliza la CLI de ML.NET y ML.NET AutoML para generar el mejor modelo de ML.NET mediante una interfaz gráfica de usuario . [14]

Explicabilidad del modelo

La imparcialidad y la explicabilidad de la IA han 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, en el que los usuarios finales y los desarrolladores de una aplicación no están seguros de cómo un algoritmo llegó a una decisión o si el conjunto de datos contiene sesgos. [20] La versión 0.8 incluyó API de explicabilidad de modelos que se habían utilizado internamente en Microsoft. Añadió la capacidad de comprender la importancia de las características de los modelos con la incorporación de "Importancia general de las características" y "Modelos aditivos generalizados". [21]

Cuando hay varias variables que contribuyen a la puntuación general, es posible ver un desglose de cada variable y qué características tuvieron el mayor impacto en la puntuación final. La documentación oficial demuestra que las métricas de puntuación se pueden generar para 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 mediante las herramientas DataView de Visual Studio . [22]

Inferir.NET

Microsoft Research anunció que el popular marco de aprendizaje automático basado en modelos Infer.NET, utilizado para la investigación en instituciones académicas desde 2008, se ha lanzado como 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, lo que tiene la ventaja adicional de la interpretabilidad. El espacio de nombres Infer.NET se ha cambiado desde entonces a Microsoft.ML.Probabilistic, de manera coherente con los espacios de nombres ML.NET. [24]

Compatibilidad con Python de NimbusML

Microsoft reconoció que el lenguaje de programación Python es popular entre los científicos de datos, por lo que presentó 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 convirtió en 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 ONNX ( Open Neural Network Exchange ). [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 de trabajo del lado del cliente de JavaScript para modelos de aprendizaje profundo creados en el formato Onnx. [ cita requerida ]

Curso de aprendizaje automático de AI School

Junto con el lanzamiento de la versión preliminar 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. [26] [27] [28]

Véase también

Referencias

  1. ^ Ankit Asthana (7 de mayo de 2017). "Presentación de ML.NET: marco de aprendizaje automático multiplataforma, probado y de código abierto". blogs.msdn.microsoft.com . Consultado el 10 de mayo de 2018 .
  2. ^ "ML.NET: Machine Learning creado para .NET". Microsoft . Consultado el 11 de mayo de 2018 .
  3. ^ en master · DotNet/Aprendizaje automático
  4. ^ David Ramel (8 de mayo de 2018). "ML.NET multiplataforma y de código abierto simplifica el aprendizaje automático: Visual Studio Magazine". Visual Studio Magazine . Consultado el 10 de mayo de 2018 .
  5. ^ Kareem Anderson (9 de mayo de 2017). "Microsoft presenta el marco de aprendizaje automático multiplataforma ML.NET". En MSFT . Consultado el 10 de mayo de 2018 .
  6. ^ Ankit Asthana (7 de agosto de 2018). "Anuncio de ML.NET 0.4". blogs.msdn.microsoft.com . Consultado el 8 de agosto de 2018 .
  7. ^ Gal Oshri (6 de mayo de 2018). «Notas de la versión ML.NET 0.1». GitHub . Consultado el 10 de mayo de 2018 .
  8. ^ Tiwari, Aditya (8 de mayo de 2018). "Microsoft lanza el marco de aprendizaje automático de código abierto ML.NET". 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 recomendaciones y otros enfoques, como el aprendizaje profundo, utilizando los beneficios de las bibliotecas agregadas.
  9. ^ "Tareas de aprendizaje automático en ML.NET". Microsoft . Consultado el 26 de diciembre de 2018 .
  10. ^ James McCaffrey (19 de diciembre de 2018). "ML.NET: The Machine Learning Framework for .NET Developers". Número especial de 2018 de MSDN Magazine Connect() . 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 comenzó un proyecto llamado TMSN ("búsqueda y navegación de minería de texto") para permitir que los desarrolladores de software incluyan código ML en productos y tecnologías de Microsoft. El proyecto tuvo mucho éxito y, con el paso de los años, creció en tamaño y uso internamente en Microsoft. En algún momento alrededor de 2011, la biblioteca pasó a llamarse TLC ("el código de aprendizaje"). TLC se usa ampliamente dentro de Microsoft y actualmente se encuentra en la versión 3.10. La biblioteca ML.NET es una descendiente de TLC, con características específicas de Microsoft eliminadas. He usado ambas bibliotecas y, en muchos sentidos, la hija de ML.NET ha superado a su padre.
  11. ^ "Lanzamiento de Microsoft ML.NET v0.3". Github . 2018-07-03 . Consultado el 2018-07-03 .
  12. ^ ab "Anuncio de ML.NET 0.7 (Machine Learning .NET)". Microsoft . 2018-11-08 . Consultado el 2018-11-14 .
  13. ^ "La hoja de ruta de ML.NET". Github . 2018-05-09 . Consultado el 2018-06-30 .
  14. ^ ab "Anuncio de ML.NET 1.0". Microsoft . 2019-05-06 . Consultado el 2019-05-07 .
  15. ^ "SciSharp/TensorFlow.NET". SciSharp STACK. 21 de febrero de 2020.
  16. ^ "ML.NET 1.4.0-preview2". Github . 2019-10-09 . Consultado el 2019-10-09 .
  17. ^ Ahmed, Zeeshan; Amizadeh, Saeed; Bilenko, Mijaíl; Carr, Rogan; Chin, Wei-Sheng; Dekel, Yael; Dupré, 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, Iván; Matusevych, Sergiy; Moradi, Shahab; Nazirov, Gani; Ormont, Justin; Oshri, Gal; Pagnoni, Artidoro; Parmar, Jignesh; Roy, Prabhat; et al. (2019-05-15). "Aprendizaje automático en Microsoft con ML.NET". Actas de la 25.ª Conferencia internacional ACM SIGKDD sobre descubrimiento de conocimientos y minería de datos . Microsoft y Yandex . pp.  2448– 2458. arXiv : 1905.05715 . doi :10.1145/3292500.3330667. ISBN 9781450362016.S2CID53380995  .
  18. ^ "dotnet/machinelearning-modelbuilder". Plataforma .NET. 17 de febrero de 2020.
  19. ^ "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 2018-12-05 .
  20. ^ "Lo que significa abrir la caja negra de la IA". PwC . 2018-05-15 . Consultado el 2018-12-05 .
  21. ^ Hastie, Trevor J. (1 de noviembre de 2017). "Modelos aditivos generalizados". Modelos estadísticos en S. pp.  249– 307. doi :10.1201/9780203738535-7 (inactivo el 15 de diciembre de 2024). ISBN 9780203738535.{{cite book}}: CS1 maint: DOI inactivo a partir de diciembre de 2024 ( enlace )
  22. ^ "Anuncio de ML.NET 0.8: aprendizaje automático para .NET". Microsoft . 2018-12-04 . Consultado el 2018-12-05 .
  23. ^ "Microsoft publica en código abierto el código de inteligencia artificial Infer.NET justo a tiempo para el fin de semana". The Register . 2018-10-05 . Consultado el 2018-10-31 .
  24. ^ "Microsoft publica en código abierto Infer.NET, su popular marco de aprendizaje automático basado en modelos". Packt . 2018-10-08 . Consultado el 2018-10-31 .
  25. ^ "ML.NET – Exportar modelos Machine Learning.Net a formato ONNX". El Bruno . 2018-07-11 . Consultado el 2019-01-09 .
  26. ^ "Escuela de IA". Microsoft AI . 2018-05-07 . Consultado el 2018-06-29 .
  27. ^ "Guía de ML.NET". Microsoft . 2018-05-07 . Consultado el 2018-06-29 .
  28. ^ "Guía del usuario de Infer.NET". Infer.NET . 2018-10-05 . Consultado el 2018-10-31 .

Lectura adicional

  • Capellman, Jarred (2020). Aprendizaje automático práctico con ML.NET: Introducción a Microsoft ML.NET para implementar algoritmos de aprendizaje automático populares en C# . Packt Publishing. ISBN 978-1789801781.
  • Mukherjee, Sudipta (2020). ML.NET Revealed: herramientas sencillas para aplicar el aprendizaje automático a sus aplicaciones . Apress. ISBN 978-1484265420.
  • Esposito, Dino; Esposito, Francesco (2022). Programación ML.NET . Microsoft Press. ISBN 978-0137383658.
  • Sitio web oficial
Obtenido de "https://es.wikipedia.org/w/index.php?title=ML.NET&oldid=1263241870"