(57)【要約】【課題】ニューラルネットワークからの出力結果の品質低下を抑制しながら、メモリに格納される特徴面データのサイズを削減する。【解決手段】ニューラルネットワークに含まれる階層の特徴面データを取得する。第１の圧縮処理を制御するための前記階層に対応する第１の制御信号、及び第２の圧縮処理を制御するための前記階層に対応する第２の制御信号を出力する。特徴面データに対して、第１の制御信号に応じた第１の圧縮処理を行う。第１の圧縮処理後の特徴面データに対して、第２の制御信号に応じた、第１の圧縮処理とは異なる種類の第２の圧縮処理を行う。【選択図】図１
2020149156.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークに含まれる階層の特徴面データを取得する取得手段と、
第１の圧縮処理を制御するための前記階層に対応する第１の制御信号、及び第２の圧縮処理を制御するための前記階層に対応する第２の制御信号を出力する制御手段と、
前記特徴面データに対して、前記第１の制御信号に応じた前記第１の圧縮処理を行う第１の圧縮手段と、
前記第１の圧縮処理後の前記特徴面データに対して、前記第２の制御信号に応じた、前記第１の圧縮処理とは異なる種類の前記第２の圧縮処理を行う第２の圧縮手段と、
を備えることを特徴とするデータ圧縮装置。
【請求項２】
前記第１の圧縮手段及び前記第２の圧縮手段は、前記特徴面データに対して固定長圧縮を行うことを特徴とする、請求項１に記載のデータ圧縮装置。
【請求項３】
前記制御手段は、前記固定長圧縮により得られるデータサイズを前記階層ごとに切り替えるように、前記第１の制御信号及び前記第２の制御信号を出力することを特徴とする、請求項２に記載のデータ圧縮装置。
【請求項４】
前記第１の圧縮処理及び前記第２の圧縮処理は、空間方向の配列に対する圧縮処理、チャネル方向の配列に対する圧縮処理、及び値のビット幅を削減する処理、のうちの２つであることを特徴とする、請求項１から３のいずれか１項に記載のデータ圧縮装置。
【請求項５】
前記第１の圧縮処理と前記第２の圧縮処理の少なくとも一方が、空間方向又はチャネル方向の配列に対する圧縮処理であり、
前記第１の制御信号と前記第２の制御信号の少なくとも一方が、前記配列に対する圧縮処理の処理パラメータを規定することを特徴とする、請求項１から３のいずれか１項に記載のデータ圧縮装置。
【請求項６】
前記配列に対する圧縮処理が、前記配列を複数の分割データへと分割する処理と、前記複数の分割データの一部を欠落させる処理と、欠落させた分割データの前記配列中の位置を示す情報を生成する処理と、を含むことを特徴とする、請求項５に記載のデータ圧縮装置。
【請求項７】
前記第１の圧縮処理と前記第２の圧縮処理の少なくとも一方が、値のビット幅を削減する処理であり、
前記第１の制御信号と前記第２の制御信号の少なくとも一方が、ビット幅の削減量又は削減後のビット幅を指定することを特徴する、請求項１から３のいずれか１項に記載のデータ圧縮装置。
【請求項８】
前記第１の圧縮処理と前記第２の圧縮処理の少なくとも一方が非可逆圧縮処理であることを特徴とする、請求項１から７のいずれか１項に記載のデータ圧縮装置。
【請求項９】
前記制御手段は、前記第１の圧縮処理を行うか否かを前記階層ごとに切り替えるように前記第１の制御信号を生成し、前記第２の圧縮処理を行うか否かを前記階層ごとに切り替えるように前記第２の制御信号を生成することを特徴とする、請求項１から８のいずれか１項に記載のデータ圧縮装置。
【請求項１０】
前記第１の圧縮手段及び前記第２の圧縮手段は、前記特徴面データを分割することにより得られた複数の処理単位のそれぞれに対して、前記第１の圧縮処理及び前記第２の圧縮処理を行うことを特徴とする、請求項１から９のいずれか１項に記載のデータ圧縮装置。
【請求項１１】
前記制御手段が出力する前記第１の制御信号及び前記第２の制御信号は、前記階層の特徴面のサイズ、前記階層の特徴面の数、及び前記階層の特徴面のビット幅に基づいて決定された信号であることを特徴とする、請求項１から１０のいずれか１項に記載のデータ圧縮装置。
【請求項１２】
前記第２の圧縮手段により出力された特徴面データを格納する記憶手段をさらに備え、
前記制御手段が出力する前記第１の制御信号及び前記第２の制御信号は、前記記憶手段の容量に基づいて決定された信号であることを特徴とする、請求項１から１１のいずれか１項に記載のデータ圧縮装置。
【請求項１３】
前記制御手段が出力する前記第１の制御信号及び前記第２の制御信号は、前記ニューラルネットワークを用いた処理により得られるデータの目標品質に応じて決定された信号であることを特徴とする、請求項１から１２のいずれか１項に記載のデータ圧縮装置。
【請求項１４】
ニューラルネットワークを用いた演算処理を行うデータ処理装置であって、
請求項１から１３のいずれか１項に記載のデータ圧縮装置と、
前記データ圧縮装置が有する前記第２の圧縮手段により出力された特徴面データを格納する記憶手段と、
前記記憶手段に格納された前階層の特徴面データを用いて、次階層の特徴面データを生成する演算処理を行う演算手段と、
を備えることを特徴とする、データ処理装置。
【請求項１５】
前記記憶手段に格納されている圧縮された前記特徴面データを展開して前記演算手段に供給する展開手段をさらに備えることを特徴とする、請求項１４に記載のデータ処理装置。
【請求項１６】
前記展開手段は、展開処理を前記階層ごとに切り替えることを特徴とする、請求項１５に記載のデータ処理装置。
【請求項１７】
前記データ処理装置は、入力データに対して前記ニューラルネットワークを用いた演算処理を行うことにより、前記入力データに対応する出力データを生成するデータ処理装置であり、
学習用の入力データに対して前記ニューラルネットワークを用いた演算処理を行うことにより得られた出力データと、学習用の入力データに対応する教師データと、を用いて、前記ニューラルネットワークの学習を行う学習手段をさらに備えることを特徴とする、請求項１４から１６のいずれか１項に記載のデータ処理装置。
【請求項１８】
請求項１４から１６のいずれか１項に記載のデータ処理装置が行う処理を規定する、前記階層ごとの前記第１の制御信号及び前記第２の制御信号を特定する制御パラメータと、前記ニューラルネットワークと、を含む学習済みモデル。
【請求項１９】
データ圧縮装置が行うデータ圧縮方法であって、
ニューラルネットワークに含まれる階層の特徴面データを取得する取得工程と、
第１の圧縮処理を制御するための前記階層に対応する第１の制御信号、及び第２の圧縮処理を制御するための前記階層に対応する第２の制御信号を出力する制御工程と、
前記特徴面データに対して、前記第１の制御信号に応じた前記第１の圧縮処理を行う第１の圧縮工程と、
前記第１の圧縮処理後の前記特徴面データに対して、前記第２の制御信号に応じた、前記第１の圧縮処理とは異なる種類の前記第２の圧縮処理を行う第２の圧縮工程と、
を備えることを特徴とするデータ圧縮方法。
【請求項２０】
コンピュータを、請求項１から１３のいずれか１項に記載のデータ圧縮装置又は請求項１４から１７のいずれか１項に記載のデータ処理装置の各手段として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ圧縮装置、データ処理装置、データ圧縮方法、プログラム、及び学習済みモデルに関する。
【背景技術】
【０００２】
畳み込みニューラルネットワーク（Convolutional Neural Network、以下ＣＮＮと呼ぶ）のようなニューラルネットワークを用いた処理を、省コストで実現するためのハードウェア実装技術が求められている。ニューラルネットワークは、例えばデータから特徴量を抽出するため、又はデータに対する認識処理を行うために用いることができる。特にＣＮＮは、画像認識等を行うための深層学習においてよく用いられている。特に組み込みシステムなどにおいてニューラルネットワークを用いる場合には、ニューラルネットワークを用いた処理により得られる出力結果の品質（例えば認識精度）と、回路規模の小ささと、を両立することが望まれる。
【０００３】
例えば、ニューラルネットワークに含まれる階層の特徴面を圧縮することにより、ニューラルネットワークを用いた処理中に特徴面を一時的に格納するメモリの回路規模を小さくすることができる。特徴面の圧縮方法として、非特許文献１は、ランレングス符号化を用いて特徴面を圧縮することを提案している。また、特許文献１は、階層ごとに量子化ビット幅を変えながら特徴面を量子化することを提案している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１０６１８号公報
【非特許文献】
【０００５】
【非特許文献１】Y. Chen et al., "Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks," in IEEE Journal of Solid-State Circuits, vol. 52, no. 1, pp. 127-138, Jan. 2017., doi: 10.1109/JSSC.2016.2616357
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特徴面を格納するメモリの回路規模をより小さくするためには、より圧縮率の高い圧縮方法を用いることが望まれる。しかしながら、可逆なランレングス符号化を用いる非特許文献１に記載の方法は圧縮率が制限されるという課題を有している。また、量子化を用いる特許文献１に記載の方法は、単純に量子化ビット数を削減していくと、ニューラルネットワークからの出力結果の品質が低下しやすいという課題を有している。
【０００７】
本発明は、ニューラルネットワークからの出力結果の品質低下を抑制しながら、メモリに格納される特徴面データのサイズを削減することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば、本発明のデータ圧縮装置は以下の構成を備える。すなわち、
ニューラルネットワークに含まれる階層の特徴面データを取得する取得手段と、
第１の圧縮処理を制御するための前記階層に対応する第１の制御信号、及び第２の圧縮処理を制御するための前記階層に対応する第２の制御信号を出力する制御手段と、
前記特徴面データに対して、前記第１の制御信号に応じた前記第１の圧縮処理を行う第１の圧縮手段と、
前記第１の圧縮処理後の前記特徴面データに対して、前記第２の制御信号に応じた、前記第１の圧縮処理とは異なる種類の前記第２の圧縮処理を行う第２の圧縮手段と、
を備えることを特徴とする。
【発明の効果】
【０００９】
ニューラルネットワークからの出力結果の品質低下を抑制しながら、メモリに格納される特徴面データのサイズを削減することができる。
【図面の簡単な説明】
【００１０】
【図１】データ処理部３０５の一構成例を示すブロック図。
【図２】データ処理部３０５の処理の一例を示すフローチャート。
【図３】データ処理装置の一構成例を示すブロック図。
【図４】処理対象の一例であるニューラルネットワークの構造を示す図。
【図５】圧縮処理部１０１が用いる処理アルゴリズムを説明する図。
【図６】圧縮処理部１０２が用いる処理アルゴリズムを説明する図。
【図７】特徴面の圧縮を適用した後のネットワークパラメータの一例を示す図。
【図８】データ処理部３０５の一構成例を示すブロック図。
【図９】圧縮処理部８０１が用いる処理アルゴリズムを説明する図。
【図１０】圧縮処理部８０２が用いる処理アルゴリズムを説明する図。
【図１１】特徴面の圧縮を適用した後のネットワークパラメータの一例を示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１２】
本発明の一実施形態によれば、異なる種類の圧縮処理を行う複数の圧縮部により、ニューラルネットワークを用いた処理において得られる、階層の特徴面が圧縮される。このような構成により、単一の圧縮部が単一の圧縮処理を行う場合と比較して、ニューラルネットワークの出力結果の品質の低下を抑えながら、特徴面を格納するメモリの使用量を削減することが容易となる。言い換えれば、このような構成により、特徴面を格納するメモリの使用量を増やさずに、ニューラルネットワークの出力結果の品質の低下を抑えることができる。例えば、一実施形態によれば、ニューラルネットワークを用いて認識処理を行う場合に、認識精度の低下を抑えながら必要なメモリサイズを減らすことができる。以下、具体的な実施形態の例について説明する。
【００１３】
なお、本発明の一実施形態においては、特徴面を固定長圧縮することもできる。このような構成によれば、特徴面を格納するメモリが所定のメモリサイズを有する場合に、このメモリに格納可能なように特徴面の圧縮を行うことが容易となる。すなわち、固定長圧縮を用いることにより、メモリに格納される圧縮後の特徴面のデータサイズの上限が固定される。非特許文献１に記載のランレングス符号化のような可変長圧縮を用いる場合には、圧縮後の特徴面のデータサイズの上限を固定することができないため、十分なメモリサイズを有するメモリが特徴面の格納のために用いられる。一方で、固定長圧縮を用いる場合、各階層についての圧縮後の特徴面のデータサイズの上限に従うメモリサイズを有するメモリを、特徴面の格納のために用いることができる。このため、固定長圧縮を用いる場合には、可変長圧縮を用いる場合と比較して、メモリサイズの削減が容易となる。
【００１４】
［実施形態１］
（データ処理装置の構成例）
実施形態１に係るデータ圧縮装置は、ニューラルネットワークを用いた処理において得られる、ニューラルネットワークに含まれる階層の特徴面データ（本明細書において、単に特徴面と呼ぶことがある）を圧縮する構成を有している。より具体的には、本実施形態に係るデータ圧縮装置は、ニューラルネットワークの第１の階層における特徴面を圧縮してからメモリに格納することができる。そして、データ圧縮装置は、メモリに格納された圧縮後の特徴面を用いて、ニューラルネットワークの第２の階層の特徴面を生成するための演算処理を行うことができる。なお、本実施形態に係るデータ圧縮装置は、一階層の特徴面全体を圧縮してメモリに格納する代わりに、一階層の特徴面の一部を圧縮してメモリに格納してもよい。
【００１５】
実施形態１に係るデータ圧縮装置は、例えば、ニューラルネットワークを用いた演算処理を行うデータ処理装置に含まれていてもよい。図３は、このようなデータ処理装置の構成の一例を示すブロック図である。データ処理装置は、入力データに対してニューラルネットワークを用いた演算処理を行うことにより、入力データに対応する出力データを生成することができる。データ処理装置は、例えば入力データに対する認識処理の結果を出力データとして生成し、この出力データに基づいて認識処理の結果を示す出力を生成してもよい。また、データ処理装置は、例えば入力データから抽出した特徴量を出力データとして生成し、この出力データに基づいて入力データに対してさらなるデータ処理（例えば画像処理）を行ってもよい。
【００１６】
データ保存部３０２は、各種のデータ及びパラメータを格納することができる。データ保存部３０２は、例えば不揮発性のメモリ又は記憶媒体であってもよい。データ保存部３０２の具体例としては、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、メモリーカード、ＣＦカード、スマートメディア、ＳＤカード、メモリスティック、ｘＤピクチャーカード、又はＵＳＢメモリなどが挙げられる。データ保存部３０２は、例えば画像データを格納することができ、プログラムやその他のデータを保存することも可能である。一方で、後述するＲＡＭ３０８の一部がデータ保存部３０２として用いられてもよい。さらに、データ保存部３０２が仮想的な構成を有していてもよい。例えば、後述する通信部３０３を介して接続されている機器が有する記憶装置が、データ保存部３０２として用いられてもよい。
【００１７】
表示部３０４は画像などの情報を表示することができる。例えば表示部３０４は、画像処理前若しくは画像処理後の画像、又はＧＵＩの画像を表示してもよい。表示部３０４は、例えばＣＲＴ又は液晶ディスプレイなどの表示装置であってもよい。一方、表示部３０４は、ケーブル等の接続手段を介して接続されている、データ処理装置の外部にあるディスプレイ装置であってもよい。
【００１８】
入力部３０１は指示などの情報又はデータを取得することができる。入力部３０１は、例えばキーボード、ポインティング装置、又はボタンなどの入力装置を有していてもよく、この場合ユーザは入力部３０１を介してデータ処理装置に対して指示を入力することができる。一方、表示部３０４と入力部３０１とが同一装置であってもよく、例えば表示部３０４及び入力部３０１としてタッチスクリーンを用いることもできる。
【００１９】
ＣＰＵ３０６は、データ処理装置全体の動作を制御するプロセッサである。ＲＯＭ３０７及びＲＡＭ３０８はメモリである。ＲＯＭ３０７及びＲＡＭ３０８は、ＣＰＵ３０６の処理に必要なプログラム、データ、及び作業領域などをＣＰＵ３０６に提供することができる。例えばＣＰＵ３０６は、ＲＡＭ３０８に読み込まれたプログラムに従って動作することができる。プログラムがデータ保存部３０２又はＲＯＭ３０７に格納されている場合、ＲＡＭ３０８はこのようなプログラムを読み込むことができる。また、通信部３０３を経由してデータ処理装置がプログラムを受信する場合、データ保存部３０２が一旦プログラムを格納し、その後にＲＡＭ３０８がこのプログラムを読み込んでもよい。一方で、ＲＡＭ３０８は、プログラムを直接通信部３０３から読み込んでもよい。なお、データ処理装置は、２つ以上のプロセッサを有していてもよい。
【００２０】
データ処理部３０５は、入力データに対するデータ処理を行うことができる。本実施形態において、データ処理部３０５は、入力データに対してニューラルネットワークを用いた処理を行う。例えば、データ処理部３０５は、入力データをニューラルネットワークに入力し、ニューラルネットワークを用いた演算を行うことにより、ニューラルネットワークからの出力を生成することができる。後述するようにデータ処理部３０５は、ニューラルネットワークに含まれる階層の特徴面を圧縮するデータ圧縮装置を含んでいる。
【００２１】
ＣＰＵ３０６は、こうしてデータ処理部３０５により生成されたニューラルネットワークを用いた処理の結果を用いて出力を生成することができる。例えば、ＣＰＵ３０６は、上述したように認識処理の結果又はデータ処理結果を出力してもよい。
【００２２】
一実施形態において、データ処理装置は、画像データに対してニューラルネットワークを用いた処理を行うことができる。このような実施形態において、画像処理部３０９は、画像データに対する画像処理を行うことができる。例えば画像処理部３０９は、ＣＰＵ３０６からのコマンドに従って、データ保存部３０２に格納された画像データを読み出し、画素値のレンジ調整処理を行い、処理後の画像データをＲＡＭ３０８に書き込むことができる。そして、データ処理部３０５は、ＲＡＭ３０８に保存された画像処理後の画像データに対してデータ処理を行い、処理結果をＲＡＭ３０８に格納することができる。そして、ＣＰＵ３０６は、画像データに対する画像処理又は画像認識処理を行い、処理結果をＲＡＭ３０８に保存することができる。画像データは、複数フレームで構成される動画像であってもよい。
【００２３】
通信部３０３は、機器間の通信を行うためのインタフェースである。なお、データ処理装置の構成は図３に示される構成には限定されない。例えば、データ処理装置が他の構成要素を有していてもよいし、一部の構成要素を有していなくてもよい。また、各構成要素が公知の通信方式に従う通信路で互いに接続されていてもよい。例えば、入力部３０１、データ保存部３０２、及び表示部３０４が互いに異なる装置に含まれていてもよく、データ処理装置はこれらの装置が互いに接続された構成を有していてもよい。
【００２４】
（ニューラルネットワークの構成例）
上述の通り、データ処理部３０５は、入力データに対してニューラルネットワークを用いた処理を行う。ニューラルネットワークを用いた処理は特に限定されず、公知のニューラルネットワークを用いてもよい。一実施形態に係るニューラルネットワークは、入力層、複数の中間層、及び出力層のような、複数の階層（レイヤ）を有している。このようなニューラルネットワークを用いた処理においては、先行する階層における特徴面を用いた演算処理により、後続する階層の特徴面が得られる。具体例において、第１の階層における特徴面を用いた演算処理により、第１の階層に後続する第２の階層の特徴面が得られる。その後、第２の階層の特徴面を用いた演算処理により、第２の階層に後続する第３の階層の特徴面が得られる。
【００２５】
ここで、先行する階層の特徴面から後続する階層の特徴面を生成する演算処理は、積和演算を含んでいてもよく、また活性化処理を含んでいてもよい。例えば、特徴面は、畳み込みニューラルネットワーク（ＣＮＮ）における階層ごとの畳み込み演算及び活性化処理の結果であってもよい。ある階層ｌの複数の特徴面Ｘ０ｌ，Ｘ１ｌ，Ｘ２ｌ，……から、次の階層ｌ＋１のｉ番目の特徴面Ｘｉｌ＋１を求める処理は、例えば式（１）に従って行うことができる。式（１）において、Ｗｉ，ｊｌは畳み込み演算に用いるフィルタ係数を、ｂｉｌはバイアス項を、それぞれ表す。また、＊は畳み込み演算を、φは活性化関数を、それぞれ表す。
【数１】
2020149156.tif 000003
【００２６】
図４は、本実施形態における処理対象の一例であるニューラルネットワーク（以下、「ネットワーク」と呼ぶ）の具体的な構造例を示す。ネットワーク構造は、積和演算の計算量、特徴面のサイズ、枚数、及びビット幅などに基づいて決定することができる。図４に例示されるネットワークにおいては、特徴面１枚あたりの画素数は１０２４であり、特徴面のビット幅（各画素の画素値のデータ量）は８である。また、レイヤ１〜レイヤ４は、それぞれ異なる枚数の特徴面を有しており、それぞれ３枚、８枚、１６枚、及び４枚の特徴面を有している。レイヤ１の上流及びレイヤ４の下流にさらなる階層が存在していてもよい。
【００２７】
レイヤ２の複数枚の特徴面４０２は、レイヤ１の複数枚の特徴面４０１とフィルタ係数とを用いて演算処理（式（１）に相当する積和演算及び活性化処理）を実行することにより、得ることができる。同様に、レイヤ３の複数枚の特徴面４０３は、レイヤ２の複数枚の特徴面４０２とフィルタ係数とを用いて演算処理を実行することにより得られる。また、レイヤ４の複数枚の特徴面４０４は、レイヤ３の複数枚の特徴面４０３とフィルタ係数とを用いて演算処理を実行することにより得られる。
【００２８】
上記のような演算処理により得られた特徴面（例えば特徴面４０１〜４０４）は、一時保存のために中間データとして記憶部に格納され、その後次の階層の特徴面を得るための演算処理のために記憶部から読み出される。本実施形態においては、このような特徴面の記憶のために必要な記憶容量を削減するために、特徴面に対する圧縮処理が行われ、圧縮処理後の特徴面が記憶部に格納される。以下、このような演算処理及び圧縮処理を行う、一実施形態に係るデータ圧縮装置であるデータ処理部３０５の構成例について、図１を参照して説明する。
【００２９】
（データ圧縮装置の構成例）
データ処理部３０５は、特徴面に対する圧縮処理を行う圧縮処理部１０１及び圧縮処理部１０２を有している。また、データ処理部３０５はさらに、圧縮処理部１０１，１０２による圧縮処理を制御する制御部１０４を有している。これら圧縮処理部１０１，１０２及び制御部１０４で構成される部分を、データ圧縮装置と呼ぶことができる。図１に示す例において、データ圧縮装置はさらに圧縮後の特徴面を格納する記憶部１０３を有している。記憶部１０３は、圧縮処理部１０２により出力された特徴面データを格納することができる。一方で、記憶部１０３はデータ処理部３０５の外部にあってもよい。
【００３０】
圧縮処理部１０１及び圧縮処理部１０２は、それぞれ異なる種類の圧縮処理を行う。また、圧縮処理部１０１及び圧縮処理部１０２によって行われる圧縮処理は、制御部１０４によって制御される。すなわち、圧縮処理部１０１は、ニューラルネットワークに含まれる階層の特徴面データに対して、第１の制御信号に応じた第１の圧縮処理を行う。また、圧縮処理部１０２は、第１の圧縮処理後の特徴面データに対して、第２の制御信号に応じた、第１の圧縮処理とは異なる種類の第２の圧縮処理を行う。一実施形態において、より圧縮率が大きくなるように、第１の圧縮処理と第２の圧縮処理の少なくとも一方、又は双方は非可逆圧縮処理である。
【００３１】
一実施形態において圧縮処理部１０１は、特徴面を構成する値に対する量子化処理を行う。例えば、圧縮処理部１０１は、各画素の値に対する量子化処理を行うことができる。ここで、圧縮処理部１０１は、特徴面データに対して固定長圧縮を行ってもよい。例えば圧縮処理部１０１は、制御部１０４から与えられた制御信号によって指定されたビット幅に従う量子化処理を行うことができ、こうして固定長圧縮を行うことができる。
【００３２】
また、一実施形態において圧縮処理部１０２は、特徴面を構成する複数の値の関係に基づく圧縮処理を行うことができる。例えば、圧縮処理部１０２は、複数の値のうち一部を欠落させる処理、又は複数の値に対するランレングス符号化を行うことができる。ここで、圧縮処理部１０２も、特徴面データに対して固定長圧縮を行ってもよい。例えば圧縮処理部１０２は、制御部１０４から与えられた制御信号によって指定された圧縮率に従う圧縮処理を行うことができ、こうして固定長圧縮を行うことができる。以下の説明においては、圧縮前のデータサイズに対する圧縮後のデータサイズの比のことを圧縮率と呼ぶ。
【００３３】
制御部１０４は、圧縮処理部１０１及び圧縮処理部１０２にそれぞれ制御信号を与える。具体的には、制御部１０４は、第１の圧縮処理を制御するための、階層に対応する第１の制御信号、及び第２の圧縮処理を制御するための、階層に対応する第２の制御信号を出力する。このように、制御部１０４は、階層（レイヤ１〜４）のそれぞれに対応する制御信号を出力する。例えば、圧縮処理部１０１及び圧縮処理部１０２により特徴面が固定長圧縮される場合、制御部１０４は、固定長圧縮後のデータサイズを階層ごとに切り替えるように、第１の制御信号及び第２の制御信号を出力することができる。
【００３４】
本実施形態において、制御部１０４は、予め決定されている制御パラメータ１０５を参照して階層ごとに制御信号を切り替える。制御パラメータ１０５は、図４に示すネットワーク情報に基づいて、レイヤ１〜４それぞれについて予め決定されている。制御パラメータ１０５は外部からデータ圧縮装置に与えられてもよい。また、制御パラメータ１０５は、データ保存部３０２又はＲＡＭ３０８に格納されていてもよい。
【００３５】
記憶部１０３は、圧縮された特徴面を格納するための記憶装置であり、特徴面メモリと呼ぶことができる。格納された特徴面は、次の階層の特徴面を算出するために用いることができる。
【００３６】
データ処理部３０５は、さらに演算部１０６及び展開処理部１０７を含むことができる。演算部１０６は、特徴面を算出するための演算処理を行うことができる。すなわち、演算部１０６は、記憶部１０３に格納された前階層の特徴面データを用いて、次階層の特徴面データを生成する演算処理を行うことができる。本実施形態において演算部１０６は、上述の式（１）に基づく演算処理を行う。また、本実施形態において演算部１０６は、ビット幅が８以下である前階層の特徴面を入力として受け取り、ビット幅が８である次階層の特徴面を出力する。
【００３７】
また、展開処理部１０７は、必要に応じて、記憶部１０３に格納されている圧縮された特徴面を展開することができる。すなわち、展開処理部１０７は、記憶部１０３に格納されている圧縮された特徴面データを展開して演算部１０６に供給することができる。
【００３８】
このように展開処理部１０７は、記憶部１０３に圧縮された特徴面が格納されている場合、記憶部１０３に格納された前階層の特徴面を展開して演算部１０６に渡すことができる。この場合、演算部１０６は受け取った展開後の特徴面を用いて次階層の特徴面を算出するための演算処理を行うことができる。本実施形態において展開処理部１０７は、記憶部１０３に圧縮された特徴面が格納されている場合、圧縮後の特徴面を読み出し、その直後に展開処理を行う。また、圧縮処理部１０１，１０２は、次階層の特徴面の圧縮を行う場合、次階層の特徴面を記憶部１０３に格納する前に、演算部１０６から受け取った次階層の特徴面に対する圧縮処理を行い、圧縮後の特徴面を記憶部１０３に格納する。もっとも、圧縮処理部１０１，１０２は、制御部１０４の制御に従って、次階層の特徴面の圧縮を省略することもある。
【００３９】
（データ圧縮処理の流れ）
データ処理部３０５が行う処理について、図２のフローチャートを参照して説明する。以下では、データ処理部３０５が図４に示すネットワークに従う処理を行う場合について説明する。ステップＳ２０１〜Ｓ２１１によって、図４に示すネットワーク全体に相当するデータ処理を実現することができる。また、階層（レイヤ１〜レイヤ４）のそれぞれに相当するデータ処理は、ステップＳ２０３〜Ｓ２１０によって実現される。すなわち、ステップＳ２０３〜Ｓ２１０の処理を繰り返すことにより、各階層に相当する処理を順次実現できる。
【００４０】
一実施形態において、各階層におけるデータ処理は、処理単位ごとに行うことができる。このような処理単位は、特徴面データを分割することにより得ることができる。本実施形態においては、一定の画素数又はデータサイズを有する処理単位（以下、特徴面ブロックと呼ぶ）ごとに、次階層の特徴面が算出される。すなわち、次階層の特徴面は複数の特徴面ブロックへと分割され、それぞれの特徴面ブロックについて値が得られる。本実施形態においては、それぞれの特徴面ブロックを算出するデータ処理は、ステップＳ２０５〜Ｓ２０９の処理により実現される。すなわち、ステップＳ２０５〜Ｓ２０９の処理を繰り返すことにより、各特徴面ブロックに相当する処理が順次実現され、次階層の特徴面が得られる。このような構成において、圧縮処理部１０１及び圧縮処理部１０２は、特徴面データを分割することにより得られた複数の処理単位（例えば特徴面ブロック）のそれぞれに対して、第１の圧縮処理及び第２の圧縮処理を行うことができる。
【００４１】
データ処理を特徴面ブロック単位で行うことは必須ではないが、このような方法によれば、処理単位のデータサイズを小さくすることができる。すなわち、演算部１０６、圧縮処理部１０１、圧縮処理部１０２、及び展開処理部１０７の処理単位を小さくすることができる。このような構成により、特徴面単位で処理を行う場合（例えば、一階層の特徴面を一括で圧縮及び展開する場合）と比較して、データ処理部３０５の回路規模を削減できる。さらに、データ処理を特徴面ブロック単位で行うことにより、空間方向の情報を利用した処理が容易になる。例えば、複数の画素を一括して処理することにより、特徴面ブロック内のデータの性質（例えば、値が局所的に大きい又は小さいという性質）を考慮して圧縮処理を行うことができるため、圧縮誤差を抑えながら圧縮率を向上させることが容易となる。
【００４２】
ステップＳ２０１で制御部１０４は制御パラメータ１０５を取得する。制御パラメータ１０５の決定方法については後述する。
【００４３】
ステップＳ２０２において階層ごとのループ（ステップＳ２０２〜Ｓ２１１）が開始する。される。ループ回数はネットワークの階層数−１（＝入力層を除いた階層数）である。図４のネットワークでは、入力層であるレイヤ１以外の階層数は３であるため、ループは３回行われる。以下では、ステップＳ２０２〜Ｓ２１１の１回の処理において生成される特徴面のことを次階層の特徴面と、処理において参照される特徴面のことを前階層の特徴面と、それぞれ呼ぶ。
【００４４】
ステップＳ２０３で制御部１０４は、ステップ２０１で取得した制御パラメータ１０５に基づいて制御信号を生成する。制御パラメータ１０５は階層ごとに設定されており、制御信号は階層ごとに切り替えられる。すなわち制御部１０４は、次階層に対応する制御パラメータ１０５に基づいて制御信号を生成する。
【００４５】
ステップＳ２０４では、特徴面ブロックごとのループ（ステップＳ２０４〜Ｓ２１０）が開始する。ループ回数は、演算処理により生成される特徴面における特徴面ブロックの数に一致する。本実施形態において、各階層について特徴面ブロックのサイズは一定である。一方、各階層について特徴面ブロックの数は異なる。このため、ループ回数は階層ごとに変動する。以下では、特徴面ブロックが８画素で構成され、ビット幅が８である場合について説明する。
【００４６】
ステップＳ２０５で演算部１０６は、前階層の特徴面を記憶部１０３から読み出し、又は、展開処理部１０７から取得する。展開処理部１０７が行う具体的な処理については後述する。そして、演算部１０６は、前階層の特徴面（ビット幅２又は８）を参照して、式（１）に従う演算処理を行い、得られた結果を次階層の特徴面ブロック（ビット幅８）として出力する。
【００４７】
ステップＳ２０６で圧縮処理部ごとのループ（ステップＳ２０７〜Ｓ２０９）が開始する。ループ回数は、演算処理により生成される特徴面における特徴面ブロックの数に一致する。本実施形態において圧縮処理部の数は２である（圧縮処理部１０１及び圧縮処理部１０２）ため、ループ回数は２回である。圧縮処理部の数が３以上である場合、ステップＳ２０７〜Ｓ２０９の繰り返しにより、それぞれの圧縮処理部による圧縮処理が行われる。
【００４８】
ステップＳ２０７で圧縮処理部１０１又は圧縮処理部１０２は、圧縮処理により特徴面ブロックを圧縮する。ステップＳ２０８では、圧縮処理部ごとのループが終了する。次の圧縮処理部が存在する場合、圧縮後の特徴面ブロックが次の圧縮処理部へと出力され、処理はステップＳ２０６に戻る。
【００４９】
１回目のループのステップＳ２０７において圧縮処理部１０１は、特徴面ブロックに対して、第１の制御信号に応じた第１の圧縮処理を行う。圧縮時に必要な情報は、制御信号の形で制御部１０４から与えられている。
【００５０】
本実施形態において圧縮処理部１０１は、第１の圧縮処理として量子化処理を行うことにより、固定長圧縮を行う。ここで圧縮処理部１０１は、制御信号により指定されたビット幅で量子化を行う。なお、ここで圧縮処理部１０１が、制御信号により指定されたビット幅の削減量に従って量子化を行ってもよい。図５は、圧縮処理部１０１による量子化処理を説明する図である。図５の例では、８ビット８画素の特徴面ブロック５０１に対する圧縮が行われており、また制御信号によりビット幅２での量子化が指定されている。この場合、圧縮処理部１０１は、特徴面ブロックの各画素の値ｘを、式（２）に基づいて出力値ｆ（ｘ）に変換することができる。
【数２】
2020149156.tif 000004
【００５１】
式（２）に示される閾値Ｔ０，Ｔ１，Ｔ２のような量子化処理で用いられるパラメータは、予め定められていてもよいし、制御信号などにより与えられてもよい。圧縮処理部１０１は、こうして得られた出力値ｆ（ｘ）を有する特徴面ブロック５０２を、第１の圧縮処理後の特徴面ブロックとして圧縮処理部１０２へと出力する。一方で、制御部１０４は、第１の圧縮処理を行うか否かを階層ごとに切り替えるように第１の制御信号を生成してもよい。例えば、圧縮処理部１０１は、制御信号によりビット幅８を指定された場合（すなわち量子化処理を行わないことを指定された場合）、特徴面ブロック５０１をそのまま特徴面ブロック５０２として圧縮処理部１０２へと出力することができる。
【００５２】
このとき、図５に示す特徴面ブロック５０２のサイズＬ’は、量子化ビット幅ｌ’及び画素数ｗを用いて、式（３）により表すことができる。
Ｌ’＝ｌ’×ｗ  ……（３）
【００５３】
例えば、図５の例では（ｌ’，ｗ）＝（２，８）であるため、特徴面ブロック５０２のサイズＬ’は１６である。一方で、式（３）に従って同様に求められた特徴面ブロック５０１のサイズＬは６４である。このように、図５の例では、第１の圧縮処理により特徴面ブロックのデータサイズが２５％に圧縮されている。
【００５４】
２回目のループのステップＳ２０７において圧縮処理部１０２は、第１の圧縮処理後の特徴面ブロックに対して、第２の制御信号に応じた第２の圧縮処理を行う。圧縮時に必要な情報は、制御信号の形で制御部１０４から与えられている。
【００５５】
本実施形態において圧縮処理部１０２は、第２の圧縮処理として、特徴面ブロックの空間方向の情報を用いた圧縮処理を行うことにより、固定長圧縮を行う。図６は、圧縮処理部１０２による圧縮処理を説明する図である。図６の例では、２ビット８画素の特徴面ブロック５０２に対する圧縮が行われており、また制御信号により以下に示す圧縮方法が指定されている。
【００５６】
まず、圧縮処理部１０２は、特徴面ブロック５０２を２画素ずつに分割することで、分割データ６０２〜６０５を生成する。次に、圧縮処理部１０２は、分割データ６０２〜６０５のうち２つを選択する。データの選択方法としては、例えば、値の総和がより大きい分割データを優先して選択する方法が挙げられる。さらに、圧縮処理部１０２は、どの分割データが選択されたかを示すビット列６０８を生成する。例えば、ビット列６０８は、特徴面ブロック５０２の先頭から１番目の分割データ６０２及び４番目の分割データ６０５が選択されたことを示している。そして、圧縮処理部１０２は、選択された分割データ６０２，６０５及びビット列６０８を結合することにより、第２の圧縮処理後の特徴面ブロック６０９を生成する。
【００５７】
このように、一実施形態において、圧縮処理部１０２は空間方向の配列（特徴面ブロック５０２）に対する圧縮処理を行う。この圧縮処理は、配列を複数の分割データ６０２〜６０５へと分割する処理と、複数の分割データの一部である分割データ６０３，６０４を欠落させる処理と、欠落させた分割データの配列中の位置を示す情報であるビット列６０８を生成する処理と、を含む。
【００５８】
ここで、出力される特徴面ブロック６０９のサイズＬ’’は、特徴面ブロック５０２の画素数ｗ及びビット幅ｌ’、分割データの数ｎ、及び選択される分割データの数ｍにより決定される。すなわち、特徴面ブロック６０９のサイズＬ’’は、分割データ６０２，６０５の画素数が１つあたりｗ／ｎであり、ビット列６０８のビット長がｎであることから、式（４）により表すことができる。
Ｌ’’＝ｌ’×ｍ×（ｗ／ｎ）＋ｎ  ……（４）
【００５９】
例えば、図６の例では（ｌ’，ｍ，ｎ，ｗ）＝（２，２，４，８）であるため、特徴面ブロック６０９のサイズＬ’’は１２である。一方で、特徴面ブロック５０２のサイズＬ’は１６である。このように、図６の例では、第２の圧縮処理により特徴面ブロックのデータサイズが７５％に圧縮されている。
【００６０】
本実施形態において制御部１０４は、第２の制御信号により上記の圧縮処理パラメータ、すなわち分割データの数ｎ及び選択される分割データの数ｍのうちの少なくとも１つを指定することができる。このため、圧縮処理部１０２は、制御信号に従う固定長圧縮を行うことができる。一方で、制御部１０４は、第２の圧縮処理を行うか否かを階層ごとに切り替えるように第２の制御信号を生成してもよい。例えば、制御信号により圧縮処理を行わないことを指定された場合（例えばパラメータとしてｎ＝ｍ＝１を指定された場合）、特徴面ブロック５０２がそのまま特徴面ブロック６０９として用いられる。
【００６１】
ステップＳ２０９で、最後段の圧縮処理部（例えば圧縮処理部１０２）は、生成した特徴面ブロック６０９を記憶部１０３に格納する。
【００６２】
上述のように、ステップＳ２０５において展開処理部１０７は、記憶部１０３に圧縮された特徴面が格納されている場合、特徴面を展開して演算部１０６へ出力する。展開処理部１０７は、例えば、演算部１０６の要求に応じて、演算部１０６が使用する特徴面ブロックに対応する圧縮された特徴面ブロックを展開してもよい。
【００６３】
この場合、展開処理部１０７は、圧縮処理部１０１，１０２が用いた第１及び第２の圧縮処理に対応する展開処理方法を用いることができる。ここで、展開処理部１０７は、展開処理を階層ごとに切り替えることができる。すなわち、展開処理部１０７は、階層ごとに切り替えられた第１及び第２の圧縮処理に対応する展開処理を行うことができる。
【００６４】
例えば、展開処理部１０７は、第２の圧縮処理に対応する第２の展開処理を用いて、記憶部１０３に格納されている圧縮された特徴面を展開することができる。上述の例において、展開処理部１０７は、特徴面ブロック６０９に含まれるビット列６０８を参照することで、選択された分割データ６０２，６０５を元の位置に再配置することができる。また、展開処理部１０７は、選択されなかった分割データ６０３，６０４を、０のビット列で補完することができる。このようにして展開処理部１０７は、特徴面ブロック５０２に対応する、一部の情報が欠落した特徴面ブロックを生成することができる。制御部１０４は、展開処理部１０７によるこのような第２の展開処理を制御するための、前階層に対応する制御信号を、展開処理部１０７へと出力してもよい。
【００６５】
圧縮処理部１０２が行う第２の圧縮処理は上記の例に限定されるわけではないが、上記のような第２の圧縮処理によれば、ニューラルネットワークの出力結果の品質の低下を比較的小さく抑えながら特徴面の圧縮を行うことができる。一般に、畳み込みニューラルネットワークで生成される特徴面において、全画素に占める画素値として０を有する画素の割合は大きいことが多い。上記の方法を用いた場合、画素値として０を有する画素についての情報が優先的に欠落するが、これらの画素の画素値として０が補完されるため、圧縮及び展開により特徴面の画素値が変動する可能性は比較的低い。このため、ニューラルネットワークの出力結果の品質の低下、例えばニューラルネットワークを用いた認識処理における精度の低下を抑えることができる。
【００６６】
このように、一実施形態において、選択される分割データ及び欠落させられる分割データは、特徴面ブロックごとに動的に選択される。一方で、分割データの選択方法は上記の例に限定されるわけではなく、ニューラルネットワークで実現しようとする処理の特性、及びニューラルネットワークに入力しようとするデータの特性に応じて、適宜選択可能である。例えば、特定の実施形態において、値の総和がより小さい分割データが優先して選択されてもよいし、欠落した画素の画素値として０以外の値が補完されてもよい。
【００６７】
展開処理部１０７は、さらに、第１の圧縮処理に対応する第１の展開処理を用いて、第２の展開処理により得られた特徴面を展開することができる。上記の例において、展開処理部１０７は、第２の展開処理後の特徴面ブロックの値に対して逆量子化処理（値を６４倍する処理）を行ってもよい。一方で、第１の展開処理を行うことは必須ではない。例えば、演算部１０６が量子化を考慮して（例えば特徴面の値を６４倍した後に）演算処理を行ってもよい。このように、展開処理部１０７が、第１及び第２の圧縮処理に完全に対応する展開処理を行うことは必須ではない。
【００６８】
ステップＳ２１０で特徴面ブロックごとのループが終了する。次の特徴面ブロックが存在する場合、処理はステップＳ２０４に戻って次の特徴面ブロックについての処理が行われ、次の特徴面ブロックが存在しない場合、処理はステップＳ２１１に進む。
【００６９】
ステップＳ２１１で階層ごとのループが終了する。次の階層が存在する場合（例えば、レイヤ２及びレイヤ３の特徴面を算出した場合）、処理はステップＳ２０２に戻って次の階層の特徴面が算出される。また、次の階層が存在しない場合（例えば、出力層（レイヤ４）の特徴面を算出した場合）、一連のデータ圧縮処理が終了する。
【００７０】
（制御パラメータ）
制御パラメータ１０５の具体例及びその作成方法の例を以下に示す。制御パラメータ１０５は、記憶部１０３（特徴面メモリ）におけるメモリ使用量を削減するように作成することができる。以下の例では、図４に示すネットワーク情報と、図３に示すデータ処理装置の制約と、に基づいて予め制御パラメータ１０５が設定される。図４の例では、ネットワーク情報として、各特徴面のサイズを表す情報が用いられている。図４に示すように、ネットワーク情報は、例えば各階層の特徴面のサイズ（画素数）、各階層の特徴面の数、及び各階層の特徴面のビット幅を含んでいてもよい。このように設定された制御パラメータ１０５を参照することにより、階層の特徴面のサイズ、階層の特徴面の数、及び階層の特徴面のビット幅に基づいて決定された信号である、第１の制御信号及び第２の制御信号を、制御部１０４が出力することが可能となる。なお、以下の例においては入力層（レイヤ１）の特徴面及び出力層（レイヤ４）の特徴面も記憶部１０３に格納されるが、これは必須ではなく、中間層の特徴面のみが記憶部１０３に格納されてもよい。
【００７１】
また、後述するように、制御パラメータ１０５は、記憶部１０３の容量に基づいて決定することができる。このように設定された制御パラメータ１０５を参照することにより、記憶部１０３の容量に基づいて決定された信号である、第１の制御信号及び第２の制御信号を、制御部１０４が出力することが可能となる。そして、このような制御信号に基づいて特徴面の圧縮を行うことにより、データ処理装置は、限られた容量を有する記憶部１０３を用いて図４に示すネットワークを処理することができる。
【００７２】
一実施形態において、記憶部１０３におけるメモリ使用量の上限は、連続する２階層の特徴面の合計データサイズの最大値に相当する。例えば、レイヤ１の特徴面４０１を用いてレイヤ２の特徴面４０２を算出する場合、記憶部１０３は、演算部１０６へと出力される特徴面４０１を格納する領域と、演算部１０６から出力された特徴面４０２を格納する領域と、の双方を保持する。他の階層についても同様である。
【００７３】
以下の例では、記憶部１０３は７ＫＢのメモリ容量を有している。また、特徴面４０１〜４０４のサイズは、ビット幅、１枚あたりの画素数、及び枚数の積であり、それぞれ３ＫＢ、８ＫＢ、１６ＫＢ、及び４ＫＢである。特徴面４０３を用いて特徴面４０４を算出する場合、特徴面４０３と特徴面４０４の合計サイズは２０ＫＢであるから、記憶部１０３を用いて図４に示すネットワークを処理する場合、圧縮後の特徴面４０３と特徴面４０４が記憶部１０３に格納される。このような、記憶部１０３のメモリ容量と、図４に示すネットワークのネットワーク情報に基づいて、圧縮処理部１０１，１０２による圧縮率が決定される。
【００７４】
まず、圧縮処理部１０１による第１の圧縮処理の圧縮率の決定方法について説明する。各特徴面のビット幅は、許容可能な後処理の精度が得られるように決定することができる。出力層（レイヤ４）の特徴面４０４はデータ処理部３０５から出力され、例えば認識結果を得るための認識処理のような後処理において用いられる。以下の例では、許容可能な後処理の精度が得られるように、特徴面４０４のビット幅は８とされ、ビット幅の削減が行われない。また、以下の例では、特徴面４０２，４０３のビット幅を２まで削減しても許容可能な後処理の精度が得られるため、特徴面４０２，４０３のビット幅は２に削減される。
【００７５】
圧縮処理部１０１による圧縮後の特徴面４０１〜４０４のサイズは、順に３ＫＢ、２ＫＢ、４ＫＢ、及び４ＫＢとなる。したがって、特徴面４０３を用いて特徴面４０４を算出するために、圧縮後の特徴面４０３と特徴面４０４が記憶部１０３に格納されるように、特徴面４０３と特徴面４０４の少なくとも一方がさらに圧縮される。一方で、ビット幅をさらに削減すると後処理の精度が許容可能ではなくなるかもしれない。このため、本実施形態では、圧縮処理部１０２が特徴面４０３と特徴面４０４の少なくとも一方をさらに圧縮する。
【００７６】
次に、圧縮処理部１０２による第２の圧縮処理の圧縮率の決定方法について説明する。この例では、圧縮処理部１０２は、特徴面４０３を０．７５倍に圧縮することにより、データサイズを３ＫＢに削減する。圧縮処理部１０１と圧縮処理部１０２とは、異なる冗長性を利用して、異なる種類の圧縮処理を行う。この例では、圧縮処理部１０１はビット幅を削減することにより特徴面を圧縮し、圧縮処理部１０２は特徴面を空間方向に圧縮している。このように、異なる冗長性を利用する圧縮処理部１０１と圧縮処理部１０２とを併用することで、圧縮処理部１０１がビット幅をさらに削減するよりも、ニューラルネットワークの出力結果の品質の低下が抑制されることが期待される。
【００７７】
図７は、このように特徴面の圧縮を行った場合のネットワーク情報及びメモリ使用量を示す。圧縮処理部１０２は、特徴面４０３の特徴面１枚あたりの画素数を５１２に削減する。一方で、圧縮後の特徴面４０３のデータにはビット列６０８が付加され、ビット列６０８のデータサイズは２５６画素に相当するため。このため、圧縮後の特徴面４０３は合計で７６８画素相当のデータサイズを有する。この場合、特徴面４０３を用いて特徴面４０４を算出する際に、記憶部１０３は圧縮後の特徴面４０３と特徴面４０４（合計７ＫＢ）を格納することができる。また、図４に示すネットワークを処理する際のメモリ使用量の上限は、特徴面４０３から特徴面４０４を算出する際の７ＫＢである。このように、圧縮処理部１０１，１０２の組み合わせにより、メモリ容量が限られた記憶部１０３を用いて図４に示すネットワークを処理することができる。
【００７８】
制御パラメータ１０５は、図７に示す圧縮後の特徴面のサイズを示すネットワーク情報に基づいて決定することができる。制御パラメータ１０５は、特徴面の圧縮に必要な情報、すなわち特徴面の圧縮方法及び圧縮率を示す情報であってもよい。すなわち、制御パラメータ１０５は、各階層について、圧縮処理部１０１による第１の圧縮処理を行うかどうかを示す情報を含んでいてもよい。また、制御パラメータ１０５は、各階層における、圧縮処理部１０１による圧縮方法又は圧縮率を示す情報を含んでいてもよい。図７の例において、制御パラメータ１０５は、各階層についての圧縮後の量子化ビット幅を示し、レイヤ１〜レイヤ４の量子化ビット幅は順に８、２、２、及び８である。制御パラメータ１０５は、さらに、圧縮を行うビット幅２の階層について、式（２）に示される閾値Ｔ０，Ｔ１，Ｔ２を示してもよい。
【００７９】
さらに、制御パラメータ１０５は、各階層について、圧縮処理部１０２による第２の圧縮処理を行うかどうかを示す情報を含んでいてもよい。また、制御パラメータ１０５は、各階層における、圧縮処理部１０２による圧縮方法又は圧縮率を示す情報を含んでいてもよい。図７の例において、制御パラメータ１０５は、レイヤ３が第２の圧縮処理の対象であること、及び式（４）のパラメータｎ，ｍを示す情報を含んでいる。レイヤ３に対応するｎ，ｍの値は、特徴面ブロック６０９のデータサイズＬ’’が、特徴面ブロック５０２のデータサイズＬ’の７５％となるように与えられる。また、制御パラメータ１０５は、他の階層は第２の圧縮処理の対象ではないことを示す情報を含んでいる。
【００８０】
上述のステップＳ２０３において制御部１０４は、このような各階層に対応する制御パラメータ１０５に従って、各階層に対応する第１の制御信号及び第２の制御信号を出力することができる。この例において制御部１０４は、レイヤ１及びレイヤ４に対しては第１の圧縮処理を行わず、レイヤ２及びレイヤ３に対してビット幅を２に削減する第１の圧縮処理を行うことを示す第１の制御信号を出力する。また、制御部１０４は、レイヤ１、レイヤ２、及びレイヤ４に対しては第２の圧縮処理を行わず、レイヤ３に対してはパラメータ（ｎ，ｍ）＝（４，２）を用いて第２の圧縮処理を行うことを示す第２の制御信号を出力する。
【００８１】
［実施形態２］
第１の圧縮処理及び第２の圧縮処理の種類は特に限定されない。実施形態２では、実施形態１とは異なる圧縮処理の組み合わせにより特徴面が圧縮される。実施形態２に係るデータ処理装置は、図３に示す、実施形態１と同様の構成を有している。一方で、データ処理部３０５は、実施形態１とは異なり、図８に示す構成を有している。
【００８２】
図８に示すように、データ処理部３０５は、圧縮処理部８０１、圧縮処理部８０２、記憶部８０３、制御部８０４、演算部８０６を有している。圧縮処理部８０１及び圧縮処理部８０２の構成及び動作は実施形態１の圧縮処理部１０１及び圧縮処理部１０２と同様であるが、圧縮処理部８０１が行う第１の圧縮処理及び圧縮処理部８０２が行う第２の圧縮処理が実施形態１とは異なる。また、記憶部８０３、制御部８０４、及び演算部８０６の構成及び動作は実施形態１の記憶部１０３、制御部１０４、及び演算部１０６と同様である。制御部８０４は、実施形態１と同様に、制御パラメータ８０５に従って動作する。一方、データ処理部３０５は、実施形態１とは異なり展開処理部を有していない。
【００８３】
以下、本実施形態において圧縮処理部８０１が行う第１の圧縮処理と、圧縮処理部８０２が行う第２の圧縮処理について説明する。以下では、図９，１０を参照して、８ビット１６画素の特徴面ブロック９０１を圧縮する例について説明する。以下の例において、特徴面ブロックは、Ｘ方向に８画素、及びＹ方向に２画素を有する矩形領域毎に出力され、ビット幅は８である。
【００８４】
圧縮処理部８０１は、特徴面ブロック９０１を空間方向にダウンサンプリングすることにより、特徴面ブロック９０１を固定長圧縮する。まず、図９に示すように、圧縮処理部８０１は特徴面ブロック９０１を、Ｘ方向に２画素及びＹ方向に２画素を有する矩形領域である複数の分割データ９０２〜９０５に分割する。次に圧縮処理部８０１は、分割データ９０２〜９０５のそれぞれについて代表値を決定し、決定された代表値を結合することにより第１の圧縮処理後の特徴面ブロック９０６を生成する。代表値の決定方法は特に限定されず、例えば４つの画素のうちの最大値又は最小値を選択する、又は４つの画素の平均値を求めるなどの方法が挙げられる。このようにして圧縮処理部８０１は、特徴面の１枚あたりの画素数を削減することができる。なお、圧縮処理部８０１がある階層の特徴面の１枚あたりの画素数を削減した場合、以降の全ての階層の特徴面の画素数を同様に削減することができる。
【００８５】
この場合、図９に示す特徴面ブロック９０６のサイズＬ’は、常に特徴面ブロック９０１の１／４のサイズとなる。特徴面ブロック９０６の画素数は特徴面ブロック９０１の１／４であるから、特徴面ブロック９０６のサイズＬ’は式（５）により表すことができる。式（５）において、ビット幅はｌ’であり、特徴面ブロック９０１の画素数はｗである。
Ｌ’＝ｌ’×（ｗ／４）  ……（５）
【００８６】
図９の例では、（ｌ，ｗ）＝（８，１６）であるから、Ｌ’は３２となる。特徴面ブロック９０１のサイズＬは１２８であるから、特徴面ブロックのデータサイズが２５％に圧縮されることがわかる。
【００８７】
圧縮処理部８０２では、制御信号により指定されたビット幅で量子化することにより、特徴面ブロック９０６を固定長圧縮する。図１０に示すように、圧縮処理部８０２は、第１の圧縮処理により得られた８ビット４画素の特徴面ブロック９０６に対する丸め処理を行う。すなわち、圧縮処理部８０２は、ビット幅４を指定された場合、特徴面ブロック９０６の各画素値の下位４ビットを切り上げし、又は切り捨てることにより、第２の圧縮処理後の特徴面ブロック１００２を得ることができる。
【００８８】
このとき、特徴面ブロック１００２のサイズＬ’’は量子化ビット幅ｌ'により決定される。すなわち、特徴面ブロック１００２のサイズＬ’’は式（６）により表すことができる。式（６）において、ｗ’は特徴面ブロック１００２の画素数を表す。
Ｌ’’＝ｌ’×ｗ’  ……（６）
【００８９】
図１０の例では、（ｌ’，ｗ’）＝（４，４）であるから、Ｌ’’は１６となる。特徴面ブロック９０６のサイズＬ’は３２であるから、特徴面ブロックのデータサイズが５０％に圧縮されることがわかる。
【００９０】
データ処理部３０５が行う処理の流れは、実施形態１と類似している。以下では、図２のフローチャートを参照して、実施形態１とは異なる点を説明する。ステップＳ２０１は、上記の第１の圧縮処理及び第２の圧縮処理に対応する第１の制御信号及び第２の制御信号が出力されることを除き、実施形態１と同様である。本実施形態における制御信号及び制御パラメータ８０５については後述する。
【００９１】
ステップＳ２０５において演算部８０６は、前階層の特徴面を記憶部８０３から読み出し、前階層の特徴面を用いた演算処理により、次階層の特徴面を生成する。本実施形態においては、上記のような第１の圧縮処理及び第２の圧縮処理が行われているため、演算部８０６は記憶部８０３から読み出した特徴面を直接演算処理のために用いることができる。例えば、量子化処理後の特徴面をそのまま用いて演算処理を行うことができる。すなわち、展開処理部が圧縮された特徴面を展開する処理を省略することができる。
【００９２】
一実施形態において、第１の圧縮処理及び第２の圧縮処理のそれぞれは、空間方向の画素数、チャネル数、又は値のビット幅を削減する処理である。このような構成において、展開処理部が圧縮された特徴面を展開する処理は省略される。一方で、その他の場合において、演算部８０６は、圧縮後の前階層の特徴面をそのまま用いた演算処理により、次階層の特徴面を生成してもよい。例えば、実施形態１において、第２の展開処理を省略してもよい。
【００９３】
このように展開処理を省略することにより、ニューラルネットワークを用いたデータ処理の演算量を削減することができる。例えば、圧縮処理により特徴面１枚あたりの画素数を削減し、圧縮された特徴面を用いて演算処理を行うと、積和演算の回数が少なくなる。このように演算量を削減することで、処理時間を短縮することができ、又は、処理時間を延長せずにデータ処理部３０５の回路規模を削減することができる。実施形態１のように圧縮された特徴面に対する展開処理を行うことにより、出力結果の品質が向上することが期待される。一方で、出力結果の品質が許容可能な場合に、実施形態２のように展開処理を省略することにより、メモリ使用量と演算量の双方を削減することができる。
【００９４】
ステップＳ２０７において圧縮処理部８０１及び圧縮処理部８０２は、上記のような第１の圧縮処理及び第２の圧縮処理により特徴面を圧縮する。その他のステップは実施形態１と同様である。
【００９５】
（制御パラメータ）
制御パラメータ８０５の具体例及びその作成方法の例を以下に示す。以下の例でも、図４に示すネットワーク情報と、図３に示すデータ処理装置の制約と、に基づいて予め制御パラメータ８０５が設定される。実施形態２においても、記憶部８０３におけるメモリ使用量の上限は、連続する２階層の特徴面の合計データサイズの最大値に相当する。以下の例では、記憶部８０３は５ＫＢのメモリ容量を有している。
【００９６】
まず、圧縮処理部８０１による第１の圧縮処理の圧縮率の決定方法について説明する。圧縮処理部８０１は、特徴面のサイズ、すなわち特徴面１枚あたりの画素数を１／４に削減し、以降の全ての階層の特徴面のデータサイズを削減する。一方で、画像に対する認識処理を行う場合、データ処理部３０５に入力される画像サイズに対する画像中の被写体サイズを、１枚の特徴面に対する１画素のサイズより十分大きくすることにより、認識精度が向上すると期待される。この例では、認識しようとする被写体の最小サイズに応じて、特徴面１枚あたりの画素数が２５６以上に制限される。このように、許容可能な出力結果の品質を得ながらデータサイズを削減するために、この例では、レイヤ２のみにおいて第１の圧縮処理（空間方向のダウンサンプリング）が行われる。
【００９７】
圧縮処理部８０１による第１の圧縮処理後の特徴面４０１〜４０４の特徴面のサイズは、順に３ＫＢ、２ＫＢ、４ＫＢ、及び１ＫＢとなる。したがって、特徴面４０２を用いて特徴面４０３を算出するために、第１の圧縮処理後の特徴面４０２と特徴面４０３（合計６ＫＢ）が記憶部８０３（５ＫＢ）に格納されるように、特徴面４０２と特徴面４０３の少なくとも一方がさらに圧縮される。一方で、画素数をさらに削減すると後処理の精度が許容可能ではなくなるかもしれない。このため、本実施形態では、圧縮処理部８０２が特徴面４０２と特徴面４０３の少なくとも一方をさらに圧縮する。
【００９８】
次に、圧縮処理部８０２による第２の圧縮処理の圧縮率の決定方法について説明する。この例では、圧縮処理部８０２、特徴面４０３のビット幅を８から４に圧縮することにより、データサイズを２ＫＢに削減する。このように、異なる冗長性を利用する圧縮処理部８０１と圧縮処理部１０２とを併用することで、圧縮処理部８０１が特徴面の画素数をさらに削減するよりも、ニューラルネットワークの出力結果の品質の低下が抑制されることが期待される。
【００９９】
図１１は、このように特徴面の圧縮を行った場合のネットワーク情報及びメモリ使用量を示す。図４に示すネットワークを処理する際のメモリ使用量の上限は、特徴面４０１から特徴面４０２を算出する際の５ＫＢであるため、記憶部８０３を用いて図４に示すネットワークを処理することができる。
【０１００】
実施形態１と同様に、図１１に示すネットワーク情報に基づいて、特徴面の圧縮に必要な情報を制御パラメータ８０５として設定することができる。例えば、圧縮処理部８０１が、レイヤ２においてのみ空間方向のダウンサンプリングを行い、それ以外の階層においてはこれを行わないことを示すように、制御パラメータ８０５を設定することができる。また、圧縮処理部８０２が、レイヤ３についてのみ量子化ビット幅を４に削減し、それ以外の階層についてはビット幅を削減しない（ビット幅を８にする）ように、制御パラメータ８０５を設定することができる。制御部８０４は、実施形態１における制御部１０４と同様に、制御パラメータ８０５に基づいて階層ごとに制御信号を切り替えることができる。圧縮処理部８０１及び圧縮処理部８０２は、与えられた制御信号に従い、特徴面ブロックの圧縮を行う。
【０１０１】
前述の通り、実施形態２においては、特徴面の圧縮によりメモリ使用量だけでなく演算量も削減される。各階層の特徴面を算出するために行われる積和演算の回数は、入力特徴面の枚数、出力特徴面の枚数、及び圧縮前の出力特徴面の１枚当たりの画素数に比例する。上記の例において、演算部８０６は１枚あたりの画素数が１０２４であるレイヤ２の特徴面を算出し、その後圧縮処理部８０１は１枚あたりの画素数が２５６となるように特徴面を圧縮する。また、演算部８０６は、１枚あたりの画素数が２５６であるレイヤ３及びレイヤ４の特徴面を算出する。したがって、上記の例においては、レイヤ３及びレイヤ４の特徴面を算出するために必要な積和演算の回数が、圧縮前の１／４に削減される。
【０１０２】
［その他の実施形態］
実施形態１，２においてデータ処理部３０５は２つの圧縮処理部１０１，１０２又は２つの圧縮処理部８０１，８０２を有していた。一方、データ処理部３０５はそれぞれ異なる種類の圧縮処理を行う３以上の圧縮処理部を有していてもよい。
【０１０３】
また、実施形態１，２ではいくつかの特定の圧縮処理が用いられた。しかしながら、用いられる圧縮処理の組み合わせは特に限定されない。使用可能な圧縮処理の例としては、空間方向の配列に対する圧縮処理が挙げられ、この場合、圧縮処理部１０２及び圧縮処理部８０１と同様に、空間方向の情報（例えば空間方向の冗長性）を用いて圧縮を行うことができる。使用可能な圧縮処理の別の例としては、値のビット幅を削減する方法が挙げられ、例えば圧縮処理部１０１及び圧縮処理部８０２と同様を用いることができる。使用可能な圧縮処理のさらなる別の例として、チャネル方向（特徴面の枚数方向）の配列に対する圧縮処理も挙げられ、この場合、特徴面の枚数方向の情報（例えばチャネル方向の冗長性）を用いて圧縮を行うことができる。例えば、圧縮処理部は、複数枚の特徴面を入力として受け取り、複数の特徴面のそれぞれにある画素を含む画素ブロック（例えば、所定の画素位置にある、各特徴面の画素で構成される画素ブロック）に対し、圧縮処理部１０２と同様の圧縮処理を行ってもよい。また、圧縮処理部は、圧縮処理部８０１と同様に、ダウンサンプリングを行うことで特徴面の枚数を削減する圧縮処理を行ってもよい。
【０１０４】
このように、第１の圧縮処理及び第２の圧縮処理は、空間方向の配列に対する圧縮処理、チャネル方向の配列に対する圧縮処理、及び値のビット幅を削減する処理、のうちの２つであってもよい。また、第１の圧縮処理と第２の圧縮処理の少なくとも一方が、空間方向又はチャネル方向の配列に対する圧縮処理であってもよい。この場合、この圧縮処理に対応する第１の制御信号と第２の制御信号の少なくとも一方が、配列に対する圧縮処理の処理パラメータを規定していてもよい。また、第１の圧縮処理と第２の圧縮処理の少なくとも一方が、値のビット幅を削減する処理であってもよい。この場合、この圧縮処理に対応する第１の制御信号と第２の制御信号の少なくとも一方が、ビット幅の削減量又は削減後のビット幅を指定してもよい。
【０１０５】
また、実施形態１，２で用いられた特徴面ブロックのサイズは一例にすぎず、特に限定されない。特徴面ブロックのサイズは、圧縮処理部１０１，１０２，８０１，８０２への入力データの制約条件を満たすような任意のサイズであってもよい。
【０１０６】
実施形態１における圧縮処理部１０１及び圧縮処理部１０２の接続順序、及び実施形態２における圧縮処理部８０１及び圧縮処理部８０２の接続順序は、入れ替えられてもよい。また、制御部１０４，８０４が、制御パラメータ８０５に従って、各圧縮処理部による処理順序を指定する制御信号を出力してもよい。この場合、圧縮処理部間の接続経路を切り替えられるように、データ圧縮装置を構成することができる。
【０１０７】
実施形態２では展開処理が省略されたが、展開処理を行ってもよい。同様に、複数の圧縮処理に対応する展開処理を行わずに演算処理が可能な場合に、展開処理を行ってもよい。この場合、展開処理部は、圧縮された特徴面のデータサイズを拡大する処理を行うことができる。例えば展開処理部は、実施形態２のように空間方向のダウンサンプリングが行われた後の特徴面に対し、画素数を増やす処理を行うことができる。また、展開処理部は、特徴面の枚数を削減するダウンサンプリングが行われている場合、特徴面の一部又は全てを複製することにより特徴面を増やす処理を行うことができる。
【０１０８】
一実施形態において、複数の圧縮処理部は一階層の特徴面に対して固定長圧縮を行う。すなわち、一階層についての、複数の圧縮処理部による圧縮後の特徴面データサイズは、データ処理部３０５への入力データにかかわらず固定長となる。この構成において、実施形態１，２の圧縮処理部１０１，１０２，８０１，８０２と同様に、複数の圧縮処理部のそれぞれが固定長圧縮を行ってもよい。一方で、この構成において、複数の圧縮処理部のそれぞれが固定長圧縮を行う必要はなく、複数の圧縮処理部が協同して固定長圧縮を行うように、それぞれの圧縮処理が設定されてもよい。
【０１０９】
制御部１０４，８０４が出力する第１の制御信号及び第２の制御信号は、ニューラルネットワークを用いた処理により得られるデータの目標品質に応じて決定された信号であってもよい。例えば、実施形態１，２では、特徴面を記憶部１０３，８０３のメモリに格納可能であるという制約に従って、ニューラルネットワークの出力結果の品質ができるだけ高くなるように制御パラメータ１０５，８０５が決定された。一方で、ニューラルネットワークの出力結果の品質が許容可能であるという制約に従って、記憶部１０３，８０３のメモリ使用量ができるだけ少なくなるように、制御パラメータ１０５，８０５を決定してもよい。また、制御パラメータの決定には、実施形態１，２で説明した方法の他に、一般に特徴面の圧縮がニューラルネットワークの認識精度に及ぼす影響についての知見を用いることができる。例えば、入力層、中間層、及び出力層のそれぞれについて、特徴面の性質の違いを考慮して、それぞれ異なる圧縮処理を適用することができる。
【０１１０】
実施形態１，２では、予め制御パラメータ１０５，８０５が与えられていた。多様なデバイスにおいて特定のニューラルネットワークを用いた処理を行う場合に、ユーザはそれぞれのデバイスのメモリ容量又は目標品質等に基づいて制御パラメータ１０５，８０５を決定することができる。本実施形態においてはニューラルネットワークの構造自体を修正する必要がないため、デバイスに応じた処理制御が容易となる。一方で、制御パラメータ１０５，８０５の算出が自動的に行われてもよい。例えば、制御部１０４，８０４は、デバイスのメモリ容量又は目標品質等を示す情報と、ニューラルネットワークのネットワーク情報に基づいて、制御パラメータ１０５，８０５を決定することができる。制御部１０４，８０４は、例えばステップＳ２０３の直前で、実施形態１，２で説明した方法に従って制御パラメータ１０５，８０５を算出してもよい。
【０１１１】
実施形態１，２において制御部８０４は、階層ごとに出力する制御信号を切り替えた。一方で制御部８０４は、特徴面ブロックごとに出力する制御信号を切り替えてもよい。この場合、制御部８０４は、ステップＳ２０５又はＳ２０７の直前で制御信号の切り替えを行ってもよい。
【０１１２】
実施形態１，２において、演算部１０６，８０６は式（１）に従って活性化関数φを用いた処理を行った。しかしながら、活性化関数φに相当する処理は、演算部１０６以外の処理部が行ってもよい。例えば、演算部１０６，８０６は積和演算のみを行い、圧縮処理部のいずれかが活性化関数φに相当する処理を行ってもよい。
【０１１３】
図４に示すネットワークは一例にすぎず、用いられるネットワークの種類は特に限定されない。例えば、データ処理装置が用いるニューラルネットワークが、畳み込みニューラルネットワークで用いられることがあるプーリング処理を含んでいてもよい。この場合、演算部１０６，８０６が、例えばステップＳ２０５においてプーリング処理を行ってもよい。また、データ処理部３０５、プーリング処理を行うさらなる処理部を有していてもよい。さらに、実施形態２における圧縮処理部８０１をプーリングを行う処理部として利用することもできる。このように、複数の圧縮処理部のいずれかが、例えばステップＳ２０４においてプーリング処理を行ってもよい。
【０１１４】
実施形態１，２において、データ処理部３０５は図１，８に示す専用のハードウェアによって実現される。一方で、データ処理部３０５が行うネットワークを用いた処理が、ソフトウェアによって実現されてもよい。例えば、図２に示す処理が、例えば図３に示すデータ処理装置のような、プロセッサとメモリとを備えるコンピュータによって実現されてもよい。この場合、ＲＯＭ３０７のような記憶媒体に格納されている、各部の機能を実現するプログラムが、ＲＡＭ３０８のようなメモリへと読み出される。そして、ＣＰＵ３０６のようなプロセッサが、メモリ上のプログラムに従って動作することにより、各部の機能が実現される。
【０１１５】
なお、ニューラルネットワークを用いた演算処理において使用されるフィルタ係数は、事前に学習により決定することができる。すなわち、学習用の入力データに対してニューラルネットワークを用いた演算処理を行うことにより得られた出力データと、学習用の入力データに対応する教師データと、を用いて、ニューラルネットワークの学習を行うことができる。例えば、学習においては、複数の動画像データについて画像認識を行い、認識結果に応じてフィルタ係数をその都度更新することができる。ここで、教師データは、入力データに対する演算処理により得られることが期待される正解を示すデータであり、予め用意することができる。具体的なフィルタ係数の決定方法は特に限定されず、例えば誤差逆伝播法が挙げられる。データ処理装置が、このような学習を行う学習部（不図示）を有していてもよい。
【０１１６】
ここで、実施形態１，２のように、記憶部１０３，８０３に格納される特徴面データに対して第１の圧縮処理及び第２の圧縮処理を行う構成を有する場合、以下のように学習を行うことができる。すなわち、学習部は、階層に対応する第１の圧縮処理及び第２の圧縮処理を行いながら、学習用の入力データに対してニューラルネットワークを用いた演算処理を行うことにより得られた出力データを、取得することができる。そして、学習部は、この出力データと、学習用の入力データに対応する教師データと、を用いて、ニューラルネットワークの学習を行うことができる。このように、圧縮処理（及び必要に応じて展開処理）を含む図４のネットワークについて学習を行うことで、圧縮誤差の影響が考慮されたフィルタ係数を得ることができる。このため、圧縮誤差による、ニューラルネットワークの出力結果の品質低下を低減することが可能となる。
【０１１７】
実施形態１，２のようなデータ処理装置が行う処理は、階層ごとの第１の圧縮処理及び第２の圧縮処理を特定する制御パラメータ１０５，８０５と、このように得られたフィルタ係数によって特定されるニューラルネットワークと、により規定される。したがって、このような制御パラメータ１０５，８０５と、ニューラルネットワークと、を含む学習済みモデルも、本発明の範囲に含まれる。
【０１１８】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【０１１９】
１０１，１０２：圧縮処理部、１０３：記憶部、１０４：制御部、１０５：制御パラメータ、１０６：演算部、１０７：展開処理部
【図１】
2020149156.tif 000005
【図２】
2020149156.tif 000006
【図３】
2020149156.tif 000007
【図４】
2020149156.tif 000008
【図５】
2020149156.tif 000009
【図６】
2020149156.tif 000010
【図７】
2020149156.tif 000011
【図８】
2020149156.tif 000012
【図９】
2020149156.tif 000013
【図１０】
2020149156.tif 000014
【図１１】
2020149156.tif 000015