悅暢小說 > 職場小聰明 > 第606章 用故事解釋softmax函數的溢位問題

第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之前,先減去最大值,這樣所有的數值都會變小,防止指數爆炸。

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

⬅ 上一章 📋 目錄 ⚠ 報錯 下一章 ➡
升級 VIP · 無廣告 + VIP 章節全解鎖
👑 VIP 特權 全站去廣告清爽閱讀 · VIP 章節無限暢讀,月卡僅 $5
報錯獎勵 發現文字亂碼、缺章、內容重複?點上方「章節報錯」回報,審核通過立獲 3天VIP
書單獎勵 前往 個人中心 投稿你的私藏書單,審核通過立獲 7天VIP
⭐ 立即升級 VIP · 月卡僅 $5
還沒有帳號? 免費註冊 | 登入後購買