阅读记录

第606章 用故事解释softmax函数的溢出问题[2/2页]

职场小聪明 翟晓鹰

设置 ×

  • 阅读主题
  • 字体大小A-默认A+
  • 字体颜色
被称为
  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之前,先减去最大值,这样所有的数值都会变小,防止指数爆炸。
  ?
  就像往水池倒水、往锅里加热,数值太大就会溢出,我们需要先做调整,确保计算不超出范围!

第606章 用故事解释softmax函数的溢出问题[2/2页]