KDD2018,作者:Sheng-Jun Huang, Jia-Wei Zhao, Zhao-Yang Liu
将论文中的主要算法流程翻译过来,方便以后使用
注:这不是标准的算法流程,为了方便,将算法中的公式直接写入到流程中了。
ADMA算法流程:
输入:
U
U
U: 实例
n
u
n_u
nu的无标签数据集
M
0
M^0
M0:预训练模型
A
A
A:特征训练的初始化层的层号
B
B
B:特征训练的最终层的层号
Z
Z
Z:在原任务中用来训练 模型
M
0
M^0
M0的数据集
初始化:
找到数据集
Z
Z
Z中
k
k
k类的每一类的中心
C
=
c
1
,
.
.
.
,
c
k
C={c_1,...,c_k}
C=c1,...,ck ;
得到
c
k
A
c^A_k
ckA和
c
k
B
c^B_k
ckB:在层
A
A
A和
B
B
B时
c
k
c_k
ck 的输出
根据等式计算
S
C
A
S^A_C
SCA 和
S
C
B
S^B_C
SCB的值,公式如下:
S
C
A
=
[
S
c
1
A
S
c
2
A
.
.
.
S
c
k
A
]
=
[
∥
c
1
A
−
c
1
A
∥
2
∥
c
2
A
−
c
1
A
∥
2
.
.
.
∥
c
K
A
−
c
1
A
∥
2
∥
c
1
A
−
c
2
A
∥
2
∥
c
2
A
−
c
2
A
∥
2
.
.
.
∥
c
K
A
−
c
2
A
∥
2
.
.
.
.
.
.
.
.
.
.
.
.
∥
c
1
A
−
c
K
A
∥
2
∥
c
2
A
−
c
K
A
∥
2
.
.
.
∥
c
K
A
−
c
K
A
∥
2
]
S^A_C=\begin{bmatrix} S^A_{c_1} & S^A_{c_2} & ... & S^A_{c_k} \end{bmatrix} =\begin{bmatrix} \begin{Vmatrix} c^A_1-c^A_1 \end{Vmatrix}^2 & \begin{Vmatrix} c^A_2-c^A_1 \end{Vmatrix}^2& ... &\begin{Vmatrix} c^A_K-c^A_1 \end{Vmatrix} ^2\\ \begin{Vmatrix} c^A_1-c^A_2 \end{Vmatrix} ^2& \begin{Vmatrix} c^A_2-c^A_2 \end{Vmatrix} ^2& ... & \begin{Vmatrix} c^A_K-c^A_2 \end{Vmatrix} ^2\\ ... &... & ... & ...\\ \begin{Vmatrix} c^A_1-c^A_K \end{Vmatrix} ^2& \begin{Vmatrix} c^A_2-c^A_K \end{Vmatrix}^2 & ... & \begin{Vmatrix} c^A_K-c^A_K \end{Vmatrix}^2 \end{bmatrix}
SCA=[Sc1ASc2A...SckA]=⎣⎢⎢⎢⎡∥∥c1A−c1A∥∥2∥∥c1A−c2A∥∥2...∥∥c1A−cKA∥∥2∥∥c2A−c1A∥∥2∥∥c2A−c2A∥∥2...∥∥c2A−cKA∥∥2............∥∥cKA−c1A∥∥2∥∥cKA−c2A∥∥2...∥∥cKA−cKA∥∥2⎦⎥⎥⎥⎤
计算
S
A
→
B
=
S
C
A
−
S
C
B
S^{A\rightarrow B}=S^A_C-S^B_C
SA→B=SCA−SCB
重复:
F
o
r
e
a
c
h
i
n
s
t
a
n
c
e
x
∈
U
For \quad each \quad instance \quad x \in U
Foreachinstancex∈U
\quad
得到
x
k
A
x^A_k
xkA和
x
k
B
x^B_k
xkB的值:即
x
x
x在
A
A
A和
B
B
B层的输出
\quad
根据公式计算
S
x
A
S^A_x
SxA和
S
x
B
S^B_x
SxB的值,公式如下:
s
x
A
=
[
∥
x
−
c
1
A
∥
2
∥
x
−
c
2
A
∥
2
.
.
.
∥
x
−
c
K
A
∥
2
]
s^A_x=\begin{bmatrix} \begin{Vmatrix} x-c^A_1 \end{Vmatrix} ^2\\ \begin{Vmatrix} x-c^A_2 \end{Vmatrix} ^2 \\ ... \\ \begin{Vmatrix} x-c^A_K \end{Vmatrix} ^2 \end{bmatrix}
sxA=⎣⎢⎢⎢⎡∥∥x−c1A∥∥2∥∥x−c2A∥∥2...∥∥x−cKA∥∥2⎦⎥⎥⎥⎤
\quad
计算
S
x
A
→
B
=
S
x
A
−
S
x
B
S^{A\rightarrow B}_x=S^A_x-S^B_x
SxA→B=SxA−SxB
\quad
根据加权和
S
C
A
→
B
S^{A\rightarrow B}_C
SCA→B计算
S
^
x
A
→
B
\hat{S}^{A\rightarrow B}_x
S^xA→B
\quad
计算样本独特性
D
i
s
t
i
n
c
t
i
v
e
n
e
s
s
(
x
)
=
1
−
τ
(
S
x
A
→
B
,
S
^
x
A
→
B
)
2
Distinctiveness(x)=\frac{1-\tau \left(S^{A\rightarrow B}_x,\hat{S}^{A\rightarrow B}_x \right)}{2}
Distinctiveness(x)=21−τ(SxA→B,S^xA→B)
\quad
根据公式计算样本的不确定性,(信息熵)公式如下:
U
n
c
e
r
t
a
i
n
t
y
(
x
)
=
−
∑
K
′
=
1
K
′
p
(
M
(
x
)
=
k
′
)
⋅
(
1
−
p
(
M
(
x
)
=
k
′
)
)
Uncertainty(x)=-\sum_{K^{'}=1}^{K^{'}}p\left ( M\left ( x \right )=k^{'} \right )\cdot \left ( 1-p\left ( M\left ( x \right )=k^{'} \right ) \right )
Uncertainty(x)=−∑K′=1K′p(M(x)=k′)⋅(1−p(M(x)=k′))
其中,
M
M
M是当前的模型,
p
(
M
(
x
)
=
k
′
)
p\left ( M\left ( x \right )=k^{'} \right )
p(M(x)=k′)是
x
x
x基于模型
M
M
M预测的属于类别
k
′
k^{'}
k′的可能性
\quad
根据公式计算评判的标准分数,公式如下:
s
c
o
r
e
(
x
)
=
(
1
−
λ
⋅
t
)
⋅
d
i
s
t
i
n
c
t
i
v
e
n
e
s
s
(
x
)
+
λ
⋅
t
⋅
u
n
c
e
r
t
a
i
n
t
y
(
x
)
score(x)=(1-\lambda \cdot t)\cdot distinctiveness(x) +\lambda \cdot t\cdot uncertainty(x)
score(x)=(1−λ⋅t)⋅distinctiveness(x)+λ⋅t⋅uncertainty(x)
其中,
t
t
t是迭代次数
E
n
d
f
o
r
End\quad for
Endfor
从
U
U
U 中选择具有最大分数的一批数据
Q
Q
Q
查询
Q
Q
Q的标签,并且将
Q
Q
Q从
U
U
U中移除
使用已经查询到标签的数据微调模型
M
t
−
1
M^{t-1}
Mt−1 得到模型
M
t
M^{t}
Mt
直到达到查询预算(query budget)或者期望效果(expected performance)
注:计算
S
^
x
A
→
B
\hat{S}^{A\rightarrow B}_x
S^xA→B的公式:
S
c
k
A
→
B
=
S
c
k
A
−
S
c
k
B
S^{A\rightarrow B}_{c_k}=S^{A}_{c_k}-S^{ B}_{c_k}
SckA→B=SckA−SckB
我们尝试通过x线性特征联合
S
^
x
A
→
B
=
∑
k
=
1
K
α
k
(
x
)
⋅
S
c
k
A
→
B
\hat{S}^{A\rightarrow B}_x=\sum_{k=1}^{K}\alpha_k(x)\cdot S^{A\rightarrow B}_{c_k}
S^xA→B=∑k=1Kαk(x)⋅SckA→B
α
k
(
x
)
\alpha_k(x)
αk(x)是第k个中心的权重,就是在原模型上x属于k类的概率
α
k
(
x
)
=
p
(
M
0
(
x
)
=
k
)
\alpha_k(x)=p(M^0(x)=k)
αk(x)=p(M0(x)=k)
Cost-effective training of deep CNNs with active model adaptation
最新推荐文章于 2022-05-23 16:24:21 发布