深度学习中的平滑近似

深度学习中的平滑近似

平滑近似函数的理解 #

在读了校友 王峰的一些文章后,发现从优化角度来理解一些常见的Loss,会比较有意思,在此列一下几个有意思的关联。

原函数 平滑近似 备注
$\max(x)$ $\frac{1}{\gamma}\log\sum_i \exp(\gamma x_i)$ $LSE(x;\gamma)$
$\min(x)$ $-\frac{1}{\gamma}\log\sum_i \exp(-\gamma x_i)$ $NLSE(x;\gamma)$
$[x]_+ = \max(x,0)$ $\log(1+exp({x}))$ $Softplus(x) = \frac{1}{\beta}\log(1+exp({\beta x}))$, $\beta$为1的特例
$\arg\max(x)$ $\sum_{i=1}^{n}i\times softmax(x)_i$ $x$为向量

平滑近似函数与MFBPR的关联 #

一个比较有意思的东西:MF-BPR的公式是$-\ln\sigma(y_{ui} - y_{uj})$。其中, $$\sigma(x) = \frac{1}{1+e^{-x}}.$$ 展开后可得:

\begin{equation} \begin{aligned} -\ln\sigma(x) &= -\ln\frac{1}{1+e^{-x}} \\ &= \ln(1+e^{-x}). \\ \end{aligned} \end{equation}

与原始softplus相反,这个取的是$\max(-x,0)$。所以BPR本质上也是用了relu的变体作为了目标函数。当正样本大于负样本时,不作改变,当正样本小于负样本时,给予较大的梯度。

{{ :tech:bprloss.png?400 |}}

平滑近似函数与softmax的关联 #

softmax的目标是要让向量的目标位置$j$的预测结果最大化,$\forall i\neq j, z_i < z_j$。或者说, $$\max_{i=1,i\neq j}^{C}{z_i} < z_j.$$ 相关的Loss设置为:

\begin{equation} \begin{aligned} \mathcal{L} &= \max(\max_{i=1,i\neq j}^{C}\{z_i\} - z_j, 0) \\ &= \max((\log\sum_{i=1,i\neq j}^{C}e^{z_i}) - z_j, 0) \\ &= \log(1+exp((\log\sum_{i=1,i\neq j}^{C}e^{z_i}) - z_j)) \\ &= \log(1+\frac{\sum_{i=1,i\neq j}^{C}e^{z_i}}{e^{z_j}}) \\ &= \log(\frac{\sum_{i=1}^{C}e^{z_i}}{e^{z_j}}) \\ &= -\log(\frac{e^{z_j}}{\sum_{i=1}^{C}e^{z_i}}). \end{aligned} \end{equation}

相关链接 #

circle loss的推导和理解

softmax的深入理解