একটি দীর্ঘস্থায়ী বিশ্বাস বলে মনে হচ্ছে (মূলত নন-লিস্পারদের দ্বারা) যে এআই এর বেশিরভাগ ভাষার চেয়ে লিসপ ভাল।
এই বিশ্বাসের উদ্ভব কোথায়? এবং এটির কি কোনও ভিত্তি আছে?
একটি দীর্ঘস্থায়ী বিশ্বাস বলে মনে হচ্ছে (মূলত নন-লিস্পারদের দ্বারা) যে এআই এর বেশিরভাগ ভাষার চেয়ে লিসপ ভাল।
এই বিশ্বাসের উদ্ভব কোথায়? এবং এটির কি কোনও ভিত্তি আছে?
উত্তর:
এলআইএসপি-জাতীয় ভাষা এবং অন্যান্য ভাষার মধ্যে অন্যতম প্রধান পার্থক্য হ'ল এলআইএসপিগুলিতে কোড এবং ডেটা একই জিনিস। এটি রান্টটাইমের সময় কোনও প্রোগ্রাম এর কিছু অ্যালগরিদমগুলিকে ভাষার আদি অংশ হিসাবে "শেখায়" নতুন কিছু শিখতে পারে এমন কিছু কাজ করা সম্ভব করে তোলে।
এটির মধ্যে আরও একটি দিক যা goesুকে পড়ে তা হ'ল ম্যাক্রোগুলির মাধ্যমে সহজেই নতুন ভাষা শব্দার্থক যুক্ত করার এলআইএসপি'র ক্ষমতা। এটি আপনার ডিআইএল যে ডিআইএল এর সাথে কাজ করে এবং সেই ভাষাটি বর্ধমান, স্ব-সংশোধন এবং এআই চলার সময় বিবর্তিত হওয়ার সম্ভাবনা সহ কাজ করে এবং এটি বিকশিত হতে পারে তার সংজ্ঞা দেওয়া সম্ভব করে তোলে।
চতুষ্পদত্বের সাথে একমত হয়ে, LISPs ব্যবহারের ইতিহাস LISPs চিত্রের দিকে অনেক এগিয়ে যায় যা এটিআইয়ের পক্ষে ভাল। এলআইএসপি কেন এআই এর জন্য ব্যবহার করা হয় তা ইতিহাসকে আরও বিস্তারিতভাবে কভার করে।
পিএসপি নরভিগের পিএআইপি বইয়ের পাশাপাশি লিস্প এমআইটি এআই ল্যাব-এ উদ্ভূত হয়েছিল, লিস্পে প্রথম কয়েকটি প্রোগ্রামের মধ্যে ছিল উপপাদ্য প্রবাদ, প্রতীকী গণিত, ক্লাসিক এলিজা ইত্যাদি, পাশাপাশি এমআইটি এআই ল্যাবটিতে লিস্পের উদ্ভব, এটি চিত্রটি পেয়েছে এলিস্প এআইয়ের পক্ষে ভাল।
DARPA এআই-তে গবেষণার জন্য বিশ্ববিদ্যালয়গুলিকে অর্থায়নও করেছিল, এবং প্রতীক থেকে উল্লেখযোগ্য পরিমাণে হার্ডওয়্যার কিনেছিল। তহবিলের ঘাটতি অবশেষে তথাকথিত "এআই শীতকালীন" বাড়ে।
অবশেষে, ফোরট্রানের মতো মূল ভাষা (বা এএসএমের মতো "ভাষা") সংখ্যার কম্পিউটিংয়ের জন্য প্রাথমিকভাবে ব্যবহৃত হত। আপনি তাদের সংখ্যা এবং অ্যারে নিয়ে কাজ করেছেন। আজকাল আমাদের কাছে বেশিরভাগ আধুনিক ভাষায় প্রতীক, বা আমাদের পছন্দ মতো প্রায় কোনও বস্তু তৈরির ক্ষমতা রয়েছে।
সুতরাং, কারণ লিস্প এক সময় এআইয়ের জন্য ভাল ছিল আর কেস হয় না। যাইহোক, "লিস্প এআইয়ের পক্ষে ভাল" ধারণাটি এখনও স্থির রয়েছে।
তার বৈশিষ্ট্য এবং কাঠামোর কারণে লিস্প একটি ভাল ভাষা হ'ল বা না হ'ল সম্পূর্ণরূপে অন্য একটি ক্ষেত্রে (যেহেতু সত্যই এই ধরণের জিনিস কেবল এআইয়ের চেয়ে অনেকগুলি ক্ষেত্রেই প্রযোজ্য, এবং সাধারণত আপনি পুরাতন শিখা যুদ্ধের দিকে পরিচালিত করবেন)।
চলুন চলতি এআই প্রোগ্রামগুলিতে কিছু নজর দেওয়া যাক: (1) রোবট, যেমন সেলফ ড্রাইভ গাড়ি। DARPA গ্র্যান্ড চ্যালেঞ্জের মধ্যে, উচ্চতর গাড়ি-ড্রাইভিং সফ্টওয়্যারটি লিস্প ছিল না। বরং এটি একটি প্রক্রিয়াগত ভাষা যেমন সি ++ বা জাভা ছিল। (২) প্রাকৃতিক ভাষার মেশিন অনুবাদ। লিস্প এই উদ্দেশ্যে ব্যাপকভাবে ব্যবহৃত উত্পাদন সিস্টেম দ্বারা ব্যবহৃত হয় না। (3) গেম প্লে করা, যেমন দাবা প্রোগ্রাম। লিস্পটি ফ্রিটজের মতো বহুল ব্যবহৃত, উচ্চতর দাবা প্রোগ্রামগুলির দ্বারা এই উদ্দেশ্যে ব্যবহৃত হয় না।
লিস্প ১৯60০ এর দশকে ইউএস এআই ল্যাবগুলির দ্বারা উদ্ভাবিত এবং বিকাশ লাভ করেছিল যাতে প্রতীকী লজিক প্রোগ্রামগুলির জন্য দেশীয় লিস্প ডেটা স্ট্রাকচারগুলি প্রয়োজনীয় প্রতীকী স্তরের মাপসই করে তোলে - উদাহরণস্বরূপ ইংরেজী শব্দগুলি একটি তালিকার প্রতীক হতে পারে, যুক্তির সূত্রগুলি সহজেই হতে পারে অপারেটর এবং অপারেশনগুলির তালিকা হিসাবে প্রতিনিধিত্ব করে।
তবে উত্পাদনের প্রোগ্রামগুলির জন্য, স্থির টাইপযুক্ত ভাষার সফ্টওয়্যার ইঞ্জিনিয়ারিং সুবিধাগুলি এবং তৃতীয় পক্ষের লাইব্রেরির বিভিন্ন ধরণের অর্থ, লিস্প এমনকি এআই কার্য সম্পাদনকারী বৃহত আধুনিক সিস্টেমগুলির জন্যও বিবেচিত হয় না।
@ স্টেফেন রিড এটি খুব ভাল বলেছেন। আমি কেবল যুক্ত করতে পারি যে আমি 70 এর দশকে এমআইটি এআই ল্যাবে ছিলাম। আমি তখন লিস্পের উত্স সম্পর্কে একটি গল্প শুনেছি। আমি এটি সত্য বলে শপথ করতে পারি না, তবে এটি এরকম হয়:
জন ম্যাকার্থি 50 এর দশকে এমআইটিতে ছিলেন, এবং তিনি প্রোগ্রামগুলির বৈশিষ্ট্য প্রমাণ করার জন্য কাজ করছিলেন এবং এর জন্য তিনি লাম্বদা ক্যালকুলাসের মতো একটি সাধারণ বাক্য গঠন ব্যবহার করেছিলেন।
গল্পটি হ'ল গ্রেডের একজন শিক্ষার্থী একটি প্রকল্প করতে চেয়েছিলেন (উপমা বা উপপাদ্য প্রমাণকারী বা প্রতীকী গণিত, কোনটি আমার মনে নেই) এবং ম্যাকার্থীকে জিজ্ঞাসা করেছিলেন কোন ভাষাটি ব্যবহার করতে হবে। উত্তর - অবশ্যই ফরট্রান। (সেখানে খুব বেশি কিছু ছিল না, এবং তালিকা প্রক্রিয়াজাতকরণ নিজে থেকেই তখন বেশ সুপরিচিত ছিল, তবে কেবল ভাষা হিসাবে নয় সাবউরটিন প্যাকেজ হিসাবে)) আচ্ছা, কোনওরকমভাবে এমন একটি প্রোগ্রাম তৈরি হয়েছিল যা নেস্টেড তালিকার কাঠামোর মধ্যে চিহ্নগুলি প্রক্রিয়া করবে। একসাথে এগুলি পড়ার এবং মুদ্রণের একটি উপায় এবং তারপরে একটি eval
ফাংশন এবং ভয়েলা '- একটি ভাষা। একটি LISt প্রসেসিং ভাষা। এটি সেখান থেকে যাত্রা শুরু।
সেই দিনগুলিতে আমরা যে ধরণের অ্যালগরিদম করছিলাম (এবং এখনও খুব কম লোকই করছে) এমন একটি ভাষার প্রয়োজন ছিল যা সহজেই প্রতীকী ভাব প্রকাশ করতে পারে। লিস্প এটাই ভাল ছিল। বেসল ধারণার বিভিন্ন প্রকরণ রয়েছে, বিভিন্ন নামে যেমন প্রোলগ, স্কিম ইত্যাদি going
সুতরাং এআই এর অর্থ প্রচুর লোকের কাছে প্রচুর জিনিস, এবং বিভিন্ন ভাষা বিভিন্ন জিনিসের জন্য ভাল, তবে যে সমস্যার জন্য প্রতীক হেরফের হিসাবে বর্ণনা করা যেতে পারে, এমন কোনও কার্যকর ভাষা খুঁজে পাওয়া মুশকিল যে কোনওভাবে লিস্প থেকে উত্পন্ন হয়নি।
এআই নামে পরিচিত যে ধরণের জিনিসগুলির জন্য লিস্পের সুবিধাগুলি রয়েছে - 90 এর দশক নাগাদ কমপক্ষে যুক্তি, অনুসন্ধান এবং সম্পর্কিত বিষয়গুলি যা এআইয়ের বেশিরভাগ ছিল।
লিস্পের একটি বড় সুবিধা হ'ল ম্যাক্রোগুলির জন্য এর সমর্থন - ডেটা হিসাবে কোড, রূপক ming
স্ট্যান্ডার্ড এমএল (এসএমএল) হ'ল 80 এর দশক থেকে, এআই-তে আরও ব্যবহৃত একটি ভাষা। উদ্দেশ্য সিএএমএল এবং এফ # হ'ল এসএমএল এর বিবর্তন।
এমএল পরিবারের একটি বড় সুবিধা (এবং হাস্কেল ইত্যাদি) প্যাটার্ন ম্যাচিং। এটি সম্ভবত লিস্পেও উপলভ্য, তবে ভাষায় নির্মিত না হয়ে একটি রূপক গ্রন্থাগারের মাধ্যমে। এটি হাস্কেলতেও উপলভ্য, তবে কমপক্ষে মুহুর্তের জন্য, কার্যকরী প্রোগ্রামিং ভাষার বাইরে প্যাটার্নের মিলটি সাধারণ নয়।
আমি দাবি দেখেছি যে এলআইএসপি মূলত একটি বর্ধিত টাইপযুক্ত ল্যাম্বদা ক্যালকুলাস এবং এমএলটি মূলত একটি বর্ধিত টাইপযুক্ত ল্যাম্বদা ক্যালকুলাস। নিশ্চিতভাবে বলতে গেলে টাইপড ল্যাম্বডা ক্যালকুলাস সম্পর্কে আমার জ্ঞান নেই।
এআইও বছরের পর বছরগুলিতে আরও বিস্তৃত বিষয় হয়ে দাঁড়িয়েছে - এটি প্রায় পুরোপুরি অদৃশ্য হয়ে গেছে। ডেটা মাইনিং এআই এর একটি সাবফিল্ড হিসাবে বিবেচনা করা যেতে পারে। অনেকগুলি এআই জিনিস (ওসিআর, স্পিচ স্বীকৃতি) প্রায় এআই হওয়া বন্ধ করে দিয়েছে - এগুলি কেবল অ্যাপ্লিকেশন, অন্য কোনও মতো। এবং এআই সিগন্যাল প্রসেসিং এবং অন্যান্য ধরণের সংখ্যা ক্রাঞ্চিংয়ের চেয়ে অনেক বেশি নির্ভরশীল যা এটি একবারের চেয়ে বেশি ছিল।
ওসিআর এবং স্পীচ স্বীকৃতির জন্য, এআই সর্বদা সিগন্যাল প্রসেসিং এবং অবশ্যই সংখ্যা ক্রাঞ্চিংয়ের উপর নির্ভরশীল ছিল। হ্যাঁ, এটিতে কিছু বৈপরীত্য রয়েছে ;-) আমি আসলে জিনিসগুলি জানি না বলে জিনিসগুলির জন্য ওজন দিতে পারি না।
যাইহোক, ফলস্বরূপ, সম্ভবত একটি আধুনিক এআই প্রয়োগের জন্যও একটি ভাষা উপযুক্ত নয় - আমি অনুমান করব (প্রথম হাতের জ্ঞান নেই) যে আধুনিক এআইতে বহু ভাষা বিকাশ রয়েছে। এবং আমি প্রায় গ্যারান্টি দিতে পারি যে কয়েকটি ক্রাঞ্চিংয়ের পারফরম্যান্স পেতে আপনি কয়েকটি প্রকল্পে সি এবং সি ++ পাবেন। অনুরূপ কারণে প্রচুর পাইথন থাকলে আমি অবাক হব না - একটি ভাল সংখ্যক গ্রন্থাগার সহ পাইথন সহজেই সংখ্যা-ক্রাঞ্চিংয়ের কাজগুলি পরিচালনা করতে পারে।
এই স্ব-ড্রাইভিং কারগুলির মধ্যে একটিতে আমি কল্পনা করেছি যে রুট-পরিকল্পনা ব্যবস্থায় ভিশন সিস্টেমটি একটি ভিন্ন ভাষায় (এবং বিভিন্ন হার্ডওয়্যার দিয়ে চালিত হয়) লেখা আছে।