我正在寫一個算法,其中給定一個模型,我計算數據集列表的可能性,然後需要將每個可能性歸一化(概率)。所以像[0.00043,0.00004,0.00321]這樣的東西可能會被轉換爲[0.2,0.03,0.77]。 我的問題是,我正在使用的日誌可能性非常小(例如,在日誌空間中,值類似-269647.432,-231444.981等)。在我的C++代碼中,當我嘗試添加其中兩個(通過指數)我得到一個「Inf」的答案。我試圖將它們添加到日誌空間(Summation/Subtraction of log)中,但又一次遇到了同樣的問題。正常化一個非常小的雙數字(可能性)的列表
有人可以分享他/她的專家意見嗎?
感謝
某些東西沒有正確的味道。有了這些對數,就會有非常多的零。你計算的東西正確嗎?你能展示一些你的代碼嗎? – John
你能告訴我們一個可管理的代碼部分嗎,這樣我們可以更好地瞭解你的問題嗎? – BrainSteel
因此,要清楚地說明,您需要「正常化」一些6位負數範圍內的數字,作爲實際值的對數。這會讓你乘坐不可能的駕駛帶來一場長途旅行。 (hitchhikers.wikia.com/wiki/Infinite_Improbability_Drive)。正如約翰所說,這似乎是錯誤的......這些數字非常小,以至於在電子高爾夫在宇宙中打球時擊中一個原子的可能性更大。 –