tetsuのlog

テツがひとりでに読んだ論文とか行き詰まったところをshareする場

Augmenting Data with Mixup for Sentence Classification: An Empirical Study

お久しぶりです

こんにちは、テツです。 そろそろACLのaccept論文が出ますね、気合いが入ってきました。

今回はCVで良い精度を出してるMixupをNLPタスクに使用した論文を見つけたので、まとめました!!!

Mixupについて軽く触れてから論文の紹介に行こうと思います。

MIxupとは

2つのペアを上手いこと組み合わせて新しいデータセットを作るdata augmentationの手法です。

X_{ij} = \lambda X_i + (1 - \lambda)X_j

y_{ij} = \lambda y_i + (1 - \lambda)y_j

\lambda \in [0;1]はベータ分布から得られる値です。 こんな感じで2つのデータセットを組み合わせ1つのデータセットにします。 この時ラベルも1つではなくなりマルチラベルになります。

Mixupの詳しいことはこちらでご確認ください!!!

qiita.com

それでは論文の紹介です。

Augmenting Data with Mixup for Sentence Classification: An Empirical Study

1.どんなもの?

CVの分野で良い結果を出しているdata augumentation手法であるmixupをNLPのタスクに落とし込み、検証したという論文。

2.先行研究と比べてどこがすごい?

普通の正則化(dropoutやL2など)と比べ過学習を抑えることができる。

3.技術、手法のキモはどこ?

NLPタスクでのmixupにおいて2つの手法の提案

word Mixup

Embedding層により得られた行列B(R^{d \times length})でmixupを行う。 textのは全て固定長にする。(足りないところはゼロパッディング)

sentence Mixup

LSTMやCNNで得られたsentenceの表現をmixupする。 これは固定長じゃなくても良き。

4.どうやって有効だと検証した?

baselineとbaseline+dropout&L2との比較を複数のデータセットで比較した。

dataset

  • TREC
    • 質問のカテゴリ分類
  • MR
  • SST-1
  • SST-2
    • 上のbinary版
  • Subj
    • 件名のクラス分類??

wordMixup, sentenceMixupそれぞれでbaselineよりも良い精度をだした。 どちらが良いかはタスクによる感じ。

baselineと比べlossが上がらず過学習の抑制ができている。 sentenceMixupの方がtrainとvalidの差が少ない。

5.議論はある?

Gloveのpre-trainの学習ありとなし、pre-trainなしの3種で比較した。

pre-trainの学習ありはwordMixupで良い精度出ることがわかった。

まとめ

今回の論文はCVタスクのdata augmentation手法をNLPタスクに落とし込むものでした。 こんな感じでタスク別の手法を持ってこれるのはおもしろいので僕もやっていきたいなとおもいます。 MixupできたならRICAPとかできても良さそうだなあ、、、 RICAPの説明はこちら

qiita.com

論文リンク

Augmenting Data with Mixup for Sentence Classification: An Empirical Study (https://arxiv.org/abs/1905.08941)

mixup: Beyond Empirical Risk Minimization (https://arxiv.org/abs/1710.09412)

Data Augmentation using Random Image Cropping and Patching for Deep CNNs (https://arxiv.org/abs/1811.09030)

Mixupと言ったらにじさんじ

にじさんじ はいいぞ