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