লিস্প এআইয়ের জন্য এত ভাল ভাষা কেন?


30

আমি কম্পিউটার বিজ্ঞানী এবং এআই অঞ্চলের গবেষকদের কাছ থেকে শুনেছি যে কৃত্রিম বুদ্ধিমত্তায় গবেষণা এবং উন্নয়নের জন্য লিস্প একটি ভাল ভাষা। নিউরাল নেটওয়ার্কগুলির বিস্তার এবং গভীর শিক্ষার সাথে কি এটি এখনও প্রয়োগ হয়? এ নিয়ে তাদের যুক্তি কী ছিল? বর্তমানে ডিপ-লার্নিং সিস্টেমগুলি কোন ভাষায় অন্তর্নির্মিত?

উত্তর:


30

প্রথমত, আমি অনুমান করি যে আপনার বোঝার অর্থ কমন লিস্প (যা একটি স্ট্যান্ডার্ড ভাষার স্পেসিফিকেশন, এর হাইপারস্পেক দেখুন ) দক্ষ বাস্তবায়ন ( S লা এসবিসিএল ) সহ। তবে স্কিমের কিছু সাম্প্রতিক বাস্তবায়নও প্রাসঙ্গিক হতে পারে ( বিগলু বা চিকেন / স্কিমের মতো ভাল বাস্তবায়নের সাথে )। কমন লিস্প এবং স্কিম (এবং ক্লোজার ) উভয়ই একই লিস্প পরিবারের from এবং স্ক্রিপ্টিং ল্যাঙ্গুয়েজ হিসাবে বড় ডেটা বা মেশিন লার্নিং অ্যাপ্লিকেশনগুলি চালনা করে, পাগল পাইথনের একটি দরকারী প্রতিস্থাপন হতে পারে এবং এটি একটি লিস্প উপভাষাও হতে পারেবিটিডাব্লু , আমি এসআইসিপি পড়ার পরামর্শ দিচ্ছি, স্কিম ব্যবহার করে প্রোগ্রামিংয়ের একটি দুর্দান্ত ভূমিকা।

তারপরে, কমন লিস্প (এবং লিস্পের অন্যান্য উপভাষাগুলি) প্রতীকী এআইয়ের জন্য দুর্দান্ত। তবে সাম্প্রতিক অনেকগুলি মেশিন লার্নিং গ্রন্থাগারগুলি আরও মূলধারার ভাষায় কোড করা হয়েছে, উদাহরণস্বরূপ টেনসরফ্লো সি ++ এবং পাইথনে কোড করা হয়েছে। ডিপ লার্নিং লাইব্রেরিগুলি বেশিরভাগ সি ++ বা পাইথন বা সিতে কোড করা হয় (এবং কখনও কখনও জিপিইউ কম্পিউটিং অংশগুলির জন্য ওপেনসিএল বা কুডা ব্যবহার করে)।

কমন লিস্প প্রতীকী কৃত্রিম বুদ্ধিমত্তার জন্য দুর্দান্ত কারণ:

  • এটির খুব ভাল বাস্তবায়ন রয়েছে (যেমন এসবিসিএল , যা আরপিএলকে দেওয়া প্রতিটি অভিব্যক্তিই মেশিন কোডকে সংহত করে )
  • এটি হোমোসোনিক , সুতরাং প্রোগ্রাম হিসাবে ডেটা হিসাবে মোকাবেলা করা সহজ, বিশেষত [উপ-] প্রোগ্রাম উত্পন্ন করা সহজ, এটি মেটা-প্রোগ্রামিং কৌশলগুলি ব্যবহার করে ।
  • ইন্টারেক্টিভ প্রোগ্রামিং স্বাচ্ছন্দ্যে এটিতে একটি রিড-ইভাল-প্রিন্ট লুপ রয়েছে
  • এটি একটি খুব শক্তিশালী ম্যাক্রো মেশিনারি সরবরাহ করে (মূলত, আপনি নিজের সমস্যার জন্য আপনার নিজের ডোমেন নির্দিষ্ট সাবল্যাংগেইজ সংজ্ঞায়িত করেছেন), সি এর মতো অন্যান্য ভাষার চেয়ে অনেক বেশি শক্তিশালী
  • এটি কোনও আবর্জনা সংগ্রহকারীকে আদেশ দেয় (এমনকি কোড আবর্জনা সংগ্রহ করা যেতে পারে)
  • এটি অনেকগুলি ধারক বিমূর্ত তথ্য প্রকার সরবরাহ করে এবং সহজেই প্রতীকগুলি পরিচালনা করতে পারে।
  • আপনি উপযুক্ত উচ্চারণের মাধ্যমে উচ্চ-স্তরের (গতিযুক্ত টাইপযুক্ত) এবং নিম্ন-স্তরের (কম বেশি প্রারম্ভিকভাবে টাইপ করা) কোড উভয়ই কোড করতে পারেন।

তবে বেশিরভাগ মেশিন লার্নিং এবং নিউরাল নেটওয়ার্ক লাইব্রেরি সিএলে কোড করা হয় না। লক্ষ করুন যে স্নায়ুবিক নেটওয়ার্ক বা গভীর শিক্ষণ উভয়ই প্রতীকী কৃত্রিম বুদ্ধিমত্তার ক্ষেত্রে নয়। আরও দেখুন এই প্রশ্নের

মত বেশ কিছু সিম্বলিক এআই সিস্টেম Eurisko বা CYC সাফ প্রতীক উন্নত হয়েছে (আসলে, কিছু সাফ প্রতীক উপরে নির্মিত ডিএসএল মধ্যে)।

লক্ষ্য করুন প্রোগ্রামিং ভাষা খুব গুরুত্বপূর্ণ নাও হতে পারে। ইন কৃত্রিম জেনারেল ইন্টেলিজেন্স গবেষণা বিষয়, কিছু লোক একটি এআই সিস্টেম যা এটির সমস্ত নিজের কোড (তাই একটি সঙ্গে এটি নকশা করছে উৎপন্ন হবে ধারণার উপর কাজ বুটস্ট্র্যাপিং পদ্ধতির)। তারপরে, এই জাতীয় সিস্টেমে উত্পন্ন কোডটি সি এর মতো নিম্ন স্তরের প্রোগ্রামিং ভাষায়ও উত্পন্ন হতে পারে


1
আমি এখানে যুক্ত করতে চাই, যে টেনসরফ্লো এবং থিয়েওনো গণনা সংক্রান্ত গ্রাফের উপর ভিত্তি করে, যা আসলে প্রতীকী প্রোগ্রামিং, তবে আবশ্যকীয় ভাষার মধ্যে।
ম্যাক্সিম

@ বেসিল: দয়া করে সাধারণ এলআইএসপি টিউটোরিয়াল বা রেফারেন্স ভাগ করুন
বেদ প্রকাশ

@ ওয়েডপ্রকাশ: আমি ইমেল মাধ্যমে আপনার সাথে যোগাযোগ করতে চাই। আমার হয় basile@starynkevitch.net;
টুইটারটি

15

ডেভিড Nolen (এর সহযোগী Clojure এবং ClojureScript ; কোর লজিক miniKanren একটি বন্দর স্রষ্টার) একটি আলাপ নামক পাতার মর্মর খুব শক্তিশালী বলেন যে তার দিন পাতার মর্মর ফিরে দশক অন্যান্য প্রোগ্রামিং ভাষার এগিয়ে ছিল। আছে সতীনের সংখ্যা বেশি কেন ভাষাটি এটিকে নাম বজায় রাখতে সক্ষম ছিল না।

এই নিবন্ধটি এলআইএসপি এআইয়ের জন্য ভাল কেন এমন কয়েকটি মূল বিষয়গুলি তুলে ধরে

  • একটি নতুন ভাষা সংজ্ঞায়িত করা এবং জটিল তথ্য হেরফের করা সহজ।
  • প্রোগ্রাম হিসাবে ডেটা সংজ্ঞায়িত এবং হেরফেরে সম্পূর্ণ নমনীয়তা।
  • দ্রুত, প্রোগ্রামটি নিম্ন স্তরের বিশদের সাথে সংক্ষিপ্ত হিসাবে।
  • ভালো প্রোগ্রামিং পরিবেশ (ডিবাগিং, ইনক্রিমেন্টাল কম্পাইলার, সম্পাদক)।

এই ক্ষেত্রে আমার বেশিরভাগ বন্ধুরা সাধারণত কৃত্রিম নিউরাল নেটওয়ার্ক এবং মেশিন লার্নিংয়ের জন্য মতলব ব্যবহার করে। যদিও এটি নিম্ন স্তরের বিশদগুলি গোপন করে। আপনি যদি কেবল ফলাফলগুলি খুঁজছেন এবং কীভাবে আপনি সেখানে পাবেন তা না হলে মতলব ভাল হবে good তবে আপনি যদি নিম্ন স্তরের বিস্তারিত স্টাফও শিখতে চান তবে আমি আপনাকে কমপক্ষে একবার এলআইএসপি দিয়ে যাওয়ার পরামর্শ দেব।
আপনার কাছে বিভিন্ন এআই অ্যালগরিদম এবং কৌশলগুলির বোঝাপড়া থাকলে ভাষা সম্ভবত গুরুত্বপূর্ণ হতে পারে না। আমি আপনাকে "কৃত্রিম বুদ্ধিমত্তা: একটি আধুনিক পদ্ধতির (স্টুয়ার্ড জে। রাসেল এবং পিটার নরভিগের লেখা") পড়ার পরামর্শ দেব currently আমি বর্তমানে এই বইটি পড়ছি, এবং এটি একটি খুব ভাল বই।


4

এআই একটি বিস্তৃত ক্ষেত্র যা মেশিন লার্নিং, গভীর লার্নিং, নিউরাল নেটওয়ার্ক ইত্যাদির অনেক বেশি চলে যায় এর মধ্যে কিছু ক্ষেত্রে প্রোগ্রামিংয়ের ভাষা মোটেই গুরুত্বপূর্ণ নয় (গতির সমস্যাগুলি বাদে), সুতরাং এলআইএসপি অবশ্যই সেখানে কোনও বিষয় হবে না would ।

অনুসন্ধান বা এআই পরিকল্পনায় উদাহরণস্বরূপ, সি ++ এবং জাভা জাতীয় স্ট্যান্ডার্ড ভাষাগুলি প্রায়শই প্রথম পছন্দ হয় কারণ এগুলি দ্রুত (বিশেষত সি ++) এবং পরিকল্পনা ব্যবস্থার মতো অনেকগুলি সফ্টওয়্যার প্রকল্প ওপেন সোর্স, সুতরাং একটি আদর্শ ভাষা ব্যবহার করা গুরুত্বপূর্ণ ( বা কোনও ক্ষেত্রে মতামত বা এক্সটেনশনের প্রশংসা করা ক্ষেত্রে অন্তত বুদ্ধিমান)। আমি কেবলমাত্র একটি একক পরিকল্পনাকারীর সম্পর্কে অবগত যা এলআইএসপিতে লেখা আছে। এআইয়ের এই ক্ষেত্রে প্রোগ্রামিং ভাষার পছন্দের ভূমিকা সম্পর্কে কিছুটা ধারণা দেওয়ার জন্য, আমি সর্বাধিক পরিচিত এবং অতএব সর্বাধিক গুরুত্বপূর্ণ পরিকল্পনাকারীদের একটি তালিকা দেব:

দ্রুত-নিম্নগামী:
বিবরণ: সম্ভবত সর্বাধিক পরিচিত শাস্ত্রীয় পরিকল্পনা সিস্টেম
URL: http://www.fast-downward.org/
ভাষা: সি ++, অংশগুলি (প্রিপ্রোসেসিং) পাইথনে রয়েছে

মুক্তিযোদ্ধা:
বিবরণ: একসঙ্গে সঙ্গে ফাস্ট নিম্নগামী শাস্ত্রীয় পরিকল্পনা সিস্টেম সবাই জানে URL টি: https://fai.cs.uni-saarland.de/hoffmann/ff.html ভাষা: সি

ভিএইচপিপ:
বিবরণ: সর্বাধিক পরিচিত আংশিক-আদেশ কার্যকারণ লিংক (পিওসিএল) পরিকল্পনার সিস্টেমগুলির
ইউআরএল: http://www.tempastic.org/vhpop/
ভাষা: সি ++

শপ এবং শপ 2:
বিবরণ: সর্বাধিক পরিচিত HTN (শ্রেণিবদ্ধ) পরিকল্পনার সিস্টেম
URL: https://www.cs.umd.edu/projects/shop/
ভাষা: শপ এবং শপ 2 এর দুটি সংস্করণ রয়েছে। মূল সংস্করণগুলি এলআইএসপিতে লেখা হয়েছে। আরও নতুন সংস্করণ (JSHOP এবং JSHOP2) জাভাতে লেখা হয়েছে। পাইপশপ পাইথনে লেখা আরও একটি শপ ভেরিয়েন্ট।

পান্ডা:
বিবরণ: আরেকটি সুপরিচিত HTN (এবং সংকর) পরিকল্পনার সিস্টেম
URL: http://www.uni-ulm.de/en/in/ki/research/software/panda/panda-planning-system/
ভাষা: সেখানে পরিকল্পনাকারীর বিভিন্ন সংস্করণ: PANDA1 এবং PANDA2 জাভাতে লেখা হয়, PANDA3 মূলত জাভাতে লেখা হয় কিছু অংশ স্কালায় রয়েছে।

এগুলি ছিল আমার সুনামের সাথে পরিচিত কয়েকটি সুনির্দিষ্ট পরিকল্পনা সিস্টেম। সাম্প্রতিক আরও কয়েকটি আন্তর্জাতিক পরিকল্পনা প্রতিযোগিতা (আইপিসি, http://www.icaps-conferences.org/index.php/Main/Compferencess ) থেকে প্রাপ্ত করা যেতে পারে , যা প্রতি দুই বছর পর পর অনুষ্ঠিত হয়। প্রতিযোগী পরিকল্পনাকারীদের কোড প্রকাশিত হয় উন্মুক্ত উত্স (কয়েক বছরের জন্য)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.