Recherche de site Web

Pourquoi implémenter un algorithme d'apprentissage automatique à partir de zéro


Pourquoi implémenteriez-vous des algorithmes d’apprentissage automatique à partir de zéro alors qu’il y en a tant dans les API existantes ?

C'est une excellente question. Celui qui doit être pris en compte avant d’écrire cette première ligne de code.

Dans cet article, vous découvrirez une variété de réponses intéressantes, voire stimulantes, à cette question.

Les réponses contenues dans cet article sont résumées à partir de la question Quora intitulée : "Pourquoi est-il nécessaire d'implémenter manuellement des algorithmes d'apprentissage automatique alors qu'il existe de nombreuses API avancées comme Tensorflow disponibles ?".

Démarrez votre projet avec mon nouveau livre Machine Learning Algorithms From Scratch, comprenant des tutoriels pas à pas et les fichiers code source Python pour tous les exemples.

Deux raisons majeures de (ré)implémenter un algorithme

Je pense que toutes les réponses peuvent être divisées en deux camps :

  1. Auto-apprentissage où un algorithme est mis en œuvre comme exercice d'apprentissage.
  2. Exigences opérationnelles où un algorithme est mis en œuvre pour répondre aux besoins d'un système de production.

Mettre en œuvre des algorithmes pour l'auto-apprentissage

Charles Gee donne une excellente réponse du point de vue de l'auto-apprentissage. Il commente :

… supposons qu'au lieu de parler d'algorithmes d'apprentissage automatique, nous parlions d'algorithmes de tri. Bien sûr, de nombreuses structures de données ont une fonction de tri qui nécessite peu ou pas de codage, mais embaucheriez-vous vraiment un programmeur incapable d'effectuer un tri à bulles ? tri par sélection ? tri par insertion ? tri par fusion ? un tri rapide ? arbre de recherche binaire ?

Charles décrit 4 cas d'utilisation différents dans lesquels il peut être hautement souhaitable d'implémenter un algorithme d'apprentissage automatique à partir de zéro :

  • En tant que débutant dans le domaine de l'apprentissage automatique.
  • En tant que chercheur dans le domaine de l'apprentissage automatique.
  • En tant qu'enseignant dans le domaine de l'apprentissage automatique.
  • En tant qu'utilisateur de ces algorithmes d'apprentissage automatique.

Implémenter des algorithmes pour les exigences opérationnelles

Xavier Amatriain se concentre sur ce sujet dans sa réponse. Il commente :

Permettez-moi de commencer par dire que je pense que toute équipe devrait par défaut réutiliser les implémentations existantes. … Cependant, il existe également de nombreuses raisons pour lesquelles une entreprise peut décider de mettre en œuvre sa propre version d’un algorithme ML.

Xavier énumère cinq raisons pour mettre en œuvre un algorithme de machine learning, comme suit :

  • Performances. Les implémentations open source peuvent être trop générales et pas assez efficaces pour des cas d'utilisation spécifiques.
  • Exactité. Il peut y avoir des bogues ou des limitations dans les implémentations open source pour des cas d'utilisation spécifiques (tels que des ensembles de données à plus grande échelle).
  • Langage de programmation. Les implémentations peuvent être limitées à des langages de programmation spécifiques.
  • Intégration. Il peut s'avérer nécessaire d'intégrer la mise en œuvre d'un algorithme dans l'infrastructure des systèmes de production existants.
  • Licence. Il peut y avoir des limitations imposées par le choix de la licence open source.

Résumé

Dans cet article, vous avez découvert qu’il existe deux raisons principales pour lesquelles vous pourriez vouloir implémenter un algorithme à partir de zéro.

  1. Pour en savoir plus sur le fonctionnement de l'algorithme pour l'auto-apprentissage.
  2. Personnaliser l'implémentation de l'algorithme pour un système de production.

Lectures complémentaires

J'ai publié à plusieurs reprises sur les avantages de la mise en œuvre d'algorithmes d'apprentissage automatique à partir de zéro.

Certaines lectures complémentaires sur ce sujet comprennent :

  • Avantages de la mise en œuvre d'algorithmes d'apprentissage automatique à partir de zéro
  • Comprendre les algorithmes d'apprentissage automatique en les implémentant à partir de zéro (et les tactiques pour contourner le mauvais code)
  • Ne commencez pas avec du code open source lors de la mise en œuvre d'algorithmes d'apprentissage automatique
  • Comment implémenter un algorithme d'apprentissage automatique

Articles connexes