Probabilistic programming
সম্ভাব্য প্রোগ্রামিং (পিপি) একটি প্রোগ্রামিং দৃষ্টান্ত যেখানে সম্ভাব্য মডেলগুলি নির্দিষ্ট করা হয় এবং এই মডেলগুলির জন্য অনুমান স্বয়ংক্রিয়ভাবে সঞ্চালিত হয়। এটি পূর্ববর্তীটিকে সহজ এবং আরও ব্যাপকভাবে প্রযোজ্য করার জন্য সম্ভাব্য মডেলিং এবং ঐতিহ্যবাহী সাধারণ উদ্দেশ্য প্রোগ্রামিংকে একত্রিত করার একটি প্রচেষ্টার প্রতিনিধিত্ব করে। এটি এমন ব্যবস্থা তৈরি করতে ব্যবহার করা যেতে পারে যা অনিশ্চয়তার মুখে সিদ্ধান্ত নিতে সহায়তা করে। সম্ভাব্য প্রোগ্রামিংয়ের জন্য ব্যবহৃত প্রোগ্রামিং ভাষাগুলিকে "সম্ভাব্য প্রোগ্রামিং ভাষা" (পি. পি. এল) হিসাবে উল্লেখ করা হয়। স্টক মূল্যের পূর্বাভাস দেওয়া, চলচ্চিত্রের সুপারিশ করা, কম্পিউটার নির্ণয় করা, সাইবার অনুপ্রবেশ সনাক্ত করা এবং চিত্র সনাক্তকরণের মতো বিভিন্ন কাজের জন্য সম্ভাব্য যুক্তি ব্যবহার করা হয়েছে। যাইহোক, সম্প্রতি অবধি (আংশিকভাবে সীমিত কম্পিউটিং শক্তির কারণে), সম্ভাব্য প্রোগ্রামিং সুযোগে সীমিত ছিল এবং বেশিরভাগ অনুমান অ্যালগরিদম প্রতিটি কাজের জন্য ম্যানুয়ালি লিখতে হত। তবুও, 2015 সালে, সেই মুখগুলির 2ডি চিত্রের উপর ভিত্তি করে মানুষের মুখগুলির 3ডি মডেল তৈরি করতে একটি 50-লাইনের সম্ভাবনাময় কম্পিউটার ভিশন প্রোগ্রাম ব্যবহার করা হয়েছিল। প্রোগ্রামটি তার অনুমান পদ্ধতির ভিত্তি হিসাবে বিপরীত গ্রাফিক্স ব্যবহার করেছিল এবং জুলিয়ায় পিকচার প্যাকেজ ব্যবহার করে নির্মিত হয়েছিল। এটি "কোডের 50 টি লাইনে যা হাজার হাজার লাগত" তা সম্ভব করে তুলেছিল। জেন প্রোবেবিলিস্টিক প্রোগ্রামিং লাইব্রেরি (জুলিয়া ভাষায়ও লেখা) দৃষ্টি এবং রোবোটিক্সের কাজে প্রয়োগ করা হয়েছে। আরও সম্প্রতি, সম্ভাবনাময় প্রোগ্রামিং সিস্টেম Turing.jl বিভিন্ন ফার্মাসিউটিক্যাল এবং অর্থনীতির প্রয়োগগুলিতে প্রয়োগ করা হয়েছে। জুলিয়ার সম্ভাবনাময় প্রোগ্রামিংকে জুলিয়া প্যাকেজ Zygote.jl-কে Turing.jl-এর সাথে একত্রিত করে ডিফারেনশিয়েবল প্রোগ্রামিংয়ের সাথেও যুক্ত করা হয়েছে। সম্ভাবনাময় প্রোগ্রামিং ভাষাগুলি সাধারণত বায়েসিয়ান জ্ঞানীয় বিজ্ঞানে জ্ঞানের মডেলগুলি বিকাশ এবং মূল্যায়ন করতে ব্যবহৃত হয়। সম্ভাব্য প্রোগ্রামিং ভাষা পিপিএলগুলি প্রায়শই একটি মৌলিক ভাষা থেকে প্রসারিত হয়। অন্তর্নিহিত মৌলিক ভাষার পছন্দ মৌলিক ভাষার সত্তাতত্ত্বের সাথে মডেলের সাদৃশ্যের পাশাপাশি বাণিজ্যিক বিবেচনা এবং ব্যক্তিগত পছন্দের উপর নির্ভর করে। উদাহরণস্বরূপ, ডিম্পল এবং চিম্পল জাভা ভিত্তিক, Infer.NET. NET ফ্রেমওয়ার্ক ভিত্তিক, যেখানে PRISM প্রোলগ থেকে প্রসারিত। যাইহোক, কিছু পিপিএল যেমন উইনবুগস একটি স্বয়ংসম্পূর্ণ ভাষা প্রদান করে, যা পরিসংখ্যানগত মডেলগুলির গাণিতিক উপস্থাপনার সাথে ঘনিষ্ঠভাবে মানচিত্র করে, অন্য প্রোগ্রামিং ভাষায় কোনও সুস্পষ্ট উত্স নেই। গিবস স্যাম্পলিং (এবং সম্পর্কিত অ্যালগরিদম) ব্যবহার করে বায়েসিয়ান গণনা সম্পাদনের জন্য উইনবুগস-এর ভাষা প্রয়োগ করা হয়েছিল। যদিও তুলনামূলকভাবে পুরানো প্রোগ্রামিং ভাষায় (পাস্কাল) প্রয়োগ করা হয়েছে, এই ভাষাটি একটি নমনীয় গণনামূলক পদ্ধতির ব্যবহার করে বিভিন্ন ধরনের পরিসংখ্যানগত মডেলের জন্য বায়েসিয়ান অনুমানের অনুমতি দেয়। একই বিইউজিএস ভাষা বিভিন্ন গণনামূলক পছন্দ ("স্যাম্পলার") এবং কনভেনশন বা ডিফল্টের মাধ্যমে অনুমানের জন্য বায়েসিয়ান মডেলগুলি নির্দিষ্ট করতে ব্যবহার করা যেতে পারে, একটি স্বতন্ত্র প্যাকেজ উইনবিইউজিএস (বা সম্পর্কিত আর প্যাকেজ, আরবাগ এবং আর2উইনবাগ) এবং জেএজিএস (জাস্ট অ্যানাদার গিবস স্যাম্পলার, আরেকটি আর প্যাকেজ) ব্যবহার করে। আরও সম্প্রতি, বায়েসিয়ান মডেলের নির্দিষ্টকরণ এবং অনুমানকে সমর্থন করার জন্য অন্যান্য ভাষাগুলি অন্তর্নিহিত বায়েসিয়ান গণনার জন্য বিভিন্ন বা আরও দক্ষ পছন্দের অনুমতি দেয় এবং আর ডেটা বিশ্লেষণ এবং প্রোগ্রামিং পরিবেশ থেকে অ্যাক্সেসযোগ্য, যেমন। : স্ট্যান, নিম্বল এবং নটস। এই পরবর্তী ভাষাগুলিতে বুগস ভাষার প্রভাব স্পষ্ট, যা মডেল নির্দিষ্টকরণের কিছু দিকের জন্য একই বাক্য গঠন ব্যবহার করে। বিটা পরীক্ষা সহ বেশ কয়েকটি পি. পি. এল সক্রিয় বিকাশে রয়েছে। দুটি জনপ্রিয় সরঞ্জাম হল স্ট্যান এবং পাইএমসি। একটি সম্ভাব্য রিলেশনাল প্রোগ্রামিং ল্যাঙ্গুয়েজ (পি. আর. পি. এল) হল একটি পি. পি. এল যা বিশেষভাবে সম্ভাব্য রিলেশনাল মডেল (পি. আর. এম)-এর সাথে বর্ণনা এবং অনুমান করার জন্য ডিজাইন করা হয়েছে। একটি পিআরএম সাধারণত সংশ্লিষ্ট বিতরণগুলি হ্রাস, অনুমান এবং আবিষ্কারের জন্য অ্যালগরিদমগুলির একটি সেট দিয়ে তৈরি করা হয়, যা সংশ্লিষ্ট পিআরপিএল-এ এম্বেড করা হয়। সম্ভাব্য প্রোগ্রামিং ভাষার তালিকা এই তালিকাটি বর্তমানে উপলব্ধ বিভিন্ন ধরনের পি. পি. এল-এর সংক্ষিপ্তসার এবং তাদের উৎপত্তি স্পষ্ট করে। সম্ভাব্যতা বিতরণ হিসাবে ভেরিয়েবল সম্পর্কে যুক্তি করতে অসুবিধা নবাগত প্রোগ্রামারদের জন্য অসুবিধা সৃষ্টি করে, তবে এই সমস্যাগুলি উৎস কোড সম্পাদকের মধ্যে এম্বেড করা বায়েসিয়ান নেটওয়ার্ক ভিজ্যুয়ালাইজেশন এবং পরিবর্তনশীল বিতরণের গ্রাফ ব্যবহারের মাধ্যমে সমাধান করা যেতে পারে। আরও দেখুন পরিসংখ্যানগত রিলেশনাল লার্নিং ইনডাক্টিভ প্রোগ্রামিং বায়েসিয়ান প্রোগ্রামিং প্লেট নোটেশন নোটস এক্সটার্নাল লিঙ্ক লিস্ট অফ প্রোবেবিলিস্টিক মডেল মিনি ল্যাঙ্গুয়েজ টুলকিট প্রোবেবিলিস্টিক প্রোগ্রামিং উইকি প্রোবেবিলিস্টিক মডেল প্রোবেবিলিস্টিক সফ্টওয়্যার প্রোগ্রামিং প্যারাডাইম