Deep Neural Decision Trees
Soft binning function
Soft binning function 这个函数的功能为:输入一个标量 x x x ,生成标量 x x x 属于的区间的索引。具体如何实现的呢?往下看:
假设我们有一个连续的变量 x x x,我们想把它分隔成 n + 1 n+1 n+1 个间隔。这样就需要 n n n 个切割点(cut points),这 n n n 个切割点是可以训练的变量。将 n n n 个切割点记做 [ β 1 , β 2 , . . . , β n ] [β_1, β_2, . . . , β_n] [β1,β2,...,βn],并且 β 1 < β 2 < ⋅ ⋅ ⋅ < β n . β_1 < β_2 < ··· < β_n. β1<β2<⋅⋅⋅<βn.
我们用 Softmax 作为激活函数构造一个单层神经网络:
π = f w , b , τ ( x ) = s o f t m a x ( ( w x + b ) / τ ) π = f_{w,b,τ}(x) = softmax((wx + b)/τ ) π=fw,b,τ(x)=softmax((wx+b)/τ)
这里的 w w w 是常量而不是可以训练的变量。将 w w w 的值记为: $w = [1, 2, . . . , n + 1]. $ b b b 记作:
b = [ 0 , − β 1 , − β 1 − β 2 , . . . , − β 1 − β 2 − ⋅ ⋅ ⋅ − β n ] . b=[0,−β_1,−β_1 −β_2,...,−β_1 −β_2 −···−β_n]. b=[0,−β1,−β1−β2,...,−β1−β2−⋅⋅⋅−βn].
并且 $ τ > 0$ 是一个系数. 当 τ → 0 τ → 0 τ→0 时输出趋向于一个 one-hot 向量。
举个栗子:假设有三个连续的 logits : o i − 1 , o i , o i + 1 o_{i−1}, o_{i}, o_{i+1} oi−1