PointAugment: an Auto-Augmentation Framework for Point Cloud Classificationを呼んだのでメモ
はじめに
PointAugment: an Auto-Augmentation Framework for Point Cloud Classificationを呼んだのでメモ. Point Cloudに対するAutoAugment. ただAutoAugmentというが,originalのAutoAugmentとは大きく異なり,フレームワークとしては
- データ毎にdata augmentationを生成
- data augmentationはニューラルネットで実行
- モデルの学習とaugmentationをadversarial trainingの要領で同時最適化
となる. 前提として点群の分類問題を扱うものとする.
Overview
PointAugmentはaugmentor とclassifier の二つのネットワークから構成される. 個の学習データが与えられた際,はで通常通り学習されるとともに,をに入力して得られた出力でも学習される. 同時に,に対するの出力を受けてのパラメータも更新される.
Method
Augmentor は3D点群のshapeに関するaugmentation(回転など)と点ごとの変換に関するaugmentation(ノイズの加算など)それぞれを扱う. そのためaugmentor(PointNet構造)は入力を座標を値として持つ点の点群とすると,の行列との行列を出力する. その出力を使って入力の点群をとして変換し,を生成する. ただし,augmentationに確率的な振る舞いを導入するため,を出力する全結合層に点群の特徴量だけでなくnoiseも入力する(詳細はFig. 4).
ここでの問題はaugmentorの学習で,この論文ではaugmentorは(i)元の点群より難しいサンプル,すなわちを満たす生成すべき(ただしはクロスエントロピー),(ii)は元の点群の形から逸脱しない物であるべきという2点を満たすべきとしている.
まず(i)を満たすため,augmentorの目的関数は次のようになる.
これは1以下の値を取る場合にを満たす. なのでを最小化するようにaugmentorを学習すれば(i)を満たすサンプルを生成することが期待される. 一方で,のときにはとなり,このような場合はもはや(ii)を満たさない点群になっていることが予想される. そのためを小さくするように次のようにを非負のdynamic parameterを使って定義し直す.
このとき,の上界はとなる.
Augmentorの学習時にはclassifierは固定となるため,この上界はにのみ依存する. 通常,学習初期はclassifierの挙動がセンシティブであるため,が難しすぎないように注意を払う必要がある. そのため,を次のように設計する.
は真のonehotラベルで,はに対するclassifierの出力. これは,分類が容易な簡単なサンプルほどが大きくなり,難しいを生成することを目的としている.
最終的なaugmentorの損失は次のようになる.
はハイパーパラメータ. はaugmentorによって作り出されたサンプルが(ii)を満たすことをencourageする項で,の大きさによってどれだけ重要視するかが変わる. 実験ではとした.
Classifierの方は次の損失関数で学習される.
第1項目と第2項目は通常通りの損失で,最後の項は元の点群とaugmentorによって生成された点群の特徴ベクトル間の一致を強いる. は実験で10とした.
まとめ
PointNetやDGCNNなど代表的なモデルで1~2%の精度の向上が見られている. データによっては4%前後. 画像と違って点群はdata augmentationのバリエーションがそんなにないことが手法のシンプルさに繋がったかなと.