1行定義
Mixupとは、2つの学習データの入力と正解ラベルを同じ比率で混ぜ合わせ、その中間にあたる新しい学習データを作るデータ拡張の手法のことです。
くわしく
Mixupは、2つの学習データをランダムに決めた比率で混ぜて、新しい学習データを作る手法です。2017年に論文が公開され、ICLR 2018で発表されました。画像なら、2枚の写真を半透明にして重ねたような画像ができます。混ぜるのは画像だけではありません。正解ラベルも同じ比率で混ぜるのが特徴です。
作り方
2つの学習データを(x1, y1)と(x2, y2)とします。xは入力、yはワンホットベクトルで表した正解ラベルです。0から1の値をとる比率λを使い、次のように作ります。
- 入力:
x = λ × x1 + (1 − λ) × x2 - ラベル:
y = λ × y1 + (1 − λ) × y2
λは、学習中にベータ分布Beta(α, α)からランダムに選び直します。αは混ぜ方の強さを決めるハイパーパラメータで、小さいほどλが0か1に近くなり、混ぜ方は弱くなります。たとえばλ = 0.7で猫と犬の画像を混ぜると、正解は「猫0.7、犬0.3」です。
なぜ効くのか
通常の学習では、モデルは学習データの点そのものに合わせ込みます。Mixupでは、データとデータの間にも答えを用意します。その結果、データの間で予測がなめらかに変わるようになり、過学習が抑えられます。提案論文では、誤ったラベルの丸暗記が減ることや、敵対的サンプルに強くなることも報告されています。入力をベクトルとして混ぜるだけなので、画像のほかに音声や表形式のデータでも効果が確かめられました。
CutMixとの違い
Mixupの画像は2枚が透けて重なるため、現実にはない不自然な見た目になります。CutMixは、一方の画像の一部を切り取ってもう一方に貼り付け、ラベルを貼った面積の比率で混ぜる方法で、この点を改めました。
覚え方
「全体を薄く重ねるのがMixup、一部を貼り付けるのがCutMix」と区別します。
G検定での出題
出題のされ方
画像全体を重ね合わせ、正解ラベルも同じ比率で混ぜる点が基本です。一部を切り貼りするCutMixや、一部を塗りつぶすCutoutとの違いが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| Mixupこのページの用語 | 2つの学習データの入力と正解ラベルを同じ比率で混ぜ合わせ、その中間にあたる新しい学習データを作るデータ拡張の手法 |
| CutMix | ある画像の一部の長方形を別の画像の同じ位置の部分に置き換え、正解ラベルを貼り付けた面積の比率で混ぜるデータ拡張の手法 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Mixupで混合比率の分布を決めるハイパーパラメータαを大きくしすぎると、混ぜ方が強くなりすぎて、学習データにも十分に合わない未学習の状態になることがある。
答えを見る
答え ◯ 正しい
提案論文では、ImageNetでαを0.1〜0.4にすると効果があり、大きすぎると未学習になったと報告しています。正則化と同じく、強さの調整が必要です。
-
Mixupは画素を混ぜる操作にもとづくため、表形式のデータや音声のデータには使えない。
答えを見る
答え × 誤り
入力をベクトルとして混ぜるだけなので、データの種類を問いません。提案論文でも、画像のほかに音声コマンドや表形式のデータで効果が確かめられています。
-
Mixupで混ぜる2つの学習データは、正解ラベルが同じものどうしに限られる。
答えを見る
答え × 誤り
2つのデータは、クラスを問わずランダムに選びます。提案論文では、同じラベルのデータどうしだけを混ぜても、Mixupによる性能の向上は得られなかったと述べています。