(57)【要約】      （修正有）【課題】人工ニューラルネットワークのサイズの増大に伴う実行の遅れを緩和する。【解決手段】ニューロンとニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む人工ニューラルネットワークにおいて、加重を昇順に並べるステップと、加重の略線形パターンに基づいて並べた加重をグループに分けるステップと、ベースグループと従属グループとして他のグループとを指定するステップと、ベースグループの加重の値をメモリに記憶するステップと、各従属グループのグループインデックスをメモリに記憶するステップと、従属グループの加重の値はメモリに記憶せずにベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップとを含む。【選択図】図８
2018026102.tif 000002
【特許請求の範囲】
【請求項１】
グループ間インデックスを用いた人工ニューラルネットワークにおける加重値を表現する、コンピュータ実施の方法であって、
ニューロンと、ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む、人工ニューラルネットワークにおいて、加重を昇順に並べるステップと、
加重の略線形パターンに基づいて、並べた加重をグループに分けるステップと、
ベースグループと、従属グループとして他のグループとを指定するステップと、
ベースグループの加重の値をメモリに記憶するステップと、
各従属グループのグループインデックスをメモリに記憶するステップと、
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップとを含む、
方法。
【請求項２】
ベースグループを指定するステップは、最も線形である略線形パターンを有するグループをベースグループとして指定するステップを含む、
請求項１に記載の方法。
【請求項３】
ベースグループを指定するステップは、仮想グループをベースグループとして指定するステップを含む、
請求項１に記載の方法。
【請求項４】
ベースグループの加重の値をメモリに記憶するステップは、ベースグループの加重の値を浮動小数点数としてメモリに記憶するステップを含む、
請求項１に記載の方法。
【請求項５】
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップは、従属グループの加重の値は浮動小数点数としてメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスを整数としてメモリに記憶するステップを含む、
請求項４に記載の方法。
【請求項６】
各従属グループの傾き及び切片を計算するステップと、
各従属グループの傾き及び切片をメモリに記憶するステップとをさらに含む、
請求項１に記載の方法。
【請求項７】
従属グループの傾き及び切片をメモリから読み出すステップと、
メモリから従属グループの加重のインデックスを読み出すステップと、
読み出したインデックスが対応するベースグループの加重の値をメモリから読み出すステップと、
読み出した加重のインデックスと、読み出した従属グループの傾き及び切片と、読み出したベースグループの加重の値とを用いて、従属グループの加重を合成するステップとを含む、
請求項６に記載の方法。
【請求項８】
グループ間インデックスを用いて人工ニューラルネットワークにおいて加重を表現するコンピュータプログラムであって、コンピュータに、
ニューロンと、ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む、人工ニューラルネットワークにおいて、加重を昇順に並べるステップと、
加重の略線形パターンに基づいて、並べた加重をグループに分けるステップと、
ベースグループと、従属グループとして他のグループとを指定するステップと、
ベースグループの加重の値をメモリに記憶するステップと、
各従属グループのグループインデックスをメモリに記憶するステップと、
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップとを実行させる、
コンピュータプログラム。
【請求項９】
ベースグループの指定は、最も線形である略線形パターンを有するグループをベースグループとして指定するステップを含む、
請求項８に記載のコンピュータプログラム。
【請求項１０】
ベースグループを指定するステップは、仮想グループをベースグループとして指定するステップを含む、
請求項８に記載のコンピュータプログラム。
【請求項１１】
ベースグループの加重の値をメモリに記憶するステップは、ベースグループの加重の値を浮動小数点数としてメモリに記憶するステップを含む、
請求項８に記載のコンピュータプログラム。
【請求項１２】
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップは、従属グループの加重の値は浮動小数点数としてメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスを整数としてメモリに記憶するステップを含む、
請求項１１に記載のコンピュータプログラム。
【請求項１３】
各従属グループの傾きと切片を計算するステップと、
各従属グループの傾きと切片をメモリに記憶するステップとをさらに含む、
請求項８に記載のコンピュータプログラム。
【請求項１４】
従属グループの傾きと切片をメモリから読み出すステップと、
メモリから従属グループの加重のインデックスを読み出すステップと、
読み出したインデックスが対応するベースグループの加重の値をメモリから読み出すステップと、
読み出した加重のインデックスと、読み出した従属グループの傾き及び切片と、読み出したベースグループの加重の値とを用いて、従属グループの加重を合成するステップとをさらに含む、
請求項１３に記載のコンピュータプログラム。
【請求項１５】
グループ間インデックスを用いた人工ニューラルネットワークにおける加重値を表現する、コンピュータアーキテクチャであって、
メモリと、
プロセッサとを有し、該プロセッサは、
ニューロンと、ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む、人工ニューラルネットワークにアクセスし、
加重を昇順に並べ、
加重の略線形パターンに基づいて、並べた加重をグループに分け、
ベースグループと、従属グループとして他のグループとを指定し、
ベースグループの加重の値をメモリに記憶し、
各従属グループのグループインデックスをメモリに記憶し、
各従属グループの傾きと切片を計算し、
各従属グループの傾きと切片をメモリに記憶し、
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶する、
コンピュータアーキテクチャ。
【請求項１６】
ベースグループを指定することは、最も線形である略線形パターンを有するグループをベースグループとして指定することを含む、
請求項１５に記載のコンピュータアーキテクチャ。
【請求項１７】
ベースグループを指定することは、仮想グループをベースグループとして指定することを含む、
請求項１５に記載のコンピュータアーキテクチャ。
【請求項１８】
ベースグループの加重の値をメモリに記憶することは、ベースグループの加重の値を浮動小数点数としてメモリに記憶することを含む、
請求項１５に記載のコンピュータアーキテクチャ。
【請求項１９】
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶することは、従属グループの加重の値は浮動小数点数としてメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスを整数としてメモリに記憶することを含む、
請求項１８に記載のコンピュータアーキテクチャ。
【請求項２０】
加重修正器をさらに有し、該加重修正器は、
従属グループの傾きと切片をメモリから読み出し、
メモリから従属グループの加重のインデックスを読み出し、
読み出したインデックスが対応するベースグループの加重の値をメモリから読み出し、
読み出した加重のインデックスと、読み出した従属グループの傾き及び切片と、読み出したベースグループの加重の値とを用いて、従属グループの加重を合成する、
請求項１５に記載のコンピュータアーキテクチャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明する実施形態は、グループ間インデックス（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）を用いた人工ニューラルネットワークにおける加重値の表現に関する。
【背景技術】
【０００２】
人工ニューラルネットワークは、ニューロンのネットワークを利用して複雑な認知作業を行うものである。例えば、コンピュータビジョンや音声認識に関する作業は、従来の、規則に基づくプログラミングを用いては非常に困難であるが、人工ニューラルネットワークを用いて行える。
【０００３】
人工ニューラルネットワークのニューロンは、例えば、ニューロン間のシナプス結合により互いに通信するように構成されている。２つのニューロン間の各シナプス結合は、例えば、その２つのニューロン間の通信の重要性を反映するように調整された値を有する加重と関連付けられている。人工ニューラルネットワークが大きくなるにつれ、シナプス結合の数が増え、それに対応して加重の数も増えることになる。しかし、加重値は一般的にメモリに格納されるので、人工ニューラルネットワークのサイズの増大は問題となり得る。加重値のためのメモリの必要量が利用可能メモリを越え、その結果として比較的低速のストレージを「仮想メモリ」として用いることとなり、人工ニューラルネットワークの実行を大幅に遅らせることがあるからである。
【０００４】
特許請求の範囲に記載した主題は、何らかの欠点を解消する実施形態や、上記のような環境のみで動作する実施形態に限定されない。むしろ、この背景技術は、この明細書に説明する幾つかの実施形態を実施できる技術分野例を示すだけである。
【発明の概要】
【０００５】
一実施形態の一態様では、グループ間インデックスを用いた人工ニューラルネットワークにおける加重値を表現する、コンピュータ実施の方法は、ニューロンと、前記ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む、人工ニューラルネットワークにおいて、加重を昇順に並べるステップを含んでもよい。また、本方法は、加重の略線形パターンに基づいて、並べた加重をグループに分けるステップを含んでもよい。本方法は、さらに、ベースグループと、従属グループとして他のグループとを指定するステップを含んでもよい。また、本方法は、ベースグループの加重の値をメモリに記憶するステップを含んでもよい。本方法は、さらに、各従属グループのグループインデックスをメモリに記憶するステップを含んでもよい。また、本方法は、従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップを含んでもよい。
【０００６】
実施形態の目的と利点は、少なくとも、特許請求の範囲に具体的に記載した要素、特徴、及び組み合わせにより実現及び達成され得る。
【０００７】
言うまでもなく、上記の概要と、下記の詳細な説明とは、例であり、説明をするためのものであり、特許請求の範囲に記載された発明を制限するものではない。
【図面の簡単な説明】
【０００８】
添付した図面を用いて、実施形態の例をさらに具体的に詳しく説明する。
【０００９】
【図１】人工ニューラルネットワークの一例を示す図である。
【００１０】
【図２】図１の人工ニューラルネットワークにおける位置と加重値の例を示す図である。
【００１１】
【図３】昇順に並べられグループに分割された、図２の位置と加重値の例を示す図である。
【００１２】
【図４】従属グループの一例の加重の１つが、ベースグループの一例の加重の１つでインデックスされることを示す図である。
【００１３】
【図５】グループ間インデックス作成をするコンピュータアーキテクチャの一例を示す図である。
【００１４】
【図６】グループ間インデックスを用いたシミュレーション結果の例を示す図である。
【００１５】
【図７】グループ間インデックスを用いた、推定されるメモリ使用量の低減の例を示す図である。
【００１６】
【図８】グループ間インデックスを用いて人工ニューラルネットワークにおける加重値の表現の方法の一例を示すフローチャートである。
【００１７】
【図９】グループ間インデックスを用いて人工ニューラルネットワークにおける加重値の表現の方法の他の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
本明細書で説明する幾つかの実施形態は、グループ間インデックス（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）を用いた人工ニューラルネットワークにおける加重値の表現に関する。複雑な認知作業行うためにコンピュータアーキテクチャにおける人工ニューラルネットワークの使用の増加により、人工ニューラルネットワークのサイズが増大している。この人工ニューラルネットワークのサイズの増大は、人工ニューラルネットワークのシナプス結合の加重値の増加を記憶するコンピュータアーキテクチャにおけるメモリの利用可能量の増大より、時として速い。コンピュータアーキテクチャ中のメモリがいっぱいになり、加重値が比較的遅いストレージに、「仮想メモリ」として記憶されることになると、人工ニューラルネットワークの性能は大幅に低下することがある。
【００１９】
人工ニューラルネットワークにおける加重値のメモリ必要量を低減する努力は、加重値のクラスタリング（ｃｌｕｓｔｅｒｉｎｇ）を含む。加重クラスタリングは、ある範囲のすべての加重値を、１つの離散的な加重値に再割当（ｒｅａｓｓｉｇｎｉｎｇ）することを含む。加重クラスタリングにより、人工ニューラルネットワークにおける加重値のメモリ必要量は低減するが、再割当された加重値の精度が大幅に失われ、人工ニューラルネットワークの性能が劣化。
【００２０】
本明細書で説明するグループ間インデックス（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）を用いた人工ニューラルネットワークにおける加重値の表現（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）は、概して、人工ニューラルネットワークの加重を昇順に並べ、次いで、並べられた加重を、加重の略線形パターンに基づいてグループに分割し、１つのグループをベースグループとして指定し、他のグループを従属グループとして指定することを含む。ベースグループ中の加重値は、メモリに記憶され、従属グループ中の加重は、ベースグループ中の加重に対してインデックス（ｉｎｄｅｘｅｄ  ｔｏ）される。従属グループ中の加重の、ベースグループ中の加重に対するグループ間インデックスにより、従属グループ中の加重の実際の値をメモリに記憶しなくても、従属グループ中の加重値が、比較的高い精度で、後で合成できる。これにより、加重クラスタリングで一般的に見られる精度の大幅な損失を起こさずに、人工ニューラルネットワークのメモリ必要量を低減できる。
【００２１】
ここで、本開示の実施形態を、添付した図面を参照して説明する。
【００２２】
図１は、人工ニューラルネットワーク１００の一例を示す図である。人工ニューラルネットワーク１００を用いて、例えば、コンピュータビジョンや音声認識を含むがこれらに限定されない複雑な認知作業を実行できる。人工ニューラルネットワーク１００は、複数レイヤのニューロンを含んでもよく、例えば、入力レイヤのニューロンｉ１−ｉｎｉ、隠しレイヤのニューロンｈ１−ｈｎｈ、及び出力レイヤのニューロンｏ１−ｏｎｏを含んでもよい。各々が加重ｗを有するシナプス結合（図１においてニューロン間の線で表す）を用いて、入力レイヤのニューロンｉ１−ｉｎｉは、隠しレイヤのニューロンｈ１−ｈｎｈと通信でき、隠しレイヤのニューロンｈ１−ｈｎｈは、出力レイヤのニューロンｏ１−ｏｎｏと通信できる。例えば、入力レイヤのニューロンｉ１と隠しレイヤのニューロンｈ１との間のシナプス結合は加重ｗ１１を有し、入力レイヤのニューロンｉ１と隠しレイヤのニューロンｈ２との間のシナプス結合は加重ｗ１２を有する。各加重ｗを用いて、２つのニューロン間のシナプス結合を介した通信の重要性を調整する。
【００２３】
人工ニューラルネットワーク１００が大きくなるにつれ、シナプス結合の数が増え、それに対応して加重の数も増えることになる。しかし、加重値は一般的にメモリに格納されるので、人工ニューラルネットワーク１００のサイズの増大は問題となり得る。加重値のためのメモリの必要量が利用可能メモリを越え、その結果として比較的低速のストレージを「仮想メモリ」として用いることとなり、人工ニューラルネットワークの実行を大幅に送らせることがあるからである。この性能劣化を避ける為、人工ニューラルネットワーク１００の多くの又はほとんどの加重値は、実際の加重値をメモリに記憶せずに、グループ間インデックスを用いて、メモリ内で表され得る。これにより、インデックスされた加重値の精度の大幅に損なわずに、人工ニューラルネットワーク１００のメモリ必要量が低減される。以下、説明する。
【００２４】
図２は、図１の人工ニューラルネットワーク１００における位置と加重値ｗの例を示すグラフ２００である。図１と図２に開示するように、人工ニューラルネットワーク１００の加重値は、−６．０と６．０の範囲にあり、人工ニューラルネットワーク１００において様々なシーケンシャル位置（ｓｅｑｕｅｎｔｉａｌ  ｐｏｓｉｔｉｏｎｓ）を有するシナプス結合の加重に対応している。例えば、位置１の加重は加重ｗ１１であってもよく、位置２の加重は加重ｗ１２であってもよい。
【００２５】
図３は、昇順に並べられグループに分割された、図２の位置と加重値の例を示すグラフ３００である。この、加重の昇順での配列と、加重のグループへの分割は、本明細書に開示するグループ間インデックス付与（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）中に実行されてもよい。
【００２６】
図１−３に開示するように、加重ｗのグループへの分割は、加重の略線形パターンに基づくものであってもよい。例えば、位置０−１３間の加重値は、第１の略線形パターンを示し、位置１４−９９間の加重値は、第１の略線形パターンとは略異なる傾きを有する第２の略線形パターンを示し、位置０−１３間の加重は、グループ３０２にグループ分けされても良く、位置１４−９９間の加重は、グループ３０４にグループ分けされてもよい。
【００２７】
図１ないし図３に開示するように、グループ３０２−３１０のうち１つが、ベースグループに指定され、他のグループが、従属グループに指定されてもよい。この指定は、ベースグループとして最も線形な略線形パターン（ａｐｐｒｏｘｉｍａｔｅｌｙ  ｌｉｎｅａｒ  ｐａｔｔｅｒｎ）を有するグループを指定することを含む。例えば、グループ３０４の略線形パターンがグループ３０２−３１０のうち最も線形なものなので、グループ３０４がベースグループとして指定され、グループ３０２、３０６−３１０が従属グループ（ｄｅｐｅｎｄｅｎｔ  ｇｒｏｕｐｓ）として指定されてもよい。他の一例では、ベースグループを指定することは、仮想グループをベースグループとして指定することを含んでもよい。例えば、グループ３０２−３１０に含まれない仮想グループをベースグループとして指定し、すべてのグループ３０２−３１０を従属グループとして指定してもよい。このベースグループと従属グループの指定は、ベースグループの加重の加重値をメモリに記憶できるようにして、従属グループの加重の加重値をベースグループの加重に対してインデックスして、従属グループの加重の加重値をメモリに記憶しなければならないことを避けるため、本明細書に開示するグループ間インデックス付与（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）の一部として行われてもよい。各従属グループには、加重値ではなく、最小量のデータをメモリに記憶してもよい。例えば、各従属グループに対してグループインデックスを割り当て、メモリに記憶してもよい。
【００２８】
図４は、従属グループの一例の加重の１つが、ベースグループの一例の加重の１つでインデックスされることを示すグラフ４００である。具体的に、グラフ４００は、従属グループの加重の加重値ｙｊが、ベースグループの加重の加重値ｚｉにインデックスされることを表している。例えば、従属グループの加重値ｙｊは、ベースグループの加重値ｚｉにインデックスされ、次式
【数１】
2018026102.tif 000003
により、近似的加重値ｙｊ＊が得られる。ここで、
Δｙは従属グループの最大加重値ｙｍと最小加重値ｙｌとの差分であり、
Δｚはベースグループの最大加重値ｚｍと最小加重値ｚｌとの差分であり、
Ｄｙｚは従属グループの最小加重値ｙｌとベースグループの最小加重値ｚｌとの間の差分である。
図４のグラフ４００のこの式を用いて、ベースグループの加重値をメモリに記憶して、従属グループの加重の加重をメモリに記憶することなく、ベースグループの加重に対応する従属グループの加重のインデックスをメモリに記憶でき、人工ニューラルネットワークのメモリ必要量を低減することができる。
【００２９】
図５は、グループ間インデックス作成をするコンピュータアーキテクチャ５００の一例を示す図である。コンピュータアーキテクチャ５００は、メモリ５０２、メモリコントローラ５０４、処理要素５０６、及び加重修正器５０８を含み得る。
【００３０】
図５の処理要素５０６は、人工ニューラルネットワークを生成またはそれにアクセスし、本明細書に開示するグループ間インデックス作成を実行するように構成され得る。具体的に、処理要素５０６は、図３を参照して説明した、加重を並べて、加重をグループに分割すること、及び図４を参照して説明した、ベースグループの加重値を記憶し、従属グループの加重でインデックスすることを実行するように構成されていてもよい。さらに、処理要素５０６は、各従属グループの傾き及び切片（ｓｌｏｐｅ  ａｎｄ  ｉｎｔｅｒｃｅｐｔ  ｍｏｄｉｆｉｅｒｓ）を計算するように構成されていてもよい。例えば、図４を再び参照して、従属グループの傾きは次式
【数２】
2018026102.tif 000004
として表し得る。同様に、従属グループの切片は次式
【数３】
2018026102.tif 000005
として表し得る。処理要素５０６は、各従属グループの傾き及び切片を計算した後、メモリコントローラ５０４を用いて、これらの傾き及び切片をメモリ５０２に記憶するように構成されていてもよい。
【００３１】
図５の加重修正器５０８は、従属グループの加重の値の合成に用いられるように構成されていてもよい。例えば、加重修正器５０８は、人工ニューラルネットワークの第１のレイヤの第１のニューロンａｉｍ−１と第２のレイヤの第２のニューロンａｊｍとの間のシナプス結合の加重ｗｉｊの値を合成する。ここで、
ｉは第１のレイヤのニューロンインデックスであり、
ｊは第２のレイヤのニューロンインデックスであり、
ｍはレイヤインデックスである。
加重ｗｉｊの値を合成するため、加重修正器５０８は、ｗｉｊが属する従属グループの傾き及び切片をメモリ５０２から読み出し、加重ｗｉｊの１つのインデックスをメモリ５０２から読み出し、読み出したインデックスが対応する対応するベースグループの加重ｗｘｙの値をメモリ５０２から読み出すように構成されていてもよい。加重修正器５０８は、読み出した加重のインデックスと、読み出した従属グループの傾き及び切片と、読み出したベースグループの加重ｗｘｙの値とを用いて、従属グループの加重ｗｉｊを合成し、それにより図４の式により合成された加重値ｙｊ＊を計算する。
【００３２】
図６は、グループ間インデックスを用いたシミュレーション結果の例を示すグラフ６００である。グラフ６００は、グループ間インデックス付与により合成される加重値ｙｊ＊を用いたシミュレーション結果６０２が、従来のアプローチを用いて得られたシミュレーション結果６０４と精度において同等であることを示す。
【００３３】
図７は、グループ間インデックスを用いた、推定されるメモリ使用量の低減の例を示すグラフ７００である。グラフ７００は、グループ間インデックス付与を用いたメモリ使用量の推定低減量が、ベースグループに割り当てられる加重の総数のパーセンテージに応じて、及び従属グループの数に基づいて、約１．５倍から約５．５倍の間で増加することを示す。
【００３４】
図８は、本開示で説明する少なくとも１つの実施形態により構成されるグループ間インデックス付与（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）を用いて人工ニューラルネットワークにおいて加重値を表す方法８００の一例を示すフローチャートである。方法８００は、幾つかの実施形態では、図５のコンピュータアーキテクチャ５００の処理要素５０６により実施されてもよい。離散的ブロックとして示したが、目標とする実施形態に応じて、様々なブロックは、複数のブロックに分割されてもよく、より少ないブロックに結合されてもよく、又は削除されてもよい。
【００３５】
方法８００は、ブロック８０２で始まり、そこで人工ニューラルネットワークがアクセスされる。人工ニューラルネットワークは、ニューロンと、ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む。例えば、人工ニューラルネットワークは図１に示した人工ニューラルネットワークと同様のものであり得る。
【００３６】
ブロック８０４において、加重は昇順で配列されてもよい。加重の昇順（ａｓｃｅｎｄｉｎｇ  ｏｒｄｅｒ）は加重の値に基づいてもよい。少なくとも幾つかの実施形態では、加重の値は浮動小数点数であってもよい。例えば、加重は、図３に開示されたように、図２に開示された加重が昇順で配列されたように、昇順で配列（ａｒｒａｎｇｅ）されてもよい。
【００３７】
ブロック８０６において、配列された加重は、加重の略線形パターン（ａｐｐｒｏｘｉｍａｔｅｌｙ  ｌｉｎｅａｒ  ｐａｔｔｅｒｎｓ）に基づいて、複数のグループに分割されてもよい。例えば、一組の加重の値のすべてが、略線形傾斜を有する線上にある場合、この一組の加重は１つのグループとされてもよい（ｄｉｖｉｄｅｄ  ｉｎｔｏ  ａ  ｇｒｏｕｐ）。例えば、図３の配列された加重が複数のグループ３０２−３１０に分割されたのと同様に、配列された加重が複数のグループに分割されてもよい。
【００３８】
ブロック８０８において、ベースグループが指定され、他のグループが従属グループ（ｄｅｐｅｎｄｅｎｔ  ｇｒｏｕｐｓ）として指定されてもよい。少なくとも幾つかの実施形態では、ベースグループを指定することは、最も線形である略線形パターンを有するグループをベースグループとして指定することを含む。例えば、ベースグループが指定され、他のグループが従属グループとして指定されるのは、グループ３０４がベースグループとして指定され、グループ３０２、３０６、３０８及び３１０が従属グループとして指定されたのと同様であってもよい。  あるいは、ベースグループを指定することは、仮想グループをベースグループとして指定することを含んでもよい。
【００３９】
ブロック８１０において、ベースグループの加重の値をメモリに記憶してもよい。  前述の通り、ベースグループの加重の値を、浮動小数点数として、メモリに記憶してもよい。メモリは、例えば、図５のコンピュータアーキテクチャ５００のメモリと同様であってもよい。
【００４０】
ブロック８１２において、各従属グループのグループインデックスがメモリに記憶されてもよい。
【００４１】
ブロック８１４において、傾きと切片が各従属グループについて計算されてもよい。例えば、傾きと切片は、図５を参照して開示した傾きと切片と同様であってもよい。
【００４２】
ブロック８１６において、各従属グループの傾きと切片がメモリに記憶されてもよい。
【００４３】
ブロック８１８において、従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶してもよい。例えば、インデックスは図４に開示の式を用いて計算してもよい。
【００４４】
それゆえ方法８００を利用して、グループ間インデックス付与（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）を用いて、人工ニューラルネットワークにおいて加重値を表すことができる。グループ間インデックス付与は、ベースグループの加重の値をメモリに記憶すること、及び単に従属グループの加重をベースグループの加重でインデックスすることを含んでもよい。従属グループ中の加重の、ベースグループ中の加重に対するグループ間インデックスにより、従属グループ中の加重の実際の値をメモリに記憶しなくても、図９を参照して以下に説明するように、従属グループ中の加重値が、比較的高い精度で、後で合成できる。これにより、加重クラスタリングで一般的に見られる精度の大幅な損失を起こさずに、人工ニューラルネットワークのメモリ必要量を低減できる。
【００４５】
図９は、本開示で説明する少なくとも１つの実施形態により構成されるグループ間インデックス付与（ｉｎｔｅｒ−ｇｒｏｕｐ  ｉｎｄｅｘｉｎｇ）を用いて人工ニューラルネットワークにおいて加重値を表す方法９００の他の一例を示すフローチャートである。方法９００は、幾つかの実施形態では、図５のコンピュータアーキテクチャ５００の加重修正器５０８により実施されてもよい。また、方法９００は、一般的に、方法８００の実施後に実施されてもよい。離散的ブロックとして示したが、目標とする実施形態に応じて、様々なブロックは、複数のブロックに分割されてもよく、より少ないブロックに結合されてもよく、又は削除されてもよい。
【００４６】
方法９００は、ブロック９０２で始まり、従属グループの１つの傾き及び切片（ｓｌｏｐｅ  ａｎｄ  ｉｎｔｅｒｃｅｐｔ  ｍｏｄｉｆｉｅｒｓ）がメモリから読み出される。例えば、方法８００のブロック８１４でメモリに記憶された傾きと切片が、メモリから読み出されてもよい。
【００４７】
ブロック９０４において、従属グループの加重の１つのインデックスが、メモリから読み出される。例えば、方法８００のブロック８１６においてメモリに記憶された従属グループの加重の１つのインデックスが、メモリから読み出されてもよい。
【００４８】
ブロック９０６において、読み出したインデックスが対応するベースグループの加重の値が、メモリから読み出される。例えば、方法８００のブロック８１０においてメモリに記憶された、読み出されたインデックスが対応するベースグループの加重の値が、メモリから読み出されてもよい。
【００４９】
ブロック９０８において、従属グループの加重の値が、読み出された加重のインデックスと、読み出された従属グループの傾き及び切片と、読み出されたベースグループの加重の値とを用いて、合成される。例えば、合成される値は、図５を参照して開示する式を用いて計算してもよい。
【００５０】
それゆえ、方法９００を利用して、グループ間インデックス付与を用いて、人工ニューラルネットワークの加重値を表すことができる。グループ間インデックス付与により、従属グループの加重の実際の値をメモリに記憶しなくても、従属グループの加重の値を、比較的高い精度で合成することができ、加重クラスタリングで一般的に見られる精度の大幅な低減を起こさずに、人工ニューラルネットワークのメモリ必要量を低減することができる。
【００５１】
本技術分野の当業者には言うまでもないが、ここに開示のこれらの及びその他のプロセス及び方法について、そのプロセス及び方法で実行される機能は、異なる順序で実装されてもよい。さらに、概要を述べたステップと動作は、単なる例であり、開示された実施形態の本質を損なうことなく、そのステップと動作のうち幾つかは、任意的であり、結合されてより少ないステップと動作にされてもよく、拡張されてより多くのステップと動作にされてもよい。
【００５２】
本開示に用い、特に添付した特許請求の範囲で用いる用語は、一般的に「オープン」タームであることが意図されている（例えば、用語「含む」は「含むが限定されない」と解釈すべきであり、用語「有する」は「少なくとも〜を有する」と解釈すべきであり、用語「含む」は「含むが限定されない」と解釈すべきである。
【００５３】
また、請求項において数を特定しようと意図する場合は、請求項中に明示的に記載し、そうでなければ、そのような意図はない。例えば、理解の助けとして、下記に添付した特許請求の範囲は、その記載に「少なくとも１つの」や「一以上の」との導入句を含んでいることがある。しかし、かかるフレーズの使用は、不定冠詞「ａ」または「ａｎ」を付けることが、たとえ同じ請求項が「一以上の」又は「少なくとも１つの」という導入句と「ａ」や「ａｎ」などの不定冠詞を含んでいたとしても、かかる請求項記載を含む請求項を、かかる記載を１つだけ含む実施形態に限定することを示唆していると解してはならない。（例えば、「ａ」及び／又は「ａｎ」は「少なくとも１つの」又は「一以上の」を意味するものと解釈すべきである）；請求項記載を導入する定冠詞の使用についても同様である。
【００５４】
また、導入された請求項記載について特定の数が明示的に記載されていたとしても、当業者には言うまでもなく、かかる記載は少なくとも記載された数という意味と解釈すべきである（例えば、他の修飾語を付けずに「２つの」と言った場合、これは少なくとも２つ、すなわち２以上を意味する）。さらに、「Ａ，Ｂ，及びＣなどのうち少なくとも１つ」又は「Ａ，Ｂ、及びＣなどのうち一以上」などの表現を用いる場合、一般的に、かかる表現は、Ａのみ、Ｂのみ、Ｃのみ、ＡとＢ、ＡとＣ、ＢとＣ、又はＡとＢとＣなどを含むことを意図している。
【００５５】
さらに、２以上の代替的用語を提示する宣言的単語又は句は、明細書、特許請求の範囲、又は図面にかかわらず、その用語のうち一つ、その用語のどちらか、又は両方の用語を含む可能性を想定していると理解すべきである。例えば、「ＡまたはＢ」は、「Ａ」、または「Ｂ」、又は「Ａ及びＢ」の可能性を含むと理解すべきである。
【００５６】
本開示に記載したすべての例と条件付きの言葉は、発明者が技術発展に対してなした本開示とコンセプトとを、読者が理解しやすいようにするためのものであり、その解釈は具体的に記載した実施例や条件に限定されるべきではない。  本開示の実施形態を詳細に説明したが、言うまでもなく、本開示の精神と範囲から逸脱することなく、これらの実施形態に変更、置換、代替を施すことができる。
実施形態を付記する。
（付記１）  グループ間インデックスを用いた人工ニューラルネットワークにおける加重値を表現する、コンピュータ実施の方法であって、
ニューロンと、ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む、人工ニューラルネットワークにおいて、加重を昇順に並べるステップと、
加重の略線形パターンに基づいて、並べた加重をグループに分けるステップと、
ベースグループと、従属グループとして他のグループとを指定するステップと、
ベースグループの加重の値をメモリに記憶するステップと、
各従属グループのグループインデックスをメモリに記憶するステップと、
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップとを含む、
方法。
（付記２）  ベースグループを指定するステップは、最も線形である略線形パターンを有するグループをベースグループとして指定するステップを含む、
付記１に記載の方法。
（付記３）  ベースグループを指定するステップは、仮想グループをベースグループとして指定するステップを含む、
付記１に記載の方法。
（付記４）  ベースグループの加重の値をメモリに記憶するステップは、ベースグループの加重の値を浮動小数点数としてメモリに記憶するステップを含む、
付記１に記載の方法。
（付記５）  従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップは、従属グループの加重の値は浮動小数点数としてメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスを整数としてメモリに記憶するステップを含む、
付記４に記載の方法。
（付記６）  各従属グループの傾き及び切片を計算するステップと、
各従属グループの傾き及び切片をメモリに記憶するステップとをさらに含む、
付記１に記載の方法。
（付記７）  従属グループの傾き及び切片をメモリから読み出すステップと、
メモリから従属グループの加重のインデックスを読み出すステップと、
読み出したインデックスが対応するベースグループの加重の値をメモリから読み出すステップと、
読み出した加重のインデックスと、読み出した従属グループの傾き及び切片と、読み出したベースグループの加重の値とを用いて、従属グループの加重を合成するステップとを含む、
付記６に記載の方法。
（付記８）  グループ間インデックスを用いて人工ニューラルネットワークにおいて加重を表現するコンピュータプログラムであって、コンピュータに、
ニューロンと、ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む、人工ニューラルネットワークにおいて、加重を昇順に並べるステップと、
加重の略線形パターンに基づいて、並べた加重をグループに分けるステップと、
ベースグループと、従属グループとして他のグループとを指定するステップと、
ベースグループの加重の値をメモリに記憶するステップと、
各従属グループのグループインデックスをメモリに記憶するステップと、
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップとを実行させる、
コンピュータプログラム。
（付記９）  ベースグループの指定は、最も線形である略線形パターンを有するグループをベースグループとして指定するステップを含む、
付記８に記載のコンピュータプログラム。
（付記１０）  ベースグループを指定するステップは、仮想グループをベースグループとして指定するステップを含む、
付記８に記載のコンピュータプログラム。
（付記１１）  ベースグループの加重の値をメモリに記憶するステップは、ベースグループの加重の値を浮動小数点数としてメモリに記憶するステップを含む、
付記８に記載のコンピュータプログラム。
（付記１２）  従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶するステップは、従属グループの加重の値は浮動小数点数としてメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスを整数としてメモリに記憶するステップを含む、
付記１１に記載のコンピュータプログラム。
（付記１３）  各従属グループの傾きと切片を計算するステップと、
各従属グループの傾きと切片をメモリに記憶するステップとをさらに含む、
付記８に記載のコンピュータプログラム。
（付記１４）  従属グループの傾きと切片をメモリから読み出すステップと、
メモリから従属グループの加重のインデックスを読み出すステップと、
読み出したインデックスが対応するベースグループの加重の値をメモリから読み出すステップと、
読み出した加重のインデックスと、読み出した従属グループの傾き及び切片と、読み出したベースグループの加重の値とを用いて、従属グループの加重を合成するステップとをさらに含む、
付記１３に記載のコンピュータプログラム。
（付記１５）  グループ間インデックスを用いた人工ニューラルネットワークにおける加重値を表現する、コンピュータアーキテクチャであって、
メモリと、
プロセッサとを有し、該プロセッサは、
ニューロンと、ニューロン間のシナプス結合とを含み、各シナプス結合は加重を含む、人工ニューラルネットワークにアクセスし、
加重を昇順に並べ、
加重の略線形パターンに基づいて、並べた加重をグループに分け、
ベースグループと、従属グループとして他のグループとを指定し、
ベースグループの加重の値をメモリに記憶し、
各従属グループのグループインデックスをメモリに記憶し、
各従属グループの傾きと切片を計算し、
各従属グループの傾きと切片をメモリに記憶し、
従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶する、
コンピュータアーキテクチャ。
（付記１６）  ベースグループを指定することは、最も線形である略線形パターンを有するグループをベースグループとして指定することを含む、
付記１５に記載のコンピュータアーキテクチャ。
（付記１７）  ベースグループを指定することは、仮想グループをベースグループとして指定することを含む、
付記１５に記載のコンピュータアーキテクチャ。
（付記１８）  ベースグループの加重の値をメモリに記憶することは、ベースグループの加重の値を浮動小数点数としてメモリに記憶することを含む、
付記１５に記載のコンピュータアーキテクチャ。
（付記１９）  従属グループの加重の値はメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスをメモリに記憶することは、従属グループの加重の値は浮動小数点数としてメモリに記憶せずに、ベースグループの加重の１つに対応する従属グループの各加重のインデックスを整数としてメモリに記憶することを含む、
付記１８に記載のコンピュータアーキテクチャ。
（付記２０）  加重修正器をさらに有し、該加重修正器は、
従属グループの傾きと切片をメモリから読み出し、
メモリから従属グループの加重のインデックスを読み出し、
読み出したインデックスが対応するベースグループの加重の値をメモリから読み出し、
読み出した加重のインデックスと、読み出した従属グループの傾き及び切片と、読み出したベースグループの加重の値とを用いて、従属グループの加重を合成する、
付記１５に記載のコンピュータアーキテクチャ。
【符号の説明】
【００５７】
５００  コンピュータアーキテクチャ
５０２  メモリ
５０４  メモリコントローラ
５０８  加重修正器
５０６  処理要素
【図１】
2018026102.tif 000006
【図２】
2018026102.tif 000007
【図３】
2018026102.tif 000008
【図４】
2018026102.tif 000009
【図５】
2018026102.tif 000010
【図６】
2018026102.tif 000011
【図７】
2018026102.tif 000012
【図８】
2018026102.tif 000013
【図９】
2018026102.tif 000014