(57)【要約】  本技術は、メモリ量を削減することができるようにするニューラルネットワーク処理装置および方法、並びにプログラムに関する。ニューラルネットワーク処理装置は、入力データの所定フレームに対する演算処理の処理境界と、所定フレームとは異なる入力データの他のフレームに対する演算処理の処理境界とが一致する演算処理を入力データのフレームごとに行う、ニューラルネットワークを構成する演算処理部を備える。本技術はニューラルネットワーク処理装置に適用することができる。
2019146398.tif 000002
【特許請求の範囲】
【請求項１】
入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理を前記入力データのフレームごとに行う、ニューラルネットワークを構成する演算処理部を備える
ニューラルネットワーク処理装置。
【請求項２】
前記演算処理における前進数、前記演算処理に用いられるフィルタ係数からなるフィルタのタップ数、前記演算処理において対象とされるデータ領域の大きさ、または前記入力データのフレーム長は、前記所定フレームと前記他のフレームとで前記演算処理の処理境界が一致するように定められている
請求項１に記載のニューラルネットワーク処理装置。
【請求項３】
前記前進数、前記タップ数、前記データ領域の大きさ、または前記フレーム長は、前記入力データのデータ形状に基づいて定められる
請求項２に記載のニューラルネットワーク処理装置。
【請求項４】
前記入力データのデータ形状は、前記入力データの次元数および各次元におけるデータ数により定まる
請求項３に記載のニューラルネットワーク処理装置。
【請求項５】
前記演算処理は、畳み込み処理、プーリング処理、またはレジデュアル処理である
請求項１に記載のニューラルネットワーク処理装置。
【請求項６】
前記ニューラルネットワーク処理装置は、ニューラルネットワーク構造の識別器である
請求項１に記載のニューラルネットワーク処理装置。
【請求項７】
前記入力データはオーディオ信号の低域サブバンドの低域サブバンドパワーであり、
前記演算処理部は、前記演算処理により得られた前記オーディオ信号の高域サブバンドの高域サブバンドパワーを出力する
請求項１に記載のニューラルネットワーク処理装置。
【請求項８】
ニューラルネットワーク処理装置が、
ニューラルネットワークを構成する演算処理部を備え、
前記演算処理部が入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理を前記入力データのフレームごとに行う
ニューラルネットワーク処理方法。
【請求項９】
コンピュータを、
入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理を前記入力データのフレームごとに行う、ニューラルネットワークを構成する演算処理部を備えるニューラルネットワーク処理装置として機能させる
プログラム。
【請求項１０】
圧縮符号化されたフィルタのフィルタ係数の復号処理を行う復号部と、
前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理を行う、ニューラルネットワークを構成する演算処理部と
を備えるニューラルネットワーク処理装置。
【請求項１１】
前記復号部は、前記フィルタ係数の前記圧縮符号化により得られた、値がゼロである前記フィルタ係数を示すゼロ係数位置テーブルと、ゼロでない前記フィルタ係数の値を示す非ゼロ係数テーブルとに基づいて前記復号処理を行う
請求項１０に記載のニューラルネットワーク処理装置。
【請求項１２】
前記演算処理部は、前記復号処理により得られた、値がゼロでない前記フィルタ係数のみを用いて前記畳み込み処理を行う
請求項１０に記載のニューラルネットワーク処理装置。
【請求項１３】
ニューラルネットワーク処理装置が、
圧縮符号化されたフィルタのフィルタ係数の復号処理を行う復号部と、
前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理を行う、ニューラルネットワークを構成する演算処理部と
を備え、
前記復号部が前記復号処理を行い、
前記演算処理部が前記畳み込み処理を行う
ニューラルネットワーク処理方法。
【請求項１４】
コンピュータを、
圧縮符号化されたフィルタのフィルタ係数の復号処理を行う復号部と、
前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理を行う、ニューラルネットワークを構成する演算処理部と
を備えるニューラルネットワーク処理装置として機能させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ニューラルネットワーク処理装置および方法、並びにプログラムに関し、特に、メモリ量を削減することができるようにしたニューラルネットワーク処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、音声認識や話者識別、環境音識別等のオーディオデータに対する識別処理や、画像認識等の画像データに対する識別処理といった自動識別技術が知られている。【０００３】
このような識別処理を行うための方法として線形識別や、決定木、サポートベクタマシン、ニューラルネットワークなどを利用した方法が提案されている（例えば、非特許文献１および非特許文献２参照）。【０００４】
例えばニューラルネットワークを利用した識別処理では、予め学習により得られたニューラルネットワーク構造の識別器に対してデータが入力され、識別器によりデータに対する畳み込み処理やプーリング処理、レジデュアル処理等の演算が行われる。そして、識別器による演算結果が、入力されたデータに対する識別結果として出力される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Kevin P. Murphy, Machine Learning: A Probabilistic Perspective, The MIT Press, 2012
【非特許文献２】Ian Goodfellow, Yoshua Bengio, and Aaron Courville, Deep Learning, The MIT Press, 2016
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、近年では自動識別に関する機能をスマートフォンやヘッドフォンなどのポータブル機器に搭載したいという要望もあり、そのためにニューラルネットワーク等を利用した識別処理を行う際に必要となるメモリ量の削減が望まれている。【０００７】
本技術は、このような状況に鑑みてなされたものであり、メモリ量を削減することができるようにするものである。
【課題を解決するための手段】
【０００８】
本技術の第１の側面のニューラルネットワーク処理装置は、入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理を前記入力データのフレームごとに行う、ニューラルネットワークを構成する演算処理部を備える。【０００９】
本技術の第１の側面のニューラルネットワーク処理方法およびプログラムは、第１の側面のニューラルネットワーク処理装置に対応するニューラルネットワーク処理方法およびプログラムである。【００１０】
本技術の第１の側面においては、ニューラルネットワークを構成する演算処理部により、入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理が前記入力データのフレームごとに行われる。【００１１】
本技術の第２の側面のニューラルネットワーク処理装置は、圧縮符号化されたフィルタのフィルタ係数の復号処理を行う復号部と、前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理を行う、ニューラルネットワークを構成する演算処理部とを備える。【００１２】
本技術の第２の側面のニューラルネットワーク処理方法およびプログラムは、第２の側面のニューラルネットワーク処理装置に対応するニューラルネットワーク処理方法およびプログラムである。【００１３】
本技術の第２の側面においては、復号部により、圧縮符号化されたフィルタのフィルタ係数の復号処理が行われ、ニューラルネットワークを構成する演算処理部により、前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理が行われる。
【発明の効果】
【００１４】
本技術の第１の側面および第２の側面によれば、メモリ量を削減することができる。【００１５】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載された何れかの効果であってもよい。
【図面の簡単な説明】
【００１６】
【図１】ニューラルネットワークについて説明する図である。
【図２】畳み込み処理およびプーリング処理について説明する図である。
【図３】フレーム処理について説明する図である。
【図４】本技術を適用したニューラルネットワーク構造の識別器について説明する図である。
【図５】本技術を適用したニューラルネットワーク構造の識別器について説明する図である。
【図６】フィルタ係数の圧縮符号化について説明する図である。
【図７】ニューラルネットワーク処理装置の構成例を示す図である。
【図８】識別処理を説明するフローチャートである。
【図９】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本技術を適用した実施の形態について説明する。
【００１８】
〈第１の実施の形態〉
〈本技術について〉
本技術は、ニューラルネットワークを利用した識別処理や回帰処理を実現する場合に、入力されたデータに対してフレーム単位で畳み込み処理等の演算処理を行なうときに、現フレームと過去のフレームとの演算処理の処理境界を一致させることでメモリ量を削減することができるようにするものである。
【００１９】
まず、図１および図２を参照して、ある時間区間のオーディオデータを入力とし、ニューラルネットワークを利用して、そのオーディオデータに対する識別処理を行う識別器について説明する。なお、図１および図２において、互いに対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００２０】
図１は、入力されたオーディオデータに対する識別処理を行い、その識別結果を出力するニューラルネットワーク構造の識別器の構成を示している。
【００２１】
図１では、各四角形はデータの形状を表しており、特に各データにおける図中、縦方向は時間方向を示しており、図中、横方向は次元を示している。また図中、横方向の矢印はデータの変換を表している。ここで、各データのデータ形状は、データの次元数と各次元におけるデータ数（データサンプル数）により定まるものである。
【００２２】
例えば図中、左側の端にある四角形の入力データDT11は、ニューラルネットワーク構造の識別器に入力されるオーディオデータである。
【００２３】
ここでは入力データDT11における図中、縦方向は時間方向を示しており、図中、横方向は次元を示している。特に、入力データDT11における図中、下方向がより新しい時刻の方向（未来方向）となっている。
【００２４】
入力データDT11は、7910サンプル分の時間区間の１チャネル分のオーディオデータとなっている。換言すれば、入力データDT11は7910個のサンプル（時間サンプル）のサンプル値からなる１チャネル分のオーディオデータである。
【００２５】
したがって、ここではオーディオデータのチャネルが入力データDT11の次元に対応しており、入力データDT11の形状は１次元×7910サンプルとなる。また、入力データDT11の図中、上側にあるサンプルほど過去のサンプルとなる。
【００２６】
図１に示す識別器では、入力データDT11を入力として５つの各レイヤ（階層）において演算処理としてデータ変換が行われ、図中、右側の端にある識別結果データDT16が出力として得られる。換言すれば、畳み込みレイヤ１から畳み込みレイヤ３までの間で合計５回のデータ変換を行うことで、入力データDT11から識別結果データDT16が算出される。
【００２７】
この識別結果データDT16は、識別器による識別結果を示す１×１（１次元×１サンプル）のデータである。より詳細には識別結果データDT16は、例えば入力データDT11に基づく音声が予め定められた特定の音声である確率を示すデータとなっている。
【００２８】
図１に示す識別器では、まず畳み込みレイヤ１において入力データDT11に対して４種類のフィルタごとにフィルタ処理が行われる。換言すれば、４種類のフィルタごとに、フィルタを構成するフィルタ係数と、入力データDT11との畳み込み処理が行われる。
【００２９】
畳み込みレイヤ１で行われる畳み込み処理で用いられる各フィルタは、20×1タップのフィルタとなっている。換言すれば、各フィルタのタップ数、つまりフィルタ係数の数は20×1となっている。また、各フィルタでの畳み込み処理では、10サンプル前進のフィルタ処理が行われる。
【００３０】
このような畳み込みレイヤ１での畳み込み処理によって、入力データDT11は中間データDT12へと変換される。
【００３１】
この中間データDT12は４次元×790サンプルのデータとなっている。すなわち、中間データDT12は図中、横方向に並ぶ４つの各次元のデータからなり、各次元のデータは790個のサンプル、つまり図中、縦方向に並ぶ790個のデータから構成される。
【００３２】
続いて、２番目のレイヤであるプーリングレイヤ１では、畳み込みレイヤ１で得られた中間データDT12に対して、10サンプル幅のデータ領域を対象とし、そのデータ領域から最大値をピック（抽出）する処理が10サンプル前進で行われる。
【００３３】
換言すれば、プーリングレイヤ１では、10サンプル幅のデータ領域を対象として最大値を抽出する10サンプル前進のプーリング処理が中間データDT12に対して行われる。
【００３４】
このようなプーリング処理により、中間データDT12が中間データDT13へと変換される。ここでは、中間データDT13は４次元のデータとなっており、各次元のデータは79個のサンプル（データ）からなる。
【００３５】
ここで、図２を参照して畳み込みレイヤ１における畳み込み処理と、プーリングレイヤ１におけるプーリング処理について説明する。
【００３６】
例えば図２の左側に示すように、畳み込みレイヤ１における１つのフィルタによる畳み込み処理では、入力データDT11におけるサンプルSP11やサンプルSP12、サンプルSP13を含む20個のサンプルとフィルタ係数とが畳み込まれる。
【００３７】
すなわち、データ領域W11内に含まれている、時間方向に連続して並ぶサンプルSP11からサンプルSP13までの20個の各サンプルと、フィルタを構成するフィルタ係数とを畳み込む畳み込み処理が行われる。そして、データ領域W11を対象とした畳み込み処理により得られた値が、中間データDT12の図中、左下のサンプルSP21のサンプル値とされる。
【００３８】
データ領域W11が１次元×20サンプルの領域とされるのは、畳み込みレイヤ１における畳み込み処理に用いられるフィルタが20×1タップのフィルタだからである。
【００３９】
また、畳み込みレイヤ１における畳み込み処理のサンプル前進数は10であるので、すなわち10サンプル前進の畳み込み処理であるので、データ領域W11を対象とした畳み込み処理の次に行われる畳み込み処理では、データ領域W12が処理対象の領域とされる。
【００４０】
このデータ領域W12は、データ領域W11の先頭にあるサンプルSP11から見て、10サンプルだけ前にあるサンプルSP12を先頭とする、連続して並ぶ20個のサンプルからなる領域である。すなわち、データ領域W12は、データ領域W11を過去方向に10サンプルだけずらした領域である。ここでは、データ領域W12は、サンプルSP12からサンプルSP14までの領域となっている。
【００４１】
データ領域W12を対象とした畳み込み処理では、データ領域W11における場合と同様に、入力データDT11におけるサンプルSP12からサンプルSP14までの20個の各サンプルとフィルタ係数とが畳み込まれる。そして、データ領域W12を対象とした畳み込み処理により得られた値が、中間データDT12の図中、左下から上方向に２番目のサンプルSP22のサンプル値とされる。
【００４２】
畳み込みレイヤ１では、４つのフィルタごとに、処理対象とするデータ領域を10サンプルずつずらしていく畳み込み処理が繰り返し行われて、中間データDT12が生成される。中間データDT12における４つの次元のデータのそれぞれは、畳み込みレイヤ１における４つのフィルタによる畳み込み処理で得られたデータのそれぞれである。
【００４３】
また、プーリングレイヤ１では、１つ目の次元のサンプルSP21からサンプルSP23までの縦方向に連続して並ぶ10個のサンプルからなるデータ領域W21を処理対象として、最大値を抽出する処理が行われる。
【００４４】
すなわち、データ領域W21内にある10個のサンプルのサンプル値のうちの最大値が、中間データDT13の図中、左下のサンプルSP31のサンプル値とされる。
【００４５】
データ領域W21を対象として最大値を抽出する処理が行われると、次にデータ領域W21の先頭にあるサンプルSP21から見て、10サンプルだけ前にあるサンプルを先頭とする、連続して並ぶ10個のサンプルからなる領域が次のデータ領域とされる。すなわち、プーリングレイヤ１におけるプーリング処理のサンプル前進数は10であるので、処理対象とするデータ領域が10サンプル分だけずらされる。
【００４６】
そして、そのようにして得られた新たなデータ領域を対象として最大値を抽出する処理が行われ、以降においても同様の処理が行われていき、中間データDT12が中間データDT13へと変換される。
【００４７】
図１の説明に戻り、プーリングレイヤ１におけるプーリング処理によって中間データDT13が得られると、３番目のレイヤである畳み込みレイヤ２では、８種類のフィルタが用いられて、畳み込みレイヤ１における場合と同様の畳み込み処理が行われる。
【００４８】
すなわち、畳み込みレイヤ２では、タップ数が10×4である、つまり10×4タップである互いに異なる８個のフィルタが用いられて、それらのフィルタごとに１サンプル前進の畳み込み処理（フィルタ処理）が行われる。
【００４９】
これにより、中間データDT13が８次元×70サンプルの中間データDT14へと変換される。すなわち、中間データDT14は８次元のデータとなっており、各次元のデータは70個のサンプル（データ）からなる。
【００５０】
４番目のレイヤであるプーリングレイヤ２では、10サンプル幅のデータ領域を対象として最大値を抽出する10サンプル前進のプーリング処理が中間データDT14に対して行われる。これにより、中間データDT14が８次元×７サンプルの中間データDT15へと変換される。
【００５１】
さらに、５番目のレイヤである畳み込みレイヤ３では、１種類のフィルタが用いられて、畳み込みレイヤ１における場合と同様の畳み込み処理が行われる。
【００５２】
すなわち、畳み込みレイヤ３では、7×8タップの１個のフィルタが用いられて、１サンプル前進の畳み込み処理（フィルタ処理）が行われる。
【００５３】
これにより、中間データDT15が識別器の出力である１次元×１サンプルの識別結果データDT16に変換され、このようにして得られた識別結果データDT16が、入力データDT11に対する識別処理の結果（識別結果）として出力される。
【００５４】
以上のような畳み込みレイヤ１から畳み込みレイヤ３までの５つのレイヤでの演算処理が、ニューラルネットワーク構造の識別器により行われる。
【００５５】
ところで、このようなニューラルネットワーク構造の識別器による各レイヤでは、直前のレイヤでの演算処理で得られたデータ全てを対象として、現レイヤでの演算処理を行う必要があるため、演算処理の処理量や演算処理に必要となるメモリのメモリ量が多くなってしまう。
【００５６】
ここで、図１に示したニューラルネットワーク構造の識別器による処理に対してフレーム処理を適用することを考えるとする。
【００５７】
フレーム処理とは、入力データに対してフレームを単位として処理を行うこと、つまり入力データのフレームの先頭または末尾の位置を処理の開始位置として処理を行うことをいう。フレーム処理は、主に演算処理のためのメモリ量を削減したり、例えば入力データ1024サンプルに対して１回の出力を行うなど、ニューラルネットワークの出力を算出する頻度を調整したりすることを目的として適用される。
【００５８】
例えば図３に示すように、図１における場合と同じニューラルネットワーク構成で、識別器により行われる処理に対してフレーム処理を適用するとする。すなわち、入力データDT11の１フレーム分である1024サンプルに対して、１回の頻度で識別結果データDT16を算出するようなフレーム処理を行うとする。なお、図３において図１における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００５９】
図３において、入力データDT11における時間的に最も新しいフレームを現フレームとする。現フレームは、入力データDT11における図中、最も下側に連続して並ぶ1024個のサンプルからなる区間となっており、図３では入力データDT11における現フレームの部分には斜線（ハッチ）が施されている。
【００６０】
入力データDT11の現フレームに対して１つの識別結果データDT16を算出しようとすると、畳み込みレイヤ１ではデータ領域W41を処理対象とした畳み込み処理が行われることになる。
【００６１】
データ領域W41は、現フレームを構成する1024個のサンプルと、その現フレームの時間的に直前のフレーム（以下、直前フレームとも称する）における最後の６個のサンプルとからなる合計1030個のサンプルからなる区間となっている。
【００６２】
このとき、入力データDT11における現フレームでの処理対象以外のデータ（区間）に対する畳み込みは、過去のフレームにおいて行われるようにすることができれば、点線で描かれたデータ領域W42部分についての演算処理と、その演算処理のためのメモリ量を削減することができる。
【００６３】
しかしながら、図３に示すニューラルネットワークの構成では、そのような処理量とメモリ量の削減を行うことができない。これは現フレームの処理境界と、直前フレームの処理境界とが一致しないからである。
【００６４】
ここでフレームの処理境界とは、例えばそのフレームについての演算処理を開始すべきデータのサンプル位置、つまりフレームの先頭または末尾の位置や、そのフレームについての演算処理が終了した後、次の演算処理を開始すべきデータのサンプル位置である。
【００６５】
例えば現フレームについての処理境界は、現フレームの演算処理が終了した後、次の演算処理を開始すべき入力データDT11のサンプル位置である。このサンプル位置が現フレームと隣接する直前フレームについての演算処理が開始される入力データDT11のサンプル位置、つまり直前フレームの処理境界である、直前フレームの末尾（最後）のサンプル位置と一致しないと演算量やメモリ量を削減することができない。
【００６６】
具体的には、例えば入力データDT11のうち、図３中、最も下側にあるサンプルからｎ（但し１≦ｎ）番目にあるサンプルをｎ番目のサンプルとする。したがって、例えば入力データDT11の図中、最も下側にあるサンプル、つまり最も新しい時刻のサンプルが１番目のサンプルである。
【００６７】
この場合、畳み込みレイヤ１では、現フレームにおいて、まず入力データDT11のうちの１番目のサンプルから20番目のサンプルに対して、20×1タップのフィルタによる畳み込み処理が行われる。
【００６８】
また、畳み込みレイヤ１での前進数（サンプル前進数）は10サンプルであるので、次に、11番目のサンプルから30番目のサンプルに対して20×1タップのフィルタによる畳み込み処理が行われる。
【００６９】
その後、同様の畳み込み処理が繰り返し行われ、現フレームでは、最終的には入力データDT11のうちの1011番目のサンプルから1030番目のサンプルに対して20×1タップのフィルタによる畳み込み処理が行われる。
【００７０】
これまでの畳み込み処理の処理対象となったデータ領域が、入力データDT11におけるデータ領域W41であり、現フレームではこのデータ領域W41が処理対象の領域とされて畳み込み処理が行われる。
【００７１】
また、1011番目のサンプルから1030番目のサンプルに対する畳み込み処理が行われると、その次は、1021番目のサンプルから1040番目のサンプルが畳み込み処理の対象となるので、畳み込み処理の現フレームの処理境界は1021番目のサンプルとなる。
【００７２】
この場合、現フレームの直前にある直前フレームにおいては、1021番目のサンプルから1040番目のサンプルに対して畳み込み処理が行われていなければならないはずである。
【００７３】
しかし、実際にはそのような畳み込み処理は行われず、フレーム処理を行った場合、つまりフレームを単位として処理を行った場合、直前フレームにおいては、現フレームのフレーム境界である1025番目のサンプルから畳み込み処理が行われることになる。
【００７４】
すなわち、直前フレームの処理境界は1025番目のサンプルであり、この1025番目のサンプルと、現フレームの処理境界である1021番目のサンプルとは一致していない。
【００７５】
そのため、上述した現フレームでの処理対象以外のデータ（区間）に対する畳み込み、つまりここでは1021番目のサンプルからの畳み込みが、直前フレームにおいて行われるようにすることができず、その結果、処理量とメモリ量の削減を行うことができない。
【００７６】
しかも図３の例では、フレーム処理を適用したために畳み込みレイヤ１での畳み込み処理は、図１を参照して説明した畳み込みレイヤ１での畳み込み処理とは異なる処理となってしまう。すなわち、図１を参照して説明した例とは異なるデータ領域に対する畳み込み処理が行われてしまう。
【００７７】
そうすると、結局、図１を参照して説明した例と同じ畳み込み処理が行われるようにするためには、１フレーム分である1024サンプルごとに、入力データDT11全てに対して図１を参照して説明した処理を行う必要があり、結果として多くの処理量とメモリ量が必要となる。
【００７８】
そこで本技術では、入力データに対してフレーム単位で演算処理を行うフレーム処理を適用し、ニューラルネットワークの構造をフレーム処理において現フレームと過去フレームの処理境界が一致する構造とすることで、少なくともメモリ量を削減できるようにした。
【００７９】
具体的には本技術では、少なくとも１つのレイヤにおいて、そのレイヤでフレームに対して行われる演算処理の処理単位またはサンプル前進数が、入力データの形状により定まる大きさまたは前進数となっているニューラルネットワーク構造の識別器が用いられる。
【００８０】
換言すれば、本技術を適用したニューラルネットワーク構造の識別器では、互いに隣接するフレームの処理境界が一致するように、各レイヤにおける演算処理の処理単位やサンプル前進数、フレーム長（フレームのサンプル数）が定められている。
【００８１】
また、ニューラルネットワーク構造の識別器でフレーム処理が行われ、１フレームの大きさ（フレーム長）が予め定められている場合には、入力データの形状だけでなく１フレームの大きさ（フレーム長）も考慮されてレイヤで行われる演算処理の処理単位やサンプル前進数が定められるようにすればよい。
【００８２】
ここで、データの形状（データ形状）は、上述したようにデータの次元数と各次元におけるデータ数（データサンプル数）により定まる。
【００８３】
例えば図１に示した入力データDT11は、１次元の7910サンプルからなるデータであるので、１次元×7910サンプルのデータ形状のデータとなる。また、例えば図１に示した中間データDT12は、４次元×790サンプルのデータ形状のデータとなる。
【００８４】
なお、レイヤで行われる演算処理の処理単位の大きさとは、そのレイヤにおいて１フレーム分の演算処理が行われるときの処理の最小単位である。すなわち、例えば１つのレイヤで処理対象とされるデータ領域がずらされながら同じ処理が複数回繰り返し行われるときのデータ領域の大きさ、つまりデータ領域内に含まれるサンプルのサンプル数が処理単位の大きさである。
【００８５】
具体的には、例えば図１を参照して説明した畳み込みレイヤ１であれば、処理単位とは１度の畳み込み処理（フィルタ処理）が行われる20個のサンプルからなるデータ領域であり、このデータ領域はフィルタのタップ数により定まる。
【００８６】
また、例えば図１を参照して説明したプーリングレイヤ１であれば、処理単位とは最大値の抽出対象となる10個のサンプルからなるデータ領域であり、このデータ領域はサンプル幅により定まる。
【００８７】
このように入力データの形状やフレーム長に対して定まるタップ数や、サンプル幅（データ領域の大きさ）、サンプル前進数でレイヤの演算処理が行われるニューラルネットワーク構造（構成）の識別器を用いた識別処理が行われるようにすれば、互いに隣接するフレームにおける演算処理の処理境界を一致させることができる。これにより、少なくとも演算処理時に一時的に必要となるメモリのメモリ量を削減することができ、より効率よく識別を行うことができる。
【００８８】
本技術によれば、例えば数フレーム分の入力データDT11がある状態で、現フレームから時間的に過去方向にフレーム単位で順番に処理を行っていく場合でも、入力データDT11がフレーム単位で逐次入力されて、現フレームから時間的に未来方向にフレーム単位で順番に処理を行っていく場合でも、隣接するフレームにおける演算処理の処理境界を一致させることができる。また、フレームに対する演算処理の開始位置は、フレーム先頭のサンプルであってもよいし、フレーム末尾のサンプルであってもよい。
【００８９】
なお、ここでは入力データの形状やフレーム長に対してタップ数や、サンプル幅、サンプル前進数が定められる例について説明する。しかし、互いに隣接するフレームにおける演算処理の処理境界が一致するように、入力データの形状に対してデータのフレーム長、すなわちフレームを構成するサンプル数（データ数）が定められるようにしてもよい。そのような場合においても互いに隣接するフレームにおける演算処理の処理境界を一致させ、より効率よく識別を行うことができる。
【００９０】
ここで、本技術を適用したニューラルネットワーク構造の識別器による識別処理の具体的な例について説明する。
【００９１】
本技術を適用したニューラルネットワーク構造の識別器では、例えば図４に示すように各レイヤにおける処理が行われる。
【００９２】
すなわち、図４に示す例では、識別器による識別処理として５個の各レイヤの処理が順番に行われ、オーディオデータである１次元（１チャネル）の入力データDT11’から、最終的な識別結果である識別結果データDT16’が算出される。
【００９３】
特に、ここではフレームを単位として時間方向で過去のフレームから未来のフレームへと向かって順番に、各フレームについて５個の各レイヤの処理が順番に行われ、フレームごとに識別結果データDT16’が出力されるフレーム処理が行われる。この例では１フレームは1024個のサンプルにより構成されており、１つのフレームの処理では入力データDT11’が識別器の入力とされ、１つの識別結果データDT16’が出力される。
【００９４】
なお、図４において各四角形はデータを表している。また、各データにおける図中、縦方向は時間方向を示しており、図中、横方向は次元を示している。特に、各データにおける図中、下方向がより新しい時刻の方向（未来方向）となっている。
【００９５】
さらに、図中、横方向の矢印はデータの変換を表している。ここでは、１番目のレイヤは畳み込みレイヤ１’となっており、２番目のレイヤはプーリングレイヤ１となっており、３番目のレイヤは畳み込みレイヤ２となっている。また、４番目のレイヤはプーリングレイヤ２となっており、５番目のレイヤは畳み込みレイヤ３となっている。
【００９６】
これらの５個のレイヤのうち、２番目のプーリングレイヤ１から５番目の畳み込みレイヤ３までの各レイヤの処理は、図１を参照して説明した２番目のプーリングレイヤ１から５番目の畳み込みレイヤ３までの各レイヤの処理と同じであるので、その説明は適宜省略する。
【００９７】
この例では、入力データDT11’は、図１に示した7910サンプルからなる入力データDT11のうちの最も新しい時刻のサンプルである１番目のサンプルから1036番目のサンプルまでの部分のデータとなっている。
【００９８】
ここで、１フレームが1024サンプルからなるとすると、入力データDT11’における１番目のサンプルから1024番目のサンプルまでの区間が１つのフレームとなり、以下ではこのフレームを現フレームとすることとする。
【００９９】
また、入力データDT11’における1025番目のサンプルから1036番目のサンプルまでの各サンプルは、現フレームの時間的に直前にある直前フレームのサンプルとなる。
【０１００】
畳み込みレイヤ１’では、このような現フレームのデータ（サンプル）と、直前フレームの一部のデータとからなる入力データDT11’が入力とされて畳み込み処理が行われ、入力データDT11’が中間データDT12’へと変換される。なお、より詳細には現フレームにおける畳み込みレイヤ１’の畳み込み処理では、４次元×790サンプルの中間データDT12’のうちの一部のデータPDT1のみが得られ、残りのデータPDT2の部分は過去のフレームでの畳み込み処理で得られたものとなっている。
【０１０１】
畳み込みレイヤ１’での畳み込み処理では、入力データDT11’に対してタップ数が20×1である、つまり20×1タップである４種類のフィルタが用いられて、それらのフィルタごとに８サンプル前進の畳み込み処理（フィルタ処理）が行われる。
【０１０２】
特に畳み込みレイヤ１’では、フレームを単位とするフレーム処理が行われる。すなわち、畳み込みレイヤ１’ではフレームごとに、４種類の20×1タップのフィルタのフィルタ係数を用いた８サンプル前進の畳み込み処理（フィルタ処理）が、フレームに対する演算処理として行われる。
【０１０３】
この場合、現フレームに対する処理では、現フレームの全てのサンプルが含まれるデータ領域が対象領域とされて畳み込み処理が行われる。そして、その畳み込み処理の時間的に前のタイミングでは、畳み込みレイヤ１’の演算処理として、直前フレームの全てのサンプルが含まれるデータ領域が対象領域とされて畳み込み処理が行われている。
【０１０４】
また、２番目のレイヤであるプーリングレイヤ１では、10サンプル幅のデータ領域を対象として最大値を抽出する10サンプル前進のプーリング処理が中間データDT12’に対して行われる。これにより、中間データDT12’が４次元×79サンプルの中間データDT13’へと変換される。
【０１０５】
３番目のレイヤである畳み込みレイヤ２では、タップ数が10×4である互いに異なる８個のフィルタが用いられて、それらのフィルタごとに１サンプル前進の畳み込み処理（フィルタ処理）が行われる。これにより、中間データDT13’が８次元×70サンプルの中間データDT14’へと変換される。
【０１０６】
さらに、４番目のレイヤであるプーリングレイヤ２では、10サンプル幅のデータ領域を対象として最大値を抽出する10サンプル前進のプーリング処理が中間データDT14’に対して行われる。これにより、中間データDT14’が８次元×７サンプルの中間データDT15’へと変換される。
【０１０７】
最後に５番目のレイヤである畳み込みレイヤ３では、タップ数が7×8である１個のフィルタが用いられて１サンプル前進の畳み込み処理が行われ、中間データDT15’が１次元×１サンプルの識別結果データDT16’へと変換される。このようにして得られた識別結果データDT16’が、入力データDT11’に対する識別処理の結果（識別結果）として出力される。
【０１０８】
ここで、畳み込みレイヤ１’での畳み込み処理と、図１を参照して説明した畳み込みレイヤ１での畳み込み処理とを比較すると、畳み込みレイヤ１ではサンプル前進数が10であったのに対して、畳み込みレイヤ１’ではサンプル前進数が８とされている。
【０１０９】
このようにサンプル前進数を８とすると、現フレームでは１番目のサンプルから20番目のサンプルまでのデータ領域が対象とされて畳み込み処理が行われ、続いて９番目のサンプルから28番目のサンプルまでのデータ領域が対象とされて畳み込み処理が行われる。
【０１１０】
そして、それ以降においてもデータ領域が８サンプルずつずらされながら畳み込み処理が行われていき、最後に1017番目のサンプルから1036番目のサンプルまでのデータ領域が対象とされて畳み込み処理が行われる。
【０１１１】
この場合、最後の畳み込み処理が行われるデータ領域の先頭は1017番目のサンプルであるから、そのサンプルから時間方向に８サンプル前にある1025番目のサンプルは現フレームにおける処理境界となる。
【０１１２】
ここでは１フレームは1024サンプルであり、この1025番目のサンプルは直前フレームの末尾（最後）のサンプルとなるから、1025番目のサンプルは直前フレームにおける処理境界となる。したがって、図４の例では互いに隣接する現フレームにおける処理境界と、直前フレームにおける処理境界とが一致することになる。特にこの例では、フレームの処理境界の位置はフレームの境界位置となる。これにより、現フレームでの処理対象以外のデータ（区間）に対する畳み込みは、過去のフレームにおいて行われるようになる。
【０１１３】
より具体的には、この例ではフレーム処理が行われるので、入力データDT11の1024サンプルの入力に対して、１つの識別結果データDT16’が算出される。
【０１１４】
この場合、現フレームにおいては入力データDT11のうちの入力データDT11’の部分が処理対象のデータ領域とされて畳み込みレイヤ１’の畳み込み処理が行われる。
【０１１５】
そのため、現フレームでは、入力データDT11における点線で描かれたデータ領域W51の部分については畳み込み処理を行う必要がなく、その分だけ畳み込み処理の処理量と、その畳み込み処理のために入力データDT11のデータ領域W51部分のデータ等を保持しておくメモリのメモリ量とを削減することができる。
【０１１６】
なお、この場合、現フレームにおける畳み込みレイヤ１’の畳み込み処理では、中間データDT12’における図４中、下側の４次元×128サンプルの部分のデータPDT1のみが得られ、中間データDT12’の残りの部分のデータPDT2は得られない。
【０１１７】
しかし、データPDT2については、現フレームよりも時間的に過去の複数のフレームにおける畳み込みレイヤ１’の畳み込み処理で既に得られているので、それらの畳み込み処理で得られたデータPDT2を保持しておけばよい。そうすれば現フレームにおける畳み込みレイヤ１’の畳み込み処理が終了した時点で中間データDT12’を得ることができるため、その後、直ちにプーリングレイヤ１の処理を開始することができる。
【０１１８】
また、図４では畳み込みレイヤ１’のみ、隣接する各フレームでの処理境界が一致するようなニューラルネットワーク構造の識別器を用いる場合について説明した。しかし、畳み込みレイヤ１’の後のレイヤにおいても隣接する各フレームでの処理境界が一致するようにしてもよい。
【０１１９】
そのような場合、本技術を適用したニューラルネットワーク構造の識別器では、例えば図５に示すように各レイヤにおける処理が行われる。なお、図５において図４における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０１２０】
図５に示す例では、識別器による識別処理として５個の各レイヤの処理が順番に行われ、オーディオデータである１次元（１チャネル）の入力データDT11’から、最終的な識別結果である識別結果データDT25が算出される。
【０１２１】
特に、ここではフレームを単位として時間方向で過去のフレームから未来のフレームへと向かって順番に、各フレームについて５個の各レイヤの処理が順番に行われ、フレームごとに識別結果データDT25が出力されるフレーム処理が行われる。
【０１２２】
なお、図５において各四角形はデータを表している。また、各データにおける図中、縦方向は時間方向を示しており、図中、横方向は次元を示している。特に、各データにおける図中、下方向がより新しい時刻の方向（未来方向）となっている。
【０１２３】
さらに、図中、横方向の矢印はデータの変換を表している。ここでは、１番目のレイヤは畳み込みレイヤ１’となっており、２番目のレイヤはプーリングレイヤ１’となっており、３番目のレイヤは畳み込みレイヤ２’となっている。また、４番目のレイヤはプーリングレイヤ２’となっており、５番目のレイヤは畳み込みレイヤ３’となっている。
【０１２４】
これらの５個のレイヤのうち、１番目のレイヤである畳み込みレイヤ１’では、図４を参照して説明した畳み込みレイヤ１’における場合と全く同じ処理が行われるので、その説明は適宜省略する。
【０１２５】
図５に示すニューラルネットワーク構造は、図１に示したニューラルネットワーク構造における各レイヤでのサンプル前進数やタップ数を微弱に変更することで、各レイヤにおいて隣接するフレームにおける処理境界が一致するようにしたものである。
【０１２６】
このように図５に示すニューラルネットワーク構造は、図１に示したニューラルネットワーク構造を微弱に変更しただけのものであるため、このようなニューラルネットワーク構造の変化が識別性能に与える影響は殆どない。
【０１２７】
この例では、図４を参照して説明した場合と同様に、畳み込みレイヤ１’では入力データDT11’を入力としてフレーム処理が行われる。
【０１２８】
すなわち、畳み込みレイヤ１’では現フレームの処理として、入力データDT11’に対して、タップ数が20×1である４種類のフィルタが用いられて、それらのフィルタごとに８サンプル前進の畳み込み処理が行われる。これにより、入力データDT11’が４次元×128サンプルの中間データDT21へと変換される。この中間データDT21は、図４に示したデータPDT1そのものである。
【０１２９】
このような畳み込みレイヤ１’での畳み込み処理では、図４における場合と同様に、フレーム処理を適用しない場合と比較してデータ領域W61の分だけ処理量とメモリ量を削減することができる。
【０１３０】
また、２番目のレイヤであるプーリングレイヤ１’では、８サンプル幅のデータ領域を対象として最大値を抽出する８サンプル前進のプーリング処理が中間データDT21に対して行われる。これにより、中間データDT21が４次元×16サンプルの中間データPDT21へと変換される。
【０１３１】
ここでは、プーリングレイヤ１’でのサンプル幅とサンプル前進数が、入力データDT11’のデータ形状やフレーム長、畳み込みレイヤ１’での処理、つまり畳み込みレイヤ１’の構成（構造）に対して定まるものとされている。そのため、プーリングレイヤ１’では中間データDT21における互いに隣接するフレームの処理境界を一致させることができ、その結果、プーリングレイヤ１’ではフレーム処理を適用しない場合と比較してデータ領域W62の分だけ処理量とメモリ量を削減することができる。
【０１３２】
３番目のレイヤである畳み込みレイヤ２’では、タップ数が10×4である互いに異なる８個のフィルタが用いられて、それらのフィルタごとに２サンプル前進の畳み込み処理が行われる。
【０１３３】
そのため、畳み込みレイヤ２’では、入力となるデータの形状、換言すれば処理対象となるデータ領域は、４次元×24サンプルとなるが、現フレームのプーリングレイヤ１’での処理で得られた中間データPDT21は４次元×16サンプルのデータである。
【０１３４】
しかし、現フレームの時間的に１つ前の直前フレームにおいてプーリングレイヤ１’で得られた中間データのうちの半分のデータである４次元×８サンプルの中間データPDT22を保持しておけば、中間データPDT21と中間データPDT22から４次元×24サンプルの中間データDT22を得ることができる。
【０１３５】
畳み込みレイヤ２’では、このような中間データDT22に対して、タップ数が10×4である互いに異なる８個のフィルタが用いられて、それらのフィルタごとに２サンプル前進の畳み込み処理が行われる。これにより、中間データDT22が８次元×８サンプルのへ中間データDT23と変換される。
【０１３６】
畳み込みレイヤ２’でのタップ数とサンプル前進数は、入力データDT11’のデータ形状やフレーム長、畳み込みレイヤ２’よりも前の各レイヤの構成（構造）に対して定まるものとされている。そのため、畳み込みレイヤ２’では中間データDT22における隣接するフレームの処理境界を一致させることができ、その結果、畳み込みレイヤ２’ではフレーム処理を適用しない場合と比較してデータ領域W63の分だけ処理量とメモリ量を削減することができる。
【０１３７】
４番目のレイヤであるプーリングレイヤ２’では、８サンプル幅のデータ領域を対象として最大値を抽出する８サンプル前進のプーリング処理が中間データDT23に対して行われる。これにより、中間データDT23が８次元×１サンプルの中間データPDT31へと変換される。
【０１３８】
ここでは、プーリングレイヤ２’でのサンプル幅とサンプル前進数が、入力データDT11’のデータ形状やフレーム長、プーリングレイヤ２’よりも前の各レイヤの構成（構造）に対して定まるものとされている。そのため、プーリングレイヤ２’では、中間データDT23における互いに隣接するフレームの処理境界を一致させることができ、その結果、プーリングレイヤ２’ではフレーム処理を適用しない場合と比較してデータ領域W64の分だけ処理量とメモリ量を削減することができる。
【０１３９】
５番目のレイヤである畳み込みレイヤ３’では、タップ数が8×8である１つのフィルタが用いられて、１サンプル前進の畳み込み処理が行われる。
【０１４０】
そのため、畳み込みレイヤ３’では、入力となるデータの形状、換言すれば処理対象となるデータ領域は、８次元×８サンプルとなるが、現フレームのプーリングレイヤ２’での処理で得られた中間データPDT31は８次元×１サンプルのデータである。
【０１４１】
しかし、現フレームの時間的に前の７つの過去フレームにおいてプーリングレイヤ２’で得られた中間データからなる８次元×７サンプルの中間データPDT32を保持しておけば、中間データPDT31と中間データPDT32から８次元×８サンプルの中間データDT24を得ることができる。
【０１４２】
畳み込みレイヤ３’では、このような中間データDT24に対して、タップ数が8×8であるフィルタが用いられて、１サンプル前進の畳み込み処理が行われる。これにより、中間データDT24が１次元×１サンプルの識別結果データDT25へと変換される。このようにして得られた識別結果データDT25が、入力データDT11’に対する識別処理の結果（識別結果）として出力される。
【０１４３】
畳み込みレイヤ３’でのタップ数とサンプル前進数は、入力データDT11’のデータ形状やフレーム長、畳み込みレイヤ３’よりも前の各レイヤの構成（構造）に対して定まるものとされている。そのため、畳み込みレイヤ３’では中間データDT24における互いに隣接するフレームの処理境界を一致させることができる。
【０１４４】
以上のように図５を参照して説明したニューラルネットワーク構造の識別器を用いて識別処理を行えば、図１における場合と比較して、略同等の性能で処理量とメモリ量を約６分の１程度に削減することができる。
【０１４５】
なお、図５では1024サンプル（１フレーム）に対して１つの識別結果データDT25が出力される場合を例として説明したが、図５に示したニューラルネットワーク構造の識別器における識別結果データDT25の出力頻度は、数フレームに１度などとしてもよい。この場合においてもデータ領域W61乃至データ領域W64の分だけ、処理量とメモリ量を削減することができる。
【０１４６】
また、図４や図５では、説明を簡単にするため、比較的単純で規模の小さいニューラルネットワークを利用する場合を例として説明したが、ニューラルネットワークの規模、すなわちレイヤ数等はどのような規模であってもよい。本技術では、ニューラルネットワークが複雑で大規模になるほど処理量とメモリ量の削減率は高くなる。
【０１４７】
さらに、ここではニューラルネットワークのレイヤで行われる処理として、畳み込み処理とプーリング処理を例として説明したが、その他、レジデュアル処理など、どのような演算処理が行われてもよい。レジデュアル処理は、現レイヤの入力とするデータにその現レイヤよりも前のレイヤの出力を加算して現レイヤの出力とするデータ変換処理である。
【０１４８】
その他、本技術は、音声認識や話者識別、環境音識別等のオーディオデータの自動識別技術のみならず、ニューラルネットワークを用いた種々の技術に適用可能である。
【０１４９】
例えば以上においてはニューラルネットワーク構造の識別器を用いた識別処理に本技術を適用する例について説明したが、ニューラルネットワーク構造の予測器を用いた予測処理、すなわち回帰処理に本技術を適用することも可能である。
【０１５０】
そのような場合、予測器の出力が回帰処理による予測結果を示す確率となるが、予測器の各レイヤでは、識別器の各レイヤにおける場合と同様の処理が行われる。
【０１５１】
具体的な例として、例えば本技術はオーディオ信号（オーディオデータ）の低域信号に基づき、オーディオ信号の高域信号をニューラルネットワークを用いて生成する帯域拡張技術に適用可能である。
【０１５２】
帯域拡張技術として、例えば国際公開第2015/79946号（以下、参照特許文献と称する）には、オーディオ信号から得られる複数の低域サブバンドの低域サブバンドパワーから、そのオーディオ信号の高域成分である高域信号を生成することが開示されている。
【０１５３】
すなわち、参照特許文献では、オーディオ信号の低域サブバンドパワーが複数の低域サブバンドごとに求められ、それらの複数の低域サブバンドパワーに基づいて、オーディオ信号の高域側の複数の高域サブバンドの高域サブバンドパワーの推定値が疑似高域サブバンドパワーとして求められる。そして、それらの疑似高域サブバンドパワーに基づいて、高域信号が生成される。
【０１５４】
ここで、参照特許文献では疑似高域サブバンドパワーの算出は、参照特許文献の式（２）に示されるように、複数の低域サブバンドパワーを説明変数とし、複数の高域サブバンドパワーを被説明変数とした、最小二乗法を用いた回帰分析により予め求められた係数が用いられて行われていた。
【０１５５】
これに対して、本技術を疑似高域サブバンドパワーの算出に適用すれば、ニューラルネットワークを用いることで、より高精度に疑似高域サブバンドパワーを算出することが可能である。
【０１５６】
そのような場合、ニューラルネットワーク構造の予測器の入力は、オーディオ信号の複数フレームのそれぞれにおける複数の低域サブバンドパワーなどとされる。また、ニューラルネットワーク構造の予測器の出力は、１フレーム分のオーディオ信号における複数の高域サブバンドの高域サブバンドパワー（疑似高域サブバンドパワー）などとされる。
【０１５７】
より具体的には、例えばニューラルネットワーク構造の予測器の入力は、16フレームの４つの低域サブバンドの低域サブバンドパワーなどとされ、また、予測器の出力は、１フレームの8つの高域サブバンドの高域サブバンドパワーなどとされる。
【０１５８】
この場合、予測器の入力は16行4列の行列、つまり4次元×16サンプルの入力データとなり、入力データの各サンプルは１つの低域サブバンドにおける低域サブバンドパワーを示している。また、予測器の出力は1行8列の行列、つまり8次元×1サンプルの識別結果データとなり、識別結果データの各サンプルは１つの高域サブバンドにおける高域サブバンドパワーを示している。
【０１５９】
このように、ニューラルネットワークを用いた帯域拡張技術においても、本技術を適用することが可能である。これと同様に、ニューラルネットワークを用いた画像や映像の認識技術や物体領域の抽出技術等にも本技術は適用可能である。
【０１６０】
〈フィルタ係数の圧縮符号化について〉
ところで、ニューラルネットワーク構造の識別器の畳み込みレイヤの処理を行う場合、予め定められたフィルタのフィルタ係数が用いられるため、それらのフィルタ係数を保持しておくためのメモリが必要となる。
【０１６１】
具体的には、畳み込みレイヤでは、タップ数×フィルタ種類数分の数だけフィルタ係数を保持しておく必要がある。すなわち、畳み込みを行う１または複数のフィルタごとにタップ数分のフィルタ係数を保持しておく必要がある。
【０１６２】
そのため、畳み込みレイヤの数や、畳み込みレイヤで用いるフィルタの数が多くなると、その分だけフィルタ係数を保持しておくためのメモリ量も多くなってしまう。
【０１６３】
そこで、本技術ではフィルタ係数を圧縮符号化することで、フィルタ係数を保持しておくためのメモリのメモリ量を削減するようにした。
【０１６４】
本技術では、値が０であるフィルタ係数、つまりゼロ係数の位置を示すゼロ係数位置テーブルと、ゼロ係数以外のフィルタ係数の値を示す非ゼロ係数テーブルとの２つのテーブルを保持することでフィルタ係数のデータ量の圧縮が実現される。
【０１６５】
具体的には、例えば図６の矢印Q11に示すように、4×4タップのフィルタ係数からなる係数行列があるとする。この例では、矢印Q11に示す係数行列における四角形がフィルタ係数を表しており、その四角形内の数値がフィルタ係数の値を示している。
【０１６６】
本技術では、このような係数行列が圧縮符号化されて、矢印Q12に示すゼロ係数位置テーブルと、矢印Q13に示す非ゼロ係数テーブルとに変換される。
【０１６７】
矢印Q12に示すゼロ係数位置テーブルは、もとの係数行列のタップ数と同じ4×4のテーブルとなっており、ゼロ係数位置テーブルにおける四角形内の数値は、その四角形と同じ位置関係にある係数行列のフィルタ係数の値が０（ゼロ）であるか否かを示している。
【０１６８】
すなわち、ゼロ係数位置テーブルにおける四角形内の数値が０である場合、その四角形と同じ位置関係にある係数行列のフィルタ係数の値は０であることを示している。したがって、例えばゼロ係数位置テーブルの図中、左上の四角形内の値「０」は、同じ位置関係にある、係数行列の図中、左上のフィルタ係数の値が「０」であることを示している。
【０１６９】
これに対して、ゼロ係数位置テーブルにおける四角形内の数値が１である場合、その四角形と同じ位置関係にある係数行列のフィルタ係数の値は０でないことを示している。したがって、例えばゼロ係数位置テーブルの図中、最も左側の上から２番目の四角形内の値「１」は、同じ位置関係にある、係数行列の図中、最も左側の上から２番目のフィルタ係数の値が「０」でないことを示している。
【０１７０】
また、矢印Q13に示す非ゼロ係数テーブルは、もとの係数行列におけるゼロ係数ではないフィルタ係数の値を示すテーブルとなっており、非ゼロ係数テーブルにおける１つの四角形内の値は、係数行列におけるゼロ係数ではない１つのフィルタ係数の値を示している。
【０１７１】
この例では、非ゼロ係数テーブルにおいては、係数行列の図中、左上のフィルタ係数を始点としたラスタスキャン順に、ゼロ係数ではないフィルタ係数の値、つまりゼロ係数位置テーブルにおける値が「１」であるフィルタ係数の値が並べられている。
【０１７２】
例えば非ゼロ係数テーブルにおける図中、左端の四角形内の数値「３」は、係数行列の最上段の左端から３番目にあるフィルタ係数の値が「３」であることを示している。
【０１７３】
このように係数行列そのものを保持するのではなく、係数行列を圧縮符号化して得られたゼロ係数位置テーブルと非ゼロ係数テーブルとを保持することで、フィルタ係数を得るための情報を保持しておくためのメモリのメモリ量を削減することができる。
【０１７４】
例えば図６に示す例では、１つのフィルタ係数が８ビットであるとすると、係数行列は16個のフィルタ係数から構成されるので、係数行列のデータ量は128（＝16×8）ビットとなる。
【０１７５】
これに対して、ゼロ係数位置テーブルにおいて、１つのフィルタ係数がゼロ係数であるか否かを示す値が１ビットであるとすると、ゼロ係数位置テーブルのデータ量は16（＝16×1）ビットとなる。
【０１７６】
また、非ゼロ係数テーブルにおいて、１つのフィルタ係数の値が８ビットであるとすると、ここではゼロ係数でないフィルタ係数の数は５個であるので、非ゼロ係数テーブルのデータ量は40（＝5×8）ビットとなる。
【０１７７】
そうすると、ゼロ係数位置テーブルのデータ量と非ゼロ係数テーブルのデータ量の合計は56（＝40＋16）ビットとなるので、もとの係数行列のデータ量である128ビットと比べてデータ量、つまりメモリ量が約２分の１に圧縮されていることが分かる。フィルタ係数からなる係数行列の圧縮率は、ゼロ係数の数が多くなるほど高くなる。
【０１７８】
さらに、本技術では係数行列を圧縮符号化することで、畳み込みレイヤでの処理を行う場合における処理量も削減することが可能である。
【０１７９】
例えば係数行列を用いた畳み込み処理では、その係数行列を用いた行列演算となる。そのため、フィルタ係数がゼロ係数であるか否かによらず、全てのフィルタ係数について、フィルタ係数と畳み込み対象のデータとの積（乗算処理）や、それらの積の和（加算処理）の演算が行われることになる。
【０１８０】
一方、係数行列を圧縮符号化した場合、まずはゼロ係数位置テーブルと非ゼロ係数テーブルに基づく復号処理が行われ、その結果得られたフィルタ係数が用いられて畳み込み処理が行われることになる。
【０１８１】
このとき、復号処理ではゼロ係数位置テーブルの値が０でない位置についてのみ、非ゼロ係数テーブルからフィルタ係数をロードすればよいので、例えばハフマン符号化などの他の圧縮方式と比較すると復号時の処理量が少なくて済む。
【０１８２】
また、復号処理後の畳み込み処理においても、ロードしたフィルタ係数についてのみ畳み込み対象のデータとの積（乗算処理）と、それらの積の和（加算処理）の演算を行えばよいので、畳み込み処理自体の処理量を削減することができる。
【０１８３】
結果として、ゼロ係数が多ければ、復号処理と畳み込み処理の演算の合計の処理量は、係数行列をそのまま用いたときの畳み込み処理の処理量よりも少なくなり、ゼロ係数の数が多くなればなるほど、処理量の削減率は高くなる。
【０１８４】
なお、係数行列におけるゼロ係数の数は、ニューラルネットワークの係数の学習において、例えばL1正則化やL2正則化、それらに準ずる正則化手法により増やすことが可能である。したがって、ニューラルネットワーク構造の識別器の学習時において、正則化によりゼロ係数の数を適切に調整しておけば、フィルタ係数を圧縮符号化することにより、処理量およびメモリ量を削減することができる。
【０１８５】
なお、ニューラルネットワークの係数の学習時における正則化については、例えば「Ian Goodfellow, Yoshua Bengio, and Aaron Courville, Deep Learning, The MIT Press, 2016」などに詳細に記載されている。
【０１８６】
〈ニューラルネットワーク処理装置の構成例〉
次に、以上において説明した本技術を適用したニューラルネットワーク処理装置について説明する。
【０１８７】
図７は、本技術を適用したニューラルネットワーク処理装置の一実施の形態の構成例を示す図である。
【０１８８】
図７に示すニューラルネットワーク処理装置１１は、入力データの形状やフレーム長に対して定まるタップ数や、サンプル幅、サンプル前進数でレイヤの演算処理が行われるニューラルネットワーク構造の識別器からなる情報処理装置である。
【０１８９】
ニューラルネットワーク処理装置１１は、供給された入力データに基づいてニューラルネットワークの各レイヤの演算処理を行うことで、入力データを対象とする識別処理を行い、その識別結果を示す識別結果データを出力する。
【０１９０】
なお、ここではニューラルネットワーク処理装置１１が図５を参照して説明したニューラルネットワーク構造の識別器である例について説明する。
【０１９１】
ニューラルネットワーク処理装置１１は、畳み込み処理部２１、プーリング処理部２２、畳み込み処理部２３、プーリング処理部２４、および畳み込み処理部２５を有している。
【０１９２】
この場合、畳み込み処理部２１乃至畳み込み処理部２５によって、図５を参照して説明したニューラルネットワーク構造の識別器が構成されることになる。換言すれば、畳み込み処理部２１乃至畳み込み処理部２５によりニューラルネットワークが構成されている。
【０１９３】
畳み込み処理部２１は、供給された入力データに対して畳み込みレイヤ１’の処理を行い、その結果得られた中間データをプーリング処理部２２に供給する。
【０１９４】
畳み込み処理部２１は、復号部４１、メモリ４２、および係数保持部４３を有している。
【０１９５】
例えば係数保持部４３は不揮発性のメモリからなる。この係数保持部４３には、予め学習により得られたタップ数が20×1である互いに異なる４つの種類のフィルタについて、フィルタのフィルタ係数を圧縮符号化して得られたゼロ係数位置テーブルと非ゼロ係数テーブルが保持されている。
【０１９６】
復号部４１は、各フィルタのゼロ係数位置テーブルと非ゼロ係数テーブルに基づいてフィルタ係数の復号処理を行い、各フィルタのゼロ係数でないフィルタ係数を得る。メモリ４２は、例えば揮発性のメモリからなり、供給された入力データや演算中のデータを一時的に保持する。
【０１９７】
プーリング処理部２２は、畳み込み処理部２１から供給された中間データに対してプーリングレイヤ１’の処理を行い、その結果得られた中間データを畳み込み処理部２３に供給する。プーリング処理部２２はメモリ５１を有している。メモリ５１は、例えば揮発性のメモリからなり、畳み込み処理部２１から供給された中間データや演算中のデータを一時的に保持する。
【０１９８】
畳み込み処理部２３は、プーリング処理部２２から供給された中間データに対して畳み込みレイヤ２’の処理を行い、その結果得られた中間データをプーリング処理部２４に供給する。
【０１９９】
畳み込み処理部２３は、復号部６１、メモリ６２、および係数保持部６３を有している。
【０２００】
例えば係数保持部６３は不揮発性のメモリからなる。この係数保持部６３には、予め学習により得られたタップ数が10×4である互いに異なる８つの種類のフィルタについて、フィルタのフィルタ係数を圧縮符号化して得られたゼロ係数位置テーブルと非ゼロ係数テーブルが保持されている。
【０２０１】
復号部６１は、各フィルタのゼロ係数位置テーブルと非ゼロ係数テーブルに基づいてフィルタ係数の復号処理を行い、各フィルタのゼロ係数でないフィルタ係数を得る。メモリ６２は、例えば揮発性のメモリからなり、プーリング処理部２２から供給された中間データや演算中のデータを一時的に保持する。
【０２０２】
プーリング処理部２４は、畳み込み処理部２３から供給された中間データに対してプーリングレイヤ２’の処理を行い、その結果得られた中間データを畳み込み処理部２５に供給する。プーリング処理部２４はメモリ７１を有している。メモリ７１は、例えば揮発性のメモリからなり、畳み込み処理部２３から供給された中間データや演算中のデータを一時的に保持する。
【０２０３】
畳み込み処理部２５は、プーリング処理部２４から供給された中間データに対して畳み込みレイヤ３’の処理を行い、その結果得られた識別結果データを出力する。
【０２０４】
畳み込み処理部２５は、復号部８１、メモリ８２、および係数保持部８３を有している。
【０２０５】
例えば係数保持部８３は不揮発性のメモリからなる。この係数保持部８３には、予め学習により得られたタップ数が8×8であるフィルタのフィルタ係数を圧縮符号化して得られたゼロ係数位置テーブルと非ゼロ係数テーブルが保持されている。
【０２０６】
復号部８１は、フィルタのゼロ係数位置テーブルと非ゼロ係数テーブルに基づいてフィルタ係数の復号処理を行い、フィルタのゼロ係数でないフィルタ係数を得る。メモリ８２は、例えば揮発性のメモリからなり、プーリング処理部２４から供給された中間データや演算中のデータを一時的に保持する。
【０２０７】
なお、ここではニューラルネットワーク処理装置１１が、図５を参照して説明したニューラルネットワーク構造の識別器により構成される例について説明した。しかし、ニューラルネットワーク処理装置１１が、図４を参照して説明したニューラルネットワーク構造の識別器により構成されるようにしてもよい。
【０２０８】
そのような場合、畳み込み処理部２１により畳み込みレイヤ１’の処理が行われ、プーリング処理部２２によりプーリングレイヤ１の処理が行われ、畳み込み処理部２３により畳み込みレイヤ２の処理が行われ、プーリング処理部２４によりプーリングレイヤ２の処理が行われ、畳み込み処理部２５により畳み込みレイヤ３の処理が行われる。
【０２０９】
〈識別処理の説明〉
次に、ニューラルネットワーク処理装置１１の動作について説明する。すなわち、以下、図８のフローチャートを参照して、ニューラルネットワーク処理装置１１による識別処理について説明する。なお、この識別処理は入力データのフレームごとに行われる。
【０２１０】
ステップＳ１１において、畳み込み処理部２１の復号部４１は、係数保持部４３からゼロ係数位置テーブルと非ゼロ係数テーブルを読み出して、それらのゼロ係数位置テーブルおよび非ゼロ係数テーブルに基づいてフィルタ係数の復号処理を行う。また、畳み込み処理部２１のメモリ４２は、供給された入力データを一時的に記録する。
【０２１１】
ステップＳ１２において、畳み込み処理部２１は、ステップＳ１１の処理により得られた４つのフィルタのフィルタ係数に基づいて、メモリ４２に記録されている入力データに対して、フィルタごとに８サンプル前進の畳み込み処理を行う。例えばステップＳ１２では、ゼロ係数ではないフィルタ係数のみが用いられて畳み込み処理が行われる。
【０２１２】
畳み込み処理部２１は、畳み込み処理により得られた中間データを、プーリング処理部２２のメモリ５１に供給し、一時的に記録させる。
【０２１３】
このような畳み込み処理により、図５のデータ領域W61の分だけ、畳み込み処理の処理量とメモリ４２のメモリ量を削減することができる。また、ゼロ係数の分だけ演算処理の処理量をさらに削減することができる。
【０２１４】
ステップＳ１３において、プーリング処理部２２は、メモリ５１に記録されている中間データに対して、８サンプル幅のデータ領域を対象として最大値を抽出する８サンプル前進のプーリング処理を行う。プーリング処理部２２は、プーリング処理により得られた中間データを畳み込み処理部２３のメモリ６２に供給し、一時的に記録させる。
【０２１５】
このようなプーリング処理により、図５のデータ領域W62の分だけ、プーリング処理の処理量とメモリ５１のメモリ量を削減することができる。
【０２１６】
ステップＳ１４において、畳み込み処理部２３の復号部６１は、係数保持部６３からゼロ係数位置テーブルと非ゼロ係数テーブルを読み出して、それらのゼロ係数位置テーブルおよび非ゼロ係数テーブルに基づいてフィルタ係数の復号処理を行う。
【０２１７】
ステップＳ１５において、畳み込み処理部２３は、ステップＳ１４の処理により得られた８つのフィルタのフィルタ係数に基づいて、メモリ６２に記録されている中間データに対して、フィルタごとに２サンプル前進の畳み込み処理を行う。例えばステップＳ１５では、ゼロ係数ではないフィルタ係数のみが用いられて畳み込み処理が行われる。
【０２１８】
畳み込み処理部２３は、畳み込み処理により得られた中間データを、プーリング処理部２４のメモリ７１に供給し、一時的に記録させる。
【０２１９】
このような畳み込み処理により、図５のデータ領域W63の分だけ、畳み込み処理の処理量とメモリ６２のメモリ量を削減することができる。また、ゼロ係数の分だけ演算処理の処理量をさらに削減することができる。
【０２２０】
ステップＳ１６において、プーリング処理部２４は、メモリ７１に記録されている中間データに対して、８サンプル幅のデータ領域を対象として最大値を抽出する８サンプル前進のプーリング処理を行う。プーリング処理部２４は、プーリング処理により得られた中間データを畳み込み処理部２５のメモリ８２に供給し、一時的に記録させる。
【０２２１】
このようなプーリング処理により、図５のデータ領域W64の分だけ、プーリング処理の処理量とメモリ７１のメモリ量を削減することができる。
【０２２２】
ステップＳ１７において、畳み込み処理部２５の復号部８１は、係数保持部８３からゼロ係数位置テーブルと非ゼロ係数テーブルを読み出して、それらのゼロ係数位置テーブルおよび非ゼロ係数テーブルに基づいてフィルタ係数の復号処理を行う。
【０２２３】
ステップＳ１８において、畳み込み処理部２５は、ステップＳ１７の処理により得られた１つのフィルタのフィルタ係数に基づいて、メモリ８２に記録されている中間データに対して１サンプル前進の畳み込み処理を行う。例えばステップＳ１８では、ゼロ係数ではないフィルタ係数のみが用いられて畳み込み処理が行われる。このような畳み込み処理により、ゼロ係数の分だけ演算処理の処理量を削減することができる。
【０２２４】
畳み込み処理部２５は、畳み込み処理により得られた識別結果データを出力し、識別処理は終了する。
【０２２５】
以上のようにしてニューラルネットワーク処理装置１１は、入力データの形状やフレーム長に対して定まるタップ数や、サンプル幅、サンプル前進数で各レイヤの演算処理を行い、識別結果データを生成する。このようにすることで、処理量とメモリ量を削減し、より効率よく識別を行うことができる。
【０２２６】
また、ニューラルネットワーク処理装置１１は、予め保持しているゼロ係数位置テーブルおよび非ゼロ係数テーブルに基づいて復号処理を行い、その結果得られたフィルタ係数を用いて畳み込み処理を行う。このようにすることで、フィルタ係数を保持しておくメモリのメモリ量を削減することができるとともに、ゼロ係数部分の積和演算を省略して畳み込み処理の処理量も削減することができる。
【０２２７】
なお、ニューラルネットワーク処理装置１１が、上述した帯域拡張のための高域サブバンドパワー（疑似高域サブバンドパワー）を予測する予測器とされるようにしてもよい。
【０２２８】
そのような場合、畳み込み処理部２１には入力データとして低域サブバンドパワーが入力され、畳み込み処理部２５は、畳み込み処理の処理結果（演算結果）を、高域サブバンドパワーの予測結果として出力する。但し、この場合、各レイヤでは図５を参照して説明した処理とは異なる処理が行われる。
【０２２９】
〈コンピュータの構成例〉
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２３０】
図９は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０２３１】
コンピュータにおいて、CPU（Central Processing Unit）５０１，ROM（Read Only Memory）５０２，RAM（Random Access Memory）５０３は、バス５０４により相互に接続されている。
【０２３２】
バス５０４には、さらに、入出力インターフェース５０５が接続されている。入出力インターフェース５０５には、入力部５０６、出力部５０７、記録部５０８、通信部５０９、及びドライブ５１０が接続されている。
【０２３３】
入力部５０６は、キーボード、マウス、マイクロホン、撮像素子などよりなる。出力部５０７は、ディスプレイ、スピーカなどよりなる。記録部５０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部５０９は、ネットワークインターフェースなどよりなる。ドライブ５１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体５１１を駆動する。
【０２３４】
以上のように構成されるコンピュータでは、CPU５０１が、例えば、記録部５０８に記録されているプログラムを、入出力インターフェース５０５及びバス５０４を介して、RAM５０３にロードして実行することにより、上述した一連の処理が行われる。
【０２３５】
コンピュータ（CPU５０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体５１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２３６】
コンピュータでは、プログラムは、リムーバブル記録媒体５１１をドライブ５１０に装着することにより、入出力インターフェース５０５を介して、記録部５０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部５０９で受信し、記録部５０８にインストールすることができる。その他、プログラムは、ROM５０２や記録部５０８に、あらかじめインストールしておくことができる。
【０２３７】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２３８】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２３９】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２４０】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２４１】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２４２】
さらに、本技術は、以下の構成とすることも可能である。
【０２４３】
（１）
入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理を前記入力データのフレームごとに行う、ニューラルネットワークを構成する演算処理部を備える
ニューラルネットワーク処理装置。
（２）
前記演算処理における前進数、前記演算処理に用いられるフィルタ係数からなるフィルタのタップ数、前記演算処理において対象とされるデータ領域の大きさ、または前記入力データのフレーム長は、前記所定フレームと前記他のフレームとで前記演算処理の処理境界が一致するように定められている
（１）に記載のニューラルネットワーク処理装置。
（３）
前記前進数、前記タップ数、前記データ領域の大きさ、または前記フレーム長は、前記入力データのデータ形状に基づいて定められる
（２）に記載のニューラルネットワーク処理装置。
（４）
前記入力データのデータ形状は、前記入力データの次元数および各次元におけるデータ数により定まる
（３）に記載のニューラルネットワーク処理装置。
（５）
前記演算処理は、畳み込み処理、プーリング処理、またはレジデュアル処理である
（１）乃至（４）の何れか一項に記載のニューラルネットワーク処理装置。
（６）
前記ニューラルネットワーク処理装置は、ニューラルネットワーク構造の識別器である
（１）乃至（５）の何れか一項に記載のニューラルネットワーク処理装置。
（７）
前記入力データはオーディオ信号の低域サブバンドの低域サブバンドパワーであり、
前記演算処理部は、前記演算処理により得られた前記オーディオ信号の高域サブバンドの高域サブバンドパワーを出力する
（１）乃至（６）の何れか一項に記載のニューラルネットワーク処理装置。
（８）
ニューラルネットワーク処理装置が、
ニューラルネットワークを構成する演算処理部を備え、
前記演算処理部が入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理を前記入力データのフレームごとに行う
ニューラルネットワーク処理方法。
（９）
コンピュータを、
入力データの所定フレームに対する演算処理の処理境界と、前記所定フレームとは異なる前記入力データの他のフレームに対する前記演算処理の処理境界とが一致する前記演算処理を前記入力データのフレームごとに行う、ニューラルネットワークを構成する演算処理部を備えるニューラルネットワーク処理装置として機能させる
プログラム。
（１０）
圧縮符号化されたフィルタのフィルタ係数の復号処理を行う復号部と、
前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理を行う、ニューラルネットワークを構成する演算処理部と
を備えるニューラルネットワーク処理装置。
（１１）
前記復号部は、前記フィルタ係数の前記圧縮符号化により得られた、値がゼロである前記フィルタ係数を示すゼロ係数位置テーブルと、ゼロでない前記フィルタ係数の値を示す非ゼロ係数テーブルとに基づいて前記復号処理を行う
（１０）に記載のニューラルネットワーク処理装置。
（１２）
前記演算処理部は、前記復号処理により得られた、値がゼロでない前記フィルタ係数のみを用いて前記畳み込み処理を行う
（１０）または（１１）に記載のニューラルネットワーク処理装置。
（１３）
ニューラルネットワーク処理装置が、
圧縮符号化されたフィルタのフィルタ係数の復号処理を行う復号部と、
前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理を行う、ニューラルネットワークを構成する演算処理部と
を備え、
前記復号部が前記復号処理を行い、
前記演算処理部が前記畳み込み処理を行う
ニューラルネットワーク処理方法。
（１４）
コンピュータを、
圧縮符号化されたフィルタのフィルタ係数の復号処理を行う復号部と、
前記復号処理により得られた前記フィルタ係数と、入力データとの畳み込み処理を行う、ニューラルネットワークを構成する演算処理部と
を備えるニューラルネットワーク処理装置として機能させる
プログラム。
【符号の説明】
【０２４４】
１１  ニューラルネットワーク処理装置，  ２１  畳み込み処理部，  ２２  プーリング処理部，  ２３  畳み込み処理部，  ２４  プーリング処理部，  ２５  畳み込み処理部，  ４１  復号部，  ６１  復号部，  ８１  復号部
【図１】
2019146398.tif 000003
【図２】
2019146398.tif 000004
【図３】
2019146398.tif 000005
【図４】
2019146398.tif 000006
【図５】
2019146398.tif 000007
【図６】
2019146398.tif 000008
【図７】
2019146398.tif 000009
【図８】
2019146398.tif 000010
【図９】
2019146398.tif 000011
【国際調査報告】
2019146398.tif 000012
2019146398.tif 000013
2019146398.tif 000014
2019146398.tif 000015