Pourquoi Python est-il un langage si populaire dans le domaine de l'IA?


48

Tout d’abord, je suis un débutant en IA et ce n’est pas une question d’opinion ni de comparaison de langages de programmation. Je n'insinue pas que Python est le meilleur langage. Mais le fait est que la plupart des fameux frameworks d'intelligence artificielle prennent principalement en charge Python. Ils peuvent même être pris en charge dans plusieurs langues, par exemple TensorFlow prenant en charge Python, C ++ ou CNTK prenant en charge C # et C ++, mais le plus utilisé est Python. Même si vous choisissez C # (développé par Microsoft et mon langage de programmation principal), vous devez avoir l'environnement Python configuré.

J'ai lu dans d'autres forums que Python est préféré pour l'IA car le code est simplifié et plus propre, ce qui est bon pour le prototypage rapide.

Je regardais un film avec les thématiques de l'IA (Ex_Machina). Dans certaines scènes, le personnage principal pirate l'interface de la domotique. Devinez quelle langue était sur la scène? Python.

Alors, quel est le gros problème avec Python?

Pourquoi existe-t-il une association croissante entre Python et AI?


N'oubliez pas que la représentation des langages de programmation dans les films n'est généralement pas liée à la vie réelle! Tout ce qui ressemble à un gobbledegook cryptique aux laïcs est généralement bon ...
Oliver Mason

Si C # est votre langage de programmation principale , vous pourriez être intéressé par scisharpstack.org
Henon

Réponses:


33

Python est livré avec une énorme quantité de bibliothèques intégrées. Beaucoup de bibliothèques sont destinées à l'intelligence artificielle et à l'apprentissage automatique. Certaines bibliothèques sont Tensorflow (bibliothèque de réseaux neuronaux de haut niveau), scikit-learn (pour l'exploration de données, l'analyse de données et l'apprentissage automatique), pylearn2 (plus flexible que scikit-learn), etc. prend fin.

Vous pouvez trouver quelques bibliothèques ici .

Python a une implémentation facile pour OpenCV. Ce qui fait la préférence de Python pour tout le monde, c'est son implémentation puissante et simple.
Pour les autres langues, les étudiants et les chercheurs doivent apprendre à la connaître avant de se lancer dans le ML ou l'IA avec cette langue. Ce n'est pas le cas avec Python. Même un programmeur avec des connaissances très basiques peut facilement gérer python. En dehors de cela, le temps que quelqu'un consacre à l'écriture et au débogage de code en python est bien moins comparé à C, C ++ ou Java. C'est exactement ce que veulent les étudiants en IA et ML. Ils ne veulent pas perdre du temps à déboguer le code des erreurs de syntaxe, mais à consacrer plus de temps à leurs algorithmes et à l'heuristique liés à l'IA et à la ML .
Non seulement les bibliothèques mais leurs tutoriels, la gestion des interfaces est facilement accessible en ligne . Les gens construisent leurs propres bibliothèques et les téléchargent sur GitHub ou ailleurs pour les utiliser.

Toutes ces caractéristiques font que Python leur convient.


11
"Ils ne veulent pas perdre de temps à déboguer le code des erreurs de syntaxe" - Est-ce qu'un programmeur veut le faire? Python est-il la meilleure langue pour tout? Je ne suis pas convaincu.
Frank Puffer

Des compromis sans fin dans tous ces domaines: ce que python possède en termes de simplicité / de bibliothèques intégrées, il peut perdre en vitesse, en utilisation de la mémoire, etc. Un peu comme des véhicules - une simple voiture automatique est facile à apprendre à conduire avec une vous ne serez pas très loin dans une course contre une voiture de course, un avion ou un porte-avions. Peux seulement essayer de choisir le meilleur outil pour le problème.
Philip

24

Pratiquement tous les frameworks d’apprentissage en profondeur les plus populaires et les plus largement utilisés sont implémentés en Python en surface et en C / C ++ sous le capot.

Je pense que la raison principale est que Python est largement utilisé dans les communautés scientifiques et de recherche, car il est facile d’expérimenter rapidement de nouvelles idées et des prototypes de code dans un langage avec une syntaxe minimale comme Python.

De plus, il peut y avoir une autre raison. Comme je peux le constater, la plupart des cours en ligne sur l'intelligence artificielle utilisent Python car il est facile pour les programmeurs débutants. AI est le nouveau mot clé du marketing pour vendre des cours de programmation. (Mentionner AI peut vendre des cours de programmation aux enfants qui souhaitent construire HAL 3000, mais ne peut même pas écrire un Hello World ni déposer une ligne de tendance sur un graphique Excel. :)


4
"......... la plupart des cours en ligne sur l'intelligence artificielle poussent Python parce qu'il est facile pour les programmeurs débutants. AI est le nouveau mot clé du marketing pour vendre des cours de programmation ..." ---- Bon point . Je ne peux pas être plus d'accord.
Emran Hussain

5

Python a une bibliothèque standard en développement et quelques-unes pour l'IA. Il possède une syntaxe intuitive, un flux de contrôle de base et des structures de données. Il prend également en charge l'exécution au moment de l'interprétation, sans langages de compilation standard. Cela rend Python particulièrement utile pour les algorithmes de prototypage pour l'IA.


Beau point sur la capacité d'interprétation de Python. Il semble que la flexibilité et la vitesse de développement soient fortement privilégiées par rapport à la plus grande "puissance" des langages compilés.
DukeZhou

5

Ce qui m’attire chez Python pour mon travail d’analyse, c’est la pile complète d’outils disponibles du fait qu’ils sont conçus en tant que langage à usage général contre R en tant que langage spécifique à un domaine. L’analyse réelle des données n’est qu’une partie de l’histoire, et Python propose de riches outils et un langage clair et complet pour aller du début à la fin dans une seule langue (nonobstant l’utilisation des wrappers C / Fortran).

Sur le front-end, mon travail commence généralement par obtenir des données de différentes sources, y compris des bases de données, des fichiers de différents formats ou des recherches sur le Web. La prise en charge de Python est bonne et la plupart des formats de base de données ou courants disposent d’une bibliothèque solide et bien gérée, disponible pour l’interface. R semble partager une richesse générale pour les E / S de données, bien que pour FITS, le package R ne semble pas être en développement actif (pas de version de FITSio dans 2,5 ans?). La majeure partie de l’étape suivante du travail se produit généralement lors de l’organisation des données et de la réalisation d’un traitement basé sur un pipeline avec de nombreuses interactions au niveau du système.

En bout de ligne, vous devez être capable de présenter de grands ensembles de données de manière concrète. Pour moi, cela signifie généralement la génération de pages Web. Pour deux projets, j'ai écrit d'importantes applications Web Django permettant d'inspecter les résultats de grands projets d'enquête Chandra. Cela comprenait beaucoup de grattage (catalogues multi-longueurs d'onde) et ainsi de suite. Celles-ci ont juste été utilisées en interne pour naviguer dans le jeu de données et aider à la génération du catalogue source, mais elles ont été inestimables dans l'ensemble du projet.

En passant à la fonctionnalité d'analyse spécifique à l'astronomie, il semble clair que la communauté est solidement derrière Python. Cela se voit dans la profondeur des packages disponibles et le niveau d'activité de développement, tant au niveau individuel qu'institutionnel ( http://www.astropython.org/resources ). Compte tenu de ce niveau d’infrastructure disponible et opérationnel, je pense qu’il est logique de s’efforcer de transférer les outils statistiques R les plus utiles pour l’astronomie vers Python. Cela viendrait compléter la capacité actuelle d'appeler des fonctions R depuis Python via rpy2.Si vous êtes intéressé, je vous recommande fortement de lire cet article, il s'agit ici de comparer les langages de programmation https://diceus.com/what-technology- is-b ... nd-java-r / J'espère que cela vous aidera. Bonne chance


3

Python a une bibliothèque riche, il est également orienté objet, facile à programmer. Il peut également être utilisé comme langage frontal. C'est pourquoi il est utilisé dans l'intelligence artificielle. Plutôt que l'IA, il est également utilisé dans l'apprentissage automatique, l'informatique logicielle, la programmation PNL, ainsi que dans les scripts Web ou le piratage éthique.


C'est une excellente réponse, car Python est en effet le langage de programmation numéro un spécialement pour les scripts Web. Au début, je craignais que vous ne puissiez expliquer au monde entier qu’AutoIt est le langage de script idéal, car il est utilisé pour l’écriture en Aimbot.
Manuel Rodriguez le

2

En effet, python est un langage de programmation moderne orienté objet et utilisant une syntaxe élégante. Contrairement aux langages de programmation structurels tels que Java et C ++, sa nature de script permet au programmeur de tester son hypothèse très rapidement. En outre, il existe de nombreuses bibliothèques d’apprentissage automatique à code source libre (y compris scikit-learn et Keras) qui élargissent l’utilisation de python dans le domaine de l’IA.


2

C'est un mélange de nombreux facteurs qui, ensemble, en font une très bonne option pour développer des systèmes cognitifs.

  • Développement rapide
  • Prototypage rapide
  • Syntaxe conviviale avec une lisibilité presque humaine
  • Diverses bibliothèques standard et multi-paradigmes
  • Il peut être utilisé comme interface pour les moteurs performants écrits dans des langages compilés tels que C / C ++.

Les bibliothèques numériques performantes existantes, telles que numpy et autres, effectuent déjà pour vous le travail intensif en vrac qui vous permet de vous concentrer davantage sur les aspects architecturaux de votre système.

En outre, il existe une très grande communauté et un écosystème autour de Python, ce qui permet de disposer d’un ensemble diversifié d’outils disponibles, orientés vers différents types de tâches.


0

Je préfère en fait C pour l'apprentissage automatique. Parce que, comme dans la vie, dans le monde tel que nous le connaissons, consiste en des «portes logiques» sans fin (ce qui revient fondamentalement à lancer une pièce de monnaie - il y aura 2 résultats possibles - sans compter le troisième: atterrir sur le côté!). Ce qui signifie également que même si l'univers semble interminable, nous n'arrêtons toujours pas de trouver des choses encore plus petites que la dernière petite chose, non?

Donc ... Pour le mettre dans un contexte lors de la programmation en C, je peux contrôler plus efficacement l'utilisation de la mémoire en codant des fragments plus petits combinés, pour toujours former des "fragments de code" plus petits et efficaces, qui constituent ce que nous appellerions " cellules "en biologie (il a une fonction mesurable, et a des propriétés prédéfinies).

Ainsi, j'aime optimiser pour une utilisation réduite de la RAM, du processeur, etc. lors de la programmation de l'IA. Je n'ai fait que nourrir avec un algo génétique de base en C, mais le réseau de neurones récurrent plus avancé que j'ai écrit en C ++ (UNIQUEMENT à cause de la simplicité d'utilisation de "std :: nom de vecteur;"; j'ai donc écrit mon propre cvector.c: https://pastebin.com/sBbxmu9T & cvector.h: https://pastebin.com/Rd8B7mK4 & debug: https://pastebin.com/kcGD8Fzf - compiler avec gcc -o debug debug.c cvector.c). En fait, cela a beaucoup aidé à optimiser l'utilisation du processeur (et l'exécution en général) lors de la création de réseaux neuronaux optimisés.

J'espère que ça aide.

EDIT: Donc, dans un sens, je vois vraiment le contraire de ce que AlexPnt voit, quand il s’agit d’explorer ce qui est possible dans le domaine du "moi".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.