15 cadres de machine learning non découverts et open source que vous devez connaître en 2020.

L'apprentissage automatique (ML) est l'une des technologies émergentes les plus rapides aujourd'hui. Et l'application de l'apprentissage automatique à différents domaines de l'informatique gagne rapidement en popularité.

Ce n'est pas seulement à cause de l'existence de matériel bon marché et puissant. C'est aussi à cause de la disponibilité croissante de logiciels gratuits et open-sourceDes frameworks d' apprentissage automatique , qui permettent aux développeurs d'implémenter facilement l'apprentissage automatique.

Cette large gamme de cadres d'apprentissage automatique open source permet aux scientifiques des données et aux ingénieurs en apprentissage automatique de créer, mettre en œuvre et maintenir des systèmes d'apprentissage automatique, générer de nouveaux projets et créer de nouveaux systèmes d'apprentissage automatique percutants.

Le choix d'un framework ou d'une bibliothèque d'apprentissage automatique pour résoudre votre cas d'utilisation implique de faire une évaluation pour décider de ce qui convient à votre cas d'utilisation. Plusieurs facteurs sont importants pour cette évaluation tels que:

  • Facilité d'utilisation.
  • Soutien sur le marché (Communauté).
  • Vitesses de fonctionnement.
  • Ouverture.

A qui est destiné cet article?

Cet article s'adresse à ceux qui souhaitent utiliser les connaissances dans la pratique après avoir appris la théorie.

C'est également pour ceux qui souhaitent explorer d'autres cadres potentiels d'apprentissage automatique open source pour leur futur projet ML.

Voici maintenant la liste des frameworks ou bibliothèques non découverts et open-source que les entreprises et les particuliers peuvent utiliser pour créer des systèmes d'apprentissage automatique.

1. blocs

Blocks est un framework qui vous aide à créer des modèles de réseaux neuronaux au-dessus de Theano. Actuellement, il prend en charge et fournit, en construisant des opérations Theano paramétrées, appelées «briques», des correspondances de modèles pour sélectionner des variables et des briques dans des algorithmes de grands modèles pour optimiser votre modèle et enregistrer et reprendre l'entraînement. Dépôt de Block

Vous pouvez également vous renseigner sur Fuel, le moteur de traitement de données développé principalement pour Blocks.

Langage de programmation: Python

Lien Github: //github.com/mila-iqia/blocks

2. Zoo Analytics

Analytics Zoo fournit une plate-forme d'analyse de données et d'intelligence artificielle unifiée qui unit de manière transparente les programmes TensorFlow, Keras, PyTorch, Spark, Flink et Ray dans un pipeline intégré, qui peut évoluer de manière transparente d'un ordinateur portable vers de grands clusters pour traiter des données volumineuses de production. Référentiel du zoo Analytics

Quand utiliser Analytics Zoo pour développer votre solution d'intelligence artificielle:

  • Vous souhaitez prototyper facilement des modèles d'IA.
  • Lorsque la mise à l'échelle compte pour vous.
  • Lorsque vous souhaitez ajouter des processus d'automatisation à votre pipeline d'apprentissage automatique, tels que l'ingénierie des fonctionnalités et la sélection de modèles.

Ce projet est maintenu par Intel-analytics.

Langage de programmation: Python

Lien Github: //github.com/intel-analytics/analytics-zoo

3. ML5.js

Ml5.js vise à rendre l'apprentissage automatique accessible à un large public d'artistes, de codeurs créatifs et d'étudiants. La bibliothèque permet d'accéder aux algorithmes et modèles d'apprentissage automatique dans le navigateur, en s'appuyant sur TensorFlow.js. "Référentiel Ml5.js"

ml5.js est inspiré de Processing et de p5.js.

Ce projet open source est développé et maintenu par le programme de télécommunications interactives / arts médiatiques interactifs de NYU et par des artistes, designers, étudiants, technologues et développeurs du monde entier.

REMARQUE: ce projet est actuellement en développement.

Langage de programmation: Javascript

Lien Github: //github.com/ml5js/ml5-library

4.AdaNet

AdaNet est un framework léger basé sur TensorFlow pour l'apprentissage automatique de modèles de haute qualité avec une intervention minimale d'experts. AdaNet s'appuie sur les efforts récents d'AutoML pour être rapide et flexible tout en offrant des garanties d'apprentissage. Surtout, AdaNet fournit un cadre général non seulement pour apprendre une architecture de réseau neuronal, mais aussi pour apprendre à assembler pour obtenir des modèles encore meilleurs. "AdaNet Repository"

AdaNet fournit une API familière comme Keras pour la formation, l'évaluation et la diffusion de vos modèles en production.

Langage de programmation: Python

Lien Github: //github.com/tensorflow/adanet

5. Mljar

Si vous recherchez une plateforme pour créer des modèles prototypes et un service de déploiement, Mljar est le bon choix pour vous. Mljar a tendance à rechercher différents algorithmes et à effectuer des réglages d'hyper-paramètres pour trouver le meilleur modèle.

Il fournit également des résultats rapides en exécutant tous les calculs dans le cloud et en créant enfin des modèles d'ensemble, puis en créant des rapports de démarque à partir de la formation AutoML.

Mljar peut entraîner des modèles ML pour:

  • classification binaire,
  • classification multi-classes,
  • régression.

Mljar fournit deux types d'interfaces:

  • Wrapper Python sur l'API Mljar.
  • Exécution de modèles Machine Learning dans votre navigateur Web.

Langage de programmation: Python

Lien Github: //github.com/mljar/mljar-supervised.

6. ConvNetJS

Deep Learning en Javascript. Entraînez les réseaux de neurones à convolution (ou les réseaux ordinaires) dans votre navigateur. "Référentiel convnetjs"

Comme Tensorflow.js, ConvNetJS est une bibliothèque JavaScript qui prend en charge la formation de différents modèles d'apprentissage profond dans votre navigateur Web. Vous n'avez pas besoin de GPU et d'autres logiciels lourds.

ConvNetJS prend en charge:

  • Modules de réseau neuronal.
  • Formation des réseaux de convolution pour les images.
  • Fonctions de coût de régression et de classification.
  • Module d'apprentissage par renforcement, basé sur Deep Q Learning.

Remarque: pas activement maintenu.

Langage de programmation: Javascript

Lien Github: //github.com/karpathy/convnetjs

7.NNI (Neural Network Intelligence)

NNI (Neural Network Intelligence) est une boîte à outils légère mais puissante pour aider les utilisateurs à automatiser l' ingénierie des fonctionnalités, la recherche d'architecture neuronale, le réglage d'hyperparamètres et la compression de modèles. L'outil gère les expériences d'apprentissage automatique automatisé (AutoML), envoie et exécute les tâches d'essai des expériences générées par le réglage des algorithmes pour rechercher la meilleure architecture neuronale et / ou des hyper-paramètres dans différents environnements de formation tels que Local Machine, Remote Servers, OpenPAI, Kubeflow et d'autres options de cloud. Référentiel NNI

Quand devriez-vous envisager d'utiliser NNI

  • Si vous souhaitez essayer différents algorithmes AutoML.
  • Si vous souhaitez exécuter des travaux d'évaluation AutoML dans différents environnements.
  • Si vous souhaitez prendre en charge AutoML sur votre plateforme.

REMARQUE: projet Open source de Microsoft.

Langage de programmation: Python

Lien Github: //github.com/Microsoft/nni

8. datumbox

Datumbox Machine Learning Framework est un framework open-source écrit en Java qui permet le développement rapide d'applications de Machine Learning et de Statistiques. L'objectif principal du cadre est d'inclure un grand nombre d'algorithmes d'apprentissage automatique et de méthodes statistiques et de pouvoir gérer des ensembles de données de grande taille. "DatumBox Repository"

Datumbox fournit un certain nombre de modèles pré-entraînés pour différentes tâches telles que la détection de spam, l'analyse des sentiments, la détection de la langue, la classification des sujets, etc.

Langage de programmation: Java

Lien Github: //github.com/datumbox/datumbox-framework

9.XAI (Une boîte à outils eXplainability pour ML)

XAI est une bibliothèque d'apprentissage automatique conçue avec l'explicabilité de l'IA en son cœur. XAI contient divers outils qui permettent l'analyse et l'évaluation des données et des modèles. La bibliothèque XAI est gérée par l'Institute for Ethical AI & ML et a été développée sur la base des 8 principes pour un apprentissage automatique responsable. "XAI Repository"

Les 8 principes pour un apprentissage automatique responsable comprennent:

  • Augmentation humaine
  • Évaluation des biais
  • Explicabilité par justification
  • Opérations reproductibles
  • Stratégie de déplacement
  • Précision pratique
  • Confiance par la confidentialité
  • Sensibilisation aux risques liés aux données

Pour en savoir plus sur XAI, vous pouvez consulter cette conférence à Tensorflow Londres. Il contient un aperçu des définitions et des principes de cette bibliothèque.

XAI est actuellement en développement, la version actuelle est 0.05 (Alpha).

Langage de programmation: Python

Lien Github: //github.com/EthicalML/xai

10.Plato

Plato est un cadre flexible pour le développement de tout agent d'IA conversationnel dans différents environnements. Plato a été conçu à la fois pour les utilisateurs ayant une expérience limitée en IA conversationnelle et les chercheurs chevronnés dans le domaine. Il fournit une conception claire et compréhensible, s'intègre aux frameworks existants d'apprentissage en profondeur et d'optimisation bayésienne et réduit le besoin d'écrire du code.

Il prend en charge les interactions par le biais de textes, de discours et de dialogues. Pour savoir comment fonctionne le système de dialogue Plato Research, lisez l'article ici.

REMARQUE: Plato est un projet open source d'Uber.

Langage de programmation: Python

Lien Github: //github.com/uber-research/plato-research-dialogue-system

11.DeepDetect

DeepDetect est une API et un serveur de machine learning écrits en C ++. Il rend l'apprentissage automatique de pointe facile à utiliser et à intégrer dans les applications existantes.

DeepDetect prend en charge l'apprentissage en profondeur supervisé et non supervisé des images, du texte, des séries chronologiques et d'autres données, en mettant l'accent sur la simplicité et la facilité d'utilisation, de test et de connexion aux applications existantes. Il prend en charge la classification, la détection d'objets, la segmentation, la régression et les auto-encodeurs. Référentiel DeepDetect

DeepDetect s'appuie sur des bibliothèques d'apprentissage automatique externes telles que:

  • Bibliothèque de renforcement des dégradés XGBoost.
  • Bibliothèques d'apprentissage en profondeur (Caffe, Tensorflow, Caffe2, Torch, NCNN et Dlib).
  • clustering avec T-SNE.
  • recherche de similarité avec Annoy et FAISS.

DeepDetect est conçu, implémenté et pris en charge par Jolibrain avec l'aide d'autres contributeurs différents.

Langage de programmation: C ++

Lien Github: //github.com/jolibrain/deepdetect

12.Streamlit

Streamlit - Le moyen le plus rapide de créer des outils de ML personnalisés.

Streamlit est un outil génial qui permet aux scientifiques des données, aux ingénieurs ML et aux développeurs de créer rapidement des applications Web hautement interactives pour leurs projets d'apprentissage automatique.

Streamlit ne nécessite aucune connaissance du développement Web. Si vous connaissez Python, vous êtes prêt à partir!

Il prend également en charge le rechargement à chaud, ce qui signifie que les mises à jour de votre application sont en direct pendant que vous modifiez et enregistrez vos fichiers.

Jetez un œil à Streamlit en action:

Langage de programmation: Javascript et Python

Lien Github: //github.com/streamlit/streamlit

13.Dopamine

La dopamine est un cadre de recherche pour le prototypage rapide d'algorithmes d'apprentissage par renforcement. Il vise à combler le besoin d'une petite base de code facile à intégrer dans laquelle les utilisateurs peuvent librement expérimenter des idées folles (recherche spéculative). Dépôt de dopamine

Les principes de conception de la dopamine comprennent:

  • Expérimentation facile.
  • Développement flexible.
  • Compact et fiable.
  • Reproductible.

L'année dernière (2019), la dopamine a changé ses définitions de réseau pour utiliser tf.keras.Model . Les anciens réseaux basés sur tf.contrib.slim ont été supprimés.

Pour apprendre à utiliser la dopamine, consultez les cahiers du Colaboratory.

Remarque: Dopamine est un projet open source de Google.

Langage de programmation: Python

Lien Github: //github.com/google/dopamine

14.TuriCreate

TuriCreate est un ensemble d'outils open source pour la création de modèles Core ML personnalisés.

Avec TuriCreate, vous pouvez accomplir différentes tâches ML telles que la classification d'image, la classification sonore, la détection d'objet, le transfert de style, la classification d'activité, le recommandeur de similarité d'image, la classification de texte et le regroupement.

Le cadre est simple à utiliser, flexible et visuel. Il fonctionne sur de grands ensembles de données et est prêt à être déployé. Les modèles formés peuvent être utilisés immédiatement dans les applications iOS, macOS, tvOS et watchOS sans aucune conversion supplémentaire.

Consultez les discussions de TuriCreate à la WWDC 2019 et à la WWDC 2018 pour en savoir plus sur TuriCreate.

REMARQUE: TuriCreate est un projet 0pen source d'Apple.

Langage de programmation: Python

Lien Github: //github.com/apple/turicreate

15.Flair

Flair est un simple cadre de traitement du langage naturel (PNL), développé et open-source par l'Université Humboldt de Berlin. Flair est une partie officielle de l' écosystème PyTorch et est utilisé dans des centaines de projets industriels et académiques.

Flair vous permet d'appliquer nos modèles de traitement du langage naturel (NLP) à la pointe de la technologie à votre texte, tels que la reconnaissance d'entités nommées (NER), le marquage d'une partie du discours (PoS), la désambiguïsation des sens et la classification. Dépôt Flair

Flair surpasse les meilleures méthodes précédentes sur une gamme de tâches PNL: reconnaissance d'entité nommée, partie du balisage vocal et segmentation. Consultez ce tableau:

Remarque : le score F1 est une mesure d'évaluation principalement utilisée pour les tâches de classification. Le score F1 prend en compte la répartition des classes présentes.

Apprenez à effectuer une classification de texte à l'aide de Flair Embeddings dans cet article.

Langage de programmation: Python

Lien Github: //github.com/flairNLP/flair

Conclusion

Avant de commencer à créer une application d'apprentissage automatique, vous devez sélectionner un framework ML parmi les nombreuses options disponibles. Cela peut être une tâche difficile.

Par conséquent, il est important d'évaluer plusieurs options avant de prendre une décision finale. Les frameworks d'apprentissage automatique open source mentionnés ci-dessus peuvent aider n'importe qui à créer des modèles d'apprentissage automatique de manière efficace et simple.

Vous vous demandez quels sont les frameworks d'apprentissage automatique les plus populaires ? Voici la liste que la plupart des scientifiques des données et des ingénieurs en apprentissage automatique utilisent la plupart de leur temps.

  • Tensorflow
  • Pytorch
  • Fastai
  • Keras
  • scikit-learn
  • Boîte à outils cognitive Microsoft
  • Theano
  • Caffe2
  • DL4J
  • MxNet
  • H20
  • Accord.NET
  • Apache Spark

Je te verrai dans le prochain post! Je suis également joignable sur Twitter @Davis_McDavid.