佳熹小说网 > 科幻小说 > 职场小聪明 > 第606章 用故事解释softmax函数的溢出问题

第606章 用故事解释softmax函数的溢出问题

推荐阅读:神树纪元:天命之旅男人求放过,未婚四个娃穿越忍3,拥有熟练度的我无敌了闭关三年,下山即无敌御兽:欺我母弱?我自化天灾!宝藏主播:榜一竞争太激烈权力巅峰:重生后我选择京圈老婆杀戮轮回!马族大明:殿下请登基

    用故事解释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之前,先减去最大值,这样所有的数值都会变小,防止指数爆炸。
    ? 就像往水池倒水、往锅里加热,数值太大就会溢出,我们需要先做调整,确保计算不超出范围!

本文网址:https://jxkel.com/xs/1/1235/399579.html,手机用户请浏览:https://jxkel.com享受更优质的阅读体验。

温馨提示:按 回车[Enter]键 返回书目,按 ←键 返回上一页, 按 →键 进入下一页,加入书签方便您下次继续阅读。章节错误?点此举报