मैं संभाव्य मॉडल पर काम कर रहा हूं, और उन मॉडलों पर अनुमान लगाने पर, अनुमानित संभावनाएं बहुत छोटी हो सकती हैं। अंडरफ्लो से बचने के लिए, मैं वर्तमान में लॉग डोमेन में काम कर रहा हूं (मैं संभावनाओं का लॉग स्टोर करता हूं)। संभावनाओं गुणा एक अतिरिक्त के बराबर है, और जोड़ने पर सूत्र का उपयोग करके किया जाता है:वैज्ञानिक कंप्यूटिंग में अंडरफ्लो से कैसे निपटें?
log(exp(a) + exp(b)) = log(exp(a - m) + exp(b - m)) + m
जहां m = max(a, b)
।
मैं कुछ बहुत बड़ी matrices का उपयोग करता हूं, और मुझे मैट्रिक्स-वेक्टर गुणाओं की गणना करने के लिए उन matrices के तत्व-वार घातीय लेना होगा। यह कदम काफी महंगा है, और मैं सोच रहा था कि संभावनाओं के साथ काम करते समय अंडरफ्लो से निपटने के लिए अन्य विधियां मौजूद हैं या नहीं।
संपादित करें: दक्षता कारणों के लिए, मैं एक समाधान आदिम प्रकार और नहीं वास्तविक संख्या की मनमानी परिशुद्धता प्रतिनिधित्व भंडारण वस्तुओं का उपयोग कर रहा हूँ।
संपादित करें 2: मैं लॉग डोमेन चाल से अधिक तेज़ समाधान की तलाश में हूं, अधिक सटीक समाधान नहीं। मैं वर्तमान में प्राप्त सटीकता से खुश हूं, लेकिन मुझे एक तेज विधि की आवश्यकता है। विशेष रूप से, सारांश मैट्रिक्स-वेक्टर गुणाओं के दौरान होता है, और मैं कुशल बीएलएएस विधियों का उपयोग करने में सक्षम होना चाहता हूं।
समाधान: जोनाथन दर्सी के साथ चर्चा के बाद, मैं अपने सबसे बड़े तत्व द्वारा प्रत्येक मैट्रिक्स और वेक्टर गुणनखंड के लिए, और लॉग डोमेन कि कारक स्टोर करने के लिए फैसला किया। गुण सरल हैं। जोड़ों से पहले, मुझे दो कारकों के अनुपात से जोड़े गए मैट्रिक्स/वैक्टरों में से एक को कारक बनाना होगा। मैं हर दस ऑपरेशन कारक अद्यतन करता हूं।
आप जावा का उपयोग करना चाहिए है? या आप अन्य भाषाओं का उपयोग कर सकते हैं? – enzom83
@ पीटर - यह बिल्कुल असामान्य नहीं है। उदाहरण के लिए अधिकतम संभावना अनुमान के साथ काम करना, इस तरह की संख्या देखने के लिए बिल्कुल असामान्य नहीं होगा। आपका ऑप्टिमाइज़र अभी भी अभिसरण करने में सक्षम होना चाहिए, भले ही शुरुआती बिंदु उतना अच्छा न हो जितना आप चाहें। और यदि आप वहां आते हैं, तो अभिसरण एक विकल्प नहीं है। –
यह ध्वनि की तरह लगता है सुंदर सार है। यदि आप ब्रह्माण्ड इकाइयों में ब्रह्मांड की आयु को मापते हैं, तो आपको लगभग 2e58 मिलते हैं, समय की इकाइयों की संख्या कुछ भी हो सकती थी।अगर किसी के पास 1e-300 से कम की संभावना है तो कल्पना करना मुश्किल है कि यह असंभव या कम से कम सैद्धांतिक रूप से अतुलनीय और अज्ञात नहीं है। बस कुछ माप के बारे में सोचें जो आपको जानने के लिए लेना होगा कि किसी चीज़ की संभावना 1e-58 है। –