Warum ist Python eine so beliebte Sprache im AI-Bereich?


47

Zuallererst bin ich ein Anfänger, der AI studiert, und dies ist keine meinungsorientierte Frage oder eine Frage zum Vergleichen von Programmiersprachen. Ich sage nicht, dass das die beste Sprache ist. Tatsache ist jedoch, dass die meisten der bekannten KI-Frameworks Python in erster Linie unterstützen. Sie können sogar mehrsprachig sein, zum Beispiel TensorFlow, das Python, C ++ oder CNTK von Microsoft unterstützt, das C # und C ++ unterstützt, aber das am häufigsten verwendete ist Python (ich meine mehr Dokumentation, Beispiele, größere Community, Unterstützung usw.). Auch wenn Sie C # wählen (entwickelt von Microsoft und meiner primären Programmiersprache), muss die Python-Umgebung eingerichtet sein.

In anderen Foren habe ich gelesen, dass Python für AI bevorzugt wird, da der Code vereinfacht und übersichtlicher ist und sich gut für schnelles Prototyping eignet.

Ich habe mir einen Film mit AI-Themen angesehen (Ex_Machina). In einigen Szenen hackt der Hauptcharakter die Oberfläche der Hausautomation. Ratet mal, welche Sprache vor Ort war? Python.

Was ist die große Sache, die Beziehung zwischen Python und KI?


Denken Sie daran, dass die Darstellung von Programmiersprachen in Filmen normalerweise nicht mit dem wirklichen Leben zusammenhängt! Alles, was für Laien wie ein kryptisches Gobbling aussieht, ist in der Regel in Ordnung ...
Oliver Mason

Wenn C # Ihre wichtigste Programmiersprache ist, könnte Sie scisharpstack.org
henon

Antworten:


32

Python enthält eine große Anzahl eingebauter Bibliotheken. Viele der Bibliotheken befassen sich mit künstlicher Intelligenz und maschinellem Lernen. Einige der Bibliotheken sind Tensorflow (eine hochrangige neuronale Netzwerkbibliothek), Scikit-Learn (für Data Mining, Datenanalyse und maschinelles Lernen), Pylearn2 (flexibler als Scikit-Learn) usw. Die Liste geht weiter und nie endet.

Sie können einige Bibliotheken finden hier .

Python hat eine einfache Implementierung für OpenCV. Was Python bei allen beliebt macht, ist seine leistungsstarke und einfache Implementierung.
Für andere Sprachen müssen Studenten und Forscher die Sprache kennenlernen, bevor sie mit dieser Sprache in ML oder AI einsteigen. Dies ist bei Python nicht der Fall. Selbst ein Programmierer mit sehr grundlegenden Kenntnissen kann leicht mit Python umgehen. Abgesehen davon ist die Zeit, die jemand mit dem Schreiben und Debuggen von Code in Python verbringt, viel geringer als in C, C ++ oder Java. Genau das wollen die Schüler von AI und ML. Sie möchten keine Zeit mit dem Debuggen des Codes für Syntaxfehler verbringen, sondern mehr Zeit mit ihren Algorithmen und Heuristiken in Bezug auf AI und ML verbringen .
Nicht nur die Bibliotheken, sondern auch die Tutorials und die Handhabung der Schnittstellen sind online verfügbar . Die Leute bauen ihre eigenen Bibliotheken und laden sie auf GitHub oder anderswo hoch, damit sie von anderen benutzt werden können.

All diese Funktionen machen Python für sie geeignet.


10
"Sie möchten keine Zeit mit dem Debuggen des Codes für Syntaxfehler verbringen" - Möchte ein Programmierer dies tun? Ist Python die beste Sprache für alles? Ich bin nicht überzeugt.
Frank Puffer

24

Praktisch alle der beliebtesten und am häufigsten verwendeten Deep-Learning-Frameworks sind in Python auf der Oberfläche und C / C ++ unter der Haube implementiert.

Ich denke, der Hauptgrund dafür ist, dass Python in Wissenschaft und Forschung weit verbreitet ist, da es einfach ist, schnell mit neuen Ideen und Code-Prototypen in einer Sprache mit minimaler Syntax wie Python zu experimentieren.

Darüber hinaus kann es einen anderen Grund geben. Wie ich sehen kann, pushen die meisten überbordenden Online-Kurse zu KI Python, weil es für Anfänger-Programmierer einfach ist. AI ist das neue Marketing-Schlagwort für den Verkauf von Programmierkursen. (Wenn Sie AI erwähnen, können Sie Programmierkurse an Kinder verkaufen, die HAL 3000 bauen möchten, aber nicht einmal eine Hello World schreiben oder eine Trendlinie in ein Excel-Diagramm einfügen können. :)


4
"....... die meisten überbordenden Online-Kurse über KI bringen Python auf Trab, weil es für Programmieranfänger einfach ist. KI ist das neue Marketing-Schlagwort für den Verkauf von Programmierkursen ..." . Kann nicht mehr zustimmen.
Emran Hussain

5

Python hat eine Standardbibliothek in der Entwicklung und einige für AI. Es verfügt über eine intuitive Syntax, einen grundlegenden Kontrollfluss und Datenstrukturen. Es unterstützt auch die interpretative Laufzeit ohne Standard-Compiler-Sprachen. Dies macht Python besonders nützlich für Prototyping-Algorithmen für AI.


Netter Punkt über die Interpretationsfähigkeit von Python. Es scheint, dass Flexibilität und Entwicklungsgeschwindigkeit der größeren "Leistung" kompilierter Sprachen vorgezogen werden.
DukeZhou

5

Was mich für meine Analyse-Arbeit an Python interessiert, ist der "volle Stapel" von Werkzeugen, die verfügbar sind, weil sie als Allzwecksprache und R als domänenspezifische Sprache konzipiert sind. Die eigentliche Datenanalyse ist nur ein Teil der Geschichte, und Python verfügt über umfangreiche Tools und eine saubere, voll funktionsfähige Sprache, die von Anfang bis Ende in einer einzigen Sprache verfügbar ist (ungeachtet der Verwendung von C / Fortran-Wrappern).

Im Front-End-Bereich beginnt meine Arbeit normalerweise mit dem Abrufen von Daten aus verschiedenen Quellen, einschließlich Datenbanken, Dateien in verschiedenen Formaten oder Web-Scraping. Die Python-Unterstützung hierfür ist gut und die meisten Datenbank- oder gängigen Datenformate verfügen über eine solide, gut gepflegte Bibliothek für die Benutzeroberfläche. R scheint einen allgemeinen Reichtum an Daten-E / A zu haben, obwohl sich das R-Paket für FITS anscheinend nicht in der aktiven Entwicklung befindet (keine Veröffentlichung von FITSio in 2,5 Jahren?). Ein Großteil der nächsten Arbeitsphase erfolgt normalerweise in der Phase der Organisation der Daten und der Verarbeitung auf Pipeline-Basis mit vielen Interaktionen auf Systemebene.

Im Backend müssen Sie in der Lage sein, große Datenmengen auf greifbare Weise darzustellen, und für mich bedeutet dies in der Regel das Generieren von Webseiten. Für zwei Projekte habe ich bedeutende Django-Web-Apps geschrieben, um die Ergebnisse großer Chandra-Umfrageprojekte zu überprüfen. Dies beinhaltete viel Schaben (Kataloge mit mehreren Wellenlängen) und so weiter. Diese wurden nur intern zum Navigieren im Datensatz und zur Unterstützung der Quellkataloggenerierung verwendet, waren jedoch für das Gesamtprojekt von unschätzbarem Wert.

Wenn wir uns der astronomiespezifischen Funktionalität für die Analyse zuwenden, scheint klar zu sein, dass die Community fest hinter Python steht. Dies zeigt sich in der Tiefe der verfügbaren Pakete und dem Grad der Entwicklungstätigkeit, sowohl auf individueller als auch auf institutioneller Ebene ( http://www.astropython.org/resources ). Angesichts dieser verfügbaren und in Betrieb befindlichen Infrastruktur ist es meines Erachtens sinnvoll, sich direkt darum zu bemühen, die nützlichsten statistischen R-Tools für die Astronomie auf Python zu portieren. Dies würde die derzeitige Fähigkeit ergänzen, R-Funktionen von Python über rpy2 aufzurufen. Wenn Sie interessiert sind, empfehle ich Ihnen nachdrücklich, diesen Artikel zu lesen. Hier geht es um den Vergleich von Programmiersprachen https://diceus.com/what-technology- is-b ... nd-java-r / Ich hoffe es hilft. Viel Glück


3

Python verfügt über eine umfangreiche Bibliothek, ist objektorientiert und einfach zu programmieren. Es kann auch als Frontend-Sprache verwendet werden. Deshalb wird es in der künstlichen Intelligenz eingesetzt. Anstelle von KI wird es auch beim maschinellen Lernen, beim Soft-Computing und bei der NLP-Programmierung sowie beim Web-Scripting oder beim ethischen Hacking verwendet.


Dies ist eine großartige Antwort, da Python in der Tat die Programmiersprache Nummer eins ist, insbesondere für Web-Skripte. Zuerst hatte ich Angst, dass man der Welt erklären könnte, dass AutoIt die perfekte Skriptsprache ist, weil es für das Schreiben mit Aimbot verwendet wird.
Manuel Rodriguez

2

Das liegt daran, dass Python eine moderne objektorientierte Programmiersprache für Skripte ist, die eine stilvolle Syntax aufweist. Im Gegensatz zu strukturellen Programmiersprachen wie Java und C ++ kann der Programmierer seine Hypothese durch Skripterstellung sehr schnell testen. Darüber hinaus gibt es viele Open-Source-Bibliotheken für maschinelles Lernen (einschließlich Scikit-Learn und Keras), die die Verwendung von Python im AI-Bereich erweitern.


2

Es ist eine Mischung aus vielen Faktoren, die es zusammen zu einer sehr guten Option machen, kognitive Systeme zu entwickeln.

  • Schnelle Entwicklung
  • Rapid-Prototyping
  • Freundliche Syntax mit fast menschlicher Lesbarkeit
  • Diverse Standardbibliothek und Multiparadigma
  • Es kann als Frontend für performante Backends verwendet werden, die in kompilierten Sprachen wie C / C ++ geschrieben sind.

Bestehende leistungsfähige numerische Bibliotheken wie Numpy und andere erledigen bereits die intensive Massenarbeit für Sie, sodass Sie sich mehr auf architektonische Aspekte Ihres Systems konzentrieren können.

Außerdem gibt es eine sehr große Community und ein sehr großes Ökosystem um Python, was zu einer Vielzahl verfügbarer Tools führt, die sich an unterschiedlichen Aufgaben orientieren.


0

Ich bevorzuge C für maschinelles Lernen. Denn wie im Leben, in der Welt, wie wir sie kennen, besteht es aus endlosen "logischen Toren" (was im Grunde wie das Werfen einer Münze ist - es wird 2 mögliche Ergebnisse geben - das dritte nicht mitgerechnet: Landung auf der Seite!). Das bedeutet auch, dass wir, obwohl das Universum nie zu enden scheint, immer noch die Dinge finden, die noch kleiner sind als das kleinste, oder?

Also ... Um es in einen Kontext zu stellen, wenn ich C programmiere, kann ich die Speichernutzung effizienter steuern, indem ich kleinere Ausschnitte codiere, die kombiniert werden, um immer kleinere und effiziente "Codefragmente" zu bilden, die das ausmachen, was wir nennen würden. " Zellen "in der Biologie (es hat eine messbare Funktion und einige voreingestellte Eigenschaften).

Daher optimiere ich bei der AI-Programmierung gerne auf niedrige RAM-Auslastung, niedrige CPU-Auslastung usw. Ich habe nur mit einem grundlegenden genetischen Algo in C vorwärtsgetrieben, aber mit dem fortgeschritteneren rekurrenten neuronalen Netzwerk, das ich in C ++ geschrieben habe (NUR wegen der Einfachheit der Verwendung von "std :: vector name;", also habe ich meine eigene cvector.c geschrieben: https://pastebin.com/sBbxmu9T & cvector.h: https://pastebin.com/Rd8B7mK4 & debug: https://pastebin.com/kcGD8Fzf - kompilieren Sie mit gcc -o debug debug.c cvector.c). Dies half VIELEN bei der Suche nach einer Optimierung der CPU-Auslastung (und der Gesamtlaufzeit) beim Erstellen optimierter neuronaler Netze.

Ich hoffe es hilft.

EDIT: Also ich sehe in gewisser Hinsicht wirklich das Gegenteil von dem, was AlexPnt sieht, wenn es darum geht, zu erforschen, was im Bereich eines "Selbst" möglich ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.