kaeken(嘉永島健司)のTech探究ブログ

主に情報科学/情報技術全般に関する知見をポストします。(最近は、特にData Science、機械学習、深層学習、統計学、Python、数学、ビッグデータ)

深層距離学習(Deep Metric Learning) まとめ

深層距離学習(Deep Metric Learning) まとめ

Xlgd/metric-learning-papers: A collection of metric learning papers.

  • 距離学習の目的:

    • データポイント間の距離を測定する機械学習アプローチ。
    • サンプル間の類似性を測定し、学習タスクに最適な距離メトリックを使用すること。
    • 伝統的な距離メトリック(ユークリッド、シティブロック、コサインなど)を使用。
    • 一般的に線形投影を使用する距離学習方法は、非線形特性を示す実世界の問題を解決するのに限界がある。
    • メトリック学習は、(弱く)監視されたデータからタスク固有の距離メトリックを自動的に構築することを目指す。
    • 学習された距離メトリックは、さまざまなタスク(例:k-NN分類、クラスタリング、情報検索)に使用される。
    • データ間の距離や類似性を学習するために深層学習を使用。
    • 生データからデータ間の距離や類似度を計算し、同じクラスのデータを近づけ、異なるクラスのデータを遠ざける。
    • 効果的な埋め込み空間(embedding space)を学習し、類似するデータポイントを近くに、異なるデータポイントを遠くに配置。
  • 問題設定:

    • 教師あり学習:各データポイントがクラス(ラベル)に属する。
    • 教師あり学習:データポイントのセットがタプルレベルでのみ監督される。
    • このデータを基に、メトリック学習問題は一般に最適化問題として定式化される。
  • マハラノビス距離:

    • マハラノビス距離は、特徴空間の線形変換後のユークリッド距離。
    • マハラノビス距離は「疑似メトリック」と見なされる。
    • 正半定行列を用いたマハラノビス距離のパラメータ化も可能。
  • 一般的なクラス分類との違い:

    • 通常の分類タスクでは、データポイントを正しいカテゴリに割り当てるのに対し、深層距離学習では、データポイントの類似性を表す埋め込み空間を構築することが目的。
    • 一般的な分類タスクではラベル付きデータが必要だが、深層距離学習ではラベルのペアやトリプレットが必要。
  • 学習手法:

    • 一般的なクラス分類ではサンプル間の距離を考慮せずに特徴量を抽出するが、深層距離学習ではサンプル間の距離を大きくし、異なるクラスのサンプル間の距離を小さくする。
    • ユークリッド距離や特徴ベクトル間の角度を使用した学習手法がある。
  • Triplet Loss:

    • 埋め込み空間におけるサンプル間のユークリッド距離で損失関数を計算。
    • サンプル選択がモデル訓練の成功と収束性に影響。
  • ArcFace:

    • ソフトマックス損失関数を応用し、加算角度マージン損失を導入。
    • 埋め込み空間における異なるクラス間の角度分離を大きくする。
  • AdaCos:

    • 角度ベースのソフトマックス損失の改良型。
    • スケールパラメータやマージンを自動で最適化。
  • 応用例:

    • 最近傍モデル:分類、回帰、異常検出モデルの改善に学習メトリックを使用。
    • クラスタリングアルゴリズムが見つけたクラスターに意図されたセマンティクスへのバイアスをかけるためにメトリック学習を提供。
    • 情報検索:データベースからクエリ要素に意味的に最も近い要素を取得するために学習メトリックを使用。
    • 次元削減:(弱く)監督された設定でのデータの次元を減らす方法としてメトリック学習を見ることができる。
    • 画像検索、物体認識、顔認識、テキスト分類、推薦システム、クラスタリングなど、多岐にわたる分野での応用。
    • 医療、金融、ロボット工学、ソーシャルメディアなどでの可能性。
    • 入力データは画像に限定されない