?第一桶水是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之前,先减去最大值,这样所有的数值都会变小,防止指数爆炸。
?就像往水池倒水、往锅里加热,数值太大就会溢出,我们需要先做调整,确保计算不超出范围!
喜欢职场小聪明请大家收藏:(www。cwzww。com)职场小聪明
https://www.du8.org https://www.shuhuangxs.com www.baquge.ccabxsw.net dingdianshu.com bxwx9.net
kenshu.tw pashuba.com quanshu.la
tlxsw.cc qudushu.net zaidudu.org
duyidu.org baquge.cc kenshuge.cc
qushumi.com xepzw.com 3dllc.net