शायद अवधारणा, इसका उपयोग क्यों किया जाता है, और एक उदाहरण।
शायद अवधारणा, इसका उपयोग क्यों किया जाता है, और एक उदाहरण।
जवाबों:
पहले, हमें यह समझने की आवश्यकता है कि मार्कोव श्रृंखला क्या है। विकिपीडिया से निम्नलिखित मौसम उदाहरण पर विचार करें। मान लीजिए कि किसी भी दिन मौसम को केवल दो राज्यों में वर्गीकृत किया जा सकता है: धूप और बरसात। पिछले अनुभव के आधार पर, हम निम्नलिखित जानते हैं:
चूंकि, अगले दिन का मौसम या तो धूप में होता है या बारिश होती है जो इस प्रकार है:
इसी तरह, चलो:
इसलिए, यह निम्न है कि:
उपरोक्त चार संख्याओं को एक संक्रमण मैट्रिक्स के रूप में कॉम्पैक्ट रूप से दर्शाया जा सकता है जो एक राज्य से दूसरे राज्य में जाने वाले मौसम की संभावनाओं का प्रतिनिधित्व करता है:
हम कई सवाल पूछ सकते हैं जिनके जवाब निम्नलिखित हैं:
Q1: यदि मौसम आज धूप है तो कल मौसम होने की क्या संभावना है?
A1: के बाद से, हम नहीं जानते कि क्या होने वाला है सुनिश्चित करने के लिए, सबसे अच्छा हम यह कह सकते हैं कि संभावना है कि यह धूप और होने की संभावना है कि यह बारिश होगी।10 %
Q2: आज से दो दिनों के बारे में क्या?
A2: एक दिन की भविष्यवाणी: धूप, बरसात। इसलिए, अब से दो दिन:10 %
पहले दिन धूप हो सकती है और अगले दिन भी धूप हो सकती है। इसके होने की संभावना हैं: ।
या
पहले दिन बारिश हो सकती है और दूसरे दिन धूप हो सकती है। इसके होने की संभावना हैं: ।
इसलिए, दो दिनों में मौसम सुहाना हो जाएगा:
इसी तरह, संभावना है कि यह बारिश होगी:
रैखिक बीजगणित (ट्रांज़िशन मैट्रिसेस) में, ये गणना एक चरण से अगले (धूप-से-सनी ( ), धूप-से-बारिश ( ), बरसात-से-धूप ( ) या करने के लिए संक्रमण में सभी क्रमपरिवर्तन के अनुरूप हैं । बारिश-से-बरसात ( ) उनकी गणना की संभावनाओं के साथ:S 2 R R 2 S R 2 R
छवि के निचले भाग पर हम देखते हैं कि भविष्य की स्थिति ( या ) की संभावना की गणना कैसे की जाए (शून्य या बरसात) हर राज्य के लिए प्रायिकता (प्रायिकता द्रव्यमान समारोह, ) या ) सरल मैट्रिक्स गुणन के रूप में।t + 2 P M F t 0
यदि आप इस तरह का पूर्वानुमान मौसम रखते हैं, तो आप देखेंगे कि अंततः वें दिन का पूर्वानुमान, जहां बहुत बड़ा है ( कहना है ), निम्नलिखित 'संतुलन' संभावनाओं को सुलझाता है:एन 30
तथा
दूसरे शब्दों में, -th दिन और -दिन के लिए आपका पूर्वानुमान समान रहता है। इसके अलावा, आप यह भी देख सकते हैं कि 'संतुलन' संभावनाएँ आज के मौसम पर निर्भर नहीं करती हैं। आप मौसम के लिए एक ही पूर्वानुमान प्राप्त करते हैं यदि आप यह मानकर शुरू करते हैं कि आज मौसम धूप या बारिश का है।एन + १
उपरोक्त उदाहरण केवल तभी काम करेगा जब राज्य संक्रमण संभावनाएं कई शर्तों को पूरा करती हैं जो मैं यहां चर्चा नहीं करूंगा। लेकिन, इस 'अच्छी' मार्कोव श्रृंखला की निम्न विशेषताओं पर ध्यान दें (अच्छी = संक्रमण संभावनाएँ शर्तों को पूरा करती हैं):
प्रारंभिक प्रारंभिक अवस्था के बावजूद हम अंततः राज्यों के एक संतुलन संभावना वितरण तक पहुंच जाएंगे।
मार्कोव चेन मोंटे कार्लो उपरोक्त सुविधा का निम्नानुसार उपयोग करता है:
हम लक्ष्य वितरण से यादृच्छिक ड्रॉ उत्पन्न करना चाहते हैं। फिर हम एक 'अच्छी' मार्कोव श्रृंखला के निर्माण के तरीके की पहचान करते हैं, ताकि इसका संतुलन संभावना वितरण हमारा लक्ष्य वितरण हो।
हम इस तरह के एक श्रृंखला का निर्माण कर सकते हैं तो हम मनमाने ढंग से कुछ बिंदु से शुरू करने और मार्कोव श्रृंखला में कई बार (हम कैसे मौसम पूर्वानुमान की तरह पुनरावृति बार)। आखिरकार, हम जो ड्रॉ उत्पन्न करते हैं वह ऐसा प्रतीत होता है जैसे वे हमारे लक्ष्य वितरण से आ रहे हैं।
हम तब कुछ प्रारंभिक ड्रॉ जो मोंटे कार्लो घटक है को छोड़ने के बाद ड्रॉ का नमूना औसत लेते हुए ब्याज की मात्रा (जैसे माध्य) का अनुमान लगाते हैं।
'अच्छा' मार्कोव श्रृंखला (जैसे, गिब्स नमूना, मेट्रोपोलिस-हेस्टिंग्स एल्गोरिथ्म) के निर्माण के कई तरीके हैं।
मुझे लगता है कि (इंडिपेंडेंट-चेन) मेट्रोपोलिस-हेस्टिंग्स एल्गोरिथम से प्राप्त करने के लिए एक अच्छा और सरल अंतर्ज्ञान है।
पहला, लक्ष्य क्या है? एमसीएमसी का लक्ष्य किसी भी बिंदु पर इसकी सही ऊंचाई जानने के बिना कुछ संभावना वितरण से नमूने खींचना है। जिस तरह से MCMC को यह प्राप्त होता है, वह उस वितरण पर इस तरह "घूमने" के लिए है कि प्रत्येक स्थान में बिताए समय की मात्रा वितरण की ऊंचाई के लिए आनुपातिक है। यदि "घूमने-फिरने" की प्रक्रिया को सही ढंग से सेट किया गया है, तो आप यह सुनिश्चित कर सकते हैं कि यह आनुपातिकता (समय बिताने और वितरण की ऊंचाई के बीच) प्राप्त की जाती है।
सहज रूप से, हम जो करना चाहते हैं, वह किसी न किसी (ढेलेदार) सतह पर इस तरह से घूमना है कि हम प्रत्येक स्थान पर जितना समय बिताएं (या # नमूने लिए गए) उस स्थान पर सतह की ऊंचाई के लिए आनुपातिक है। इसलिए, उदाहरण के लिए, हम 100 मीटर की ऊंचाई पर दो बार उतना ही समय बिताना चाहते हैं जितना कि हम 100 मीटर की ऊंचाई पर पास की पहाड़ी पर करते हैं जो 50 मीटर की ऊंचाई पर है। अच्छी बात यह है कि हम ऐसा तब भी कर सकते हैं जब हम सतह पर बिंदुओं की निरपेक्ष ऊँचाई को नहीं जानते हैं: हम सभी को यह जानना होगा कि सापेक्ष ऊँचाई क्या है। उदाहरण के लिए, यदि एक हिलटॉप ए, हिलटॉप बी से दोगुना है, तो हम ए के लिए बी जितना खर्च करते हैं उससे दोगुना समय खर्च करना चाहते हैं।
मेट्रोपोलिस-हेस्टिंग्स एल्गोरिथम (स्वतंत्रता श्रृंखला नमूनाकरण) का सबसे सरल संस्करण इस प्रकार प्राप्त होता है: मान लें कि हर (असतत) समय-चरण में, हम एक यादृच्छिक नया "प्रस्तावित" स्थान (पूरी सतह पर समान रूप से चयनित) चुनते हैं। यदि प्रस्तावित स्थान उस स्थान से अधिक है जहाँ हम अभी खड़े हैं, तो उस पर जाएँ। यदि प्रस्तावित स्थान कम है, तो संभाव्यता p के साथ नए स्थान पर जाएं, जहां p उस बिंदु की ऊंचाई का वर्तमान स्थान की ऊंचाई का अनुपात है। (यानी, सिर पाने की प्रायिकता पी के साथ एक सिक्का फ्लिप करें; अगर यह सिर के ऊपर आता है, तो नए स्थान पर जाएं; यदि यह पूंछ ऊपर आती है, तो हम जहां हैं वहां रहें)। उन स्थानों की सूची रखें, जो आप हर समय कदम पर रहे हैं, और उस सूची में (asyptotically) सतह के प्रत्येक भाग में खर्च किए गए समय का सही अनुपात होगा।
नए स्थानों को प्रस्तावित करने और उन्हें स्वीकार करने के नियमों के लिए अधिक जटिल योजनाएं हैं, लेकिन मूल विचार अभी भी है: (1) एक नया "प्रस्तावित" स्थान चुनें; (२) पता लगाएँ कि आपके वर्तमान स्थान की तुलना में वह स्थान कितना ऊँचा या नीचा है; (3) संभावित रूप से उस स्थान पर इस तरह से रखा या स्थानांतरित किया जाना चाहिए जो स्थान की ऊंचाई के लिए आनुपातिक समय बिताने के समग्र लक्ष्य का सम्मान करता है।
यह किसके लिए उपयोगी है? मान लीजिए कि हमारे पास मौसम का एक संभावित मॉडल है जो हमें ए * पी (मौसम) का मूल्यांकन करने की अनुमति देता है, जहां ए एक अज्ञात स्थिर है। (यह अक्सर होता है - कई मॉडल इस तरह से तैयार करने के लिए सुविधाजनक हैं कि आप यह निर्धारित नहीं कर सकते कि ए क्या है)। इसलिए हम पी ("कल बारिश") का सही मूल्यांकन नहीं कर सकते हैं। हालांकि, हम थोड़ी देर के लिए MCMC नमूना चला सकते हैं और फिर पूछ सकते हैं: नमूने का कौन सा अंश (या "स्थान") "बारिश कल" राज्य में समाप्त हो गया। वह अंश (मॉडल आधारित) संभाव्य मौसम पूर्वानुमान होगा।
मैं शायद कुछ इस तरह से कहूंगा:
"किसी भी समय हम संभावनाओं के बारे में बात करना चाहते हैं, हम वास्तव में एक घनत्व को एकीकृत कर रहे हैं। बायेसियन विश्लेषण में, हमारे पास आने वाले बहुत सारे घनत्व विश्लेषणात्मक रूप से ट्रैक्टेबल नहीं हैं: आप केवल उन्हें एकीकृत कर सकते हैं - यदि आप उन्हें एकीकृत कर सकते हैं - दुख का एक बड़ा सौदा के साथ। तो हम इसके बजाय यादृच्छिक चर बहुत अनुकरण करते हैं, और फिर हमारे सिम्युलेटेड यादृच्छिक संख्याओं से संभावनाओं का पता लगाते हैं। यदि हम यह जानना चाहते हैं कि X 10 से कम है, तो हम गिनते हैं। सिम्युलेटेड रैंडम वेरिएबल के अनुपात का अनुपात 10 से कम होता है और जो हमारे अनुमान के रूप में उपयोग करते हैं। वह "मोंटे कार्लो" भाग है, यह यादृच्छिक संख्याओं के आधार पर संभाव्यता का अनुमान है। पर्याप्त सिम्युलेटेड यादृच्छिक संख्याओं के साथ, अनुमान बहुत अच्छा है, लेकिन यह अभी भी है। स्वाभाविक रूप से यादृच्छिक।
"तो" मार्कोव चेन "क्यों? क्योंकि कुछ तकनीकी स्थितियों के तहत, आप एक मेमोरीलेस प्रक्रिया (उर्फ एक मार्कोवियन एक) उत्पन्न कर सकते हैं जिसमें यादृच्छिक चर के समान समान वितरण है जिसे आप अनुकरण करने की कोशिश कर रहे हैं। आप किसी भी को पुन: व्यवस्थित कर सकते हैं। विभिन्न प्रकार की सिमुलेशन प्रक्रियाएं जो सहसंबद्ध यादृच्छिक संख्या उत्पन्न करती हैं (केवल उन संख्याओं के वर्तमान मूल्य के आधार पर), और आप गारंटी देते हैं कि एक बार जब आप पर्याप्त परिणाम प्राप्त कर लेते हैं, तो आप संख्याओं के ढेर के साथ समाप्त हो जाएंगे जो दिखता है " जैसे कि "आप किसी तरह से उस जटिल वितरण से स्वतंत्र नमूने लेने में कामयाब रहे जिसके बारे में आप जानना चाहते थे।
"इसलिए, उदाहरण के लिए, अगर मैं इस संभावना का अनुमान लगाना चाहता हूं कि एक मानक सामान्य यादृच्छिक चर 0.5 से कम था, तो मैं मानक सामान्य वितरण से दस हजार स्वतंत्र अहसास उत्पन्न कर सकता हूं और 0.5 से कम संख्या की गणना कर सकता हूं; कहूं तो मुझे 6905 मिले। कुल 10000 नमूनों में से 0.5 से कम; मेरा अनुमान P (Z <0.5) के लिए 0.6905 होगा, जो वास्तविक मूल्य से बहुत दूर नहीं है। यह मोंटे कार्लो का अनुमान होगा।
प्रक्रिया से मुझे प्राप्त होने वाली संख्याओं की सूची को सामान्य यादृच्छिक चर उत्पन्न करने वाली चीज़ों की एक बड़ी संख्या की तरह वितरित किया जाएगा। यह मुझे एक मानक सामान्य यादृच्छिक चर के लिए मार्कोव चेन मोंटे कार्लो सिमुलेशन देगा। अगर मैंने इसका उपयोग संभावनाओं का अनुमान लगाने के लिए किया है, तो यह एमसीएमसी का अनुमान होगा। ”
कल्पना कीजिए कि आप बोर्ड गेम एकाधिकार में अपने दोस्तों को हराने के लिए एक बेहतर रणनीति खोजना चाहते हैं। खेल में इस मामले के लिए सामान को सरल बनाएं प्रश्न: लोगों को कौन से गुण सबसे अधिक भूमि पर आते हैं? इसका उत्तर बोर्ड की संरचना, खेल के नियम और दो पासा फेंकने पर निर्भर करता है।
सवाल का जवाब देने का एक तरीका यह है। जैसे ही आप पासा फेंकते हैं और नियमों का पालन करते हैं, वैसे ही बोर्ड के चारों ओर एक टुकड़े का पालन करें। गिनें कि आप कितनी बार प्रत्येक संपत्ति पर उतरते हैं (या आपके लिए काम करने के लिए कंप्यूटर प्रोग्राम करते हैं)। आखिरकार, अगर आपके पास पर्याप्त धैर्य है या आपने कंप्यूटर में नियमों को अच्छी तरह से क्रमबद्ध किया है, तो आप एक अच्छी तस्वीर बनाएंगे, जिसमें से सबसे अधिक व्यवसाय में गुण मिलते हैं। इससे आपको अधिक बार जीतने में मदद करनी चाहिए।
आपने जो किया है वह एक मार्कोव चेन मोंटे कार्लो (MCMC) विश्लेषण है। बोर्ड नियमों को परिभाषित करता है। जहाँ आप अगले देश में हैं, केवल इस बात पर निर्भर करता है कि आप अभी कहाँ हैं, न कि जहाँ आप पहले रहे हैं और विशिष्ट संभावनाएँ दो पासा फेंकता है। MCMC गणितीय या भौतिक प्रणालियों के लिए इस विचार का अनुप्रयोग है जैसे कि कल का मौसम क्या होगा या जहां गैस के अणुओं द्वारा बेतरतीब ढंग से परागित किया जाने वाला पराग कण खत्म हो जाएगा।
ठीक है यहाँ एक अनौपचारिक और कच्चे स्पष्टीकरण पर मेरा सबसे अच्छा प्रयास है।
मार्कोव चेन एक यादृच्छिक प्रक्रिया है जिसमें ऐसी संपत्ति होती है जो भविष्य प्रक्रिया की वर्तमान स्थिति पर निर्भर करती है न कि भूतकाल अर्थात यह स्मृतिहीन होती है। एक यादृच्छिक प्रक्रिया का एक उदाहरण स्टॉक एक्सचेंज हो सकता है। मार्कोव चेन का एक उदाहरण एकाधिकार या साँप और सीढ़ी जैसा बोर्ड गेम होगा जहां आपकी भविष्य की स्थिति (मरने के बाद रोलिंग) केवल उस पर निर्भर करेगी जहां आप रोल से पहले शुरू हुए थे, न कि आपके पिछले पदों में से कोई। मार्कोव चेन का एक पाठ्यपुस्तक उदाहरण "शराबी की सैर" है। किसी ऐसे व्यक्ति की कल्पना करें जो नशे में है और केवल एक गति से बाएं या दाएं घूम सकता है। नशे में समान संभावना के साथ बाएं या दाएं चलता है। यह एक मार्कोव चेन है जहां नशे की भविष्य / अगली स्थिति केवल उस पर निर्भर करती है जहां वह वर्तमान में है।
मोंटे कार्लो विधियाँ कम्प्यूटेशनल एल्गोरिदम (केवल निर्देशों के सेट) हैं जो अध्ययन के तहत कुछ प्रक्रिया से बेतरतीब ढंग से नमूना लेते हैं। वे किसी ऐसी चीज़ का अनुमान लगाने का एक तरीका हैं जो निर्धारित करने के लिए बहुत मुश्किल या समय लेने वाला होता है। वे मूल रूप से कुछ गणितीय या शारीरिक प्रक्रिया के कंप्यूटर सिमुलेशन का एक रूप हैं। मोंटे कार्लो मोनिकर एक कैसीनो और यादृच्छिक संख्या पीढ़ी के बीच सादृश्य से आता है। पहले हमारे बोर्ड गेम के उदाहरण पर लौटना, शायद हम यह जानना चाहते हैं कि क्या एकाधिकार बोर्ड की कुछ संपत्तियों को दूसरों की तुलना में अधिक बार देखा जाता है। मोंटे कार्लो प्रयोग में बार-बार डाइस को रोल करना और प्रत्येक प्रॉपर्टी पर आपके द्वारा लैंड करने की संख्या गिनना शामिल होता है। इसका उपयोग संख्यात्मक अभिन्नताओं की गणना के लिए भी किया जा सकता है। (बहुत अनौपचारिक रूप से, हम कुछ फ़ंक्शन के ग्राफ के तहत एक अभिन्न क्षेत्र के रूप में सोच सकते हैं। ) मोंटे कार्लो एकीकरण समारोह के बिंदुओं का एक यादृच्छिक नमूना लेने और इन विभिन्न बिंदुओं पर औसत के कुछ प्रकार की गणना करके एक उच्च-आयामी कार्यों पर बहुत अच्छा काम करता है। नमूना आकार में वृद्धि करके, बड़ी संख्या का कानून हमें बताता है कि हम फ़ंक्शन के अधिक से अधिक को कवर करके अपने सन्निकटन की सटीकता बढ़ा सकते हैं।
इन दो अवधारणाओं को कुछ कठिन समस्याओं के समाधान के लिए एक साथ रखा जा सकता है जैसे कि बायेसियन इनविज़न, कम्प्यूटेशनल बायोलॉजी, आदि जहां बहु-आयामी अभिन्न लोगों को सामान्य समस्याओं को हल करने के लिए गणना करने की आवश्यकता होती है। विचार एक मार्कोव श्रृंखला का निर्माण करना है जो कई चरणों के बाद वांछित संभाव्यता वितरण में परिवर्तित हो जाता है। बड़ी संख्या में चरणों के बाद श्रृंखला की स्थिति तब वांछित वितरण से नमूने के रूप में उपयोग की जाती है और प्रक्रिया को दोहराया जाता है। कई अलग-अलग MCMC एल्गोरिदम जो मार्कोव चेन बनाने के लिए विभिन्न तकनीकों का उपयोग करते हैं। सामान्य लोगों में मेट्रोपोलिस-हेस्टिंग्स और गिब्स नमूना शामिल हैं।
हैकर्स के लिए बायेसियन मेथड्स का अंश
नीचे दिया गया दृश्य इसे प्रदर्शित करता है। अधिक गहरा लाल रंग, उस स्थान पर अज्ञात पूर्व संभावना अधिक है। इसके विपरीत, गहरे नीले रंग वाले क्षेत्र यह दर्शाते हैं कि हमारे पुजारी अज्ञात होने की संभावना को बहुत कम बताते हैं।
2 डी अंतरिक्ष में ये सरल उदाहरण हैं, जहां हमारे दिमाग सतहों को अच्छी तरह से समझ सकते हैं। व्यवहार में, हमारे पुजारियों द्वारा उत्पन्न रिक्त स्थान और सतह बहुत अधिक आयामी हो सकते हैं।
ऊंचे पहाड़ बनाने के लिए मूल सतह को ऊपर धकेलता है । पुश अप करने की मात्रा को पूर्व संभाव्यता द्वारा विरोध किया जाता है, ताकि कम पूर्व संभावना का मतलब अधिक प्रतिरोध हो। इस प्रकार ऊपर दिए गए दोहरे घातीय-पूर्व मामले में, एक पर्वत (या कई पर्वत) जो (0,0) कोने के पास फूट सकते हैं, (5,5) के करीब फूटने वाले पहाड़ों की तुलना में बहुत अधिक होगा, क्योंकि वहां अधिक प्रतिरोध है (5,5)। पहाड़, या शायद अधिक आम तौर पर, पर्वत श्रृंखलाएं, जहां वास्तविक मापदंडों के पाए जाने की संभावना है, वहां की प्रतिकूलता को दर्शाती है।
ब्लैक डॉट सही मापदंडों का प्रतिनिधित्व करता है। 1 नमूना बिंदु के साथ भी, जैसा कि ऊपर अनुकरण किया गया था, पहाड़ सही पैरामीटर को शामिल करने का प्रयास करते हैं। बेशक, 1 का एक नमूना आकार के साथ अनुमान अविश्वसनीय रूप से अनुभवहीन है, और इस तरह के एक छोटे से नमूना आकार का चयन केवल चित्रण था।
पीछे वितरण से, स्वयं वितरण नहीं। हमारी पहाड़ी सादृश्यता को अपनी सीमा तक बढ़ाते हुए, MCMC बार-बार यह पूछने के समान कार्य करता है कि "जिस कंकड़ को मैं जिस पहाड़ से खोज रहा हूँ, वह मुझे कैसे मिल रहा है?" मूल पर्वत। MCMC और PyMC लिंगो में, "कंकड़" का लौटा हुआ क्रम नमूने हैं, जिन्हें अक्सर निशान कहा जाता है ।
जब मैं कहता हूं कि एमसीएमसी समझदारी से खोज करता है, तो मेरा मतलब है कि एमसीएमसी उच्च उत्तरोत्तर संभावना वाले क्षेत्रों की ओर उम्मीद करेगा । एमसीएमसी आस-पास के पदों की खोज करके और उच्च संभावना वाले क्षेत्रों में जाकर ऐसा करता है। फिर, शायद "अभिसरण" एमसीएमसी की प्रगति का वर्णन करने के लिए एक सटीक शब्द नहीं है। परिवर्तित करना आमतौर पर अंतरिक्ष में एक बिंदु की ओर बढ़ने का अर्थ है, लेकिन एमसीएमसी अंतरिक्ष में एक व्यापक क्षेत्र की ओर बढ़ता है और उस क्षेत्र में बेतरतीब ढंग से चलता है, उस क्षेत्र से नमूने उठाता है।
सबसे पहले, उपयोगकर्ता के हजारों नमूने लौटाने से यह प्रतीत हो सकता है कि पीछे के वितरण का वर्णन करने के लिए एक अक्षम तरीका है। मैं तर्क दूंगा कि यह बेहद कुशल है। वैकल्पिक संभावनाओं पर विचार करें ::
कम्प्यूटेशनल कारणों के अलावा, नमूनों की वापसी के लिए सबसे मजबूत कारण यह है कि हम आसानी से अन्यथा समस्याओं को हल करने के लिए बड़ी संख्या के कानून का उपयोग कर सकते हैं । मैं अगले अध्याय के लिए इस चर्चा को स्थगित करता हूं।
एल्गोरिदम का एक बड़ा परिवार है जो MCMC का प्रदर्शन करता है। सरलता से, अधिकांश एल्गोरिदम को निम्न स्तर पर उच्च स्तर पर व्यक्त किया जा सकता है:
1. Start at current position.
2. Propose moving to a new position (investigate a pebble near you ).
3. Accept the position based on the position's adherence to the data
and prior distributions (ask if the pebble likely came from the mountain).
4. If you accept: Move to the new position. Return to Step 1.
5. After a large number of iterations, return the positions.
इस तरह हम उन क्षेत्रों की ओर सामान्य दिशा में चले जाते हैं, जहाँ पर पीछे वितरण मौजूद हैं, और यात्रा पर संयम से नमूने एकत्र करते हैं। एक बार जब हम पश्च वितरण में पहुंच जाते हैं, तो हम आसानी से नमूने एकत्र कर सकते हैं क्योंकि वे संभवतः सभी वितरण के बाद के हैं।
यदि MCMC एल्गोरिथ्म की वर्तमान स्थिति बेहद कम संभावना वाले क्षेत्र में है, जो अक्सर ऐसा होता है जब एल्गोरिथ्म शुरू होता है (आमतौर पर अंतरिक्ष में एक यादृच्छिक स्थान पर), एल्गोरिथ्म उन पदों पर चलेगा जो संभवतः पीछे से नहीं हैं। लेकिन पास की हर चीज से बेहतर। इस प्रकार एल्गोरिथ्म की पहली चाल पीछे के परावर्तक नहीं हैं।
इसलिए आँकड़ों के बहुत से उत्तर यहाँ हैं / सांख्यिकी, संभाव्यता पाठ्यपुस्तकों, विकिपीडिया, आदि से मुझे लगता है कि हमारे पास "लेपर्सन" है जहाँ मैं काम करता हूँ; मुझे लगता है कि वे विपणन विभाग में हैं। अगर मुझे कभी भी उन्हें कुछ तकनीकी समझाना है, तो मैं नियम लागू करता हूं "शो न बताएं।" उस नियम को ध्यान में रखते हुए, मैं शायद उन्हें ऐसा कुछ दिखाऊंगा।
यह विचार एक एल्गोरिथ्म को कोड करने का प्रयास करने के लिए है जिसे मैं वर्तनी सिखा सकता हूं - नियमों के सैकड़ों (हजारों) सीखकर नहीं, जैसे कि एक शब्द के अंत में एक मौन ई के साथ समाप्त होने वाले शब्द को जोड़ते हुए अंतिम ई ड्रॉप करें? यदि अंत एक स्वर से शुरू होता है । काम नहीं करने का एक कारण यह है कि मैं उन नियमों को नहीं जानता (मुझे यकीन नहीं है कि जो मैंने अभी सुना है वह सही है)। इसके बजाय मैं इसे सही ढंग से लिखे गए शब्दों का एक गुच्छा दिखा कर उसे पढ़ाने जा रहा हूँ और इसे उन शब्दों से नियम निकालने देता हूँ, जो कमोबेश मशीन लर्निंग का सार है, एल्गोरिथम की परवाह किए बिना - पैटर्न निष्कर्षण और पैटर्न पहचान ।
सफलता की कसौटी सही ढंग से एक शब्द वर्तनी है, जिसे एल्गोरिथ्म ने पहले कभी नहीं देखा है (मुझे पता है कि शुद्ध मौका से हो सकता है, लेकिन यह विपणन लोगों के लिए नहीं होगा, इसलिए मैं अनदेखा कर दूंगा - प्लस मैं एल्गोरिथ्म करने जा रहा हूं एक शब्द नहीं, लेकिन बहुत से जादू करने का प्रयास, इसलिए यह संभव नहीं है कि हम कुछ भाग्यशाली अनुमानों द्वारा धोखा दिया जाएगा)।
एक घंटे पहले, मैंने उत्कृष्ट प्रोजेक्ट गुटेनबर्ग साइट, हरमन हेस उपन्यास सिद्धार्थ से (एक सादे पाठ फ़ाइल के रूप में) डाउनलोड किया । मैं इस उपन्यास में शब्दों का उपयोग एल्गोरिथ्म को पढ़ाने के लिए करूँगा कि कैसे जादू करना है।
इसलिए मैंने नीचे दिए गए एल्गोरिदम को कोड किया, जिसने इस उपन्यास को स्कैन किया, एक बार में तीन अक्षर (प्रत्येक शब्द के अंत में एक अतिरिक्त वर्ण होता है, जो 'व्हाट्सएप' या शब्द का अंत होता है)। तीन-अक्षर अनुक्रम आपको बहुत कुछ बता सकते हैं - उदाहरण के लिए, अक्षर 'क्यू' लगभग हमेशा 'यू' द्वारा पीछा किया जाता है; अनुक्रम 'ty' आमतौर पर एक शब्द के अंत में होता है; z शायद ही कभी करता है, और आगे। (नोट: मैं आसानी से इसे पूरे शब्दों में खिलाया जा सकता है ताकि इसे पूरे वाक्यों में बोलने के लिए प्रशिक्षित किया जा सके - बिल्कुल समान विचार, कोड के लिए बस कुछ ट्वीक।)
इनमें से कोई भी MCMC शामिल नहीं है, हालांकि, यह प्रशिक्षण के बाद होता है, जब हम एल्गोरिथम को कुछ यादृच्छिक अक्षर (एक बीज के रूप में) देते हैं और यह 'शब्द' बनाने लगते हैं। एल्गोरिथ्म शब्दों का निर्माण कैसे करता है? कल्पना कीजिए कि इसमें ब्लॉक 'योग्यता' है; आगे क्या अक्षर जोड़ता है? प्रशिक्षण के दौरान, एल्गोरिथ्म ने उपन्यास में हज़ारों शब्दों में से एक विशाल एल * एटर-सीक्वेंस फ़्रीक्वेंसी मैट्रिक्स * का निर्माण किया। उस मैट्रिक्स में कहीं न कहीं तीन अक्षर का ब्लॉक 'क्वालिफिकेशन' है और वर्णों के लिए आवृत्तियाँ जो अनुक्रम का अनुसरण कर सकती हैं। एल्गोरिथ्म उन आवृत्तियों के आधार पर एक पत्र का चयन करता है जो संभवतः इसका पालन कर सकते हैं। इसलिए एल्गोरिथ्म का चयन करने वाला अक्षर अगले पर निर्भर करता है - और पूरी तरह से - इसके शब्द-निर्माण कतार में अंतिम तीन।
तो यह एक मार्कोव चेन मोंटे कार्लो एल्गोरिदम है।
मुझे लगता है कि यह बताने का सबसे अच्छा तरीका है कि प्रशिक्षण के विभिन्न स्तरों के आधार पर परिणाम कैसे दिखाए जाएं। एल्गोरिथ्म में पास होने की संख्या को बदलते हुए प्रशिक्षण का स्तर भिन्न होता है, हालांकि उपन्यास - अधिक गुजरता है, थेरुघ अपने पत्र-अनुक्रम आवृत्ति मैट्रिक्स की निष्ठा को अधिक से अधिक पार करता है। नीचे परिणाम हैं - एल्गोरिथ्म द्वारा 100-चरित्र स्ट्रिंग्स आउटपुट के रूप में - उपन्यास 'सिद्धार्थ' पर प्रशिक्षण के बाद।
उपन्यास के माध्यम से एक एकल पास, सिद्धार्थ :
फिर जो हिफाजत करते हैं, सभी मोहन खड़े हो जाते हैं, तुम ज्वलंत हो जाते हो
(सीधे दूर, यह लगभग सही वेल्श बोलना सीखा है; मुझे इसकी उम्मीद नहीं थी।)
उपन्यास से दो गुजरने के बाद:
ack wor prenskinith show iss a twor sawed th notheady theatin land rhatingle was the ov the there
10 पास होने के बाद:
बावजूद इसके कि अब आक के साथ प्रार्थना करनी चाहिए कि उसके कुत्ते के लीवर में दर्द हो, पैर कमजोर न हों
और यहां कोड (पायथन में, मुझे लगभग निश्चित है कि यह एक MCMC पैकेज का उपयोग करके आर में किया जा सकता है, जिनमें से कई हैं, सिर्फ 3-4 लाइनों में)
def create_words_string(raw_string) :
""" in case I wanted to use training data in sentence/paragraph form;
this function will parse a raw text string into a nice list of words;
filtering: keep only words having more than 3 letters and remove
punctuation, etc.
"""
pattern = r'\b[A-Za-z]{3,}\b'
pat_obj = re.compile(pattern)
words = [ word.lower() for word in pat_obj.findall(raw_string) ]
pattern = r'\b[vixlm]+\b'
pat_obj = re.compile(pattern)
return " ".join([ word for word in words if not pat_obj.search(word) ])
def create_markov_dict(words_string):
# initialize variables
wb1, wb2, wb3 = " ", " ", " "
l1, l2, l3 = wb1, wb2, wb3
dx = {}
for ch in words_string :
dx.setdefault( (l1, l2, l3), [] ).append(ch)
l1, l2, l3 = l2, l3, ch
return dx
def generate_newtext(markov_dict) :
simulated_text = ""
l1, l2, l3 = " ", " ", " "
for c in range(100) :
next_letter = sample( markov_dict[(l1, l2, l3)], 1)[0]
simulated_text += next_letter
l1, l2, l3 = l2, l3, next_letter
return simulated_text
if __name__=="__main__" :
# n = number of passes through the training text
n = 1
q1 = create_words_string(n * raw_str)
q2 = create_markov_dict(q1)
q3 = generate_newtext(q2)
print(q3)
MCMC को आम तौर पर क्रूड मोंटे कार्लो सिमुलेशन तकनीकों के विकल्प के रूप में उपयोग किया जाता है। MCMC और अन्य मोंटे कार्लो तकनीक दोनों का उपयोग कठिन इंटीग्रल्स के मूल्यांकन के लिए किया जाता है लेकिन MCMC का उपयोग आमतौर पर अधिक किया जा सकता है।
उदाहरण के लिए, आँकड़ों में एक आम समस्या कुछ संभाव्य / स्टोकेस्टिक मॉडल से संबंधित औसत परिणाम की गणना करना है। MCMC और मोंटे कार्लो तकनीक दोनों ही इस समस्या का समाधान करेंगे ताकि नकली नतीजों का एक क्रम उत्पन्न किया जा सके जिसका हम सही मतलब का अनुमान लगा सकें।
MCMC और क्रूड मोंटे कार्लो दोनों तकनीक लंबे समय तक चलने वाले सिमुलेशन के रूप में काम करती हैं जो किसी दिए गए परिणाम के बराबर हैं। उस परिणाम की मॉडल की संभावना के बराबर * होगा। इसलिए, पर्याप्त सिमुलेशन उत्पन्न करके, दोनों विधियों द्वारा उत्पादित परिणाम सटीक होंगे।
* मैं बराबर कहता हूं, हालांकि सामान्य तौर पर मुझे मापने योग्य सेट के बारे में बात करनी चाहिए। एक लेपर्सन, हालांकि, शायद इसमें दिलचस्पी नहीं होगी *
हालांकि, जबकि क्रूड मोंटे कार्लो में कई स्वतंत्र सिमुलेशन का उत्पादन शामिल है, जिनमें से प्रत्येक को मॉडल वितरण के अनुसार वितरित किया जाता है, एमसीएमसी में एक यादृच्छिक चलना उत्पन्न होता है जो वांछित आवृत्ति के साथ प्रत्येक परिणाम में लंबे समय तक "विज़िट" करता है।
इसलिए, MCMC की चाल, एक यादृच्छिक चलना चुन रही है जो वांछित लंबे समय तक चलने वाली आवृत्तियों के साथ प्रत्येक परिणाम को "विज़िट" करेगी।
एक सरल उदाहरण एक मॉडल से अनुकरण करना हो सकता है जो कहता है कि परिणाम "ए" की संभावना 0.5 है और परिणाम "बी" 0.5 है। इस स्थिति में, यदि मैंने स्थिति "ए" पर यादृच्छिक चलना शुरू किया और निर्धारित किया कि प्रत्येक चरण में यह संभाव्यता 0.2 (या किसी भी अन्य संभावना जो 0 से अधिक है) के साथ दूसरी स्थिति में बदल गया है, तो मुझे यकीन है कि एक बड़े के बाद हो सकता है रैंडम वॉक की संख्या "ए" और "बी" में से प्रत्येक में लगभग 50% चरणों का दौरा किया होगा - हमारे मॉडल द्वारा निर्धारित संभावनाओं के अनुरूप।
यह स्पष्ट रूप से एक बहुत उबाऊ उदाहरण है। हालांकि, यह पता चला है कि एमसीएमसी अक्सर उन स्थितियों में लागू होता है जिसमें मानक मोंटे कार्लो या अन्य तकनीकों को लागू करना मुश्किल होता है।
आप एक लेख पा सकते हैं जो मूल बातें शामिल करता है कि यह क्या है और यहां क्यों काम करता है:
मैं एक डीएनए विश्लेषक हूं जो डीएनए सबूतों की व्याख्या करने के लिए पूरी तरह से निरंतर संभाव्य जीनोटाइपिंग सॉफ़्टवेयर का उपयोग करता है और मुझे यह समझाना होगा कि यह जूरी के लिए कैसे काम करता है। कुल मिलाकर, हम इसे सरल बनाते हैं और मुझे इस बात का एहसास है कि समग्र समझ में सुधार के नाम पर विशिष्ट विवरणों की सरलीकरण बलिदान सटीकता से अधिक है। लेकिन, एक जूरी की समझ के संदर्भ में कि कैसे इस प्रक्रिया का उपयोग बिना अकादमिक डिग्री और पेशेवर अनुभव के वर्षों के बिना डीएनए की व्याख्या में किया जाता है, तो उन्हें जीएसटी मिल जाता है :)
पृष्ठभूमि: सॉफ्टवेयर मेट्रोपोलिस हेस्टिंग्स एमसीएमसी और एक जैविक मॉडल का उपयोग करता है जो डीएनए प्रोफाइल के ज्ञात व्यवहार की नकल करता है (यह मॉडल प्रयोगशाला में उत्पन्न सत्यापन डेटा के आधार पर बनाया गया है जो अज्ञात केसवर्क में सामना की गई सीमा का प्रतिनिधित्व करने वाली ज्ञात स्थितियों से कई डीएनए प्रोफाइल का विश्लेषण करता है)। 8 स्वतंत्र श्रृंखलाएं हैं और हम यह निर्धारित करने के लिए अभिसरण का मूल्यांकन करते हैं कि जला को फिर से चलाना और पोस्ट एक्सेप्ट (डिफ़ॉल्ट बर्न 100k एक्सेप्ट और पोस्ट 400k एक्सेप्ट) को फिर से चलाना है या नहीं
MCMC के बारे में अभियोजन / बचाव द्वारा पूछे जाने पर: हम समझाते हैं कि यह मार्कोव चेन मोंटे कार्लो के लिए खड़ा है और जटिल समस्या-समाधान के लिए प्रयुक्त एक विशेष वर्ग / तरह के एल्गोरिथ्म का प्रतिनिधित्व करता है और यह कि एक एल्गोरिथ्म सिर्फ एक फैंसी शब्द है जो प्रक्रियाओं या दिनचर्या की एक श्रृंखला का उल्लेख करता है। एक कंप्यूटर द्वारा किया जाता है ... mcmc एल्गोरिदम एक समाधान का प्रस्ताव करके काम करता है, उस समाधान का अनुकरण करता है, फिर मूल्यांकन करता है कि सिमुलेशन कितनी अच्छी तरह से देखे जा रहे वास्तविक साक्ष्य डेटा को दर्पण करता है ... एक सिमुलेशन जो साक्ष्य अवलोकन को अच्छी तरह से फिट करता है, उसकी तुलना में अधिक संभावना है सिमुलेशन जो अवलोकन को अच्छी तरह से फिट नहीं करता है ... प्रस्तावित समाधानों के कई दोहराया नमूनों / अनुमानों पर, मार्कोव श्रृंखलाएं कम संभावना वाले समाधानों से दूर उच्च संभावना वाले समाधानों की ओर बढ़ती हैं जो बेहतर साक्ष्य / अवलोकन किए गए साक्ष्य प्रोफाइल की व्याख्या करते हैं, जब तक कि अंततः संतुलन नहीं हो जाता। हासिल,मतलब एल्गोरिथ्म में नए प्रस्तावों के नमूने लेने की क्षमता सीमित है और इसमें काफी संभावनाएं हैं
महानगर हेस्टिंग्स के बारे में पूछे जाने पर: हम समझाते हैं कि यह एमसीएमसी एल्गोरिथ्म के लिए एक निर्णय है, जिसमें किसी निर्णय को स्वीकार करने या अस्वीकार करने की अपनी निर्णय लेने की प्रक्रिया का वर्णन किया गया है ... आमतौर पर इसे "हॉट / कोल्ड" बच्चों के खेल की समानता के साथ समझाया गया है, लेकिन मुझे इसका उपयोग करने पर विचार किया जा सकता है। दायें या बायें स्वाइप करें ”जब जूरी विशेष रूप से युवा हो !! : पी लेकिन हमारे गर्म / ठंडे सादृश्य का उपयोग करते हुए, हम हमेशा एक गर्म अनुमान को स्वीकार करते हैं और कभी-कभी एक ठंड अनुमान को समय के एक अंश को स्वीकार करेंगे और कभी-कभी ठंडे अनुमान को स्वीकार करने के उद्देश्य को समझाएंगे, ताकि चेन नमूने की संभावनाओं की एक विस्तृत श्रृंखला सुनिश्चित की जा सके। वास्तविक संतुलन से पहले एक विशेष प्रस्ताव के आसपास अटक जाने का विरोध किया
जोड़ने / स्पष्ट करने के लिए संपादित: गर्म / ठंडे सादृश्य के साथ हम समझाते हैं कि बच्चों के खेल में, नेता कमरे के भीतर एक लक्ष्य वस्तु / क्षेत्र चुनता है और खिलाड़ी अपने वर्तमान खड़े / स्थिति के सापेक्ष स्थानांतरित करने के लिए अनुमान लगाते हैं। नेता उन्हें बताता है कि अगर यह एक गर्म अनुमान है तो वे अपनी स्थिति को बदल सकते हैं / ले जा सकते हैं और यदि ठंड का अनुमान है तो वे अपनी स्थिति खो देते हैं। इसी तरह, हमारे सॉफ़्टवेयर के भीतर, स्थानांतरित करने / स्वीकार करने का निर्णय वर्तमान में आयोजित स्थिति की संभावना की तुलना में केवल प्रस्ताव की संभावना पर निर्भर करता है ... हालांकि, लक्ष्य पूर्व-परिभाषित / बच्चों के खेल में नेता द्वारा जाना जाता है जबकि ... हमारे सॉफ़्टवेयर के भीतर लक्ष्य पूर्व-परिभाषित नहीं है - यह पूरी तरह से अज्ञात है (यह भी कि क्यों '
जैसा कि मैंने कहा, सुपर सुपर बेसिक और पूरी तरह से तकनीकी सुधार का अभाव है, जो कि समझ में सुधार के लिए है - हम शिक्षा के मध्य-विद्यालय स्तर के बारे में समझाने के लिए प्रयास करते हैं। सुझाव देने के लिए स्वतंत्र महसूस करें। मैं उन्हें शामिल कर लूंगा।
यह प्रश्न व्यापक है फिर भी उत्तर अक्सर काफी आकस्मिक हैं। वैकल्पिक रूप से, आप इस पत्र को देख सकते हैं, जो मेट्रोपोलिस-हेस्टिंग्स एल्गोरिदम, गिब्स नमूना, महानगर-भीतर-गिब्स और सहायक चर विधियों, स्लाइस नमूनाकरण, पुनरावर्ती प्रस्ताव, दिशात्मक नमूनाकरण, लैंग्विन और लैंस सहित MCMC एल्गोरिदम की एक विस्तृत श्रेणी का संक्षिप्त गणितीय विवरण देता है। हैमिल्टनियन मोंटे कार्लो, NUTS नमूनाकरण, छद्म-सीमांत मेट्रोपोलिस-हेस्टिंग्स एल्गोरिदम, और छद्म-सीमांत हैमिल्टन मोंटे कार्लो, जैसा कि लेखकों द्वारा चर्चा की गई है।
यहां एक विश्वसनीय समीक्षा दी गई है
मुझे स्टैकएक्सचेंज के प्रारूप में इसकी सामग्री को विस्तृत करने के लिए अधिक समय मिलेगा।
इस वीडियो (5:50 से शुरू) में अंतर्ज्ञान का एक बहुत अच्छा बयान है।
कल्पना कीजिए कि आप इस चित्र में हरे (बहु-आयामी) शाखाओं पर नमूना बिंदुओं को देखना चाहते हैं। यदि आप ब्लैक सुपर-स्पेस पर सभी बिंदुओं को फेंकते हैं और उनके मूल्य की जांच करते हैं, तो आप बहुत अधिक सैंपलिंग (खोज) कर रहे हैं। इसलिए यह आपकी नमूना रणनीति (जिसे स्वचालित किया जा सकता है) को हरी शाखाओं (जहां यह मायने रखता है) के करीब ले जाने के लिए नियंत्रित करने के लिए अधिक समझ में आता है। हरे रंग की शाखाओं को एक बार गलती से (या नियंत्रित) मारा जा सकता है, और शेष नमूना प्रयास (लाल बिंदु) आगे की ओर उत्पन्न होंगे। मार्कोव श्रृंखला संक्रमण मैट्रिक्स के कारण लाल हरे रंग की रेखा से आकर्षित हो जाता है जो आपके नमूने-इंजन के रूप में काम करता है।
इसलिए आम आदमी की दृष्टि में, MCMC एक ऊर्जा-बचत (कम लागत) नमूनाकरण विधि है, खासकर जब एक बड़े पैमाने पर और 'अंधेरे' (बहु-आयामी) स्थान में काम कर रहा हो।