深度学习中的平滑近似
平滑近似函数的理解 #
在读了校友 王峰的一些文章后,发现从优化角度来理解一些常见的Loss,会比较有意思,在此列一下几个有意思的关联。
原函数 | 平滑近似 | 备注 |
---|---|---|
max(x) | 1γlog∑iexp(γxi) | LSE(x;γ) |
min(x) | −1γlog∑iexp(−γxi) | NLSE(x;γ) |
[x]+=max(x,0) | log(1+exp(x)) | Softplus(x)=1βlog(1+exp(βx)), β为1的特例 |
argmax(x) | ∑ni=1i×softmax(x)i | x为向量 |
平滑近似函数与MFBPR的关联 #
一个比较有意思的东西:MF-BPR的公式是−lnσ(yui−yuj)。其中, σ(x)=11+e−x.
展开后可得:
−lnσ(x)=−ln11+e−x=ln(1+e−x).
与原始softplus相反,这个取的是max(−x,0)。所以BPR本质上也是用了relu的变体作为了目标函数。当正样本大于负样本时,不作改变,当正样本小于负样本时,给予较大的梯度。
{{ :tech:bprloss.png?400 |}}
平滑近似函数与softmax的关联 #
softmax的目标是要让向量的目标位置j的预测结果最大化,∀i≠j,zi<zj。或者说, Cmaxi=1,i≠jzi<zj.
相关的Loss设置为:
L=max(Cmaxi=1,i≠j{zi}−zj,0)=max((logC∑i=1,i≠jezi)−zj,0)=log(1+exp((logC∑i=1,i≠jezi)−zj))=log(1+∑Ci=1,i≠jeziezj)=log(∑Ci=1eziezj)=−log(ezj∑Ci=1ezi).