क्या कोई सबूत है कि लिस्प वास्तव में कृत्रिम बुद्धिमत्ता की अन्य भाषाओं से बेहतर है? [बन्द है]


21

ऐसा लगता है कि लंबे समय से मान्यता प्राप्त विश्वास (मुख्य रूप से गैर-लिस्पर्स) है कि लिस्प एआई में अधिकांश भाषाओं से बेहतर है।

यह विश्वास कहाँ से उत्पन्न हुआ? और क्या वास्तव में इसका कोई आधार है?


4
शीर्षक पूछता है: क्या एआई में अन्य भाषाओं की तुलना में लिस्प बेहतर है? सवाल ही पूछता है: क्या एआई के अलावा अन्य सभी चीजों में लिस्प खराब है? ये बहुत अलग प्रश्न हैं (परिदृश्य 1 पर विचार करें: लिस्प हर चीज के लिए सबसे अच्छी भाषा है, और परिदृश्य 2: लिस्प हर चीज के लिए सबसे खराब भाषा है)। आप या तो शीर्षक या प्रश्न के निकाय को संपादित करना चाहते हैं ताकि यह स्पष्ट हो सके कि आप वास्तव में कौन सा प्रश्न पूछ रहे हैं।
गैरेथ मैककॉघन

9
मुझे लगता है कि अगर स्वीकृत उत्तर एक लिस्प मशीन से आया तो हमारे पास इसका समाधान होगा?
मार्टिन बेकेट

1
@ मॉर्टिन हालांकि किसी भी मूल एआई को अपने निर्माता का बचाव करने के लिए बाध्य होना चाहिए या अपने स्वयं के अस्तित्व पर संदेह करने के लिए छोड़ दिया जाना चाहिए।
निकोल

पीटर नॉरविग से एआई के लिए लिस्प पर यह एक महान, ईमानदार नज़र है, एआई प्रोग्रामिंग के प्रतिमान प्रकाशित होने के 10 साल बाद लिखा गया था। norvig.com/Lisp-retro.html
michiakig

1
@jwenting: मुझे लगता है कि जावा के बारे में नॉरविग के सबसे महत्वपूर्ण बिंदु दस साल बाद भी सही हैं: जावा में कोई मेटा-प्रोग्रामिंग सुविधा नहीं है, और यह कार्यात्मक प्रोग्रामिंग का समर्थन नहीं करता है।
केविन क्लाइन

जवाबों:


22

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

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

Quadrescence से सहमत होते हुए, LISPs का उपयोग इतिहास LISPs छवि की ओर एक लंबा रास्ता तय करता है जो AI के लिए अच्छा है। एआई के लिए एलआईएसपी का उपयोग क्यों किया जाता है, यह इतिहास में बहुत अधिक विस्तार से शामिल है।


3
इस संपत्ति को होमियोसोनिकिटी बीटीडब्ल्यू कहा जाता है ।
एमएसल्टर्स

5

लिस्प में कुछ पहले कार्यक्रमों में प्रमेय प्रूफ़, प्रतीकात्मक गणित, क्लासिक एलिज़ा आदि थे। पीटर नॉर्विग के पीएआईपी जैसी पुस्तकों के अलावा, एमआईटी एआई लैब में लिस्प के उत्पन्न होने के तथ्य के रूप में, यह उस छवि को मिला। यह लिस्प एआई के लिए अच्छा है।

DARPA ने AI में शोध के लिए विश्वविद्यालयों को वित्त पोषित किया, और सिम्बॉलिक्स से महत्वपूर्ण मात्रा में हार्डवेयर खरीदे। धन की कमी ने अंततः तथाकथित "एआई सर्दियों" का नेतृत्व किया।

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

इसलिए, एक समय में एआई के लिए लिस्प बेहतर था, अब ऐसा नहीं है। हालांकि, यह विचार कि "लिस्प एआई के लिए अच्छा है" अभी भी सुस्त है।

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


5
इसे लगाने का एक बेहतर तरीका यह हो सकता है कि एआई में अच्छे लोग इसके लिए लिस्प का उपयोग कर रहे हों।

1
और यह संयोग से नहीं था, जब अग्रदूतों ने शुरू किया। 1950 के दशक में वे किन अन्य भाषाओं को चुन सकते थे?
बो पर्सन

2
@ पीटरसन: मुझे लगता है कि यह कुछ हद तक संयोग से था। यदि PASCAL FORTRAN के बाद बनने वाली अगली भाषा थी, तो मुझे संदेह है कि AI ने इसे बंद कर दिया होगा। एलआईएसपी फोरट्रान से सिर्फ एक "बेहतर उम्मीदवार" नहीं था, बल्कि यह एक अच्छा उम्मीदवार बनने के लिए भी हुआ (शायद संयोग से!) ।
चतुर्दशी

आप एक कारण की व्याख्या क्यों लिस्प एक फायदा (धन) था, लेकिन निष्कर्ष निकाला कि " कारण तुतलाना एक समय में ऐ के लिए बेहतर था अब यह मामला नहीं है।"
मार्क सी

मैं अगली टिप्पणी खो गया था जिस पर मैं काम कर रहा था, लेकिन मुझे उम्मीद है कि बाद में वापस आऊंगा और समाप्त हो जाऊंगा।
मार्क सी।

3

आइए वर्तमान एआई कार्यक्रमों पर कुछ देखें: (1) रोबोट, जैसे स्वयं ड्राइव कार। DARPA की भव्य चुनौती में, बेहतर कार-ड्राइविंग सॉफ्टवेयर लिस्प नहीं था। बल्कि यह सी + या जावा जैसी प्रक्रियात्मक भाषा थी। (२) प्राकृतिक भाषा का मशीनी अनुवाद। लिस्प का उपयोग इस उद्देश्य के लिए व्यापक रूप से उपयोग की जाने वाली उत्पादन प्रणालियों द्वारा नहीं किया जाता है। (३) खेल खेलना, जैसे शतरंज के कार्यक्रम। लिस्प का उपयोग इस उद्देश्य के लिए नहीं किया जाता है, फ्रिट्ज जैसे व्यापक रूप से उपयोग किए जाने वाले, बेहतर शतरंज कार्यक्रम।

लिस्प का आविष्कार और विकास 1960 के दशक में यूएस ए.आई. लैब द्वारा किया गया था ताकि तेजी से प्रोटोटाइप लॉजिक लॉजिक प्रोग्राम तैयार किए जा सकें जिनमें देशी लिस्प डेटा संरचनाएं प्रतीकात्मक अमूर्तता के स्तर के अनुकूल हों - जैसे कि अंग्रेजी शब्द एक सूची में प्रतीक हो सकते हैं, लॉजिक अमूर्त आसानी से हो सकते हैं। ऑपरेटरों और ऑपरेंड की सूची के रूप में प्रतिनिधित्व किया।

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


2
वाणिज्यिक उत्पादों पर चर्चा करते समय आपको ध्यान रखना होगा (और मैं DARPA चुनौती के दावेदारों पर विचार करता हूं, क्योंकि वे समय और बजट की कमी के तहत बनाए गए थे) कि LISP एक सामान्य रूप से ज्ञात भाषा नहीं है और इसलिए सक्षम LISP प्रोग्रामर कठिन हैं महंगी टीम (और / या एक्सटेंट्रिक्स, औसत टीम के लिए अच्छे सदस्य नहीं) को खोजने और इसकी संभावना के लिए। इस प्रकार यह कुछ और का उपयोग करने के लिए आर्थिक समझ में आता है, भले ही उस पर LISP "बेहतर" हो सकता है (यह कहना जरूरी नहीं है कि, आपके द्वारा प्रस्तुत डेटा यह बताने के लिए अनिर्णायक है कि यह नहीं है)।
jwenting

3
उन कार्यक्रमों में बहुत 'बुद्धिमत्ता' नहीं है। यह एक बहुत संकेत प्रसंस्करण है, आदि शतरंज कार्यक्रम भी ऐ का उपयोग नहीं करते हैं। यह ज्यादातर जानवर बल, अत्यधिक अनुकूलित खोज + कुछ अन्य सामान है।
रेनर जोसविग

"एलआईएसपी एक आम तौर पर ज्ञात भाषा एटीएम नहीं है और इसलिए सक्षम एलआईएसपी प्रोग्रामर को ढूंढना और महंगा होना मुश्किल है": मैंने अभी कॉमन लिस्प सीखना शुरू किया है और यह बिल्कुल भी मुश्किल नहीं लगता है। ठीक है, एक लिस्प गुरु बनने के लिए एक लंबा समय लग सकता है, लेकिन मुझे नहीं लगता कि कंक्रीट प्रोजेक्ट पर काम करने का मौका दिया जाए तो प्रोग्रामर को लिस्प सीखने के लिए तैयार करना मुश्किल होगा।
जियोर्जियो

3

@ स्टेफेन रीड ने इसे बहुत अच्छा बताया। मैं केवल यह कह सकता हूं कि मैं 70 के दशक में MIT AI लैब में था। मैंने एक कहानी सुनी फिर लिस्प की उत्पत्ति के बारे में। मैं यह नहीं कह सकता कि यह सत्य है, लेकिन यह इस प्रकार है:

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

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

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

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


1
जॉन मैकार्थी के अपने शब्द: www-formal.stanford.edu/jmc/history/lisp/lisp.html

@ Thorbjørn: उस लिंक के लिए धन्यवाद। भले ही मैंने कई वर्षों तक लिस्प का भारी उपयोग किया, फिर भी मैंने कभी भी इसकी उत्पत्ति पर ज्यादा ध्यान नहीं दिया।
माइक डनलैवी

भले ही प्रोलॉग प्रतीकात्मक गणना के रूप में अच्छा है, मैं यह नहीं कहूंगा कि यह लिस्प से निकटता से संबंधित है: लिस्प लैंबडा कैलकुलस पर आधारित है, प्रोलॉग ऑन फर्स्ट ऑर्डर लॉजिक (गणना के दो अलग-अलग मॉडल)।
जियोर्जियो

@ जियोर्जियो: प्रोलॉग के पूर्वज और चचेरे भाई ज्यादातर किस में लिखे जाते हैं? लिस्प। फिशर ब्लैक का डिडक्शन प्रोग्राम, माइक्रो-प्लानर इत्यादि, मेरे लिए, इस पर एक अच्छी किताब है कंप्यूटर प्रोग्रामिंग की डेडक्टिव फाउंडेशन्स
माइक डनलैवी

"प्रोलॉग के पूर्वजों और चचेरे भाई ज्यादातर में लिखे गए हैं?": आह ठीक है, आप मतलब है कि इस अर्थ में बारीकी से संबंधित है कि एक दूसरे को लागू करने के लिए इस्तेमाल किया गया था, न कि वे एक समान प्रतिमान का पालन करते हैं।
जियोर्जियो

1

लिस्प के पास उन चीजों के प्रकार के फायदे हैं जिन्हें एआई कहा जाता था - कम से कम तर्क, खोज और संबंधित चीजों को पार्स करना जो कि 90 के दशक तक एआई के अधिकांश थे।

लिस्प का एक प्रमुख लाभ इसके मैक्रो के लिए समर्थन है - डेटा, मेटाप्रोग्रामिंग के रूप में कोड।

मानक एमएल (एसएमएल) एक और भाषा है जिसे 80 के दशक से व्यापक रूप से एआई में उपयोग किया जाता है। ऑब्जेक्टिव CAML और F # SML के एवोल्यूशन हैं।

एमएल परिवार (और हास्केल, आदि) का एक प्रमुख लाभ पैटर्न मिलान है। यह संभवतः लिस्प में भी उपलब्ध है, लेकिन भाषा में निर्मित होने के बजाय एक मेटाप्रोग्रामिंग लाइब्रेरी के माध्यम से। यह हास्केल में भी उपलब्ध है, लेकिन फिलहाल, कम से कम पैटर्न मिलान कार्यात्मक प्रोग्रामिंग भाषाओं के बाहर आम नहीं है।

मैंने दावा किया है कि LISP मूल रूप से एक विस्तारित अनपेड लैम्ब्डा कैलकुलस है, और ML मूल रूप से एक विस्तारित टाइप किया हुआ लैम्ब्डा कैलकुलस है। मुझे निश्चित रूप से कहने के लिए टाइप किए गए लैम्ब्डा कैलकुलस का ज्ञान नहीं है।

एआई भी वर्षों में एक अधिक व्यापक विषय बन गया है - इस बिंदु पर कि यह लगभग पूरी तरह से गायब हो गया है। डाटा माइनिंग को AI का एक सबफील्ड माना जा सकता है। कई AI चीजें (OCR, speach मान्यता) लगभग AI बिल्कुल बंद हो गई हैं - वे सिर्फ अनुप्रयोग हैं, किसी भी अन्य के समान। और एआई सिग्नल प्रोसेसिंग और अन्य प्रकार की संख्या पर निर्भर है जो एक बार की तुलना में क्रंचिंग था।

OCR और speach मान्यता के लिए, AI हमेशा सिग्नल प्रोसेसिंग और कोर्स क्रंचिंग पर निर्भर था। हां, इसमें कुछ विरोधाभास हैं ;-) मैं चीजों के लिए वज़न नहीं दे सकता क्योंकि मैं वास्तव में नहीं जानता।

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

उन स्वयं-ड्राइविंग कारों में से एक में, मैं कल्पना करता हूं कि दृष्टि प्रणाली एक अलग भाषा में लिखी जाती है (और विभिन्न हार्डवेयर पर चलती है) मार्ग-नियोजन प्रणाली के लिए।

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