Top 10 des cadres d'apprentissage automatique

Publié: 2017-03-11
Table des matières afficher
1. Tensorflow
2. Café
3. Apprentissage automatique d'Amazon
4. Apache Singa
5. Microsoft CNTK
6. Torche
7. Accord.NET
8. Apache Mahout
9. Théano
10. Remue-méninges

Lorsque vous plongez dans le monde de l'apprentissage automatique (ML), choisir un cadre parmi de nombreuses alternatives peut être une tâche intimidante. Vous connaissez peut-être déjà les noms, mais il est utile d'évaluer les options au cours du processus de prise de décision. Il existe différents frameworks, bibliothèques, applications, boîtes à outils et ensembles de données dans le monde de l'apprentissage automatique qui peuvent être très déroutants, surtout si vous êtes débutant. Être habitué aux frameworks ML populaires est nécessaire lorsqu'il s'agit d'en choisir un pour créer votre application. C'est pourquoi nous avons compilé une liste des 10 meilleurs frameworks d'apprentissage automatique.

1. Tensorflow

Tensorflow a été développé par l'équipe Google Brain pour différentes tâches de compréhension du langage et de perception. Ce cadre open source est utilisé pour des recherches approfondies sur les réseaux de neurones profonds et l'apprentissage automatique. Étant le deuxième cadre d'apprentissage automatique de Google Brain, il est compatible avec la plupart des nouveaux processeurs et GPU. De nombreux services Google populaires que nous utilisons quotidiennement, tels que Gmail, la reconnaissance vocale, Google Photos et même la recherche Google, sont équipés de Tensorflow.

Tensorflow utilise des graphiques de flux de données pour effectuer des tâches numériques complexes. Les calculs mathématiques sont élaborés à l'aide d'un graphe orienté contenant des arêtes et des nœuds. Ces nœuds sont utilisés pour mettre en œuvre les opérations et peuvent également agir comme points de terminaison où les données sont alimentées. Les arêtes représentent également les associations d'entrée/sortie entre différents nœuds.

2. Café

Caffe est un cadre d'apprentissage automatique qui a été conçu avec une meilleure expression, vitesse et modularité comme points de focalisation. Il a été développé pour la vision par ordinateur/classification d'images en exploitant les réseaux de neurones convolutifs (CNN). Caffe est populaire pour son Model Zoo, qui est un ensemble de modèles pré-formés qui ne nécessitent aucun codage pour être implémentés.

Il est mieux adapté aux applications de construction par opposition à Tensorflow qui réussit mieux en recherche et développement. Si vous avez affaire à des applications avec du texte, du son ou des données de séries chronologiques, notez que Caffe n'est pas destiné à autre chose qu'à la vision par ordinateur. Cependant, il peut s'exécuter de manière dynamique sur un hôte de matériel et fait un bon travail pour basculer entre le CPU et le GPU en utilisant un seul indicateur.

3. Apprentissage automatique d'Amazon

Amazon a développé son propre service d'apprentissage automatique pour les développeurs appelé AML. Il s'agit d'un ensemble d'outils et d'assistants qui peuvent être utilisés pour développer des modèles d'apprentissage sophistiqués, haut de gamme et intelligents sans réellement bricoler le code. Grâce à AML, les prédictions nécessaires à vos applications peuvent être dérivées via des API plus faciles à utiliser. La technologie derrière AML est utilisée par les data scientists internes d'Amazon pour alimenter leurs Amazon Cloud Services et est hautement évolutive, dynamique et flexible. AML peut se connecter aux données stockées dans Amazon S3, RDS ou Redshift et effectuer des opérations telles que la classification binaire, la régression ou la catégorisation multi-classes pour créer de nouveaux modèles.

4. Apache Singa

Apache Singa se concentre principalement sur l'apprentissage en profondeur distribué à l'aide du partitionnement de modèles et de la parallélisation du processus de formation. Il fournit un modèle de programmation simple et robuste qui peut fonctionner sur un cluster de nœuds. Les principales applications sont dans la reconnaissance d'images et le traitement du langage naturel (TAL).

Singa a été développé avec un modèle de programmation intuitif basé sur l'abstraction de couche et prend en charge un éventail de modèles d'apprentissage en profondeur. Puisqu'il est basé sur une architecture très flexible, il peut exécuter des méthodes de formation synchrones et asynchrones et même hybrides. La pile technologique de Singa comprend trois composants importants : IO, Model et Core. Le composant IO contient des classes utilisées pour lire/écrire des données sur le réseau et le disque. Le composant principal gère les opérations de tenseur et les fonctions de gestion de la mémoire. Le modèle héberge les algorithmes et les structures de données utilisés pour les modèles d'apprentissage automatique.

5. Microsoft CNTK

CNTK (Cognitive Toolkit) est le framework d'apprentissage automatique open source de Microsoft. Bien qu'il soit plus populaire dans le domaine de la reconnaissance vocale, CNTK peut également être utilisé pour la formation de texte et d'image. Prenant en charge une grande variété d'algorithmes d'apprentissage automatique tels que AS CNN, LSTM, RNN, Sequence-to-Sequence et Feed Forward, il s'agit de l'un des frameworks d'apprentissage automatique les plus dynamiques. CNTK prend en charge plusieurs types de matériel, y compris divers processeurs et GPU.

La compatibilité est l'un des points forts de CNTK. Il est également salué comme l'architecture d'apprentissage automatique la plus expressive et la plus facile à utiliser. Sur CNTK, vous pouvez travailler avec des langages comme C++ et Python et utiliser les modèles de formation intégrés ou créer les vôtres.

6. Torche

Torch pourrait sans doute être le cadre d'apprentissage automatique le plus simple à configurer et à démarrer rapidement et facilement, surtout si vous utilisez Ubuntu. Développé en 2002 à NYU, Torch est largement utilisé dans les grandes entreprises technologiques comme Twitter et Facebook. Torch est codé dans un langage appelé Lua, qui est rare mais facile à lire et à comprendre. Certains des avantages de Torch peuvent être attribués à ce langage de programmation convivial avec des messages d'erreur utiles, un énorme référentiel d'exemples de code, des guides et une communauté utile.

7. Accord.NET

Accord.NET est un framework d'apprentissage automatique open source basé sur .NET et idéal pour le calcul scientifique. Il se compose de différentes bibliothèques qui peuvent être utilisées pour des applications telles que la reconnaissance de formes, les réseaux de neurones artificiels, le traitement de données statistiques, l'algèbre linéaire, le traitement d'images, etc. Le cadre comprend des bibliothèques disponibles sous forme d'installateurs, de packages NuGet et de code source. Accord.NET dispose d'une bibliothèque matricielle qui facilite la réutilisation du code et les changements algorithmiques progressifs.

8. Apache Mahout

En tant que projet gratuit et open source de l'Apache Software Foundation, Apache Mahout a été conçu dans le but de développer des frameworks ML distribués ou évolutifs gratuits pour des applications telles que le clustering, la classification et le filtrage collaboratif. Des collections Java pour différentes opérations de calcul et des bibliothèques Java sont également disponibles dans Mahout.

Apache Mahout est déployé sur Hadoop à l'aide du paradigme MapReduce. Une excellente application consiste à transformer instantanément les données en informations. Une fois que le Big Data stocké sur Hadoop est connecté, Mahout peut aider les outils de science des données à trouver des modèles significatifs à partir des ensembles de données.

9. Théano

Theano a été développé en 2007 à l'Université de Montréal qui est reconnue mondialement pour les algorithmes d'apprentissage automatique. Bien que considéré comme un cadre d'apprentissage automatique bas de gamme, il est flexible et extrêmement rapide. Les messages d'erreur émis par le framework sont tristement célèbres pour être inutiles et cryptés. En les laissant de côté, Theano est une plate-forme plus adaptée aux tâches de recherche et peut être extrêmement utile à cet égard.

Il est principalement utilisé comme plate-forme de base pour les systèmes d'abstraction haut de gamme qui enverraient des wrappers d'API à Theano. Des exemples de certaines bibliothèques populaires sont Lasagne, Blocks et Keras. L'un des inconvénients de l'utilisation de Theano est que vous devrez bricoler une solution de contournement pour avoir un support multi-GPU.

10. Remue-méninges

Brainstorm est l'un des cadres d'apprentissage automatique les plus faciles à maîtriser compte tenu de sa simplicité et de sa flexibilité. Cela rend le travail avec les réseaux de neurones plus rapide et amusant en même temps. Entièrement écrit en Python, Brainstorm a été conçu pour fonctionner sans problème sur plusieurs systèmes backend.

Brainstorm fournit deux "gestionnaires" ou API de données utilisant Python - l'un pour les processeurs de la bibliothèque Numpy et l'autre pour tirer parti des GPU utilisant CUDA. La plupart des tâches lourdes sont effectuées par des scripts Python, ce qui signifie qu'une interface utilisateur frontale riche est presque absente.