【问题标题】:is any method to approximate the softmax probability under special conditions?有什么方法可以在特殊条件下逼近softmax概率吗?
【发布时间】:2020-09-23 04:01:13
【问题描述】:
我正在尝试找到不使用 exp() 来计算 softmax 概率的方法。
假设:
target: to compute f(x1, x2, x3) = exp(x1)/[exp(x1)+exp(x2)+exp(x3)]
conditions:
1. -64 < x1,x2,x3 < 64
2. result is just kept 3 desimal places.
有没有办法找到一个多项式来近似表示这种条件下的结果?
【问题讨论】:
标签:
machine-learning
math
deep-learning
softmax
【解决方案1】:
我对 Softmax 概率的理解
神经网络 (NN) 的输出不是很有辨别力。例如,如果我有 3 个类,对于正确的类,说 NN 输出可能是某个值 a,而对于其他类,则可能是 b,c,例如 a>b, a>c。但是如果我们使用 softmax 技巧,首先在转换之后 a+b+c = 1 这使得它可以解释为概率。其次,a>>>b, a>>>c,所以我们现在更有信心了。
那么如何走得更远
要获得第一个优势,使用就足够了
f(x1)/[f(x1)+f(x2)+f(x3)]
(equation 1)
对于任何函数f(x)
Softmax 选择f(x)=exp(x)。但由于你对exp(x) 不满意,你可以选择说f(x)=x^2。
我在下面给出了一些类似于指数曲线的图,您可以从中选择或使用一些类似的函数。要解决负范围,您可以在输出中添加 64 的偏差。
请注意,分母只是一个常数,不需要计算。为简单起见,您可以只使用以下而不是等式 1,
[f(x)] / [3*f(xmax)]
在你的情况下xmax = 64 + bias(if you choose to use one)
问候。