ググってた時にでてきた面白そうな論文を見つけたので、読んでみたことをまとめる。
よい特徴量を表現するためのDeepLearningの学習に関するもの。
Triplet Networkのポイント
ほとんど論文のアブストラクトになった。
- DeepLearningは有効な抽象性をもった特徴量を抽出することが可能。
- 画像同士の類似度,距離になる概念を学習。
- しかし、それらはクラス分類等における一部としてあまり注目されていない。
- 距離の比較で有効な表現が得られることができるようになった。
- Siamese networkやクラス分類のために学習されたものよりいいものになった。
- 学習時にクラスラベルは必要ない
- 学習をするときは、以下のように「x」と「xと同じクラスに属するものx+」と「xと異なるクラスに属するものx-」の3つを用意する
- MNISTをTriplet Networkで学習してそのPCAで上位2特徴量を軸としたときに、適切に分離できているかを可視化した。
他Triplet Netの流し読み
Siamese Networkではコンテキストによって似ているか似ていないかが変わるようなものに対して学習時の影響を強く受けやすかった。しかし、Triplet Networkではそうはならない。
2014に似たような構造の手法が提案されたが、こちらはそれを含んだ形で提案している、
似ているもの(距離d+)と似ていないもの(距離d-)とでのそれぞれの距離を足して1になるように最後の出力を決める。d+が0に近づくようにd-が1に近づくように学ぶ。学習の構造はいたってシンプルでCNNの部分は典型的な形でまたSGDで学習。3つのCNNの重みは全て共通で一気に更新する。
特徴的なのは学習のときに、DataAugumentation(データの水増し)やWhitening(白色化)を行っておらず、ゼロ平均化と分散等の正規化のみで十分よい分類結果が出た。また、出力される特徴量もスパースになっており全特徴量の長さの25%のみが数字他は0に等しい数字になっている。得られた特徴量を使って1層のネットワークやSVMやKNNを使っても分類精度はどれも同じくらい。