引入
论文地址:https://ieeexplore.ieee.org/document/8194845
摘要要点:
1)迁移学习和集成学习是解决训练数据与测试数据分布不同的新趋势。
2)本文设计了当训练数据不充分时的集成迁移学习框架,以提高分类精度:
2.1)提出用于迁移学习的加权重采样方法,命名为TrResampling。在每次迭代中,对source domain中权重较大的数据进行重采样,并使用TrAdaBoost来调整source data和target data之间的权重;
2.2)使用Baywa、decision tree和SVM作为基学习器,并使用最佳性能的学习器来进行迁移学习。
1 TrResampling
通过以下两个伪代码,可以对该算法有一个大致的了解:
算法1:权重重采样Weighted-Resampling (WR) 框架
输入:
大小为
N
N
N的训练集
D
D
D
1:随机生成训练集权重
w
i
w_i
wi
2:创建一个与
D
D
D等大小的新数据集
D
′
D'
D′
3:为
D
D
D中的每一个样本生成一个采样概率
p
i
p_i
pi
4:for
i
=
1
i = 1
i=1 to
N
N
N do
5: if
∑
j
=
1
j
=
i
p
j
<
=
∑
j
=
1
j
=
i
w
i
\sum_{j = 1}^{j = i} p_j <= \sum_{j = 1}^{j = i} w_i
∑j=1j=ipj<=∑j=1j=iwi then
6: 添加
D
D
D中第
i
i
i个样本至
D
′
D'
D′
7: end if
8:end for
输出:重采样数据集
D
′
D'
D′
算法2:TrResampling框架
输入:
大小为
N
N
N的训练集
D
D
D、大小为
m
m
m的源数据
D
S
=
{
(
x
1
S
,
y
1
S
)
,
⋯
,
(
x
m
S
,
y
m
S
)
}
D_S = \{ (x_1^S, y_1^S), \cdots, (x_m^S, y_m^S) \}
DS={(x1S,y1S),⋯,(xmS,ymS)}和大小为
n
n
n的目标数据
D
T
=
{
(
x
1
T
,
y
1
T
)
,
⋯
,
(
x
n
T
,
y
n
T
)
}
D_T = \{ (x_1^T, y_1^T), \cdots, (x_n^T, y_n^T) \}
DT={(x1T,y1T),⋯,(xnT,ynT)}、基学习器BaseLearner (BL) 例如TrAdaBoost (
D
S
D_S
DS和
D
T
D_T
DT来自同一实例空间
X
\mathcal{X}
X,但具有不同的分布;训练集包含
D
S
D_S
DS、
D
T
D_T
DT;
D
T
D_T
DT与测试集的分布相同;本文中,有
0
<
n
≪
m
\bold{0 < n \ll m}
0<n≪m;疑惑:如何划定
D
S
D_S
DS、
D
T
D_T
DT)
1:
D
′
=
D
D' =D
D′=D、
∀
w
i
=
1
\forall w_i = 1
∀wi=1
2:for
t
=
1
t = 1
t=1 to
T
T
T do
3:
D
′
=
WR
(
D
S
)
+
D
T
D' = \text{WR} (D_S) + D_T
D′=WR(DS)+DT
4: 模型
h
t
=
BL
(
D
′
)
h_t = \text{BL} (D')
ht=BL(D′)
5: 计算
D
T
D_T
DT上的预测误差
ε
t
=
∑
i
=
n
+
1
n
+
m
w
i
t
∣
h
t
(
x
i
)
−
y
i
∣
∑
i
=
n
+
1
n
+
m
w
i
t
\varepsilon_{t}=\sum_{i=n+1}^{n+m} \frac{w_{i}^t\left|h_{t}\left(x_{i}\right)-y_{i}\right|}{\sum_{i=n+1}^{n+m} w_{i}^{t}}
εt=∑i=n+1n+m∑i=n+1n+mwitwit∣ht(xi)−yi∣
6:
t
t
t++
7: if
ε
t
>
0.5
or
t
=
T
\varepsilon_t > 0.5 \text{ or } t = T
εt>0.5 or t=T then
8: 前往步骤5
9: else
10: 设置
β
t
=
ε
t
1
−
ε
t
\beta_t = \frac{\varepsilon_t}{1 - \varepsilon_t }
βt=1−εtεt、
β
=
1
1
+
2
ln
n
m
+
n
\beta = \frac{1}{1 + \sqrt{2\ln \frac{n}{m + n}}}
β=1+2lnm+nn1
11: end if
12: 更新权重
w
i
t
+
1
=
{
w
i
t
β
∣
h
t
(
x
i
)
−
c
(
x
i
)
∣
,
1
≤
i
≤
n
w
i
t
β
t
−
∣
h
t
(
x
i
)
−
c
(
x
i
)
∣
,
n
+
1
≤
i
≤
m
w_{i}^{t+1}=\left\{\begin{array}{c}w_{i}^{t} \beta^{\left|h_{t}\left(x_{i}\right)-c\left(x_{i}\right)\right|}, 1 \leq i \leq n \\ w_{i}^{t} \beta_{t}^{-\left|h_{t}\left(x_{i}\right)-c\left(x_{i}\right)\right|}, n+1 \leq i \leq m\end{array}\right.
wit+1={witβ∣ht(xi)−c(xi)∣,1≤i≤nwitβt−∣ht(xi)−c(xi)∣,n+1≤i≤m
13:end for
输出:
H
∗
(
x
)
=
argmax
y
∈
Y
∑
t
:
h
t
(
x
)
=
y
i
log
1
β
H^{*}(x)=\operatorname{argmax}_{y \in Y} \sum_{t: h_{t}(x)=y_{i}} \log \frac{1}{\beta}
H∗(x)=argmaxy∈Y∑t:ht(x)=yilogβ1
2 集成迁移学习
解决:如何划定 D S D_S DS、 D T D_T DT
2.1 Bagging-Based
步骤如下:
1)划分源数据集为多个子集,并添加目标数据到每个子集;
2)基于投票为目标数据中的未标记数据标注;
3)多次迭代,获得多个分类器。
what???
2.2 MultiBoosting-Based