データ拡張は効果絶大ですが、「どの処理を、どの強さで、いくつ組み合わせるか」を人手で調整するのは大変です。この選択を驚くほどシンプルに自動化したのがRandAugmentです。この記事では、前身のAutoAugmentとの対比でその仕組みを解説します。
📖 ひと言でいうと
RandAugmentとは、回転・色調変更など多数のデータ拡張処理の中から、画像ごとにランダムにいくつかを選んで適用する自動データ拡張手法です。調整すべき設定は「適用する処理の個数N」と「処理の強さM」のわずか2つで、複雑な探索なしに高い効果を得られます。
料理にたとえるなら、従来の自動手法(AutoAugment)は「最高のスパイス配合を何千回も試作して探すレシピ開発」でした。RandAugmentは「スパイス棚から毎回ランダムにN種類を取り、辛さはつまみMで一括調整する」方式です。厳密には完全な無作為ではなく、あらかじめ用意した変換の候補集合から一様ランダムに選ぶ、と整理できます。
🖼 1枚でわかるRandAugment
📘 公式テキストの説明
RandAugument は本書の章節記事では正式な定義段落が用意されていません。以下は、シラバスの位置づけと関連用語から再構成した補足解説です。
RandAugmentは、G検定シラバスの「データ拡張」の節で、Contrast・Crop・Cutout・Mixupなどの個別手法と並んで挙げられるキーワードです。公式テキストでは、データ拡張手法が多様化する中で「どのような拡張処理をどの程度行うべきか」の決定を自動化する流れの1つとして紹介されています。個別の拡張手法とは階層が異なり、「拡張手法の選び方・組み合わせ方」を扱う枠組みである、という位置づけを押さえておきましょう。
🔍 しっかり理解する
背景 — AutoAugmentの「探索コスト問題」
データ拡張は、処理の種類・強さ・組み合わせ次第で効果が大きく変わります。これを自動で最適化しようとしたのがAutoAugmentで、強化学習を使って「最適な拡張ポリシー」を探索し、人手調整を上回る精度を達成しました。
しかしAutoAugmentには、ポリシー探索のために膨大な回数の学習を繰り返す必要があり、計算コストが非常に大きいという実用上の壁がありました。また、探索は小さな代理タスクで行うため、見つけたポリシーが本番のモデルやデータ規模に最適とは限らないという課題も指摘されていました。
解決策 — 探索をやめてランダムに選ぶ
RandAugmentの答えは大胆で、「高価な探索そのものをやめる」ことでした。回転、平行移動、コントラスト調整、ポスタリゼーションなど十数種類の変換候補をあらかじめ用意し、そこから画像ごとに一様ランダムにN個を選んで順に適用します。各変換の強さは、すべての変換で共通の1つの値Mで一括指定します。
調整対象がNとMの2つだけなら、単純なグリッドサーチで十分に良い設定を見つけられます。この簡略化にもかかわらず、AutoAugmentと同等以上の精度が得られることが示され、「凝った探索をしなくても、ランダムで十分効く」という発見自体が大きなインパクトを持ちました。
もう1つの利点は、探索を本番と同じ条件で行える点です。AutoAugmentは計算コストの都合で小さな代理タスク上で探索したポリシーを本番に流用しますが、最適な拡張の強さは本来、モデルの大きさやデータセットの規模によって変わります。RandAugmentならNとMを本番のモデル・データで直接調整できるため、この「条件のずれ」が生じません。
AutoAugmentとの対比で覚える
- 強化学習で最適な拡張ポリシーを「探索」
- 探索に膨大な計算コストがかかる
- 小さな代理タスクで探索したポリシーを流用
- 探索せずランダム選択に置き換え
- ハイパーパラメータはNとMの2つだけ
- 本番のモデル・データで直接N・Mを調整可能
💡 具体例で考える
画像分類モデルの学習でN=2、M=9と設定したとします。ある画像には「回転→コントラスト調整」、次の画像には「せん断→明度調整」というように、毎回異なる2種類の変換が強さ9で適用されます。エポックを重ねるほど同じ画像から多彩なバリエーションが生まれ、モデルは特定の見え方に依存しない頑健な特徴を学習します。
もし精度が伸び悩んだら、試すのは「Nを1〜3で振る」「Mを上下させる」程度です。AutoAugmentのようにポリシー探索用の学習を何度も回す必要がないため、大規模データセットや大きなモデルにもそのまま適用しやすいのが実務上の魅力です。
⚠️ よくある誤解・紛らわしい用語
- 「完全にでたらめな加工」ではない — ランダムなのは候補集合からの「選択」であり、変換の種類は事前に設計され、強さはMで統制されています。無秩序にノイズを加える手法ではありません。
- AutoAugmentとの違い — AutoAugmentは最適ポリシーを学習(探索)で求め、RandAugmentは探索を省いてランダム選択+2パラメータに簡略化した後継的手法です。「探索の有無」が最大の対比点です。
- RotateやContrastと同列ではない — それらは個々の拡張処理、RandAugmentはそれらを「どう組み合わせて使うか」を決める上位の枠組みです。階層の違いに注意しましょう。
- 表記ゆれ — シラバスや教材では「RandAugument」と表記されることがありますが、原論文の手法名は「RandAugment」です。同じものを指すと考えて差し支えありません。
📝 試験でのポイント
- 「データ拡張の種類や強さの決定を自動化する手法はどれか」という形で、個別手法(Cutout・Mixupなど)と並べて出題されることが想定されます。
- 「ハイパーパラメータが適用数Nと強度Mの2つに削減されている」という特徴は、RandAugmentを識別する決め手になります。
- AutoAugmentとの対比(探索あり/なし、計算コスト大/小)を問う正誤問題に備えましょう。
- 個別の変換手法と「組み合わせを決める枠組み」という階層の違いを突く選択肢に注意してください。
📚 まとめ
- RandAugmentは、候補の変換群から画像ごとにN個をランダムに選び、共通の強度Mで適用する自動データ拡張手法です。
- 強化学習による高コストな探索を行うAutoAugmentを簡略化し、同等以上の効果を2つのハイパーパラメータだけで実現しました。
- 個々の拡張手法ではなく「拡張の使い方」を決める枠組みである点が、同じ節の他キーワードとの違いです。
- 試験では「N・Mの2パラメータ」「探索不要」というキーワードでRandAugmentを見分けましょう。
