Improving the Robustness of Deep Neural Networks via Stability Training 軽く読んだのでメモ
Improving the Robustness of Deep Neural Networks via Stability Training という論文を少しだけ読んだのでメモ。
後ろの方雑になってしまったけど許してください...
どんなもの?
画像の視覚入力の小さな摂動(変化)は、ニューラルネットワークの出力を大きく歪める可能性がある。
例えば図1で
「ほぼ重複しているが、若干違いがあるような画像のペア」の例が左と真ん中の列(赤いお花と建物の画像)。
imageAが元画像、imageBがJPEG圧縮して quality factor が 50 の画像。
quality factorの数値を変えることによりJPEGの圧縮率が変わるらしい
右の列(草生えてるやつ)は全く異なる画像のペア画像。
変化(difference)の小さい画像は変化の大きな画像に匹敵する(Dという距離を測る指標があり、左と真ん中の列のD値と右の列のD値が匹敵していることが分かりますね)。
本論文ではそのような微細な変化のあるデータセットを安定させる分類方法を提案した。
先行研究と比べてどこがすごい?
- JPEG-50 圧縮による変化
- トリミングを若干ずらすRandom cropping (論文だとoffset = 10)
- thumbnail resizingによる変化
のような変化を加えた画像に対しても従来の学習方法より安定した特徴量が得られることを確認した。以下その学習方法を Stability Training と呼ぶ。
技術や手法のキモはどこ?
L_0 を今まで用いてきたLoss(例えば画像分類タスクだとSoftmax cross entropy)として、それにα倍された L_stability と呼ばれる新しいLossを足す。
x は入力、x' は歪めた(変化を加えた)画像
L_stability は出力 f(x) を f(x') に近づけるLossである。
詳しくは後述。
①特徴埋め込みのためのStability
ここでは Ranking triplet を用いている。
論文では
a→q
と表現する文字が変わっているようが意味は同じようです(多分)。
目的は以下のようにすることです。
hinge lossを使ってL_0を
L2距離を使った stability loss を
と定義することができる。
②分類のためのStability
分類で一般に用いられる cross-entropy loss をL_0として定義し、
KL-divergence を用いて stability loss を
と定義できる。
まとめると以下の図3のようになる。
どうやって有効だと検証した?
図4は特徴距離D(L2距離)の比較
図5は
- JPEG-50 圧縮による変化
- トリミングを若干ずらすRandom cropping (論文だとoffset = 10)
- thumbnail resizingによる変化
のような変化を加えた画像に対する従来の学習方法と提案手法の比較。
議論はある?
次に読むべき論文は?
これ気になってます