Published as a conference paper at ICLR 2023
背景
论文的主旨是,怎么在保留深度神经网络的灵活性的前提下,纳入单调性。作者主要是提供了一个损失函数,来实现一些网络的单调性保证,同时不失灵活性。
Point-wise Loss(PWL)
啥也没说,直接先丢出这个 Loss function:
\min\ L_{mono}=min\{\sum_{i=1}^n\max (0,-\nabla_{·M}f(x_i;\ \theta))+L_{NN}\}
其中 \nabla_{·M} 代表单调特征的梯度,\sum_j \frac{\partial f(x_i;\theta)}{\partial x[M])i^j}\ \forall\ j \in M;其中 \theta 表示可训练参数,L_{N,N} 表示神经网络的其他损失函数。
1.1 评估策略
为了评估这个 Loss 函数好不好,作者直接将加了 PWL 的网络和 DLN 进行比较。对,就是那个 Deep\ Lattice\ Network。用作者的话来说,就是这个损失函数聚焦于从数据中学到单调性,而不是从结构上限定(DLN:有话请直说,别绕弯子,我忍你很久了)。
作者使用了两个评估函数,第一个是常见的 AUC,用于评估分类损失。另一个是作者自己定义的 M_k 函数:
M_k=\frac{1}{n}\sum_{i=1}^n 1_{(\delta_i)}
其中 \triangle_+ 代表非递减单调性:
\delta_i=
\begin{equation}
\left\{
\begin{array}{ll}
1 &if \ \triangle_+f(x_j;\theta) \geq 0 \ \\
&\forall \ j \ni \{ x_j[k]\in[k_{min},k_{max}),x_j[p]=x_i[p]\ \forall \ p \ne k \} \\
0 &otherwise.
\end{array}
\right.
\end{equation}
别看数学公式写的很复杂,想表达的思想就一个:如果是单调的特征,并且在 x_j[k]\in[k_{min},k_{max}) 这个范围内满足单调性,则加 1,否则都是 0。换句话说,保证单调性的比例为多少。
1.2 实验
总结:在第一个数据集中表现要比 DLN 好,其他数据集上表现出了单调性。并且是更平滑的单调性,保留了非单调特征的非单调性,在这一点上比 DLN 好。
Artificial dataset
![[Pasted image 20231215212454.png|600]]
UCI - Adult dataset
![[Pasted image 20231215212535.png|600]]
Airline Ancillary dataset
![[Pasted image 20231215212554.png|600]]
评论区