এমসিএমসি করছেন: জাগ / স্ট্যান ব্যবহার করুন বা এটি নিজে প্রয়োগ করুন


13

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


যেহেতু আপনি নিজেই নিজের প্রস্তাব বিতরণটি নিজেরাই বেছে নিতে পারেন, আপনার এটি বেছে নেওয়া উচিত যে মার্কোভ চেইন এটির ফলস্বরূপ উত্তরের দিকে দ্রুত রূপান্তরিত করে।

ধন্যবাদ! এটা কি একমাত্র কারণ?
ব্যবহারকারী112758

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

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

উত্তর:


26

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

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

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

এছাড়াও, যদিও কোনও একক বিশ্লেষণের জন্য আপনার নিজের নমুনাটি লেখার জন্য এটি বোধগম্য নয় , বিশ্লেষণের একটি শ্রেণির জন্য নিজের কোড লিখতে এটি প্রচুর পরিমাণে অর্থ বোধ করতে পারে। জেএজিএস, স্ট্যান ইত্যাদি ব্ল্যাক-বক্সের স্যাম্পেলার হিসাবে হ'ল আপনি সর্বদা কোনও নির্দিষ্ট মডেলটির জন্য বিশেষত করে জিনিসগুলি দ্রুততর করতে পারেন, যদিও উন্নতির পরিমাণটি মডেল নির্ভর। তবে গ্রাউন্ড আপ থেকে একটি অত্যন্ত দক্ষ নমুনা লেখার অভিজ্ঞতা, মডেল জটিলতা ইত্যাদির উপর নির্ভর করে 10-10,000 ঘন্টা কাজ হতে পারে আপনি যদি বায়সিয়ান পদ্ধতিতে গবেষণা করছেন বা স্ট্যাটিস্টিকাল সফ্টওয়্যার লিখছেন তবে তা ঠিক আছে; এটা তোমার কাজ তবে যদি আপনার বস "হেই, আপনি এই পুনরাবৃত্তি ব্যবস্থা ডেটা সেট বিশ্লেষণ করতে পারেন?" এবং আপনি একটি দক্ষ নমুনা লেখার জন্য 250 ঘন্টা ব্যয় করেন, আপনার বস সম্ভবত বিরক্ত হতে পারেন। বিপরীতে, আপনি এই মডেলটি স্টান-এ লিখতে পারতেন, বলুন, 2 ঘন্টা, এবং দক্ষ স্যাম্পলার দ্বারা অর্জিত 1 মিনিটের রান টাইমের পরিবর্তে 2 মিনিটের রান সময় ছিল।


3
+1 টি। এছাড়াও, স্ট্যান বিচ্ছিন্ন বিতরণ জড়িত কিছু সমস্যা সরাসরি পরিচালনা করে না, সুতরাং এগুলি সংহত করার জন্য আপনাকে যথেষ্ট পরিমাণে জানতে হবে যা নিজেই সহজ নয়, যাতে এটি আপনার নিজের ঘূর্ণায়মান ক্ষেত্রে সহায়তা করতে পারে। আমি বিশ্বাস করি যে জাগস সরাসরি এ জাতীয় কেসগুলি পরিচালনা করে, তবে, আপনি যদি বিইজিএস / জেএজিএস এবং স্ট্যানের পৃথক দর্শনগুলি আপনার মনের মধ্যে পৃথক করে রাখতে পারেন তবে কেবল তাদের মধ্যে পরিবর্তন করা ভাল be
ওয়েইন

তদ্ব্যতীত স্ট্যানের এমন সমস্যা থাকতে পারে যেখানে একটি তির্যক ইউক্লিডিয়ান মেট্রিক উত্তরের জ্যামিতির সাথে উপযুক্ত নয়; এটি যখন আন্তঃসূচী হয় তখন কেবল উত্তরকোষের একটি সরু, অদ্ভুত আকারের অঞ্চল থাকে যার খুব বেশি সম্ভাবনা থাকে। ফলস্বরূপ যে পূর্ববর্তীটি স্যাম্পলিং করা একটি খড়ের কিনারায় বাইক চালানোর চেষ্টা করার মতো: আপনি যদি কোনও ভুল পালা নেন তবে আপনি "পড়তে পারেন"!
সাইকোরাক্স মনিকাকে

2
+1 টি। শিক্ষার্থীদের কাছে আমার সাধারণ পরামর্শটি এটি জেএজেএসে কোড আপ করা। যদি এটি কার্যকর না হয়, তবে স্ট্যানে এটি কোড করুন। যদি এটি কার্যকর না হয়, তবে আপনার নিজের নমুনা লেখা শুরু করুন। এছাড়াও নির্দিষ্ট কিছু মডেল রয়েছে, যেমন স্থানিক মডেলগুলি, আপনি BUGS ব্যবহার করতে পারেন। এবং নির্দিষ্ট কিছু মডেল, যেমন- গাউসিয়ান রাজ্য-স্থানের মডেল, যেখানে আপনি নিমব্ল ব্যবহার করতে চান। আপনার নিজের নমুনা লিখে শুরু করার সুযোগ ব্যয়টি খুব বেশি।
jaradniemi

আমি "রিয়েল টাইম" কেসটি বুঝতে পারি না - যদি "ইতিমধ্যে প্রস্তুত" নিজস্ব নমুনা পাওয়া সম্ভব হয় তবে ইতিমধ্যে সংকলিত স্ট্যান মডেলটি কেন ব্যবহার করা এত সহজ নয়? আমি আরও আশ্চর্য হই যে কোনও এমসিএমসি রিয়েল টাইম অ্যাপ্লিকেশনগুলির জন্য পর্যাপ্ত দ্রুত কিনা।
জুহো কোক্কালা

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

6

এই প্রশ্নটি মূলত মতামত ভিত্তিক, তবে আমি মনে করি এখানে উত্তর লিখতে যথেষ্ট আছে is গবেষণা সমস্যার জন্য একজনের নিজস্ব নমুনা কোড করার অনেক কারণ থাকতে পারে। এখানে তাদের কিছু

  1. প্রস্তাবনা: এফসিওপি তাদের মন্তব্যে যেমন পরামর্শ দিয়েছে, যদি নমুনাটি এমএইচ হয়, তবে আপনার নিজের নমুনা কোডিং কোডিং আপনাকে সেরা মিক্সিং স্যাম্পেলারটি পেতে প্রস্তাব বিতরণগুলির সাথে চারপাশে খেলতে দেয়।

  2. নমনীয়তা: অন্তর্নির্মিত প্রোগ্রামগুলিতে আপনি যে নমনীয়তা চান তা দিতে পারে না। আপনি একটি নির্দিষ্ট এলোমেলো মান থেকে শুরু করতে বা একটি নির্দিষ্ট বীজ কাঠামো ব্যবহার করতে চাইতে পারেন।

  3. বোঝা: আপনার নিজের নমুনা কোডিং কোডোভের চেন প্রক্রিয়াটি অন্তর্দৃষ্টি দিয়ে, নমুনার আচরণ বুঝতে আপনাকে সহায়তা করে। সমস্যাটি নিয়ে কাজ করা গবেষকের পক্ষে এটি দরকারী।

  4. ওনস: আমি যে সমস্ত ডেটাতে আমার সমস্ত বায়েশিয়ান অনুমান তৈরি করছি তা যদি এমন কোনও প্রোগ্রাম থেকে আসে যা আমি কোড করি না, তবে সেই অনুচ্ছেদে অনুলিপিটি আর আমার উপর থাকবে না। একজন গবেষক হিসাবে আমি যে পদ্ধতিগুলি / ফলাফল উপস্থাপন করি তার পুরো দায়িত্ব নিতে চাই। অন্তর্নির্মিত পদ্ধতি ব্যবহার করা আপনাকে এটি করতে দেয় না।

সম্ভবত আরও কারণ রয়েছে, তবে এই চারটিই আমাকে নিজের নিজস্ব নমুনা কোড তৈরি করে।


6
আমি বলব যে "বিশ্বাস" কারণটি বিতর্কিত: স্ট্যান ওপেন-সোর্স এবং এতে প্রচুর অবদানকারী রয়েছে, তাই একাধিক ব্যক্তিরা এর উত্স কোডটি দেখেছেন এবং তাই এর গুরুতর বাগ রয়েছে বলে সম্ভাবনা কম। অন্যদিকে, আপনি যদি এটি নিজের দ্বারা করেন তবে আপনি যে বাগটি তৈরি করেছেন তা সর্বদা উপেক্ষা করতে পারবেন - এবং সবাই বাগগুলি তৈরি করে এটি আপনার লেখা কোডের লাইনগুলির একটি বিষয় মাত্র ...
টিম

@ টিম আমি সম্মত আমি যা বলতে চাইছিলাম তা প্রতিবিম্বিত করতে আমি সেই বিন্দুটি পরিবর্তন করেছি। ধন্যবাদ।
গ্রিনপার্কার

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

@conjugateprior সম্পূর্ণরূপে সম্মত। যে কারণে আমার উত্তরটি প্রথম ব্যক্তিটিতে ছিল। এই ছিল সম্পূর্ণরূপে আমার মতামত।
গ্রিনপার্কার

4

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

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


1
লজ্জাবিহীন প্লাগ: আপনি [নিম্বল] (r-nimble.org) ব্যবহার করতে পারেন যা আপনাকে নিজের এমসিএমসি (যেমন এই নোডের জন্য স্লাইস স্যাম্পলার ব্যবহার করতে হবে, নোডের সেই গ্রুপের জন্য ব্লক আপডেটার ইত্যাদি) পুনরায় লেখার প্রয়োজন ছাড়াই কাস্টমাইজ করতে দেয় allows এই নমুনা প্রতিবার। এবং সরাসরি প্রয়োগ করার জন্য আপনি নিজের নিজস্ব নমুনা লিখতেও পারেন! প্রকাশ: আমি এই প্রকল্পে কাজ করতাম।
ক্লিফ এবি

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

@ ক্লিফ্যাব: বাহ, nimbleওয়েবসাইট পড়ার পরে , এটি বেশ চিত্তাকর্ষক। কেন আমি এর আগে শুনিনি? এটি BUGS / JAGS মডেলিংয়ের ভাষাতে ব্যবহৃত লোকদের কাছে দুর্দান্ত বিকল্প বলে মনে হচ্ছে। অবশ্যই, তারা ওয়েবসাইটে সেরা-সম্ভাবনা তুলনা করবে তবে এখনও আমি এটি পছন্দ করি। (স্টাডকে হুডের নীচে ব্যবহার করে rstanarmএবং বাদে brms, সহজেই ব্যবহারের-এ-র-চ্যাম্পিয়ন স্ট্যান হবে))
ওয়েন

এটি এখনও খুব নতুন: v0.1 প্রকাশিত হয়েছিল আমি মনে করি ঠিক 2 বছর আগে? এবং এসএমসি এই প্রকল্পের জন্য একটি বিশাল প্রেরণা ছিল: পিআই কণা ফিল্টারগুলিতে যথেষ্ট প্রকাশনা করেছে এবং প্রতিবার স্ক্র্যাচ থেকে লিখে লিখে বিরক্ত হচ্ছিল। তবে এসএমসি স্যাম্পেলারদের বর্তমান অবস্থা কী তা ধরে রাখতে আমি বর্তমান কাজের সাথে কিছুটা সময় নিয়েছি; যখন আমি চলে গেলাম (প্রায় দুই বছর আগে) আমরা সবেমাত্র খুব আদিমকে একসাথে রেখেছিলাম।
ক্লিফ এবি

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