Mixupは、2つの学習サンプルを同じ係数で線形補間し、ラベルも一緒に混ぜるデータ拡張です。回転や反転が「1枚を別角度から見せる」手法なのに対し、Mixupは存在しない中間例——猫と犬のあいだの半透明画像のようなもの——を学習に入れ、決定境界をなだらかにする——本記事はλの分布より、「なぜ入力とラベルを同時に混ぜるのか」に焦点を当てます。
なぜ混ぜるか
データ拡張は、既存データに変換を加えて多様性を増やし、過学習を抑える手法です(G-266、HQ-0433)。
分類器はクラス境界の近くで過信しやすい——訓練データにない「あいだ」の入力で誤ることがある。Mixupは意図的にあいだの例を作り、モデルに「0か1かだけではない」ソフトな正解を学ばせます。
Mixupの流れ
1ミニバッチ内で、2つのサンプル (x₁, y₁) と (x₂, y₂) を選び、係数 λ(0〜1の乱数)で混ぜます。
混合入力 x̃ = λ·x₁ + (1−λ)·x₂
混合ラベル ỹ = λ·y₁ + (1−λ)·y₂
- λの抽選 — 例:Beta分布からサンプリング(試験では分布名より「同じλで混ぜる」で可)
- 入力の混合 — 画像なら2枚を重ね合わせたような中間画像
- ラベルの混合 — ワンホットなら「70%猫・30%犬」のようなソフトラベル
- 損失 — 混合ラベルに対する通常の損失(交差エントロピー等)を計算
ポイントは入力とラベルを同じλで混ぜること——画像だけ半透明にしてラベルは硬いまま、では教師信号が矛盾します。
他のデータ拡張との違い
| 手法 | 操作 | ラベル |
|---|---|---|
| 回転・反転 | 1枚を幾何変換 | 元ラベルのまま(G-020) |
| 色調変更 | 1枚の見え方を変える | 元ラベルのまま |
| Mixup | 2枚を線形補間 | 2ラベルも補間 |
| Cutout/CutMix | 一部を隠す・貼り付ける | 領域に応じて調整(別手法) |
Mixupは「現実に存在する変形」ではなく仮想の中間点を増やす——データ拡張の一族ですが、設計思想は独特です。
正則化との違い
| 手法 | 何をいじるか | 試験向けの整理 |
|---|---|---|
| Mixup | 学習データ(入力+ラベル) | データ拡張 |
| ドロップアウト | ネットワークの経路 | 正則化(G-132) |
| L1/L2 | 重みへのペナルティ | 正則化(G-170) |
目的はどれも過学習抑制・汎化向上——データ側かモデル側かで分類すると、試験のすり替えに強くなります。Mixupは損失関数の名前でも活性化関数でもありません。
試験で押さえるポイント
- 定義 — 2サンプルとラベルを同じ係数で線形補間するデータ拡張
- 目的 — 多様性向上・過学習抑制・汎化性能向上(G-266)
- 特徴 — 中間例とソフトラベルで境界をならかに
- 対比 — 回転/反転=1枚変形、ドロップアウト=正則化、GAN=生成モデル
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| Mixup=Mixtral | データ拡張 vs MoE型LLM(綴りが近いが無関係) |
| Mixup=ドロップアウト | データ混合 vs ユニット無効化 |
| Mixup=L2正則化 | データ拡張 vs 重みペナルティ |
| Mixup=GAN | 既存2枚の補間 vs 生成器・識別器 |
| Mixup=ラベル削除 | ソフトラベルで教える vs 教師なし化(G-266の誤答B) |
よくある質問
Mixupは何をする手法ですか?
2つの入力データと正解ラベルを、同じ係数λで線形補間して新しい学習例を作るデータ拡張です。画像なら2枚を半透明に重ねたような中間画像と、その両クラスを混ぜたソフトなラベルで学習し、過学習を抑えて汎化を高めることを狙います。
Mixupとデータ拡張は同じですか?
Mixupはデータ拡張の一種です。ただし回転や反転のように1枚を変形するのではなく、2枚のサンプルを混ぜ合わせる点が特徴的です。データ拡張全般の目的である学習データの多様性向上と過学習抑制に寄与します。
Mixupとドロップアウトは同じですか?
同じではありません。Mixupは学習データ側で中間例を作るデータ拡張です。ドロップアウトは学習時に一部のニューロンを無効化する正則化手法です。どちらも汎化に効きますが、データを増やすかネットワークの経路を制限するかで役割が異なります。