iTAC_Technical_Documents

アイタックソリューションズ株式会社

ブログ名

Metric Learning(距離学習)について

今回の内容

 Toriplet Lossに関して調べたが、Metric Learning(距離学習)という単語が何度も出てきた。大切な概念だと思ったので今回はMetric Learning(距離学習)について調べていく。  

Metric Learning(距離学習)を知る

基本的な概念


 何かしらの基準となるデータに対して、その基準から近いか、遠いかで同じか否かを判断することができる。
 例)
①2人の顔はよく似ている。→ 顔写真のデータを数値データとして、目や鼻の形などの形や位置が近いと似ていると判断できる。


②このカレーは某専門店と同じ味がする。→ 某専門店の味を数値化したデータを基準としてそのデータと同じ数値なら、同じ味と判断できる。


③この地域に住む動物たちは、日本の動物と同じ特徴がある。
→行動パターンや身体的特徴の統計をもとに、日本の動物も同じような分布のデータが観測できると、同じ特徴があると判断できる。

距離の測り方

 


 単に”距離”と言っても、前回説明したユークリット距離の他にも、マンハッタン距離やチェビシェフ距離など様々な測り方が存在する。同じ2点間であったとしても、どの”距離関数”を使用するのかによって類似度が大きく変化する。
 下図のように、使用する演算方法によっては類似度の高いデータが入れ替わるということも起きてしまう。「どの距離関数を使用するのか」を考えて見極める必要がある。

f:id:shizuuuka0202:20200221230453p:plain

図1:距離学習(Metric Learning)入門から実践まで

特徴量と埋め込み空間(Embedding Space)

 


 ②の例をもとに考えていく。味覚には甘味・酸味・塩味・苦味・うま味の5つの特徴量があり、その特徴量を下図のようにまとめる。

f:id:shizuuuka0202:20200221230805p:plain

図2:距離学習(Metric Learning)入門から実践まで

その中から2つの特徴量を使用して、2つの埋め込み空間にデータを入れる。 1つは塩味と酸味の空間、もう1つはうま味と甘味の空間を使用する。

f:id:shizuuuka0202:20200221230904p:plain

図3:距離学習(Metric Learning)入門から実践まで

 上図のように、様々なデータを埋め込み空間に埋め込むことで距離を算出することができる。
 また、左と右の空間で、使用した特徴量の違いから、A店に近い味の店がどちらにもなり得ることがわかる。つまり、埋め込み空間の違いで距離が変化することになる。
ここでも、問題設定によってどのような埋め込み空間を用いる必要があるのかを考えて判断する必要がある。

ここまでのことを一度まとめると、
・ユークリット距離の他にも様々な距離関数が存在する
・座標情報ではない特徴量でも、空間に埋め込むことで距離を算出できる。
・問題設定によって、どのような埋め込み空間を用いるのか変わる。

距離 (Metric)によるクラスタリング


これまでの問題設定では、「点Aに近いのは点Bと点Cのどちらか」という内容で行っていた。 しかし、中には「任意の距離(閥値)よりも遠いか近いか」という問題設定で判断したい物が存在する。

 ③の例を用いると、
点A:この地域(地域A)に生息する動物たち
点B:日本以外に生息する動物
点C:日本に生息する動物 とすると、
下図のように分類することができる。

f:id:shizuuuka0202:20200221231101p:plain

図4:距離学習(Metric Learning)入門から実践まで

 しかし、実際には動物は1匹ではなく、地域Aに生息する様々な動物のデータが点Aには含まれているので、実際には下図のように複数の点Aが存在することになる。

f:id:shizuuuka0202:20200221231202p:plain

図5:距離学習(Metric Learning)入門から実践まで

 図4の時点では明らかにABよりもACの方が距離が近くなっているが、図5ではAB>AC、AB<ACのどちらも存在している。これは基準となる点Aが複数あり定まっていないことに原因がある。
そこで使用するのが、次で説明する"距離(閾値)"である。

距離(閾値)を決定する

 


 基準である点を定めるのに、分布の重心・平均値・中央値などを採用することが多い。今回は下図のように点▲を基準点とする。

f:id:shizuuuka0202:20200221231320p:plain

図6:距離学習(Metric Learning)入門から実践まで

 この基準点から距離が近いと地域Aに生息する動物に近く、距離が遠いと地域A以外に生息する動物という様に距離によって分類を行うことができる。
基準点から最も離れた点(今回は一番上にある点)とのユークリット距離を測定し、その距離を半径とする円を描き、「円の内側なら地域Aの動物と同じクラスに分ける」と下の図の様に描くことができる。

f:id:shizuuuka0202:20200221231432p:plain

図7:距離学習(Metric Learning)入門から実践まで

 ユークリット距離を用いて分類を行った場合、赤点も緑点も円の中に存在してしまい、地域Aの動物と同じクラスに分類することになる。
そこでユークリット距離ではなく、マハラノビス距離を用いて円形を描くと、下の図の様に描くことができる。

f:id:shizuuuka0202:20200221231531p:plain

図8:距離学習(Metric Learning)入門から実践まで

マハラノビス距離は相関関係(分散)を考慮して算出されるので分布の形に近い円形を描写することができる。結果、赤点と地域Aが同じクラス、緑点は別のクラスに分類されることになる。

 この様に、適切な埋め込み空間(Embedding Space)と適切な距離関数(今回はマハラノビス関数)を用いることで機械学習をすることなくクラスタリングを行うことができる。

距離学習(Metric Learning)


 最後に距離学習についてまとめていく。
下図の様なデータの分布に対して、今のままではAクラスとCクラスをうまく分類することができない。埋め込み空間が最適ではないという見方もできるが、ラベル(生息地域)が違うだけで同じ特徴をもつ対象(動物)に対し、綺麗に分布が分離している埋め込み空間を生成するのは難しい。 <br この様な時に距離学習を用いて分類を行う。

f:id:shizuuuka0202:20200221231644p:plain

図9:距離学習(Metric Learning)入門から実践まで

 距離が近すぎて分類が困難な場合は、前回のレポートでも使用した、「同じクラスを近づけ、違うクラスを遠ざける」という処理を行う。そして、下図の様に分類がしやすい様に移動される。

f:id:shizuuuka0202:20200221231853p:plain

図10:距離学習(Metric Learning)入門から実践まで

まとめ

 今回は距離学習の基礎的なことをまとめた。実際に手を動かして自分の環境で行っていないので、実際に距離学習を体験するという機会も設けていきたい。

参考

『Metric Learning(距離学習)』
距離学習(Metric Learning)入門から実践まで
Metric Learning 入門


目次に戻る