はじめに
DyBNNの論文を読んだ要約です。
自分用にまとめたものなので、理解の漏れなどありましてもご容赦下さい。
また、より詳細な内容を知りたい場合は元の論文をご覧ください。
DyBNNの概要
- 論文名: Dynamic Binary Neural Network by learning channel-wise thresholds
- 著者: Jiehua Zhang, Zhuo Su, Yanghe Feng, Xin Lu, Matti Pietikäinen, Li Liu
- 公開: 2021年10月8日
- URL: https://arxiv.org/abs/2110.05185
入力によって閾値とシフトパラメータを動的に生成できるDySign関数とDyPReLU関数を用いて、ReActNetのRSign関数とRPReLU関数を置き換えたBNN。モデルの表現能力が向上し、精度が向上した。
ReActNet
ReActNetとは,BNNが入力の特徴分布に敏感であることに着目して、Sign関数の閾値とPReLU関数のシフトパラメータを学習可能なRSign関数とRPReLU関数を使用したBNN。RSign関数およびRPReLU関数は以下の式で表される。
RSign(x_i) = \left\{
\begin{array}{ll}
+1 & (x_i \geq α_i) \\
-1 & (x_i \lt α_i)
\end{array}
\right.
RPReLU(x_i) = \left\{
\begin{array}{ll}
x_i - γ_i + ζ_i & (x_i \geq ζ_i) \\
β_i(x_i - γ_i) + ζ_i & (x_i \lt ζ_i)
\end{array}
\right.
問題点
Rsign関数は事前に学習された静的な閾値を使用している。
しかし入力によっては最適な閾値が異なり、静的な閾値では特徴を捉えることが困難である場合がある。
下記の画像の場合、左から3番目がRSignを使用して特徴検出を行った例であり,(b)と(c)の画像の特徴をうまく捉えることができていないことがわかる。
DyBNN
入力の特徴分布によって閾値を動的に生成可能なDySign関数とシフトパラメータを動的に生成可能なDyPReLU関数を使用したBNN。ReActNetで静的な閾値を使用していたために、特徴情報の損失を起こす問題を改善した。
DySign関数とDyPReLU関数の式自体はそれぞれRSign関数とRPReLU関数と同様である。
RSign関数やRPReLU関数では閾値やシフトパラメータを学習により決定していたが、DyBNNでは以下の式で表される。
α = f(X) = FC^{\frac{C}{16}×C}(FC^{C×\frac{C}{16}}(GAP(X)))
ここで、αは閾値またはシフトパラメータ、FCは全結合、GAPはGlobal Average Poolingである。
評価
以下のデータセットと実装で評価
項目 | 内容 |
---|---|
データセット | ILSVRC12 ImageNet classification dataset |
学習方法 | 2段階に分けて学習 |
最適化方法 | Adam, 線形学習率減衰 |
初期学習率 | 5e-4 |
バッチサイズ | 256 |
結果
mobileNetV1ベースのDyBNNはTop1精度71.2%を達成。これはmobileNetV1ベースのReActNetと比較して1.8%の精度向上。
まとめ
BNNにおいて、入力に対して動的に生成可能な閾値やシフトパラメータを用いる手法は有効である。