NAS 学习笔记(十二)- SemiNAS

  |     |   本文总阅读量:

版权声明:本文原创,转载请留意文尾,如有侵权请留言, 谢谢

引言

  本文分享一篇微软 2020 年在 CVPR 上关于 NAS 的论文 [1],文中提出了 SemiNAS 算法,它结合了半监督学习,并且论文中主要利用微软之前提出的 NAO 来结合半监督学习,并且首次把 NAS 应用到 Text To Speech(TTS) 任务上。

Motivation

  我们知道传统的 NAS 方法通常包括一个 controller 和一个 evaluator,其中 controller 负责生成不同的 architecture,然后交由 evaluator 进行评估。evaluator 需要对 architecture 进行训练,然后获得其在验证集上的准确率,并返回给 controller, controller 利用 architecture 及其对应的准确率进行学习,进而生成更好的网络结构。在这一过程里,evaluator 对 architecture 进行评估的过程非常耗时,因为其需要对每个 architecture 进行训练,有的是利用了 weight sharing,有的直接从 scratch 训练,而 controller 的学习又需要尽可能多的 architecture 和准确率数据对作为训练数据,从而使得整个搜索过程中 evaluator 的耗时非常高。SemiNAS 的动机就是为了加速这一过程。

SemiNAS

  SemiNAS 不仅加速 controller 的训练过程,并且同时提升搜索精度。它的思想非常简单,首先随机采样一些 architecture,用较为足够的时间去训练它们,然后通过 evaluator 的得到准确度,一次拿到一条监督样本。然后用这些精确度作为标签的监督样本去训练 controller,接着再采样获得大量无监督数据(只有 architecture 没有对应的准确率),然后用 evaluater 去估计一个准确度,生成新的有标签的样本,这其实也就是一个半监督学习的过程,非常简单。获取无监督数据的过程的开销是非常小的,因为只需要 controller 去随机采样一些 architecture 即可。   所以 SemiNAS 就需要一个额外的性能预测器 \(f_p\),有了这个 \(f_p\) SemiNAS 就可以和多种 NAS 方法相结合,例如基于强化学习的算法(NASNet,ENAS)和基于进化算法的算法(AmoebaNet,SPOS),\(f_p\) 可以用于为生成的候选 architecture 预测准确率。对于基于梯度的算法(Darts,NAO),可以直接用 \(f_p\) 预测的 architecture 的准确率对 architecture 求导,更新 architecture。   论文中作者结合了他们之前提出的 NAO,NAO 的思想也比较简单,主要就包括一个 encoder \(f_e\),一个 predictor \(f_p\) 和一个 decoder \(f_d\),可以看看我之前写的,这里简单提几个公式。首先是 \(f_p\) 的 MSE:

\[ \begin{array}{l} e_{x}=f_{e}(x) \\ \mathcal{L}_{p}=\left(y-f_{p}\left(e_{x}\right)\right)^{2} \end{array} \tag{1} \]

  生成伪标签:

\[ \hat{y}_{i}=f_{p}\left(f_{e}\left(\hat{x}_{i}\right)\right), i=1,2, \ldots, M \tag{2} \]

  训练 controller 的 loss:

\[ \mathcal{L}_{\text {total}}=\lambda \mathcal{L}_{p}+(1-\lambda) \mathcal{L}_{r e c} \tag{3} \]

  利用梯度下降搜索更优的 architecture:

\[ e_{x}^{\prime}=e_{x}+\eta \frac{\partial f_{p}\left(e_{x}\right)}{\partial e_{x}} \tag{4} \]

  算法的伪代码如下:

Conclusion

  SemiNAS 的思想还是非常简单的,特别是结合了 NAO 后,首先用少量有标签的数据训练,然后从搜索空间中采样获得大量无标签的神经网络结构,利用训练好的框架对这些网络结构预测精确率。然后使用原始的有标签的数据和自标注好的无标签数据一起充分训练整个框架。之后按照 NAO 中的方法进行优化,生成更好的网络结构。我也有一个小小的疑问,就是如果引入的无标签数据的标签质量不行的话,不是会引入大量噪声吗,会不会反而拖累 controller 的性能,感觉再引入无标签的数据时还可以作作文章。

Refer

  • [1] R. Luo, X. Tan, R. Wang, T. Qin, E. Chen, and T.-Y. Liu, “Semi-Supervised Neural Architecture Search,” 2020.-Shot NAS with Greedy Supernet,” 2020.

相关内容


坚持原创技术分享,您的支持将鼓励我继续创作,π(3.14)元就够啦!



文章目录
  1. 1. 引言
  2. 2. Motivation
  3. 3. SemiNAS
  4. 4. Conclusion
  5. 5. Refer
  6. 6. 相关内容
您是第 位小伙伴 | 本站总访问量 | 已经写了 680.3k 字啦

载入天数...载入时分秒...