首页>职场小聪明和滑头的人 > 第606章 用故事解释softmax函数的溢出问题
第606章 用故事解释softmax函数的溢出问题
用故事解释softmax函数的溢出问题
故事背景:龙族宴会上的金碗
在一座神秘的龙族王国,龙族每年都会举行一次盛大的宴会,宴会上有一个传统:每条龙要把自己的财富(金币数量)放进一个金碗,然后让智慧长老计算每条龙的“财富占比”
,来决定谁是这一年的财富之王。
宴会当天,四条龙分别报出了自己的金币数量:
?
火龙:100万金币
?
冰龙:200万金币
?
雷龙:300万金币
?
风龙:10亿金币
智慧长老准备使用一个古老的计算方法——softmax规则,将这些财富转换成概率来比较。
但他很快发现了一个严重的问题:
金碗炸了!
为什么?因为按照softmax的计算方法,他需要计算每个金币数量的指数值:
但这些数值实在是太大了,远远超出了王国的计算能力,直接导致金碗崩溃(计算溢出)。
智慧长老陷入了困境,他需要找到一个方法来避免计算崩溃。
于是他想到一个聪明的技巧:
“我们不直接放金币,我们可以先让大家的金币数减去最大的金币数!”
于是,他重新计算:
?
火龙的金币数变为
100万
-
10亿
=
-9.99亿
?
冰龙的金币数变为
200万
-
10亿
=
-9.98亿
?
本章未完,点击下一页继续阅读