今回の論文
今回取り上げるのは、Google ResearchのKihyuk Sohn、David Berthelot、Chun-Liang Li、Zizhao Zhang、Nicholas Carlini、Ekin D. Cubuk、Alex Kurakin、Han Zhang、Colin Raffelによる「FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence」です。研究分野は半教師あり学習と画像分類です。
2020年のNeurIPSに採択され、arXiv初版は2020年1月21日に公開されています。本記事は2020年11月25日改訂のv2を参照します。公開元はarXivの書誌ページとNeurIPS 2020の論文集です。
選んだ理由は、「画像は集まっているものの、正解を付ける作業が追いつかない」という開発上の問題に、比較的単純な学習ルールで取り組んでいるからです。モデルの予測を教師として使う際に、何を採用し、何を一致させるべきかが具体的に分かります。
どんな技術か
FixMatchは、少量の正解付き画像を足場にして、未ラベル画像からも画像分類モデルを学ばせる手法です。新しい画像モデルの構造そのものではなく、学習データと損失の作り方を提案しています。
例えば、部品写真を種類別に分類したいとします。未ラベルの写真を少しだけ変えてモデルへ入力し、「部品A」と十分に自信を持って予測できた場合、その予測を仮の正解にします。続いて同じ写真を大きく変換し、それでも「部品A」と予測できるように学習します。
この例は仕組みの説明であり、論文が部品分類を実証したものではありません。大切なのは、予測した名前を元画像へ貼り直すだけでなく、見た目が変わっても同じ答えになるよう学ぶことです。実際の正解ラベルによる学習も並行して続けます。
課題
画像分類では、数万枚の写真があっても、すべてに人がラベルを付けられるとは限りません。専門知識が必要な画像では、枚数よりも確認作業がボトルネックになります。少数の正解付き画像だけで学ぶと、特定の背景や撮影条件を覚え込み、別の写真へ一般化しにくくなります。
未ラベル画像へモデルの予測を付ければ、学習データを増やせそうです。しかし、初期モデルの誤りまで正解として再学習すると、誤った分類を強化してしまいます。予測の確信度が低い例を無条件に採用する方法には、この危険があります。
一方、同じ画像を変換して予測を一致させるだけでも不十分です。ラベルを保つ変換を選ぶ必要がありますし、変換が弱すぎれば簡単な一致だけを学んでしまいます。強すぎる変換から最初の仮ラベルを作れば、そもそも教師信号の品質が下がりかねません。
FixMatchは、「仮の正解を作りやすい入力」と「その正解を使って難しい学習を行う入力」を分けます。画像分類を使う業務ツールにとっては、蓄積済みの未整理画像を学習へ組み込む方法として意味があります。ただし、分類したい種類の画像が未ラベル集合にも含まれていることが前提になります。
用語解説
- 半教師あり学習
- 正解付きデータと、正解のないデータを組み合わせる学習です。FixMatchでは、少数の画像ラベルで分類先の意味を与え、未ラベル画像では変換前後の予測を一致させます。ラベルが完全に不要になる方式ではありません。
- 疑似ラベル
- モデルの予測を仮の正解として扱うものです。FixMatchでは最も確率が高いクラスを一つ選ぶハードラベルを使います。人が確認した正解ではないため、採用条件が学習品質を左右します。
- データ拡張とラベル不変性
- 画像を反転・移動・色変換などで変える処理と、その前後で正解クラスが変わらないという性質です。FixMatchは弱い変換で疑似ラベルを作り、強い変換で学習するので、両方で分類の意味を保てることが重要です。
- 一貫性正則化
- 同じ入力の異なる変換に対して、モデルの答えが一致するように促す学習です。FixMatchでは、強い変換後のクラス予測を、弱い変換から作った疑似ラベルへ近づけることで実現します。
- 確信度のしきい値
- 疑似ラベルを採用するための、最大クラス確率の基準です。高くすると低信頼の予測を除きやすい一方、使える未ラベル例が減ります。予測確率0.95は、実際の正解率95%を保証する値ではありません。
技術の仕組み
一つのモデルで、弱い変換と強い変換を処理します
FixMatchの中核では、同じ重みを持つ分類モデルを両方の入力へ使います。別の大きな教師モデルを先に作ることや、疑似ラベルをすべて事前保存する工程は必須ではありません。学習中のモデルから、その時点の疑似ラベルを作ります。
未ラベル画像uに弱い変換を施し、クラス確率qを計算します。最大確率がしきい値tau以上なら、そのクラスを疑似ラベルとして採用します。次に、同じuへ強い変換を施し、予測をそのラベルへ近づけます。
未ラベル画像 u
├─ 弱い変換 → 同じ分類モデル → 確率 q → 最大クラスを仮の正解にする
└─ 強い変換 → 同じ分類モデル → 予測 r → 仮の正解との損失を計算
max(q) が tau 未満なら、この画像の未ラベル損失は 0
疑似ラベルと採用マスクは固定した学習目標として扱います。強い変換側から教師信号を逆に動かすのではなく、そのクラスを予測する側の重みを更新します。未採用の画像も確信度を調べる計算は必要ですが、そのステップでは未ラベル損失に寄与しません。原論文2.2節・式4
正解付き損失と未ラベル損失を足します
正解付き画像では、弱い変換後の予測に通常の交差エントロピーを使います。未ラベル画像では、採用マスクを掛けた交差エントロピーを使います。CEを交差エントロピーとして、式の意味を簡略化すると次のようになります。
正解付き画像数 = B
未ラベル画像数 = mu × B
L_s = 正解付き画像に対するCEの合計 / B
L_u = 採用マスク × CE(疑似ラベル, 強い変換側の予測) の合計 / (mu × B)
L = L_s + lambda_u × L_u
重要なのは、L_uを「採用された件数」で割らないことです。元の未ラベルバッチ全体で割るため、採用数が少ない学習初期は、未ラベル側の影響も自然に小さくなります。採用画像だけの平均に変えると、この性質が変わります。
CIFARなどの標準設定はtau=0.95、mu=7、B=64、lambda_u=1です。1ステップで正解付き64枚、未ラベル448枚を取り、未ラベル側には弱い変換と強い変換の2通りを作ります。したがって入力の延べ枚数は64+448+448=960枚です。これは入力数の計算であり、通常学習に対する実時間の倍率を示すものではありません。
しきい値は固定で、lambda_uも固定です。学習が進んで採用数が増えることが、結果的に未ラベル学習の強さを変えると論文は考察しています。また、実装上はラベル付き集合もラベルを隠して未ラベル集合へ含めています。原論文2.2節・付録B.1
強い変換は「大きければよい」わけではありません
弱い変換には反転と移動を使います。ただし数字画像のSVHNには水平反転を使いません。強い変換にはRandAugmentまたはCTAugmentを使い、さらに画像の一部を隠すCutoutを加えます。RandAugment版をRA、CTAugment版をCTAとして実験しています。
業務への応用では、文字の向き、色、欠けの有無が正解そのものになる場合があります。例えば傷を検出したい画像で傷の部分を隠すと、「変換前と同じ答えを出す」という学習目標が不適切になります。これはFixMatchの構造から導かれる導入上の注意です。
学習にはモーメンタム付きSGD、重み減衰、学習率の減衰も使います。最終評価ではモデル重みの指数移動平均を利用します。単純な損失式だけで性能が決まるわけではありません。推論時には通常の分類モデルとして画像を処理でき、弱い・強い変換の両方を作る学習処理は不要です。原論文2.3〜2.4節
実験と結果
少ないラベルに、未ラベル画像を加える効果を検証しています
論文はCIFAR-10/100、SVHN、STL-10、ImageNetで画像分類を評価しています。中心となるCIFAR-10は10クラスのデータで、40ラベル設定は1クラス4枚、250ラベル設定は1クラス25枚です。40枚だけで学習を完結する実験ではなく、学習集合の未ラベル画像も利用します。
CIFAR-10では約150万パラメータのWide ResNet-28-2を使います。表2の半教師あり手法は、同じコードベースと共通のモデル・学習手順で比較しています。以下は5通りのラベル付きデータ分割における、誤り率の平均±標準偏差です。小さいほど良い値です。
| 手法 | CIFAR-10・40ラベル | CIFAR-10・250ラベル |
|---|---|---|
| 教師ありのみ・CTA | 64.53 ± 0.83% | 41.92 ± 1.17% |
| ReMixMatch | 19.10 ± 9.64% | 5.44 ± 0.05% |
| FixMatch・RA | 13.81 ± 3.37% | 5.07 ± 0.65% |
| FixMatch・CTA | 11.39 ± 3.35% | 5.07 ± 0.33% |
教師ありのみの行は、同じラベル数で強いデータ拡張を使う付録表9から掲載しています。FixMatch・CTAの40ラベルの誤り率11.39%は、正解率へ直すと88.61%です。未ラベル画像を学習に組み込む価値が見えますが、この値を「任意の業務画像でも各クラス4枚で十分」と読むことはできません。原論文の表2・付録表9
変換の組み合わせが重要で、すべての条件で最良ではありません
CIFAR-10の250ラベルを使う単一分割の比較では、標準FixMatchの誤り率4.84%に対し、強い変換をCutoutだけにすると6.15%、Cutoutを外しても6.15%でした。色や幾何変換と、部分的な遮蔽を組み合わせることが、この条件では有効でした。これは5分割平均の5.07%とは別の実験です。原論文5節・表3
一方、CIFAR-100の400ラベル設定ではFixMatch・CTAの誤り率49.95%に対し、ReMixMatchは44.28%で、FixMatchが下回ります。分類先が多い場合やラベルが少ない場合まで、一律に優れるわけではありません。
ImageNetでも、10%のラベルを使うResNet-50の実験でTop-1誤り率28.54 ± 0.52%を報告しています。ただし、こちらはtau=0.7、lambda_u=10など別設定です。小画像実験の標準値をそのまま使った結果ではありません。原論文4.3節・付録C
ごく少数のラベルでは、選んだ画像にも強く依存します
各クラス1枚、合計10ラベルのCIFAR-10実験では、ランダムに作った4集合をそれぞれ4回学習した正解率が48.58〜85.32%、中央値64.28%でした。極端にラベルが少ない条件では、代表例の選び方と学習の乱数によって大きく変わります。
そのため、少数例で成功した1回の学習だけを採用判断に使うのは危険です。実務では複数のラベル選択と乱数で再実行し、失敗しやすいクラスを確認する設計が必要だと考えられます。原論文4.4節
何に使える?
以下は、学習方式から考えられる応用案です。原論文が各業務で効果を検証したものではありません。
蓄積写真を使う、商品・部品の画像分類
商品カテゴリや部品の種類について、各クラスの代表写真にラベルを付け、残りの撮影画像を未ラベル集合へ回す使い方が考えられます。照明や位置が変わっても同じカテゴリになる学習を行えるため、正解付けの手間を抑える候補になります。
ただし、型番の違いが微小な印字にしかない場合、その印字を消す変換は使えません。まず分類に必要な視覚情報を特定することが、モデル選択以上に重要です。
点検写真の整理や、人手確認の前段
「設備全体」「銘板」「配線」のように既知の種類へ写真を整理する前段にも使えそうです。未整理の写真が継続して集まり、少量なら正解を確認できる運用と相性があります。分類結果を、人が確認する画面の並べ替えや担当先の候補提示に利用できます。
正常画像しかない状態で、未知の故障種類まで学べる手法ではありません。故障判定へ広げる場合は、そのクラスの教師信号と評価データが必要です。
データの増加に合わせて、分類モデルを更新する基盤
新しい撮影環境の画像を、既存クラスの未ラベルデータとして再学習に使う設計も考えられます。学習時に追加処理を行い、配備時は通常の分類モデルで済む点は、繰り返し分類する社内ツールに向いています。
ただし、新環境でモデルが自信を持って間違える可能性もあります。環境ごとの小さな正解付き評価集合を維持し、更新前後の性能を比べる必要があります。
開発や事業へのヒント
未ラベル画像を使う前に、軽い基準モデルを作ります
小規模な開発では、まず正解付きデータだけの分類と、既存の画像特徴に軽い分類器を載せる方法を比較するとよいでしょう。後者の仕組みは、DINOv2の凍結特徴を使う分類が参考になります。FixMatchとDINOv2の組み合わせを原論文が検証したわけではなく、開発上の比較候補です。
そこへFixMatchを追加し、同じ評価集合で「未ラベル画像を使うことで何が増えたか」を測ります。ラベル付け時間を減らしても、学習時間や再現確認の負担が増える場合があります。精度と総開発コストを一緒に比べることが重要です。
採用率とクラス別の偏りを観察します
全体の損失だけでは、未ラベル画像が学習へ使われているか分かりません。開発時には、しきい値を超えた割合、疑似ラベルのクラス別件数、確認用画像での疑似ラベルの誤りを記録する方法が考えられます。
あるクラスだけ採用されない場合、例を追加する、変換を見直す、分類の定義を整理するなど、改善先を絞れます。しきい値を下げて件数だけ増やす前に、教師信号の品質を調べるべきです。
評価画像は、ラベルを隠しても学習へ混ぜません
業務への導入では、同じ製品や同じ撮影連写の画像が学習と評価へ分かれると、未知環境への性能を過大評価しかねません。画像を変換する前に、製品個体、撮影日、現場など適切な単位で分離する設計が考えられます。
評価用の画像をラベルだけ隠して未ラベル学習へ混ぜると、未見画像への一般化を測る評価ではなくなります。使える画像が多いほど、どの範囲を学習へ入れたかの記録が大切になります。
限界
高い確信度でも、疑似ラベルが正しいとは限りません。 背景に引っ張られた誤予測を繰り返し学ぶと、誤りを自己強化します。しきい値0.95は、その危険を完全に防ぐ仕組みではありません。
未ラベル画像の分布にも依存します。対象外クラスや特定クラスばかりの集合では、既知クラスへ無理に当てはめたり、偏った教師信号を増やしたりする可能性があります。基本形には、未知クラスを自動発見して分類先を追加する機能はありません。
計算コストも小さくありません。ラベル数が少なくても、未ラベル画像を2通りに変換して処理します。原論文の小画像実験は2の20乗、約105万ステップを使っており、ラベル効率の高さと短時間で学習できることは別です。バッチの構成、画像変換、メモリ使用量も実装上の検討対象になります。原論文4節・付録B
評価条件も限定されています。中心実験は、既知のクラスから少数ラベルを取り出す画像分類です。著しいクラス不均衡、長期的な分布変化、文章や音声への適用を同じ数値で保証しません。画像分類以外へ持ち込むなら、ラベルを保つ変換と学習目標から再設計する必要があります。
また、重み減衰や学習率、乱数、ラベルの選び方に敏感です。著者の公開実装を参照する場合も、RAとCTAの違い、採用マスク、損失の分母、評価時の重みの扱いをそろえなければ、原論文と同じ方式の比較になりません。
よくある質問
Q. 正解ラベルを一つも用意せずに使えますか?
A. 原論文のFixMatchは、正解ラベルで分類の意味を与える半教師あり学習です。未ラベル画像だけで業務カテゴリを決める方式ではありません。ラベルなしで汎用的な画像特徴を学ぶ方式とは役割が異なります。
Q. 各クラス4枚あれば、業務画像でも高精度になりますか?
A. 保証できません。88.61%はCIFAR-10で大量の未ラベル画像も使った結果です。撮影条件、クラスの似方、ラベルの代表性によって変わるため、独立した業務評価集合と複数回の学習で確認する必要があります。
Q. しきい値0.95なら、疑似ラベルの95%は正しいですか?
A. その意味ではありません。0.95はモデルが出す最大クラス確率の採用基準です。実際の正しさとはずれる可能性があるため、人が確認した少数の画像で採用ラベルの誤りを点検します。
Q. 推論時にも、同じ画像を2回処理しますか?
A. 基本の分類には不要です。2通りの変換は学習信号を作るための処理で、学習後は通常の分類モデルとして使えます。推論時に複数の変換を平均する設計を加えるかどうかは、別の選択です。
Q. 未ラベル画像が少なくても、最初に試すべきですか?
A. まず正解付き学習や、公開済み特徴に分類器を付ける方法を基準にすると比較しやすいです。FixMatchは未ラベル集合から変換への頑健性を学ぶため、その量と多様性が乏しい場合の追加価値は、学習コストと合わせて実測する必要があります。
今日の学び
この論文は、正解ラベルを大量に用意できない画像分類の課題を扱いました。弱い変換で作った高信頼の疑似ラベルを、強い変換後にも予測させる半教師あり学習で解こうとしています。
得られるヒントは、モデル自身の出力を学習へ使うとき、「どの予測を信じるか」と「その予測で何を学ばせるか」を別々に設計することです。小さな画像アプリでも、ラベルの品質、変換の意味、未ラベル画像の分布を整えることで、蓄積データの活かし方を検討できます。