Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Concept Bottleneck Models

概念ボトルネックモデル(CBM)は、まず人間が名前を付けた概念を予測し、その概念だけからラベルを予測します。そのため、専門家は各判断を確認して修正できます。

コンセプトボトルネックモデル(CBM)は、入力から人が名前を付けた概念をまず予測し、その概念だけを使って最終ラベルを予測するニューラルネットワークです。膝のX線画像では関節裂隙の狭小化や骨棘、鳥の写真では翼の色やくちばしの形が概念になります。すべての予測がこの狭いラベル付きレイヤーを通るため、どの概念が判断に影響したかを人が確認でき、誤った概念を修正して結果を変えられます。そのため、CBMはアーキテクチャに組み込まれた説明可能なAI(XAI)の一種です。StanfordとGoogleのPang Wei Koh、Thao Nguyen、Yew Siang Tang、Stephen Mussmann、Emma Pierson、Been Kim、Percy Liangは、ICML 2020でコンセプトボトルネックモデルを発表してこの用語を導入し、膝のX線画像から変形性膝関節症の重症度を判定するタスクと鳥の種を識別するタスクの2つで、標準的なエンドツーエンドモデルに匹敵する精度を示しました。

概念ボトルネックモデルの仕組み#

CBMは2つの部分で構成されます。画像などの入力を概念値に写像する概念予測器と、概念値を出力に写像するラベル予測器です。Kohらは、両者を学習する3つの方法を比較しました。

  • 独立型: 概念予測器は概念アノテーションから、ラベル予測器は真の概念から、それぞれ別々に学習します。
  • 逐次型: まず概念予測器を学習し、その予測概念を使ってラベル予測器を学習します。
  • 同時型: 概念損失とラベル損失の加重和を用いて、両方の部分を同時に学習します。

重症度をKellgren-Lawrenceグレードでラベル付けした36,369枚の膝X線画像を含むOsteoarthritis Initiativeデータでは、概念として、関節裂隙の狭小化、骨棘、骨硬化など、放射線科医がすでに評価している10個の順序尺度所見を用いました。200種の鳥の写真11,788枚を含むCaltech-UCSD Birdsデータセットでは、翼の色やくちばしの形など112個の二値属性を用いました。すべての学習例に概念とラベルの両方のアノテーションが必要であり、これがこの手法の主なコストです。

ボトルネックにより、テスト時の介入が可能になります。専門家が予測された概念に誤りがあると判断した場合、正しい値に置き換えると、ラベル予測器が出力を再計算します。X線画像のタスクでは、わずか2つの概念に真の値を与えるだけで、予測された重症度グレードの誤差が0.4超からRMSE約0.3に低下しました。

このPyTorchの例では、6つの二値概念がノイズを含む入力を生成し、ラベルが概念だけに依存するおもちゃのデータで独立型CBMを学習します。その後、専門家が確信度の最も低い概念に真の値を与えるときのラベル精度を測定します。

import torch
from torch import nn

torch.manual_seed(0)
# Toy data: 6 binary concepts generate noisy 20-D inputs, and the label depends only on the concepts
concepts = torch.randint(0, 2, (3000, 6)).float()
inputs = concepts @ torch.randn(6, 20) + 2 * torch.randn(3000, 20)
labels = (concepts @ torch.tensor([3.0, 2, 2, 1, 1, 1]) >= 5).float()
train, test = slice(0, 2000), slice(2000, None)

# Independent training: inputs -> concepts, and concepts -> label, each against its own ground truth
concept_model, label_model = nn.Linear(20, 6), nn.Linear(6, 1)
optimizer = torch.optim.Adam([*concept_model.parameters(), *label_model.parameters()], lr=0.05)
bce = nn.functional.binary_cross_entropy_with_logits
for _ in range(500):
    optimizer.zero_grad()
    loss = bce(concept_model(inputs[train]), concepts[train]) + bce(label_model(concepts[train])[:, 0], labels[train])
    loss.backward()
    optimizer.step()

with torch.no_grad():
    probs = concept_model(inputs[test]).sigmoid()
    print(f"Concept accuracy: {((probs > 0.5) == concepts[test]).float().mean():.3f}")
    for k in range(4):
        # Test-time intervention: replace the k least certain predicted concepts with their true values
        uncertain = (probs - 0.5).abs().argsort(dim=1)[:, :k]
        fixed = probs.scatter(1, uncertain, concepts[test].gather(1, uncertain))
        accuracy = ((label_model(fixed)[:, 0] > 0) == labels[test].bool()).float().mean()
        print(f"Intervene on {k} of 6 concepts: label accuracy {accuracy:.3f}")

概念予測器はテスト用概念6,000件のうち0.834件を正しく予測し、CBMはテスト例1,000件のうち0.819件に正しいラベルを付けます。各例で確信度が最も低い概念を1つ、2つ、3つ選び、それぞれに真の値を与えると、ラベル精度は0.861、0.915、0.951に上昇します。どちらのモデルも変更しません。

CBMの活用分野#

CBMは、専門家がすでに名前付きの所見を使って判断する分野に適しています。医用画像解析では、前述のX線画像研究で放射線科医が記録するものと同じ所見を用いたため、臨床医が各所見を確認できます。安全監視も同様の構造です。Construction-PPEデータセットで学習したUltralytics YOLO26モデルは、helmet、no_helmet、vest、no_bootsなどの名前付きクラスを検出します。これらの検出結果だけを参照するコンプライアンスルールは、CBMとして機能し、レビュー担当者は不足している項目をたどって判断を確認できます。

後続の研究では、アノテーション要件が緩和されました。ラベル不要のCBMは言語モデルで概念リストを生成し、CLIPで概念をスコアリングすることで、概念ラベルなしでImageNetにまで適用範囲を広げます。また、事後CBMは、学習済みモデルの埋め込みを概念方向に射影して、既存モデルを変換します。

制限事項#

概念セットだけではラベルを決める要因をすべて捉えられないことが多く、CBMの精度には上限があります。ラベル予測器が確定値ではなく概念の確率を受け取る場合、その確率に各概念の意味を超えたラベル情報が含まれることがあります。これは概念漏洩と呼ばれ、説明や介入の信頼性を損ないます。Concept Embedding Modelsは、精度を高く保ちながら介入にも対応できるよう、各概念を学習可能なベクトルで表現します。定義が不適切な概念や相関した概念は信頼性の低い説明につながり、偏った概念アノテーションは、それに依存するすべての判断にバイアスを持ち込みます。

  • 顕著性マップ: 学習済みのブラックボックスモデルに影響したピクセルを強調表示します。CBMは名前付きの概念で判断を説明し、その概念を編集できます。
  • メカニスティック解釈可能性: 学習済みモデルが独自に学んだ特徴や回路をリバースエンジニアリングします。CBMでは教師あり学習によって、中間概念を事前に固定します。
  • 線形プロービング: 予測方法を変えずに、学習済みモデルの活性化から概念を復号できるかを検証します。Been KimらによるTCAVのような、ブラックボックスモデルに対する概念プローブは、事後的に概念の影響を測定します。
  • 特徴量エンジニアリング: 生データから入力特徴量を手作業で計算します。CBMの概念は、学習済みモデルが生の入力から予測し、人手によるラベルで教師あり学習します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう