論文読んだ: Deep metric learning using Triplet network
Deep metric learning using Triplet network
author:
PaperLink:
https://arxiv.org/abs/1412.6622
STEP1
時間: 5m どんなテーマを扱っている論文? 論文の概要を一言二言でまとめる
Abstract
DML にtriplet networkを用いた Siamese Networkではコンテキストごとに似ているか似ていないかが変わるようなもの に対して学習時の影響を強く受けやすかった。
Triplet Networkでは回避 $x$ : 入力データ $x^+$ : xと同じクラスに属する入力データ $x^-$ : xと別のクラスに属する入力データ
STEP2
時間: 10m 関連研究と当論文の手法を読んで "新規性" と "手法の説明"をまとめる
新規性
DML にtriplet networkを用いた
手法の説明
\begin{equation} TripletNet(x, x^-, x^+) = \begin{bmatrix} \| Net(x)-Net(x^-)\|_2 \\ \| Net(x)-Net(x^+)\|_2 \end{bmatrix} \in \mathbb{R}^2 \end{equation}
Loss(d_+, d_-) = \| \|_2^2 = const \cdot d_+^2 \\ d_+ = \frac{\mathrm{e}^{\| Net(x) - Net(x^+)\|_2 }}{ \mathrm{e}^{\| Net(x) - Net(x^+)\|_2 } + \mathrm{e}^{\| Net(x) - Net(x^-)\|_2 }} \\ d_- = \frac{\mathrm{e}^{\| Net(x) - Net(x^-)\|_2 }}{ \mathrm{e}^{\| Net(x) - Net(x^+)\|_2 } + \mathrm{e}^{\| Net(x) - Net(x^-)\|_2 }} \\
required $ Loss(d+, d-) \to 0 $ iff $ \frac{| Net(x)-Net(x^-)|2 }{ | Net(x)-Net(x^+)|2} \to 0 $
実験
論文読んだ: OBJECTG DETECTION IN SATELLITE IMAGERY USING 2-STEP CONVOLUTIONAL NEURAL NETWORKS
OBJECTG DETECTION IN SATELLITE IMAGERY USING 2-STEP CONVOLUTIONAL NEURAL NETWORKS
読んだ論文もぼちぼちブログにアップしていこうと思う
author:
Hiroki Miyamoto1 Kazuki Uehara[^1] Masahiro Murakawa[^1] Hidenori Sakanashi[^1] Hirokazu Nosato[^1] Toru Kouyama[^1] Ryosuke Nakamura[^1]
arXiv:
1808.02996
STEP1
時間: 5m どんなテーマを扱っている論文? 論文の概要を一言二言でまとめる
Abstract
衛星画像からの物体検知 high presiction network high recall network という2つのCNNを用いた手法 目的は名前の通り それぞれのネットワークで適合率と再現率の向上を狙う
object detection って名前だけど 碁盤の目状に区切られた領域にピンを打てるかどうかのタスクって感じかな???
STEP2
時間: 10m 関連研究と当論文の手法を読んで "新規性" と "手法の説明"をまとめる
手法の説明
衛星画像からゴルフコースの検出を行う。 物体検出系は画像見るだけでなんとなく論文全体見えるから全部張っておく
R-CNNシリーズ のresion proposalして Rol pooling を消して 代わりにbinary classificationする感じ
method
2stepで検出する - HRN(high recall network) で領域候補の検出 - HPN(high precision network)でbinary classification(golf course or not)
high recall network
領域推定のネットワーク - Resion proposal network - conv1 ~ conv4
high presiction network
2クラス分類(golf course or not)のネットワーク - conv1 ~ conv8 + fc1 softmax
実験
マス目みたいなもの区切って そこのエリアの中にゴルフコースがあるかどうか。正解不正解の二択で精度検証
ubuntuにJavaをインストール
apt-getでjavaをインストールする
普段業務ではpython しか使っていません。 しかしプログラミングのお勉強のためにJavaをたまに使うのですが 新しいパソコンに入っていなかったので、 今更ながらインストールを自分用の備忘録として書きました。
apt-getでJavaをインストールしようを見ながらインストールした。
JRE のインストール
JRE(Java Runtime Envirionment )が入っているかを確認
$ sudo apt-get update
$ java -version
JREのインストール
$ sudo apt-get install default-jre
JDK のインストール
JDK(Java Deveropment Kit )が入っているかを確認
$ sudo apt-get update
$ javac -version
JDKのインストール
$ sudo apt-get isntall default-jdk
JDKの色々
JDK、OracleJDK、OpenJDK、JavaSEって何? jdkには色々あるらしい。
ガウス過程とその周辺
ガウス過程とその周辺
強化学習のマルコフ過程を勉強し始めて そもそも「過程」ってなんだ?? という疑問から、 ガウス過程や、カーネル関数、カーネルトリックにまで遡り 昔読んだはずなのに記憶から飛んでいるPRMLの復習をした。
過程とは
google) 物事の進行・変化してゆく途中の段階。経過のみちすじ。プロセス
- ガウス過程[^1]
- マルコフ過程[^2]
- 次に起こる事象の確率が、現在の状態のみによって決まり、過去の振る舞いに一切依存しない確率過程。
- 確率過程[^2]
- 時間とともに推移する確率現象、あるいはその数学的モデル。
何かが起こったとき、次どうなる確率が高いと思う〜〜〜??? みたいなことを予測できるモデル 回帰との違いがいまいちわかっていない。 現状は「モデルを使って予測するのが回帰。」みたいなイメージ
一旦カーネルトリック
[^3] youtube カーネルトリック(カーネル法)とは高次元に飛ばしてSVM等で線形分離しやすくする手法。
youtubeをみてわかるように 線形分離不可能なデータセットが、高次元に飛ばすことで線形分離可能になる。 これすごくない!?!? って思ってもともと好きじゃなかった数学が好きになったの思い出した。
カーネル関数
ガウスカーネル
カーネル関数の一種、以下の式で定義される2変数関数のことをガウスカーネルと呼ぶ。
K(x, x') = \exp{-a(x-x')^2} a: \text{正の定数}
K(x, x')はx とx' の「近さ」を表す。
カーネル関数
データx に対する特徴ベクトルが \phi(x) であるとき、それに対応するカーネル関数は
k(x, x') = \phi(x)^T \phi(x')
になる。
このカーネル関数を使用して特徴空間へデータを飛ばすのがカーネルトリックと呼ばれる手法。
カーネルトリック
カーネルが特徴空間に飛ばす。っていう言葉がいまいちわかってなかったが、 このサイトの「ガウスカーネルの特徴ベクトルとは」がわかりやすかった。
上記のようにしてカーネル関数を使用することで 前述のような特徴空間へとデータを飛ばして、 解析しやすくなる。
まとめ
数学って楽しい
マルコフ過程まではたどり着かなかったけどゆっくりやってきます
参照: [^1] yasuhisay's blog [^2] kotobank [^3] めもめも