KDD2018,作者:Sheng-Jun Huang, Jia-Wei Zhao, Zhao-Yang Liu
将论文中的主要算法流程翻译过来,方便以后使用
注:这不是标准的算法流程,为了方便,将算法中的公式直接写入到流程中了。
ADMA算法流程:
输入:
UUU: 实例nun_unu的无标签数据集
M0M^0M0:预训练模型
AAA:特征训练的初始化层的层号
BBB:特征训练的最终层的层号
ZZZ:在原任务中用来训练 模型 M0M^0M0的数据集
初始化:
找到数据集ZZZ中kkk类的每一类的中心C=c1,...,ckC={c_1,...,c_k}C=c1,...,ck ;
得到ckAc^A_kckA和ckBc^B_kckB:在层AAA和BBB时ckc_kck 的输出
根据等式计算 SCAS^A_CSCA 和SCBS^B_CSCB的值,公式如下:
SCA=[Sc1ASc2A...SckA]=[∥c1A−c1A∥2∥c2A−c1A∥2...∥cKA−c1A∥2∥c1A−c2A∥2∥c2A−c2A∥2...∥cKA−c2A∥2............∥c1A−cKA∥2∥c2A−cKA∥2...∥cKA−cKA∥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⎦⎥⎥⎥⎤
计算 SA→B=SCA−SCBS^{A\rightarrow B}=S^A_C-S^B_CSA→B=SCA−SCB
重复:
Foreachinstancex∈UFor \quad each \quad instance \quad x \in UForeachinstancex∈U
\quad 得到xkAx^A_kxkA和xkBx^B_kxkB的值:即xxx在AAA和BBB层的输出
\quad根据公式计算SxAS^A_xSxA和SxBS^B_xSxB的值,公式如下:
sxA=[∥x−c1A∥2∥x−c2A∥2...∥x−cKA∥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 计算SxA→B=SxA−SxBS^{A\rightarrow B}_x=S^A_x-S^B_xSxA→B=SxA−SxB
\quad根据加权和SCA→BS^{A\rightarrow B}_CSCA→B计算S^xA→B\hat{S}^{A\rightarrow B}_xS^xA→B
\quad计算样本独特性Distinctiveness(x)=1−τ(SxA→B,S^xA→B)2Distinctiveness(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根据公式计算样本的不确定性,(信息熵)公式如下:
Uncertainty(x)=−∑K′=1K′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′))
其中,MMM是当前的模型,p(M(x)=k′)p\left ( M\left ( x \right )=k^{'} \right )p(M(x)=k′)是xxx基于模型MMM预测的属于类别k′k^{'}k′的可能性
\quad根据公式计算评判的标准分数,公式如下:
score(x)=(1−λ⋅t)⋅distinctiveness(x)+λ⋅t⋅uncertainty(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)
其中,ttt是迭代次数
EndforEnd\quad forEndfor
从UUU 中选择具有最大分数的一批数据QQQ
查询QQQ的标签,并且将QQQ从UUU中移除
使用已经查询到标签的数据微调模型Mt−1M^{t-1}Mt−1 得到模型MtM^{t}Mt
直到达到查询预算(query budget)或者期望效果(expected performance)
注:计算 S^xA→B\hat{S}^{A\rightarrow B}_xS^xA→B的公式:
SckA→B=SckA−SckBS^{A\rightarrow B}_{c_k}=S^{A}_{c_k}-S^{ B}_{c_k}SckA→B=SckA−SckB
我们尝试通过x线性特征联合
S^xA→B=∑k=1Kαk(x)⋅SckA→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(M0(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 发布