Triplet Response Residual(TRR) 损失函数的解析解(撤销)
##### 结论撤销说明 #####
由于本人验算失误,导致以下所有结论都不一定成立。当然,我会继续做这方面的工作,等有成果时会及时更新相关理论结果,谢谢!
###############################
在之前的blog里我提到了可以根据凸优化相关引理构建一个关于网络参数W的凸损失函数:
那么如何构造这个凸函数,以及得到这个凸函数后如何求解得到一个最优解析解,或者当参数W满足什么条件可以最小化损失函数?事实上,这个问题并不容易求解,所以目前也只是得到了一个比较trivial的solution。
为了回答这些问题,首先回顾一下之前讲到的凸优化相关引理[1]:
给定函数h: R→R和函数g: Rn→R,定义复合函数f(x)=h o g=h(g(x)): Rn→R,则如下结论成立:
(1) 如果h是凸函数且非减,g是凸函数,则f是凸函数
(2) 如果h是凸函数且非增,g是凹函数,则f是凸函数
(3) 如果h是凹函数且非减,g是凹函数,则f是凹函数
(4) 如果h是凹函数且非增,g是凸函数,则f是凹函数
表示函数h的扩展值延伸,若点不在函数h的定义域内,赋值为∞(若h是凸函数)或者-∞(若h是凹函数)。
因此根据这些结论,我们可以很容易设计出一个简单的凸函数(根据结论(1)和(4)),即令h(W)是凸函数,f(x)是凸函数,g(x)是凹函数:
但必须注意的是,这个凸函数对于具体问题来说太过简单,因为只是通过简单地令使得h(W)是凸函数,在神经网络里我们往往需要做一次非线性映射,而这种情况下我们只是做了一次仿射变换,并没有做非线性映射。同时,我们又令f(x)=x, g(x)=log(x)(凹函数),这样就得到一个简化版本的凸TRR损失函数:
因为我们可以逐层进行优化,所以只需要关注某一层的TRR loss function就可以了。比如第l层的损失函数:
Preliminaries
先预设定一些字符变量。xanc和xpos属于同一个类别下的两个不同数据,xneg是与xanc和xpos不同类别下的数据,Wl表示第l层的网络参数,并且设第(l-1)层特征向量维度是k,第l层的输出特征向量维度是m,则,其中
。整体训练样本数据集大小为N:
。特别说明一下,为了简化变量符号表示,下面理论证明涉及到的所有网络参数以及样本数据变量都省去了层符号“l”,因为这样表示更加清晰,并且不影响结果。
由于对公式(2)求解,只能通过迭代循环得到数值解(损失函数对wi的梯度跟wj有关,i≠j),因此我们先对公式(2)作一次变换:
其中。证明公式(3)LTRR(W)是凸函数的详细过程见Supplementary Materials部分。通过变换之后,我们可以独立对wi进行求解。
单样本的解析解
针对单样本数据:(xanc, xpos, xneg),我们可以求解得到一个解析解。
Lemma 1.
其中。
Proof:
证明结束。
记,最后可以求解得到
。
在整体训练集上的最优解析解
Lemma 2. ,其中N是整体训练集的样本个数,
Proof:
记
证明结束。
因此最后可以求解得到: 。
Future Work
虽然可以求解得到
的最优解析解,但是之前也提到了由于太过简单,实际的神经网络存在一个非线性映射,因此这里的结果并不能很好地用于实际场景。之前在设计凸函数时,主要一个难点是如何设计函数
,使得它本身是凸函数,并且可以作为一种衡量
之间相似度的度量标准,如果可以找到这种函数,实际上依然可以证明
是凸函数。
因此,后面我会继续寻找函数,同时,设计一个简单的实验把上面的理论结果applied到一个简单的问题上,看下效果如何。
References:
[1] Stephen Boyd, Lieven Vandenberghe. 凸优化[M]. 清华大学出版社, 2013.
Supplementary Materials
公式(3):
是凸函数。
Proof:
由于每个wi可以独立求解,因此只要证明
是凸函数即可。
由:
得到:
由:
得到:
可以看出的Hessian矩阵是正定的,所以
是凸函数。
证明结束。
- Triplet Response Residual(TRR)与特征表示学习
- KL vanishing 问题的一般解