(57)【要約】【課題】簡略化に有利なニューラルネットワークのパラメータを適応させる方法を提供する。【解決手段】ニューラルネットワークのパラメータを適応させる方法は、ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータについて、一以上の次元を選択し、重みパラメータの一以上の次元における各次元のディメンション値及び対応する目標値を決定し、重みパラメータの一以上の次元のうちの少なくとも一つの次元におけるディメンション値が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの一以上の次元における次元ごとのディメンション値が対応する目標値に等しくなるように、少なくとも一つの次元において重みパラメータをパディングする。【選択図】図１
2019061664.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークのパラメータを適応させる方法であって、
前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータについて、一または複数の次元を選択するステップと、
前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値および対応する目標値を決定するステップと、
前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が対応する目標値に等しくなるように、前記少なくとも一つの次元において重みパラメータに対してパディングするステップと
を含むニューラルネットワークのパラメータを適応させる方法。
【請求項２】
前記一または複数の次元は、幅、高さ、深さ、および数量のうちの少なくとも一つを含む請求項１に記載の方法。
【請求項３】
前記一または複数の次元は第１次元を含み、前記重みパラメータの前記第１次元における対応する目標値は、前記第１次元に関連付けられた候補値の集合のサブセットに基づいて決定され、前記サブセットにおける候補値のそれぞれは、前記重みパラメータの第１次元のディメンション値より大きいまたはそれに等しい請求項１または２に記載の方法。
【請求項４】
前記重みパラメータの前記第１次元における対応する目標値は、前記サブセットにおける最小の候補値である請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記第１次元は深さまたは数量を含み、前記集合は第１パラメータと第２パラメータとの一以上の公倍数を含み、前記第１パラメータと前記第２パラメータはハードウェアパラメータに基づいて予め定められている請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記一または複数の次元は、第１次元と、少なくとも一つの第２次元とを含み、
前記重みパラメータの前記第１次元と前記少なくとも一つの第２次元における対応する目標値は、候補値配列の集合のサブセットに基づいて決定され、
前記集合における前記候補値配列のぞれぞれは、前記第１次元に対応する第１候補値と、前記少なくとも一つの第２次元にそれぞれ対応する少なくとも一つの第２候補値とを含み、
前記サブセットにおける各候補値配列のうちの候補値のそれぞれは、前記重みパラメータの対応する次元におけるディメンション値より大きいまたはそれに等しい請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記重みパラメータの前記第１次元における対応する目標値は、前記サブセットに基づいて定められた最小の第１候補値である請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記重みパラメータの前記第１次元と前記少なくとも一つの第２次元における対応する目標値は、それぞれ、前記サブセットの第１候補値配列における対応する候補値であり、前記第１候補値配列のすべての候補値の積は、前記サブセットにおける他の候補値配列のうちのすべての候補値の積より小さい請求項１乃至７のいずれかに記載の方法。
【請求項９】
前記第１次元は、幅、または高さ、または深さを含み、ハードウェアパラメータに基づいて予め定められた、前記重みパラメータの前記第１次元の前記少なくとも一つの第２次元における対応する目標値のそれぞれの組み合わせに対し、前記集合は一以上の対応する候補値配列を含む請求項１乃至８のいずれかに記載の方法。
【請求項１０】
前記少なくとも一つの次元における次元のそれぞれに対して、前記次元に対応するパディングモードを決定し、前記パディングモードは、前記次元において、前記重みパラメータに対してパディングする一以上のパディング位置、パディングの量及びパディングの値を設定する規則のうちの少なくとも一つを示す請求項１乃至９のいずれかに記載の方法。
【請求項１１】
前記一または複数の次元は、幅、高さ、深さ及び数量のうちの少なくとも一つを含み、
前記幅に対応するパディングモードが示す情報は、幅の方向の左側及び／または右側及び／または中央の一以上の位置において、一列または複数列パディングすることを含み、
前記高さに対応するパディングモードが示す情報は、高さの方向の上方及び／または下方及び／または中央の一以上の位置において、一行または複数行パディングすることを含み、
前記深さに対応するパディングモードが示す情報は、深さの方向の前方及び／または後方及び／または中央の一つまたは複数の位置において、一行または複数行パディングすることを含み、
前記数量に対応するパディングモードが示す情報は、前記重みパラメータのシーケンスの方向の前及び／または後及び／または中央の一以上の位置において、一以上のパディング値をパディングすることを含む請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
前記少なくとも一つの次元が幅および／または高さおよび／または深さを含む場合、前記重みパラメータの属する層の特徴データに対して、対応する幅および／または高さおよび／または深さにおいてパディングすることを含む請求項１乃至１１のいずれかに記載の方法。
【請求項１３】
前記特徴データがパディングされる次元ごとのパディング位置およびパディング量は、前記重みパラメータの対応する次元におけるパディング位置およびパディング量とそれぞれ同じである請求項１乃至１２のいずれかに記載の方法。
【請求項１４】
前記ニューラルネットワークは畳み込みニューラルネットワークである請求項１乃至１３のいずれかに記載の方法。
【請求項１５】
ニューラルネットワークのパラメータを適応させるための装置であって、
前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータに対して選択された一または複数の次元について、前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値および対応する目標値を決定するように構成された検出器と、
前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が対応する目標値に等しくなるように、前記一または複数の次元において前記重みパラメータについてパディングするように構成されたパッダーと
を具備するニューラルネットワークのパラメータを適応させるための装置。
【請求項１６】
一以上のプロセッサによって、前記請求項１乃至１４のいずれかに記載の方法が実行されるように構成されるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、発明の名称が「ニューラルネットワークのパラメータを適応させるための方法および装置」である中国特許出願第２０１７１０８７４１９８．X号（２０１７年９月２５日付け出願された）基礎として、優先権を主張し、その内容は、参照により本明細書に組み込まれる。
【０００２】
本開示は、人工ニューラルネットワークの技術分野に関し、具体的には、人工ニューラルネットワークのパラメータを適応させるための方法および装置に関する。
【背景技術】
【０００３】
人工ニューラルネットワーク（以下「ニューラルネットワーク」という）は、生体ニューラルネットワークの行動特性を模倣して分散並列情報処理を行うアルゴリズム数学モデルである。このようなネットワークは、システムの複雑さに依存し、内部の多くのノード間の相互接続を調整することによって情報処理の目的を達成している。
【０００４】
通常のニューラルネットワークでは、一または複数（以下「一以上」という）のニューロンが互いに接続されて多層構造が形成される。各層における各ニューロンは、該層における各特徴データ（「入力データ」または「特徴マップ」とも称される）に対して、対応する一以上の重みパラメータを用いて、特定の活性化関数に基づいて計算を実行し、活性化値を得て、ニューラルネットワークの出力結果または次の層の特徴データとする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
異なる応用場面に対して、往々にして、異なるニューラルネットワークのアーキテクチャを設計することが要求され、所定種類のコンピューティングアーキテクチャにおいて一連の演算を行うことにより実現する必要がある。従って、ニューラルネットワークが効率的に表現されることが望まれ、かつ低いハードウェアコストによって、ニューラルネットワークにおける演算が効率的に実現することができ、またはシミュレーションによって、ニューラルネットワークにおける演算が、コンピューティングアーキテクチャによってサポートされた演算に効率的にマッピングされることが望まれている。
【課題を解決するための手段】
【０００６】
本開示は、ニューラルネットワークのパラメータを適応させる方法を提供する。該方法は、前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータについて、一または複数の次元を選択するステップと、前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値および対応する目標値を決定するステップと、前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値（dimension value）が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が対応する目標値に等しくなるように、前記少なくとも一つの次元において重みパラメータについてパディングするステップとを含む。
【０００７】
本開示は、ニューラルネットワークのパラメータを適応させる装置をさらに提供する。該装置は、上記方法を実行するように構成される一以上のプロセッサを具備する。
【０００８】
本開示は、ニューラルネットワークのパラメータを適応させる装置をさらに提供する。該装置は、前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータに対して選択された一または複数の次元について、前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値および対応する目標値を決定するように構成された検出器と、前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が対応する目標値に等しくなるように、前記一または複数の次元において前記重みパラメータについてパディングするように構成されたパッダー（padder）とを具備する。
【０００９】
本開示は、上記方法の実行のためのプログラム指令が格納された非一時的記憶媒体をさらに提供する。
本開示は、一以上のプロセッサによって、前記方法が実行されるように構成されるコンピュータプログラムをさらに提供する。
【発明の効果】
【００１０】
本開示の例示方法及び装置は、規範化された形式を有するニューラルネットワークのパラメータを得ることができ、ニューラルネットワーク及び関連のハードウェアの設計および実装を簡略化することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本開示の実施形態に係るニューラルネットワークのパラメータを適応させる例示方法を示す。
【図２】図２は、本開示の実施形態に係る重みパラメータ及び特徴データの次元の例を示す。
【図３】図３は、本開示の実施形態に係る数量の次元において重みパラメータに対してパディングする例を示す。
【図４】図４は、本開示の実施形態に係る幅および／または高さの次元において重みパラメータに対してパディングする例を示す。
【図５】図５は、本開示の実施形態に係る幅および／または高さの次元において重みパラメータに対してパディングする例を示す。
【図６】図６は、本開示の実施形態に係る幅および／または高さの次元において重みパラメータに対してパディングする例を示す。
【図７】図７は、本開示の実施形態に係る深さの次元において重みパラメータに対してパディングする例を示す。
【図８】図８は、本開示の実施形態に係るニューラルネットワークのパラメータを適応させる例示装置のブロック図を示す。
【図９】図９は、本開示の実施形態に係るニューラルネットワークのパラメータを適応させる例示装置のブロック図を示す。
【発明を実施するための形態】
【００１２】
以下の記載において、添付図面を参照しつつ、本開示に係る例示的な実施形態を述べる。
【００１３】
異なる応用場面および処理目標に基づいて、ニューラルネットワークの異なる層の特徴データおよび／または重みパラメータは、異なる形式および／または数量を有することができる。本明細書において、ニューラルネットワークの種類およびニューラルネットワークの層におけるキーとなる演算に依存し、重みパラメータは、該層のキーとなる演算に関連するキーとなるパラメータを含む。例えば、畳み込みニューラルネットワークの畳み込み層の場合、キーとなる演算は畳み込み演算とすることができ、かつ重みパラメータは一以上の畳み込みカーネルを含むことができる。
【００１４】
前記キーとなる演算及び重みパラメータの種類および／または視点または前記特徴に基づいて、一または複数の次元を決定または選択することができる。例えば、対応する重みパラメータが一以上の値である場合、重みパラメータは、少なくとも次のような次元の数量を有することができる。対応する重みパラメータが一以上の一次元データ（例えば、一以上の値を含む一次元配列）である場合、重みパラメータは、少なくとも幅（例えば、一次元配列におけるデータの数量）及び数量（例えば、一次元配列の数量）のような次元を有することができる。対応する重みパラメータが一以上の二次元データ（例えば、行列）である場合、重みパラメータは、少なくとも幅（例えば、行列の列の数）、高さ（例えば、行列の行の数）及び数量のような次元を有することができる。対応する重みパラメータが一以上の三次元データ（例えば、立方体）である場合、重みパラメータは、少なくとも幅、高さ、深さおよび数量の次元を有することができる。同様に、層ごとの特徴データは、一または複数の次元（例えば、幅、高さ、深さおよび数量）を有することができる。また、必要に応じて、ニューラルネットワークの所定の層の特徴データおよび／または重みパラメータについて、他の種類および数量の次元を考慮してもよいが、上記の例示に限定されることはない。
【００１５】
例えば、設計の複雑さおよびコストなどへの考慮から、ニューラルネットワークにおける演算をサポートするためのハードウェア（専用アクセラレータ、アキュムレータ、およびアキュムレータとの間の配線など）は、所定の形式および／または数量しか直接処理できない重みパラメータおよび／または特徴データであってもよく、または所定の形式および／または数量の重みパラメータおよび/または特徴データの場合にのみ、比較的良好な処理性能を有するとしてもよい。したがって、特徴データおよび／または重みパラメータに対してパディングして、規範化された形式および／または数量の特徴データおよび／または重みパラメータを得ることは、ハードウェア設計を簡素化し、コストを節約し、処理効率を向上させるなどのために有利である。
【００１６】
図１は、本開示の実施形態に係るニューラルネットワークのパラメータを適合させるための例示方法１００を示す。
図１に示すように、ニューラルネットワークの少なくとも一の層における未処理層の重みパラメータに対し、ステップ１１０において、一または複数の次元を選択する。
【００１７】
ステップ１２０において、該重みパラメータの選択された一または複数の次元における次元ごとのディメンション値および対応する目標値を決定する。
【００１８】
ステップ１３０において、各次元に対して、該重みパラメータの該次元におけるディメンション値および対応する目標値を比較する。該重みパラメータの少なくとも一つの次元におけるディメンション値が対応する目標値より小さい場合、方法１００はステップ１４０に進む。そうでなければ、方法１００はステップ１１０に返し、次の未処理層の重みパラメータの処理を続行する。
【００１９】
ステップ１４０において、パディング後に得られた重みパラメータが選択された一または複数の次元における次元ごとのディメンション値がいずれも対応する目標値に等しくなるように、ステップ１３０における比較結果に基づいて決定された各次元において、重みパラメータに対してパディングする。次に、方法１００はステップ１１０に返し、次の未処理層の重みパラメータの処理を続行する。
【００２０】
以下の記載において、畳み込みニューラルネットワークを例として、本開示に係る実施形態による方法をより詳細に説明する。ただし、本開示の原理は、畳み込みニューラルネットワークに限定されることはなく、他の種類のニューラルネットワークにも適用することができる。
【００２１】
図２に畳み込みニューラルネットワークにおける特徴データおよび重みパラメータの次元の例を示す。図２に示すように、特徴データは、少なくとも幅、高さ、深さ（またはチャネル数）、および数量（図示せず）などのような次元を有してもよい。図２に示すように、重みパラメータは、同じ形状およびサイズを有する一以上の畳み込みカーネルであってもよく、かつ少なくとも幅（畳み込みカーネルごとの幅）、高さ（畳み込みカーネルごとの高さ）、深さの次元（畳み込みカーネルごとの深度またはチャネルの数）および数量（畳み込みカーネルごとの数）のような次元を有してもよい。
【００２２】
図２に示す重みパラメータの一例について、例えば、例示方法１００は、ステップ１１０において、幅、高さ、深さ、および数量のうちの一つまたは複数を、さらなる処理をする次元として選択することができる。
【００２３】
一実施形態において、例示方法１００のステップ１１０において選択された一または複数の次元における部分または全部の対応する目標値は、独立して決定してもよい。
【００２４】
例えば、ニューラルネットワークにおける乗算、加算の演算をサポートするハードウェア回路において、一以上のグループの乗算器および加算器の配置を含んでもよく、各グループの乗算器および加算器の配置において、一以上の乗算器および一以上の加算器を含むことができる。各グループの乗算器および加算器の配置に基づいて、重みパラメータの深さ値がＡである場合、乗算器および加算器の使用率が最も高い（または比較的に高い）と判定し、例えば、選択／イネーブル装置（enabling appliance）の設計／配置を省略することができる場合、重みパラメータの深さにおける目標値を、Ａの所定の倍数と決定してもよく、該倍数は重みパラメータの深さのディメンション値より大きいまたはそれに等しい。
【００２５】
例えば、Ａ＝３とする場合、現在のニューラルネットワークについて、重みパラメータの深さにおける目標値の候補値の集合は、｛ｘ|ｘ＝ｎ×Ａ、ｎは正の整数｝である。現在の層の重みパラメータの深さのディメンション値が５とする場合、該重みパラメータの深さにおける目標値を、前記候補値の集合における５以上の所定値と決定し、例えば、６、９または１２などと決定してもよい。例えば、候補値の集合のサブセット｛ｘ|ｘ＝ｎ×Ａ、ｎは５以上の正の整数である｝から最小値（すなわち、６）を目標値として選択してもよい。
【００２６】
別の実施形態において、ニューラルネットワークに基づくアーキテクチャおよび／またはニューラルネットワークをサポートするハードウェアの設計に基づいて、重みパラメータの深さにおける目標値は、集合｛３，５，７，９，１２，２５６，１０２４，……｝のうちの所定の値になるべきと決定し、例えば、重みパラメータの深さが集合における所定の値である場合、余分の処理を低減することができ、またはハードウェアの処理性能がより良好になる場合、重みパラメータの深さにおける目標値を、該集合における５より大きいまたは５である所定の値、例えば、５，７，９，１２，２５６，１０２４などと決定してもよい。
【００２７】
例えば、これらの候補値から最も小さい値である５を目標値として選択してもよく、この場合、ディメンション値は目標値に等しいので、深さにおいて該重みパラメータに対してパディングする必要はない。別の実施形態において、例えば、７を目標値として選択してもよく、この場合、ディメンション値が目標値よりも小さいので、深さにおいて該重みパラメータに対してパディングする必要がある。
【００２８】
別の実施形態において、各グループの乗算器および加算器の配置またはニューラルネットワークのアーキテクチャの設計などに基づいて、重みパラメータの数量がＢである場合、乗算器および加算器の使用率が最も高く（または比較的高く）、例えば、選択／イネーブル装置（enabling appliance）の設計／配置を省略することができる場合、重みパラメータの数量の目標値を、Ｂの所定の倍数として決定することができ、該倍数は重みパラメータの数量におけるディメンション値より大きいまたはそれに等しい。
【００２９】
例えば、Ｂ＝５とする場合、現在のニューラルネットワークについて、重みパラメータの数量における目標値の候補値の集合は、｛ｙ|ｙ＝ｎ×Ｂ、ｎは正の整数｝である。現在の層の重みパラメータの数量におけるディメンション値が８とすると、該重みパラメータの数量における目標値を、前記候補値の集合のうち８以上（８であるまたは８より大きい）の所定の値、例えば、１０、１５または２０などと決定することができる。
例えば、候補値の集合のサブセット｛ｙ|ｙ＝ｎ×Ｂ、ｎは５以上の正の整数である｝から最小値１０を目標値として選択してもよい。
【００３０】
別の実施形態において、ニューラルネットワークの積和演算をサポートするハードウェア回路において、一以上のグループの乗算器および加算器の配置を含んでもよく、各グループの乗算器および加算器の配置（例えば、最後のステップの加算の演算を実行するための加算器の数）及びグループ数に基づいて、第１のパラメータＣ及び第２のパラメータＤを決定してもよい。このような場合、重みパラメータの深さまたは数量における目標値の候補値の集合は、Ｃ及びＤの公倍数の集合と決定してもよい。
【００３１】
別の実施形態において、ハードウェアが直接処理することができる重みパラメータの形状またはニューラルネットワークのアーキテクチャの設計などに基づいて、重みパラメータの幅における目標値は、集合｛３，５，６，７，９，１１｝のうちの一つの値になるべきである。
【００３２】
現在の層の重みパラメータの幅が４であるとすると、該重みパラメータの幅における目標値は、前記集合のサブセット｛５，６，７，９，１１｝のうちの一つの値と決定してもよい。例えば、目標値をサブセットにおける最小値５と決定してもよい。
【００３３】
別の実施形態において、例えば、例示方法１００のステップ１１０で選択された一または複数の次元において、部分または全部の次元における対応する目標値は互いに関連付けて決定してもよい。
【００３４】
例えば、ハードウェアが直接処理することができる重みパラメータの幅と高さとの組み合わせが、集合｛（３，３），（３，６），（４，７），（５，５），（７，７）｝のうちの所定の組み合わせであると決定してもよく、該集合を重みパラメータの幅と高さにおける目標値の候補値配列の集合としてもよい。
【００３５】
現在の層の重みパラメータの幅および高さがそれぞれ４および４であるとする場合、重みパラメータの幅および高さにおける対応する目標値を決定するために、前記例示の集合のサブセット｛（４，７），（５，５），（７，７）｝から一つの候補値配列を選択することができる。ここで、該サブセットにおける各候補値配列によって決定された幅および高さにおける対応する目標値が、いずれもそれぞれ該重みパラメータの幅および高さにおけるディメンション値より大きいまたはそれに等しい。
【００３６】
例えば、幅を主要参照次元として選択することができ、上記サブセットから最小幅値を含む候補値配列（４，７）を選択することができ、該候補値配列に基づいて、該重みパラメータの幅および高さにおける対応する目標値を、４及び７とそれぞれ決定してもよい。
【００３７】
別の実施形態において、上記サブセットから候補値配列におけるすべての成分の積が最小である候補値配列（５，５）（ここで、４×７＝２８、５×５＝２５、７×７＝４９、候補値配列（５，５）におけるすべての成分の積が最小である）を選択することができ、該候補値配列に基づいて、該重みパラメータの幅および高さにおける対応する目標値を、それぞれ５及び５と決定する。これは、パディングされた重みパラメータの幅および高さの二次元における「面積」が最小になり、かつ元の重みパラメータを完全に「カバー」することができることに相当する。
【００３８】
別の実施形態において、ニューラルネットワークベースのアーキテクチャの設計および／またはハードウェアパラメータに基づいて、重みパラメータの幅、高さ、および深さにおける目標値の組み合わせが、集合｛（３，３，３）、（３，６，６），（４，７，６），（５，５，５），（７，７，７）｝のうちの所定の組み合わせであると決定する。現在の層の重みパラメータの幅、高さおよび深さがそれぞれ４，４および４であるとする場合、重みパラメータの幅、高さ、および深さにおける対応する目標値を決定するために、上記例示のサブセット｛（４，７，６），（５，５，５），（７，７，７）｝から一つの候補値配列を選択することができる。ここで、該サブセットにおける各候補値配列に基づいて決定された重みパラメータの幅、高さ、および深さにおける対応する目標値が、いずれも、ぞれぞれ、該重みパラメータの幅、高さ、および深さにおけるディメンション値より大きいまたはそれに等しい。
【００３９】
例えば、幅を主要参照次元として選択することができ、上記サブセットから最小幅値を含む候補値配列（４，７，６）を選択することができ、該候補値配列に基づいて、該重みパラメータの幅、高さおよび深さにおける対応する目標値を、４、７及び６とそれぞれ決定することができる。
【００４０】
別の実施形態において、上記サブセットから候補値配列におけるすべての成分の積が最小である候補値配列（５，５，５）（ここで、４×７×６＝１６８，５×５×５＝１２５，７×７×７＝３４３、候補値配列（５，５，５）におけるすべての成分の積が最小である）を選択することができ、該候補値配列に基づいて、該重みパラメータの幅、高さおよび深さにおける対応する目標値を、それぞれ５、５及び５と決定する。これはパディングされた重みパラメータの幅、高さおよび深さの三次元における「体積」が最小になり、かつ元の重みパラメータを完全に「囲い込む」ことができることに相当する。
【００４１】
別の実施形態によると、例えば、例示方法１００のステップ１１０において選択された一または複数の次元において、部分次元における対応する目標値は互いに対応付けて決定してもよく、他の部分次元の各次元における対応する目標値は独立して決定してもよい。
【００４２】
一実施形態によれると、方法１００は、ステップ１１０で選択された一または複数の次元の次元のそれぞれについて、またはステップ１３０で決定された少なくとも一つの次元のそれぞれについて、該次元に対応するパディングモードを決定することをさらに含むことができる。ここで、決定されたパディングモードは、該次元における重みパラメータに対してパディングする一以上のパディング位置、パディング量及びパディン値を設定する規則のうちの少なくとも一つを示す。
【００４３】
例えば、幅に対応するパディングモードによって示される情報は、幅方向の左側及び／又は右側及び／又は中央を含む一以上の位置に一列または複数列パディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングする列の数とすることができる。
【００４４】
例えば、高さに対応するパディングモードによって示される情報は、高さ方向の上方及び／又は下方及び／又は中央を含む一以上の位置に一行または複数行パディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングする行の数とすることができる。
【００４５】
例えば、深さに対応するパディングモードによって示される情報は、深さ方向の前方及び／又は後方及び／又は中央を含む一以上の位置に一行または複数行パディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングする行の数とすることができる。
【００４６】
例えば、数量に対応するパディングモードによって示される情報は、重みパレメータの系列の前及び／又は後及び／又は中央を含む一以上の位置に一以上のパディング値をパディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングするパディング値の数量とすることができる。
【００４７】
一の実施形態によると、ゼロ値を用いて重みパラメータに対してパディングしてもよい。異なる実施形態によると、パディング値を設定する規則も、予め定義された非ゼロ値を用いてパディングし、パディングする位置に隣接する位置の値を用いてパディングすることなどを含むことができるが、これらには限定されない。
【００４８】
本明細書において、ゼロ値は、数値的にゼロに等しい値、またはすべての成分の値がいずれも０の配列、タプル、行列、立方体など、またはゼロに等しいとみなすことができる他の形式の値であってもよい。対応して、非ゼロ値は、数値的にゼロに等しくない値、または部分若しくは全部の成分の値が０ではない配列、タプル、行列、立方体など、またはゼロに等しいとみなすことができない他の形式の値であってもよい。
【００４９】
一の実施形態によると、ニューラルネットワークの所定の層における重みパラメータのサイズおよび形状が、パディングの後に変更または重みパラメータのサイズおよび形状の変更が発生することが特定できる場合、方法１００は、例えば、幅および／または高さおよび／または深さなどのような重みパラメータのサイズおよび形状を変更させる次元において重みパラメータに対してパディングした後、または重みパラメータに対して、幅および／または高さおよび／または深さなどのような重みパラメータのサイズおよび形状を変更させる次元において重みパラメータに対してパディングすると決定した場合、該層の特徴データに対して、重みパラメータのサイズおよび形状を変更させる次元（例えば、幅及び／又は高さ及び／又は深さ）において、パディングすることをさらに含むことができる。
【００５０】
例えば、重みパラメータが幅においてパディングされた場合、対応する特徴データも幅においてパディングしてもよい。
【００５１】
一の実施形態において、特徴データがパディングされる各次元におけるパディング位置及びパディング量は、重みパラメータの対応する次元におけるパディング位置及びパディング量とそれぞれ同じにすることができ、または重みパラメータに対して決定されるパディングモードを用いて、特徴データに対してパディングしてもよい。
【００５２】
異なる実施形態によると、特徴データのパディング値を設定する規則は、ゼロ値を用いてパディングし、予め定義された非ゼロ値を用いてパディングし、パディングされる位置に隣接する位置の値を用いてパディングし、乱数または任意値を用いてパディングするなどを含むことができるが、これらには限定されない。
【００５３】
しかし、図１に示す方法１００も単なる例示である。別の実施形態において、ステップ１１０において、次元ごとの対応する目標値を決定してもよく、または目標値の決定を単独のステップとしてもよい。例えば、パディングモードを決定する任意のステップは、重みパラメータおよび／または特徴データをパディングする前の任意の段階に配置してもよい。例えば、特徴データに対するパディングおよび重みパラメータのパディングは、並行して実行してもよい。
【００５４】
図３は、本開示の実施形態に係る方法を使用して、畳み込みニューラルネットワークにおける重みパラメータの数量の次元におけるパディングの例を示す。
図３に示す実施形態において、ニューラルネットワークの設計アーキテクチャ（例えば、ニューラルネットワークのアルゴリズム設計者によって特定のアプリケーションおよび目標に基づいて予め定義されている）に基づいて、所定の層における特徴データ３００に対して、予め３つの畳み込みカーネルを設定する。すなわち、畳み込みカーネル３０１、畳み込みカーネル３０２、及び畳み込みカーネル３０３。したがって、図３に示された実施形態において、重みパラメータの数量における次元のディメンション値は３である。
【００５５】
例えば、ニューラルネットワークの計算をサポートするハードウェア関連のパラメータに基づいて、例えば５つの畳み込みカーネルを設計した場合、ソフトウェアおよび／またはハードウェアのコストおよび性能は比較的良好であると判断され、例えば、加算器の選択／イネーブル装置の設計を省略することができる場合、または比較的良好な処理の並列性を取得できる場合、または次の所定の層でプーリング処理を行うと決定してハードウェアが対応するプーリング層（pooling layer）における特徴データのチャネル数が５である場合に最良または比較的良好な処理性（例えば、並行度）を得ることができると判断された場合である。したがって、重みパラメータの数量における次元の目標値は５と決定してもよい。
【００５６】
重みパラメータの数量における次元のディメンション値（すなわち、３）は、対応する目標値（すなわち、５）より小さいため、重みパラメータに対して数量においてパディングすることができる。
【００５７】
図３に示された実施形態において、畳み込みカーネル３０１、畳み込みカーネル３０２、及び畳み込みカーネル３０３に基づいて、畳み込みカーネル３０１〜３０３のそれぞれと同じサイズおよび形状（すなわち、幅、高さ及び深さにおいて、それぞれ完全に同じ）を有する２つの畳み込みカーネルを追加することができ、すなわち、畳み込みカーネル３０４及び畳み込みカーネル３０５（図３の点線で示される）を追加することができる。これにより、パディング後の畳み込みカーネルの総数が５になり、決定された目標値と同じになる。
【００５８】
一の実施形態において、パディング用の畳み込みカーネル３０４と畳み込みカーネル３０５とは同じであってもよい。言い換えると、一以上の同じ畳み込みカーネルを用いて、数量の次元におけるパディングをしてもよい。
【００５９】
別の実施形態において、必要に応じて、異なる値を含む一以上の畳み込みカーネルを選択して、数量の次元におけるパディングをすることができ、選択されたすべてのパディング用畳み込みカーネル（例えば、図３における畳み込みカーネル３０４及び３０５）を、オリジナル設定された畳み込みカーネル（例えば、図３の畳み込みカーネル３０１，３０２、及び３０３）と同じ形状およびサイズにすることができ、すなわち、すべての畳み込みカーネル（図３における畳み込みカーネル３０１〜３０５を含む）が、少なくとも同じ幅、同じ高さおよび同じ深さを有する。
【００６０】
一の実施形態において、パディングのための畳み込みカーネル３０４及び畳み込みカーネル３０５は、いずれもゼロ値に相当する畳み込みカーネルであってもよい。すなわち、畳み込みカーネル３０４及び３０５に含まれたすべての成分の値がいずれもゼロである。
【００６１】
別の実施形態において、畳み込みカーネル３０４及び畳み込みカーネル３０５は、予め定義された（例えば、ニューラルネットワークの設計段階で設計者によって予め定義された）一セットのテンプレートデータ（ゼロ値および／または非ゼロを含めてもよい）から選択することができ、または予め定義されたパディング用畳み込みカーネルの生成規則に基づいて、例えば、一以上の所定の定義された値（非ゼロ値であってもよい）を用いて生成することができる。
【００６２】
図３に示された実施形態について、畳み込みカーネル３０４及び３０５は、畳み込みカーネル３０３の下方にパディングされ、または畳み込みカーネル３０４及び３０５が、畳み込みカーネル３０１、畳み込みカーネル３０２、及び畳み込みカーネル３０３を含む順番付けられたシーケンスの尾部にパディングされてもよい。
【００６３】
一の実施形態において、必要に応じて、一以上の別のパディング位置を選択することができる。例えば、畳み込みカーネル３０４及び３０５を、畳み込みカーネル３０１、畳み込みカーネル３０２、および畳み込みカーネル３０３を含む順番付けられたシーケンスの先頭にパディングしてもよく、または畳み込みカーネル３０４を、シーケンスの先頭（すなわち、図３に示す実施形態の畳み込みカーネル３０１の上方）にパディングして畳み込みカーネル３０５が畳み込みカーネル３０２と３０３との間にパディングしてもよく、または畳み込みカーネル３０４を、畳み込みカーネル３０１と３０２との間にパディングして畳み込みカーネル３０５を畳み込みカーネル３０２と３０３との間にパディングしてもよく、または畳み込みカーネル３０４と３０５の両方を畳み込みカーネル３０１と３０２との間にパディングしてもよい。
【００６４】
上述の通り、デフォルトまたは決定されたパディングモードに基づいて数量の次元におけるパディング位置、パディング量及びパディング値を設定する規則を決定することができる。
【００６５】
図４は、本開示に係る実施形態による方法を使用して、畳み込みニューラルネットワークにおける所定の層の重みパラメータを、幅と高さの二次元においてパディングする一例を示す。図４において、各畳み込みカーネルにおける番号１，２、……、１２などは、畳み込みカーネルの数値（または重み値）の相対位置を例示するためだけに用いられるものであり、実際の値を表すものではない。分かりやすくするために、図４には、畳み込み及び特徴データの深さ（チャネル）を示していない。
【００６６】
図４に示す実施形態において、例えば、ニューラルネットワークの設計アーキテクチャに基づいて、特徴データ４００に対して予め設定された畳み込みカーネルごとの（例えば、図４における畳み込みカーネル４０１、畳み込みカーネル４０２、及び畳み込みカーネル４０３）幅と高さはそれぞれ４と３である。
【００６７】
例えば、ニューラルネットワークの計算をサポートするハードウェア関連パラメータに基づいて、ハードウェア（例えば、ニューラルネットワークの専用アクセラレータ）が直接処理できる畳み込みカーネルの幅および高さは、それぞれ５及び５であると決定される。したがって、重みパラメータの数量の幅および高さにおける目標値は、それぞれ５及び５と決定してもよい。
【００６８】
重みパラメータの幅と高さの二つの次元におけるディメンション値はそれぞれ対応する目標値よりも小さいので、重みパラメータに対して、幅と高さの二つの次元においてパディングすることができる。
【００６９】
図４に示された実施形態において、畳み込みカーネル４０１，４０２、及び４０３のそれぞれについて、左側に一列パディングし、下方に２行パディングし（図４において、Ｐを用いてパディングされた行および列を示す）、パディング後に得られた畳み込みカーネル４０１’、４０２’及び４０３’のそれぞれの幅と高さは、それぞれ５と５であり、これで決定された対応する目標値と同じになる。
【００７０】
一の実施形態において、まず、幅にパディングすることができ、すなわち、左側で一列パディングし、得られた幅及び高さがそれぞれ５と３の中間結果で、それから、高さにおいて幅と高さにそれぞれ５と３の中間結果に対してパディングし、すなわち、下方に二行パディングすることによって、最終に幅と高さがそれぞれ５と５であるパディング後の畳み込みカーネルを得る。
【００７１】
別の実施形態において、まず高さでパディングしてから、幅でパディングすることも可能である。
別の実施形態において、幅と高さにおいて同時にパディングすることも可能である。
重みパラメータの幅および／または高さに対してパディングする場合、重みパラメータ（畳み込みカーネルごと）の形状が変更する。
【００７２】
対応して、対応する特徴データ４００について、幅および／または高さにおいて対応するパディングを行うことができ、パディング後の特徴データ４００’が、パディング後の畳み込みカーネル４０１’、４０２’及び４０３’にマッチするようにすることで、ニューラルネットワークが、パディング後の特徴データ４００’を使用し及びパディング後の畳み込みカーネル４０１’、４０２’及び４０３’を使用した場合に、得ることができる最終結果と、オリジナル特徴データ４００を使用し及びオリジナル畳み込みカーネル４０１、４０２及び４０３を使用した場合に得ることができる最終結果と同じになることを確保する。
【００７３】
図４に示された実施形態において、畳み込みカーネル４０１，４０２，４０３のそれぞれについて、左側に一列パディングして下方に二行パディングし、かつ、対応して、特徴データ４００に対し、その左側に一列パディングして下方に二行パディングし、これによってパディング後の畳み込みカーネル４０１’、４０２’及び４０３’及びパディング後の特徴データ４００’が得られる。
【００７４】
一実施形態において、ゼロ値を用いて畳み込みカーネルおよび特徴データの幅および高さにおいてパディングすることができる。例えば、図４に示す例示において、各畳み込みカーネルおよび特徴データの各パディング位置Ｐにおけるパディング値はゼロ値であってもよい。
【００７５】
別の実施形態において、特徴データに対して、一以上の非ゼロ値を用い、または特徴データにおけるパディングされる位置（たとえば、図４の特徴データ４００の最も左の一列及び最下方の一行）に隣接する位置の値を複製してパディングする。
【００７６】
図５に、例えば、図４における特徴データ４００に対して、複製によって得られたパッディング後の特徴データ５００’の実施形態を示す。ここで、パッディングビットＡ、Ｂ、Ｃ、Ｄ及びＥはそれぞれ特徴データ４００における位置Ａ、Ｂ、Ｃ、Ｄ及びＥにおける値をパディング値とする。別の実施形態において、必要に応じて、畳み込みカーネルに対して、他の値（例えば、乱数や任意の値）を使用してパディングすることができる。
【００７７】
図４及び図５に示された実施形態において、畳み込みカーネルおよび／または特徴データごとの左側および下方にパディングを実行する。別の実施形態において、畳み込みカーネルおよび／または特徴データの右側および下方にパディングすることを選択することができ、または畳み込みカーネルおよび／または特徴データの左側または右側および上方にパディングすることを選択することができ、または畳み込みカーネルおよび／または特徴データの左側または右側に一列パディングし、かつ畳み込みカーネルおよび／または特徴データの上方または下方に一行パディングすることを選択することができる。
【００７８】
一実施形態において、畳み込みカーネルに対するパディング方法を、特徴データに対するパディング方法と同じにすることができる。例えば、畳み込みカーネルの右側に一列パディングして上方および下方に一行パディングする場合、特徴データの右側にも一列パディングして上方および下方にも一行パディングする。
【００７９】
上述の通り、デフォルトまたは決定されたパディングモードに基づいて、幅および／または高さの次元におけるパディング位置、パディング量及びパディング値を設定する規則などを決定し、特徴データに対する幅および／または高さの次元におけるパディング位置、パディング量は、重みパラメータの幅および／または高さの次元におけるパディング位置、パディング量とそれぞれ同じであってもよい。
【００８０】
明確のために、図４及び図５には畳み込みおよび／または特徴データの深さ（チャネル）を示していない。実際では、図４及び図５の実施形態は、重みパラメータおよび／または特徴データの各チャネル（または深さ）におけるパディング処理の例示とみなすことができる。
【００８１】
深さを考慮する場合、重量パラメータおよび／または特徴データに対するすべてのチャネル（または深さ）に対し、同じ位置で、同じパディング値を設定する規則に従って、同じパディング量でパディングすることができる。図６は、幅、高さ、深さがそれぞれ３、２及び２である例示の畳み込みカーネルになるように、幅、高さ、深さがいずれも２である例示の畳み込みカーネルを右側に一列パディングする例を示す。
【００８２】
図４及び図５は、幅及び高さの二つの次元において、重量パラメータおよび／または特徴データに対して同時にパディングすること示しているが、図６に示すように、畳み込みカーネルの形状とサイズ、および幅および／または高さにおける対応する目標値との比較結果に基づいて、幅および高さのうちの一つに次元において重量パラメータおよび／または特徴データに対してパディングしてもよい。
【００８３】
図７は、本開示に係る実施形態による方法を使用して、畳み込みニューラルネットワークにおいて所定の層の重みパラメータの深さ（チャネル）におけるパディングの実施形態を示す。
【００８４】
図７に示す実施形態において、ニューラルネットワークの設計アーキテクチャに基づいて、ニューラルネットワークの所定の層チャネル数（深さ）が３である特性データ７００に対し、深さ（またはチャネル）が３であるいくつかの畳み込みカーネル７０１，７０２及び７０３を予め設定する。
【００８５】
例えば、ニューラルネットワークの計算をサポートするハードウェアに関連するパラメータに基づいて、例えば、深さが５である畳み込みカーネルを設計する場合、ハードウェアのコストと性能とが比較的良好であると判定され、例えば、加算器の選択／イネーブル回路の設計が省略でき、または処理において比較的良好な並列性を得ることができ、ハードウェアによって直接処理をすることができるような場合である。したがって、重みパラメータの深さの次元における目標値を５と決定してもよい。
【００８６】
重みパラメータの深さにおけるディメンション値が対応する目標値よりも小さいので、畳み込みカーネルに対して深さにおけるパディングを行うことができる。
【００８７】
図７に示されるように、畳み込みカーネル７０１、７０２及び７０３のそれぞれに対し、二行（図７において、破線で示す。）パディングし、パディング後の得られた畳み込みカーネル７０１’、７０２’及び７０３’のそれぞれの深さがいずれも５にすることにより、決定された対応する目標値と同じになる。
【００８８】
深さにおいて重みパラメータに対してパディングする場合、畳み込みカーネル７０１，７０２，７０３の形状が変わる。対応して、深さにおいて、該層の特徴データ７００に対してパディングし、パディング後の特徴データ７００’が、パディング後の畳み込みカーネル７０１’、７０２’及び７０３’にマッチできるようにし、ニューラルネットワークがパディング後の特徴データ７００’及びパディング後の畳み込みカーネル７０１’、７０２’及び７０３’を使用する場合に得られる最終結果が、オリジナル特徴データおよびオリジナル畳み込みカーネル７０１、７０２及び７０３を使用する場合に得られる最終結果と同じであることが確保される。
【００８９】
図７示された実施形態において、畳み込みカーネル７０１、７０２及び７０３のそれぞれに対して、後方に二行（パディング後の畳み込みカーネルがそれぞれ深さにおいて同じ幅と高さを有する）パディングする。対応して、特徴データ７００の後方に二行（パディング後の特徴データ７００’がそれぞれ深さにおいて同じ幅と高さを有する）パディングしてもよい。これにより、パディング後の畳み込みカーネル７０１’、７０２’及び７０３’及びパディング後の特徴データ７００’を得る。
【００９０】
一の実施形態において、ゼロ値を用いて畳み込みカーネルに対し、深さにおいてパディングすることができる。例えば、図７の畳み込みカーネル７０１’、７０２’、及び７０３’のそれぞれの後方にパディングされた二行のデータはすべてゼロであってもよい。別の実施形態において、必要に応じて、他の値を用いて、畳み込みカーネルに対し、深さにおいてパディングしてもよい。同様に、ゼロ値または他の値を用いて特徴データに対して深さにおいてパディングしてもよい。
【００９１】
図７に示された実施形態において、畳み込みカーネルおよび特徴データごとの後方にパディングする。別の実施形態において、前方に二行パディングすることを選択することができ、または所定の二つの連続するチャネルの間に二行パディングすることができ、またはチャネル１とチャネル２との間に一行パディングしてチャネル２とチャネル３との間に一行パディングすることができ、または所定の二つの連続するチャネルの間に一行パディングして前方または後方に一行パディングしてもよい。
【００９２】
一の実施形態において、畳み込みカーネルに対するパディング方法は、特徴データに対するパディング方法と同じにすることができる。例えば、畳み込みカーネルの前方に一行パディングしてチャネル２とチャネル３との間に一行パディングする場合、特徴データに対しても前方に一行パディングしてチャネル２とチャネル３との間に一行パディングする。
【００９３】
上述したように、デフォルトまたは決定されたパディングモードに基づいて、深さの次元においてパディング位置、パディング量、パディング値を設定する規則などを決定してもよく、特徴データに対する深さの次元におけるパディング位置およびパディング量は、重みパラメータに対して対応する次元におけるパディング位置およびパディング量とそれぞれ同じにしてもよい。
【００９４】
また、特徴データをパディングためのパディング値は、重みパラメータをパディングするためのパディング値によって決定してもよく、または独立して決定してもよい。
【００９５】
図３〜図７に本開示に係る実施形態による方法を使用し、重みパラメータおよび／または特徴データに対して、数量、幅、高さ、および深さなどの次元においてパディングする例を示す。図２〜図７で使用される特徴データおよび重みパラメータの表現は異なっているかもしれないが、これらの特徴データおよび／または重みパラメータの実際の形式が異なることを意味するものではない。
【００９６】
しかし、異なる形式で特徴データおよび／または重みパラメータを示すことは、便宜上および／または強調の目的のためにすぎない。
【００９７】
また、本開示の実施形態に係る方法は、図３〜図７に示される実施形態に限定されるものではなく、畳み込みニューラルネットワークや他の種類のニューラルネットワークにおける所定の層の重みパラメータや特徴データに対して、必要に応じて、重みパラメータおよび／または特徴データは実際に一以上の次元を有することを考慮し、または一以上の次元から重みパラメータおよび／または特徴データを観察し、必要に応じて、本開示の実施形態に係る方法を用いて重みパラメータおよび／または特徴データに対してパディングし、規範化された形式を有する重みパラメータおよび／または特徴データを得る。
【００９８】
例えば、畳み込みニューラルネットワークにおいて存在し得るプーリング層（pooling layer）について、特徴データに対してプーリングカーネル（pooling kernel）（受容野（receptive field）とも呼ばれる）を設けることができ、これまたはこれらのプーリングカーネルを使用し、特徴データの各チャネルに対してそれぞれプーリング処理をする。
【００９９】
対応して、プーリングカーネルを深さのような次元を有するとみなし、かつその深さ値は特徴データのチャネル数（または深さ値）に等しく、かつ必要に応じて、該プーリング層のプーリングカーネルおよび／または特徴データに対し、例えば、深さにおいてパディングしてもよく、例えば、深さにおいてプーリングカーネルおよび／または特徴データを複製してパディングする。
【０１００】
本開示の実施形態に係る方法を使用し、重みパラメータおよび／または特徴データに対してパディングすることによって、規範化された形式の重みパラメータおよび／または特徴データを得ることができ、ニューラルネットワークのアーキテクチャの設計及びニューラルネットワークの演算をサポートする（例えば、専用アクセラレータ、アキュムレータ等）の設計を簡略化することができ、異なる形式の重みパラメータを処理するための余計な処理及び起こり得る誤りを回避することができ、ハードウェアおよび／またはソフトウェアの処理性能（例えば、処理の並列性またはハードウェアの使用率など）などを向上させることができる。
【０１０１】
本開示に係る実施形態による方法（例えば、図１に示された例示方法１００）は、ニューラルネットワークの一以上の層における特徴データおよび重みパラメータの前処理のために使用されてもよい。例えば、ニューラルネットワークのアーキテクチャにおけるコンパイラ層（compiler layer）によってハードウェア層にデータおよび指令を提出する前に、ニューラルネットワークの一以上の層における特徴データおよび重みパラメータに対して、本開示に係る実施形態による方法を使用して、チェック及びパディングしてもよい。
【０１０２】
ニューラルネットワークにおける一以上の層の層ごとの演算の前に、本開示に係る実施形態による方法を使用して、該層の特徴データ及び重みパラメータに対してチェック及びパディングすることができる。
以上の記載では、畳み込みニューラルネットワークを例示として、本開示に係るニューラルネットワークのパラメータを適応させる方法の原理を述べたが、本開示の原理は、他の種類のニューラルネットワークにも適用することができる。
【０１０３】
例えば、重みパラメータが一以上の単一値データである場合、図１に示された例示方法１００を使用することができ、かつ図３に示された実施形態を参照して、数量において重みパラメータに対してパディングしてもよい。
【０１０４】
例えば、重みパラメータが一つまたは複数の二次元データである場合、図１に示された例示方法１００を使用することができ、図４及び図５に示された実施形態を参照して、二次元データの二つの次元において重みパラメータに対してパディングする。対応して、必要に応じて及びニューラルネットワークの種類に応じて、重みパラメータの対応する次元における目標値の決定方法およびパディング方法を決定してもよい。
【０１０５】
図８は、本開示に係る実施形態によるニューラルネットワークのパラメータを適応させるために使用することができる装置のブロック図を示す。
図８に示すように、例示装置８００は、一以上のプロセッサ８１０を含むことができる。プロセッサ８１０は、汎用ＣＰＵ、ＧＰＵ、専用ニューラルネットワークプロセッサまたはアクセラレータなどのようなデータ処理能力および／または指令の実行能力を有する任意の形態の処理手段であってもよい。
【０１０６】
例えば、プロセッサ８１０は、本開示に係る実施形態によりニューラルネットワークのパラメータを適応させる方法を実行することができる。さらに、プロセッサ８１０は、デバイス８１０における他の部品を制御して、所望の機能を実行させることもできる。
プロセッサ８１０は、バスシステムおよび／または他の形態の接続機構（図示せず）を介して、メモリ８３０およびＩ／Ｏインターフェイス８３０に接続することができる。
【０１０７】
メモリ８３０は、例えば、揮発性メモリおよび／または不揮発性メモリなどの様々なコンピュータ読み書き可能な記憶媒体を含むことができる。揮発性メモリは、ランダムアクセスメモリ（RAM）及び／又はキャッシュメモリ（キャッシュ）などを含むことができる。不揮発性メモリは、例えば、読み取り専用メモリ（ROM）、ハードディスク、フラッシュメモリ等を含むことができる。
【０１０８】
読み書き可能な記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、またはそれらの任意の組み合わせを含むことができるがこれらに限らない。
【０１０９】
例えば、ニューラルネットワーク専用プロセッサに合わせて使用する場合、メモリ８２０は、専用プロセッサが搭載されるチップ上のＲＡＭであってもよい。メモリ８２０は、本開示に係る実施形態によるニューラルネットワークのパラメータを適応させる方法のプログラム指令を実行させるための指示手段８００を含むことができる。
【０１１０】
Ｉ／Ｏインターフェイス８３０は、プロセッサ８１０にパラメータまたはデータを提供し、かつプロセッサ８１０によって処理された結果データの出力のために用いることができる。
【０１１１】
図９は、本開示に係る別の実施形態によるニューラルネットワークのパラメータを適応させるために使用することができる装置のブロック図を示す。
【０１１２】
図９に示されたように、例示装置９００は、検出器９１０及びパッダー９２０を含むことができる。検出器９１０は、ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータによって選択された一以上の次元に対して、該重みパラメータの各次元におけるディメンション値及び対応する目標値を決定するように構成することができる。
【０１１３】
パッダー９２０は、重みパラメータの各次元におけるディメンション値が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの各次元におけるディメンション値が対応する目標値に等しくなるように、前記重みパラメータに対してパディングする。
【０１１４】
例示装置９００は、プロセッサ９３０（例えば、汎用ＣＰＵ、ＧＰＵ、ニューラルネットワークの専用プロセッサまたはアクセラレータ）を含むことができ、パダー９２０からの出力データを受信してニューラルネットワークに関する演算を行う。
【０１１５】
しかし、図８及び図９に示された装置８００および９００は単なる例示であって限定的なものではない。必要に応じて、本開示に係る実施形態によるニューラルネットワークのパラメータを適応させることができる装置は、その他の部材および／または構造を有することができる。
【０１１６】
前後文から明確に別途の要求がある場合を除き、明細書および特許請求の範囲全体において、用語「comprise」（有する）、「include」（含む）などは、排他性または限界性（exhaustive）の意味の逆である包括的な意味として解釈すべきであり、つまり、「を含むが、これに限定されない」の意味として解釈すべきである。
【０１１７】
また、用語「本明細書中」、「以上の記載に」、「以下の記載に」及び似たような意味の用語が本開示において使用される場合に、本開示の具体的な部分ではなく、本開示全体を指すとすべきである。前後文が許される場合、単数形または複数形を使用する以上の記載における用語も、それぞれ複数または単数を含むことができる。二つまたは複数の項目のリストを言及する場合の用語「または」について、該用語は該用語の以下の解釈における全部をカバーする。すなわち、リストにおける任意の項目、リストにおけるすべての項目、及びリストにおける項目の任意の組み合わせである。
【０１１８】
本開示に係る実施形態の以上の詳細な説明は、制限的または本発明を以上の記載によって開示された適切な形式に限定することを意図するものではない。説明のために、本開示に係る具体的な実施形態及び例示を述べたが、当該分野における技術者が認識しているように本発明の技術的範囲内である限り、各種の均等の範囲における変更は可能である。
【０１１９】
例えば、処理またはブロックが所定の順序で示したが、代替の実施形態において、これらのステップの処理または異なる順序でこれらのブロックのシステムを使用することができ、かついくつかの処理またはブロックは、削除、移動、追加、細分化、結合、および／または変更が可能である。これらの処理またはブロックのそれぞれは異なる方法で実施することができる。また、処理またはブロックは直列的に実行されるが、代わりに、これらの処理及びブロックは並列的に実行され、または異なる時間で実行されることも可能である。
【０１２０】
本明細書で提供される本発明の教示は、必ずしも上記のシステムである必要はなく、他のシステムにも適用することができる。上述のそれぞれの実施形態の部品及び動作を組み合わせることにより、別の実施形態を提供することができる。
【０１２１】
本開示に係るいくつかの実施形態について説明したが、これらの実施形態は、例示として提示するものであり、本開示の範囲を限定するものではない。実際、本明細書に記載された新規の方法およびシステムは、様々なその他の形態で実施することができる。また、本発明の範囲から逸脱しなければ、本明細書に記載された方法およびシステムの形式に種々の省略、置換および変更をすることが可能である。
【符号の説明】
【０１２２】
１００  例示方法
８１０  プロセッサ
８２０  メモリ
８３０  Ｉ／Ｏインターフェイス
９００  例示装置
９１０  検出器
９２０  パッダー
９３０  プロセッサ
【図１】
2019061664.tif 000003
【図２】
2019061664.tif 000004
【図３】
2019061664.tif 000005
【図４】
2019061664.tif 000006
【図５】
2019061664.tif 000007
【図６】
2019061664.tif 000008
【図７】
2019061664.tif 000009
【図８】
2019061664.tif 000010
【図９】
2019061664.tif 000011
【外国語明細書】
2019061664000001.pdf