(57)【要約】【課題】未知の環境下における人工知能の能力低下を抑制し得るニューラルネットワークの学習装置および学習方法を提供する。【解決手段】ニューラルネットワークの学習装置や学習方法では、ＧＲＮＮ５０を構成し得る複数のニューロンユニットのうち所定入力に対して発火するクラスターユニットをアクセラレータ４０のＲＡＭに常駐するように実装し、当該クラスターユニットに関連付けられている１つ以上の関連ユニットをアクセラレータ４０のＲＡＭに一時的（非常駐で）実装したり二次記憶装置３０に退避させたりする。これにより、アクセラレータ４０のＲＡＭには、ＧＲＮＮ５０を構成し得る複数のニューロンユニットのうち、所定入力に対して発火するクラスターユニットＣＵだけをアクセラレータ４０のＲＡＭに常駐させるため、ＧＲＮＮ５０を構成し得る複数のニューロンユニットのすべてをアクセラレータ４０のＲＡＭに常駐（実装）させる必要がない。【選択図】図１
2019204318.tif 000002
【特許請求の範囲】
【請求項１】
主記憶部よりも記憶容量が大きい補助記憶部を有する情報処理装置に実装されるＧＲＮＮ（General Regression Neural Network；一般回帰ニューラルネットワーク）の追記学習を行うニューラルネットワークの学習装置であって、
前記ＧＲＮＮを構成し得る複数のニューロンユニットのうち所定入力に対して発火する特定ニューロンユニットを前記主記憶部に常駐させる第１手段と、
前記特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットを前記主記憶部に非常駐で実装したり前記補助記憶部に退避させたりする第２手段と、
を備えることを特徴とするニューラルネットワークの学習装置。
【請求項２】
(1) 前記特定ニューロンユニットを前記主記憶部に常駐させるとともに前記関連ニューロンユニットを前記補助記憶部に退避させている場合、前記所定入力があると前記関連ニューロンユニットを前記補助記憶部から読み出して前記主記憶部に実装し、
(2) 前記特定ニューロンユニットを前記主記憶部に常駐させるとともに前記関連ニューロンユニットが前記主記憶部に実装されている場合、前記所定入力がなく且つ前記主記憶部の実装可能領域が不足していると、前記関連ニューロンユニットを前記主記憶部から前記補助記憶部に退避させることを特徴とする請求項１に記載のニューラルネットワークの学習装置。
【請求項３】
前記(1) の場合において、前記１つ以上の関連ニューロンユニットの合計実装サイズが前記主記憶部の実装可能領域を超えているときには、前記関連ニューロンユニットの集まりを前記実装可能領域に収まる実装サイズの複数の集まりに分割し、前記複数の集まりのそれぞれごとに異なるタイミングで前記主記憶部に実装することを特徴とする請求項２に記載のニューラルネットワークの学習装置。
【請求項４】
前記特定ニューロンユニットは、前記ＧＲＮＮの入力層において当該入力層に入力される複数種類の情報に対してほぼ偏りなく疎に配置されることを特徴とする請求項１〜３のいずれか一項に記載のニューラルネットワークの学習装置。
【請求項５】
主記憶部よりも記憶容量が大きい補助記憶部を有する情報処理装置に実装されるＧＲＮＮ（General Regression Neural Network；一般回帰ニューラルネットワーク）の追記学習を行うニューラルネットワークの学習方法であって、
前記ＧＲＮＮを構成し得る複数のニューロンユニットのうち所定入力に対して発火する特定ニューロンユニットを前記主記憶部に常駐させ、
前記特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットを前記主記憶部に非常駐で実装したり前記補助記憶部に退避させたりすることを特徴とするニューラルネットワークの学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般回帰ニューラルネットワーク（ＧＲＮＮ；General Regression Neural Network）の追記学習を行うニューラルネットワークの学習装置および学習方法に関するものである。
【背景技術】
【０００２】
近年、様々な機器装置に組み込まれるマイクロコンピュータシステム（以下「組み込みシステム」という）においても人工知能の利用が進展しつつある。例えば、組み込み対象となる機器装置が専用のハードウェア（例えば、ハードウェアアクセラレータ）を備えている場合には、そのハードウェア上で人工知能を高速に実行させている。また、このようなハードウェアを備えてなくハードウェアリソースが最小限に制限される場合においても、例えば、下記特許文献１に開示される技術等により人工知能の実行を可能にしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−９８９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、人工知能は、典型的には大規模なニューラルネットワークで構成されることから、それを実装する専用のハードウェアでは大容量の半導体メモリが必要になる。半導体メモリは記憶容量に比例して部品コストが上昇する傾向にあり、また大容量の半導体メモリは外形サイズが大きい。そのため、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）においては、製品を構成している半導体メモリの記憶容量に応じてニューラルネットワークのサイズを小さくせざるを得ない実状がある。
【０００５】
例えば、大規模なニューラルネットワークは、例えば、枝刈り技法により実装可能なサイズに構成を変更されてから機器装置に組み込まれるが、これには想定される入力情報に対する学習を予め行っておく必要がある。即ち、ニューラルネットワークのサイズを枝刈りにより小さくして実装するためには、入力情報が想定されており、且つ、それについて学習済みであることが前提になる。
【０００６】
しかしながら、ニューラルネットワークのサイズを枝刈りにより小さくした場合には、未知の入力情報に対しては、枝刈りにより削除されたニューロンユニットの機能を十分に補うことは容易ではない。そのため、未知の環境下においては人工知能の機能が発揮され難い。つまり、枝刈りによるニューロンユニットの削減は、オンサイトラーニングを実行する際に支障になるだけでなく、人工知能の能力低下にも繋がり得るという問題がある。
【０００７】
本発明は、上述した課題を解決するためになされたものであり、未知の環境下における人工知能の能力低下を抑制し得るニューラルネットワークの学習装置および学習方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、特許請求の範囲に記載された請求項１の技術的手段を採用する。この手段によると、主記憶部よりも記憶容量が大きい補助記憶部を有する情報処理装置に実装されるＧＲＮＮ（General Regression Neural Network；一般回帰ニューラルネットワーク）の追記学習を行うニューラルネットワークの学習装置は、ＧＲＮＮを構成し得る複数のニューロンユニットのうち所定入力に対して発火する特定ニューロンユニットを主記憶部に常駐させる第１手段と、特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットを主記憶部に非常駐で実装したり補助記憶部に退避させたりする第２手段と、を備える。
【０００９】
これにより、情報処理装置の主記憶部には、ＧＲＮＮを構成し得る複数のニューロンユニットのうち、所定入力に対して発火する特定ニューロンユニットだけを主記憶部に常駐させるため、ＧＲＮＮを構成し得る複数のニューロンユニットのすべてを主記憶部に常駐（実装）させる必要がない。なお、このような特定ニューロンユニットを特定し得る所定入力は、例えば、主記憶部の実装可能領域のサイズに基づいて予め定められる。また、特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットは、例えば、必要なときに、主記憶部に非常駐で実装されることから、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。さらに、このような１つ以上の関連ニューロンユニットは、例えば、不必要なときには、補助記憶部に退避させられることから、不要な関連ニューロンユニットが主記憶部に常駐することにより実装可能領域が減少することも抑制される。
【００１０】
また、特許請求の範囲に記載された請求項２の技術的手段を採用する。この手段によると、(1) 特定ニューロンユニットを主記憶部に常駐させるとともに関連ニューロンユニットを補助記憶部に退避させている場合、所定入力があると関連ニューロンユニットを補助記憶部から読み出して主記憶部に実装する。また、(2) 特定ニューロンユニットを主記憶部に常駐させるとともに関連ニューロンユニットが主記憶部に実装されている場合、所定入力がなく且つ主記憶部の実装可能領域が不足していると、関連ニューロンユニットを主記憶部から補助記憶部に退避させる。これにより、補助記憶部に退避していた関連ニューロンユニットは、所定入力があると主記憶部に実装されるため、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。また、主記憶部に実装されていた関連ニューロンユニットは、所定入力がなく且つ主記憶部の実装可能領域が不足しているときには補助記憶部に退避させられるため、主記憶部の実装可能領域が減少することも抑制される。
【００１１】
また、特許請求の範囲に記載された請求項３の技術的手段を採用する。この手段によると、特定ニューロンユニットを主記憶部に常駐させるとともに関連ニューロンユニットを補助記憶部に退避させている場合において、１つ以上の関連ニューロンユニットの合計実装サイズが主記憶部の実装可能領域を超えているときには、関連ニューロンユニットの集まりを実装可能領域に収まる実装サイズの複数の集まりに分割し、複数の集まりのそれぞれごとに異なるタイミングで主記憶部に実装する。これにより、補助記憶部に退避していた１つ以上の関連ニューロンユニットの合計実装サイズが主記憶部の実装可能領域を超えている場合においては、１つ以上の関連ニューロンユニットは複数の集まりに分割されてそれぞれごとに異なるタイミングで主記憶部に実装されるので、このような場合においても、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。
【００１２】
また、特許請求の範囲に記載された請求項４の技術的手段を採用する。この手段によると、特定ニューロンユニットは、ＧＲＮＮの入力層において当該入力層に入力される複数種類の情報に対してほぼ偏りなく疎に配置される。例えば、入力層に２種類の情報ｘ，ｙが入力されそれぞれの情報ｘ，ｙの大きさや強さにより表現可能なｘ，ｙ平面において、特定ニューロンユニットはほぼ偏りなく疎に配置される。これにより、例えば、特定ニューロンユニットが密に配置されている場合に比べて、異なる特定ニューロンユニットが代わる代わる発火する可能性が低くなる。そのため、特定ニューロンユニットの発火に伴う関連ニューロンユニットの読込み回数や、他の特定ニューロンユニットの発火に伴う関連ニューロンユニットの退避回数を減らすことが可能になる。また、例えば、特定ニューロンユニットの配置が疎であってもそれが一部の範囲に偏っている場合に比べて、特定ニューロンユニットの発火に伴う関連ニューロンユニットの読込み回数や他の特定ニューロンユニットの発火に伴う関連ニューロンユニットの退避回数が一部において増減したり残部において減増したりする可能性を低減することができる。
【００１３】
上記目的を達成するため、特許請求の範囲に記載された請求項５の技術的手段を採用する。この手段によると、主記憶部よりも記憶容量が大きい補助記憶部を有する情報処理装置に実装されるＧＲＮＮ（General Regression Neural Network；一般回帰ニューラルネットワーク）の追記学習を行うニューラルネットワークの学習方法は、ＧＲＮＮを構成し得る複数のニューロンユニットのうち所定入力に対して発火する特定ニューロンユニットを主記憶部に常駐させ、特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットを主記憶部に非常駐で実装したり補助記憶部に退避させたりする。
【００１４】
これにより、情報処理装置の主記憶部には、ＧＲＮＮを構成し得る複数のニューロンユニットのうち、所定入力に対して発火する特定ニューロンユニットだけを主記憶部に常駐させるため、ＧＲＮＮを構成し得る複数のニューロンユニットのすべてを主記憶部に常駐（実装）させる必要がない。なお、このような特定ニューロンユニットを特定し得る所定入力は、例えば、主記憶部の実装可能領域のサイズに基づいて予め定められる。また、特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットは、例えば、必要なときに、主記憶部に非常駐で実装されることから、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。さらに、このような１つ以上の関連ニューロンユニットは、例えば、不必要なときには、補助記憶部に退避させられることから、不要な関連ニューロンユニットが主記憶部に常駐することにより実装可能領域が減少することも抑制される。
【発明の効果】
【００１５】
請求項１の発明では、情報処理装置の主記憶部には、ＧＲＮＮを構成し得る複数のニューロンユニットのうち、所定入力に対して発火する特定ニューロンユニットだけを主記憶部に常駐させるため、ＧＲＮＮを構成し得る複数のニューロンユニットのすべてを主記憶部に常駐（実装）させる必要がない。また、特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットは、必要なときに主記憶部に非常駐で実装されることから、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。さらに、このような１つ以上の関連ニューロンユニットは、不必要なときには補助記憶部に退避させられることから、不要な関連ニューロンユニットが主記憶部に常駐することにより実装可能領域が減少することも抑制される。したがって、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）においても、未知の環境下における人工知能の能力低下を抑制することが可能になる。
【００１６】
請求項２の発明では、補助記憶部に退避していた関連ニューロンユニットは、所定入力があると主記憶部に実装されるため、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。また、主記憶部に実装されていた関連ニューロンユニットは、所定入力がなく且つ主記憶部の実装可能領域が不足しているときには補助記憶部に退避させられるため、主記憶部の実装可能領域が減少することも抑制される。したがって、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）においても、未知の環境下における人工知能の能力低下を抑制することが可能になる。
【００１７】
請求項３の発明では、補助記憶部に退避していた１つ以上の関連ニューロンユニットの合計実装サイズが主記憶部の実装可能領域を超えている場合においては、１つ以上の関連ニューロンユニットは複数の集まりに分割されてそれぞれごとに異なるタイミングで主記憶部に実装されるので、このような場合においても、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。したがって、補助記憶部に退避していた１つ以上の関連ニューロンユニットの合計実装サイズが主記憶部の実装可能領域を超えている場合であっても、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）において未知の環境下における人工知能の能力低下を抑制することが可能になる。
【００１８】
請求項４の発明では、特定ニューロンユニットが密に配置されていたり一部の範囲に偏って疎に配置されていたりする場合に比べて、関連ニューロンユニットの読込みや退避の回数が全般的または部分的に増えることを抑制する。したがって、ＧＲＮＮが実装されている情報処理装置の追記学習に伴う情報処理負荷が低減するので、当該情報処理装置の処理速度の低下を抑制することが可能になる。
【００１９】
請求項５の発明では、情報処理装置の主記憶部には、ＧＲＮＮを構成し得る複数のニューロンユニットのうち、所定入力に対して発火する特定ニューロンユニットだけを主記憶部に常駐させるため、ＧＲＮＮを構成し得る複数のニューロンユニットのすべてを主記憶部に常駐（実装）させる必要がない。また、特定ニューロンユニットに関連付けられている１つ以上の関連ニューロンユニットは、必要なときに主記憶部に非常駐で実装されることから、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。さらに、このような１つ以上の関連ニューロンユニットは、不必要なときには補助記憶部に退避させられることから、不要な関連ニューロンユニットが主記憶部に常駐することにより実装可能領域が減少することも抑制される。したがって、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）においても、未知の環境下における人工知能の能力低下を抑制することが可能になる。
【図面の簡単な説明】
【００２０】
【図１】本発明のニューラルネットワークの学習装置を適用した組み込みシステムの構成例を示すブロック図である。
【図２】図１に示すＧＲＮＮの基本的な構成例を示す説明図である。
【図３】本実施形態に係る学習装置のＧＲＮＮを構成する各ニューロンユニットの状態を表した説明図である。
【図４】本実施形態に係る学習装置のＧＲＮＮを構成する各ニューロンユニットの状態の他の例を表した説明図である。
【図５】本実施形態に係る学習処理の流れを示すフローチャートである。
【図６】図５に示す学習処理を構成する出力計算処理の流れを示すフローチャートである。
【図７】図６に示す出力計算処理を構成する不要不急クラスターユニットに属する関連ユニットの退避等の処理の流れを示すフローチャートである。
【図８】図５に示す学習処理を構成するクラスターユニット用学習処理の流れを示すフローチャートである。
【図９】図８に示すクラスターユニット用学習処理を構成するクラスターユニット配置変更処理の流れを示すフローチャートである。
【図１０】改変例による出力計算処理の流れを示すフローチャートである。
【図１１】検証実験による結果を示す説明図で、図１１(A)は学習サンプルを「Concrete」に設定したもの、図１１(B)は学習サンプルを「servo」に設定したもの、である。
【図１２】検証実験による結果を示す説明図で、図１２(A)は学習サンプルを「housing」に設定したもの、図１２(B)は学習サンプルを「hearta1」に設定したもの、である。
【発明を実施するための形態】
【００２１】
以下、本発明のニューラルネットワークの学習装置および学習方法の実施形態について図を参照して説明する。本発明のニューラルネットワークの学習装置（学習方法）を組み込みシステムに適用した実施形態を図１〜図１２に基づいて説明する。なお、図１には、本実施形態の組み込みシステム１０の構成例を示すブロック図、図２には、ＧＲＮＮ５０の基本的な構成例を示す説明図、がそれぞれ図示されている。また図３および図４には、ＧＲＮＮ５０を構成する各ニューロンユニットの状態を表した説明図が図示されている。
【００２２】
図１に示すように、組み込みシステム１０は、ハードウェアとして、制御装置２０、二次記憶装置３０、アクセラレータ４０および図略の入出力装置（例えば、監視カメラやディスプレイ）等を備えている。本実施形態では、組み込みシステム１０は、例えば、工場で生産される製品ごとに品質管理を行い得る品質管理システムを想定しており、人工知能の機能を備えている。
【００２３】
制御装置２０は、例えば、汎用のマイクロコンピュータ（ＣＰＵ）と、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ等の半導体メモリ装置と、入出力インタフェースとから構成される、いわゆるマイコンボードである。制御装置２０は、主に、当該組み込みシステム１０で行われる情報処理や当該情報処理に関する制御処理を行っている。本実施形態では、制御装置２０は、図略の監視カメラから入力された入力情報に基づいて所定の情報処理を行い、それにより得られた結果（出力情報）等を図略のディスプレイ等に表示する。なお、アクセラレータ４０のＲＡＭは、特許請求の範囲に記載の「主記憶部」に相当し得るものである。
【００２４】
本実施形態では、制御装置２０は、人工知能に関する情報処理を高速に実行するため、本来であれば制御装置２０が行うべき当該情報処理をアクセラレータ４０に肩代わりさせている。そのため、制御装置２０は、図略の監視カメラや図略のディスプレイのほかに、入出力インタフェースを介してアクセラレータ４０にも接続されており、人工知能による情報処理の結果についてはアクセラレータ４０から取得している。なお、図略の監視カメラは、制御装置２０を介することなく、直接、アクセラレータ４０に接続してもよい。
【００２５】
二次記憶装置３０は、例えばＤＲＡＭである。ＤＲＡＭは、フラッシュメモリでは書込み回数の制限を超えると発生し得るビット化け等が生じ難く、またアクセス速度も比較的速いため、本実施形態では二次記憶装置３０に使用している。なお、半導体技術の向上により書込み回数制限が桁違いに増加したり、ＧＲＮＮ５０の使用形態として当該組み込みシステム１０の使用可能期間内における二次記憶装置３０の使用が書込み回数制限を超えない範囲で想定されたりする場合には、二次記憶装置３０にフラッシュメモリを用いてもよい。
【００２６】
アクセラレータ４０は、本実施形態では、ＧＲＮＮ５０や、クラスターユニットの学習モジュール（以下「ＣＵ学習モジュール」という）６０を機能させるために専用に設けられているハードウェアアクセラレータである。アクセラレータ４０は、例えば、画像処理用に構成されているグラフィックスプロセシングユニット（ＧＰＵ）と、ＲＯＭ、ＲＡＭ等の半導体メモリ装置と、入出力インタフェースとから構成されている。アクセラレータ４０は、ＧＰＵを構成している複数の演算処理装置等が行列計算やベクトル計算に適した構成を採っている点で制御装置２０と相違する。
【００２７】
なお、本実施形態では、制御装置２０やアクセラレータ４０の半導体メモリ装置は、例えば、数Ｇバイト〜１０数Ｇバイトの記憶容量を有する。これに対して、二次記憶装置３０のＤＲＡＭは、数１０Ｇバイト〜１００Ｇバイトの記憶容量を有する。つまり、制御装置２０やアクセラレータ４０に比べて、二次記憶装置３０の方が数倍〜１０倍程度大きな記憶容量を有するようにそれぞれが構成されている。
【００２８】
このように組み込みシステム１０を構成することによって、図略の監視カメラから入力された画像情報（未知入力）は、制御装置２０を介して（または制御装置２０を介することなく直接、）アクセラレータ４０に入力されてＧＲＮＮ５０に渡される。そして、ＧＲＮＮ５０により得られた予測情報（予測出力）は、制御装置２０に出力されて制御装置２０による所定の情報処理に用いられる。
【００２９】
即ち、アクセラレータ４０のＲＡＭにより構成される所定のメモリ領域（実装可能領域）にＧＲＮＮ５０を実装可能に構成されている。また、アクセラレータ４０のＲＯＭには、当該アクセラレータ４０の基本機能を働かせる制御プログラムやＣＵ学習モジュール６０等の学習プログラムが実装されている。
【００３０】
なお、本明細書において「実装」とは、アクセラレータ４０等のハードウェアのメモリ（ＲＡＭ等の半導体メモリ装置）にプログラムやデータ等を読み込んだりロードしたりしてそれらが使用できるようにすることをいい、概念的には、例えば、アクセラレータ４０にＧＲＮＮ５０の機能を組み込んで使用可能にすることも含んでいる（インプリメントやインプリメンテーションと称される場合もある）。そのため、本明細書においては、アクセラレータ４０のＲＡＭにクラスターユニットＣＵ等を読み込んでＧＲＮＮ５０として機能を発揮し得るようにすることを単に「アクセラレータ４０に実装する」と表現している場合があることに注意されたい。
【００３１】
ここで、ＧＲＮＮ５０の基本的な構成例と、ＧＲＮＮ５０を構成する各ニューロンユニットの状態について図２〜図４を参照して説明する。なお、図３および図４においては、図面表現上の便宜から、クラスターユニットＣＵは濃いグレー、アクティブユニットＡＵはやや濃いグレー、スリープユニットＳＵは薄いグレーにそれぞれ着色して区別可能にしている。そのため、これらの各ユニットにはＣＵ，ＡＵ，ＳＵの符号が付されていないものがあることに注意されたい。
【００３２】
図２に示すように、ＧＲＮＮ５０は、入力層、パターン層、加算層および出力層により構成されている（なお、パターン層および加算層は、中間層や隠れ層とも称される）。これらの各層は、複数のニューロンユニット（神経細胞に相当する記憶ユニット）の集まりにより構成されており、これらの各層のニューロンユニットは前後段において相互に接続されている。以下、本明細書において、ニューロンユニットのことを、単に「ユニット」と省略して表現する場合がある。
【００３３】
本実施形態のＧＲＮＮ５０では、入力層や中間層等を構成するユニットの数は、例えば数１０に設定されており、アクセラレータ４０のＲＡＭによる所定のメモリ領域上にはそのすべてを実装することは難しい。そのため、図３に示すように、例えば、入力層を構成する複数のユニットのうち、特定の入力情報に対して発火したクラスターユニットＣＵとそれに関連するユニット（アクティブユニットＡＵ）とをアクセラレータ４０のＲＡＭに実装し、残りのユニット（スリープユニットＳＵ）は当該ＲＡＭに実装せずに二次記憶装置３０に格納して退避させている。これらについては、次に図３や図４を参照しながら詳しく説明する。
【００３４】
ＧＲＮＮ５０は、後述するように、学習サンプルが提示されると、このサンプルに対応するユニットが二次記憶装置３０に格納されることで、未知のサンプルが入力されるとそれに最も近いユニットを二次記憶装置３０から探し出してその出力を予測出力として出力し得るように構成されている。これにより、ユニットは、ルックアップテーブルを連続関数近似で使用できるようにしたものとして解釈することができ、釣鐘型のガウス関数の重み付きの和として出力可能に構成されている。なお、ユニットの数は、複数であれば１００でも２００でも１０００でも良く、特に定数に限定されるものではない。
【００３５】
図３に示すように、本実施形態では、ＧＲＮＮ５０を構成し得る複数のユニットのうちの一部だけがアクセラレータ４０のＲＡＭに実装され得るように構成している。アクセラレータ４０のＲＡＭは、所定のメモリ領域（ユニットの実装可能領域）が有限であり、ＧＲＮＮ５０を構成し得る複数のユニットのすべてを実装することができない場合があるからである。また、例えば、家電製品や小型機器製品等においては、コスト的やスペース的にハードウェア構成の制約が厳しいため、アクセラレータ４０のＲＡＭを大容量にすることが難しいからである。
【００３６】
そこで、本実施形態では、例えば、入力層や中間層等を構成する複数のユニットのうち、発火したクラスターユニットＣＵとこのクラスターユニットＣＵに関連付けられた関連ユニットをアクセラレータ４０のＲＡＭに実装し、当該発火したクラスターユニットＣＵに関連付けられていない残りのユニットは当該ＲＡＭに実装せずに二次記憶装置３０に格納して退避させている。このように発火したクラスターユニットＣＵに関連付けられたユニット（以下「関連ユニット」という）は、アクセラレータ４０に一時的に実装されるため、本実施形態ではアクティブユニットＡＵと称される。
【００３７】
しかし、アクティブユニットＡＵであった関連ユニットは、その後、他のクラスターユニットＣＵが発火した場合には、当該他のクラスターユニットＣＵに関連付けられていない限り関連ユニットではなくなる。そのため、スリープユニットＳＵとなり二次記憶装置３０に退避させられる場合がある。つまり、アクティブユニットＡＵやスリープユニットＳＵは、クラスターユニットＣＵ以外のユニットについて、一時的な状態を表した名称に過ぎない。これに対し、クラスターユニットＣＵは、発火の有無に関わらずクラスターユニットＣＵであり、後述するような配属変更がない限り、二次記憶装置３０に格納されることもない。
【００３８】
図３(A)に示す例では、受容野ＲＦと加算層ＡＬの間に位置して、この図では３行３列で表示される４つのユニット群のうち、紙面右上、右下および左上の３つのユニット群については、それぞれ中央に位置するクラスターユニットＣＵだけがアクセラレータ４０に実装されており、クラスターユニットＣＵの周囲に位置する８個のスリープユニットＳＵは、いずれも二次記憶装置３０に退避させられている。これに対して、紙面左下のユニット群においては、その中央のクラスターユニットＣＵに加えて、周囲の８個のアクティブユニットＡＵもアクセラレータ４０に実装されている。
【００３９】
クラスターユニットＣＵは、クラスターユニットＣＵの配属を変更する場合を除いて、アクセラレータ４０に常に実装されている（常駐している）ユニットである。クラスターユニットＣＵは、予め決められた一定数だけ存在しており、後述するクラスターカーネル用学習処理（図８参照）において置き換えや配属変更等が行われる。なお、クラスターユニットＣＵの数（一定数）は、例えば、入力層に入力される情報（入力信号等）の数に基づいて決められる。
【００４０】
クラスターユニットＣＵ以外のユニットは、アクティブユニットＡＵおよびスリープユニットＳＵのいずれにもなり得る。即ち、アクティブユニットＡＵやスリープユニットＳＵは、特定のクラスターユニットＣＵの特性に近い特性を有するユニットであり、当該特定のクラスターユニットＣＵに対して関連付けられている。「関連付け」は、紐付けとも称される。特定のクラスターユニットＣＵの特性に対して、あるユニットがそれに近い特性を有するか否かは、動径基底関数（例えば、カーネル関数）を用いて判定される。次の式(1) にガウスカーネル関数を示す。ベクトルｘは式(2)で表される（Tは転置記号）。
【００４１】
【数１】
2019204318.tif 000003
【００４２】
【数２】
2019204318.tif 000004
【００４３】
式(1)において、ｘiは、カーネル関数の中心位置を表すベクトルであり、ユニットｉが記憶している中心位置に相当する。またσはユニットｉの広がりを示す標準偏差を表す。この関数は、ある入力ベクトル（中心相当の入力）に対して大きな値を出力しその入力ベクトルから位置（入力ベクトルを位置ベクトルとした場合の概念）が離れるにつれて出力値が小さくなる釣鐘型の出力特性を有する。そのため、このようなガウスカーネル関数により得られる値が各ユニットから出力されることにより、ＧＲＮＮ５０を構成する各ユニットの役割が単純かつ明確になる。これにより、それぞれのユニットの特性（役割）の近さを中心位置ベクトルの近さとして判定することが可能になる。
【００４４】
本実施形態では、受容野ＲＦに入力された入力情報に対して、あるクラスターユニットＣＵが最も強く反応（発火）すると、それに関連付けられているユニット（関連ユニット）が、まだアクセラレータ４０に実装されていない場合には、二次記憶装置３０からアクセラレータ４０のＲＡＭに読み込まれ実装されてアクティブユニットＡＵになる。クラスターユニットＣＵ以外のユニットは、アクセラレータ４０のＲＡＭに一時的に実装されると、スリープユニットＳＵとして退避させられるまでアクティブユニットＡＵの状態を維持する。アクティブユニットＡＵがスリープユニットＳＵになるか否かは、例えば、その中心位置が最も現在の入力に似ていないもの、またはＬＲＵ（Least Recently Used）のルールに従う。つまり、アクティブユニットＡＵになってから、使用されていない時間が最も長いユニットが退避の対象となる。
【００４５】
例えば、図３(A)に示す例では、受容野ＲＦに入力された入力情報Ｘ１により、紙面左下のユニット群のクラスターユニットＣＵが強く反応（発火）したことによって、発火した当該クラスターユニットＣＵに関連付け（紐付け）られている複数のユニットがアクティブユニットＡＵとして二次記憶装置３０から読み込まれてアクセラレータ４０に実装される。また、受容野ＲＦに入力された入力情報Ｘ１により、発火していないクラスターユニットＣＵ（紙面右上、右下および左上の３個のクラスターユニットＣＵ）に関連付け（紐付け）られている複数のユニットは、スリープユニットＳＵとして、二次記憶装置３０に格納されてアクセラレータ４０のＲＡＭから退避させられる。なお、４個のクラスターユニットＣＵは、発火の有無に関わらず、アクセラレータ４０のＲＡＭに実装されている（常駐している）。
【００４６】
また、図３(B)に示す例では、受容野ＲＦに入力情報Ｘ２が入力されたことにより、紙面右上のユニット群のクラスターユニットＣＵが強く反応（発火）したことによって、紙面右上のユニット群には、その中央の常駐しているクラスターユニットＣＵに加えて、周囲の８個のアクティブユニットＡＵもアクセラレータ４０に実装されている。また、受容野ＲＦに入力情報Ｘ２が入力されても発火していない他のクラスターユニットＣＵ（紙面右下、左上および左下の３個のクラスターユニットＣＵ）は、それぞれアクセラレータ４０に常駐してはいるものの、これら他のクラスターユニットＣＵに関連付けられているそれぞれ８個のスリープユニットＳＵはいずれも二次記憶装置３０に退避させられている。
【００４７】
なお、図３(A)や図３(B)に示す例の上記の説明においては、説明を簡素化するため、ユニットが退避の対象になるか否かを決めるルール（例えば、ＬＲＵ）の部分は割愛した。
【００４８】
本実施形態で使用するＧＲＮＮ５０は、このようなガウスカーネル関数の出力を次の式(3)により表されるソフトマックス関数により計算して出力ｙを算出する。式(3)において、ｋ(ｘi,ｘt)は式(1)のガウスカーネル関数を表し、ｗiはユニットｉとの間における結合荷重を表す。
【００４９】
【数３】
2019204318.tif 000005
【００５０】
ところで、アクセラレータ４０のＲＡＭは、そのメモリ領域（実装可能領域）が有限である。そのため、あるクラスターユニットＣＵに関連付けられている関連ユニット（１個のクラスターユニットＣＵに属する複数の関連ユニット（アクティブユニットＡＵやスリープユニットＳＵ））の合計実装サイズがアクセラレータ４０のＲＡＭの記憶容量（メモリ領域の最大値）Ｂを超えている場合には、それらの関連ユニットのすべてを同時にアクセラレータ４０に実装することができない。なお、本明細書においては、関連ユニットの実装サイズ（メモリ上の占有領域サイズ）のことをユニットの個数に換算して「関連ユニットの数」等と表現する場合があることに注意されたい。
【００５１】
本実施形態では、このような場合には、複数の関連ユニットを複数グループ（複数の集まり）に分割して、それぞれ異なるタイミングで、二次記憶装置３０からアクセラレータ４０に読み込んで実装する。例えば、図４に示すように、アクセラレータ４０の実装可能領域がユニット１２個分の実装サイズである場合において、受容野ＲＦに入力情報Ｘ３が入力されて、１７個の関連ユニット（図４に示す破線内）が関連付けられているクラスターユニットＣＵが発火したと仮定する。このようなケースでは、１７個の関連ユニットを２つのグループに分けて異なるタイミングでアクセラレータ４０に実装する。
【００５２】
例えば、図４(A)に示すように、１７個のうちの８個の関連ユニットをアクティブユニットＡＵａとしてアクセラレータ４０に実装する。そして、アクティブユニットＡＵａの計算が完了しその計算結果がアクセラレータ４０のＲＡＭ等に記憶された後、図４(B)に示すように、残りの９個の関連ユニットをアクティブユニットＡＵｂとしてアクセラレータ４０に実装する。これらのアクティブユニットＡＵｂの計算結果は、先に行われたアクティブユニットＡＵａの計算結果に加算されて最終出力が得られる。
【００５３】
より詳細には、次の３つのパターン（第１のパターン〜第３のパターン）に分類される。第１のパターンは、クラスターユニットＣＵに関連付けられている関連ユニットの数Ｎがアクセラレータ４０の記憶容量Ｂ以上の場合である（Ｎ≧Ｂ）。この場合には、その直前（現在時刻ｔ−１）に使用されたアクティブユニットＡＵが現在の発火したクラスターユニットＣＵにも関連付けられているときには、そのアクティブユニットＡＵについて、現時点の入力情報に対する出力を計算してその結果をアクセラレータ４０のＲＡＭ等に記憶する。そして、そのアクティブユニットＡＵをスリープユニットＳＵとして二次記憶装置３０に退避させた後、残りの関連ユニットを二次記憶装置３０からアクセラレータ４０に読み込んで実装する。これにより、残りのアクティブユニットＡＵについても現時点の入力情報に対する出力を計算し、その後行計算の結果を先行計算の結果に加算して最終出力を得る。
【００５４】
第２のパターンは、クラスターユニットＣＵに関連付けられている関連ユニットの数Ｎがアクセラレータ４０の記憶容量Ｂ未満の場合であって（Ｎ＜Ｂ）、現在の発火したクラスターユニットＣＵと関係のないクラスターユニットＣＵの関連ユニットがアクセラレータ４０に実装されているときである。このような場合には、たとえ関連ユニットの数Ｎがアクセラレータ４０の記憶容量Ｂ未満であったとしても、二次記憶装置３０からアクセラレータ４０に関連ユニットを順次読み込んでいく過程においてアクセラレータ４０の記憶容量Ｂが不足する蓋然性が高い。そのため、このような場合には、アクセラレータ４０の記憶容量Ｂが不足したタイミングで、それまでに実装することのできたアクティブユニットＡＵについても現時点の入力情報に対する出力を計算してその結果をアクセラレータ４０のＲＡＭ等に記憶する。そして、それらのアクティブユニットＡＵをスリープユニットＳＵとして二次記憶装置３０に退避させた後、残りの関連ユニットを二次記憶装置３０からアクセラレータ４０に読み込んで実装する。これにより、残りのアクティブユニットＡＵについても現時点の入力情報に対する出力を計算し、その後行計算の結果を先行計算の結果に加算して最終出力を得る。
【００５５】
第３のパターンは、クラスターユニットＣＵに関連付けられている関連ユニットの数Ｎがアクセラレータ４０の記憶容量Ｂ未満の場合であって（Ｎ＜Ｂ）、現在の発火したクラスターユニットＣＵと関係のないクラスターユニットＣＵの関連ユニットがアクセラレータ４０に実装されていないときである。つまり、アクセラレータ４０の記憶容量Ｂがすべて空いているときである。このような場合には、クラスターユニットＣＵの関連ユニットをすべてアクセラレータ４０に実装することができるため、すべての関連ユニットを二次記憶装置３０からアクセラレータ４０に読み込んで実装した後、それぞれのアクティブユニットＡＵについて現時点の入力情報に対する出力を計算してそれらを加算して最終出力を得る。
【００５６】
図１に戻って、ＣＵ学習モジュール６０について説明する。ＣＵ学習モジュール６０は、予測誤差計算モジュール６１、新規ユニット追加モジュール６３、削除ユニット肩代わりモジュール６５、ユニット削除・追加モジュール６６により構成されている。ＣＵ学習モジュール６０には、未知入力（ベクトルＸ）のほかに学習サンプル（ベクトルｘ，ｙ）も入力される。学習サンプル（ベクトルｘ，ｙ）は、クラスターカーネルの学習に用いられるとともに、それに対応するカーネルも生成されて二次記憶装置３０に格納される。つまり、未知入力（ベクトルＸ）を含めてすべてのサンプルが二次記憶装置３０に格納されて記録（記憶）される。なお、予測誤差計算モジュール６１、新規ユニット追加モジュール６３、削除ユニット肩代わりモジュール６５、ユニット削除・追加モジュール６６は、後述する学習処理を可能にするプログラム群であり前述したアクセラレータ４０のＲＯＭに格納されている。
【００５７】
＜学習処理＞
次に、ＣＵ学習モジュール６０による学習処理のアルゴリズムについて、図５〜図９を参照しながら説明する。図５には、本実施形態に係る学習処理の流れを示すフローチャートが図示されている。また図６には、図５に表されている出力計算処理の流れを示すフローチャートが図示されている。さらに図７には、図６に表されている不要不急クラスターユニットに属する関連ユニットの退避等の処理の流れを示すフローチャートが図示されている。また図８には、図５に表されているクラスターユニット用学習処理の流れを示すフローチャートが図示されている。また図９には、図８に表されているクラスターユニット配置変更処理の流れを示すフローチャートが図示されている。
【００５８】
図５に示すように、まず本実施形態の学習処理では、ステップＳ１０１により新規の学習サンプルを入力情報として取り込む処理が行われる。現在時刻ｔにおける入力ベクトルｘtとそれに対応する出力ｙtである。なお、このステップＳ１０１は、単位時刻ごとに実行されるため、学習サンプルが入力されるごとに行われる。当該組み込みシステム１０の場合には、学習サンプルの入力情報は、例えば、図略の監視カメラから入力される既知の画像情報である。
【００５９】
続くステップＳ２００では出力計算処理が行われる。この処理は、不要不急なユニットをアクセラレータ４０から二次記憶装置３０に退避させたり、また必要なユニットを二次記憶装置３０からアクセラレータ４０に読み込んだり、さらには前掲の式(3)の計算を行ったりするものである。このような出力計算処理（サブルーチン）は、そのアルゴリズムが図６に表されているため、後で図６を参照しながら詳述する。
【００６０】
ステップＳ１０３では、ｅcum＝ｅcum＋(ｙt−ｙ)2により累積誤差ｅcumが算出される。ｙtは、学習サンプルの出力であり、ｙはＧＲＮＮ５０による最終出力である。
【００６１】
続くステップＳ３００ではクラスターユニット用学習処理が行われる。この処理は、第ｉクラスターユニット（クラスターユニットＣＵ）が学習を行うものであり、図８にアルゴリズムが図示されている。そのため、このようなクラスターユニット用学習処理（サブルーチン）の流れ等についても、後で図８を参照しながら詳述する。
【００６２】
次のステップＳ１０５では、次の式(4)で表される集合演算による探索処理が行われる。即ち、この探索処理では、一定数のクラスターユニットＣＵが集まる集合Ｃにおいて、新たなサンプル（入力ベクトルｘt）が入力された場合に出力が最も大きい（最大発火する）第ｉクラスターユニットを探す処理である。
【００６３】
【数４】
2019204318.tif 000006
【００６４】
ステップＳ１０７では、新規（時刻ｔ）の学習サンプルに対応したユニットを生成する（Ｎi＝Ｎi∪{ｔ}）とともにそれを二次記憶装置３０に追加（Ｓ2＝Ｓ2∪{ｔ}）する処理が行われる。Ｎiは、第ｉクラスターユニットに関連付けられたユニットの集合である。またＳ2は、二次記憶装置３０に退避したユニット（スリープユニットＳＵ）の集合である。なお「∪」は、集合に加える意の演算子である。また、ｉは、出力計算処理（Ｓ２００）により最大出力を出しているクラスターユニットＣＵに付与されている番号である。また、ユニットが二次記憶装置３０に退避させられた時刻ｔtRは、０（ゼロ）に設定される。なお、本明細書において「ＸAB」の表記は、記号Ｘに対して、Ａが下付き記号でありＢが上付き記号であることを表す。
【００６５】
そして、ステップＳ１０９では、現在時刻ｔを単位時刻だけ進める処理（ｔ＝ｔ＋１）が行われる。この現在時刻ｔは、出力計算処理（Ｓ２００）等において用いられる。ステップＳ１０９の処理が終わると、一連の学習処理が完了するため、ステップＳ１０１に処理を移行して、再び新規の学習サンプルを取り込む処理が行われる。
【００６６】
＜出力計算処理＞
次に図６を参照しながら、出力計算処理（Ｓ２００）について説明する。図６に示すように、出力計算処理では、まずステップＳ２０１により変数α，βをそれぞれ初期化（ゼロクリア）する処理が行われる。この変数α，βは、式(3)の分子（α）と分母（β）に相当するものである。
【００６７】
続くステップＳ２０３では、前掲の式(4)で表される集合演算による探索処理が行われる。即ち、この探索処理では、一定数のクラスターユニットＣＵが集まる集合Ｃにおいて、新たなサンプル（入力ベクトルｘt）が入力された現在時刻ｔにおける出力が最も大きい（最大発火する）第ｉクラスターユニットを探す処理である。
【００６８】
この第ｉクラスターを探索する処理は、前述のようにクラスターユニット用学習処理（Ｓ３００）の後で行われる探索処理（Ｓ１０５）と同じである。クラスターユニット用学習処理（Ｓ３００）によってクラスターユニットＣＵの集合の構成に変化が生じ得ることから、当該ステップＳ２０３により実行される時点で得られる探索結果と、ステップＳ１０５により実行される時点で得られる探索結果と、異なる場合がある。そのため、本実施形態では、クラスターユニット用学習処理（Ｓ３００）が行われる前後においてこのような探索が実行される。なお、本来は式(5)により求められるが、式(4)で求める方が計算量が少なくなるため、本実施形態では、式(4)の演算式により探索処理が行われる。
【００６９】
【数５】
2019204318.tif 000007
【００７０】
ステップＳ２０５では、Ａc＝Ａc∪{ｉ}が実行される。Ａcは、クラスターユニットのうちそれに関連付けられているユニット（関連ユニット）の集合Ｎiのなかの１個以上のユニットがアクセラレータ４０に実装されているクラスターユニットＣＵの集合である。そのため、このステップＳ２０５では、ステップＳ２０３の探索により見つかった第ｉクラスターユニットを、集合Ａcに加える処理が行われる。
【００７１】
ステップＳ２０７は、ループ処理の一端側であり、他端側のループ端（Ｓ２１３）との間において、現在時刻よりも前の時刻ｔj*Rに二次記憶装置３０に退避したユニットの集合Ｓ2に第ｉクラスターユニットに関連付けられた関連ユニットが存在している場合にステップＳ２０９，Ｓ４００，Ｓ２１１の各処理を繰り返す。
【００７２】
ステップＳ２０９では、アクセラレータ４０に実装されているユニット（クラスターユニットＣＵおよびアクティブユニットＡＵ）の数（|Ｓ1|）がアクセラレータ４０の記憶容量Ｂ未満であるか否かを判定する処理が行われる。そして、アクセラレータ４０に実装されているユニット数が、記憶容量Ｂ未満でない場合には（Ｓ２０９；Ｎｏ）、ステップＳ４００の「不要不急クラスターに属する関連ユニットの退避等の処理」を実行し、記憶容量Ｂ未満である場合には（Ｓ２０９；Ｙｅｓ）、ステップＳ４００をスキップする。
【００７３】
続く、ステップＳ２１１では、ステップＳ２０３により見つけられた第ｉクラスターユニットに関連付けられている関連ユニットを、二次記憶装置３０から読み出してアクセラレータ４０に実装する処理（Ｓ2＝Ｓ2＼{ｊ*}，Ｓ1＝Ｓ1∪{ｊ*}）が行われる。「＼」は、集合から取り除く意の演算子である。なお、ステップＳ４００による「不要不急クラスターに属する関連ユニットの退避等の処理」は、図７にアルゴリズムが図示されている。これについては後で詳述する。
【００７４】
ステップＳ２１４では、Ａc＝Ａc＼{ｒ}が実行される。ｒは、不要不急クラスターに属する関連ユニットの退避等の処理（Ｓ４００）において、探索されるクラスターユニットを示す記号であり、第ｒクラスターユニットは、クラスターユニットに関連付けられているユニット（関連ユニット）の集合Ｎiのなかの１個以上のユニットがアクセラレータ４０に実装されているクラスターユニットＣＵの集合において、新たなサンプル（入力ベクトルｘt）が入力された現在時刻ｔにおける出力が最も小さいクラスターユニットである。即ち、ステップＳ２１４では、このようなクラスターユニットＣＵの集合から、第ｒクラスターユニットを除く処理が行われる。
【００７５】
ステップＳ２１５では、式(3)の分子α、分母βの演算がそれぞれ行われ、さらにステップＳ２１７では、式(3)の演算（ｙ＝α／β）が行われる。なお「＋＝」は加算代入演算子である。これにより、ＧＲＮＮ５０による最終出力ｙが得られる。ステップＳ２１７の演算処理が終了すると、このような一連の出力計算処理が完了するため、図５に示す学習処理（メインルーチン）に戻る。
【００７６】
＜不要不急クラスターの関連ユニット処理＞
続いて図７を参照しながら、不要不急クラスターに属する関連ユニットの退避等の処理（Ｓ４００）について説明する。なお、以下「不要不急クラスターに属する関連ユニットの退避等の処理」のことを「不要不急クラスターの関連ユニット処理」と省略する。図７に示すように、不要不急クラスターの関連ユニット処理では、まずステップＳ４０１により次の式(6)で表される集合演算による探索処理が行われる。
【００７７】
【数６】
2019204318.tif 000008
【００７８】
即ち、このステップＳ４０１では、クラスターユニットのうちそれに関連付けられているユニット（関連ユニット）の集合Ｎiのなかの１個以上のユニットがアクセラレータ４０に実装されているクラスターユニットＣＵの集合において、新たなサンプル（入力ベクトルｘt）が入力された現在時刻ｔにおける出力が最も小さい第ｒクラスターユニットを探す。このようなクラスターユニットは、現在時刻ｔにおいては、重要ではなくまた急遽必要になる蓋然性も低い。そのため、このような第ｒクラスターユニットに関連付けられている関連ユニットが退避の対象になり得る。次のステップＳ４０３では、このような第ｒクラスターユニットについて、式(3)の分子α、分母βの演算がそれぞれ行われる。
【００７９】
ステップＳ４０５は、ループ処理の一端側であり、他端側のループ端（Ｓ４０９）との間において、第ｒクラスターユニットに関連付けられている関連ユニットのうちアクセラレータ４０に実装されているものについて、二次記憶装置３０に退避した時刻ｔiRを現在時刻に設定する（Ｓ４０７）。これにより、前述した第１のパターンにおいて、当該第ｒクラスターユニットの関連ユニットが二次記憶装置３０からアクセラレータ４０に読み込まれて実装される際に、二次記憶装置３０に退避した時刻ｔiRにおける入力情報に対する計算が行われているか否かを容易に判定することが可能になる。
【００８０】
続く、ステップＳ４１１では、ステップＳ４０１により見つけられた第ｒクラスターユニットに関連付けられている関連ユニットのうちアクセラレータ４０に実装されているものについて、アクセラレータ４０から二次記憶装置３０に退避させる処理（Ｓ2＝Ｓ2∩{Ｎr∩Ｓ1}，Ｓ1＝Ｓ1＼{Ｎr∩Ｓ1}）が行われる。
【００８１】
なお、ステップＳ４０１において、関連ユニットの集合Ｎiのなかの１個以上のユニットが、アクセラレータ４０に実装されているクラスターユニットＣＵの集合で唯一１個になるまで削減された場合には、このようなクラスターユニットＣＵは、ステップＳ２０３で探索される第ｉクラスターユニットに一致することになる。この場合、このクラスターユニットＣＵに関連付けられている関連ユニットの数は、アクセラレータ４０の記憶容量Ｂよりも大きいことを意味する。
【００８２】
このような場合であっても不要不急クラスターの関連ユニット処理（Ｓ４００）では、ステップＳ４０３で計算済みとなったユニットをアクセラレータ４０から二次記憶装置３０に退避させる（Ｓ４１１）。そして、ステップＳ２０９（|Ｓ1|＜Ｂ；Ｙｅｓ）→ステップＳ２１１→ステップＳ２１３によって未計算の関連ユニットが二次記憶装置３０から読み込まれる。したがって、クラスターユニットＣＵに関連付けられている関連ユニットの数がアクセラレータ４０の記憶容量Ｂよりも大きい場合であっても正確に出力計算が実行される。
【００８３】
換言すると、ステップＳ４０１で探索された第ｒクラスターユニットに関連付けられてアクセラレータ４０に実装されている関連ユニットは、すべて二次記憶装置３０に退避されてアクセラレータ４０から第ｒクラスターユニットが取り除かれる。これにより、アクセラレータ４０の記憶容量Ｂに生じた空き領域には、ステップＳ２０７→ステップＳ２０９（|Ｓ1|＜Ｂ；Ｙｅｓ）→ステップＳ２１１によって、ステップＳ２０３で探索される第ｉクラスターユニットに関連付けられている関連ユニットがアクセラレータ４０の記憶容量Ｂが満杯になるまで二次記憶装置３０から読み込まれる（実装される）。
【００８４】
そして、アクセラレータ４０が満杯になるたびに、再びステップＳ４０１により探索された第ｒクラスターユニットに関連付けられている関連ユニットが二次記憶装置３０に退避される。したがって、第ｉクラスターユニットに関連付けられていないユニットは、アクセラレータ４０から完全に排除されてしまう場合があり、このような場合には、Ｓ２０３で探索された第ｉクラスターユニットと、二次記憶装置３０に唯一残った第ｒクラスターユニットと、が一致することになる。
【００８５】
なお、第ｒクラスターユニットに関連付けられている関連ユニットの数が、アクセラレータ４０の記憶容量Ｂを超えるときには、前述したステップＳ２１４により、アクセラレータ４０に実装されているクラスターユニットＣＵの集合から、このような第ｒクラスターユニットは取り除かれる。そして、未だ計算されていないユニットが二次記憶装置３０から読み込まれて計算の対象になる。
【００８６】
ステップＳ４１１の処理が終了すると、このような一連の不要不急クラスターの関連ユニット処理が完了するため、図６に示す出力計算処理に移行する。
【００８７】
＜クラスターユニット用学習処理＞
次に図８を参照しながら、クラスターユニット用学習処理（Ｓ３００）について説明する。図８に示すクラスターユニット用学習処理は、［先行技術文献］の欄の特許文献１（特開２０１２−９８９７１号公報）に開示されているＬＧＲＮＮ（Limited General Regression Neural Network）の学習方法を活用したものである。なお、当該特許文献１は、本件出願人による特許出願に係る公開公報であり、発明者は本件の筆頭発明者である。
【００８８】
この学習方法は、元々限られた個数のユニット（カーネル）で追記学習を可能にするものであり、この学習モデルによる学習を継続することにより自ずとユニット（カーネル）の配置が疎になるように再配置される。冗長なユニットは、互いに発火領域が大きく重なり得ることから、再配置を繰り返すことによって近接したユニットが存在しなくなる結果、ユニットの配置が疎になるからである。このように入力層においてユニットの配置が疎になることは、本実施形態の学習装置や学習方法にとっては望ましい。
【００８９】
ユニットの配置において一部分が「密」で他部分が「疎」というようにユニットの配置にバラツキがある場合には、例えば、あるクラスターユニットＣＵが反応する範囲は広く、別のクラスターユニットＣＵが反応する範囲が狭いというような現象が生じ得る。すると、それぞれのクラスターユニットＣＵに関連付けられている関連ユニットの個数にもバラツキが生じてしまうことから、このようなバラツキによる関連ユニットの個数差が極端に大きくなると、クラスターという一定の集まりに分けて関連ユニットを分散させることが困難になる。これは、二次記憶装置３０から読み込まれるユニットの個数を絞り込むことができないことに繋がる。そのため、ユニットは万遍なく配置されている方が本実施形態の学習装置や学習方法にとって好適であるといえる。
【００９０】
図８に示すように、クラスターユニット用学習処理では、まずステップＳ３０１により、アクセラレータ４０に実装されているクラスターユニットＣＵのユニット数がアクセラレータ４０の記憶容量Ｂ以下であるか否かを判定する処理が行われる。ユニット数がアクセラレータ４０の記憶容量Ｂ以下でないと判定された場合には（Ｓ３０１；Ｎｏ）、現在実装されている適当なクラスターユニットＣＵを選んでそれと置き換えを行う必要がある。そのため、次のステップＳ３０３により最も冗長なクラスターユニットＣＵを探す処理が行われる。
【００９１】
ステップＳ３０３により冗長ユニットを探す処理は、ｉ*＝argmini{δi}による探索処理により行われる。冗長度δiは、次式(7)により求められ、最も小さいものが置き換え対象として選出される。即ち、式(8)により冗長度δiの値が最も小さいクラスターユニットＣＵを探す処理がステップＳ３０３により行われる。これにより、冗長度δiが最も小さいクラスターユニットＣＵを置き換えの対象にする。冗長度δiが小さいクラスターユニットＣＵは、受容野ＲＦが大きくないことから、入力情報に対してユニットが反応するために必要な空間が狭くなるからである。
【００９２】
【数７】
2019204318.tif 000009
【００９３】
【数８】
2019204318.tif 000010
【００９４】
これに対して、ユニット数がアクセラレータ４０の記憶容量Ｂ以下であると判定された場合には（Ｓ３０１；Ｙｅｓ）、アクセラレータ４０のＲＡＭにはクラスターユニットＣＵを実装する余裕があるので、ステップＳ３０２に移行して新たなクラスターユニットＣＵを追加、つまり新規ユニットの追加処理を行い、追記学習を行う。この処理は、図１に示す新規ユニット追加モジュール６３により行われる。
【００９５】
ステップＳ３０５では、ステップＳ３０３で探したクラスターユニットＣＵに対して、無視（eignore）や置き換え処理（ereplace）について予測誤差を求める処理を行う。この処理は、図１に示す予測誤差計算モジュール６１により行われる。置き換え処理による予測誤差ereplaceは、特許文献１（特開２０１２−９８９７１号公報）に開示されている［数１３］の式(13)により定義され、また無視による予測誤差eignoreは、同特許文献１に開示されている［数１５］の式(15)により定義されている。そして、ステップＳ３０５によりそれぞれの予測誤差が算出されると、続くステップＳ３０７によって、予測誤差の最も小さいものに対応する処理（置き換え処理（Replace処理）、無視（Ignore））を選択する処理が行われる。この処理も図１に示す予測誤差計算モジュール６１により行われる。
【００９６】
そして、ステップＳ３０７によりReplace処理が選択された場合には（Ｓ３０９；Replace）、ステップＳ３０９によりReplace処理（ｔjR＝ｔ，Ｓ2＝Ｓ2∪{ｊ}，Ｃ＝Ｃ＼{ｊ}，Ｃ＝Ｃ∪{ｔ}，Ｓ1＝Ｓ1∪{ｔ}）が実行された後、クラスターユニット配置変更処理（Ｓ５００）が行われる。このステップＳ５００によるクラスターユニット配置変更処理は、図９にアルゴリズムが図示されている。これについては次に説明する。
【００９７】
また、ステップＳ３０７により、Ignoreが選択された場合には（Ｓ３０７；Ignore）、今回の学習サンプルに対して追記学習を行うことなく無視する。このようにして一連のクラスターユニット用学習処理が完了すると、図５に示す学習処理に戻る。なお、ステップＳ３０９のReplace処理により置き換えの対象になったクラスターユニットＣＵは、新しいユニットとしてそのガウスカーネル関数に掛け合わされる係数（ｙtｋ(ｘt,・)）等が置き換わる。なお、このような係数等が置き換えられる場合においても、第ｊクラスターユニットのパラメータを二次記憶装置３０に退避させる必要はない。本実施形態では、すべての学習サンプルを二次記憶装置３０に保存しているからである。
【００９８】
＜クラスターユニット配置変更処理＞
続いて図９を参照しながら、クラスターユニット配置変更処理（Ｓ５００）について説明する。クラスターユニット配置変更処理（Ｓ５００）は、前述したクラスターユニットＣＵの置き換え処理（Replace処理）（Ｓ３０９）が行われた場合等に行われる。クラスターユニットＣＵが置き換わると、それに関連付けられている関連ユニットもその所属が変更される。
【００９９】
そこで、クラスターユニット配置変更処理（Ｓ５００）によって、すべてのユニットについてクラスターユニットの配属の更新を行う。つまり、第ｉクラスターユニットに関連付けられているユニットの集合Ｎiを作り直す。これは、二次記憶装置３０に格納されているすべての関連ユニットについて行う必要があるため、二次記憶装置３０の関連ユニットをすべて一旦アクセラレータ４０に読み込んで集合Ｎiを更新する。
【０１００】
即ち、図９に示すように、クラスターユニット配置変更処理では、まずステップＳ５０１により、すべてのクラスターユニットについて、それらに関連付けられているユニットの集合Ｎiや、１個以上のユニットがアクセラレータ４０に実装されているクラスターユニットＣＵの集合Ａcを、空（無）にする。
【０１０１】
ステップＳ５０３は、ループ処理の一端側であり、他端側のループ端（Ｓ５２５）との間において、アクセラレータ４０に読み込まれたクラスターユニットが存在している場合にステップＳ５０５〜Ｓ５２３の各処理を繰り返す。
【０１０２】
ステップＳ５０５は、別のループ処理の一端側であり、他端側の別のループ端（Ｓ５１３）との間において、アクセラレータ４０に読み込まれたクラスターユニット以外のすべてのユニットについてステップＳ５０７，Ｓ５０９，Ｓ５１１の各処理を繰り返す。
【０１０３】
ステップＳ５０７では、次の式(9)で表される集合演算による探索処理が行われる。即ち、この探索処理では、一定数のクラスターユニットＣＵが集まる集合Ｃにおいて、関連ユニットに最も近い（新たなサンプルが入力された現在時刻ｔにおける出力が最も大きい）第ｉクラスターユニットを探す処理である。
【０１０４】
【数９】
2019204318.tif 000011
【０１０５】
ステップＳ５０９では、ステップＳ５０７により探索された第ｉクラスターユニットに関連付けられている関連ユニットの集合Ｎi*に関連ユニットを追加し、さらにステップＳ５１１により二次記憶装置３０に退避させる時刻ｔjRとして現在時刻ｔを設定する。ループ端（Ｓ５０５）〜ループ端（Ｓ５１３）の間においては、クラスターユニットＣＵとそれに関連付けられる関連ユニットを探す処理が一定数のクラスターユニットの集合Ｃに対して繰り返し行われる。
【０１０６】
このようにして探索された関連ユニットは、ステップＳ５１５により二次記憶装置３０に退避される。即ち、クラスターユニット以外のユニット（関連ユニット）は、アクセラレータ４０から退避させられて二次記憶装置３０に格納される（Ｓ2＝Ｓ2∩{Ｓ1＼Ｃ}）。一方、クラスターユニットは、アクセラレータ４０に実装される（Ｓ1＝Ｃ）。
【０１０７】
ステップＳ５１７は、ループ処理の一端側であり、他端側のループ端（Ｓ５２３）との間において、まだ所属を変更していないユニットが二次記憶装置３０に格納されている場合にステップＳ５１９〜Ｓ５２３の各処理を繰り返す。
【０１０８】
ステップＳ５１９では、アクセラレータ４０に読み込まれているユニットの合計サイズがアクセラレータ４０の記憶容量未満であれば（Ｓ５１９；Ｙｅｓ）、ステップＳ５２１により、二次記憶装置３０に格納されているユニットをアクセラレータ４０に読み込む。このような処理が二次記憶装置３０に格納されているユニットがなくなるまで繰り返し行われる。
【０１０９】
このように本実施形態の組み込みシステム１０に組み込まれる学習装置や学習方法においては、二次記憶装置３０を備えることから、アクセラレータ４０の記憶容量以上の学習を行うことが可能になる。これにより、特許文献１（特開２０１２−９８９７１号公報）に開示されているＬＧＲＮＮに比べて、記憶容量の制限に起因した汎化能力の限度がほぼなくなり得ると考えられる。本願発明者らは、これを確認するために次の検証実験を行った。
【０１１０】
ここで、検証実験（ベンチマークテスト）による結果を説明する。なお、図１１および図１２には、学習サンプルを「Concrete」に設定した結果（図１１(A)）、「servo」に設定した結果（図１１(B)）、「housing」に設定した結果（図１２(A)）、「hearta1」に設定した結果（図１２(B)）、がそれぞれ図示されている。
【０１１１】
ベンチマークテストに使用したデータセット（学習サンプル）の諸元は次の通りである。ベンチマークテスト用のデータセットについて、データを１つずつシステムに提示して認識と学習を行わせる。まず、認識フェーズにおいて出力計算を行い、この時点で誤差を計測する。この誤差は累積誤差として蓄積されるため、この累積した誤差の値がどれほど小さいかにより評価する。このように累積誤差を計測した後、与えられている学習サンプルを学習する。データセットの一覧は次の通りである。
【０１１２】
＜データセットの一覧＞
データセット名  サイズ  入力数  出力数
Concrete         1030      7       1
servo             167     12       1
housing           501     13       1
hearta1           460     15       1
【０１１３】
なお、実験では、アクセラレータ４０の記憶容量Ｂはユニット３０個分とし（Ｂ＝３０）、またクラスターユニットＣＵの個数は６にしている。また、カーネルの分散の値は、σ＝１にしている。データは、各次元ともに[0,1]で正規化している。
【０１１４】
実験は５０個のデータの提示順序を変えながら繰り返し行い、結果は５０回で平均している。図１１および図１２に実験結果を示す。これらの図において、実線により表されている累積誤差の特性カーブは、組み込みシステム１０に組み込まれた学習装置や学習方法（以下「本実施形態の学習法」という）によるものであり、破線により表されている累積誤差の特性カーブは、特許文献１のＬＧＲＮＮによるものである。また、一点鎖線により表されている累積誤差の特性カーブは、次に説明する改変例によるものである。
【０１１５】
この改変例は、学習を予定しているサンプル数に対してアクセラレータ４０のＲＡＭが十分な記憶容量Ｂを有する場合に行われる出力計算処理（図１０参照）である。図１０には、改変例による出力計算処理の流れを示すフローチャートが図示されている。なお、図１０においては、図６の出力計算処理と実質的に同一の処理ステップについては、図６と同一の符号を付して説明を省略する。
【０１１６】
即ち、図１０に示す改変例の出力計算処理では、外側のループ処理（Ｓ７０１，７０５）により、次の３つの条件(イ)〜(ハ)がすべて満たされている間は、ステップＳ７０３，Ｓ２０５，Ｓ２１４の各処理およびＳ２０７〜Ｓ２１３のループ処理を行う。
(イ)アクセラレータ４０に実装されているユニット（クラスターユニットＣＵおよびアクティブユニットＡＵ）の数（|Ｓ1|）がアクセラレータ４０の記憶容量Ｂ未満である。
(ロ)ステップＳ２１４で処理される｛ｒ｝が空集合である。
(ハ)クラスターユニットのうち自分に関連付けられている関連ユニットが１つでもアクセラレータ４０に実装されているものの集合（Ａc）がクラスターユニットの集合（Ｃ）ではない。
【０１１７】
即ち、アクセラレータ４０に実装されているユニットの数（|Ｓ1|）がアクセラレータ４０の記憶容量Ｂ未満でなくなるまで（記憶容量Ｂ以上になるまで）、または不要不急クラスターに属する関連ユニットの退避等の処理（Ｓ４００）が一度でも実行されるまで、またはクラスターユニットに関連付けられている関連ユニットがすべてアクセラレータ４０に読み込まれるまでは、ステップＳ７０３，Ｓ２０５，Ｓ２１４の各処理およびＳ２０７〜Ｓ２１３のループ処理が実行される。
【０１１８】
ステップＳ７０３では、次の式(10)で表される集合演算による探索処理が行われる。クラスターユニットのうちそれに関連付けられているユニット（関連ユニット）の集合Ｎiのなかの１個以上のユニットがアクセラレータ４０に実装されているクラスターユニットの集合Ａcを、除いたクラスターユニットＣＵの集合において、新たなサンプル（入力ベクトルｘt）が入力された現在時刻ｔにおける出力が最も大きい（最大発火する）第ｉクラスターユニットを探す処理が行われる。
【０１１９】
【数１０】
2019204318.tif 000012
【０１２０】
そして、見つけられた第ｉクラスターユニットがステップＳ２０５により集合Ａcに加えられて、現在時刻よりも前の時刻ｔj*Rに二次記憶装置３０に退避したユニットの集合Ｓ2に第ｉクラスターユニットに関連付けられた関連ユニットが存在している場合に、ステップＳ２０９，Ｓ４００，Ｓ２１１の処理を繰り返す（Ｓ２０７，Ｓ２１３）。
【０１２１】
これにより、アクセラレータ４０の記憶容量Ｂが満杯になるまで、計算対象となるユニットに対応するクラスターユニットの数を増やすことが可能になるため、累積誤差を小さくすることができる。このことは、図１１および図１２において一点鎖線により表されている累積誤差の特性カーブからもわかるように、検証実験の結果として、改変例の方が累積誤差が比較的小さくなる傾向にあることが判明しており、本改変例の有効性が示されている。
【０１２２】
図１１および図１２に示すように、実線で表されている本実施形態の学習法や一点鎖線で表されている改変例の学習法の方が、特許文献１のＬＧＲＮＮによるものよりも累積誤差が小さく良好な結果が得られていることがわかった。また改変例の学習法については、データセットがservoの場合を除いて、本実施形態の学習法よりも優れた結果が得られた。このような結果は、本実施形態の学習法やその改変例の学習法が汎化能力の向上に寄与していることを示している。
【０１２３】
即ち、本実施形態の組み込みシステム１０が、工場で生産される製品ごとに品質管理を行い得る品質管理システムとして機能する場合には、例えば、生産される製品に変更が生じたり、少量他品種の製品がランダムに生産されたりする生産現場においても、本実施形態の学習法やその改変例の学習法を用いることによって、検査対象の変動に対して動的に対応し得ることを示している。つまり、本実施形態の学習法やその改変例の学習法は、検査対象の変動に対する新しい学習をその生産現場で行うことが可能であるため、例えば、ディープラーニングのように予め学習したものをシステムに組み込んでから生産現場に導入されるものと比較して非常に使い勝手がよい。
【０１２４】
なお、本明細書において用いた特有の表記についてまとめると次のようになる。
Ｓ1  …  アクセラレータ４０に実装されている（ＲＡＭに常駐または読み込まれているユニットの集合である。
Ｓ2  …  二次記憶装置３０に退避しているユニットの集合である。
Ｎi  …  第ｉクラスターユニットに関連付けられている関連ユニットの集合である。
Ｃ  …  クラスターユニットの集合である。集合を構成するユニットの数は予め定められおり一定である。
Ｂ  …  アクセラレータ４０の記憶容量である。本実施形態では、単位はユニット数である。
Ａc  …  クラスターユニットのうち、自分に関連付けられている関連ユニットが１つでもアクセラレータ４０に実装されているものの集合である。
ｔtR  …  二次記憶装置３０に退避している第ｉユニットの二次記憶装置３０に退避した時刻である。
【０１２５】
以上説明したように、本実施形態に係るニューラルネットワークの学習装置や学習方法によると、ＧＲＮＮ５０を構成し得る複数のニューロンユニットのうち所定入力（入力ベクトル）に対して発火するクラスターユニットＣＵをアクセラレータ４０のＲＡＭに常駐するように実装し（第１手段）、当該クラスターユニットＣＵに関連付けられている１つ以上の関連ユニットをアクセラレータ４０のＲＡＭに一時的（非常駐で）実装したり二次記憶装置３０に退避させたりする（第２手段）。
【０１２６】
これにより、アクセラレータ４０のＲＡＭには、ＧＲＮＮ５０を構成し得る複数のニューロンユニットのうち、所定入力に対して発火するクラスターユニットＣＵだけをアクセラレータ４０のＲＡＭに常駐させるため、ＧＲＮＮ５０を構成し得る複数のニューロンユニットのすべてをアクセラレータ４０のＲＡＭに常駐（実装）させる必要がない。また、クラスターユニットＣＵに関連付けられている１つ以上の関連ニューロンユニットは、必要なときに二次記憶装置３０から読み出されてアクセラレータ４０のＲＡＭに非常駐で実装されることから（アクティブユニットＡＵ）、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。さらに、このような１つ以上の関連ニューロンユニットは、不必要なときには二次記憶装置３０に退避させられることから（スリープユニットＳＵ）、不要な関連ニューロンユニットがアクセラレータ４０のＲＡＭに常駐することにより実装可能領域が減少することも抑制される。したがって、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）においても、未知の環境下における人工知能の能力低下を抑制することが可能になる。
【０１２７】
また、本実施形態に係るニューラルネットワークの学習装置や学習方法によると、(1) クラスターユニットＣＵをアクセラレータ４０のＲＡＭに常駐させるとともに関連ニューロンユニットをスリープユニットＳＵとして二次記憶装置３０に退避させている場合、所定入力があるとスリープユニットＳＵを二次記憶装置３０から読み出してアクセラレータ４０のＲＡＭに実装する。また、(2) クラスターユニットＣＵをアクセラレータ４０のＲＡＭに常駐させるとともに関連ニューロンユニットがアクティブユニットＡＵとしてアクセラレータ４０のＲＡＭに実装されている場合、所定入力がなく且つアクセラレータ４０のＲＡＭの実装可能領域が不足しているときには、関連ニューロンユニットをアクセラレータ４０のＲＡＭから二次記憶装置３０に退避させる（スリープユニットＳＵ）。
【０１２８】
これにより、二次記憶装置３０に退避していたスリープユニットＳＵは、所定入力があるとアクセラレータ４０のＲＡＭにアクティブユニットＡＵとして実装されるため、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。また、アクセラレータ４０のＲＡＭに実装されていた関連ニューロンユニットは、所定入力がなく且つアクセラレータ４０のＲＡＭの実装可能領域が不足しているときにはスリープユニットＳＵとして二次記憶装置３０に退避させられるため、アクセラレータ４０のＲＡＭの実装可能領域が減少することも抑制される。したがって、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）においても、未知の環境下における人工知能の能力低下を抑制することが可能になる。
【０１２９】
さらに、本実施形態に係るニューラルネットワークの学習装置や学習方法によると、クラスターユニットＣＵをアクセラレータ４０のＲＡＭに常駐させるとともに関連ニューロンユニットを二次記憶装置３０に退避させている場合において、１つ以上の関連ニューロンユニットの合計実装サイズがアクセラレータ４０のＲＡＭの実装可能領域を超えているときには、関連ニューロンユニットの集まりを実装可能領域に収まる実装サイズの複数の集まりに分割し、複数の集まりのそれぞれごとに異なるタイミングでアクセラレータ４０のＲＡＭに実装する。
【０１３０】
これにより、二次記憶装置３０に退避していた１つ以上のスリープユニットＳＵの合計実装サイズがアクセラレータ４０のＲＡＭの実装可能領域を超えている場合においては、１つ以上のスリープユニットＳＵは複数の集まりに分割されてそれぞれごとに異なるタイミングでアクセラレータ４０のＲＡＭにアクティブユニットＡＵとして実装されるので、このような場合においても、枝刈りによりニューロンユニットが削除されてその機能を喪失することもない。したがって、二次記憶装置３０に退避していた１つ以上のスリープユニットＳＵの合計実装サイズがアクセラレータ４０のＲＡＭの実装可能領域を超えている場合であっても、コスト的やスペース的にハードウェア構成の制約が厳しい分野の製品（例えば、家電製品や小型機器製品等）において未知の環境下における人工知能の能力低下を抑制することが可能になる。
【０１３１】
さらにまた、本実施形態に係るニューラルネットワークの学習装置や学習方法によると、クラスターユニットＣＵは、ＧＲＮＮ５０の入力層において当該入力層に入力される複数種類の情報に対してほぼ偏りなく疎に配置される。例えば、入力層に２種類の情報ｘ，ｙが入力されそれぞれの情報ｘ，ｙの大きさや強さにより表現可能なｘ，ｙ平面において、クラスターユニットＣＵはほぼ偏りなく疎に配置される。
【０１３２】
これにより、例えば、クラスターユニットＣＵが密に配置されている場合に比べて、異なるクラスターユニットＣＵが代わる代わる発火する可能性が低くなる。そのため、クラスターユニットＣＵの発火に伴う関連ニューロンユニットの読込み回数や、他のクラスターユニットＣＵの発火に伴う関連ニューロンユニットの退避回数を減らすことが可能になる。また、例えば、クラスターユニットＣＵの配置が疎であってもそれが一部の範囲に偏っている場合に比べて、クラスターユニットＣＵの発火に伴う関連ニューロンユニットの読込み回数や他のクラスターユニットＣＵの発火に伴う関連ニューロンユニットの退避回数が一部において増減したり残部において減増したりする可能性を低減することができる。したがって、クラスターユニットＣＵが密に配置されていたり一部の範囲に偏って疎に配置されていたりする場合に比べて、関連ニューロンユニットの読込みや退避の回数が全般的または部分的に増えることが抑制されることから、ＧＲＮＮ５０が実装されている組み込みシステム１０の追記学習に伴う情報処理負荷が低減し、当該組み込みシステム１０の処理速度の低下を抑制することが可能になる。
【０１３３】
なお、上述した実施形態では、本発明に係るニューラルネットワークの学習装置や学習方法を、機器装置ではなくシステム（組み込みシステム１０）に組み込んだが、本発明の適用対象はシステムに限られることはなく、家電製品や小型機器製品等の機器装置も含まれる。つまり、本発明に係るニューラルネットワークの学習装置や学習方法は、家電製品や小型機器製品等の機器装置に適用して組み込んでもよく、この場合においても、上述した組み込みシステム１０と同様に本発明に特有の作用や効果を得ることが可能である。また、パーソナルコンピュータやワークステーションに適用して組み込んでもよい。
【０１３４】
また、上述した実施形態では、情報処理装置として、アクセラレータ４０にＧＲＮＮ５０が実装される場合を例示して説明したが、組み込みシステム１０の制御装置２０にＧＲＮＮ５０を実装してもよい。この場合には、制御装置２０のＲＡＭにクラスターユニットＣＵ等が実装されることなるが、上述した組み込みシステム１０と同様に本発明に特有の作用や効果を得ることが可能である。
【０１３５】
さらに、上述した実施形態では、補助記憶装置として、ＤＲＡＭが搭載された二次記憶装置３０が用いられる場合を例示して説明したが、データの書き込み速度や読み出し速度等が問題にならないケースであれば、ＨＤＤ（ハードディスク（磁気ディスク）装置）を備えた二次記憶装置を補助記憶装置として用いてもよい。
【０１３６】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、上述した具体例を様々に変形または変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項に記載の組合せに限定されるものではない。さらに、本明細書または図面に例示した技術は、複数の目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つ。なお、[符号の説明]の欄における括弧内の記載は、上述した各実施形態で用いた用語と、特許請求の範囲に記載の用語との対応関係を明示し得るものである。
【符号の説明】
【０１３７】
１０…組み込みシステム（情報処理装置）
２０…制御装置
３０…二次記憶装置（補助記憶部）
４０…アクセラレータ（学習装置、主記憶部、第１手段、第２手段）
５０…ＧＲＮＮ
６０…ＣＵ学習モジュール
ＡＬ…加算層
ＡＵ…アクティブユニット（関連ニューロンユニット）
ＣＵ…クラスターユニット（特定ニューロンユニット）
ＳＵ…スリープユニット（関連ニューロンユニット）
ＲＦ…受容野
【図１】
2019204318.tif 000013
【図２】
2019204318.tif 000014
【図３】
2019204318.tif 000015
【図４】
2019204318.tif 000016
【図５】
2019204318.tif 000017
【図６】
2019204318.tif 000018
【図７】
2019204318.tif 000019
【図８】
2019204318.tif 000020
【図９】
2019204318.tif 000021
【図１０】
2019204318.tif 000022
【図１１】
2019204318.tif 000023
【図１２】
2019204318.tif 000024