Caffe2 - Présentation

Ces dernières années, le Deep Learning est devenu une grande tendance dans le Machine Learning. Il a été appliqué avec succès pour résoudre des problèmes auparavant insolubles dans Vision, Speech Recognition and Natural Language Processing(PNL). Il existe de nombreux autres domaines dans lesquels le Deep Learning est appliqué et a montré son utilité.

Caffe (Convolutional Architecture for Fast Feature Embedding) est un cadre d'apprentissage en profondeur développé à Berkeley Vision and Learning Center (BVLC). Le projet Caffe a été créé par Yangqing Jia pendant son doctorat. à l'Université de Californie - Berkeley. Caffe offre un moyen simple d'expérimenter l'apprentissage profond. Il est écrit en C ++ et fournit des liaisons pourPython et Matlab.

Il prend en charge de nombreux types d'architectures d'apprentissage en profondeur tels que CNN (Réseau neuronal convolutif), LSTM(Mémoire longue durée) et FC (entièrement connecté). Il prend en charge le GPU et est donc parfaitement adapté aux environnements de production impliquant des réseaux de neurones profonds. Il prend également en charge les bibliothèques de noyau basées sur le processeur telles queNVIDIA, Bibliothèque CUDA Deep Neural Network (cuDNN) et bibliothèque Intel Math Kernel (Intel MKL).

En avril 2017, la société américaine de services de réseaux sociaux Facebook a annoncé Caffe2, qui inclut désormais RNN (Recurrent Neural Networks) et en mars 2018, Caffe2 a été fusionnée avec PyTorch. Les créateurs de Caffe2 et les membres de la communauté ont créé des modèles pour résoudre divers problèmes. Ces modèles sont disponibles au public sous forme de modèles pré-formés. Caffe2 aide les créateurs à utiliser ces modèles et à créer son propre réseau pour faire des prédictions sur l'ensemble de données.

Avant d'entrer dans les détails de Caffe2, comprenons la différence entre machine learning et deep learning. Ceci est nécessaire pour comprendre comment les modèles sont créés et utilisés dans Caffe2.

Machine Learning v / s Deep Learning

Dans tout algorithme d'apprentissage automatique, qu'il soit traditionnel ou d'apprentissage en profondeur, la sélection des fonctionnalités dans l'ensemble de données joue un rôle extrêmement important pour obtenir la précision de prédiction souhaitée. Dans les techniques traditionnelles d'apprentissage automatique, lefeature selectionse fait principalement par inspection humaine, jugement et connaissance approfondie du domaine. Parfois, vous pouvez demander de l'aide à quelques algorithmes testés pour la sélection des fonctionnalités.

Le flux d'apprentissage automatique traditionnel est illustré dans la figure ci-dessous:

Dans l'apprentissage profond, la sélection des fonctionnalités est automatique et fait partie de l'algorithme d'apprentissage profond lui-même. Ceci est illustré dans la figure ci-dessous -

Dans les algorithmes d'apprentissage profond, feature engineeringse fait automatiquement. Généralement, l'ingénierie des fonctionnalités prend du temps et nécessite une bonne expertise dans le domaine. Pour implémenter l'extraction automatique des fonctionnalités, les algorithmes d'apprentissage en profondeur demandent généralement une énorme quantité de données, donc si vous n'avez que des milliers et des dizaines de milliers de points de données, la technique d'apprentissage en profondeur peut ne pas vous donner des résultats satisfaisants.

Avec des données plus volumineuses, les algorithmes d'apprentissage en profondeur produisent de meilleurs résultats par rapport aux algorithmes ML traditionnels avec l'avantage supplémentaire d'une ingénierie de fonctionnalités réduite ou nulle.