(57)【要約】ディープニューラルネットワークによる推論において、浮動小数点又は固定小数点で表現される中間特徴マップを、第一変換モジュールを用いてバイナリベクトルに変換することでバイナリ表現化したバイナリ中間特徴マップを取得し（Ｓ２１０、Ｓ２１５）、バイナリ中間特徴マップを、非線形次元削減レイヤで圧縮することで圧縮特徴マップを生成し（Ｓ２２０）、圧縮特徴マップをメモリに書き込み、メモリから読み出した圧縮特徴マップを、非線形次元削減レイヤに対応する再構築レイヤで伸長することでバイナリ中間特徴マップを再構築し（Ｓ２４０）、再構築されたバイナリ中間特徴マップを、第二変換モジュールを用いて浮動小数点又は固定小数点で表現される中間特徴マップに変換して（Ｓ２４５、Ｓ２５０）ディープニューラルネットワークを実行する。
2020532777.tif 000002
【特許請求の範囲】
【請求項１】
ディープニューラルネットワークによる推論において、浮動小数点又は固定小数点で表現される中間特徴マップを、第一変換モジュールを用いてバイナリベクトルに変換することでバイナリ表現化したバイナリ中間特徴マップを取得し、
前記バイナリ中間特徴マップを、非線形次元削減レイヤで圧縮することで圧縮特徴マップを生成し、
前記圧縮特徴マップをメモリに書き込み、
前記メモリから読み出した前記圧縮特徴マップを、前記非線形次元削減レイヤに対応する再構築レイヤで伸長することで前記バイナリ中間特徴マップを再構築し、
再構築された前記バイナリ中間特徴マップを、第二変換モジュールを用いて浮動小数点又は固定小数点で表現される中間特徴マップに変換する
ディープニューラルネットワーク実行方法。
【請求項２】
前記非線形次元削減レイヤは、１又は連続する複数の投影畳み込みレイヤであり、
前記再構築レイヤは、１又は連続する複数の再構築畳み込みレイヤである
請求項１に記載のディープニューラルネットワーク実行方法。
【請求項３】
請求項１又は２に記載の方法を用いて実行されたディープニューラルネットワークのバックプロパゲーションによる学習方法であって、
前記第一変換モジュール及び前記第二変換モジュールの分析導関数を前記ディープニューラルネットワークが含むレイヤのうち後段レイヤの勾配に適用することで先段レイヤの勾配を生成し、
生成された前記先段レイヤの勾配に基づいて重みとバイアスを更新し、
恒等写像関数に基づいて前記非線形次元削減レイヤの重み及び前記再構築レイヤの重みを初期化する
ディープニューラルネットワーク学習方法。
【請求項４】
ディープニューラルネットワークによる推論を実行する、プロセッサを備える装置であって、
前記プロセッサは、
浮動小数点又は固定小数点で表現される中間特徴マップを、第一変換モジュールを用いてバイナリベクトルに変換することでバイナリ表現化したバイナリ中間特徴マップを取得し、
前記バイナリ中間特徴マップを、非線形次元削減レイヤで圧縮することで圧縮特徴マップを生成し、
前記圧縮特徴マップをメモリに書き込み、
前記メモリから読み出した前記圧縮特徴マップを、前記非線形次元削減レイヤに対応する再構築レイヤで伸長することで前記バイナリ中間特徴マップを再構築し、
再構築された前記バイナリ中間特徴マップを、第二変換モジュールを用いて浮動小数点又は固定小数点で表現される中間特徴マップに変換する
ディープニューラルネットワーク実行装置。
【請求項５】
請求項１又は２に記載の方法を用いて実行されたディープニューラルネットワークのバックプロパゲーションによる学習を実行する、プロセッサを備える装置であって、
前記プロセッサは、
前記第一変換モジュール及び前記第二変換モジュールの分析導関数を前記ディープニューラルネットワークが含むレイヤのうち後段レイヤの勾配に適用することで先段レイヤの勾配を生成し、
生成された前記先段レイヤの勾配に基づいて重みとバイアスを更新し、
恒等写像関数に基づいて前記非線形次元削減レイヤの重み及び前記再構築レイヤの重みを初期化する
ディープニューラルネットワーク学習装置。
【請求項６】
請求項１に記載のディープニューラルネットワーク実行方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項３に記載のディープニューラルネットワーク学習方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はディープニューラルネットワークの実行方法等に関する。
【背景技術】
【０００２】
画像分類、物体検出などを含むコンピュータビジョンの応用分野では、ディープニューラルネットワーク（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ、以下ではＤＮＮと表記する）が、優れた成績を挙げて魅力的な選択とされつつある。しかしながら、ＤＮＮに必要なメモリ使用量及び計算量の大きさは、低消費電力が望まれる実行環境では過剰な負荷となり得る。
【０００３】
このような処理負荷を抑える試みとして提案又は示唆されている手法には、中間特徴マップをメモリに書き出さずに複数のレイヤを融合的に計算をするレイヤフュージョン、量子化した特徴マップの値の非線形次元削減レイヤでの圧縮が挙げられる（非特許文献１及び２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】M. Alwani, H. Chen, M. Ferdman, and P. A. Milder; Fused-layer CNN accelerators; MICRO; pages 1-12; October 2016
【非特許文献２】F. N. Iandola, S. Han, M. W. Moskewicz, K. Ashraf, W. J. Dally, and K. Keutzer; Squeezenet: Alexnet-level accuracy with 50x fewer parameters and <0.5MB model size; arXiv preprint arXiv:1602.07360, 2016
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の手法で得られるＤＮＮの処理負荷の抑制の程度は小さく、精度の低下も懸念される。また、処理速度の改善が十分とはいえない。
【０００６】
本開示は、精度の低下を抑えながら、低負荷かつ高速な処理が可能な実行方法、実行装置等を提供する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本開示の一形態に係るＤＮＮの実行方法は、ディープニューラルネットワークによる推論において、浮動小数点又は固定小数点で表現される中間特徴マップを、第一変換モジュールを用いてバイナリベクトルに変換することでバイナリ表現化したバイナリ中間特徴マップを取得し、前記バイナリ中間特徴マップを、非線形次元削減レイヤで圧縮することで圧縮特徴マップを生成し、前記圧縮特徴マップをメモリに書き込み、前記メモリから読み出した前記圧縮特徴マップを、前記非線形次元削減レイヤに対応する再構築レイヤで伸長することで前記バイナリ中間特徴マップを再構築し、再構築された前記バイナリ中間特徴マップを、第二変換モジュールを用いて浮動小数点又は固定小数点で表現される中間特徴マップに変換する。
【０００８】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、装置、集積回路、方法、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【０００９】
本開示のＤＮＮの実行方法等によれば、精度の低下を抑えながら、低負荷かつ高速な処理が可能である。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係る推論時のＤＮＮの実行方法を説明するためのモデル図である。
【図２】図２は、上記の推論時におけるフォワードパスのモデル図である。
【図３】図３は、上記の実行方法に対応するバックプロパゲーションにおけるバックワードパスのモデル図である。
【図４】図４は、実施例１における、SqueezeNetに上記の実行方法を適用して行ったImageNetでの推論精度の評価結果を示す図である。
【図５】図５は、実施例１における、MobileNetV2に上記の実行方法を適用して行ったImageNetでの推論精度の評価結果を示す図である。
【図６】図６は、実施例２における、SSD512に上記の実行方法を適用して行ったVOC2007での推論精度の評価結果を示す図である。
【図７】図７は、実施例２におけるSSD512でのメモリ使用量を示す図である。
【図８】図８は、上記の方法を実行する情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
本開示の一形態に係るＤＮＮの実行方法では、ディープニューラルネットワークによる推論において、浮動小数点又は固定小数点で表現される中間特徴マップを、第一変換モジュールを用いてバイナリベクトルに変換することでバイナリ表現化したバイナリ中間特徴マップを取得し、前記バイナリ中間特徴マップを、非線形次元削減レイヤで圧縮することで圧縮特徴マップを生成し、前記圧縮特徴マップをメモリに書き込み、前記メモリから読み出した前記圧縮特徴マップを、前記非線形次元削減レイヤに対応する再構築レイヤで伸長することで前記バイナリ中間特徴マップを再構築し、再構築された前記バイナリ中間特徴マップを、第二変換モジュールを用いて浮動小数点又は固定小数点で表現される中間特徴マップに変換する。
【００１２】
これにより、従来に比べて、少ないメモリ使用量でＤＮＮを実行することができ、メモリバンド幅が削減されるため処理が高速化される。
【００１３】
ここで、例えば前記非線形次元削減レイヤは、１又は連続する複数の投影畳み込みレイヤであり、前記再構築レイヤは、１又は連続する複数の再構築畳み込みレイヤであってもよい。
【００１４】
また、上記の実行方法を用いて実行されたＤＮＮのバックプロパゲーションによる学習方法では、前記第一変換モジュール及び前記第二変換モジュールの分析導関数を前記ディープニューラルネットワークが含むレイヤのうち後段レイヤの勾配に適用することで先段レイヤの勾配を生成し、生成された前記先段レイヤの勾配に基づいて重みとバイアスを更新し、恒等写像関数に基づいて前記非線形次元削減レイヤの重み及び前記再構築レイヤの重みを初期化する。
【００１５】
推論においてバイナリ表現化の処理が加わったことに対応して、学習でもバイナリレベルの処理を含めることが可能になる。したがって、従来に比べて少ないメモリ使用量の実行及び処理が高速化される。
【００１６】
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、装置、集積回路、方法、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【００１７】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００１８】
なお、以下で説明する実施の形態は、包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは一例であり、本開示に係る発明を限定する趣旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については任意の構成要素として説明される。
【００１９】
（実施の形態）
［ＤＮＮ］
まず、一般的なＤＮＮについて説明する。
【００２０】
ＤＮＮで一般に用いられる第ｌ畳み込み層に入力される特徴マップＸｌ−１は、入力チャンネルの個数を
【数１】
2020532777.tif 000003
、高さをＨ、幅をＷとして、（式１）のように表すことができる。
【数２】
2020532777.tif 000004
は実数全体を示す。
【００２１】
【数３】
2020532777.tif 000005
【００２２】
入力されたＸｌ−１は、出力チャンネルの個数をＣ、フィルタのカーネルの高さ及び幅をそれぞれＨｆ、Ｗｆとして、（式２）で表す重みテンソルＷｌで畳み込まれる。
【００２３】
【数４】
2020532777.tif 000006
【００２４】
なお、（式３）で表されるバイアスベクトルｂが畳み込み演算の結果に加算される。
【００２５】
【数５】
2020532777.tif 000007
【００２６】
いったんＣ個の全チャンネルの演算が実行されれば、要素ごとの非線形関数が畳み込み演算の結果に適用されている。そして、（式４）で表される出力テンソルＸｌのＣ番目のチャンネルが、（式５）に示す計算式を用いて算出される。
【００２７】
【数６】
2020532777.tif 000008
【００２８】
【数７】
2020532777.tif 000009
【００２９】
なお、（式５）における＊は、畳み込み演算を示す。また、ｇ（）は、何らかの非線形関数を示し、例えば全てのアクティベーションが非負となるようなｇ（ｘ）＝ｍａｘ（０，ｘ）のように定義される正規化線形関数（ＲｅＬＵ）である。
【００３０】
ここまで、以下の説明で用いる図面に含まれる表記の理解のために適宜参照されたい。
【００３１】
［ＤＮＮの実行方法］
次に、本実施の形態に係る、推論時のＤＮＮの実行方法を説明する。図１は、実施の形態に係るＤＮＮによる実行方法を説明するためのモデル図である。理解されやすいよう、図中の（ａ）に従来の方法を示し、対比的に（ｂ）に示す本実施の形態に係る方法を説明する。
【００３２】
（ａ）及び（ｂ）に示す各モデルは、左から右に進む多段の畳み込みレイヤを含むニューラルネットワークを模式的に示す。なお、表示を簡潔にするために、いずれでもバイアスの記載は省略している。
【００３３】
まず、（ａ）に示される従来の方法では、Ｎ個の連続するレイヤでの演算は、中間特徴マップＸｌ−Ｎ＋１からＸｌ−１をメモリに書き出すことなく、「融合（Ｆｕｓｉｏｎ）」的に実行して（ステップＳ１００）、特徴マップＸｌを得る。この融合的な演算は、特徴マップ全体よりもはるかに小さいメモリバッファを用いてチャンネル単位で実行可能である。
【００３４】
次に、特徴マップＸｌは、非線形関数ｑ（）を用いて量子化される（ステップＳ１１０）。量子化前の特徴マップＸｌは実数の集合
【数８】
2020532777.tif 000010
の要素であるが、量子化後の特徴マップ
【数９】
2020532777.tif 000011
は整数上の有限体の集合
【数１０】
2020532777.tif 000012
の要素である。ただし、この量子化のステップで、近似の不完全さのために精度が落ちることがある。量子化の後のネットワークアーキテクチャはここまでと変わることなく、準最適なビット幅分解能が得られる程度まで特徴マップが圧縮される。
【００３５】
次に、追加的な畳み込みレイヤを用いて非線形次元削減が実行される（ステップＳ１２０）。ここでは、（式６）で表されるマッピングが（式７）で表される投影重みＰｌを用いて実行される。
【００３６】
【数１１】
2020532777.tif 000013
【００３７】
【数１２】
2020532777.tif 000014
【００３８】
なお、（式６）及び（式７）における
【数１３】
2020532777.tif 000015
は、出力チャンネルの次元数であり、Ｃより小さい。ここでは、メモリバッファで保持される必要があるのは、圧縮特徴マップ
【数１４】
2020532777.tif 000016
のみである（ステップＳ１３０）。
【００３９】
以降、ここまでとは逆の手順を辿るように、圧縮特徴マップ
【数１５】
2020532777.tif 000017
は、重みＲｌを用いてより高次元のテンソルに逆投影される（ステップＳ１４０）。最後に、逆量子化関数ｑ−１（）を用いた逆変換（ステップＳ１５０）を実行して、実数の集合の要素である特徴マップＸｌ＋１を得る。
【００４０】
次に、（ｂ）に示される本実施の形態に係るＤＮＮの実行方法を説明する。この方法は、中間特徴マップをバイナリベクトルを用いて表現するための変換を含む点が従来の方法と異なる。この変換について先に説明しておく。
【００４１】
まず、実数の集合の要素である特徴マップＸｌから取り出されるスカラｘがあるとする。この場合、スカラ対スカラのマッピング又は非線形関数ｑ（ｘ）で表すと、従来の量子化は（式８）で表される。
【００４２】
【数１６】
2020532777.tif 000018
【００４３】
なお、
【数１７】
2020532777.tif 000019
は、量子化されたスカラを、
【数１８】
2020532777.tif 000020
は、固定小数点表現のための有限体ＧＦ（２Ｂ）を、Ｂはビット数を示す。
【００４４】
ここで、本実施の形態においては、（式９）のように定義される線形二値化関数ｂ（）による新たな
【数１９】
2020532777.tif 000021
の表現形式を導入する。
【００４５】
【数２０】
2020532777.tif 000022
【００４６】
ここで、
【数２１】
2020532777.tif 000023
は、ビット単位のＡＮＤ演算を示す。また、ベクトルｂは［２０，２１，．．．，２Ｂ−１］Ｔであり、
【数２２】
2020532777.tif 000024
は有限体ＧＦ（２）である。
【００４７】
また、線形二値化関数ｂ（）の逆関数は、（式１０）のように表される。
【００４８】
【数２３】
2020532777.tif 000025
【００４９】
（式９）及び（式１０）は、高濃度の有限体上のスカラと、要素が２個の有限体上のベクトルとの間での相互に線形変換が可能であることを示す。
【００５０】
このような展開に基づく特徴マップの圧縮を含む本実施の形態に係るＤＮＮの実行方法を、図１の（ｂ）に沿って以下に説明する。
【００５１】
特徴マップＸｌを得るレイヤまでは（ａ）のＳ１００までと共通であり（ステップＳ２００）、その手前までは説明及び図示を省略する。
【００５２】
次のレイヤでは、アクティベーションである特徴マップＸｌを量子化して特徴マップ
【数２４】
2020532777.tif 000026
を得る（ステップＳ２１０）。さらに次のレイヤでは、特徴マップ
【数２５】
2020532777.tif 000027
に（式９）の変換を適用する（ステップＳ２１５）。この変換の成果物である特徴マップ
【数２６】
2020532777.tif 000028
は、（式１１）のように表される。
【００５３】
【数２７】
2020532777.tif 000029
【００５４】
このようにバイナリ表現化された特徴マップ
【数２８】
2020532777.tif 000030
を、以下ではバイナリ中間特徴マップともいう。
【００５５】
また、実装の便宜上、（式１１）の新たに加わったビットの次元は、チャンネルの次元に連結される結果、バイナリ中間特徴マップ
【数２９】
2020532777.tif 000031
は（式１２）のようになる。
【００５６】
【数３０】
2020532777.tif 000032
【００５７】
なお、ステップＳ２１０及びＳ２１５における処理を実行するレイヤで構成されるモジュールは、本実施の形態における第一変換モジュールの例である。
【００５８】
このバイナリ中間特徴マップ
【数３１】
2020532777.tif 000033
に、投影重み
【数３２】
2020532777.tif 000034
の単一の非線形次元削減レイヤ又は投影重み
【数３３】
2020532777.tif 000035
の連続する複数の非線形次元削減レイヤを適用することで、バイナリ中間特徴マップ
【数３４】
2020532777.tif 000036
の、有限体ＧＦ（２）上のバイナリベクトルでの圧縮表現（以下、圧縮特徴マップ
【数３５】
2020532777.tif 000037
ともいう）が得られる（ステップＳ２２０）。
【００５９】
推論処理中にメモリで保持される必要があるのは、集合
【数３６】
2020532777.tif 000038
の要素である圧縮特徴マップ
【数３７】
2020532777.tif 000039
のみとなる（ステップＳ２３０）。非圧縮特徴マップは、例えば連続的なチャンネル単位等の小さいバッファでの処理が可能なためメモリでの保持は不要である。
【００６０】
その後、畳み込みレイヤ
【数３８】
2020532777.tif 000040
による処理の次のレイヤで、上述の圧縮が元に戻されたバイナリ中間特徴マップが再構築される（ステップＳ２４０）。再構築されたバイナリ中間特徴マップは、さらに次のレイヤに入力されると、逆関数ｂ−１（）である（式１０）によってバイナリ表現化が解除されて（ステップＳ２４５）整数の要素の集合の要素である中間特徴マップに変換され、さらに逆量子化関数ｑ−１（）が適用されて実数の集合の要素である特徴マップに変換される（ステップＳ２５０）。
【００６１】
なお、ステップＳ２４５及びＳ２５０における処理を実行するレイヤで構成されるモジュールは、本実施の形態における第二変換モジュールの例である。
【００６２】
以上が本実施の形態に係るＤＮＮの実行方法である。この方法でのメモリ使用量、精度等に関する性能評価は、後述の実施例で従来の方法と比較しながら紹介する。
【００６３】
［ＤＮＮの学習方法］
次に、上記の方法を用いて実行されたディープニューラルネットワークのバックプロパゲーションによる学習方法について説明する。図２は、上記の実行方法での推論時におけるフォワードパスのモデル図である。また、図３は、上記の実行方法に対応するバックプロパゲーションにおけるバックワードパスのモデル図である。図２の推論パスは（式９）に、図３の推論パスは（式１０）に対応する。
【００６４】
本実施の形態に係るＤＮＮの実行方法で新たに導入された関数ｂ−１（）は、ＲｅＬＵと類似の硬判定をするゲートとして表すことができる。関数ｂ−１（）の勾配は、（式１３）を用いて求めることができる。
【００６５】
【数３９】
2020532777.tif 000041
【００６６】
最終的に、関数ｂ（）の勾配は、（式１４）を用いて算出した勾配ベクトルのスケーリング合計である。
【００６７】
【数４０】
2020532777.tif 000042
【００６８】
なお、（式１４）における
【数４１】
2020532777.tif 000043
は、
【数４２】
2020532777.tif 000044
の中の非ゼロ要素の個数を示す勾配スケーリング係数である。実用上は、スケーリング係数は統計的情報に基づいて一回のみ算出し、勾配の正規化のための静的なハイパーパラメータとして用いられる。
【００６９】
本実施の形態に係るニューラルネットワークの目的は、学習を行って最小の
【数４３】
2020532777.tif 000045
のみを保持するところにあるため、Ｐｌ及びＲｌの初期値の選択は重要である。これらの重みテンソルを、非圧縮特徴マップの圧縮特徴マップへのマッピング、及びその逆も行う恒等関数を用いて初期化することで、学習に適した開始点を得ることができる。また、何らかの分布から抽出したノイズを用いた初期化も可能である。
【実施例１】
【００７０】
[概要]
実施の形態で述べたバイナリ表現化を行うレイヤ及び量子化を行うレイヤを、ベースとなる浮動小数点ネットワークアーキテクチャとしてSqueezeNet V1.1及びMobilenet V2を用いて実行した。
【００７１】
［SqueezeNet V1.1の場合］
本実施例では、「squeeze」レイヤの中で空間次元の最も高い方から選択した「fire2/squeeze」レイヤ及び「fire3/squeeze」レイヤを圧縮した。ネットワークへの入力の解像度は２２７×２２７であり、重みはすべて浮動小数点数であった。
【００７２】
量子化及び圧縮済みのモデルに対し、ImageNet(ILSVRC2012)の訓練データセットでの１０２４のサイズを単位とするミニバッチ学習を１０万回のイテレーション、さらに２万回のイテレーションごとに、１ｅ−３／１０から始まる段階的な学習率で確率的勾配降下法のソルバーによる再学習を実行した。このような大型のミニバッチが当初のモデルによって使用されたが、量子化及び圧縮済みのモデルが勾配を予測するのにも役立った。圧縮モデルは８ビットの量子化済みモデルから繰り返し導出して再学習した。図４は、ImageNetの評価データセットからの５万件の画像に対する推論精度の評価結果を示す。各欄のうち、最も左はモデルの型（fp32：単精度浮動小数点数、uint8：符号なし８ビット整数、等）を示し、右へ順に、重みのデータサイズ、アクティベーションである特徴マップのデータサイズ、最高スコアの回答（top-1）の正答率、上位５位までのスコアの回答(top-5)の正答率を示す表である。正答率でカッコの外の数字は再学習あり、カッコ内の数字は再学習なしでの結果を示す。
【００７３】
この評価結果によれば、畳み込みにサイズが１×１のカーネルを用いたバイナリ表現化ありの場合では、バイナリ表現化をしない場合と比較して重みは微増したものの、同じ型のモデルでも精度が向上した（top-1、６ビットで１．０％、４ビットで２．４％）。また、畳み込みに３×３のカーネルをストライド２で用いた場合では、６ビットの型で重みのサイズが約４７％の増加を示した。これにより、特徴マップの空間次元が、局所的な空間的量子化の冗長性を利用して削減された。そしてアクティベーションとしての特徴マップのサイズはバイナリ表現化をしない場合と比較して４分の１に減少し、その一方で正答率は、fp32の場合との比較でtop-1の８ビットで４．３％、６ビットで４．６％落ちた。
【００７４】
［MobileNetV2の場合］
「conv2_1/linear」特徴マップを圧縮した。この特徴マップは他の特徴マップより３倍以上サイズが大きいものであった。訓練に関するハイパーパラメータは上記のSqueezeNetの場合のものと共通である。イテレーション数は５万回で、学習率は比例変化させた。また、「conv2_1/linear」の後にＲｅＬＵレイヤを追加して圧縮方法の現状の実装に適合させた。これにより、「conv2_1/linear」特徴マップは、当初は符号付き整数を含み、変更後には符号なし整数を含む。なお、バッチ正規化層によって訓練処理が不安定になることがあったため、正規化パラメータ及びスケーリングパラメータは固定して畳み込み層の重み及びバイアスにマージした。このようにして変更されたモデルに対し、当初のものから再学習を行った。図５は、MobileNetV2を用いたImageNetでの推論精度の評価結果の表である。各欄の項目の内容は図４の表とほぼ共通である。ただし、「量子化あり、バイナリ表現化なし」で用いたモデルの型は、上述の符号付き整数を含むもの（int9：符号付き９ビット整数等）である。
【００７５】
ＲｅＬＵが追加されていない量子化ありの場合では、再学習後のtop-1の正答率で、fp32と比較して、９ビット及び７ビットでそれぞれ０．３％上昇し、５ビットで０．３％低下した。なお、MobileNetV2での量子化ありの場合には、９ビットと５ビットでの正答率の差が０．６ポイントと、ビット幅を下げても精度の悪化がわずかであった。一方、ＲｅＬＵを追加した量子化ありの場合では、この表に示されるケースで最も高い精度を示した。
【００７６】
畳み込みにサイズ１×１のカーネルを用いたバイナリ表現化ありの場合では、バイナリ表現化なしの従来の方法とほぼ同等の成績を得た。また、畳み込みに２×２のカーネルをストライド２で用いた場合では、特徴マップはさらにその半分のサイズに圧縮され、正答率は約４．５％の低下、重みのサイズは約５％の増加を示した。
【００７７】
なお、表には含まれないが、物体検知について、畳み込みに２×２のカーネルをストライド２で用いた場合と、３×３のカーネルをストライド２で用いた場合とで比較した結果、前者の方が精度及びデータサイズの点で良好な成績を挙げた。
【実施例２】
【００７８】
［概要］
本実施例では、Pascal VOCのデータセットを利用して物体検知を実施し、その精度評価をした。より具体的には、VOC2007の４９５２点の画像と、VOC2007及びVOC2012を併せた１６５５１点の画像からなる訓練データセットとを用いた。また、上記実施の形態における方法の実行には、SSD（Single Shot Detector）512モデルを用い、特徴抽出には、本来のVGG-16に変えて、ImageNetで事前訓練をしたSqueezeNetを用いた。これにより、パラメータの個数は4分の１に、全体推論時間は３分の１に減らすことができた。
【００７９】
また、VOCの元画像を５１２×５１２の解像度にリサイズした。ImageNetでの実施例と同様に、浮動小数点数、量子化のみ、圧縮まであり、の複数種類のモデルを用意して比較した。融合的演算を実行すれば、空間次元の高さゆえに全特徴マップメモリの８０％を超える割合を占める「fire2/squeeze」レイヤ及び「fire3/squeeze」レイヤに、量子化及び圧縮を適用した。深さ次元の線形的な増加に比べると、空間次元の減少は、最大プーリング層があるために、通常は二次元的である。圧縮モデルは８ビットの量子化済みモデルから導出し、いずれも２５６のサイズを単位とするミニバッチ学習を１万回のイテレーション、さらに２５００回のイテレーションごとに、１ｅ−３／１０から始まる段階的な学習率で確率的勾配降下法のソルバーによる再学習を実行した。
【００８０】
［結果］
図６は、本実施例における推論精度の評価結果の表を示す。各欄は左から、モデルの型、重みのデータサイズ、アクティベーションである特徴マップのデータサイズ、ｍＡＰ（mean Average Precision）を示す。
【００８１】
量子化あり、バイナリ表現化なしのモデル（再学習あり）では、浮動小数点数のモデルに比べてｍＡＰが８ビットで０．０４％、６ビットで約０．５％、４ビットで約２．２％、２ビットで約１２．３％下回った。なお、カッコ内の数値は、再学習なしの場合の参考値である。
【００８２】
畳み込みにサイズが１×１のカーネルを用いたバイナリ表現化ありの場合、ｍＡＰはバイナリ表現化なしのモデルに比べて６ビットで約０．５％上回り、４ビットで約０．５％下回った。
【００８３】
また、畳み込みに３×３のカーネルをストライド２で用いた場合、また、畳み込みに２×２のカーネルをストライド２で用いた場合では、後者の方がパラメータも計算量も少ない上に、より１％近く高いｍＡＰを示した。
【００８４】
［メモリ使用量］
図７は、上記のSSDモデルでのメモリ使用量をまとめた表である。なお、ここでは、全アクティベーションのメモリ使用量の８０％以上を占める最も大きい特徴マップのみを計測の対象とした。
【００８５】
入力フレームは別途保持されると想定して、融合的演算のみでも特徴マップのサイズは１９分の１に圧縮された。
【００８６】
また、融合的演算と量子化とを実行する固定小数点モデルでは、８ビットの場合でその約４分の１、４ビットの場合で約８分の１まで圧縮された。
【００８７】
さらに、上記実施の形態に係るバイナリ表現化を含む方法（カーネルサイズ：２×２、ストライド：２）を適用すると、上記の４ビットの場合からさらに半分のサイズにまで圧縮されたものの、ｍＡＰの低下は１．５％に留まった。
【００８８】
また、特徴抽出のために必要なメモリ使用量は、全体で二桁削減された。
【００８９】
［総括］
上記の様に、本開示におけるＤＮＮの実行方法では、複数のレイヤの融合的演算及び量子化を含む従来のＤＮＮの方法に、ＧＦ（２）上で推論及び学習を行う技術を加えて実行する。ＧＦ（２）のバイナリ表現を用いることで、特徴マップを、ＤＮＮに埋め込まれたオートエンコーダ的なレイヤを用いてより高次な空間で圧縮することができる。この圧縮−伸長レイヤは従来の畳み込みレイヤにビット単位の演算を加えて用いることで実装することができる。より正確には、本開示に係る方法は、有限体の濃度と引き換えにベクトル空間の次元性を得ることで、特徴をバイナリレベルで学習することを可能にするものである。本開示の推論のための圧縮の手法は、ＧＰＵ（Graphics Processing Unit）、ＣＰＵ（Central Processing Unit）、その他個別に設計されるアクセラレータにも適用することができる。また、バイナリを扱う既存のニューラルネットワークの適用範囲を、物体検知などの新たな応用分野に拡大して精度の高い成果を得ることが期待される。
【００９０】
［他の実施形態］
以上、一つまたは複数の態様に係るＤＮＮの実行方法及び学習方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものも、これらの態様のひとつとして含まれてもよい。
【００９１】
また、本開示ではＤＮＮの実施方法及び学習方法として実施形態を説明したが、本発明は、各レイヤによる処理を実行する機能的な構成要素を備えるＤＮＮの実行装置又は学習装置としても実現可能である。これらのような装置は、例えば上記の方法を実行するプロセッサ及び上記の非圧縮特徴マップを格納するためのメモリを備える、１台以上の情報処理装置で実現される。図８は、この実施の形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【００９２】
図８に示すように、情報処理装置１００は、ＣＰＵ１０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、メインメモリ１０２と、ストレージ１０３と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１０４と、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０５とを備える。これらの構成要素はバスに接続され、相互にデータをやり取りすることができる。
【００９３】
ＣＰＵ１０１は、ストレージ１０３等に記憶された制御プログラム及び、例えば上記のＤＮＮの実行方法を実現するためのプログラムを実行するプロセッサである。
【００９４】
メインメモリ１０２は、ＣＰＵ１０１が上記の各プログラムを実行するためのワークエリアとして用いられる揮発性の記憶領域である。
【００９５】
ストレージ１０３は、上記の各プログラム等を保持する不揮発性の記憶領域である。
【００９６】
通信Ｉ／Ｆ１０４は、通信ネットワーク（図示なし）を介して外部の機器と通信する通信インタフェースである。例えばＤＮＮの実行装置が複数台の情報処理装置１００で実現される場合は、情報処理装置１００間のデータのやり取りが、通信Ｉ／Ｆ１０４によって通信ネットワークを介して行われる。通信Ｉ／Ｆ１０４は、例えば、有線ＬＡＮインタフェースである。なお、通信Ｉ／Ｆ１０４は、無線ＬＡＮインタフェースであってもよい。また、通信Ｉ／Ｆ１０４は、ＬＡＮインタフェースに限らずに、通信ネットワークとの通信接続を確立できる通信インタフェースであればどのような通信インタフェースであってもよい。
【００９７】
ＧＰＵ１０５は、例えば上記のＤＮＮの学習方法を実現するためのプログラムを実行するプロセッサである。
【００９８】
また本発明は、プロセッサ及びメモリを備える情報処理装置に、上記の実施の形態に係るＤＮＮの実施方法又は学習方法を実行させるためのプログラムとして、また、このようなプログラムを保持する非一時的な記録媒体としても実現可能である。
【産業上の利用可能性】
【００９９】
本開示は、画像分類、物体検出などのコンピュータビジョンの分野に利用可能である。
【符号の説明】
【０１００】
１００    情報処理装置
１０１    ＣＰＵ
１０２    メインメモリ
１０３    ストレージ
１０４    通信Ｉ／Ｆ
１０５    ＧＰＵ
【図１】
2020532777.tif 000046
【図２】
2020532777.tif 000047
【図３】
2020532777.tif 000048
【図４】
2020532777.tif 000049
【図５】
2020532777.tif 000050
【図６】
2020532777.tif 000051
【図７】
2020532777.tif 000052
【図８】
2020532777.tif 000053
【国際調査報告】
2020532777.tif 000054