精選分類 書庫 完本 排行 原創專區
欣可小說 > 純愛耽美 > 職場小聰明 > 第606章 用故事解釋softmax函數的溢位問題

用故事解釋Softmax函數的溢位問題

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

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

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

?火龍:100萬金幣

?冰龍:200萬金幣

?雷龍:300萬金幣

?風龍:10億金幣

智慧長老準備使用一個古老的計算方法——Softmax規則,將這些財富轉換成概率來比較。但他很快發現了一個嚴重的問題:

金碗炸了!

為什麼?因為按照Softmax的計算方法,他需要計算每個金幣數量的指數值:

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

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

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

於是,他重新計算:

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

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

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

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

然後,他計算:

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

最終,風龍的財富占比幾乎是100%,其他三條龍的財富占比接近0,宴會得出了正確的結論。

這個方法被稱為Softmax的數值穩定性技巧,即在計算前減去最大值,防止指數運算導致溢位。

用比喻解釋Softmax的溢位問題

比喻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,不會再超出爐子的承受範圍。

總結

?Softmax的溢位問題是因為指數運算會導致數值過大,超過計算機的上限。

?解決方案是在計算Softmax之前,先減去最大值,這樣所有的數值都會變小,防止指數爆炸。

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

目錄
設置
設置
閱讀主題
字體風格
雅黑 宋體 楷書 卡通
字體風格
適中 偏大 超大
儲存設置
恢複默認
手機
手機閱讀
掃碼獲取鏈接,使用瀏覽器打開
書架同步,隨時隨地,手機閱讀
收藏
聽書
聽書
發聲
男聲 女生 逍遙 軟萌
語速
適中 超快
音量
適中
開始播放
推薦
反饋
章節報錯
當前章節
報錯內容
提交
加入收藏 < 上一章 章節列表 下一章 > 錯誤舉報