(57)【要約】      （修正有）【課題】多層ニューラルネットワークモデルを単純化することと性能を維持することとの間のより良いバランスを達成する。【解決手段】多層ニューラルネットワークモデルは、畳み込み層について、畳み込み層のフィルタのチャネル数を拡張する工程と、順伝播中にアプリケーション要件に対応するデータに基づいてチャネル数を拡張した後のフィルタを用いて畳み込み層のデータ計算を行う工程と、順伝播を完了した後に適用結果を出力する工程と、を備える。【選択図】図７
2020109647.tif 000002
【特許請求の範囲】
【請求項１】
多層ニューラルネットワークモデルの少なくとも１つの畳み込み層について、前記畳み込み層のフィルタのチャネル数を拡張する工程と、
順伝播中に、アプリケーション要件に対応するデータに基づいて、前記チャネル数を拡張した後の前記フィルタを用いて前記畳み込み層のデータ計算を行う工程と、
前記順伝播を完了した後に適用結果を出力する工程と、
を備える、多層ニューラルネットワークモデルの適用方法。
【請求項２】
前記フィルタの前記チャネル数は、前記フィルタの前記チャネルを複製することによって拡張される、請求項１に記載の適用方法。
【請求項３】
前記チャネル数を拡張した後の前記フィルタの高さは、前記チャネル数を拡張する前の前記フィルタの高さ以上であり、
前記チャネル数を拡張した後の前記フィルタの幅は、前記チャネル数を拡張する前の前記フィルタの幅以上である、請求項１に記載の適用方法。
【請求項４】
学習される多層ニューラルネットワークモデルの少なくとも１つの畳み込み層について、前記畳み込み層のフィルタのチャネル数を拡張する工程と、
順伝播中に、学習用データに基づいて、前記チャネル数を拡張した後のフィルタを用いて前記畳み込み層のデータ計算を行う工程と、
逆伝播中に、前記ネットワークモデルの学習を実現するために、前記チャネル数を拡張した後、前記チャネルの同一チャネル上の重みの勾配値に応じてチャネル数拡張前のチャネル上の重みの勾配値を更新する工程と、を備え、
前記同一のチャネルは、拡張前の同じチャネルを拡張することによって得られる、多層ニューラルネットワークモデルにおける学習方法。
【請求項５】
前記フィルタの前記チャネル数は、前記フィルタの前記チャネルを複製することによって拡張される、請求項４に記載の学習方法。
【請求項６】
前記チャネル数を拡張した後の前記フィルタの高さは、前記チャネル数を拡張する前の前記フィルタの高さ以上であり、及び、
前記チャネル数を拡張した後の前記フィルタの幅は、前記チャネル数を拡張する前の前記フィルタの幅以上である、請求項４に記載の学習方法。
【請求項７】
前記チャネル数を拡張する前に、前記チャネル上の前記重みの前記勾配値を更新する工程は、
前記同一チャネル上の各重みの勾配値を決定する工程と、
前記同一チャネル上の同じ位置における重みの勾配値を平均し、前記勾配値が更新される、前記チャネル数を拡張する前の前記チャネル上の重みの前記位置における勾配値として、勾配平均値をとる工程と、
を備える、請求項４に記載の学習方法。
【請求項８】
順伝播中に、少なくとも１つの畳み込み層について、前記畳み込み層の複数の入力特徴マップを累算し、前記畳み込み層の前記累算された入力特徴マップ及びフィルタを使用することによって前記畳み込み層の畳み込み計算を行う工程と、
前記順伝播を完了した後に適用結果を出力する工程と、
を備える、多層ニューラルネットワークモデルの適用方法。
【請求項９】
前記複数の入力特徴マップを累算する工程は、
グループの入力特徴マップ数が前記畳み込み層のフィルタのチャネル数に等しくなり、多くとも１つのグループの入力特徴マップ数が前記フィルタの前記チャネル数よりも少なくなるように、前記複数の入力特徴マップをグループ化する工程と、
前記フィルタの前記チャネル数に等しい数の累算された入力特徴マップを得るために、各グループの前記入力特徴マップを累算する工程と、
を備える、請求項８に記載の適用方法。
【請求項１０】
前記適用方法の前の前記多層ニューラルネットワークモデルの学習方法において、前記フィルタの前記チャネル数を拡張することによって前記チャネル数拡張後のフィルタ及び前記入力特徴マップを使用して計算を実行する場合、各グループの前記入力特徴マップを累算する工程は、
前記複数の入力特徴マップにおける累算する前記入力特徴マップの位置が、前記学習方法において前記拡張された同一チャネルを用いて計算する入力特徴マップの位置と同じであり、前記同一チャネルが同じ拡張前のチャネルを拡張することによって得られている、という条件を満たす、各グループの入力特徴マップを累算する工程を備える、請求項９に記載の適用方法。
【請求項１１】
多層ニューラルネットワークモデルの少なくとも１つの畳み込み層のフィルタのチャネル数を予め拡張する拡張手段と、
アプリケーション要件に対応するデータに基づいて、前記チャネル数を拡張した後の前記フィルタを用いて畳み込み層のデータ計算を行う順伝播手段と、
順伝播を完了した後に適用結果を出力する出力手段と、
を備える、多層ニューラルネットワークモデルの適用装置。
【請求項１２】
前記拡張手段は、前記フィルタの前記チャネルを複製することによって前記フィルタの前記チャネル数を拡張する、請求項１１に記載の適用装置。
【請求項１３】
学習される多層ニューラルネットワークモデルの少なくとも１つの畳み込み層のフィルタのチャネル数を予め拡張する拡張手段と、
学習用データに基づいて、前記チャネル数を拡張した後の前記フィルタを用いて前記畳み込み層のデータ計算を行う順伝播手段と、
前記ネットワークモデルの学習を実現するために、前記チャネル数を拡張した後、前記チャネルの同一チャネル上の重みの勾配値に応じて前記チャネル数を拡張する前のチャネル上の重みの勾配値を更新する逆伝播手段とを備え、
前記同一チャネルは、拡張前の同じチャネルを拡張することによって得られる、
多層ニューラルネットワークモデルにおける学習装置。
【請求項１４】
前記拡張手段は、前記フィルタの前記チャネルを複製することによって前記フィルタの前記チャネル数を拡張する、請求項１３に記載の学習装置。
【請求項１５】
前記逆伝播手段は、前記同一チャネル上の各重みの勾配値を決定し、前記同一チャネル上の同じ位置における重みの勾配値を平均し、前記勾配値が更新される、前記チャネル数を拡張する前の前記チャネル上の重みの前記位置における勾配値として、勾配平均値をとる、請求項１３に記載の学習装置。
【請求項１６】
順伝播中に、少なくとも１つの畳み込み層について、前記畳み込み層の複数の入力特徴マップを累算する累算手段と、
前記畳み込み層の前記累算された入力特徴マップ及びフィルタを使用することによって前記畳み込み層の畳み込み計算を行う計算手段と、
前記順伝播を完了した後に適用結果を出力する出力手段と、
を備える、多層ニューラルネットワークモデルの適用装置。
【請求項１７】
前記累算部が、
グループの入力特徴マップ数が前記畳み込み層の前記フィルタの前記チャネル数に等しくなり、多くとも１つのグループの入力特徴マップ数が前記フィルタの前記チャネル数よりも少なくなるように、前記複数の入力特徴マップをグループ化するために、並びに、
前記フィルタの前記チャネル数に等しい数の累算された入力特徴マップを得るために、各グループの前記入力特徴マップを累算するために、
使用される、請求項１６に記載の適用装置。
【請求項１８】
前記適用方法の前の前記多層ニューラルネットワークモデルの学習方法において、前記フィルタの前記チャネル数を拡張することによって前記チャネル数拡張後のフィルタ及び前記入力特徴マップを使用して計算を実行する場合に、前記累算手段は、前記複数の入力特徴マップにおける累算する前記入力特徴マップの位置が、前記学習方法において前記拡張された同一チャネルを用いて計算する入力特徴マップの位置と同じであり、前記同一チャネルが同じ拡張前のチャネルを拡張することによって得られている、という条件とを満たす、各グループの入力特徴マップを累算するために使用される、請求項１７に記載の適用装置。
【請求項１９】
コンピュータによって実行されたときに、請求項１に記載の多層ニューラルネットワークモデルの適用方法を前記コンピュータに行わせる、プログラム。
【請求項２０】
コンピュータによって実行されたときに、請求項４に記載の多層ニューラルネットワークモデルの学習方法を前記コンピュータに行わせる、プログラム。
【請求項２１】
コンピュータによって実行されたときに、請求項８に記載の多層ニューラルネットワークモデルの適用方法を前記コンピュータに行わせる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は多層ニューラルネットワークのためのモデリング分野に関し、特に、多層ニューラルネットワークモデルを単純化し、その性能を従来の技術に匹敵させる方法に関する。
【背景技術】
【０００２】
近年、モデル化に基づく多層ニューラルネットワークモデルは、画像分類、ターゲット検出、及び画像分割のようなコンピュータサービスにおいて広く使用されている。サービス精度を向上させるために、ネットワークモデルは、例えば、ＶＧＧＮｅｔ、ＲｅｓＮｅｔ、及びＸｃｅｐｔｉｏｎのようなネットワークモデルのように、ますます深く（層がより多く）、並びにますます広く（各層の出力特徴マップがより多く）なるように設計されている。これらのネットワークモデルは、計算量が大きく及び処理速度が遅いという欠点を有するため、それらは、スマートフォン、ロボット機器等のような資源制約のある機器に適用することが困難である。現在、以下のようにネットワークモデルの構造を単純化し及びネットワークモデルの性能を保証するいくつかの方法がある。
【０００３】
１．ネットワークの枝刈り。この方法は、フィルタのパラメータの一部を０に設定することでフィルタの重みを疎にする、又はフィルタ数を減らすためにフィルタの一部を直接除去し、それによってネットワークモデルを単純化する目的を達成する。ネットワークの枝刈りは、ネットワークモデルを効果的に単純化することができるが、畳み込み層のどのフィルタが除去され得るかを決定するために正確なハイパーパラメータ設定を達成することは困難であり、これはネットワークの枝刈りの実際の適用を制限する。
【０００４】
２．パラメータ量子化。この方法は、フィルタのパラメータの表現精度を減らすことによって、ネットワークモデルの記憶領域を低減し、及び計算速度を向上させる。例えば、３２ビットで表される最高精度は１ビットで表されるバイナリ精度に量子化される。この方法は、ネットワークモデルによって占有される記憶領域を低減することができるが、低減されたパラメータの表現精度は、ネットワークモデルの性能を低下させる。
【０００５】
３．低ランクでの近似。この方法は、スケールの大きい行列によって表されるフィルタパラメータをスケールの小さい行列によって表される複数の行列パラメータに分解し、それによってネットワークモデルをより小さくする。しかしながら、この方法の圧縮率は限られており、及び計算量の顕著な低減をもたらすものではない。
【０００６】
４．効率的なネットワーク設計。畳み込み計算子を最適化し、及びローカルバイナリ畳み込みニューラルネットワーク（ＬＢＣＮＮ）モデル又はボトルネック設計のような特定の効率的なネットワークモデルを設計することによって、ネットワークモデルを単純化する目的が達成される。ＬＢＣＮＮモデルを例にとると、１つの従来の畳み込み処理は２つの畳み込み処理に分解され、そこで最初に、疎及び固定のバイナリ畳み込みフィルタが畳み込みに使用され、並びに２回目に、学習可能であり、及びパラメータスケールが小さい（１×１）フィルタが畳み込みに使用される。第１の畳み込み処理におけるバイナリ畳み込みフィルタにおけるパラメータは固定であり、ネットワークモデルの各層は１つのバイナリ畳み込みフィルタを共有することができ、第２の畳み込み処理におけるフィルタの行列スケールは小さいので、ネットワークモデルによって占有される記憶領域は全体としてより小さくなる。しかしながら、１つの従来の畳み込み処理が２つの畳み込み処理に分解されるので、代わりにＬＢＣＮＮの深さが増加し、これはネットワークモデルの学習処理の収束に不利である。
【０００７】
５．３値化された重み。残差拡張技術によって、この方法は、より多くのフィルタを導入するために、畳み込み層及び完全接続層上で異なる閾値αを使用し、それがネットワークモデルの精度を効果的に向上させる。しかしながら、これは、ネットワークモデルにおいて、より多くの３値化された重みのフィルタを導入し、その結果、ネットワークモデルの大きさを著しく増大させる可能性がある。
【０００８】
上述の方法はそれ自体の欠点を有し、全てがネットワークモデルを単純化することと性能を維持することとの間のより良いバランスを達成することはできない。
【発明の概要】
【０００９】
本開示は、従来の多層ニューラルネットワークモデルを最適化するための解決策を提供することを目的とし、ニューラルネットワークモデルを単純化することと性能を維持することとの間のより良いバランスを達成することが期待される。
【００１０】
本開示の一態様によれば、多層ニューラルネットワークモデルの少なくとも１つの畳み込み層について、その畳み込み層のフィルタのチャネル数を拡張することと、順伝播中に、アプリケーション要件に対応するデータに基づいて、チャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行うことと、順伝播を完了した後に適用結果を出力することと、を備える、多層ニューラルネットワークモデルの適用方法が提供される。
【００１１】
本開示の別の態様によれば、学習される多層ニューラルネットワークモデルの少なくとも１つの畳み込み層について、その畳み込み層のフィルタのチャネル数を拡張することと、順伝播中に、学習用データに基づいてチャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行うことと、逆伝播中に、ネットワークモデルの学習を実現するために、チャネル数拡張後のチャネルの同一チャネル上の重みの勾配値に応じてチャネル数拡張前のチャネル上の重みの勾配値を更新することと、を備え、その同一チャネル上の重みが、その勾配値がチャネル数拡張前のチャネル上で更新される重みから導出される、更新することと、を備える、多層ニューラルネットワークモデルの学習方法が提供される。
【００１２】
本開示の別の態様によれば、順伝播中に、少なくとも１つの畳み込み層について、畳み込み層の複数の入力特徴マップを累算し、畳み込み層の累積された入力特徴マップ及びフィルタを使用することによって畳み込み層の畳み込み計算を行うことと、順伝播を完了した後に適用結果を出力することと、を備える、多層ニューラルネットワークの適用方法が提供される。
【００１３】
本開示の別の態様によれば、多層ニューラルネットワークの少なくとも１つの畳み込み層のフィルタのチャネル数を予め拡張する拡張部と、アプリケーション要件に対応するデータに基づいて、チャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行う順伝播部と、順伝播を完了した後に適用結果を出力する出力部と、を備える、多層ニューラルネットワークの適用装置が提供される。
【００１４】
本開示の別の態様によれば、学習される多層ニューラルネットワークモデルの少なくとも１つの畳み込み層のフィルタのチャネル数を予め拡張する拡張部と、学習用のデータに基づいて、チャネル数拡張後のフィルタを用いて畳み込み層のデータ計算を行う順伝播部と、ネットワークモデルの学習を実現するために、チャネル数拡張後のチャネルの同一チャネル上の重みの勾配値に応じて、チャネル数拡張前のチャネル上の重みの勾配値を更新する逆伝播部であって、その同一チャネル上の重みが、その勾配値がチャネル数拡張前のチャネル上で更新される重みから導出される、逆伝播部と、を備える、多層ニューラルネットワークにおける学習装置が提供される。
【００１５】
本開示の別の態様によれば、順伝播中に、少なくとも１つの畳み込み層について、その畳み込み層の複数の入力特徴マップを累算する累算部と、畳み込み層の累算された入力特徴マップ及びフィルタを使用することによって畳み込み層の畳み込み計算を行う計算部と、順伝播を完了した後に適用結果を出力する出力部と、を備える、多層ニューラルネットワークの適用装置が提供される。
【００１６】
本開示の別の態様によれば、コンピュータによって実行されたときに、上記の多層ニューラルネットワークモデルの適用方法をコンピュータに行わせる、プログラムが提供される。
【００１７】
本開示の別の態様によれば、コンピュータによって実行されたときに、上記の多層ニューラルネットワークモデルの学習方法をコンピュータに行わせる、プログラムが提供される。
【００１８】
本開示のさらなる特徴は、添付される図面を参照して、以下の例示的な実施形態の説明から明らかになるであろう。
【図面の簡単な説明】
【００１９】
本明細書に組み込まれその一部を構成する添付の図面は、本発明の実施形態を示し、並びに、実施形態の説明とともに、本開示の原理を説明する役割を果たす。
【００２０】
【図１】枝刈りネットワークモデルの枝刈り及び微調整処理を示す。
【００２１】
【図２】従来の畳み込みニューラルネットワークモデル及びＬＢＣＮＮモデルの順伝播処理を示す。
【００２２】
【図３（ａ）】、
【図３（ｂ）】それぞれ、量子化前及び後の３値化された重みとフィルタ行列パラメータとの最適化方法の順伝播処理を示す。
【００２３】
【図４（ａ）】３値化された重みにおける順及び逆伝播におけるフィルタ構造を示す。
【図４（ｂ）】、
【図４（ｃ）】本開示の方法における順及び逆伝播におけるフィルタ構造を示す。
【００２４】
【図５】本開示のハードウェア環境を示す。
【００２５】
【図６】本開示におけるネットワークモデルの内部構造の概略図を示す。
【００２６】
【図７】本開示の第５の例示的な実施形態に係る学習方法の概略フローチャートを示す。
【００２７】
【図８】、
【図９】本開示の第１の例示的な実施形態のフィルタのチャネル数の拡張の概略図をそれぞれ示す。
【００２８】
【図１０】チャネルを拡張した後にフィルタを使用して畳み込みを行う処理を示す。
【００２９】
【図１１】本開示の第２の例示的な実施形態に係る適用方法の概略フローチャートである。
【００３０】
【図１２】入力特徴マップの特徴分布の概略図を示す。
【００３１】
【図１３】本開示の第３の例示的な実施形態に係る適用方法の概略フローチャートである。
【００３２】
【図１４】入力特徴マップを累算する処理を示す。
【００３３】
【図１５】本開示の第４の例示的な実施形態に係る学習装置の構造概略図である。
【００３４】
【図１６】本開示の第５の例示的な実施形態に係る適用装置の構造概略図である。
【００３５】
【図１７】本開示の第６の例示的な実施形態に係る適用装置の構造概略図である。
【発明を実施するための形態】
【００３６】
従来の多層ニューラルネットワークモデルの構造は大部分が複雑である。モデル構造を単純化するために、ネットワークの枝刈りは適用可能な方法である。図１は、順伝播処理における、オリジナルモデル（単純化されなかったモデル）、枝刈りモデル、及び枝刈りモデルを微調整する微調整モデルの処理を示す。
【００３７】
オリジナルモデルでは、ｉ番目の層は３つのフィルタを備え、順伝播を行うために、ｉ番目の層の入力特徴マップはその３つのフィルタを用いて別々に畳み込まれ、その後、この畳み込み計算結果が、（ｉ＋１）番目の層の入力特徴マップ（すなわち、ｉ番目の層の出力特徴マップ）とされ、（ｉ＋１）番目の層のフィルタを用いて畳み込まれ続けるものとする。
【００３８】
枝刈りモデルでは、まず、ネットワークモデルの全体性能への寄与が小さいｉ番目の層のフィルタ（フィルタのｉ番目の層において点線で示される）が除去され、同時に、（ｉ＋１）番目の層にあるそのフィルタの対応する入力特徴マップ及びフィルタチャネル（入力特徴マップ及びフィルタの（ｉ＋１）番目の層において点線で示される）も一緒に除去される。畳み込み計算では、ｉ番目の層の入力特徴マップがｉ番目の層の残りの２つのフィルタを用いて畳み込まれ、並びに、ｉ番目の層の畳み込み計算結果がｉ＋１番目の層の入力特徴マップとして使用され、ｉ＋１番目の層の畳み込み計算が継続されることにより、順伝播処理を行う。微調整モデルは枝刈りモデルの微調整であり、その結果、枝刈りモデルの性能は、そのオリジナルモデルの性能とほぼ等しい。
【００３９】
上記のネットワークの枝刈りに基づいて、ネットワークモデルは、重要でないフィルタを除去することによって効果的に単純化されることができるが、ネットワークモデルのどのフィルタが除去され得るかを決定することはネットワーク枝刈り方法の困難なところである。一例として、ネットワークモデルへの寄与度に応じて、層の特徴マップについてそれぞれの情報エントロピースコアが算出され、スコアが閾値＜Ｔ＞よりも低い特徴マップに対応するフィルタが除去され得るフィルタとされ、別の例として、算出された特徴マップの情報エントロピースコアが降順に配列され、同時に、固定圧縮率が用られ、前の閾値＜Ｋ＞特徴マップに対応するフィルタのみが保持され、除去され得るフィルタとして他のフィルタが使用される。しかしながら、実際の応用例では、閾値＜Ｔ＞及び閾値＜Ｋ＞は決定されることが困難であり、その結果、ネットワークの枝刈りの実際の適用が制限される。
【００４０】
一般的に使用される別の最適化モデルはＬＢＣＮＮモデルである。図２は、従来の畳み込みニューラルネットワーク（ＣＮＮ）モデル及びＬＢＣＮＮモデルを例にとることによって、２つのネットワークモデルの順伝播処理を示す。
【００４１】
図２の上側は、従来の畳み込みニューラルネットワーク（ＣＮＮ）モデルの順伝播処理である。ｉ番目の層が３×３のスケールを有する３つのフィルタを備えていると仮定すると、ｉ番目の層の入力特徴マップ（図２の左上側のＸｉ）は、応答マップを生成するために３つのフィルタを用いて畳み込まれ、応答マップの要素は、出力特徴マップ（図２の右上側のＸｉ＋１）を生成するために活性化計算の対象となり、出力特徴マップは、（ｉ＋１）番目の層に出力される。
【００４２】
図２の下側はＬＢＣＮＮモデルの順伝播処理であり、バイナリ畳み込みフィルタのセットを含む。バイナリ畳み込みフィルタは、上側のＣＮＮモデルのフィルタと比較してより疎な行列パラメータを有し、ネットワークモデル学習中に更新されない（パラメータは固定される）。ＬＢＣＮＮモデルはまた、非線形活性化関数及び学習可能フィルタのセットを含み、学習可能フィルタの行列パラメータは、小さいスケール、例えば１×１を有する。ＬＢＣＮＮモデルに基づく順伝播処理では、まず、ｉ番目の層の入力特徴マップ（図２の左下側のＸｉ）がバイナリ畳み込みフィルタを用いて畳み込まれ、その計算結果が非線形活性化関数により活性化される。活性化されたビットマップは学習可能なフィルタを用いて畳み込まれ、並びに、ｉ番目の層の出力特性マップ（図２の右下側のＸｉ＋１）が最終的に生成され、及び（ｉ＋１）番目の層に出力される。
【００４３】
従来のＣＮＮモデルと比較して、ＬＢＣＮＮモデルにおけるバイナリ畳み込みフィルタは複数の層によって共有されることができ、重要なパラメータは、小さな行列パラメータスケールを有する学習可能なフィルタに格納される。このため、ＬＢＣＮＮモデルのサイズを効果的に減少させることができる。しかしながら、ＬＢＣＮＮモデルには２つの畳み込み処理があり、そのうちの１つは疎及び固定のバイナリ畳み込みフィルタについての畳み込み処理であり、並びに、その他は学習可能フィルタについての畳み込み処理である。したがって、ＬＢＣＮＮモデルの深さが増加し、ネットワークモデルの深さを増加させることはネットワークモデルの学習がより困難になることを意味する。
【００４４】
上述のＬＢＣＮＮ最適化モデルに加え、図３（ａ）は、３値化された重みを使用して最適化されたネットワークモデルを示す。図３（ａ）の上側は従来の多層畳み込みニューラルネットワークモデルであり、下側はより多くの導入されたフィルタを有するネットワークモデルである。畳み込み層１で畳み込み層１ｒを増加させることを例にとると、まず、最高精度３×３フィルタを量子化することによって２つの２ビット精度フィルタが得られ、次に、それぞれ異なる閾値α及びαｒを採用することによって、３（ｂ）に示されるようなフィルタ行列パラメータが得られる。
【００４５】
図３（ａ）及び図３（ｂ）からわかるように、新しいフィルタの導入はニューラルネットワークモデルの精度を向上させることができるが、新しいフィルタはネットワークモデルのサイズを増加させ、これはネットワークモデルの単純化を達成不可能にする。
【００４６】
現在の多層ニューラルネットワークモデルの最適化処理では、ネットワークモデルのサイズを単純化するために、ネットワーク性能が低下すること、又は単純化が達成困難であることなどの問題が引き起こされることが多い。この場合に基づいて、本開示は、多層ニューラルネットワークモデルについての最適化処理を提供する。ネットワークモデルを学習及び適用する時、ネットワークモデルを単純化することに基づいてネットワーク性能が低下しないことを保証するように、少なくとも１つの畳み込み層のフィルタのチャネル数が拡張され、拡張されたチャネル数を有するフィルタを使用して畳み込み計算が行われ、チャネル数が拡張された後のフィルタ接続によってネットワークモデルの精度が保証される。多層ニューラルネットワークモデルにおける１つの畳み込み層を例にとると、図４（ａ）は、３値化された重みに基づいて順伝播及び逆伝播におけるフィルタの構造を説明し、並びに図４（ｂ）は、本開示に基づいて順伝播及び逆伝播におけるフィルタの構造を説明する。図４（ａ）の順伝播では、ある畳み込み層の全てのフィルタ（Ｗ１からＷ９まで）がネットワークモデルを格納する記憶領域に格納され、次いで、αに基づく９つのフィルタ（Ｗ１αからＷ９αまで）とαｒに基づく９つのフィルタ（Ｗ１αｒからＷ９αｒまで）とが、上述の残差拡張方法及び量子化によって得られ、並びに、その１８のフィルタを使用して畳み込み計算が行われる。図４（ｂ）に示される順伝播では、各テンプレートフィルタにおける元のｃｔチャネルが３倍に拡張され、拡張されたチャネル数を有する９個のフィルタ（Ｗ’１からＷ’９）が得られ、各フィルタのチャネル数が３ｃｔとなる。チャネル数が拡張されたテンプレートフィルタはターゲットフィルタと呼ばれ、ターゲットフィルタはこの層の畳み込み計算を行うために使用される。図４（ｂ）は、９個のフィルタを例として説明される。説明を簡単にするために、図４（ｃ）では、１つのフィルタのチャネル数が拡張される場合を示している。図４（ｃ）の順伝播では、フィルタＷ１が４倍に拡張されることになっており、したがって、Ｗ１のチャネル数は拡張前はｃ’／４となる。
【００４７】
図４（ａ）と図４（ｂ）の比較から分かるように、本開示に係るネットワークモデルでは、ネットワークモデルの性能が３値化された重みのネットワークモデルに比べて低下しないように、フィルタのチャネル数を拡張することによって、畳み込みにおける重み接続が強化されている。さらに、ネットワークモデルにおいてチャネル数のより小さいフィルタが設計され得るので、ネットワークモデルの枠組みは単純化されることができる。
【００４８】
ここで説明されるテンプレートフィルタ及びターゲットフィルタは、多層ニューラルネットワークモデルにおける重みパラメータを特徴付けるためのフィルタであり、畳み込み計算におけるそれらの計算方法及び機能は、従来のフィルタのものと同様であることには留意されたい。ここで、テンプレートフィルタとターゲットフィルタは、チャネル数を拡張する前のフィルタを、チャネル数を拡張した後のフィルタと区別するために使用され、フィルタの機能及び構造は限定されない。
【００４９】
以下、本開示の様々な例示的な実施形態が、図面を参照して詳細に説明されるだろう。本開示が以下に記載される様々な例示的な実施形態に限定されないことは理解されるべきである。また、本開示の課題を解決するための解決策として、全ての例示的な実施形態で説明された特徴の全ての組み合わせを含む必要はない。
【００５０】
図５は多層ニューラルネットワークモデルを処理するためのハードウェア環境を示し、これは、プロセッサ部１１、内部メモリ部１２、ネットワークインタフェース部１３、入力部１４、外部メモリ１５及びバス部１６を含む。
【００５１】
プロセッサ部１１は、ＣＰＵ又はＧＰＵであってもよい。メモリ部１２は、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）を含む。ＲＡＭは、プロセッサ部１１のメインメモリ、作業領域等として使用されることができる。ＲＯＭはプロセッサ部１１の制御プログラムを格納するために使用されることができるが、制御プログラムの動作時に使用されるファイル又は他のデータを格納するために使用されることもできる。ネットワークインタフェース部１３は、ネットワークに接続され、ネットワーク通信を実装することができる。入力部１４は、キーボード、マウス等のようなデバイスからの入力を制御する。外部メモリ１５は、ブートプログラム、各種アプリケーション等を格納する。バス部１６は、多層ニューラルネットワークモデルの最適化手段においてユニットを接続するために使用される。
【００５２】
図６は本開示に係るネットワークモデルの内部構造の概略図を示し、並びに、ネットワークモデルを学習及び適用する処理において、そのネットワークモデルは、図６に示される内部構造に基づいて動作することができる。この構成は、ネットワークモデル記憶部２０と、特徴マップ記憶部２１と、畳み込み部２２と、プーリング部２３と、活性化部２４と、量子化部２５と、制御部２６と、を含む。以下、各部が説明される。
【００５３】
ネットワークモデル記憶部２０は、ネットワーク構造情報、畳み込み計算に必要なフィルタ情報、及び他の層での計算を実行するために必要な情報を含むが、これらに限定されない、多層ニューラルネットワークモデルに関する情報を格納し、このネットワークモデル記憶部２０は、フィルタのチャネル数がどの畳み込み層で拡張されるか、フィルタのチャネル数の拡張係数、拡張方法など、フィルタのチャネル数の拡張に関する情報をさらに含む可能性がある。特徴マップ記憶部２１は、ネットワークモデルの計算を行う際に必要とされる特徴マップ情報を格納する。
【００５４】
畳み込み部２２は、ネットワークモデル記憶部２０によって入力されたフィルタ情報と、特徴マップ記憶部２１によって入力された特徴マップ情報とに基づいて、畳み込み処理を行うために使用される。もちろん、フィルタのチャネル数を拡張する必要がある場合には、畳み込み部２２は、ネットワークモデル記憶部２０に格納されているフィルタのチャネル数の拡張に関する情報に基づく拡張を行うこともできる。
【００５５】
ここで、プーリング部２３、活性化部２４、及び量子化部２５は、対応するプーリング処理、活性化処理、及び量子化処理を行うためのユニットであり、その機能は再度説明されない。図６はプーリング層及び量子化層が多層ニューラルネットワークモデルに含まれる例であり、本開示は他の場合に限定されないことには留意されたい。例えば、畳み込み層及び量子化層のみが多層ニューラルネットワークモデルに含まれている場合には、畳み込み部２２の出力結果は、量子化部２５へと直接渡されることができる。なお、プーリング部２３、活性化部２４、及び量子化部２５は図６に示される構造に例示的に示されており、ｔ処理を行うことが可能なユニット、及びスケーリング処理が可能なユニットのような、含まれ得る他の構造は省略されている。それはここでは繰り返されない。
【００５６】
制御部２６は図６の他のユニットに制御信号を出力することにより、ネットワークモデル記憶部２０から量子化部２５までの動作を制御する。
【００５７】
以下、本開示の様々な実施形態が、添付の図面を参照して詳細に説明されるであろう。
【００５８】
＜第１の例示的な実施形態＞
図７は、本開示の第１の例示的な実施形態の多層ニューラルネットワークモデルについての学習方法のステップの概略フローチャートを説明する。例示的な本実施形態では、図６に示される多層ニューラルネットワークモデルの学習フローは、ＲＡＭを作業領域として使用し、並びにＲＯＭ及び／又は外部メモリ１５に格納された（ニューラルネットワーク順／逆伝播アルゴリズム等のような）プログラムをＧＰＵ／ＣＰＵ１１に実行させることにより実現される。
【００５９】
ステップＳ１０１：学習される多層ニューラルネットワークモデルを決定する。そこで、ネットワークモデルの少なくとも１つの畳み込み層のフィルタのチャネル数が拡張されることになる。
【００６０】
本実施形態では、少なくとも１つのネットワークモデルの情報は図６に示されるネットワークモデル記憶部２０に格納されてもよく、ネットワークモデルの動作時に使用される特徴マップ情報は特徴マップ記憶部２１に格納される。学習がトリガされると（学習要求の受信、又は学習トリガ時間の到来等）、このステップＳ１０１が開始される。
【００６１】
ステップＳ１０２：拡張されたチャネル数を有するフィルタを得るために、学習される多層ニューラルネットワークモデルの少なくとも１つの畳み込み層について、層のフィルタのチャネル数を拡張する。
【００６２】
このステップＳ１０２では、チャネル数を拡張する前のフィルタはテンプレートフィルタと呼ばれてもよく、チャネル数を拡張した後のフィルタはターゲットフィルタと呼ばれてもよい。
【００６３】
このステップＳ１０２では、フィルタのチャネル数の拡張は、図６に示されるネットワークモデル記憶部２０に格納されているフィルタのチャネル数の拡張に関する情報に基づいて行われることができる。ここで、フィルタのチャネル数の拡張とは、フィルタチャネルの何度もの複写を指す。換言すれば、１つのチャネルが複数のチャネルに拡張される時、拡張後の複数のチャネルは拡張前のチャネルと同じであり、すなわち、拡張前のチャネル上の重みは、拡張後のチャネル上の重みと同じである。例えば、チャネル数が拡張される以前は、フィルタＷ１は、チャネルＣ１−１、チャネルＣ２−１、及びチャネルＣ３−１を有する。チャネル数が拡張される時、新しいチャネルＣ１−２及びチャネルＣ１−３、チャネルＣ２−２及びチャネルＣ２−３、並びにチャネルＣ３−２及びチャネルＣ３−３を得るために、３つのチャネルがそれぞれ２回複製される。チャネル数が拡張された後、チャネルＣ１−１からＣ１−３は同一チャネルであり、チャネル上の重みは拡張前のチャネルＣ１−１の重みから導出され、同様に、チャネルＣ２−１からＣ２−３は同一チャネルであり、チャネル上の重みは拡張前のチャネルＣ２−１の重みから導出され、Ｃ３−１からＣ３−３は同一チャネルであり、チャネル上の重みは拡張前のチャネルＣ３−１の重みから導出される。フィルタのチャネル数を拡張する具体的な処理は後述されるであろうし、ここでは説明されないであろう。
【００６４】
上記のステップＳ１０１からＳ１０２は、本実施形態においてネットワークモデルの学習を行うために実行される前処理であり、それによって、後続の順伝播及び逆伝播において、拡張されたチャネル数のフィルタを使用することにより畳み込み計算が行われることができるように、ネットワークモデルの少なくとも１つの層のフィルタのチャネル数が拡張される。
【００６５】
ステップＳ１０３：学習される多層ニューラルネットワークモデルに学習用データを入力する。そこで、ネットワークモデルにおいて順伝播が行われる。
【００６６】
このステップＳ１０３では、多層ニューラルネットワークにおいて、学習用データは、層毎に対応する計算又は処理の対象となる。フィルタのチャネル数が拡張された畳み込み層では、畳み込み層の入力特徴マップは、拡張されたチャネルを有するフィルタを用いて畳み込まれる。
【００６７】
ここで、学習用データは、例えば、ピクチャ及び対応する記述データのセット、又は音声及び対応する記述データのセットなどであってもよく、並びに、本実施形態はデータの種類を限定するものではない。多層ニューラルネットワークモデルにおいて画像処理や音声処理の処理を行う際に使用されるデータは、第１の実施形態の学習方法に適用されることができる。
【００６８】
ステップＳ１０４：逆伝播において、フィルタのチャネル数が拡張される畳み込み層について、チャネル数が拡張された後の各チャネル上の重みの勾配値を決定する。
【００６９】
ステップＳ１０５：ネットワークモデル上の学習を実施するため、ステップＳ１０４で決定された同一チャネル上の重みの勾配値に従って、チャネル数を拡張する前のチャネル上の重みの勾配値を更新する。
【００７０】
ここで、同一チャネルとは、拡張前に同じチャネルから拡張されたチャネルを指す。例えば、ステップＳ１０２では、９つのチャネルＣ１−１からＣ３−３を得るため、フィルタＷ１の３つのチャネルＣ１−１からＣ３−１が拡張される。逆伝播では、まず、９つのチャネルＣ１−１からＣ３−３に対する重み要素の勾配値を別々に計算する。次いで、同一チャネル上の重みの勾配値を使用することにより、拡張前のチャネル上の重みの勾配値が更新される。
【００７１】
ここで、チャネル上の重みに対して上述する勾配値処理を行う理由は、順伝播では入力特徴マップが拡張されたチャネルを有するフィルタを用いて個別に畳み込まれ、そのため、逆伝播では、拡張されたチャネル上の重みの勾配値が既知の方式で直接計算される、すなわち、これらの重みが拡張前の同じ重みから導出される場合、これらの重みの勾配値が異なり、そのことがチャネル拡張の構造を破壊するからである。したがって、本実施形態のステップＳ１０５において拡張前のチャネルの重みの勾配値を更新する処理を行うことにより、このチャネル構造の破壊は回避されることができる。
【００７２】
もちろん、畳み込み層においてフィルタのチャネル数の拡張が行われない場合には、ステップＳ１０５の処理は行われる必要はなく、フィルタの各チャネルにおける重み要素の勾配値が公知の方式で算出された後に、フィルタの重みの更新が完了されてもよい（すなわち、ネットワークモデルの学習が達成される）。
【００７３】
本開示のネットワークモデルを学習する第１の実施形態の具体的な実装方式が、以下に詳細に説明される。
【００７４】
＜フィルタのチャネル数の拡張＞
【００７５】
ここでは、テンプレートフィルタのチャネルを複製することでチャネル数の拡張が達成される場合が例として説明される。ある畳み込み層が９つのテンプレートフィルタを備えており、その各々が高さ（行）ｈ＝３、幅（列）ｗ＝３、及びチャネル数ｃ＝１６を有するとする。チャネル数は３倍に複製される必要があり、すなわち、複製後のフィルタのチャネル数はＣ＝４８であり、チャネル複製後のフィルタの高さ／幅は複製前のフィルタの高さ／幅と同じである。もちろん、テンプレートフィルタの高さ／幅は、複製前と複製後との間で異なっていてもよい。例えば、チャネルを複製するとき、チャネルの行はチャネル複製後のフィルタの高さが複製前のフィルタの高さよりも大きくなるように複製され、チャネルの列はチャネル複製後のフィルタの幅が複製前のフィルタの幅よりも大きくなるように複製される。なお、複製される複数のチャネルは、実際の要求又は実験効果に応じて予め設定されていてもよく、本発明はこれに限定されるものではない。
【００７６】
フィルタのチャネル数を１６から４８へと拡張するために、各フィルタのチャネルは全体が複製されることができる。図８を参照すると、例えば、テンプレートフィルタの行／列は変更されずに維持され、テンプレートフィルタの１６チャネルは全体が２回複製され（すなわち、３倍の拡張）、４８チャネルを含むターゲットフィルタが構築される。図８から分かるように、これはチャネルの全体的な複製であるので、最初の１６チャネル、中間の１６チャネル、及び最後の１６チャネルは、複製後に得られた任意のターゲットフィルタについて同じである。
【００７７】
図８は、拡張後のチャネル数が拡張前のチャネル数の整数倍である場合を示す。拡張後のチャネル数が拡張前のチャネル数の整数倍でない場合、チャネル複製処理は、複製後のチャネル数が要件を満たすように、チャネル全体の複製とチャネル個別の複製とに分解されることができる。図９に示される場合を例にとって、図８に示されるように、畳み込み層に９個のテンプレートフィルタが提供されているとし、並びに、各テンプレートフィルタの高さ（行）ｈ＝３、幅（列）ｗ＝３、及びチャネル数ｃ＝１６であり、並びに拡張後のチャネル数はＣ＝４２であるとする。このとき、拡張後のチャネル数は、拡張前のチャネル数の２倍よりも１０多い。まず、テンプレートフィルタの１６チャネルの全体が１倍だけ複製され、その後、テンプレートフィルタの１６チャネルのうち最初の１０チャネルが再び複製され、４２チャネルのターゲットフィルタが構築される。ここで、ターゲットフィルタは、テンプレートフィルタの最初の１０チャネル、又はテンプレートフィルタの最後の１０チャネル、又は、本実施形態では限定されないが、各テンプレートフィルタが同じ複製原理を使用する限り、他の位置にある１０チャネルを、複製することによって構成することができる。
【００７８】
＜順伝播＞
【００７９】
フィルタのチャネル数が上記の方法で拡張された後、畳み込み計算は、順伝播処理においてチャネルを拡張したフィルタにより行われる。図１０に示される事例を例にとると、ｉ番目の層の畳み込み層はそれぞれ１６のチャネル数を有する２つのテンプレートフィルタＷ１及びＷ２を有するものとする。フィルタのチャネル数の拡張の前処理では、Ｗ１及びＷ２のチャネル数は図８に示される方式で２回複製され（３倍の拡張）、４８チャネルを含む対象フィルタＷ’１及びＷ’２が生成される。Ｗ’１のチャネルは、Ｃ１−１（複製前の元の１６チャネルに対応する）、Ｃ１−２（第１の複製によって得られた１６チャネルに対応する）、及びＣ１−３（第２の複製によって得られた１６チャネルに対応する）によって別々に表される。同様に、Ｗ’２のチャネルは、Ｗ２−１〜Ｗ２−３（図１０には示されていない）で表される。ｉ番目の層の４８個の入力特徴マップは、２つの出力特徴マップを生成するために、ターゲットフィルタＷ’１及びＷ’２を用いて畳み込まれる。ここでの畳み込み計算は従来の畳み込み計算と同じであり、ここでは説明されないであろう。
【００８０】
＜逆伝播＞
【００８１】
第１の実施形態の解決策では、ネットワークモデルの少なくとも１つの畳み込み層のフィルタのチャネル数が拡張される。このため、逆伝播では、チャネル拡張の固有の構造を確保するために、拡張前のチャネルの各重みの勾配値を計算する必要がある。任意的な実施方式は、次の層から送信される出力特徴マップの勾配値に従って、現在の層のチャネル数が拡張された後のフィルタの重みの勾配値を決定することと、さらに、拡張前のチャネル上の対応する重みの勾配値として、同一のチャネル上の勾配値に対応する算術平均を重みごとに計算することと、である。前述のステップＳ１０５では、図１０に示される事例を例にとることにより、拡張前のチャネル上の重みの勾配値を更新する処理が説明された。より具体的には、チャネルＣ１−１からチャネルＣ１−３を例にとると、チャネルＣ１−１からチャネルＣ１−３上の（０，０）位置における重みの勾配値が平均化され、その平均値は拡張前のチャネルＣ１−１上の（０，０）位置における重みの勾配値として用いられる。同様の方法で、チャネルＣ１−１上の全ての位置における重みの勾配値が更新されるまで、拡張前のチャネル上の重みの勾配値の更新を完了する。
【００８２】
具体的には、拡張前のチャネル上の重みの勾配値を算出する勾配値を平均化する上記の方法は、式（１）で表されることができる。
【数１】
2020109647.tif 000003
【００８３】
ここで、ｎはフィルタ数であり、ｃはテンプレートフィルタのチャネル数であり、ｈ及びｗはフィルタの重み要素の空間位置であり、ｃ’は拡張後のフィルタのチャネル数であり、ｒは拡張後の同一チャネル数であり、Ｇｒａｄ（ｎ、ｃ’、ｈ、ｗ）は同一チャネルの１つのチャネル上の（ｈ、ｗ）位置における重みの勾配値であり、ＡｖｇＧｒａｄ（ｎ、ｃ、ｈ、ｗ）は拡張前の更新されたチャネル上の（ｈ、ｗ）位置における重みの要素勾配値である。
【００８４】
本開示の第１の例示的な実施形態で説明された学習方法を用いれば、より小さいチャネル数を有するフィルタが設計される場合であっても、チャネル数を拡張し、重み接続を強化することにより、ネットワークモデル結果を単純化しながらも、ネットワークモデルの性能が低下させられない。
【００８５】
第１の例示的な実施形態の学習方式では、フィルタを拡張する前のチャネル上の重みの勾配値、すなわち、拡張前のチャネルの重みが更新されることに留意されたい。拡張が完了される前にチャネル上の重みを学習した後、ネットワークモデルが常に単純化された状態に保たれるように、記憶領域を節約するために、一時記憶領域に格納された拡張された新しいチャネルのチャネル情報を解放することができる。第１の実施形態は、この学習処理の他の変形例に限定されない。例えば、逆伝播では、拡張後の同一チャネル上の重みの平均勾配値を計算した後、拡張前のチャネルの重みの勾配値は計算されない、すなわち、拡張後のチャネルの重みが学習される。将来のネットワークモデルアプリケーションでは、対応するアプリケーションサービスは、拡張後のチャネル上の学習された重みを直接使用することによって実行され得る。
【００８６】
＜第２の例示的な実施形態＞
第１の例示的な実施形態に基づいてネットワークモデルの学習を実装した後、第２の実施形態は、学習されたネットワークモデルを適用する方法を説明する。図１１は、第２の例示的な実施形態に係る適用方法の概略フローチャートを説明する。第２の例示的な実施形態では、図１１に示される多層ニューラルネットワークモデルの処理フローは、ＲＡＭを作業領域として使用し、並びにＲＯＭ及び／又は外部メモリ１５に格納された（アプリケーションアルゴリズム等のような）プログラムをＧＰＵ／ＣＰＵ１１に実行させることにより実装される。
【００８７】
ステップＳ２０１：アプリケーションサービスが動作する多層ニューラルネットワークモデルを決定する。そこで、ネットワークモデルの少なくとも１つの畳み込み層のフィルタのチャネル数が拡張される。
【００８８】
ステップＳ２０２：拡張されたチャネル数を有するフィルタを得るため、畳み込み層のフィルタのチャネル数を拡張する。
【００８９】
上記のステップＳ２０１及びＳ２０２は、第１の例示的な実施形態のものと同様の前処理ステップである。ここで、フィルタのチャネル数の拡張は、第１の例示的な実施形態のものと同じであり、詳細はここでは再び説明はされない。
【００９０】
ステップＳ２０３：アプリケーション要件に対応するデータを多層ニューラルネットワークモデルに入力する。
【００９１】
このステップＳ２０３では、顔検出サービスを例としてとると、ネットワークモデルにおいて顔検出サービスを実行するために、多層ニューラルネットワークモデルに顔画像が顔検出アプリケーションのデータとして入力される。
【００９２】
ステップＳ２０４：適用結果が出力されるまで、多層ニューラルネットワークモデルにおける上から下への計算を実行する。
【００９３】
上記のステップＳ２０１からＳ２０４の適用方法は、第１の例示的な実施形態における拡張前のチャネルを学習する場合に基づいている。第１の例示的な実施形態において拡張後のチャネルが学習される場合、第２の実施形態の適用方法では、ステップＳ２０１及びステップＳ２０２のフィルタのチャネル数拡張のための前処理は行われる必要はなく、並びに順伝播が直接行われる。
【００９４】
以下、ベースラインネットワークモデルを例として、ネットワークモデルの性能及びネットワークモデルのサイズは、従来のベースラインネットワークモデル（チャネル拡張なし）と、本開示の第１の例示的な実施形態に基づく４倍チャネル拡張及び８倍チャネル拡張と、の間で比較される。
【００９５】
表１はオブジェクト検出タスクを行うように設計されたベースラインネットワークモデルの例であり、表１に示されるネットワークモデルは、本開示の方法を使用しない従来のベースラインモデルである。理解を容易にするために、表１におけるネットワークモデルは畳み込み層１から畳み込み層８のみを示し、ネットワークモデル又は層に含まれ得る他の畳み込み層、又はプーリング層、量子化層、及び正規化層のような層は示されていない。しかしながら、これは、ベースラインネットワークモデルの理解に影響を及ぼさない。
【表１】
2020109647.tif 000004
【００９６】
本開示の第１の例示的な実施形態に係る４倍チャネル拡張の手法では、表２を参照すると、採用されるネットワークモデルの構造は、畳み込み層５から畳み込み層８のフィルタ（すなわち、本開示の第１の例示的な実施形態におけるテンプレートフィルタ）のチャネル数がそれぞれ３２、６４、１２８、及び２５６であることを除いて、表１に示されるものと同様である。同様に、８倍チャネル拡張の手法では、表３を参照すると、畳み込み層５から畳み込み層８のフィルタのチャネル数はそれぞれ１６、３２、６４、及び１２８である。
【表２】
2020109647.tif 000005
【表３】
2020109647.tif 000006
【００９７】
上述される表１から３に示される３つのネットワークモデルを使用して顔検出の順伝播を行う時、表２に示されるネットワークモデルの畳み込み層５から畳み込み層８に対して４倍チャネル拡張を行い、表３に示されるネットワークモデルに対して８倍チャネル拡張を行う必要がある。表４は、表１に示されるベースラインネットワークモデルに基づくネットワークモデルの構造説明、並びに、表２に示されるネットワークモデルに基づく４倍チャネル拡張後のネットワークモデルの構造説明、及び表３に示されるネットワークモデルに基づく８倍チャネル拡張後のネットワークモデルの構造説明を示す。
【表４】
2020109647.tif 000007
【００９８】
表４に示される３つのネットワークモデルに基づいて、顔検出が行われた後、表５に示される顔検出率の比較結果、及び表６に示される記憶サイズの比較結果が得られる。
【表５】
2020109647.tif 000008
【表６】
2020109647.tif 000009
【００９９】
一方では、表６から分かるように、本開示の第１の例示的な実施形態の、チャネル拡張に基づくネットワークモデルでは、畳み込み層５から畳み込み層８までのチャネル数は従来のベースラインモデルのチャネルサイズと比較して著しく減少し、特にチャネル拡張の複数度がより高いほど、そのチャネル数はより少なくなる。他方では、表５から分かるように、本発明の第１の例示的な実施形態のチャネル拡張に基づくネットワークモデルを使用して顔検出が行われる時には、その検出性能は従来のベースラインモデルと実質的に同等である。
【０１００】
図１２は、従来のネットワークモデル（チャネル拡張なし）、及び本開示の第１の例示的な実施形態のチャネル拡張ネットワークモデルにおける入力特徴マップの特徴分布の概略図を示す。図１２からわかるように、畳み込み及び量子化の後、２つのネットワークモデルにおける入力特徴マップの分布は互いに近く、これは、本開示の第１の例示的な実施形態のネットワークモデルと従来のネットワークモデルとがサービス処理において同等の性能を有することを示す。
【０１０１】
＜第３の例示的な実施形態＞
本開示の第３の例示的な実施形態は、畳み込み層の入力特徴マップを累算することによって実装される多層アプリケーションネットワークモデルの適用方法を説明しており、第３の実施形態の適用方法は、第１の実施形態の学習方法に基づく学習によって得られたネットワークモデルの学習方法であってもよいが、他の方法によって得られたネットワークモデルの適用を排除しない。図１３は、第３の実施形態に係る適用方法のステップを示す概略フローチャートを示す。第３の例示的な実施形態では、図１３に示される多層ニューラルネットワークモデルの処理フローは、ＲＡＭを作業領域として使用し、ＲＯＭ及び／又は外部メモリ１５に格納された（アプリケーションアルゴリズム等のような）プログラムをＧＰＵ／ＣＰＵ１１に実行させることにより実現される。
【０１０２】
ステップＳ３０１：順伝播において、畳み込み層について、少なくとも１つの畳み込み層の複数の入力特徴マップを累算する。
【０１０３】
ステップＳ３０２：畳み込み層の累算された入力特徴マップ及びフィルタを使用することにより、畳み込み層の畳み込み計算を実行する。
【０１０４】
ステップＳ３０３：順伝播を行った後、適用結果を出力する。
【０１０５】
第３の実施形態の解決策では、畳み込み層の入力特徴マップ数がフィルタのチャネル数より多い場合、実現し得る方式は、チャネル数が拡張されたフィルタを用いて入力特徴マップが畳み込まれるように、第２の実施形態の方式に従ってフィルタのチャネル数を拡張することであり、別の実現し得る方式は、累算後の入力特徴マップ数がフィルタのチャネル数と一致し、及び、累算された入力特徴マップとチャネル数が拡張されていないフィルタとを使用することによって畳み込み計算が実行されるように、第３の実施形態の方式に従ってより多数の入力特徴マップをより少数の入力特徴マップに累算することであり、第３の実現し得る方式は、一方ではフィルタのチャネル数を拡張し、もし拡張の倍数が小さく拡張されたチャネル数が依然として入力特徴マップ数未満であるならば、入力特徴マップが累算されることができ、そしてその累算された入力特徴マップと拡張されたチャネル数を有するフィルタとを使用することによって畳み込み計算が行われることである。
【０１０６】
第３の実施形態の解決策では、入力特徴マップを累算する任意的な方式は以下の通りである。
【０１０７】
ステップ１：畳み込み層の複数の入力特徴マップをグループ化する。
【０１０８】
グループ化する時、入力特徴マップ数がフィルタのチャネル数の整数倍である場合には、グループ化後の各グループの入力特徴マップ数は、フィルタのチャネル数と等しい。入力特徴マップ数がフィルタのチャネル数の整数倍でない場合には、複数の入力特徴マップは２つの部分に分割される。その第１の部分の入力特徴マップ数はフィルタのチャネル数の整数倍であり、その第１の部分の入力特徴マップはグループ化され、各グループに対する入力特徴マップ数はフィルタのチャネル数と等しい。その第２の部分の入力特徴マップ数はフィルタのチャネル数よりも少なく、その第２の部分の入力特徴マップは１つのグループとして使用される。入力特徴マップ数（例えば、４８）がフィルタのチャネル数（例えば、１６）の整数倍である状態を例としてとると、入力特徴マップは位置順に３つのグループに分割され、各グループに１６個の入力特徴マップが存在する。また、入力特徴マップ数（例えば、４２）がフィルタのチャネル数（例えば、１６）の整数倍でない状態を例としてとると、入力特徴マップは位置順に３つのグループに分割され、第１のグループ及び第２のグループには１６個の入力特徴マップがあり、並びに、第３のグループには１０個の入力特徴マップがある。
【０１０９】
ステップ２：その数がフィルタのチャネル数のものと等しい累算された入力特徴マップを得るため、各グループの入力特徴マップを累算する。
【０１１０】
さらに入力特徴マップ数（例えば、４８）がフィルタのチャネル数（例えば、１６）の整数倍である状態を例としてとると、入力特徴マップは各グループにおいて１６個の入力特徴マップを有する３つのグループに分割される。各グループから１つの入力特徴マップが読み出され、各グループから読み出された１つの入力特徴マップ（合計で３つの入力特徴マップ）は、要素毎に１つの入力特徴マップ要素に累算される。類似の方法で、図１４に示されるように、各グループの１６個の入力特徴マップが全て累算されるまでに、累算された１６個の入力特徴マップが得られる。ここで、要素毎の累算とは、３つの入力特徴マップにおいて同じ位置の要素を累算することを指す。例えば、入力特徴マップの（ｈ１，ｗ２）位置における累算要素を得るために、第１のグループでの入力特徴マップ１の（ｈ１，ｗ２）位置における要素と、第２のグループでの入力特徴マップ１７の（ｈ１，ｗ２）位置における要素と、第３のグループでの入力特徴マップ３３の（ｈ１，ｗ２）位置における要素と、が累算される。なお、入力特徴マップ数（例えば、４２）がフィルタのチャネル数（例えば、１６）の整数倍でない状態を例にとると、入力特徴マップは３つのグループに分割され、第１のグループ及び第２のグループにはそれぞれ１６個の入力特徴マップがある。第３のグループには１０個の入力特徴マップがある。各グループから１つの入力特徴マップが読み出され、読み出された３つの入力特徴マップは、要素毎に１つの入力特徴マップに累算される。１０個の累算された入力特徴マップが得られる（すなわち、累算処理が１０回行われる）時には、第３のグループの入力特徴マップは全て累算されており、その後、入力特徴マップは第３のグループからはもう読み出されない。第１のグループ及び第２のグループの累算されていない入力特徴マップは、１６個の入力特徴マップが得られるまで、読み取られ並びに累算される。
【０１１１】
第１の実施形態におけるフィルタチャネル数を拡張することにより多層ニューラルネットワークモデルを学習する学習方法に基づいて本実施形態の適用方法が実装される場合、第３の実施形態における累算処理は、累算された入力特徴マップの位置が学習方法における拡張後の同一チャネルを用いて計算される入力特徴マップの位置と同一であるという条件を満たしてもよい。ここで、同一チャネルの意味は第１の実施形態におけるものと同じであり、拡張前に同じチャネルを拡張することで得られたチャネルを指す。
【０１１２】
例えば、第１の実施形態の学習方法において、ある畳み込み層の入力特徴マップ数が４２であり、フィルタのチャネル数が１６であり、第１の実施形態の方式を採用することにより、４２個のチャネルを含む複製フィルタを得るために、図９に示される方式でフィルタチャネル数が複製されるものとする。チャネルＣ１−１は、複製後に３つの同一チャネルＣ１−１からＣ１−３を得るものとする。４２個の入力特徴マップはチャネル拡張フィルタを用いて畳み込まれる。このとき、位置１、位置１７、及び位置３３の入力特徴マップは、同一のチャネルＣ１−１からＣ１−３に対応しているものと仮定する。第３の実施形態の適用方法では、学習方法における入力特徴マップのものと同じ数及び形状を有するが要素値が異なる４２個の入力特徴マップは、位置順序に従って３つのグループに分割され、第１のグループ及び第２のグループには１６個の入力特徴マップがあり、第３のグループには１０個の入力特徴マップがあり、並びに、フィルタのチャネル数は１６である。入力特徴マップが累算される際、学習方法において同一チャネルＣ１−１からＣ１−３を用いて計算された３つの入力特徴マップの位置がそれぞれ位置１、位置１７、及び位置３３となるため、フィルタのチャネルＣ１−１を用いる計算が行われる累算された入力特徴マップを得るために、３つのグループからそれぞれ選択される位置１、位置１７、及び位置３３に配置された３つの入力特徴マップが累算される。
【０１１３】
一方では、第３の実施形態に示される適用方法によれば、入力特徴マップが累算され、累算後の入力特徴マップの要素のビット数がより多い（累算前の入力特徴マップのビット数よりも）ため、累算された入力特徴マップは、累算前の入力特徴マップの有用な情報を、情報損失の量が大きいことによる精度低下の問題なく積極的に保持することができ、他方では、第２の実装例の図１０に示される畳み込み処理と比較すると、第３の実施形態に示される畳み込み処理は、計算量を効果的に減らし、及び計算速度を向上させることができる。
【０１１４】
＜第４の例示的な実施形態＞
本開示の第４の例示的な実施形態は、多層ニューラルネットワークモデルの学習装置を説明し、それは本開示の第１の例示的な実施形態における学習方法と同じ発明概念を有する装置である。図１５に示されるように、この学習装置は、拡張部３１と、順伝播部３２と、逆伝播部３３とを備える。具体的には、拡張部３１は、学習される多層ニューラルネットワークモデルにおける少なくとも１つの畳み込み層のフィルタチャネル数を予め拡張するために使用され、順伝播部３２は、学習用データに基づいてチャネル数拡張フィルタを使用することにより畳み込み層のデータ計算を行うために使用され、逆伝播部３３は、チャネル数を拡張した後のチャネルにおける同一チャネル上の重みの勾配値に従って、チャネル数を拡張する前のチャネル上の重みの勾配値を更新するために使用される。ネットワークモデルの学習が実装され、ここで、同一チャネルは、拡張前の同じチャネルを拡張することによって得られる。
【０１１５】
好ましくは、拡張部３１は、フィルタのチャネルを複製することによってフィルタのチャネル数を拡張する。
【０１１６】
好ましくは、逆伝播部３３は、同一チャネル上の各重みの勾配値を決定し、同一チャネル上の同じ位置における重みの勾配値を平均し、勾配値が更新されることになる数拡張前のチャネル上の重みの位置における勾配値として勾配平均値を用いる。
【０１１７】
＜第５の例示的な実施形態＞
本開示の第５の例示的な実施形態は、多層ニューラルネットワークモデルの適用装置を説明し、それは本開示の第２の例示的な実施形態における適用方法と同じ発明概念を有する装置である。図１６に示されるように、この適用装置は、拡張部４１と、順伝播部４２と、出力部４３とを有する。具体的には、拡張部４１は、多層ニューラルネットワークモデルにおける少なくとも１つの畳み込み層のフィルタチャネル数を予め拡張し、順伝播部４２は、タスク要求に対応するデータに基づいてチャネル数拡張フィルタを使用することにより畳み込み層のデータ計算を行い、出力部４３は順伝播を行った後に適用結果を出力する。
【０１１８】
好ましくは、拡張部４１は、フィルタのチャネルを複製することによりフィルタのチャネル数を拡張する。
【０１１９】
＜第６の例示的な実施形態＞
本開示の第６の例示的な実施形態は、本開示の第３の例示的な実施形態における適用方法と同じ発明概念を有する装置である多層ニューラルネットワークモデルの適用装置を説明する。図１７に示されるように、適用装置は、累算部５１と、計算部５２と、出力部５３とを備えている。具体的には、累算部５１は、順伝播中に少なくとも１つの畳み込み層について畳み込み層の複数の入力特徴マップを累算するために使用され、計算部５２は、畳み込み層の累算された入力特徴マップ及びフィルタを使用することにより畳み込み層の畳み込み計算を行い、出力部５３は、順伝播を完了した後に適用結果を出力する。
【０１２０】
好ましくは、グループの入力特徴マップ数が畳み込み層のフィルタのチャネル数に等しく、多くとも１つのグループの入力特徴マップ数がフィルタのチャネル数よりも小さくなるように、複数の入力特徴マップをグループ化するために、並びに、フィルタのチャネル数と数が等しい累算された入力特徴マップを得るために各グループの入力特徴マップを累算するために、累算部５１が使用される。
【０１２１】
好ましくは、本方法を適用する前の多層ニューラルネットワークモデルの学習方法において、フィルタのチャネル数を拡張することによって、拡張されたチャネル数を有するフィルタと入力特徴マップとを用いた計算を行う場合に、累算部５１は、以下の条件を満たす各グループにおける入力特徴マップを累算するために使用される。すなわち、以下の条件とは、複数の入力特徴マップにおいて累算された入力特徴マップの位置が、この学習方法において拡張された同一チャネルを用いた計算が行われる入力特徴マップの位置と同じであり、同一チャネルが拡張前の同じチャネルを拡張することによって得られることである。
【０１２２】
他の実施形態
本発明の実施形態は１つ又は複数の上述の実施形態の機能を実行するために、記憶媒体に記録されたコンピュータ実行可能命令を読み出し、実行するシステム又は装置のコンピュータ（これはより完全に非一時的コンピュータ可読記憶媒体とも呼ばれる）によって実現され、かつ／又は１つ又は複数の上述の実施形態の機能を実行するために使用される１つ又は複数の回路（特定用途向け集積回路（ＡＳＩＣ）など）を含み、かつ／又は例えば、１つ又は複数の上述の実施形態の機能を実行するために記憶媒体からコンピュータ実行可能命令を読み出し、実行し、かつ／又は１つ又は複数の上述の実施形態の機能を実行するために１つ又は複数の回路を制御することによって、システム又は装置のコンピュータによって実行される方法によって実現されることも可能である。このコンピュータは、コンピュータ実行可能命令を読み出し及び実行するために、中央処理装置（ＣＰＵ）、マイクロ処理装置（ＭＰＵ）のような１つ以上のプロセッサを備えていてもよく、別個のコンピュータ又は別個のプロセッサのネットワークを含んでいてもよい。コンピュータ実行可能命令は、例えば、ネットワーク又は記憶媒体からコンピュータに提供されてもよい。この記憶媒体は、例えば、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、分散計算システムのストレージ、光ディスク（コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、又はブルーレイディスク（ＢＤ）（商標）のような）、フラッシュメモリデバイス、メモリカードなどのうちの１つ以上を含んでいてもよい。また、本発明の実施形態は、上述の実施形態の機能を実行するソフトウェア（プログラム）を、ネットワーク若しくは各種記憶媒体を介してシステム又は装置に提供し、並びに、そのシステム若しくは装置のコンピュータ又は中央処理装置（ＣＰＵ）及びマイクロ処理部（ＭＰＵ）によって、そのプログラムを読み出し及び実行することによっても実装され得る。本発明は例示的な実施形態を参照して説明されてきたが、本発明は開示された例示的な実施形態に限定されないことを理解されたい。以下の特許請求の範囲は、そのようなすべての修正及び同等の構造及び機能を包含するように、最も広い解釈を与えられるべきである。
【図１】
2020109647.tif 000010
【図２】
2020109647.tif 000011
【図３（ａ）】
2020109647.tif 000012
【図３（ｂ）】
2020109647.tif 000013
【図４（ａ）】
2020109647.tif 000014
【図４（ｂ）】
2020109647.tif 000015
【図４（ｃ）】
2020109647.tif 000016
【図５】
2020109647.tif 000017
【図６】
2020109647.tif 000018
【図７】
2020109647.tif 000019
【図８】
2020109647.tif 000020
【図９】
2020109647.tif 000021
【図１０】
2020109647.tif 000022
【図１１】
2020109647.tif 000023
【図１２】
2020109647.tif 000024
【図１３】
2020109647.tif 000025
【図１４】
2020109647.tif 000026
【図１５】
2020109647.tif 000027
【図１６】
2020109647.tif 000028
【図１７】
2020109647.tif 000029