(57)【要約】  データ処理部（１０１）は、ニューラルネットワークを用いて入力データを処理する。圧縮制御部（１０２）は、量子化ステップが定義された量子化情報を生成する。符号化部（１０３）は、圧縮制御部（１０２）によって決定された量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報と量子化情報とを符号化して圧縮データを生成する。
2019008752.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用いて、入力データを処理するデータ処理部と、
前記ニューラルネットワークのパラメータデータを量子化するときの量子化ステップを決定し、量子化ステップが定義された量子化情報を生成する圧縮制御部と、
前記圧縮制御部によって決定された量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報と前記量子化情報とを符号化して圧縮データを生成する符号化部と
を備えたことを特徴とするデータ処理装置。
【請求項２】
ニューラルネットワークを用いて入力データを処理するデータ処理部と、
前記ニューラルネットワークのパラメータデータを量子化するときの量子化ステップが定義された量子化情報と、前記量子化情報における量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報と、が符号化された圧縮データを復号する復号部とを備え、
前記データ処理部は、
前記復号部によって圧縮データから復号された前記量子化情報および前記ネットワーク構成情報を用いてパラメータデータを逆量子化し、逆量子化したパラメータデータを含む前記ネットワーク構成情報を用いて前記ニューラルネットワークを構成すること
を特徴とするデータ処理装置。
【請求項３】
前記ニューラルネットワークのパラメータデータは、前記ニューラルネットワークにおけるノード間を結合するエッジに付与された重み情報であること
を特徴とする請求項１または請求項２記載のデータ処理装置。
【請求項４】
前記圧縮制御部は、エッジごとに量子化ステップを切り替え、
前記符号化部は、前記エッジごとの量子化ステップが定義された前記量子化情報を符号化すること
を特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記圧縮制御部は、ノードごとまたはカーネルごとに量子化ステップを切り替え、
前記符号化部は、前記ノードごとまたは前記カーネルごとの量子化ステップが定義された前記量子化情報を符号化すること
を特徴とする請求項１記載のデータ処理装置。
【請求項６】
前記圧縮制御部は、前記ニューラルネットワークのレイヤごとに量子化ステップを切り替え、
前記符号化部は、前記ニューラルネットワークのレイヤごとの量子化ステップが定義された前記量子化情報を符号化すること
を特徴とする請求項１記載のデータ処理装置。
【請求項７】
復号部が、ニューラルネットワークのパラメータデータを量子化するときの量子化ステップが定義された量子化情報と、前記量子化情報における量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報と、が符号化された圧縮データを復号するステップと、
データ処理部が、前記復号部によって圧縮データから復号された前記量子化情報および前記ネットワーク構成情報を用いてパラメータデータを逆量子化し、逆量子化したパラメータデータを含む前記ネットワーク構成情報を用いて前記ニューラルネットワークを構成し、当該ニューラルネットワークを用いて入力データを処理するステップと
を備えたことを特徴とするデータ処理方法。
【請求項８】
ニューラルネットワークのパラメータデータを量子化するときの量子化ステップが定義された量子化情報と、
前記量子化情報における量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報とが符号化された圧縮データであって、
データ処理装置が、
復号した前記量子化情報および前記ネットワーク構成情報を用いてパラメータデータを逆量子化して、逆量子化したパラメータデータを含む前記ネットワーク構成情報を用いて前記ニューラルネットワークを構成すること
を特徴とする圧縮データ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ニューラルネットワークの構成に関する情報を符号化して圧縮するデータ処理装置、データ処理方法および圧縮データに関する。
【背景技術】
【０００２】
入力データの分類問題および回帰問題を解決する方法として機械学習がある。
機械学習には、脳の神経回路（ニューロン）を模擬したニューラルネットワークという手法がある。ニューラルネットワークでは、ニューロンが相互に結合されたネットワークによって表現された確率モデル（識別モデル、生成モデル）によって、入力データの分類（識別）または回帰が行われる。
さらに、全結合層（Ｆｕｌｌｙ−ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒ）だけでなく、畳み込み層（Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ）とプーリング層（Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ）を持つニューラルネットワークである畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）では、データのフィルタ処理を実現するネットワークなど、分類および回帰以外のデータ処理を実現するネットワークが生成可能となっている。例えば、画像または音声を入力として、入力信号のノイズ除去、または高品質化などを実現する画像または音声のフィルタ処理、圧縮音声などの高域が失われた音声の高域復元処理、一部領域が欠損した画像の復元処理（ｉｎｐａｉｎｔｉｎｇ）、画像の超解像処理、などが畳み込みニューラルネットワークで実現可能である。
その他にも、生成モデルで生成されたデータが、本物のデータであるか（生成モデルによって生成されたデータではないか）を判定する識別モデルに入力してデータの真贋判定する、生成モデルと識別モデルとを組み合わせてネットワークを構築し、生成モデルは、生成データが識別モデルに生成データであることを見破られないように、識別モデルは、生成データが生成データであることを見破れるように、敵対的に学習することで、高精度な生成モデルの生成を実現する敵対的生成ネットワーク（Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋ）という新しいニューラルネットワークも近年発表されている。【０００３】
これらニューラルネットワークでは、大量のデータを用いた学習によってネットワークのパラメータを最適化することで、高性能化を図ることができる。
ただし、ニューラルネットワークのデータサイズは大容量化する傾向にあり、ニューラルネットワークを用いたコンピュータの計算負荷も増加している。【０００４】
これに対して、非特許文献１には、ニューラルネットワークのパラメータであるエッジの重みをスカラ量子化して符号化する技術が記載されている。エッジの重みをスカラ量子化して符号化することで、エッジに関するデータのデータサイズが圧縮される。
【先行技術文献】
【特許文献】
【０００５】
【非特許文献１】Ｖｉｎｃｅｎｔ  Ｖａｎｈｏｕｃｋｅ，  Ａｎｄｒｅｗ  Ｓｅｎｉｏｒ，  Ｍａｒｋ  Ｚ．  Ｍａｏ，  “  Ｉｍｐｒｏｖｉｎｇ  ｔｈｅ  ｓｐｅｅｄ  ｏｆ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ｏｎ  ＣＰＵｓ  ”，  Ｐｒｏｃ．  Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  ａｎｄ  Ｕｎｓｕｐｅｒｖｉｓｅｄ  Ｆｅａｔｕｒｅ  Ｌｅａｒｎｉｎｇ  ＮＩＰＳ  Ｗｏｒｋｓｈｏｐ，  ２０１１．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ニューラルネットワークにおける複数のエッジのそれぞれに付与される重みの最適値は、ネットワークの学習結果によって異なり、一定ではない。
このため、エッジの重みの圧縮サイズにばらつきが生じて、非特許文献１に記載される技術では、ニューラルネットワークのエッジに関するパラメータデータの高圧縮を実現できないという課題があった。【０００７】
この発明は上記課題を解決するもので、ニューラルネットワークのパラメータデータを高圧縮することができるデータ処理装置、データ処理方法および圧縮データを得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係るデータ処理装置は、データ処理部、圧縮制御部および符号化部を備えている。データ処理部は、ニューラルネットワークを用いて入力データを処理する。圧縮制御部は、ニューラルネットワークのパラメータデータを量子化するときの量子化ステップを決定し、量子化ステップが定義された量子化情報を生成する。符号化部は、圧縮制御部によって決定された量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報と量子化情報とを符号化して圧縮データを生成する。
【発明の効果】
【０００９】
この発明によれば、ニューラルネットワークのパラメータデータを量子化するときの量子化ステップが定義された量子化情報と量子化情報における量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報とを符号化して圧縮データを生成する。これにより、ニューラルネットワークのパラメータデータを高圧縮することができる。
圧縮データから復号した量子化情報およびネットワーク構成情報を用いることで、符号化側で最適化されたニューラルネットワークを復号側で構成することができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１に係るデータ処理装置（エンコーダ）の構成を示すブロック図である。
【図２】実施の形態１に係るデータ処理装置（デコーダ）の構成を示すブロック図である。
【図３】図３Ａは、実施の形態１に係るデータ処理装置の機能を実現するハードウェア構成を示すブロック図である。図３Ｂは、実施の形態１に係るデータ処理装置の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。
【図４】実施の形態１に係るデータ処理装置（エンコーダ）の動作を示すフローチャートである。
【図５】実施の形態１に係るデータ処理装置（デコーダ）の動作を示すフローチャートである。
【図６】実施の形態１におけるニューラルネットワークの構成例を示す図である。
【図７】実施の形態１における１次元データの畳み込み処理の例を示す図である。
【図８】実施の形態１における２次元データの畳み込み処理の例を示す図である。
【図９】ニューラルネットワークのｌ層目のレイヤにおけるノードごとのエッジの重み情報のマトリクスを示す図である。
【図１０】ニューラルネットワークのｌ層目のレイヤにおけるノードごとのエッジの重み情報の量子化ステップのマトリクスを示す図である。
【図１１】畳み込み層におけるエッジの重み情報のマトリクスを示す図である。
【図１２】畳み込み層におけるエッジの重み情報の量子化ステップのマトリクスを示す図である。
【図１３】実施の形態１における量子化情報を構成する情報のシンタックスを示す図である。
【図１４】実施の形態１における量子化情報を構成する情報のマトリクス単位のシンタックスを示す図である。
【図１５】実施の形態１における量子化情報を構成する情報のレイヤ単位のシンタックスを示す図である。
【発明を実施するための形態】
【００１１】
以下、この発明をより詳細に説明するため、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１に係るデータ処理装置１００の構成を示すブロック図である。図１において、データ処理装置１００は、学習済みのニューラルネットワークを用いて入力データを処理し、処理結果を出力する。
また、データ処理装置１００は、量子化情報およびネットワーク構成情報を符号化するエンコーダとして機能し、データ処理部１０１、圧縮制御部１０２および符号化部１０３を備える。
【００１２】
データ処理部１０１は、上記ニューラルネットワークを用いて入力データを処理する。
また、データ処理部１０１は、圧縮制御部１０２によって生成された量子化情報を入力し、量子化情報に定義された量子化ステップでニューラルネットワークのパラメータデータを量子化する。そして、データ処理部１０１は、量子化した上記パラメータデータを含むネットワーク構成情報を、符号化部１０３に出力する。
【００１３】
データ処理部１０１で用いる上記ニューラルネットワークは予め決めたものを用いてもよいし、学習によってパラメータデータの最適化を行ってもよい。
ニューラルネットワークのパラメータデータを学習する場合、予め決まった初期状態（パラメータデータの初期値）のニューラルネットワークに対して、学習対象の入力データを用いてニューラルネットワークの学習を行った後、圧縮制御部１０２によって生成された量子化情報を入力して量子化情報に定義された量子化ステップでニューラルネットワークのパラメータデータを量子化する。
そして、この量子化されたニューラルネットワークを次の学習の初期状態として、上記の学習と量子化を実施する。この学習と量子化の処理をＬ回（Ｌは１以上の整数）繰り返した結果として得られたニューラルネットワークをネットワーク構成情報の一部として、符号化部１０３に出力する。
なお、Ｌ＝１の場合は、量子化後のニューラルネットワークを再学習しないため、データ処理部１０１で学習せずに外部で学習済みのニューラルネットワークを用いることと同様の処理と言える。つまり、学習をデータ処理部１０１で行うか外部で行うかの違いのみである。
【００１４】
ネットワーク構成情報は、ニューラルネットワークの構成を示す情報であり、例えば、ネットワークのレイヤ数、レイヤごとのノード数、ノード間を繋ぐエッジ、エッジごとに付与された重み情報、ノードの出力を表す活性化関数および層ごとの種別情報（例えば、畳み込み層、プーリング層、全結合層）などが含まれる。
ニューラルネットワークのパラメータデータとは、例えば、ニューラルネットワークにおけるノード間を結合するエッジに付与された重み情報がある。
【００１５】
圧縮制御部１０２は、ニューラルネットワークのパラメータデータを量子化するときの量子化ステップを決定し、量子化ステップが定義された量子化情報を生成する。
例えば、圧縮制御部１０２は、ニューラルネットワークにおける、エッジごと、ノードごと、カーネルごと、または、レイヤごとに切り替わる量子化ステップを決定する。
【００１６】
量子化情報は、ニューラルネットワークのパラメータデータを量子化するときの量子化ステップが定義された情報である。量子化ステップとは、パラメータデータを量子化するときの幅（量子化幅）であり、量子化ステップが大きいほどパラメータデータが粗く分解されるので、圧縮率は高くなる。量子化ステップが小さいほどパラメータデータが細かく分解されるので、圧縮率は低くなる。
具体的には、量子化値ｋは、下記式（１）で表される。
ｋ＝ｆｌｏｏｒ（（ｘ／Ｑ）＋ｄ０）＋ｄ１      （１）
上記式（１）において、ｘは量子化対象パラメータの値、Ｑは量子化ステップ、ｄ０（０≦ｄ０＜１）は、それぞれの量子化値に対応する量子化対象値の範囲の調整オフセットであり、ｄ１（０≦ｄ１＜１）は量子化値を調整するオフセット、ｆｌｏｏｒ（）は小数点切捨て処理関数を示している。さらに、上記式（１）に対して設定した範囲の量子化対象値ｘの量子化値ｋを０とするデッドゾーンを設ける方法もある。
また、量子化済みパラメータの値ｙは下記式（２）のとおりとなる。
ｙ＝ｋＱ      （２）
上記で説明した量子化ステップの最小切り替え単位を、エッジ単位からレイヤ単位とした場合、量子化によるパラメータデータの圧縮率が高くなるので、符号化前のパラメータデータを削減することができる。
【００１７】
符号化部１０３は、データ処理部１０１によって量子化されたパラメータデータを含むネットワーク構成情報と、圧縮制御部１０２によって生成された量子化情報と、を符号化して圧縮データを生成する。
なお、データ処理部１０１から符号化部１０３に入力されたネットワーク構成情報は、圧縮制御部１０２によって決定された量子化ステップで、データ処理部１０１によって量子化されたパラメータデータを含むネットワーク構成情報である。
【００１８】
図２は実施の形態１に係るデータ処理装置２００の構成を示すブロック図である。図２において、データ処理装置２００は、圧縮データを復号して得られるニューラルネットワークを用いて入力データを処理し、処理結果を出力する。処理結果には、データ処理装置１００と同様に、入力データの分類結果または回帰分析結果がある。
データ処理装置２００は、圧縮データから、量子化情報およびネットワーク構成情報を復号するデコーダとして機能し、復号部２０１およびデータ処理部２０２を備える。
【００１９】
復号部２０１は、前述したように符号化部１０３によって符号化された圧縮データから量子化情報およびネットワーク構成情報を復号する。
復号部２０１によって復号されたネットワーク構成情報には、エンコーダであるデータ処理装置１００側の学習結果によって最適化されたエッジの重み情報などのパラメータデータを量子化した結果（量子化値ｋ）が含まれている。
復号部２０１によって復号された量子化情報には、パラメータデータを量子化するときの量子化ステップＱが定義されている。上記パラメータデータを量子化した結果ｋと上記量子化ステップＱから、上記式（２）に従って、量子化済みパラメータｙが復号される。これらの復号結果は、復号部２０１からデータ処理部２０２に出力される。
【００２０】
データ処理部２０２は、ニューラルネットワークを用いて入力データを処理する。
また、データ処理部２０２は、復号部２０１によって圧縮データから復号された量子化情報およびネットワーク構成情報を用いて、パラメータデータであるエッジの重み情報を逆量子化する。さらに、データ処理部２０２は、逆量子化したパラメータデータを含んだネットワーク構成情報を用いて、ニューラルネットワークを構成する。
【００２１】
このように、データ処理部２０２は、圧縮データから復号された情報を用いて、データ処理装置１００側の学習結果によって最適化されたエッジの重み情報などのパラメータデータを含んだニューラルネットワークを構成し、このニューラルネットワークを用いて入力データを処理する。これにより、データ処理装置１００とデータ処理装置２００とで、最適化されたパラメータデータの圧縮サイズを一定にすることができ、パラメータデータの高圧縮を実現することができる。
【００２２】
図３Ａは、データ処理装置１００の機能を実現するハードウェア構成を示すブロック図である。図３Ａにおいて、処理回路３００は、データ処理装置１００として機能する専用の回路である。図３Ｂは、データ処理装置１００の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図３Ｂにおいて、プロセッサ３０１およびメモリ３０２は、信号バスによって互いに接続されている。
【００２３】
データ処理装置１００における、データ処理部１０１、圧縮制御部１０２および符号化部１０３のそれぞれの機能は、処理回路によって実現される。
すなわち、データ処理装置１００は、図４を用いて後述するステップＳＴ１からステップＳＴ３までの処理を実行するための処理回路を備える。
処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。
【００２４】
上記処理回路が図３Ａに示す専用のハードウェアである場合、処理回路３００は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）またはこれらを組み合わせたものが該当する。
なお、データ処理部１０１、圧縮制御部１０２および符号化部１０３のそれぞれの機能を別々の処理回路で実現してもよいし、これらの機能をまとめて１つの処理回路で実現してもよい。
【００２５】
上記処理回路が図３Ｂに示すプロセッサである場合、データ処理部１０１、圧縮制御部１０２および符号化部１０３のそれぞれの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。
ソフトウェアまたはファームウェアは、プログラムとして記述されて、メモリ３０２に記憶される。
プロセッサ３０１は、メモリ３０２に記憶されたプログラムを読み出して実行することによってデータ処理部１０１、圧縮制御部１０２および符号化部１０３のそれぞれの機能を実現する。すなわち、データ処理装置１００は、プロセッサ３０１によって実行されるときに、図４に示すステップＳＴ１からステップＳＴ３までの処理が結果的に実行されるプログラムを記憶するためのメモリ３０２を備える。
これらのプログラムは、データ処理部１０１、圧縮制御部１０２および符号化部１０３の手順または方法をコンピュータに実行させるものである。
メモリ３０２は、コンピュータを、データ処理部１０１、圧縮制御部１０２および符号化部１０３として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
【００２６】
メモリ３０２には、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ−ＥＰＲＯＭ）などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤなどが該当する。
【００２７】
なお、データ処理部１０１、圧縮制御部１０２および符号化部１０３のそれぞれの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。
例えば、データ処理部１０１については、専用のハードウェアとしての処理回路でその機能を実現し、圧縮制御部１０２および符号化部１０３については、プロセッサ３０１がメモリ３０２に記憶されたプログラムを読み出して実行することによってその機能を実現してもよい。
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせによって上記機能のそれぞれを実現することができる。
【００２８】
なお、データ処理装置１００について説明したが、データ処理装置２００においても、同様である。例えば、データ処理装置２００は、図５を用いて後述するステップＳＴ１ａからステップＳＴ４ａまでの処理を実行するための処理回路を備える。この処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するＣＰＵであってもよい。
【００２９】
上記処理回路が図３Ａに示す専用のハードウェアであれば、処理回路３００は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらを組み合わせたものが該当する。
なお、復号部２０１およびデータ処理部２０２のそれぞれの機能を、別々の処理回路で実現してもよいし、これらの機能をまとめて１つの処理回路で実現してもよい。
【００３０】
上記処理回路が図３Ｂに示すプロセッサであると、復号部２０１およびデータ処理部２０２のそれぞれの機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。
ソフトウェアまたはファームウェアは、プログラムとして記述されて、メモリ３０２に記憶される。
プロセッサ３０１は、メモリ３０２に記憶されたプログラムを読み出して実行することによって、復号部２０１およびデータ処理部２０２のそれぞれの機能を実現する。
すなわち、データ処理装置２００は、プロセッサ３０１によって実行されるときに、図５に示すステップＳＴ１ａからステップＳＴ４ａまでの処理が結果的に実行されるプログラムを記憶するためのメモリ３０２を備える。
これらのプログラムは、復号部２０１およびデータ処理部２０２の手順または方法を、コンピュータに実行させるものである。
メモリ３０２は、コンピュータを、復号部２０１およびデータ処理部２０２として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
【００３１】
なお、復号部２０１およびデータ処理部２０２のそれぞれの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。
例えば、復号部２０１については、専用のハードウェアとしての処理回路でその機能を実現し、データ処理部２０２については、プロセッサ３０１がメモリ３０２に記憶されたプログラムを読み出して実行することによってその機能を実現してもよい。
【００３２】
次に動作について説明する。
図４は、データ処理装置１００の動作を示すフローチャートである。
以下では、ニューラルネットワークのパラメータデータがエッジの重み情報である場合を説明する。
圧縮制御部１０２は、学習済みのニューラルネットワークを構成する複数のエッジのそれぞれの重み情報を量子化するときの量子化ステップを決定して、量子化ステップが定義された量子化情報を生成する（ステップＳＴ１）。量子化情報は、圧縮制御部１０２からデータ処理部１０１および符号化部１０３に出力される。
【００３３】
データ処理部１０１は、圧縮制御部１０２から量子化情報を入力すると、量子化情報における量子化ステップで、上記ニューラルネットワークのエッジの重み情報を量子化する（ステップＳＴ２）。データ処理部１０１は、量子化したエッジの重み情報を含むネットワーク構成情報を生成して符号化部１０３に出力する。
【００３４】
符号化部１０３は、データ処理部１０１から入力した上記ネットワーク構成情報と圧縮制御部１０２から入力した上記量子化情報とを符号化する（ステップＳＴ３）。
符号化部１０３によって符号化された上記ネットワーク構成情報および上記量子化情報の圧縮データは、データ処理装置２００に出力される。
【００３５】
図５は、データ処理装置２００の動作を示すフローチャートである。
復号部２０１は、符号化部１０３によって符号化された上記圧縮データから量子化情報およびネットワーク構成情報を復号する（ステップＳＴ１ａ）。量子化情報およびネットワーク構成情報は、復号部２０１からデータ処理部２０２に出力される。
【００３６】
次に、データ処理部２０２は、復号部２０１によって圧縮データから復号された量子化情報とネットワーク構成情報とを用いて、逆量子化されたエッジの重み情報を算出する（ステップＳＴ２ａ）。
【００３７】
続いて、データ処理部２０２は、逆量子化したエッジの重み情報を含んだネットワーク構成情報を用いて、ニューラルネットワークを構成する（ステップＳＴ３ａ）。
これにより、データ処理装置２００は、データ処理装置１００で学習済みのニューラルネットワークを構成することができる。
【００３８】
データ処理部２０２は、ステップＳＴ３ａで構成したニューラルネットワークを用いて入力データを処理する（ステップＳＴ４ａ）。
【００３９】
図６は、実施の形態１におけるニューラルネットワークの構成例を示す図である。
図６に示すニューラルネットワークでは、入力データ（ｘ１，ｘ２，・・・，ｘＮ１）がそれぞれの層で処理されて、処理結果（ｙ１，・・・，ｙＮＬ）が出力される。
図６において、Ｎｌ（ｌ＝１，２，・・・，Ｌ）は、ｌ層目のレイヤのノード数を示しており、Ｌは、ニューラルネットワークのレイヤ数を示している。
ニューラルネットワークは、図６に示すように、入力層、隠れ層および出力層を有しており、これらの層のそれぞれには、複数のノードがエッジで繋がれた構造になっている。
複数のノードのそれぞれの出力値は、エッジによって繋がれた前の層のノードの出力値と、エッジの重み情報、および、層ごとに設定されている活性化関数から算出することができる。
【００４０】
ニューラルネットワークの例として、ＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）がある。ＣＮＮの隠れ層には、畳み込み層（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｌａｙｅｒ）とプーリング層（Ｐｏｏｌｉｎｇ  ｌａｙｅｒ）とが交互に繋がっており、最終的な出力に合わせて全結合のニューラルネットワーク層（全結合層；Ｆｕｌｌｙ−ｃｏｎｎｅｃｔｅｄ  ｌａｙｅｒ）が設けられている。畳み込み層の活性化関数には、例えば、ＲｅＬＵ関数が用いられる。
なお、ＤＮＮ（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）と呼ばれるネットワーク（ディープラーニング、ＤＣＮＮ（Ｄｅｅｐ  ＣＮＮ）などとも呼ばれる）は、ＣＮＮのレイヤ数を多層化したものである。
【００４１】
図７は、実施の形態１における１次元データの畳み込み処理の例を示す図であり、１次元データの畳み込み処理を行う畳み込み層を示している。１次元データには、例えば、音声データ、時系列データがある。
図７に示す畳み込み層は、前層に９つのノード１０−１〜１０−９、次層に３つのノード１１−１〜１１−３を備えている。
エッジ１２−１，１２−６，１２−１１には同じ重みが付与されており、エッジ１２−２，１２−７，１２−１２には同じ重みが付与されており、エッジ１２−３，１２−８，１２−１３には同じ重みが付与されており、エッジ１２−４，１２−９，１２−１４には同じ重みが付与されており、エッジ１２−５，１２−１０，１２−１５には同じ重みが付与されている。また、エッジ１２−１から１２−５までの重みは全て異なる値となる場合もあるし、複数の重みが同じ値となる場合もある。
【００４２】
前層の９つのノード１０−１〜１０−９のうち、５つのノードが、上記の重みで次層の１つのノードに繋がっている。カーネルサイズＫは５であり、カーネルは、これらの重みの組み合わせによって規定される。
例えば、図７に示すように、ノード１０−１は、エッジ１２−１を介してノード１１−１に繋がり、ノード１０−２は、エッジ１２−２を介してノード１１−１に繋がり、ノード１０−３は、エッジ１２−３を介してノード１１−１に繋がり、ノード１０−４は、エッジ１２−４を介してノード１１−１に繋がり、ノード１０−５は、エッジ１２−５を介してノード１１−１に繋がっている。カーネルは、エッジ１２−１〜１２−５の重みの組み合わせによって規定される。
【００４３】
ノード１０−３は、エッジ１２−６を介してノード１１−２に繋がり、ノード１０−４は、エッジ１２−７を介してノード１１−２に繋がり、ノード１０−５は、エッジ１２−８を介してノード１１−２に繋がり、ノード１０−６は、エッジ１２−９を介してノード１１−２に繋がり、ノード１０−７は、エッジ１２−１０を介してノード１１−２に繋がっている。カーネルは、エッジ１２−６〜１２−１０の重みの組み合わせによって規定される。
ノード１０−５は、エッジ１２−１１を介してノード１１−３に繋がり、ノード１０−６は、エッジ１２−１２を介してノード１１−３に繋がり、ノード１０−７は、エッジ１２−１３を介してノード１１−３に繋がり、ノード１０−８は、エッジ１２−１４を介してノード１１−３に繋がり、ノード１０−９は、エッジ１２−１５を介してノード１１−３に繋がっている。カーネルは、エッジ１２−１１〜１２−１５の重みの組み合わせによって規定される。
【００４４】
データ処理部１０１またはデータ処理部２０２は、ＣＮＮを用いた入力データの処理において、畳み込み層のエッジの重みの組み合わせを用いて、カーネルごとにステップ数Ｓ（図７では、Ｓ＝２）の間隔で畳み込み演算を実施する。エッジの重みの組み合わせは、カーネルごとに学習によって決定される。
なお、画像認識用途のＣＮＮでは、複数のカーネルを有する畳み込み層でネットワークが構成されることが多い。
【００４５】
図８は、実施の形態１における２次元データの畳み込み処理の例を示す図であり、画像データといった２次元データの畳み込み処理を示している。
図８に示す２次元データのうち、カーネル２０は、ｘ方向のサイズがＫｘ、ｙ方向のサイズがＫｙのブロック領域である。カーネルサイズＫは、Ｋ＝Ｋｘ×Ｋｙである。
データ処理部１０１またはデータ処理部２０２は、２次元データにおいて、ｘ方向ステップ数Ｓｘの間隔およびｙ方向ステップ数Ｓｙの間隔で、カーネル２０ごとのデータの畳み込み演算を実施する。ここで、ステップＳｘ，Ｓｙは１以上の整数である。
【００４６】
図９は、ニューラルネットワークの全結合層であるｌ（ｌ＝１，２，・・・，Ｌ）層目のレイヤにおけるノードごとのエッジの重み情報のマトリクスを示す図である。
図１０は、ニューラルネットワークの全結合層であるｌ（ｌ＝１，２，・・・，Ｌ）層目のレイヤにおけるノードごとのエッジの重み情報の量子化ステップのマトリクスを示す図である。
【００４７】
ニューラルネットワークにおいては、図９に示すレイヤごとの重みｗｉｊの組み合わせが、ネットワークを構成するデータとなる。このため、ＤＮＮのような多層のニューラルネットワークでは、一般的に数百Ｍｂｙｔｅ以上のデータ量となり、大きなメモリサイズも必要となる。なお、ｉは、ノードインデックスであり、ｉ＝１，２，・・・，Ｎｌである。ｊは、エッジインデックスであり、ｊ＝１，２，・・・，Ｎｌ−１である。
【００４８】
そこで、実施の形態１に係るデータ処理装置１００では、エッジの重み情報のデータ量を削減するため、重み情報を量子化する。図１０に示すように、量子化ステップｑｉｊは、エッジの重みｗｉｊごとに設定される。
さらに、量子化ステップは、複数のノードインデックスまたは複数のエッジインデックス、あるいは複数のノードインデックスとエッジインデックスで共通化してもよい。このようにすることで、符号化すべき量子化情報を削減することができる。
【００４９】
図１１は、畳み込み層におけるエッジの重み情報のマトリクスを示す図である。
図１２は、畳み込み層におけるエッジの重み情報の量子化ステップのマトリクスを示す図である。畳み込み層では、１つのカーネルに対するエッジの重みは全てのノードで共通であり、ノード一つ当たりに結合するエッジ数、すなわちカーネルサイズＫを小さくしてカーネルを小領域とすることができる。
【００５０】
図１１は、エッジの重みｗｉ’ｊ’をカーネルごとに設定したデータであり、図１２は、量子化ステップｑｉ’ｊ’をカーネルごとに設定したデータである。
なお、ｉ’は、カーネルインデックスであり、ｉ’＝１，２，・・・，Ｍｌ（ｌ＝１，２，・・・，Ｌ）である。ｊ’は、エッジインデックスであり、ｊ’＝１，２，・・・，Ｋｌである。
さらに、量子化ステップは、複数のカーネルインデックスまたは複数のエッジインデックス、あるいは複数のカーネルインデックスとエッジインデックスで共通化してもよい。このようにすることで符号化すべき量子化情報を削減することができる。
【００５１】
圧縮制御部１０２は、図４のステップＳＴ１において、データ処理部１０１による重みの量子化処理に用いる量子化ステップを決定し、量子化情報としてデータ処理部１０１に出力する。量子化ステップは、図１０に示した量子化ステップｑｉｊおよび図１２に示した量子化ステップｑｉ’ｊ’である。
【００５２】
データ処理部１０１は、図４のステップＳＴ２において、図１０に示した量子化ステップｑｉｊで、図９に示したエッジの重みｗｉｊを量子化し、量子化された重みｗｉｊを含むネットワーク構成情報を符号化部１０３に出力する。
同様に、データ処理部１０１は、図４のステップＳＴ２において、図１２に示した量子化ステップｑｉ’ｊ’で、図１１に示したエッジの重みｗｉ’ｊ’を量子化して、量子化された重みｗｉ’ｊ’を含むネットワーク構成情報を符号化部１０３に出力する。
なお、ネットワーク構成情報には、量子化された重み以外に、ネットワークのレイヤ数、レイヤごとのノード数、ノード間を繋ぐエッジ、エッジごとに付与された重み情報、ノードの出力を表す活性化関数、層ごとの種別情報（畳み込み層、プーリング層、全結合層）等が含まれる。ただし、データ処理装置１００とデータ処理装置２００との間で予め固定（定義）している情報については、符号化するネットワーク構成情報に含まない。
【００５３】
図１３は、実施の形態１における量子化情報を構成する情報のシンタックスを示す図である。
図１４は、実施の形態１における量子化情報を構成する情報のマトリクス単位のシンタックスを示す図である。
図１５は、実施の形態１における量子化情報を構成する情報のレイヤ単位のシンタックスを示す図である。
【００５４】
図１３において、フラグｑｕａｎｔ＿ｅｎａｂｌｅ＿ｆｌａｇ、フラグｌａｙｅｒ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇ、フラグｍａｔｒｉｘ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇ、および量子化ステップｆｉｘｅｄ＿ｑｕａｎｔ＿ｓｔｅｐは、符号化部１０３によって符号化される量子化情報の符号化パラメータである。
また、Ｌはレイヤ数である。
【００５５】
図１４において、量子化ステップｂａｓｅ＿ｑｕａｎｔ＿ｓｔｅｐ［ｊ］、フラグｐｒｅｖ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−１］、および差分値ｄｉｆｆ＿ｑｕａｎｔ＿ｖａｌｕｅ［ｉ−１］［ｊ］は、符号化部１０３によって符号化される量子化情報の符号化パラメータである。
また、Ｃは、ノード数Ｎｌａｙｅｒ＿ｉｄまたはカーネル数Ｍｌａｙｅｒ＿ｉｄである。さらに、Ｅは、エッジ数Ｎｌａｙｅｒ＿ｉｄ−１またはカーネルサイズＫｌａｙｅｒ＿ｉｄである。
【００５６】
図１５において、量子化ステップｂａｓｅ＿ｌａｙｅｒ＿ｑｕａｎｔ＿ｓｔｅｐ、フラグｌａｙｅｒ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−２］、および量子化ステップｌａｙｅｒ＿ｑｕａｎｔ＿ｓｔｅｐ［ｉ−２］は、符号化部１０３によって符号化される量子化情報の符号化パラメータである。また、Ｌはレイヤ数である。
【００５７】
図１３に示す情報には、ネットワークにおけるエッジの重み情報の量子化の有無が設定されるフラグｑｕａｎｔ＿ｅｎａｂｌｅ＿ｆｌａｇが含まれている。
フラグｑｕａｎｔ＿ｅｎａｂｌｅ＿ｆｌａｇが０（偽）である場合は、ネットワークにおける全てのエッジの重み情報が量子化されない。すなわち、量子化ステップが量子化情報に設定されない。
一方、フラグｑｕａｎｔ＿ｅｎａｂｌｅ＿ｆｌａｇが１（真）である場合、圧縮制御部１０２は、フラグｌａｙｅｒ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇを参照する。
【００５８】
圧縮制御部１０２は、フラグｌａｙｅｒ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇが０（偽）である場合、ネットワークにおける全てのエッジに共通した量子化ステップｆｉｘｅｄ＿ｑｕａｎｔ＿ｓｔｅｐを、量子化情報に設定する。
フラグｌａｙｅｒ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇが１（真）である場合、圧縮制御部１０２は、フラグｍａｔｒｉｘ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇを参照する。
【００５９】
フラグｍａｔｒｉｘ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇが０（偽）であると、圧縮制御部１０２は、ネットワークにおける複数のエッジのそれぞれの重み情報の量子化ステップとして、レイヤ単位で共通した量子化ステップを決定する。
ただし、入力層（１層目）はエッジを持たないため、量子化ステップは設定されない。
なお、図１５は、レイヤ単位で共通した量子化ステップに関するシンタックスを示している。
【００６０】
フラグｍａｔｒｉｘ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇが１（真）であると、圧縮制御部１０２は、ネットワークにおける複数のエッジのそれぞれの重み情報の量子化ステップとして、図１０に示した量子化ステップまたは図１２に示した量子化ステップを決定する。図１４は、図１０または図１２に示した量子化ステップのシンタックスを示している。
【００６１】
図１４に示すシンタックスについて説明する。
前述したように、入力層（１層目）はエッジを持たない。
このため、ＩＤ情報ｌａｙｅｒ＿ｉｄが１からＬ−１までのｌａｙｅｒ＿ｉｄ＋１層目のレイヤが、量子化ステップの設定対象となる。
まず、圧縮制御部１０２は、ｌａｙｅｒ＿ｉｄ＋１層目のレイヤにおいて、図１０に示した１番目のノード（図１２では、１番目のカーネル）の量子化ステップを示すｂａｓｅ＿ｑｕａｎｔ＿ｓｔｅｐ［ｊ］（ｊ＝０，１，・・・，Ｅ−１）を設定する。
なお、Ｅは、エッジ数Ｎｌａｙｅｒ＿ｉｄまたはカーネルサイズＫｌａｙｅｒ＿ｉｄ＋１である。
【００６２】
次に、圧縮制御部１０２は、２番目以降（ｉ≧１）のノード（またはカーネル）について、ノード（またはカーネル）単位に、１つ前のインデックスのノード（またはカーネル）と量子化ステップが同じであるか否かを示すフラグｐｒｅｖ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−１］を参照する。
フラグｐｒｅｖ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−１］が１（真）である場合、ｉ＋１番目のノード（またはカーネル）は、ｉ番目のノード（またはカーネル）と量子化ステップが同じである。
一方、フラグｐｒｅｖ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−１］が０（偽）である場合、圧縮制御部１０２は、ｉ＋１番目のノード（またはカーネル）の量子化ステップを生成する情報として、差分値ｄｉｆｆ＿ｑｕａｎｔ＿ｖａｌｕｅ［ｉ−１］［ｊ］（ｉ＝１，２，・・・，Ｃ−１、ｊ＝０，１，・・・，Ｅ−１）を設定する。
【００６３】
量子化ステップは、差分値ｄｉｆｆ＿ｑｕａｎｔ＿ｖａｌｕｅ［ｉ−１］［ｊ］に対して１つ前のノード（またはカーネル）に設定された量子化ステップを加算して生成することができる。
すなわち、２番目（ｉ＝１）のノード（またはカーネル）では、ｂａｓｅ＿ｑｕａｎｔ＿ｓｔｅｐ［ｊ］＋ｄｉｆｆ＿ｑｕａｎｔ＿ｖａｌｕｅ［０］［ｊ］が量子化ステップとなる。３番目以降（ｉ≧２）のノード（またはカーネル）は、ｄｉｆｆ＿ｑｕａｎｔ＿ｖａｌｕｅ［ｉ−２］［ｊ］＋ｄｉｆｆ＿ｑｕａｎｔ＿ｖａｌｕｅ［ｉ−１］［ｊ］が量子化ステップとなる。
【００６４】
なお、符号化パラメータとしてノード（またはカーネル）間での量子化ステップの差分値ｄｉｆｆ＿ｑｕａｎｔ＿ｖａｌｕｅ［ｉ−１］［ｊ］を示したが、ノード（またはカーネル）単位に独立の量子化ステップを設定してもよい。
ノード（またはカーネル）間の量子化ステップの相関が低い傾向にある場合、このように構成する方が、符号化部１０３での符号化効率が高くなる。
【００６５】
図１５に示すシンタックスについて説明する。
前述したように、入力層（１層目）はエッジを持たない。
そこで、圧縮制御部１０２は、２層目のレイヤにおける全てのエッジの重み情報に共通の量子化ステップとして、ｂａｓｅ＿ｌａｙｅｒ＿ｑｕａｎｔ＿ｓｔｅｐを設定する。
次に、圧縮制御部１０２は、３層目以降（ｉ≧２）のレイヤについて、ｉ＋１層目のレイヤにおける全てのエッジの重み情報に共通の量子化ステップが、ｉ層目のレイヤにおける全てのエッジの重み情報に共通の量子化ステップと同一であるか否かを示すフラグｌａｙｅｒ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−２］（ｉ＝２，３，・・・，Ｌ−１）を参照する。
【００６６】
フラグｌａｙｅｒ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−２］が１（真）であれば、圧縮制御部１０２は、ｉ＋１層目における全てのエッジの重み情報に共通の量子化ステップを、ｉ層目のレイヤにおける全てのエッジの重み情報に共通の量子化ステップと同一とする。一方、フラグｌａｙｅｒ＿ｑｕａｎｔ＿ｃｏｐｙ＿ｆｌａｇ［ｉ−２］が０（偽）であれば、圧縮制御部１０２は、ｉ＋１層目における全てのエッジの重み情報に共通の量子化ステップとして、ｌａｙｅｒ＿ｑｕａｎｔ＿ｓｔｅｐ［ｉ−２］を設定する。
【００６７】
なお、圧縮制御部１０２が、レイヤ単位に独立した量子化ステップとしてｌａｙｅｒ＿ｑｕａｎｔ＿ｓｔｅｐ［ｉ−２］を定義する場合を示したが、１つ前のレイヤ（ｉ層目のレイヤ）の量子化ステップとの差分値としてｌａｙｅｒ＿ｑｕａｎｔ＿ｓｔｅｐ［ｉ−２］を定義してもよい。差分値とすることで０近傍の差分値が多く発生するので、符号化部１０３での符号化効率を高めることができる。
【００６８】
符号化部１０３は、図１３から図１５までにおける符号化パラメータを、量子化情報として符号化して圧縮データを生成する。
なお、量子化ステップの最小切り替え単位をエッジ単位としたが、図１０に示すようにノード単位（図１２では、カーネル単位）を、量子化ステップの最小切り替え単位としてもよい。これは、図１４においてＥ＝１とすることと同意である。この場合、量子化ステップは、ノード単位（図１２では、カーネル単位）に独立に符号化してもよい。
【００６９】
また、量子化ステップの最小切り替え単位は、レイヤ単位であってもよい。
これは、図１３においてフラグｌａｙｅｒ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇ＝１（真）である場合に、フラグｍａｔｒｉｘ＿ａｄａｐｔｉｖｅ＿ｑｕａｎｔ＿ｆｌａｇなしに、常にｌａｙｅｒ＿ｑｕａｎｔ＿ｃｏｄｉｎｇ（）のみを実行することと同意である。このように量子化ステップの最小切り替え単位を、エッジ単位よりも大きくすることで、符号化前の量子化情報のデータサイズを削減することができる。
【００７０】
以上のように、実施の形態１に係るデータ処理装置１００において、データ処理部１０１が、ニューラルネットワークを用いて入力データを処理する。圧縮制御部１０２が、量子化ステップを決定し、量子化ステップが定義された量子化情報を生成する。符号化部１０３が、圧縮制御部１０２によって決定された量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報と量子化情報とを符号化して圧縮データを生成する。
特に、上記では、ニューラルネットワークのパラメータデータとしてニューラルネットワークにおけるノード間を結合するエッジに付与された重み情報を扱う例について説明した。これらの構成を有することで、量子化ステップが定義された量子化情報と量子化情報における量子化ステップで量子化されたパラメータデータを含むネットワーク構成情報とが圧縮データに符号化される。これにより、ニューラルネットワークのパラメータデータを高圧縮することができる。
また、圧縮データから復号された量子化情報およびネットワーク構成情報を用いることで、符号化側で最適化されたニューラルネットワークを復号側で構成することができる。
【００７１】
実施の形態１に係るデータ処理装置２００において、データ処理部２０２が、ニューラルネットワークを用いて入力データを処理する。復号部２０１が圧縮データを復号する。
この構成において、データ処理部２０２が、復号部２０１によって圧縮データから復号された量子化情報およびネットワーク構成情報を用いてパラメータデータを逆量子化し、逆量子化したパラメータデータを含むネットワーク構成情報を用いてニューラルネットワークを構成する。
これにより、圧縮データから復号した量子化情報およびネットワーク構成情報を用いて符号化側で最適化されたニューラルネットワークを構成することができる。
【００７２】
実施の形態１に係るデータ処理装置１００において、圧縮制御部１０２が、エッジごとに量子化ステップを切り替える。符号化部１０３は、エッジごとの量子化ステップが定義された量子化情報を符号化する。このように構成することで、パラメータデータを高精度に量子化することができる。
【００７３】
実施の形態１に係るデータ処理装置１００において、圧縮制御部１０２が、ノードごとまたはカーネルごとに量子化ステップを切り替える。符号化部１０３は、ノードごとまたはカーネルごとの量子化ステップが定義された量子化情報を符号化する。
このように構成しても、パラメータデータを高精度に量子化することができる。
【００７４】
実施の形態１に係るデータ処理装置１００において、圧縮制御部１０２が、ニューラルネットワークのレイヤごとに量子化ステップを切り替える。符号化部１０３は、ニューラルネットワークのレイヤごとの量子化ステップが定義された量子化情報を符号化する。
このように構成することで、量子化によるパラメータデータの圧縮率が高まるので、符号化前の重み情報のデータ量を削減することができる。
【００７５】
実施の形態２．
実施の形態１では、ニューラルネットの出力結果を直接的にデータ処理結果とする例について述べたが、ニューラルネットの中間レイヤの出力を、下記の参考文献の画像検索（ｒｅｔｒｉｅｖａｌ）またはマッチング（ｍａｔｃｈｉｎｇ）を一例とした画像データおよび音声データに対するデータ処理の特徴量として用い、これを下記の参考文献のように別のデータ処理手法によって最終的なデータ処理結果を得る応用例がある。
例えば、画像検索、マッチング、物体追跡等の画像処理の画像特徴量としてニューラルネットの中間レイヤの出力を用いる場合、従来の上記画像処理で用いられている画像特徴量であるＨＯＧ（Ｈｉｓｔｏｇｒａｍ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ）、ＳＩＦＴ（Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）、ＳＵＲＦ（Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）などに対する画像特徴量の置き換えもしくは追加を行うことで、上記従来の画像特徴量を用いた画像処理と同じ処理フローで画像処理を実現できる。
この場合、データ処理装置１００において、ネットワーク構成情報、量子化情報として符号化するのはデータ処理の特徴量とする出力が得られる中間レイヤまでのニューラルネットワークとなる。
さらに、データ処理装置１００は上記データ処理の特徴量を用いて画像検索等のデータ処理を行う。データ処理装置２００は圧縮データから上記中間レイヤまでのニューラルネットワークを復号し、入力データを入力して得られる出力をデータ処理の特徴量として画像検索等のデータ処理を実施する。
（参考文献）ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１／ｍ３９２１９，  “Ｉｍｐｒｏｖｅｄ  ｒｅｔｒｉｅｖａｌ  ａｎｄ  ｍａｔｃｈｉｎｇ  ｗｉｔｈ  ＣＮＮ  ｆｅａｔｕｒｅ  ｆｏｒ  ＣＤＶＡ”，  Ｃｈｅｎｇｄｕ，  Ｃｈｉｎａ，  Ｏｃｔ．２０１６．
【００７６】
したがって、実施の形態２に係るデータ処理装置１００において量子化によるパラメータデータの圧縮率が高まるので、符号化前の重み情報のデータ量を削減することができる。実施の形態２に係るデータ処理装置２００においては、上記データ処理装置１００から出力される圧縮データを復号してニューラルネットワークを生成することでデータ処理を実施することができる。
【００７７】
なお、本発明は上記実施の形態に限定されるものではなく、本発明の範囲内において、実施の形態の任意の構成要素の変形もしくは実施の形態の任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００７８】
この発明に係るデータ処理装置は、ニューラルネットワークのパラメータデータを高圧縮することができるので、例えば、画像認識技術への利用が可能である。
【符号の説明】
【００７９】
１０−１〜１０−９，１１−１〜１１−３  ノード、１２−１〜１２−１５  エッジ、２０  カーネル、１００，２００  データ処理装置、１０１，２０２  データ処理部、１０２  圧縮制御部、１０３  符号化部、２０１  復号部、３００  処理回路、３０１  プロセッサ、３０２  メモリ。
【図１】
2019008752.tif 000003
【図２】
2019008752.tif 000004
【図３】
2019008752.tif 000005
【図４】
2019008752.tif 000006
【図５】
2019008752.tif 000007
【図６】
2019008752.tif 000008
【図７】
2019008752.tif 000009
【図８】
2019008752.tif 000010
【図９】
2019008752.tif 000011
【図１０】
2019008752.tif 000012
【図１１】
2019008752.tif 000013
【図１２】
2019008752.tif 000014
【図１３】
2019008752.tif 000015
【図１４】
2019008752.tif 000016
【図１５】
2019008752.tif 000017
【国際調査報告】
2019008752.tif 000018
2019008752.tif 000019