论文阅读学习 - Deep Representation Learning with Target Coding
Deep Representation Learning with Target Coding
1-of-K code:长度为 的向量,第 个元素为 1,其它的为 0. [分类任务]
Target code:multi-label 预测问题.
图像分类一般采用单个类别标签作为 label,可以看做是 1-of-K 编码,类别标签所在位置的编码值为 1,其它非标签位置的编码值为0.
Taget code 的方式,是将一个 class 类别表示为一个0-1向量,长度为 2 的乘方(幂)(如, , , , 作者代码给出的范围是 3-14),可能有多个位置的编码值为 1,而不仅仅是类别标签位置的编码值为 1. 假如数据集有 10 类(如 MNIST,Cifar10),则 class 类别的label向量长度至少为 . 假如数据集有 1000 类(如 ImageNet),其Hadamard 矩阵至少为 ,每 class 类别的label向量长度为 .
1. Target Coding 定义
假设 为整数集,记为 字符集(alphabet set); 内的一个元素记为 符号(symbol). 如, 是一个二值字符集.
目标编码(target code) 是一个矩阵,. 目标编码矩阵的每一行记为 码字(codeword). 为每个码字(codeword)中的符号(symbols)数; 为码字数(codewords).
对于目标编码 ,记 为目标编码矩阵 行元素的符号(symbols) 的经验分布集,如,当 时, 是长度为 的向量, 的第 个元素是第 个符号(symbol) 在目标编码矩阵 的第 行出现的频数.
同样地,记 为目标编码矩阵 列元素的符号(symbols) 的经验分布集.
假设给定两个不同的行索引(row indices) 和 ,目标编码矩阵 的 行和 行的 Hamming distance 为:,即,Hamming 距离计算了两个向量中对应符号(symbol) 不相等的列索引数(column indices). 简便起见,将之记为 成对 Hamming 距离(pairwise Hamming distance).
Table 1 中给除了一种一对多(1-of-K)的二值目标编码,深度学习中一般用于表示 类 classes. 个符号(symbols) 中的每一个元素是 0 或 1,分别表示特定 class 的概率. 此时,可以看做是目标编码矩阵的一种特殊形式,即 . 的单位矩阵.
可以简单直接的的到 1-of-K 编码的某些属性. 如,
记 为矩阵 第 行中第 个符号(symbol) 的数目,,这里 . 由于每个码字(codeword) 只有一个符号(symbol),能够得出 ,.
相似地,可以得到 ,. 成对 Hamming 距离为 2.
2. 基于 Hadamard Code 构建 Class label
目标编码(target coding) 不仅对于目标预测具有纠错(error-correcting)作用,还有助于学习更好的特征表示.
采用普遍使用的错误纠正编码(error-correcting code) 方法 —— Hadamard Code,其可以由 Hadamard 矩阵生成.
假设矩阵 ,其元素是 +1 或 -1,如果 ,则记该矩阵为 Hadamard 矩阵. 其中, 为单位矩阵. Hadamard 矩阵要求任意两个不同的行和列分别都是正交的.
Hadamard 矩阵采用 Sylvester(Hedayat and Wallis 1978) 方法生成. 如,
给定 Hadamard 矩阵 ,采用 Kronecker 乘积,有:;类似地,. 可以看出,Hadamard 矩阵的尺寸是 2 的幂(乘方)关系.
针对 Hadamard 矩阵的任意两个不同的行(或列),其长度为 ,则有 对元素的符号彼此相同, 对元素的符号相反. 因此,任意两行的距离是常数,值等于 .
现在,基于 Hadamard 矩阵,则可以构建目标编码矩阵 .
假设 Hadamard 矩阵 ,则去除 的第一行和第一列,并将 +1 变成 0,-1 变成 1,即可的到目标编码矩阵 . 根据 的定义可知,矩阵 的每一行和每一列都有 个 1. 由于 Hadamard 矩阵的任意两行都是正交的,则矩阵 的成对 Hamming 距离等于 .
Tabel 1 给出了一个由 得到的 目标编码矩阵 .
实际上,由于 Hadamard 矩阵的长度 是 2 的幂(乘方),很难精确的到包含 个 classes 的 个码字(codewords). 故,记矩阵 是 个 classes labels 的矩阵,,第 个 class 是由矩阵 的第 行标注的(labeled). 因此,矩阵 是从目标编码矩阵 中选取 个码字(codewords) 来构建的.
3. Target Coding 的属性
-
属性1. 目标编码矩阵 每一行具有一致性.
Hadamard 编码的每一行都有 个符号(symbols) 等于 1.
矩阵行元素的一致性对于目标预测(target prediction) 会引入冗余(redundancy). 矩阵 的每一行表示一个 class 类别标签.
与 1-of-K 编码不同的是,1-of-K 编码仅使用单个符号 ‘1’ 来表示 class 类别;
而 Hadamard 编码的每个码字(codeword) 都有相同数量的等于 ‘1’ 的冗余符号(symbols). 这种属性是错误纠正属性. 如果符号(symbols) 的有限数量的部分被损坏,仍更可能正确识别 object 类别.
符号 ‘1’ 的数量越多,则错误纠正能力越强,使得目标层(target layer)的响应能够直接用于最近邻分类.
-
属性2. 目标编码矩阵 每一列具有一致性.
类似地,Hadamard 编码的每一列都有 个符号(symbols) 等于 1.
矩阵列元素的一致性也是特征表示学习需要的.
目标编码矩阵 的每一列可以看做是一个决策函数(decision function),将输入空间分成两个平衡区域,如,近一般的 classes 类别在一个区域,剩下的 classes 类别被分组到另一个区域.
给定多个列,可以得到不同的划分区域,结合不同区域可能在输入空间产生指数个区域交叉(region intersections). 基于这样的属性,目标编码矩阵有助于产生更能区分数据的特征,的到数据的判别性和鲁棒性的特征描述.
-
属性3. 目标编码矩阵 的成对 Hamming 距离值为常数.
因为 Hadamard 编码的行和列都具有一致性,成对 Hamming 距离也是 .
也就是说,任意两个码字(codewords) 间的 Hamming 距离都是码字(codewords) 长度的一半.
这种属性确保了,每一 class 类有其唯一的码字(codeword),并与其它 classes 类有相同的远离距离. 从同一 class 类采样的数据,被强制映射到相同的码字(codeword). 有助于特征不变性表示.
如前面说的,假设,Class 类别标签 是通过从目标编码矩阵 中选取 个码字(codewords) 构建的.
然而, 由于 是 2 的乘方, 当 class 类别数小于 时,, 违背了属性2.
因此,提出一种贪婪搜索(greedy search)方法 来从矩阵 中选取 ,以逼近 属性2.
从目标编码矩阵 选取一个码字(codeword),当且仅当该码字(codeword)不破坏矩阵 每一列的一致性时,才将该码字(codeword) 添加到矩阵 .
例如,当 时,采用贪婪搜索和随机选取来构建矩阵 . 如图:
矩阵列中符号(symbol) ‘1’ 的数量分布情况如 Figure 2. 可以看出,贪婪搜索方法能够更好的体现矩阵列元素的一致性(理想情况,所有的列都包含 5 个符号(symbols) ‘1’. 采用贪婪搜索算法,当 时, 95% 的列都包含了 4-6 个符号(symbols) ‘1’). 随机选取会导致列元素一致性不够好.
4. CNN 中 Target Code 的应用
给定数据集 , 为第 个样本, 为对应的 class 类别标签, 为样本总数. 采用CNN 来学习特征表示,损失函数采用 Euclidean loss:
和 分别为第 层的权重和偏置.
由于 Hadamard 编码与网络结构是独立的,因此,任何网络结构都可以. 例如图: