关于A-Softmax损失函数的一些解释
关于A-Softmax具体内容请参考论文《SphereFace: Deep Hypersphere Embedding for Face Recognition》by Weiyang Liu, Yandong Wen, Zhiding Yu, Ming Li, Bhiksha Raj and Le Song。关于其损失函数的设计思路,Thaurun的博客A-Softmax的总结及与L-Softmax的对比——SphereFace. 给出了一定的解释。我根据我的理解再进行一些补充。
偷懒了,就暂且"盗用"Thaurun博客的一些内容。
重点解释红框中的内容。
我们都知道,两个向量之间的夹角
θ
∈
[
0
,
π
]
\theta\in[0,\pi]
θ∈[0,π]。因此,如果使用式(1.4)(即红框上面的式子)作为损失函数,则在范围之外,即
θ
∈
[
π
m
,
π
]
\theta\in[\frac{\pi}{m},\pi]
θ∈[mπ,π],可能存在部分区间使得
c
o
s
(
m
θ
y
i
,
i
)
>
c
o
s
(
θ
j
,
i
)
,
j
≠
y
i
cos(m\theta_{y_{i},i})>cos(\theta_{j,i}), j\neq y_{i}
cos(mθyi,i)>cos(θj,i),j̸=yi成立,然而
m
θ
y
i
,
i
<
θ
j
,
i
,
j
≠
y
i
m\theta_{y_{i},i}<\theta_{j,i}, j\neq y_{i}
mθyi,i<θj,i,j̸=yi不成立的情况。如果坚持使用这个损失函数,则在最小化损失时必须加上
θ
y
i
,
i
∈
[
0
,
π
m
]
\theta_{y_{i},i}\in[0,\frac{\pi}{m}]
θyi,i∈[0,mπ]的约束条件。那么原问题就变为一个带约束的优化问题,无法直接使用梯度下降法求解。
因此,作者设计了一种替代
c
o
s
(
m
θ
y
i
,
i
)
cos(m\theta_{y_{i},i})
cos(mθyi,i)的方案——
ψ
(
θ
y
i
,
i
)
=
(
−
1
)
k
c
o
s
(
m
θ
y
i
,
i
)
−
2
k
\psi(\theta_{y_{i},i})=(-1)^{k}cos(m\theta_{y_{i},i})-2k
ψ(θyi,i)=(−1)kcos(mθyi,i)−2k,其中
θ
y
i
,
i
∈
[
k
π
m
,
(
k
+
1
)
π
m
]
,
k
∈
{
0
,
1
,
2
,
.
.
.
,
(
m
−
1
)
}
\theta_{y_{i},i}\in[\frac{k\pi}{m},\frac{(k+1)\pi}{m}], k\in\{0,1,2,...,(m-1)\}
θyi,i∈[mkπ,m(k+1)π],k∈{0,1,2,...,(m−1)} (注:关于k的取值,这个是我的理解,论文中使用的是
k
∈
[
0
,
m
−
1
]
k\in[0,m-1]
k∈[0,m−1])。很明显,
ψ
(
θ
y
i
,
i
)
\psi(\theta_{y_{i},i})
ψ(θyi,i)是一个分段函数(定义域为
θ
y
i
,
i
∈
[
0
,
π
]
\theta_{y_{i},i}\in[0,\pi]
θyi,i∈[0,π]),函数值随着
θ
y
i
,
i
\theta_{y_{i},i}
θyi,i单调递减。也就是说对于式(1.5)的损失函数只有在
θ
y
i
,
i
∈
[
0
,
π
m
]
\theta_{y_{i},i}\in[0,\frac{\pi}{m}]
θyi,i∈[0,mπ](k=0)时,才有
c
o
s
(
m
θ
y
i
,
i
)
>
c
o
s
(
θ
j
,
i
)
,
j
≠
y
i
cos(m\theta_{y_{i},i})>cos(\theta_{j,i}), j\neq y_{i}
cos(mθyi,i)>cos(θj,i),j̸=yi成立,且
m
θ
y
i
,
i
<
θ
j
,
i
,
j
≠
y
i
m\theta_{y_{i},i}<\theta_{j,i}, j\neq y_{i}
mθyi,i<θj,i,j̸=yi也成立。即对于以式(1.5)为目标函数的优化问题,
θ
y
i
,
i
\theta_{y_{i},i}
θyi,i的最优解一定在区间
[
π
m
,
π
]
[\frac{\pi}{m},\pi]
[mπ,π]中,这就符合了A-softmax的设计要求。
以上是个人的一些理解,可能有不对的地方,还请指出。