mixupとは?入力と正解ラベルを一緒に混ぜ、分類モデルの過学習を抑える技術

mixupは、2つの入力と正解ラベルを同じ比率で混ぜて学習するデータ拡張です。補間とソフトラベル、混合比の選び方、画像・音声分類の実験結果から、専用モデルの開発への応用と導入時の注意点を解説します。

参考文献

mixup: Beyond Empirical Risk Minimization

Hongyi Zhang, Moustapha Cisse, Yann N. Dauphin, David Lopez-Paz

論文を見る

今回の論文

今回取り上げるのは、Hongyi Zhang、Moustapha Cisse、Yann N. Dauphin、David Lopez-Pazによる「mixup: Beyond Empirical Risk Minimization」です。2017年10月25日にarXivで初公開され、ICLR 2018で発表されました。公開元はarXiv、研究分野は教師あり学習、データ拡張、正則化です。論文の書誌情報と本文へのリンクから確認できます。以下では2018年4月27日改訂のv2を参照します。

選んだ理由は、モデルを大きくする代わりに「どんな入力と正解の組を学ばせるか」を変える、実装しやすい発想だからです。画像だけでなく音声分類にも実験があり、小さな専用モデルを改善する際の比較候補になります。

どんな技術か

mixupは、2つの学習データを混ぜ、その正解ラベルも同じ比率で混ぜて学習する技術です。画像分類なら、画像Aを70%、画像Bを30%の割合で重ねた入力に対し、正解も「Aのクラスへ0.7、Bのクラスへ0.3」とします。

例えば、猫画像と犬画像を混ぜた場合、どちらか一方だけを正解にしません。混合の度合いに応じて予測も変わるように学習させます。これは説明用の例で、混合比を常に70対30に固定する方式ではありません。

このときの混合画像が、現実に存在する「猫70%・犬30%の物体」を表す必要はありません。狙いは、学習例の間にある入力でも予測が極端に変化しにくいよう、モデルへ制約を与えることです。画像合成サービスではなく、分類器などの学習手順を変える方法です。原論文2節

課題

容量の大きなニューラルネットワークは、学習例をよく覚えられます。しかし、学習に使った点で正しく答えられるだけでは、その周囲でも安定した予測ができるとは限りません。少し違う撮影条件で誤ったり、誤ラベルまで記憶したりすることがあります。

左右反転や切り出しなどの通常のデータ拡張は、入力を変えても元のクラスを維持するという知識を使います。画像なら有効な変換でも、データの種類によって設計が変わります。また、異なるクラスの例と例の間で、どう予測すべきかまでは直接指定しません。

mixupは、その間にも学習信号を置きます。「入力を線形に混ぜたら、正解も同じように混ぜる」という仮定により、有限の学習例だけへ過度に合わせるのを抑えようとします。

実際の開発なら、商品や部品の画像分類で、学習時の精度に対して新規撮影画像の精度が伸びない場面が候補です。ただし、必要なクラスの画像がない問題や、評価データへの漏洩まで解消する技術ではありません。

用語解説

経験リスク最小化(ERM)
手元の学習例に対する損失の平均を小さくする原則です。mixupは、元の例だけでなく、入力とラベルを混ぜた仮想例でも損失を小さくすることで、学習する範囲を広げます。
線形補間・凸結合
2つの値を、合計1となる非負の重みで混ぜる操作です。mixupでは入力だけでなくラベルにも同じ重みを使う点が重要です。範囲の外へ延ばす外挿とは異なります。
one-hotラベルとソフトラベル
one-hotラベルは正解クラスだけが1、残りが0のベクトルです。2つを混ぜると、異なるクラスに0.7と0.3のような値を持つソフトラベルになります。クラス番号そのものを平均するわけではありません。
ベータ分布
0から1の間の値を生成する確率分布です。mixupは対称なBeta(alpha, alpha)から混合比を選びます。alphaは固定の混合比ではなく、どの程度強く混ぜる値が出やすいかを調整します。
正則化と汎化
正則化は、学習データへの合わせ方に制約を与え、未知データでの性能である汎化を改善しようとする工夫です。mixupでは、例の間で予測も滑らかに変わることを促します。ネットワーク全体を線形モデルへ置き換える意味ではありません。

技術の仕組み

入力とラベルを、必ず同じ比率で補間します

2つの学習例を(x_i, y_i)、(x_j, y_j)とすると、仮想例は次の式で作ります。yは分類の場合、one-hotベクトルです。

lambda ~ Beta(alpha, alpha)
x_mix = lambda × x_i + (1 - lambda) × x_j
y_mix = lambda × y_i + (1 - lambda) × y_j

画像なら、同じ位置の画素同士を混ぜます。ラベルが猫=(1, 0, 0)、犬=(0, 1, 0)、lambda=0.7なら、正解は(0.7, 0.3, 0)です。「クラス番号0と1を混ぜて0.3という新しいクラスを作る」のではありません。

この仮定は、混合画像の意味を厳密に記述するものではなく、モデルへ与える学習上の方針です。混合比に応じた出力を促しますが、学習後のすべての入力で厳密な線形関係が成立する保証はありません。

混合した入力に、2つの正解から損失を与えます

分類の交差エントロピーなら、ソフトラベルへの損失は次のようにも計算できます。

p = model(x_mix) が出すクラス確率
loss = lambda × CE(p, y_i) + (1 - lambda) × CE(p, y_j)

重要なのは、両方の損失が同じ混合入力x_mixの予測を使うことです。元の画像を別々に推論して損失を平均する処理とは違います。交差エントロピーが教師ラベルに対して線形であるため、この重み付き計算はソフトラベルを直接使う計算と一致します。実装では通常、確率を自前でlogへ通すより、logitから安定に計算する損失関数を使います。

学習の流れは、ミニバッチを取り出し、順番をランダムに並べ替えてペアを作り、混合入力を一度モデルへ通し、損失から通常どおり逆伝播する形です。同じバッチを使い回せるため、独立した2系統のデータ読み込みは必須ではありません。原論文2節・図1

alphaで、混ぜ方の強さを変えます

alphaが1なら混合比は一様分布です。0より大きく1未満なら0や1に近い値が出やすく、多くの例はどちらか片方に近くなります。alphaが大きいと0.5付近へ集まり、半分ずつに近い混合が増えます。alphaを0へ近づける極限では、通常のERMへ近づきます。

強く混ぜればよいとは限りません。原論文のImageNet実験では大きなalphaで学習不足が生じています。また、ラベルだけを一定のルールで薄めるlabel smoothingとは異なり、mixupは実際に混ぜた相手のクラスと混合比を教師信号へ反映します。原論文3.1節・4節

推論時は通常のモデルを使います

モデルに専用の新しい層を追加する手法ではありません。学習時の入力と教師信号を変え、推論時には混ぜていない通常の入力を1つのモデルで処理します。mixup自体のために、別モデルや複数回の推論を配備する必要はありません。

実験と結果

CIFARでは、同じ構造の通常学習より誤りが減りました

原論文は、CIFAR-10とCIFAR-100で通常のERMとmixupを比較しています。200エポック、バッチサイズ128、mixupのalpha=1、weight decayは0.0001、dropoutなしの設定です。図3から一部を抜き出します。値はテスト誤り率で、小さいほど良好です。

データセットモデルERMmixup
CIFAR-10PreAct ResNet-185.6%4.2%
CIFAR-10WideResNet-28-103.8%2.7%
CIFAR-100PreAct ResNet-1825.6%21.1%
CIFAR-100WideResNet-28-1019.4%17.5%

CIFAR-100のPreAct ResNet-18では4.5パーセントポイントの改善です。これはラベル付き学習データを使う教師あり分類で、未ラベルデータを追加して得た結果ではありません。また、この図の値に複数試行の誤差範囲は示されていないため、小さな差まで安定して再現すると判断するには追加検証が必要です。原論文3.2節・図3

ImageNetでは、長い学習でも改善が見られました

ImageNet-2012の表1では、ResNet-50をともに200エポック学習した比較で、Top-1誤り率が23.6%から22.1%、Top-5誤り率が7.0%から6.1%へ下がっています。mixupのalphaは0.2です。評価は224×224の中央切り出しを1回使い、学習時には通常の切り出しや反転なども併用しています。

ResNet-101の同じ200エポック比較では、Top-1誤り率が22.0%から20.8%へ改善しました。CIFARのalpha=1をそのまま移した結果ではなく、データやモデル規模に合わせて強度を選んでいます。通常の拡張をすべてmixupへ置き換えた評価でもありません。原論文3.1節・表1

音声では、モデルによって逆効果にもなりました

Google commandsの約1秒の音声を30クラスへ分類する実験では、正規化したスペクトログラムを混ぜています。30エポック学習し、mixup側は最初の5エポックを通常データで学習する準備期間にしています。文章全体の文字起こし精度を測った実験ではありません。

VGG-11ではテスト誤り率がERMの4.6%から、alpha=0.2のmixupで3.4%へ改善しました。一方、LeNetでは10.3%から11.3%へ悪化しています。大きいモデルでよかった設定が、より小さいモデルでも有効とは限らないことがわかります。原論文3.3節・図4

誤ラベルへの耐性は、修正能力とは異なります

CIFAR-10の学習ラベルの20%をランダムなラベルへ置き換えた実験では、200エポック終了時のテスト誤り率はERMが16.6%、mixupのalpha=8が6.4%でした。テストラベルは正しい状態です。これは学習途中の最良値ではなく、最終時点の値を比べています。

ただし、表2は候補設定から選んだ結果で、すべてのラベルノイズに通用する固定設定を示すものではありません。業務で生じる系統的な取り違えや、未知クラスの混入まで解決したとも言えません。原論文3.4節・表2

何に使える?

以下は、仕組みと実験から考えられる応用案です。原論文が各業務の費用や精度を検証したものではありません。

商品・部品画像の分類器を改善する

自社で学習する画像分類器に、通常のデータ拡張と比較する形で導入できます。入力の作り方を変更するため、推論用モデルの構造やAPIを保ったまま改善を試しやすい点が利点です。

一方、微細な傷や印字の有無が分類を決める場合、混合によって重要な信号が薄くなる可能性があります。商品カテゴリの正解率だけで採用せず、細部に依存するクラスの見逃しも確認する必要があります。

音声コマンドや音の種類を分類する

機器操作の短い音声や、録音を種類別に整理する分類器が候補になります。スペクトログラムを同じ形へそろえて混ぜる考え方は、音声の分類入力にも適用できます。

ただし、2種類の音声が同時に存在することと、単一ラベルの混合比を正解にすることは同じではありません。複数の音を個別に検出したいなら、マルチラベルの教師信号と評価設計を別に検討します。小さなモデルで悪化した結果もあるため、エッジ機器向けほど慎重な比較が必要です。

ラベル監査と併用して、誤記憶を抑える

人手で分類した画像には入力ミスが含まれます。監査で誤りを直しながら、mixupを使った学習も比較する設計が考えられます。個々の例をそのまま記憶しにくくすることで、残った誤ラベルの影響を抑えられる可能性があります。

ただし、mixupは「どのラベルが間違っているか」を返しません。正しい評価セットを確保し、監査と学習方法の効果を分けて測る必要があります。

開発や事業へのヒント

小さく始めるなら、学習ループの一か所を変えます

自分で重みを学習できる分類器なら、データ分割とモデルを固定し、通常学習とmixupを比較できます。最初は通常学習に加え、例えばalpha=0.2と1を候補にします。これらは原論文で使われた値を比較の出発点にする案であり、業務データの推奨値ではありません。

検証データで強度や学習期間を選び、最終テストは設定を固定してから実行します。同じ製品の連写や同じ話者の録音が学習とテストへまたがらないように分割することも、拡張手法の選択と同じくらい重要です。

精度と、自動処理の判断材料を分けます

分類精度が上がっても、出力確率をそのまま「正しい確率」と扱えるとは限りません。自動判定と人手確認の境界に確信度を使う場合は、独立したデータで確率のずれも調べます。Temperature Scalingで分類の確信度を補正する方法は、その後工程を考える材料になります。mixupとの併用効果や校正の保証を、この原論文が示したわけではありません。

学習時の工夫を、推論サービスの改善へつなげます

大量のリクエストへ同じモデルを提供するSaaSでは、推論を重くせずに精度を改善できるかが重要です。mixupは混合処理を学習側へ置くため、モデル構造を変えずに比較できる候補になります。

一方、外部APIへプロンプトを送るだけでは、そのモデルの学習をmixupへ変更できません。適用先は、自社で学習する画像・音声分類などの部品です。LLMに2つの文章を渡して回答を混ぜさせることとも異なります。

限界

第一に、線形補間が有効な学習上の仮定になるかはデータ依存です。画像の混合は自然な写真ではなく、表データのカテゴリ番号や文章のトークンIDを数値として平均しても、有効な入力にはなりません。離散入力、物体の位置、画素ごとの正解などを扱う課題では、入力と教師信号の設計を見直す必要があります。原論文も構造化予測への適用を未解決の方向として挙げています。

第二に、正則化が強すぎると学習不足になります。alphaだけでなく、モデルの容量、学習期間、weight decayなどとの組み合わせに左右されます。音声のLeNetのように、mixupで悪化した条件もあります。

第三に、計算費用はゼロではありません。混合テンソルの生成や並べ替え、転送に処理とメモリを使います。ただし標準的な実装では、混合済みの同じバッチサイズを1回モデルへ通せるため、2枚を混ぜるから順伝播・逆伝播も必ず2倍になるわけではありません。追加費用は実装と装置で測ります。

第四に、頑健性の改善を安全性の保証にはできません。原論文の敵対的入力の評価でも、モデル自身の勾配を使う反復攻撃の条件では、mixupのTop-1誤り率は99.6%でした。mixupだけで意図的な入力改変に耐えられるという結果ではありません。原論文3.5節・表3

最後に、原論文の誤り率が、そのまま現在の事前学習モデルや自社データへ再現するとは限りません。複数の乱数、クラス別性能、入力条件別の失敗、学習時間まで含めて検証する必要があります。

よくある質問

Q. 画像を混ぜるだけでよいですか?

A. 異なるクラスを混ぜる標準のmixupでは、正解も同じ比率で混ぜます。画像だけを混ぜて片方を100%正解にすると、入力に応じた補間という設計が変わります。クラス番号ではなく、one-hotラベルか、それと等価な重み付き交差エントロピーを使います。

Q. alpha=0.2なら、常に20%と80%で混ぜますか?

A. いいえ。alphaはBeta(alpha, alpha)の形を決めます。実際の混合比lambdaはそこから乱数で選びます。alpha=0.2では片方に近い混合が出やすくなりますが、毎回同じ比率にはなりません。

Q. 推論でも2枚の画像が必要ですか?

A. 必要ありません。混合は学習時の操作で、推論時には通常の1枚を入力します。モデル構造が同じなら、mixupのための追加ヘッドや別モデルも不要です。

Q. ラベルが少なくても、mixupで枚数不足を補えますか?

A. 既存のラベル付き例から仮想例を作れますが、新しい種類の物体や撮影条件を収集する代わりにはなりません。この記事のCIFAR結果は、極端に少ないラベルでの評価ではありません。代表例の不足と、過学習を抑える工夫は分けて考えてください。

Q. label smoothingと同じですか?

A. どちらも正解を0か1だけに固定しない点は似ています。mixupは入力自体も混ぜ、その相手のラベルへ同じ比率で重みを配ります。入力を変えず、正解ラベルを一定の分布へ近づけるlabel smoothingとは、入力と教師信号の関係が異なります。

今日の学び

この論文は、学習例を覚えられても、例の間や未知データで予測が安定するとは限らない課題を扱いました。mixupは、入力とラベルを同じ比率で混ぜ、補間した仮想例でも学習することで、その振る舞いを制約します。

得られるヒントは、モデル構造だけでなく、学習させる入力と正解の組み方にも改善余地があることです。小さな学習ループの変更から比較を始められますが、混合の強度、データの意味、モデルの容量に合わせて効果を測る必要があります。