覚え書きブログ

読者です 読者をやめる 読者になる 読者になる

Adversarial examples

ディープラーニング

Adversarial examplesという、入力画像に意図的に妨害するノイズを入れることにより、DNNの認識を失敗させる方法が研究されている。

  • Explaining and Harnessing Adversarial Examples, Goodfellow et al., arxiv2015

入力画像xに、DNNのロス関数J(\theta,x,y)xに関する勾配をsign関数をとったものを足すだけで以下のように、パンダをテナガザル(gibbon)と高い信頼度で間違えるようになる。ちなみに、以下のように画像の見た目はほとんど変わっていない。ここで、\thetaはDNNのパラメータ、yは分類ラベルである。
f:id:hirotaka_hachiya:20170407092552p:plain

具体的には、以下のノイズを入力画像に付加する。この方法はFGSM(Fast Gradient Sign Method)と呼ばれている。
f:id:hirotaka_hachiya:20170407093210p:plain

なぜ、こんな単純なノイズ付加で失敗するのか?DNNの各レイヤーにて線形和を計算してからactivationしているからだと説明されている。単純な1階層の線形モデルを考えた場合、入力画像にノイズを加えることは、以下のように、w^\top \etaを足していることに対応する。
f:id:hirotaka_hachiya:20170407095950p:plain
ここで、\eta=sign(w)となるので、ノイズ項は、wの絶対値和に対応し、max normの制約(最大値が\epsilon以下)のもとでは最大の値をとることができる。例えば、w=(0.1,-0.2,-0.5)^\topだとすると、\eta=(1,-1,-1)^\topとなり、w^\top\eta=0.1+0.2+0.5=0.8となる。特に、wの次元が高い場合、w^\top\etaは次元数に比例した大きな値をとり、インパクトのあるノイズを加えることが出来る。つまり、線形和でノイズを積算してしまっている。

CGデータを用いたDeep Neural Networkの学習

ディープラーニング

最近、Deep Learningを学習するためにCGデータを活用するための研究が注目を集めている。単にCGデータを生成して学習に使うのではなく、学習にとって有用なデータを生成するために、CGのパラメータを適応的に調整するのが特徴である。以下は最近の論文の簡単な紹介。

  • Adversarially Tuned scene generation V.S.R. Veeravasarapu et al., arxiv2017

https://arxiv.org/abs/1701.00405
GANを用いて、光源の輝度値、位置、カメラの位置などのパラメータを、実写と近くなるように調整する方法。各パラメータ[\tex:\theta]により生成されたCGデータVに対する識別モデルの結果に基づき、各パラメータが与えられたもとでの実写度(またはCG度)分布p_D(c=1|\theta)を密度推定する。そして、この分布を事前確率として事後確率p(\theta)ベイズ更新する。

  • Learning from Simulated and Unsupervised Images through Adversarial Training, A. Shrivastava et al., arxiv2016

https://arxiv.org/abs/1612.07828
アップル初の人工知能の論文として話題になった方法。GANを用いて、CGデータをリファインするフィルタ関数R_\theta(x)を学習している。xはCGデータサンプル。フィルタ関数を学習する際に、もともとのCGデータとの差が大きくなりすぎないように、制約を入れている。
f:id:hirotaka_hachiya:20170406173259p:plain

  • Procedural Generation of Videos to Train Deep Action Recognition Networks, César Roberto de Souza et al, arxiv2016.

https://arxiv.org/abs/1612.00881
Xeroxの論文。TSN(Temporal Segment Network)にて、CGデータと実写データのセグメントを、4対6くらいの割り合いで混ぜてミニバッチを作り、CGと実写それぞれの行動認識のlossを用意しマルチタスク学習する。これにより、CGと実写両方に有効なCNNが学習できることが期待されている。

  • The SYNTHIA Dataset: A Large Collection of Synthetic Images for Semantic Segmentation of Urban Scenes, German Ros et al., CVPR2016

http://www.cv-foundation.org/openaccess/content_cvpr_2016/html/Ros_The_SYNTHIA_Dataset_CVPR_2016_paper.html
SYNTHIAという街の3Dモデルと、天候のバリエーションに対応したCGデータ生成に関する論文。
http://synthia-dataset.net/

  • Virtual Worlds as Proxy for Multi-Object Tracking Analysis, Adrien Gaidon et al., CVPR2016

http://download.xrce.xerox.com/virtual-kitti-1.2/virtual_worlds_multi_object_tracking.pdf
Xeroxの論文。SYNTHIAと同様にVirtual KITTIと呼ばれる街の3Dモデルと天候のバリエーションに対応したCGデータ生成に関する論文。
http://www.xrce.xerox.com/Our-Research/Computer-Vision/Proxy-Virtual-Worlds

ダイムラーの論文。こちらはCGではないが、一応紹介。大規模の実写の領域ラベル付きデータを提供しているCityScapeに関する論文。
www.cityscapes-dataset.com

多重重点サンプリング法

データ解析

多重重点サンプリング法とは、複数のソース分布からサンプリングしたデータと密度比を持ちいて、ターゲット分布に基づく期待値をバリアンスを抑えて推定する方法である。
https://graphics.stanford.edu/courses/cs348b-03/papers/veach-chapter9.pdf

もう少し具体的には、一つのソース分布からサンプリングしたデータで、期待値をアンバイスに推定できるが、ターゲットとソースの分布の差が大きい(例えば、ソース分布の確率値が0に近いところ)場合に推定が不安定になりバリアンスが大きくなる問題がある。

この問題を解決するために、複数のソース分布からターゲット分布との重なりが大きいところを部分的に「良いとこどり」をして、推定量のバリアンスを抑えるというのが多重重点サンプリング法である。

この「良いとこどり」をするためには、うまくサンプルごとに各分布の重みを調整する必要がある。
例えば、バランスヒューリスティック(Balance Heuristic)法などがある。
http://rayspace.xyz/CG/contents/MIS.html

より一般的な多重重点サンプリングとして、全てのソース分布を同じ重みで足した混合分布との密度比を用いて推定する方法が提案されている。また、既に推定に用いたデータのソース分布を混合分布から除く、非復元型の多重重点サンプリング法も提案されている。
Generalized Multiple Importance Sampling, Elvira, V. et al., arxiv 2015
https://arxiv.org/pdf/1511.03095.pdf

以下の図は、通常の重点サンプリング、非復元型多重重点サンプリング、復元型多重重点サンプリングの違いを表している(https://arxiv.org/pdf/1511.03095.pdf)。
f:id:hirotaka_hachiya:20170405120403p:plain