एआई क्षेत्र में पायथन इतनी लोकप्रिय भाषा क्यों है?


47

सबसे पहले, मैं एअर इंडिया का अध्ययन करने वाला एक शुरुआती हूँ और यह प्रोग्रामिंग भाषाओं की तुलना करने के लिए एक राय उन्मुख प्रश्न या एक नहीं है। मैं यह नहीं कह रहा हूं कि यह सबसे अच्छी भाषा है। लेकिन तथ्य यह है कि अधिकांश प्रसिद्ध एआई फ्रेमवर्क में पायथन के लिए प्राथमिक समर्थन है। वे यहां तक ​​कि बहुभाषी समर्थित हो सकते हैं, उदाहरण के लिए, TensorFlow जो Microsoft से Python, C ++ या CNTK का समर्थन करते हैं जो C # और C ++ का समर्थन करते हैं, लेकिन सबसे अधिक इस्तेमाल Python का है (मेरा मतलब है अधिक प्रलेखन, उदाहरण, बड़ा समुदाय, समर्थन आदि)। यहां तक ​​कि अगर आप C # (Microsoft और मेरी प्राथमिक प्रोग्रामिंग भाषा द्वारा विकसित) चुनते हैं, तो आपके पास पाइथन पर्यावरण स्थापित होना चाहिए।

मैंने अन्य मंचों में पढ़ा कि पायथन एआई के लिए पसंद किया जाता है क्योंकि कोड सरलीकृत और क्लीनर है, तेज प्रोटोटाइप के लिए अच्छा है।

मैं एआई विषयगत (Ex_Machina) के साथ एक फिल्म देख रहा था। कुछ दृश्य में, मुख्य चरित्र घर स्वचालन के इंटरफ़ेस को हैक करता है। लगता है कि घटनास्थल पर कौन सी भाषा थी? अजगर।

तो क्या बड़ी बात है, पायथन और एआई के बीच संबंध?


बस ध्यान रखें कि फिल्मों में प्रोग्रामिंग भाषाओं का प्रतिनिधित्व आमतौर पर वास्तविक जीवन से संबंधित नहीं है! कुछ भी जो लोगों को बिछाने के लिए क्रिप्टिक gobbledegook जैसा दिखता है, आमतौर पर ठीक है ...
ओलिवर मेसन

यदि C # आपकी मुख्य प्रोग्रामिंग भाषा है, तो आपकी रुचि scisharpstack.org
हेनन

जवाबों:


32

अजगर भारी मात्रा में इनबिल्ट लाइब्रेरियों के साथ आता है। कई लाइब्रेरी आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग के लिए हैं। पुस्तकालयों में से कुछ Tensorflow (जो उच्च-स्तरीय तंत्रिका नेटवर्क लाइब्रेरी है), scikit-learn (डेटा माइनिंग, डेटा विश्लेषण और मशीन लर्निंग के लिए), pylearn2 (scikit-learn की तुलना में अधिक लचीला), आदि की सूची जारी रहती है और कभी नहीं। समाप्त होता है।

आप यहां कुछ लाइब्रेरी देख सकते हैं ।

पायथन ने ओपनसीवी के लिए एक आसान कार्यान्वयन किया है। पायथन को सभी के लिए पसंदीदा बनाता है इसका शक्तिशाली और आसान कार्यान्वयन।
अन्य भाषाओं के लिए, छात्रों और शोधकर्ताओं को उस भाषा के साथ ML या AI में आने से पहले भाषा को जानना होगा। अजगर के साथ ऐसा नहीं है। यहां तक ​​कि बहुत बुनियादी ज्ञान वाला एक प्रोग्रामर आसानी से अजगर को संभाल सकता है। इसके अलावा, जब C, C ++ या Java की तुलना में किसी ने अजगर में कोड लिखने और डिबगिंग पर समय कम किया है। एआई और एमएल के छात्र यही चाहते हैं। वे वाक्यविन्यास त्रुटियों के लिए कोड डिबगिंग पर समय बिताना नहीं चाहते हैं, वे एआई और एमएल से संबंधित अपने एल्गोरिदम और सांख्यिकी पर अधिक समय बिताना चाहते हैं
न केवल पुस्तकालयों बल्कि उनके ट्यूटोरियल, इंटरफेस से निपटने के लिए आसानी से ऑनलाइन उपलब्ध हैं । लोग अपने स्वयं के पुस्तकालयों का निर्माण करते हैं और उन्हें GitHub या अन्य जगहों पर दूसरों द्वारा उपयोग किए जाने के लिए अपलोड करते हैं।

ये सभी विशेषताएं पायथन को उनके लिए उपयुक्त बनाती हैं।


10
"वे वाक्यविन्यास त्रुटियों के लिए कोड डिबगिंग पर समय बिताना नहीं चाहते हैं" - क्या कोई प्रोग्रामर ऐसा करना चाहता है? क्या पायथन सब कुछ के लिए सबसे अच्छा है? मैं आश्वस्त नहीं हूँ।
फ्रैंक पफर

24

व्यावहारिक रूप से सभी सबसे लोकप्रिय और व्यापक रूप से उपयोग किए जाने वाले गहरे-सीखने के ढांचे को सतह पर पायथन में लागू किया जाता है और हुड के नीचे सी / सी ++।

मुझे लगता है कि इसका मुख्य कारण यह है कि अजगर का व्यापक रूप से वैज्ञानिक और अनुसंधान समुदायों में उपयोग किया जाता है, क्योंकि पायथन जैसे न्यूनतम वाक्यविन्यास वाली भाषा में नए विचारों और कोड प्रोटोटाइप के साथ प्रयोग करना आसान है।

इसके अलावा एक और कारण हो सकता है। जैसा कि मैं देख सकता हूं, AI पर अति-सम्मोहित ऑनलाइन पाठ्यक्रम पायथन को आगे बढ़ा रहे हैं क्योंकि यह नौसिखिया प्रोग्रामर के लिए आसान है। AI प्रोग्रामिंग कोर्स बेचने के लिए नया मार्केटिंग हॉट वर्ड है। (Mentioning AI उन बच्चों को प्रोग्रामिंग कोर्स बेच सकता है जो एचएएल 3000 का निर्माण करना चाहते हैं, लेकिन हैलो वर्ल्ड भी नहीं लिख सकते हैं या एक्सेल ग्राफ पर ट्रेंड-लाइन ड्रॉप नहीं कर सकते हैं। :)


4
"....... AI पर अति-सम्मोहित ऑनलाइन पाठ्यक्रम पायथन को आगे बढ़ा रहे हैं क्योंकि यह नौसिखिया प्रोग्रामर के लिए आसान है। प्रोग्रामिंग प्रोग्रामिंग पाठ्यक्रम बेचने के लिए AI नया मार्केटिंग हॉट शब्द है ..." ---- अच्छा बिंदु । खिचड़ी भाषा अधिक सहमत हैं।
इमरान हुसैन

5

पायथन के पास विकास में एक मानक पुस्तकालय है, और एआई के लिए कुछ है। इसमें एक सहज ज्ञान युक्त वाक्यविन्यास, बुनियादी नियंत्रण प्रवाह और डेटा संरचनाएं हैं। यह मानक संकलक भाषाओं के बिना, व्याख्यात्मक रन-टाइम का भी समर्थन करता है। यह एआई के लिए एल्गोरिदम के प्रोटोटाइप के लिए पायथन को विशेष रूप से उपयोगी बनाता है।


पायथन की व्याख्यात्मक क्षमता के बारे में अच्छी बात है। ऐसा लगता है कि लचीलेपन और विकास की गति संकलित भाषाओं के अधिक से अधिक "हॉर्स पावर" की पक्षधर है।
DukeZhou

5

अपने विश्लेषण कार्य के लिए मुझे पायथन में क्या आकर्षित करता है, यह "पूर्ण-स्टैक" टूल है जो एक सामान्य उद्देश्य भाषा बनाम आर के रूप में एक डोमेन विशिष्ट भाषा के रूप में डिज़ाइन किए जाने के कारण उपलब्ध हैं। वास्तविक डेटा विश्लेषण कहानी का केवल एक हिस्सा है, और पायथन में समृद्ध उपकरण और एक साफ-सुथरी भाषा है जो शुरुआत से अंत तक किसी एक भाषा में प्राप्त होती है (सी / फोरट्रान रैपर के बावजूद)।

सामने के छोर पर, मेरा काम आम तौर पर विभिन्न स्रोतों से डेटा प्राप्त करने से शुरू होता है, जिसमें डेटाबेस, विभिन्न स्वरूपों में फाइलें, या वेब स्क्रैपिंग शामिल हैं। इसके लिए पायथन समर्थन अच्छा है और अधिकांश डेटाबेस या सामान्य डेटा प्रारूपों में इंटरफ़ेस के लिए एक ठोस, अच्छी तरह से बनाए रखा पुस्तकालय है। डेटा I / O के लिए R एक सामान्य समृद्धि साझा करता है, हालांकि FITS के लिए R पैकेज सक्रिय विकास (2.5 वर्षों में FITSio का कोई विमोचन नहीं?) के तहत प्रतीत होता है। काम के अगले चरण का एक बहुत आम तौर पर डेटा को व्यवस्थित करने और बहुत सिस्टम-स्तरीय इंटरैक्शन के साथ पाइपलाइन-आधारित प्रसंस्करण करने के चरण में होता है।

पीछे के छोर पर, आपको एक बड़े डेटा सेट को एक ठोस तरीके से प्रस्तुत करने में सक्षम होना चाहिए, और मेरे लिए, इसका आमतौर पर वेब पेज बनाने का मतलब है। दो परियोजनाओं के लिए मैंने बड़े चंद्रा सर्वेक्षण परियोजनाओं के परिणामों का निरीक्षण करने के लिए महत्वपूर्ण Django वेब एप्लिकेशन लिखे। इसमें बहुत सारे स्क्रैपिंग (मल्टीवेलवेब्रल कैटलॉग) और इसके बाद के संस्करण शामिल थे। ये केवल आंतरिक रूप से डेटा सेट को नेविगेट करने और स्रोत कैटलॉग पीढ़ी में मदद करने के लिए उपयोग किए गए थे, लेकिन वे समग्र परियोजना में अमूल्य थे।

विश्लेषण के लिए खगोल-विज्ञान की विशिष्ट कार्यक्षमता की ओर बढ़ते हुए, यह स्पष्ट लगता है कि समुदाय ठोस रूप से पायथन से पीछे है। यह उपलब्ध संकुल और विकास गतिविधि के स्तर की गहराई में देखा जाता है, दोनों एक व्यक्तिगत और संस्थागत स्तर ( http://www.astropython.org/resources ) पर। बुनियादी ढांचे के इस स्तर को देखते हुए जो उपलब्ध है और काम में है, मुझे लगता है कि यह खगोल विज्ञान के लिए सबसे उपयोगी आर सांख्यिकीय उपकरण को पायथन में पोर्ट करने के लिए प्रत्यक्ष प्रयास करने के लिए समझ में आता है। यह rpy2 के माध्यम से पायथन से आर फ़ंक्शन को कॉल करने की वर्तमान क्षमता को पूरक करेगा। यदि आप रुचि रखते हैं, तो मैं दृढ़ता से अनुशंसा करता हूं कि आप इस लेख को पढ़ें, यहां प्रोग्रामिंग भाषाओं की तुलना करने का सवाल है https://diceus.com/what-technology- is-b ... nd-java-r / मुझे आशा है कि यह मदद करता है। गुड लक


3

पायथन में समृद्ध पुस्तकालय है, यह वस्तु उन्मुख भी है, कार्यक्रम के लिए आसान है। इसे फ्रंटेंड लैंग्वेज के रूप में भी इस्तेमाल किया जा सकता है। इसलिए इसे कृत्रिम बुद्धिमत्ता में उपयोग किया जाता है। एआई के बजाय इसका उपयोग मशीन लर्निंग, सॉफ्ट कंप्यूटिंग, एनएलपी प्रोग्रामिंग में भी किया जाता है और इसका उपयोग वेब स्क्रिप्टिंग या एथिकल हैकिंग में भी किया जाता है।


यह एक महान जवाब है, क्योंकि पायथन वास्तव में वेब स्क्रिप्टिंग के लिए नंबर एक प्रोग्रामिंग भाषा है। सबसे पहले, मैं इस डर में था कि आप दुनिया को समझा सकते हैं, कि AutoIt सही स्क्रिप्टिंग भाषा है क्योंकि इसका उपयोग Aimb लेखन के लिए किया जाता है।
मैनुअल रोड्रिगेज

2

ऐसा इसलिए है क्योंकि अजगर एक आधुनिक स्क्रिप्टिंग ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है जिसमें स्टाइलिश सिंटैक्स है। जावा और सी ++ जैसी संरचनात्मक प्रोग्रामिंग भाषाओं के विपरीत, इसकी स्क्रिप्टिंग प्रकृति प्रोग्रामर को उसकी परिकल्पना का बहुत तेजी से परीक्षण करने में सक्षम बनाती है। इसके अलावा, ओपन सोर्स मशीन लर्निंग लाइब्रेरी (स्किट-लर्न और केरस सहित) बहुत सारे हैं जो एआई क्षेत्र में अजगर के उपयोग को व्यापक बनाते हैं।


2

यह कई कारकों का मिश्रण है जो एक साथ संज्ञानात्मक प्रणालियों को विकसित करने के लिए एक बहुत अच्छा विकल्प बनाते हैं।

  • त्वरित विकास
  • तिव्र प्रतिकृति
  • लगभग मानव-स्तरीय पठनीयता के साथ मैत्रीपूर्ण वाक्य-विन्यास
  • विविध मानक पुस्तकालय और बहु ​​प्रतिमान
  • इसे संकलित भाषाओं जैसे C / C ++ में लिखे गए बैकएंड के लिए एक दृश्य के रूप में उपयोग किया जा सकता है।

मौजूदा प्रदर्शनकारी संख्यात्मक पुस्तकालय, जैसे कि सुन्न और अन्य पहले से ही आपके लिए गहन बल्क काम करते हैं जो आपको अपने सिस्टम के वास्तु पहलुओं पर अधिक ध्यान केंद्रित करने की अनुमति देता है।

इसके अलावा, पायथन के चारों ओर एक बहुत बड़ा समुदाय और पारिस्थितिकी तंत्र है, जिसके परिणामस्वरूप विभिन्न प्रकार के कार्यों के लिए उन्मुख उपकरण उपलब्ध हैं।


0

मैं वास्तव में मशीन सीखने के लिए सी पसंद करता हूं। क्योंकि जीवन में, जैसा कि हम जानते हैं कि दुनिया में, कभी न खत्म होने वाले "लॉजिक गेट्स" होते हैं (जो मूल रूप से एक सिक्के को लहराने जैसा है - वहाँ 2 संभावित परिणाम होंगे - तीसरे की गिनती नहीं करना: पक्ष की ओर लैंडिंग!)। जिसका अर्थ यह भी है कि जबकि ब्रह्मांड कभी समाप्त नहीं होता है, फिर भी हम उन चीजों को ढूंढना बंद नहीं करते हैं, जो अंतिम छोटी से छोटी चीज से भी छोटी हैं, है ना?

इसलिए ... जब C को प्रोग्रामिंग करते समय इसे एक संदर्भ में रखा जाए, तो मैं छोटे स्निपेट को संयोजित करके मेमोरी उपयोग को अधिक कुशलता से नियंत्रित कर सकता हूं, जो हमेशा छोटे और कुशल "कोड-टुकड़े" बनाते हैं, जो कि हम जिसे कहते हैं उसे बनाते हैं " कोशिकाएं "जीव विज्ञान में (इसे एक औसत दर्जे का कार्य मिला, और इसमें कुछ पूर्व-निर्धारित गुण हैं)।

इस प्रकार, मुझे एआई प्रोग्रामिंग करते समय कम रैम-उपयोग, कम सीपीयू-उपयोग आदि के लिए अनुकूलित करना पसंद है। मैंने केवल सी में एक बुनियादी आनुवंशिक एल्गो के साथ फीडफ़ॉर्मवर्ड किया है, लेकिन अधिक उन्नत आवर्तक तंत्रिका नेटवर्क जिसे मैंने सी ++ में लिखा था (केवल "एसटीडी: वेक्टर नाम;" का उपयोग करने की सादगी के कारण, इसलिए मैंने अपना स्वयं का cvec.c लिखा: https://pastebin.com/sBbxmu9T & cvector.h: https://pastebin.com/Rd8B7mK4 और debug: https://pastebin.com/kcGD8Fzf - gcc -o debug.c cvector.c पर संकलित करें)। अनुकूलित न्यूरल नेटवर्क बनाते समय सीपीयू-उपयोग (और समग्र क्रम) के अनुकूलन की तलाश में वास्तव में ALOT की मदद की।

आशा है ये मदद करेगा।

संपादित करें: तो मैं एक अर्थ में वास्तव में विपरीत देखता हूं कि एलेक्सपेंट क्या देखता है, जब यह पता चलता है कि एक "स्वयं" के दायरे में क्या संभव है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.