19
Sparsifying Neural Network Connections for Face Recognition @51takahashi

CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

Embed Size (px)

Citation preview

Page 1: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

Sparsifying Neural Network Connections for Face Recognition

@51takahashi

Page 2: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

• さのまる

• @51Takahashi

• 顔認証の研究開発やっています

• 今回の発表は所属組織と関係ありません

自己紹介 CVPR2016読み会

2

Page 3: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

はじめに CVPR2016読み会

3

• CVPR2016の顔関連の研究はどれくらい?

– 検索条件: 手動

» 39/643件(DNN/RNN系は11件)

» 全部は読めてません…

– 研究動向

» 顔認証/検索 9件(4件)⇒ 1つ紹介します

» 3D顔モデリング 7件(0件)

» 顔特徴点検出 7件(3件)

» 表情認識 6件(1件)

» 年齢 3件(2件)

» データセット 2件(0件)

» 顔属性認識 2件(0件)

» 顔検出 1件(1件)

» 視線推定 1件(0件)

» 心拍推定 1件(0件)

Page 4: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

論文の概要 CVPR2016読み会

4

• タイトル

– Sparsifying Neural Network Connections for Face Recognition

– 顔認証のためのニューラルネットワーク結合のスパース化

• どこの研究?

– SenseTimeとThe Chinese University of Hong Kong(CUHK)の人たち

• どんな研究?

– 顔認証用CNNを枝刈りして(疎にして)パラメータ数削減・性能向上

• どんな手法?

– パラメータ数の多い最終層から順に枝刈り

» ニューロン間が無相関な結合を主に枝刈りしよう!という発想

• 結果は?

– パラメータの圧縮率は12~76%

– 顔認証の性能は若干向上

» LFWデータセットで、精度98.95% ⇒ 99.30%(圧縮率76%)

» (エラー1.05% ⇒ 0.70%)

Page 5: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

著者紹介 CVPR2016読み会

5

• Yi Sun(SenseTime), Xiaogang Wang(CUHK), Xiaoou Tang(CUHK)

– CUHKのすごいひとたち

– CUHKのグループはCVPR2016だけで16件発表

• 顔関連の主要論文

– 顔認証

» Deep learning face representation from predicting 10,000 classes (通称DeepID, CVPR2014) ⇒ Facebookの対抗馬

» Deep Learning Face Representation by Joint Identification-Verification (通称DeepID2, NIPS2014)

» Surpassing Human-Level Face Verification Performance on LFW with GaussianFace (通称GaussianFace, AAAI2015)

» Deeply learned face representations are sparse, selective, and robust (通称DeepID2+, CVPR2015) ⇒ Googleの対抗馬

– 顔特徴点検出

» Face Alignment by Coarse-to-Fine Shape Searching (CVPR2015)

Page 6: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

予備知識1: LFW CVPR2016読み会

6

• 近年の顔認証=LFW (Labeled Faces in the Wild)

– 顔認証ではMNIST的な存在 (2007年~)

– 本人ペア3000組+他人ペア3000組を正しく分類する問題

• LFW (unrestricted: 外部データあり) の歴史

– 2012年

» 92.40%: Joint Bayesian, ECCV (MSRA)

– 2013年

» 95.17%: High-dimensional LBP, CVPR (MSRA)

– 2014年

» 97.35%: DeepFace*, CVPR (Facebook)

» 97.45%: DeepID*, CVPR (CUHK)

– 2015年

» 98.52%: GaussianFace, AAAI (CUHK)

» 99.47%: DeepID2+*, CVPR (CUHK)

» 99.63%: FaceNet*, CVPR (Google)

⇒ 性能は上限まで達成、高速化や省メモリ化が課題か?

Aaron Eckhartさん はLena的存在♡

Page 7: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

予備知識2: LFWの後継者 CVPR2016読み会

7

• LFWの終焉

– Googleの2億枚の学習画像を使った力技でほぼ完全攻略

– 新たな顔認証研究の幕開けでもあった…

• LFWの後継者

– YTF (YouTube Face, CVPR2011)

» YouTube動画からクロップしたデータセット、低画質

– IJB-A (IARPA Janus Benchmark A, CVPR2015)

» ネットで収集した画像、顔向きとか年齢とかエグい

» スポンサーはNIST (アメリカ国立標準技術研究所)

– MegaFace (CVPR2016)

» Flickrで収集した100万枚の中から特定の人を見つけるベンチマーク

» 顔認証というより顔検索

» スポンサー欄にはSamsung、Google、Intelの名前が…

– MS-Celeb-1M (ACMMM2016)

» 3日前にその存在を知りました…

Shinzo Abeさん (IJB-Aの例)

Page 8: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

予備知識3: DeepFace・DeepID CVPR2016読み会

8

• ディープラーニングを使った顔認証

– 学習方法

» n人の学習データをnクラス分類するようにネットワークを学習

– 顔認証方法

» 最終隠れ層のアクティベーションを特徴量として利用

» 特徴量のコサイン類似度を計算することで顔認証の類似度になる

DeepID, CVPR2014 Bottleneckとも

Page 9: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

本題:既存手法の問題点 CVPR2016読み会

9

• ディープラーニングを使った顔認証

– 計算コストが高い

– 必要メモリが大きい

» 小さなネットワークで顔認証したい!

» あわよくば性能向上させたい!

• ネットワークの軽量化(枝刈り)に関する先行研究

– OBD (Optimal Brain Damage) [LeCun+, NIPS1990]

– 重みの絶対値が小さい結合を枝刈り [Collins+, arXiv2014]

– BRP (Bayesian Regularization and Pruning) [Williams, NC1994]

» もっといい方法が欲しい!

• ネットワークの圧縮に関する先行研究

– ニューロンの重みをSVDしてモデルを圧縮 [Denton+, NIPS2014等]

– Knowledge distillation [Hinton+, arXiv2014]

Page 10: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

提案手法のアイデア CVPR2016読み会

10

• ニューロン間の相関に基づく枝刈り

– 無相関なニューロン間の結合は枝刈りしてしまおう!

– 最終層の結合から順に枝刈りさせよう!

主に最終層付近の パラメータ数が多い!

Page 11: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

提案手法 CVPR2016読み会

11

提案手法のアルゴリズム

1. ネットワークN0を普通に学習する (15万回)

2. for m from 1 to M

3. 最後からm層目の結合を枝刈り

4. Nm-1を初期値として、ネットワークNmを学習 (7万回)

5. end for

6. NM が完成

N0 N1 N2

… …

赤字は枝刈りした層 ※プーリング層はできません

Page 12: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

枝刈り CVPR2016読み会

12

枝刈りのアルゴリズム(full/local connection層)

1. ある出力側ニューロンと結合してる入力側ニューロンの数をKとする

2. 疎性パラメータS、偏りパラメータλを決める (0<S<1、0≦λ≦1)

3. 相関計算用データで、各ニューロン間の相関 rk を計算する

4. rk において、正/負の値を rk+/rk

-、数をK+/K-とする (K++K-=K)

5. rk+を大きい順にソートする

6. 上位半分からλSK+個、下位半分から(1-λ)SK+個を残してランダムに刈る

7. rk-を絶対値の大きい順にソートする

8. 上位半分からλSK-個、下位半分から(1-λ)SK-個を残してランダムに刈る

K=36個の結合の例 ⇒ 枝刈り後はSK個になる

λ=0.75のとき、 強相関な結合の75% 弱相関な結合の25% が残される

Page 13: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

実験 CVPR2016読み会

13

• ネットワークの学習

– 学習用画像: 12,000名・290,000枚

» ディープラーニング用途としては小さめのデータセット

– 評価用画像: LFW、YTF、IJB-A

» 結果が細かすぎるのでLFWだけ紹介します…

– 疎性パラメータS: バリデーションセットで決定

– 偏りパラメータλ: 0.75

• 実装

– Caffeを使用

– 枝刈りを使った学習は、0/1のdropping matrixを使うと実装できる

Page 14: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

実験結果1: LFW CVPR2016読み会

14

枝刈りしたらすこし性能向上した! 12%のパラメータでもオリジナルの性能!

Page 15: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

実験結果2: 偏りパラメータの効果 CVPR2016読み会

15 ランダム枝刈り(λ=0.5)・弱相関枝刈り(λ=1)は性能低下

Page 16: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

実験結果3: フルスクラッチとの比較 CVPR2016読み会

16

フルスクラッチでスパースなネットワークは学習できない

Page 17: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

実験結果4: 従来手法との比較 CVPR2016読み会

17

劇的によくなっている訳ではない…

Page 18: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

論文のまとめ CVPR2016読み会

18

• タイトル

– Sparsifying Neural Network Connections for Face Recognition

– 顔認証のためのニューラルネットワーク結合のスパース化

• どこの研究?

– SenseTimeとThe Chinese University of Hong Kong(CUHK)の人たち

• どんな研究?

– 顔認証用CNNを枝刈りして(疎にして)パラメータ数削減・性能向上

• どんな手法?

– パラメータ数の多い最終層から順に枝刈り

» ニューロン間が無相関な結合を主に枝刈りしよう!という発想

• 結果は?

– パラメータの圧縮率は12~76%

– 顔認証の性能は若干向上

» LFWデータセットで、精度98.95% ⇒ 99.30%(圧縮率76%)

» (エラー1.05% ⇒ 0.70%)

Page 19: CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition

おつかれさまでした