AI के लिए हालिया प्रोग्रामिंग भाषा? [बन्द है]


15

कुछ दशकों के लिए AI के लिए पसंद की प्रोग्रामिंग भाषा या तो प्रोलॉग या LISP थी , और कुछ अन्य जो इतनी अच्छी तरह से ज्ञात नहीं हैं । उनमें से अधिकांश 70 के दशक से पहले डिजाइन किए गए थे।

कई अन्य डोमेन विशिष्ट भाषाओं पर परिवर्तन होता है, लेकिन AI डोमेन में यह इतना विशिष्ट नहीं हुआ जितना कि वेब विशिष्ट भाषाओं या स्क्रिप्टिंग आदि में।

क्या हाल ही में प्रोग्रामिंग भाषाएं थीं जिनका उद्देश्य एआई में गेम को बदलना और पूर्व भाषाओं की अपर्याप्तता से सीखना था?


1
ऑक्टेव मशीन लर्निंग के लिए एक अच्छी भाषा है अगर एआई की वह शाखा आपको रुचिकर लगे।
सेटज़ामोरा

एक मेटा-प्रोग्रामिंग दृष्टिकोण (यानी प्रोग्राम बनाने वाले) पर भी विचार करें। में देखो J.Pitrat के ब्लॉग । तब जो भाषा आप उत्पन्न करते हैं, उसमें बहुत अधिक
अनुपात

जवाबों:


23

एआई कोर्स मैंने ऑनलाइन भाग लिया था, स्टैनफोर्ड में पढ़ाया गया था, ने सिफारिश की कि पायथन का उपयोग होमवर्क के लिए किया जाए। मेरा मानना ​​है कि जॉर्जिया टेक अभी भी LISP का उपयोग करता है।

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

इसलिए यह कम है कि मुख्य क्षेत्र बदल गया है क्योंकि इसे संबंधित विषयों के एक विशाल सरणी में परिष्कृत किया गया है। यह "साइंटिफिक कम्प्यूटिंग" कहने जैसा है और लाइनर इक्वेशन को हल करने के लिए इसका मतलब है।

आपने जिन भाषाओं का उल्लेख किया है, वे पिछले 20 या 30 वर्षों में काफी विकसित हुई हैं। लिस्प ने कॉमन लिस्प और क्लूजुर को जन्म दिया। प्रोलॉग ने विजुअल प्रोलॉग (यह वस्तुएं हैं) को जन्म दिया और मर्करी (हास्केल और प्रोलॉग को लें, उन्हें एक साथ एक कमरे में बंद करें ... अच्छी तरह से दूर खड़े हों और दौड़ने के लिए तैयार हों)।

यह देखते हुए कि एआई अनुसंधान अधिक सैद्धांतिक है, यह समझ में आता है कि यह व्यावहारिकताओं (भाषाओं) के बजाय सिद्धांत (गणित) पर ध्यान केंद्रित करेगा।

कहा जा रहा है कि एआई प्रौद्योगिकियों का सबसे बड़ा प्रर्वतक मैं दांव लगाऊंगा Google। वे पाइथन (और गो और डार्ट के पक्ष में हैं, लेकिन इस बिंदु के बगल में हैं)। इस प्रकार मैं कहूंगा कि पायथन "पसंद की हालिया भाषा" है, लेकिन आप हास्केल या ओकेमेल या एफ # या सी # या यहां तक ​​कि जावा का भी उपयोग कर सकते हैं।


+1 बुध के उल्लेख के लिए।
गाइ कोडर

8

आपको स्प्रिंगर द्वारा प्रकाशित जर्मन एआई पत्रिका KI - Künstliche Intelligenz , Volume 26, नंबर 1 / फरवरी 2012 के हाल के विशेष अंक "Sprachen der KI" ("AI की भाषाएँ") में आपके सवालों के जवाब मिल सकते हैं । मैं इसमें शामिल एक चर्चा पत्र के एक हिस्से का सह-लेखक हूं: "आप अपने एआई प्रोग्राम बनाने के लिए किस भाषा का उपयोग करते हैं और क्यों?" यहां इसका एक उदाहरण है: http://ai.cs.unibas.ch /papers/schmid-et-al-kijournal2012.pdf

सारांश में, कुछ एआई शोधकर्ता अभी भी क्लासिक एआई भाषाओं लिस्प और प्रोलॉग द्वारा शपथ लेते हैं। अन्य लोग सी ++, जावा या पायथन जैसी मुख्यधारा की भाषाओं का उपयोग करते हैं। फिर भी अन्य लोग नई गूढ़ प्रोग्रामिंग भाषाओं का पता लगाना पसंद करते हैं।

मेरा मानना ​​है कि एआई के बारे में कुछ खास नहीं है जिसके लिए विशेष प्रोग्रामिंग भाषाओं की आवश्यकता होगी। सामान्य रूप से शोधकर्ता क्या चाहते हैं, वे प्रोग्रामिंग भाषाएं हैं जो तेजी से प्रोटोटाइप की अनुमति देती हैं। यह कुछ पुरानी एआई भाषाएँ हैं (लिस्प, प्रोलॉग) और नई "स्क्रिप्टिंग" भाषाएं (पर्ल, पायथन, रूबी, या हाल ही में जेवीएम भाषा जैसे क्लोजर) के लिए बहुत अच्छी हैं।

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

आपके अंतिम प्रश्न पर वापस आते हुए, नई AI भाषाओं के सभी महत्वपूर्ण घटनाक्रम जो मुझे ज्ञात हैं, वे बाधा आधारित प्रोग्रामिंग से प्रेरित हैं। कुछ ने SlogStus और SWI जैसे प्रोलॉग कार्यान्वयन में प्रवेश किया है, दूसरों ने प्रोलॉग जैसी भाषाएं जैसे बुध और मोज़ार्ट / ओज़ को जन्म दिया है। निश्चित रूप से महत्वपूर्ण नए घटनाक्रम होने की संभावना है, जिनके बारे में मुझे जानकारी नहीं है।


2

जबकि इनमें से अधिकांश उत्तर "भाषा" शब्द पर केंद्रित होते हैं क्योंकि आपने इसे अपने प्रश्न में उपयोग किया था, मेरा मानना ​​है कि आपको एआई सोचते समय एक विशिष्ट भाषा नहीं सोचनी चाहिए।

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

उदाहरण के रूप में, कार्यात्मक भाषाओं में प्रकारान्तर से हिंदली-मिलनर का उपयोग होता है जो एकीकरण पर आधारित है।

प्रूफ असिस्टेंट के लिए विशिष्ट एक और उदाहरण है , सूचना prolog.ml। प्रोलॉग के लिए इंजेक्शन इंजन OCaml में लागू किया गया है और F # में अनुवादित किया जा रहा है। इसलिए जबकि OCaml और F # को आमतौर पर AI भाषाओं के रूप में नहीं जाना जाता है, वे AI एल्गोरिदम को लागू करने में पूरी तरह से सक्षम हैं।


मुझे यह कहना है कि इस प्रश्न के बारे में मेरे विचार से ठीक यही है: एल्गोरिदम भाषा को लिखने के लिए आपके द्वारा उपयोग की जाने वाली भाषा से अधिक महत्वपूर्ण है, यही कारण है कि मैंने जो भी एआई किताब पढ़ी वह एल्गोरिदम के लिए छद्मकोश देने पर जोर देती है।
JJP

1

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

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

मुझे यकीन नहीं है कि आप लिस्प डेट क्यों मानेंगे; यह वह जगह है जहाँ अधिकांश "नई" भाषा अन्य भाषाओं (क्लोजर, आदि) से उत्पन्न होती है।

बेशक, मशीन सीखने की तकनीक आम तौर पर द्विआधारी तर्क, निर्णय-पेड़ शैली दृष्टिकोण की तुलना में संभाव्य मॉडल की ओर बढ़ रही है जो कि सबसे प्रारंभिक एआई प्रयासों के साथ शुरू हुई थी, इसलिए यह तर्क करना संभव है कि मशीन सीखना एक शाखा है या बड़े तम्बू से मोड़ है। एअर इंडिया के।


0

एअर इंडिया के लिए चुनाव की भाषा जो मैंने सालों पहले इस्तेमाल की थी वह प्रोलॉग थी, जिसमें विजुअल प्रोलॉग संस्करण है जो डेल्फी की तरह आईडीई के साथ आया था।

प्रोलॉग (और इसका GUI संस्करण विजुअल प्रोलॉग) एक सामान्य उद्देश्य तर्क प्रोग्रामिंग भाषा है जो कृत्रिम बुद्धिमत्ता और कम्प्यूटेशनल भाषा विज्ञान से जुड़ा है।

हालाँकि, हालिया रुझान से पता चलता है कि कोई भी OOP भाषा जैसे C #, Java, पायथन, हास्केल आदि .. AI अनुप्रयोगों के लिए प्रोग्राम योग्य बन रहे हैं।


3
हास्केल ओओपी कब से है?
एंड्रिया

आप हास्केल में OOP का अनुकरण कर सकते हैं, है ना?
Yusubov

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