pytorch-grad-cam: コンピュータビジョンモデルの予測を説明するためのピクセル属性手法の包括的なコレクション

pytorch-grad-cam: コンピュータビジョンモデルの予測を説明するためのピクセル属性手法の包括的なコレクション

何を解決するか

このプロジェクトは、コンピュータビジョンのためのピクセル属性手法の包括的なコレクションを提供し、開発者や研究者がモデルの予測を診断し、画像のどの部分が特定の出力につながるのかを理解することを可能にします。ディープラーニングモデルの「ブラックボックス」的な性質を視覚的な説明(Class Activation Maps)へと変換し、本番環境や開発中のモデルのデバッグを容易にします。

仕組み

このライブラリは、PyTorchモデルの活性化と勾配を分析する、最先端の多様な説明可能性手法(GradCAM、HiResCAM、ScoreCAM、EigenCAMなど)を実装しています。主に2つの概念を通じて柔軟なアーキテクチャをサポートしています:

  • Reshape Transforms: モデル内部の活性化(CNNとVision Transformerの間で異なる場合があります)を空間的な画像形式に変換します。
  • Model Targets: 説明が必要な特定のスカラ値(例:特定のクラスカテゴリ)を分離するために、モデルの出力をフィルタリングするCallableです。

対象者

  • AI研究者: 新しい説明可能性手法を開発したり、既存の手法をベンチマークしたりする人々。
  • MLエンジニア: コンピュータビジョンタスクにおいてモデルの予測を診断し、信頼する必要がある開発者。
  • データサイエンティスト: 分類、物体検出、セマンティックセグメンテーション、または埋め込みの類似性を扱うユーザー。

ハイライト

  • 幅広い手法のサポート: 勾配ベース(GradCAM++)から勾配フリー(AblationCAM、ScoreCAM)まで、膨大な数のテクニックを含んでいます。
  • アーキテクチャに依存しない: 一般的なCNNやVision Transformer(ViT、SwinT)で動作します。
  • タスクの汎用性: 分類、物体検出、セマンティックセグメンテーション、およびCLIPのテキストプロンプトによる説明をサポートしています。
  • 評価指標: 説明が信頼できるかどうかを定量的にチェックするための組み込みの指標(ROADやARCCなど)を含んでいます。
  • ノイズ低減: よりクリーンで焦点の絞られた視覚化を行うための平滑化手法(aug_smoothおよびeigen_smooth)を提供しています。

Sources