EM एल्गोरिदम को पुनरावृत्त होना क्यों पड़ता है?


9

मान लीजिए कि आपके पास आबादी है एन इकाइयों, एक यादृच्छिक चर के साथ प्रत्येक एक्समैं~प्वासों(λ)। आप किसी भी इकाई के लिए मानों का निरीक्षण करते हैं जिसके लिए । हम का एक अनुमान चाहते हैं ।n=एन-n0एक्समैं>0λ

उत्तर प्राप्त करने के क्षण और सशर्त अधिकतम संभावना के तरीके हैं, लेकिन मैं ईएम एल्गोरिथ्म की कोशिश करना चाहता था। मुझे EM एल्गोरिथ्म जहां सबस्क्रिप्ट एल्गोरिथ्म के पिछले पुनरावृत्ति से मान को इंगित करता है और सम्मान के साथ स्थिर है पैरामीटर। (मैं वास्तव में लगता है कि कोष्ठक में अंश में होना चाहिए , लेकिन वह सही प्रतीत नहीं होता है, एक समय के लिए एक प्रश्न)।

क्यू(λ-1,λ)=λ(n+nexp(λ-1)-1)+लॉग(λ)Σमैं=1nएक्समैं+,
-1nn+1

इस कंक्रीट को बनाने के लिए, मान लीजिए कि , । बेशक, और हैं और का अनुमान लगाया जाना है।n=10Σएक्समैं=20एनn0λ

जब मैं निम्न फ़ंक्शन को पुनरावृत्त करता हूं, तो पिछले पुनरावृत्ति के अधिकतम मान में प्लगिंग करता हूं, मैं सही उत्तर (सीएमएल, एमओएम और एक सरल सिमुलेशन द्वारा सत्यापित) तक पहुंचता हूं:

EmFunc <- function(lambda, lambda0){
  -lambda * (10 + 10 / (exp(lambda0) - 1)) + 20 * log(lambda)
}

lambda0 <- 2
lambda  <- 1

while(abs(lambda - lambda0) > 0.0001){
  lambda0 <- lambda
  iter    <- optimize(EmFunc, lambda0 = lambda0, c(0,4), maximum = TRUE)
  lambda  <- iter$maximum
}

> iter
$maximum
[1] 1.593573

$objective
[1] -10.68045

लेकिन यह एक साधारण समस्या है; चलिए बिना पुनरावृति के अधिकतम करते हैं:

MaxFunc <- function(lambda){
  -lambda * (10 + 10 / (exp(lambda) - 1)) + 20 * log(lambda)
}

optimize(MaxFunc, c(0,4), maximum = TRUE)
$maximum
[1] 2.393027

$objective
[1] -8.884968

फ़ंक्शन का मान संयुक्त-पुनरावृत्त प्रक्रिया से अधिक है और परिणाम अन्य कार्यप्रणाली के साथ असंगत है। दूसरी प्रक्रिया एक अलग और (मैं अनुमान) गलत जवाब क्यों दे रही हूं?

जवाबों:


6

जब आपने ईएम एल्गोरिथ्म के लिए अपना उद्देश्य फ़ंक्शन पाया है तो मुझे लगता है कि आपने इकाइयों की संख्या के साथ व्यवहार किया है एक्समैं=0, जो मैं फोन करूँगा y, अपने अव्यक्त पैरामीटर के रूप में। इस मामले में, मैं (फिर से) मान रहा हूंक्यू अपेक्षित मूल्य से कम के रूप का प्रतिनिधित्व करता है yकी संभावना दी λ-1। यह पूरी संभावना के समान नहीं है, क्योंकि वहλ-1 जैसा कि दिया गया है।

इसलिए आप उपयोग नहीं कर सकते क्यू पूर्ण संभावना के लिए, क्योंकि इसमें परिवर्तन की जानकारी नहीं है λ के वितरण को बदलता है y (और आप सबसे अधिक संभावित मूल्यों का चयन करना चाहते हैं yके रूप में अच्छी तरह से जब आप पूरी संभावना को अधिकतम करते हैं)। यही कारण है कि शून्य छंटनी वाली पॉइसन के लिए पूर्ण अधिकतम संभावना आपके से अलग हैक्यू फ़ंक्शन, और क्यों आपको अधिकतम होने पर एक अलग (और गलत) उत्तर मिलता है (λ)=क्यू(λ,λ)

संख्यात्मक रूप से, अधिकतम (λ) आवश्यक रूप से आपके EM परिणाम के रूप में कम से कम एक उद्देश्य समारोह में परिणाम होगा, और शायद बड़े रूप में वहाँ कोई गारंटी नहीं है कि EM एल्गोरिथ्म अधिकतम के लिए अभिसरण होगा - यह केवल संभावना फ़ंक्शन की एक अधिकतम करने के लिए माना जाता है !

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.