職場小聰明

第606章 用故事解釋softmax函數的溢出問題

類別︰都市言情 作者︰翟曉鷹 本章︰第606章 用故事解釋softmax函數的溢出問題

    <ax函數的溢出問題

    故事背景︰龍族宴會上的金碗

    在一座神秘的龍族王國,龍族每年都會舉行一次盛大的宴會,宴會上有一個傳統︰每條龍要把自己的財富金幣數量)放進一個金碗,然後讓智慧長老計算每條龍的“財富佔比”,來決定誰是這一年的財富之王。

    宴會當天,四條龍分別報出了自己的金幣數量︰

    ? 火龍︰100萬金幣

    ? 冰龍︰200萬金幣

    ? 雷龍︰300萬金幣

    ? 風龍︰10億金幣<ax規則,將這些財富轉換成概率來比較。但他很快發現了一個嚴重的問題︰

    <ax的計算方法,他需要計算每個金幣數量的指數值︰

    但這些數值實在是太大了,遠遠超出了王國的計算能力,直接導致金碗崩潰計算溢出)。

    智慧長老陷入了困境,他需要找到一個方法來避免計算崩潰。于是他想到一個聰明的技巧︰

    “我們不直接放金幣,我們可以先讓大家的金幣數減去最大的金幣數!”

    于是,他重新計算︰

    ? 火龍的金幣數變為 100萬  10億 = 9.99億

    ? 冰龍的金幣數變為 200萬  10億 = 9.98億

    ? 雷龍的金幣數變為 300萬  10億 = 9.97億

    ? 風龍的金幣數變為 10億  10億 = 0

    然後,他計算︰

    現在,所有的指數值都變得很小,不會再溢出,金碗終于能正常計算了!

    最終,風龍的財富佔比幾乎是 100,其他三條龍的財富佔比接近 0,宴會得出了正確的結論。<ax的數值穩定性技巧,即 在計算前減去最大值,防止指數運算導致溢出。<ax的溢出問題

    比喻1︰水池溢出

    想象你有一個大水池,你往里面倒水︰

    ? 第一桶水是 100升

    ? 第二桶水是 200升

    ? 第三桶水是 300升

    ? 第四桶水是 10億升

    顯然,水池無法承受10億升的水,直接溢出了!

    解決方案?

    ? 你先抽掉10億升的水相當于減去最大值),這樣所有的水量都變成一個較小的數字,水池就不會溢出了。

    比喻2︰計算機的“溢出”鍋

    假設你在做飯,想同時煮四個鍋的水,每個鍋的溫度分別是︰

    ? 100°c

    ? 200°c

    ? 300°c

    ? 10億°c

    你的爐子最高只能加熱到 500°c,但第四個鍋的溫度遠超這個上限,直接導致爐子爆炸計算機溢出)!

    怎麼辦?

    你可以先把所有鍋的溫度減去一個基準值比如減去10億°c),讓溫度變成︰

    ? 9.99億°c

    ? 9.98億°c

    ? 9.97億°c

    ? 0°c

    現在,最高的溫度也只是 0°c,不會再超出爐子的承受範圍。<ax的溢出問題 是因為指數運算會導致數值過大,超過計算機的上限。<ax之前,先減去最大值,這樣所有的數值都會變小,防止指數爆炸。

    ? 就像往水池倒水、往鍋里加熱,數值太大就會溢出,我們需要先做調整,確保計算不超出範圍!

    喜歡職場小聰明請大家收藏︰()職場小聰明書更新速度全網最快。

加入書簽 上一章 目 錄 下一章 加入書架 推薦本書

如果您喜歡,請把《職場小聰明》,方便以後閱讀職場小聰明第606章 用故事解釋softmax函數的溢出問題後的更新連載!
如果你對職場小聰明第606章 用故事解釋softmax函數的溢出問題並對職場小聰明章節有什麼建議或者評論,請後台發信息給管理員。