当前位置:80小说网 > 都市言情 > 职场小聪明 > 第606章 用故事解释softmax函数的溢出问题

第606章 用故事解释softmax函数的溢出问题(1 / 2)

上一章 章节列表 下一页
好书推荐: 入夜,诱他疯宠 竞技之王 曦狂:青春纪 我,历史系!小小清穿拿捏拿捏 姐姐帮我!年下弟弟疯批爱撩 必要时我会变成一条龙 荒武洞天:从拆迁户到古神 小丧尸的古代成长日记 四合院:小透明的逆袭之路 【快穿】反派养成有限公司

用故事解释Softax函数的溢出问题

故事背景:龙族宴会上的金碗

在一座神秘的龙族王国,龙族每年都会举行一次盛大的宴会,宴会上有一个传统:每条龙要把自己的财富(金币数量)放进一个金碗,然后让智慧长老计算每条龙的“财富占比”,来决定谁是这一年的财富之王。

宴会当天,四条龙分别报出了自己的金币数量:

? 火龙:100万金币

? 冰龙:200万金币

? 雷龙:300万金币

? 风龙:10亿金币

智慧长老准备使用一个古老的计算方法——Softax规则,将这些财富转换成概率来比较。但他很快发现了一个严重的问题:

金碗炸了!

为什么?因为按照Softax的计算方法,他需要计算每个金币数量的指数值:

但这些数值实在是太大了,远远超出了王国的计算能力,直接导致金碗崩溃(计算溢出)。

智慧长老陷入了困境,他需要找到一个方法来避免计算崩溃。于是他想到一个聪明的技巧:

“我们不直接放金币,我们可以先让大家的金币数减去最大的金币数!”

于是,他重新计算:

? 火龙的金币数变为 100万 - 10亿 = -9.99亿

? 冰龙的金币数变为 200万 - 10亿 = -9.98亿

? 雷龙的金币数变为 300万 - 10亿 = -9.97亿

? 风龙的金币数变为 10亿 - 10亿 = 0

然后,他计算:

现在,所有的指数值都变得很小,不会再溢出,金碗终于能正常计算了!

最终,风龙的财富占比几乎是 100%,其他三条龙的财富占比接近 0,宴会得出了正确的结论。

这个方法被称为 Softax的数值稳定性技巧,即 在计算前减去最大值,防止指数运算导致溢出。

用比喻解释Softax的溢出问题

比喻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,不会再超出炉子的承受范围。

总结

? Softax的溢出问题 是因为指数运算会导致数值过大,超过计算机的上限。

? 解决方案 是在计算Softax之前,先减去最大值,这样所有的数值都会变小,防止指数爆炸。

? 就像往水池倒水、往锅里加热,数值太大就

上一章 章节列表 下一页
新书推荐: 无敌大百科[快穿] 官妻 乱世帝都 宦海狂澜 被他吻时心动 重生1985,从卖火锅开始成为世界首富 亲妈重生在七零,带着崽崽杀疯了 别给我刷黑科技啦 废婿之隐龙觉醒 哄我婚前试爱?闪婚哥哥死对头他才后悔