Maison >développement back-end >Tutoriel Python >Python est le langage leader pour l'intelligence artificielle

Python est le langage leader pour l'intelligence artificielle

伊谢尔伦
伊谢尔伦original
2017-02-06 13:30:202319parcourir

Qui deviendra le premier langage de développement à l’ère de l’IA et du big data ? C’est une question qui ne nécessite aucun débat. S'il y a trois ans, Matlab, Scala, R, Java et Python avaient encore leurs propres opportunités et que la situation n'était toujours pas claire, alors trois ans plus tard, la tendance est très claire, surtout après l'open source PyTorch de Facebook il y a deux jours, Python a devenir une IA La position de la langue la plus populaire de l'époque est fondamentalement établie, et le suspense de l'avenir est de savoir qui pourra assurer la deuxième place.

La victoire de l'IA de Google sur un maître du Go est un moyen de mesurer le développement soudain et rapide de l'intelligence artificielle, et met également en lumière la façon dont ces technologies se sont développées et comment elles peuvent se développer à l'avenir.

Python est le langage leader pour lintelligence artificielle

L'intelligence artificielle est une technologie futuriste qui travaille actuellement sur son propre ensemble d'outils. Une série de développements ont eu lieu au cours des dernières années : parcourir plus de 300 000 miles sans accident et être légal dans trois États a marqué le début d'une étape importante pour la conduite autonome ; IBM Watson a battu le double champion de Jeopardy ; la technologie d'apprentissage statistique a évolué ; De consommateur à consommateur Les chercheurs s'intéressent à la reconnaissance de formes sur des ensembles de données complexes comprenant des milliards d'images. Ces développements ne manqueront pas d’accroître l’intérêt des scientifiques et des gourous pour l’intelligence artificielle, ce qui permettra également aux développeurs de comprendre la véritable nature de la création d’applications d’intelligence artificielle. La première chose à noter lors de leur développement est :

Quel langage de programmation est adapté à l’intelligence artificielle ?

Chaque langage de programmation que vous maîtrisez peut être un langage de développement pour l'intelligence artificielle.

Les programmes d'intelligence artificielle peuvent être implémentés en utilisant presque tous les langages de programmation, les plus courants sont : Lisp, Prolog, C/C et récemment Java, et récemment Python.

LISP

Les langages de haut niveau comme LISP sont très populaires en intelligence artificielle car le prototypage rapide est choisi plutôt que l'exécution rapide après des années de recherche dans diverses universités. Certaines fonctionnalités telles que le garbage collection, le typage dynamique, les fonctions de données, la syntaxe unifiée, l'environnement interactif et l'évolutivité rendent LIST très adapté à la programmation de l'intelligence artificielle.

PROLOG

Ce langage combine efficacement les avantages de haut niveau et traditionnels du LISP, très utile pour l'IA. Sa force réside dans la résolution de « problèmes basés sur la logique ». Prolog fournit des solutions aux problèmes liés à la logique, ou ses solutions ont des caractéristiques logiques simples. Son principal inconvénient (à mon humble avis) est qu'il est difficile à apprendre.

C/C

Tout comme Cheetah, C/C est principalement utilisé lorsque la vitesse d'exécution est requise. Il est principalement utilisé pour des programmes simples, l’intelligence artificielle statistique comme les réseaux de neurones en étant un exemple courant. La rétropropagation n'utilise que quelques pages de code C/C, mais elle nécessite de la vitesse. Même si le programmeur ne peut qu'améliorer un peu la vitesse, c'est bien.

JAVA

Pour les nouveaux arrivants, Java utilise plusieurs concepts de LISP, le plus évident étant le garbage collection. Sa portabilité le rend applicable à n’importe quel programme et il dispose également d’un ensemble de types intégrés. Java n'est pas aussi avancé que LISP et Prolog, et il n'est pas aussi rapide que C, mais si la portabilité est requise, c'est le meilleur.

PYTHON

Python est un langage compilé avec LISP et JAVA. D'après la comparaison de Lips et Python dans l'article de Norvig, les deux langages sont très similaires, avec seulement quelques différences mineures. Il existe également JPthon, qui donne accès aux interfaces utilisateur graphiques Java. C'est la raison pour laquelle Peter Norvig a choisi d'utiliser JPyhton pour traduire les programmes de ses livres sur l'intelligence artificielle. JPython lui permet d'utiliser des démonstrations d'interface graphique portables et des bibliothèques http/ftp/html portables. Il est donc très approprié comme langage d’intelligence artificielle.

Avantages de l'utilisation de Python par rapport à d'autres langages de programmation pour l'intelligence artificielle

Documentation de haute qualité

Indépendant de la plate-forme, peut être utilisé sur toutes les versions *nix maintenant

Plus facile et plus rapide à apprendre que les autres langages de programmation orientés objet

Python possède de nombreuses bibliothèques d'amélioration d'image comme Python Imaging Libary, VTK et Maya 3D Visualization Toolkit, Numeric Python, Scientific Python et bien d'autres disponibles outils pour applications numériques et scientifiques.

Python est très bien conçu, rapide, robuste, portable et extensible. Ce sont évidemment des facteurs très importants pour les applications de l’intelligence artificielle.

est utile pour un large éventail de tâches de programmation à des fins scientifiques, des petits scripts shell aux applications de sites Web entiers.

Enfin, c’est open source. Le même soutien communautaire est disponible.

Bibliothèque AI Python

Bibliothèque IA globale

AIMA : Python implémente les algorithmes de « Intelligence artificielle : une approche moderne » de Russell à Norvigs

pyDatalog : Moteur de programmation logique en Python

SimpleAI : Python implémente l'algorithme d'intelligence artificielle décrit dans le livre "Artificial Intelligence: A Modern Approach". Il vise à fournir une bibliothèque facile à utiliser, bien documentée et testée.

EasyAI : un moteur python pour les jeux d'IA à deux joueurs (maximum négatif, table de remplacement, solution de jeu)

Bibliothèque de Machine Learning

PyBrain Un outil flexible, simple et efficace pour les algorithmes pour les tâches d'apprentissage automatique, il s'agit d'une bibliothèque modulaire d'apprentissage automatique Python. Il fournit également une variété d'environnements prédéfinis pour tester et comparer vos algorithmes.

PyML est un framework bilatéral écrit en Python, axé sur SVM et d'autres méthodes du noyau. Il prend en charge Linux et Mac OS X.

scikit-learn vise à fournir des solutions simples mais puissantes qui peuvent être réutilisées dans différents contextes : l'apprentissage automatique comme outil polyvalent en science et en ingénierie. C'est un module de python qui intègre des algorithmes classiques d'apprentissage automatique. Ces algorithmes sont étroitement liés au package scientifique python (numpy, scipy.matplotlib).

MDP-Toolkit est un framework de traitement de données Python qui peut être facilement étendu. Il collecte des algorithmes d'apprentissage supervisés et non supervisés et d'autres unités de traitement de données, qui peuvent être combinées en séquences de traitement de données ou en structures de réseau à réaction plus complexes. La mise en œuvre du nouvel algorithme est simple et intuitive. Les algorithmes disponibles augmentent régulièrement, notamment les méthodes de traitement du signal (analyse en composantes principales, analyse en composantes indépendantes, analyse de caractéristiques lentes), les méthodes d'apprentissage de flux (intégration linéaire locale), la classification centralisée et les méthodes probabilistes (analyse factorielle, RBM), les méthodes de prétraitement des données. , etc.

Bibliothèque de langage naturel et de traitement de texte

Module Python open source NLTK, données et documentation linguistiques, utilisé pour rechercher et développer le traitement du langage naturel et l'analyse de texte. Il existe des versions pour Windows, Mac OSX et Linux.

Case

a mené une expérimentation, un logiciel qui utilise l'intelligence artificielle et l'Internet des objets pour analyser le comportement des employés. Le logiciel fournit un retour d'information utile aux employés sur leurs distractions émotionnelles et comportementales, améliorant ainsi les habitudes de gestion et de travail.

Formation utilisant la bibliothèque de machine learning Python, les concepts opencv et haarcascading. Un exemple de POC a été conçu pour détecter les émotions de base telles que le bonheur, la colère, la tristesse, le dégoût, la suspicion, le mépris, le sarcasme et la surprise, renvoyées via des caméras sans fil placées à différents endroits. Les données collectées sont centralisées dans une base de données cloud et même l'ensemble du bureau peut être récupéré d'un simple clic sur un bouton depuis un appareil ou un ordinateur de bureau Android.

Les développeurs progressent en analysant en profondeur la complexité émotionnelle des visages et en approfondissant les détails. Avec l'aide d'algorithmes d'apprentissage profond et d'apprentissage automatique, l'analyse des performances individuelles des employés et les commentaires appropriés des employés/équipes peuvent être facilités.

Conclusion

Python joue un rôle important dans l'intelligence artificielle car il fournit un bon framework comme scikit-learn : l'apprentissage automatique en Python a permis de répondre à la plupart des problèmes dans ce domaine. D3.js est l'un des outils les plus puissants et les plus faciles à utiliser pour la visualisation de documents basée sur les données en JS. Les frameworks de traitement et son prototypage rapide en font un langage important qui ne peut être ignoré. L'IA nécessite beaucoup de recherche, il n'est donc pas nécessaire de demander un code passe-partout Java de 500 Ko pour tester une nouvelle hypothèse. Presque toutes les idées en Python peuvent être implémentées rapidement en 20 à 30 lignes de code (il en va de même pour JS et LISP). C’est donc un langage très utile pour l’intelligence artificielle.

Pour les développeurs qui souhaitent rejoindre l'industrie de l'IA et du Big Data, mettre des œufs dans le panier Python est non seulement sûr, mais aussi indispensable. Ou pour le dire autrement, si vous souhaitez travailler dans cette industrie à l'avenir, ne pensez à rien, apprenez simplement Python les yeux fermés d'abord. Bien sûr, Python n'est pas sans problèmes et défauts. Vous pouvez et devez avoir un autre, voire plusieurs langages pour correspondre à Python, mais il ne fait aucun doute que Python occupera fermement la position de premier langage d'analyse et de données. IA. Je pense même que parce que Python a assuré sa position, parce que cette industrie aura besoin d'un grand nombre de praticiens dans le futur, et parce que Python devient rapidement le langage d'enseignement privilégié pour les cours d'introduction à la programmation dans les universités, collèges et écoles primaires du monde entier. , ce langage de script dynamique open source a une grande opportunité d'être utilisé dans un avenir proche, il deviendra le premier véritable espéranto de programmation.

Discuter des avantages et des inconvénients des langages de programmation a toujours été considéré comme un sujet de guerre des mots et est méprisé par les seniors. Mais je pense que la montée en puissance de Python cette fois est un gros problème. Imaginez quinze ans plus tard, tous les travailleurs du savoir de moins de 40 ans, y compris les médecins et les ingénieurs en construction, des secrétaires de bureau aux réalisateurs de films, des compositeurs aux vendeurs, pouvaient utiliser le même langage de programmation de base pour le traitement des données, en faisant appel aux API de l'intelligence artificielle. le cloud, contrôlant des robots intelligents, puis communiquant des idées entre eux. L'importance de ce réseau collaboratif de programmation universelle dépassera de loin tout conflit de langage de programmation. Actuellement, Python semble être le candidat le plus prometteur pour ce rôle.

La victoire de Python est surprenante car ses défauts sont évidents. Il a sa propre syntaxe, ce qui met de nombreux vétérans mal à l'aise ; Python « nu » est très lent, allant des dizaines à des milliers de fois plus lent que le langage C sur différentes tâches en raison du Global Interpreter Lock (GIL) ), un seul ; Le programme Python ne peut pas être exécuté simultanément sur plusieurs cœurs ; les deux versions de Python 2 et Python 3 fonctionnent en parallèle depuis longtemps, et de nombreux modules doivent maintenir deux versions différentes en même temps, ce qui entraîne beaucoup de confusion inutile. et des problèmes pour les développeurs ; Parce qu'il n'est contrôlé par aucune entreprise, aucun géant de la technologie n'a jamais été disposé à prendre en charge Python. Par conséquent, par rapport au large éventail d'applications de Python, l'investissement et le support pour son infrastructure de base sont en fait très faibles. . À ce jour, Python, âgé de 26 ans, ne dispose pas d'un compilateur JIT standard officiel. En revanche, le langage Java a reçu le JIT standard au cours des trois premières années suivant sa sortie.

Une autre chose illustre encore plus le problème. Le code principal GIL de Python a été écrit par Guido van Rossum, le créateur du langage, en 1992. Au cours des dix-huit années qui ont suivi, personne n'a modifié un seul octet de ce code crucial. Dix-huit ans ! Ce n'est qu'en 2010 qu'Antoine Pitrou a apporté la première amélioration à GIL depuis près de deux décennies, et celle-ci n'a été utilisée que dans Python 3.x. Cela signifie que pour la plupart des développeurs utilisant Python 2.7 aujourd'hui, chaque programme qu'ils écrivent est encore étroitement contraint par un morceau de code d'il y a 26 ans.

Python est un tel coureur qui s'est précipité en première ligne avec divers problèmes, mais il y a encore quelques années, peu de gens croyaient qu'il avait une chance de remporter la couronne. Beaucoup de gens croyaient que la position de Java était inébranlable, certains disent que tous les programmes seront réécrits en JavaScript. Mais aujourd’hui, nous constatons que Python est déjà le premier langage pour l’analyse des données et l’IA, le premier langage de hacker pour l’attaque et la défense des réseaux, et est en train de devenir le premier langage pour l’enseignement d’introduction à la programmation et le premier langage pour la gestion des systèmes de cloud computing. Python est depuis longtemps devenu l'un des langages courants pour le développement Web, les scripts de jeux, la vision par ordinateur, la gestion de l'IoT et le développement de robots. Avec la croissance attendue du nombre d'utilisateurs de Python, il a la possibilité d'atteindre le sommet dans plusieurs domaines.

Et n'oubliez pas que la grande majorité des utilisateurs de Python à l'avenir ne seront pas des programmeurs professionnels, mais les mêmes personnes qui utilisent encore Excel, PowePoint, SAS, Matlab et les éditeurs vidéo aujourd'hui. En prenant l’IA comme exemple, nous devons d’abord nous demander : où se trouvent les principaux groupes d’IA ? Si nous parlons de ce sujet de manière statique aujourd’hui, vous pourriez penser que la force principale de l’IA est constituée de scientifiques en IA travaillant dans des instituts de recherche, d’experts en apprentissage automatique et d’experts en algorithmes titulaires d’un doctorat. Mais la dernière fois, j'ai mentionné le « syllogisme des dividendes de l'IA » de Kai-Fu Lee, qui nous dit clairement que tant que nous adoptons une vision à plus long terme et regardons en arrière de trois à cinq ans, vous verrez que l'ensemble de la main-d'œuvre de l'industrie de l'IA formera progressivement un Dans cette immense pyramide, les scientifiques en IA mentionnés ci-dessus ne sont que quelques-uns au sommet. 95 % ou plus du personnel technique en IA seront des ingénieurs en IA, des ingénieurs d'application et des utilisateurs d'outils d'IA. Je crois que presque toutes ces personnes seront balayées par Python et deviendront une énorme force de réserve dans le camp Python. Ces utilisateurs potentiels de Python sont encore en dehors du cercle technique, mais à mesure que les applications d'IA se développent, des millions d'enseignants, d'employés d'entreprises, d'ingénieurs, de traducteurs, d'éditeurs, de médecins, de commerciaux, de gestionnaires et de fonctionnaires seront entourés de leurs connaissances respectives de l'industrie et de leurs ressources de données. le domaine afflue dans la marée Python et IA, modifiant profondément le modèle général et l'apparence de l'ensemble de l'industrie informatique, ou DT (technologie des données).

Pourquoi Python peut-il rattraper son retard ?

Si je parle de manière générale, je peux énumérer certains des avantages de Python, tels que sa conception de langage simple et élégante, sa convivialité pour les programmeurs et sa grande efficacité de développement. Mais je ne pense pas que ce soit la cause profonde puisque certains autres langages ne sont pas mauvais dans ce domaine.

Certaines personnes pensent que l'avantage de Python réside dans ses riches ressources, ses algorithmes numériques solides, ses icônes et son infrastructure de traitement de données, et qu'il a établi un très bon environnement écologique, attirant un grand nombre de scientifiques et d'experts dans divers domaines à utiliser. La boule de neige ne cesse de grossir. Mais je pense que c’est le contraire de la cause et de l’effet. Pourquoi Python peut-il inciter les gens à l’utiliser et à construire une si bonne infrastructure ? Pourquoi PHP, le meilleur langage au monde, ne dispose-t-il pas de bibliothèques comme numpy, NLTK, sk-learn, pandas et PyTorch ? Pourquoi après l'extrême prospérité de JavaScript, diverses bibliothèques de programmes sont devenues inégales et inutiles, alors que les différentes bibliothèques de programmes de Python sont à la fois prospères et ordonnées, et peuvent maintenir un niveau élevé ?

Je pense qu'il n'y a qu'une seule raison fondamentale : Python est le seul langage parmi de nombreux langages traditionnels qui a un positionnement stratégique clair et adhère toujours à son positionnement stratégique d'origine. En revanche, trop de langues continuent de faire preuve d’une diligence tactique et sans principes pour éroder et brouiller leur positionnement stratégique, et en fin de compte, elles ne peuvent qu’attendre et attendre.

Quel est le positionnement stratégique de Python ? En fait, c'est très simple. Il s'agit de créer un langage de combinaison universel, ou langage de colle, simple, facile à utiliser mais professionnel et rigoureux, afin que les gens ordinaires puissent facilement démarrer, assembler divers composants de base du programme et les utiliser. de manière coordonnée.

C'est précisément en raison de son adhésion à ce positionnement que Python place toujours la beauté et la cohérence du langage lui-même avant ses astuces uniques, l'efficacité des développeurs avant l'efficacité du processeur et les capacités d'expansion horizontale avant les capacités d'immersion verticale profonde. La persistance à long terme de ces choix stratégiques a apporté à Python un écosystème riche que d’autres langages ne peuvent égaler.

Par exemple, toute personne désireuse d'apprendre peut apprendre les parties de base de Python en quelques jours, puis faire beaucoup de choses. Ce rapport entrée-sortie peut être inégalé par aucun autre langage. Pour un autre exemple, c'est précisément parce que le langage Python lui-même est lent que lorsque les gens développent des bibliothèques de programmes de base fréquemment utilisées, ils utilisent beaucoup le langage C pour coopérer avec lui. En conséquence, les vrais programmes développés en Python s'exécutent très rapidement, car. il est très probable qu'il dépasse 80 % du temps pendant lequel le système exécute du code écrit en C. Au contraire, si Python n'est pas convaincu et insiste pour rivaliser sur la vitesse, alors le résultat sera probablement que la vitesse nue sera augmentée plusieurs fois, mais alors personne n'aura la motivation pour développer des modules C pour cela. est bien inférieur au mode mixte, et c'est très Peut-être que le langage deviendra plus complexe en conséquence, et le résultat sera un langage lent et laid.

Plus important encore, Python possède de bonnes capacités d'empaquetage, de composabilité et d'intégration. Il peut envelopper diverses complexités dans des modules Python et exposer de belles interfaces. Plusieurs fois, une bibliothèque de programmes elle-même est écrite en C/C, mais vous constaterez qu'il est très difficile d'utiliser directement C ou C pour appeler cette bibliothèque de programmes, de la configuration de l'environnement à l'appel d'interface. Au lieu de cela, utilisez une autre couche pour Python. la bibliothèque d'emballages est plus propre, plus rapide et plus belle. Ces caractéristiques sont devenues les puissants avantages de Python dans le domaine de l’IA. Python a également utilisé l’IA et la science des données pour se hisser au sommet de la chaîne écologique des langages de programmation. Python est lié à l’IA, qu’il s’agisse du commerce électronique, des moteurs de recherche, des réseaux sociaux ou du matériel intelligent, ils ne seront à l’avenir que des vaches à données, des nerfs électroniques et des outils d’exécution en aval de la chaîne écologique, qui seront tous des outils. obéir à leurs ordres.

Les personnes qui ne comprennent pas l’histoire du développement des langages de programmation peuvent avoir l’impression que le positionnement stratégique de Python est dû au cynisme et au manque d’esprit d’entreprise. Mais les faits ont prouvé qu’il est difficile d’être à la fois simple et rigoureux, facile à utiliser et professionnel, et il est encore plus difficile de s’en tenir au positionnement du langage de la colle.

Certaines langues sont dès le début à des fins académiques plutôt que pratiques, et la courbe d'apprentissage est trop raide, ce qui rend difficile leur approche pour les gens ordinaires. Certaines langues sont trop dépendantes du soutien commercial des sponsors qui les soutiennent. Lorsqu'elles sont bonnes, elles sont très prospères. Une fois reléguées au second plan, même leur survie devient un problème. Certains langages ont des scénarios imaginaires clairs lors de la conception, soit pour résoudre une concurrence à grande échelle, soit pour résoudre des opérations matricielles, soit pour créer des modèles de rendu de pages Web. Une fois que vous aurez quitté ce scénario, vous vous sentirez mécontent. Plus de langues, dès qu'elles obtiennent un peu de succès, elles ont hâte de devenir les champions du monde entier et d'étendre désespérément leurs tentacules dans toutes les directions, notamment en termes d'amélioration de la capacité d'expression et d'amélioration des performances, elles sont souvent excessives. agressif et n'hésitez pas à changer le langage de base au-delà de la reconnaissance. Finalement, cela devient un géant que personne ne peut contrôler. En revanche, Python est un exemple réussi de conception et d’évolution de langages de programmation modernes.

La raison pour laquelle Python est si clair dans son positionnement stratégique et si ferme dans sa pérennité stratégique est finalement parce que sa communauté a construit un mécanisme de prise de décision et de gouvernance exemplaire. Ce mécanisme est centré sur Guido van Rossum (BDFL, les Pythoners savent tous ce que cela signifie), DavidBeazley, Raymond Hettinger et d'autres, avec le PEP comme plate-forme organisationnelle, démocratique et ordonnée, centralisée et éclairée. Tant que le mécanisme lui-même sera maintenu, Python continuera de croître régulièrement dans un avenir prévisible.

Le plus susceptible de défier Python est bien sûr Java. Java dispose d’une large base d’utilisateurs, et c’est aussi un langage avec un positionnement stratégique clair et ferme. Mais je ne pense pas que Java ait de grandes chances car il est essentiellement conçu pour construire des systèmes vastes et complexes. Qu’est-ce qu’un grand système complexe ? Il s’agit d’un système clairement décrit et construit par les gens. Son ampleur et sa complexité sont exogènes ou données par le monde extérieur. L’essence de l’IA est un système d’auto-apprentissage et d’auto-organisation. Son ampleur et sa complexité sont endogènes à mesure qu’un modèle mathématique se développe tout seul, alimenté par des données. Par conséquent, la plupart des structures de langage Java ne sont pas utiles pour le traitement du Big Data et le développement de systèmes d'IA. Ce que vous maîtrisez ne peut pas être utilisé ici, et ce dont vous avez besoin ici est difficile à faire. La simplicité et la puissance de Python en matière de traitement des données sont connues de tous depuis longtemps. En comparant deux programmes d'apprentissage automatique Java et Python avec les mêmes fonctions, les gens normaux peuvent porter un jugement en seulement deux regards. Le programme Python doit être plus rafraîchissant et plus agréable.

Vers 2003 ou 2004, j'ai acheté un livre Python écrit par un Brésilien. Il a dit que la raison pour laquelle il avait fermement choisi Python était que lorsqu'il était enfant, il rêvait souvent que le monde futur serait gouverné par un gros python (python en anglais est python). A cette époque, je sentais que ce type était si pitoyable qu'il pouvait rêver d'une scène aussi terrifiante. Mais en regardant les choses aujourd'hui, peut-être qu'il était comme le programmeur Anderson dans Matrix, qui a accidentellement voyagé vers le futur et entrevu la vérité du monde.


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn