共计 1342 个字符,预计需要花费 4 分钟才能阅读完成。
softmax 函数在机器学习中无处不在:当远离分类边界时,它假如似然函数有一个修改的指数尾。
然而新数据可能不适宜训练数据中应用的 z 值范畴。如果呈现新的数据点 softmax 将依据指数拟合确定其谬误分类的概率;谬误分类的机会并不能保障遵循其训练范畴之外的指数(不仅如此——如果模型不够好,它只能将指数拟合到一个基本不是指数的函数中)。为防止这种状况将 softmax 函数包装在一个范畴限度的线性函数中(将其概率限度在 1/n 和 1-1/n 之内)可能会有所帮忙,其中 n 是训练数据中的样本数:
然而咱们将通常的 softmax 函数视为最佳拟合曲线而不是似然函数,并依据(离散)高斯统计(首先用于两类)计算其误差:
简化这个表达式后,咱们失去:
咱们绘制原始函数以及 n=50,500,10000,1000000 的新高斯 softmax 函数:
咱们看到,该函数仅在 n<500 左右时呈现不同(它是 log(n-1)/2)。其实并不是这样,咱们绘制 n = 100 万的函数的对数:
尽管通常的 softmax 函数的概率是无界的,并且很快就用 100 万个数据点实现了 1 / 10¹²的准确性,新的高斯 softmax 函数基于样本数量稳固在超过 10⁶ 的程度。
将初始线性缩放 softmax 函数与 n = 100 万的高斯 softmax 函数进行比拟 (咱们查看对数图,因为它们在线性图上看起来是一样的):
能够看到尽管两者都靠近 10 分之 1 的极限、但它们的同质率却十分不同,线性迫近达到最高精度的速度大概是高斯 softmax 函数的两倍。
最初,咱们绘制 n = 50 的所有三个函数:
因为链式法则,新高斯 softmax 函数的导数计算并不比原 softmax 函数的导数更难:
贝叶斯和 Evidential Neural Networks 被用于计算应用深度学习做出的预测的理论概率。然而在许多状况下,softmax 函数的输入依然被用作预测精确的概率。本文提出了一种基于最小误差界和高斯统计量的 softmax 函数的平安疾速扩大,能够在某些状况下作为 softmax 的代替
如何将其扩大到两个以上的类?
扩大到两个以上的类在数学上很简略,只需将 1-sigma 的高斯替换为单个 sigma 上高斯的总和。以 n-1 作为基数,找到 1/n 的上限和 (n-1)/n 的下限,并且能够通过对所有两头 sigma 求和以关闭模式计算导数。然而以下这种状况:有 11 个类,一个(称为 A)的 sigma 为 0,其余的 sigma 为 0.1,咱们可能认为它是 1/n,应用通常的 softmax 会返回 A 的概率为 0,而高斯 softmax 返回 1 /(10*n^(1/10))。因为咱们不晓得它到底是什么(各个分类概率很”均匀“),因为 n < 100 万时返回约为 0.04,其余类为 0.095(因为 N 对值不太敏感),这意味着基于真正看到的内容的不确定性,存在显著的溢出效应。
所以高斯 softmax 的不适宜有许多彼此十分靠近的类别(例如猫的种类)和彼此相距很远的类别(例如猫与船等)混合的数据。然而对一些能够将“我不确定”进行后处理的状况高斯 softmax 还是能够应用的,比方举荐用户进一步收集数据等。
https://avoid.overfit.cn/post/11690658dbc240c4bfb49a6c2e1b715f
作者:Alex Roberts