Rank loss调研
A Generic Graph-based Neural Architecture Encoding Scheme for Predictor-based NAS这一篇文章对于rank loss有着详细的介绍。作者在真正做实验的时候,使用了好几种rank相关的loss,最后发现pairwise的这种comparator是最好的。
如果MSE loss表示如下的话,
[L({a_j, y_j}_{j=1,...,N} = sum_{j=1}^{N}(P(a_j)-y_j)^2
]
则hinge pair-wise ranking loss则可以表示为
[L({a_j, y_j}_{j=1,...N}) = sum_{j=1}^{N}sum_{i, y_{i}>y_{j}} max[0, m-(P(a_i)-P(a_j))]
]
(a_i)为与测试,(y_i)为GT。上述公式表示的意思是,(j)的索引从1到(N),然后再找那些大于(y_j)的索引(i), 然后理论上我们想要得到的是(P(a_i)>P(a_j))。所以如果上述条件满足的话,上述loss的右边的一项为负数,所以loss为0,大概是加了一个m,允许在一定范围内波动也是允许的。
rank loss分为两种,一种是pairwise的ranking loss,另外一种是listwise ranking loss
pairwise ranking loss
pairwise rank loss可以表示如下
[L^p( ilde{S}) = sum_{i=1}^{N}sum_{jin{j|y_i<y_j}} phi(P(a_j), P(a_i))
]
其中(phi)有两种形式,一种是二值交叉熵函数
[phi(s_j, s_i) = log(1+e^{(s_j-s_i)})
]
另外一种是hinge loss函数,可以描述为如下
[phi(s_j, s_i) = max(0, m-(s_j-s_i))
]
其中(m)是正的margin
除此之外,作者还使用了一个pairwise comparator
listwise ranking loss
作者还使用了ListMLE这种list ranking loss。