使用深度神经网络, 提出一种基于度量的半监督回归算法(MSSR), 其目标是通过度量学习来学习嵌入空间, 只需要少量的标记示例和大量的未标记示例. 在新空间上执行目标数据点的回归估计.
论文地址: Metric-Based Semi-Supervised Regression
期刊: IEEE Access 2020
任务: 回归
孪生神经网络被设计为两个相同的网络, 它们通过最后一层距离层进行连接, 经过训练以预测两个输入是否相似. 两个子网络的架构是相同的, 权重和偏差由两个子网络共享. 孪生网络背后的主要思想是通过两个输入之间的关系来学习嵌入空间. 所谓的嵌入空间指: 通过映射函数将数据投影到新的空间, 在这个新的空间中可进行相似性度量等操作.
孪生网络需要一对数据点作为输入, 所以将每个训练实例表示为一个三元组 ( x i , x j , c ) (x_i,x_j,c) (xi,xj,c), 其中 x i x_i xi, x j x_j xj 是模型的输入, c c c 是这对输入的标签. 对于一个二分类问题, 如果 x i x_i xi, x j x_j xj 属于同一类别, 则 c = 0 c=0 c=0, 否则, c = 1 c=1 c=1, 这时采用正则交叉熵函数作为损失函数.
孪生网络需要利用输入之间的相似性来训练模型. 在分类问题的典型设置中, 根据两个数据点是否在同一类中, 从标签信息中获取数据点的相似度. 然而, 这种设置在回归中并不那么简单, 因为标签是实值, 除了它们的值相同, 很难确定两个实值是否相似.
训练集包含:
测试集 X T = { x 1 , … , x t } \mathbf{X}_T=\{x_1,\dots,x_t\} XT={x1,…,xt}, 仅包括特征向量, 用于模型评估.
在训练阶段, 因为孪生网络需要两个输入, 所以使用 X L \mathbf{X}_L XL 和 X U \mathbf{X}_U XU 生成配对. 一旦完成模型训练, 就可以获得映射函数, 该映射函数可以将每个输入数据点 x x x 投影到新的嵌入空间.
给定训练集, 目标是学习一个回归函数 h h h, 使得输入数据 x ∈ X L x \in \mathbf{X}_L x∈XL 的预测是准确的, 即 h ( x ) ≈ y h(x) \approx y h(x)≈y. 此外, 对于训练集中的任意两个点 x i x_i xi 和 x j x_j xj, 如果 x i x_i xi 和 x j x_j xj 相似, 则嵌入空间中的两个点应当相似, 即 h ( x i ) ≈ h ( x j ) h(x_i) \approx h(x_j) h(xi)≈h(xj).
与以往关于回归问题的研究相比, 我们考虑学习一个判别特征空间, 然后在新的空间中构造一个回归函数. 因此, 嵌入空间应该保持数据点的相似关系, 从而可以在新的空间中学习精确的回归函数.
利用孪生网络来学习一个嵌入空间, 但与以前的工作不同, 这项工作集中在回归问题上, 训练涉及到未标记的数据. 由于在估计相似度时使用标注和未标注数据, 因此提出了一种混合方法来估计数据点的相似度.
提出的混合方法包括两部分:
因为我们只有少量的标记数据, 所以第一部分生成的对数与第二部分相比相对较少. 此外, 由于第一部分中的相似性是基于标签信息的, 因此来自第一部分的配对预计比第二部分的配对更可信. 因此, 我们建议使用过采样方法来增加第一部分中的对数, 直到数量等于第二部分中的对数. 然后我们将两部分中的对合并, 一旦完成合并步骤, 不相似对的数量将远大于相似对的数量. 因此, 我们使用欠采样来减少不相似对的数量, 直到相似和不相似对的大小达到平衡.
完成对训练集中数据点的相似性估计后, 就可以使用这些对作为孪生网络的输入来训练模型.
训练算法损失函数如下:
( 1 − Y ) 1 2 ( D w ) 2 + Y 1 2 max ( 0 , α − D w ) 2 (1) (1-Y)\frac{1}{2}(D_w)^2+Y\frac{1}{2}\max (0,\alpha-D_w)^2 \tag{1} (1−Y)21(Dw)2+Y21max(0,α−Dw)2(1)
D w = { G w ( X 1 ) − G w ( X 2 ) } 2 (2) D_w= \sqrt{\{G_w(X_1)-G_w(X_2)\}^2} \tag{2} Dw={Gw(X1)−Gw(X2)}2(2)
MSSR 算法的训练流程如下:
目标是利用标记数据集和未标记数据集训练一个孪生网络, 该网络功能是可以对输入数据进行相似度判断.
训练好孪生网络后, 基于其网络输出, 可以使用 k k kNN 来估计目标数据的回归值, 因为 k k kNN 是一种依赖训练数据进行预测的非参数方法. 使用均方误差作为损失函数的参数模型倾向于赋予异常值更多的权重, 而 k k kNN 在超参数 k k k 合适的情况下可以减轻异常值带来的影响.
怎么理解呢? 其实就是将待预测的目标 x x x 与标记数据 x i x_i xi 输入孪生网络, 进行相似度度量, 找出每个 x i x_i xi 与 x x x 的相似关系, 并存入列表 d d d, 然后根据与 d d d 中对应的 x i x_i xi 来进行 k k kNN 回归, 其回归结果即作为 x x x 的预测结果.
如上所示, 孪生网络中的两个网络共享相同的体系结构. 我们使用深度神经网络来构造子网络, 并且每个隐藏层使用 ReLU 函数来执行非线性变换. 翼型自噪声数据集(Airfoil Self-Noise Data Set)的子网络结构如上图所示, 其包括两个隐藏层, 并且两个隐藏层的神经元的数量分别为64和32. 此外, 输入层的维度是输入数据的特征数量, 而输出层的维度, 即嵌入空间, 取决于数据集的特征, 是16或8. 最后, 在我们提出的算法的预测中, 我们为 k k kNN 算法设置 k = 5 k = 5 k=5.