Cost-effective training of deep CNNs with active model adaptation

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]=c1Ac1A2c1Ac2A2...c1AcKA2c2Ac1A2c2Ac2A2...c2AcKA2............cKAc1A2cKAc2A2...cKAcKA2
计算 S A → B = S C A − S C B S^{A\rightarrow B}=S^A_C-S^B_C SAB=SCASCB
重复:
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 ForeachinstancexU
\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=xc1A2xc2A2...xcKA2
\quad 计算 S x A → B = S x A − S x B S^{A\rightarrow B}_x=S^A_x-S^B_x SxAB=SxASxB
\quad 根据加权和 S C A → B S^{A\rightarrow B}_C SCAB计算 S ^ x A → B \hat{S}^{A\rightarrow B}_x S^xAB
\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τ(SxAB,S^xAB)
\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=1Kp(M(x)=k)(1p(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)+λtuncertainty(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} Mt1 得到模型 M t M^{t} Mt
直到达到查询预算(query budget)或者期望效果(expected performance)
注:计算 S ^ x A → B \hat{S}^{A\rightarrow B}_x S^xAB的公式:
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} SckAB=SckASckB
我们尝试通过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^xAB=k=1Kαk(x)SckAB
α 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)

你可能感兴趣的:(增量学习,主动学习)