(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】パターン認識装置、学習方法、及びプログラム
(51)【国際特許分類】
G06N 3/09 20230101AFI20240521BHJP
G06N 3/084 20230101ALI20240521BHJP
【FI】
G06N3/09
G06N3/084
(21)【出願番号】P 2023053030
(22)【出願日】2023-03-29
【審査請求日】2023-03-29
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100080816
【氏名又は名称】加藤 朝道
(74)【代理人】
【識別番号】100098648
【氏名又は名称】内田 潔人
(72)【発明者】
【氏名】星野 健
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2021-189532(JP,A)
【文献】渡辺 一央 ほか,"非巡回神経回路網のための揺らぎ駆動学習",電子情報通信学会論文誌,社団法人 電子情報通信学会 情報・システムソサイエティ,1997年,第J80-D-II巻, 第5号,pp. 1249-1256,ISSN 0915-1923
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08-3/0985
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
複数のパターンを含む入力データと、教師データとの組を取得する学習データ取得部と、
所定の分布に基づく値である揺らぎノイズを生成する揺らぎノイズ生成部と、
揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する誤差関数値取得部と、
前記誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う学習部と、
を有し、
前記揺らぎノイズ生成部は、最適化により学習が完了した後に使用する、別の分布に基づく別の揺らぎノイズを生成し、
前記学習部は、前記別の揺らぎノイズと学習データを用いて再学習を行う、
パターン認識装置。
【請求項2】
前記揺らぎノイズ生成部が生成する揺らぎノイズ、及び別の揺らぎノイズは正規分布に従う、
請求項1に記載のパターン認識装置。
【請求項3】
前記揺らぎノイズの分散がσ1
2であり、前記別の揺らぎノイズの分散がσ2
2であるとき、σ1
2<σ2
2の関係を有する、
請求項2に記載のパターン認識装置。
【請求項4】
前記揺らぎノイズ生成部は、前記誤差関数値取得部における誤差関数の値が、前回の学習時もしくは再学習時よりも増加した場合には、σ2
2の値を、所定の値だけ小さく変更した分布に従った揺らぎノイズを生成する、
請求項3に記載のパターン認識装置。
【請求項5】
前記学習部は、前記誤差関数の値が、所定の誤差より大きい場合には学習を継続し、所定の誤差を下回った場合には、学習を終了する、請求項1から4のいずれか1項に記載のパターン認識装置。
【請求項6】
以下のステップをコンピュータに実行させるための学習方法であって、
複数のパターンを含む入力データと、教師データとの組を取得するステップと、
所定の分布に基づく値である揺らぎノイズを生成するステップと、
揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得するステップと、
前記誤差関数を最適化することによりパターン認識のための学習モデルの学習を行うステップと、
最適化により学習が完了した後に使用する、別の分布に基づく別の揺らぎノイズを生成するステップと、
前記別の揺らぎノイズと学習データを用いて再学習を行うステップと、
を含む学習方法。
【請求項7】
前記揺らぎノイズ、及び前記別の揺らぎノイズは正規分布に従う、
請求項6に記載の学習方法。
【請求項8】
前記揺らぎノイズの分散がσ1
2であり、前記別の揺らぎノイズの分散がσ2
2であるとき、σ1
2<σ2
2の関係を有する、
請求項7に記載の学習方法。
【請求項9】
前記誤差関数の値が、前回の学習時もしくは再学習時よりも増加した場合には、σ2
2の値を、所定の値だけ小さく変更した分布に従った揺らぎノイズを生成する、
請求項8に記載の学習方法。
【請求項10】
複数のパターンを含む入力データと、教師データとの組を取得する処理と、
所定の分布に基づく値である揺らぎノイズを生成する処理と、
揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する処理と、
前記誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う処理と、
最適化により学習が完了した後に使用する、別の分布に基づく別の揺らぎノイズを生成する処理と、
前記別の揺らぎノイズと学習データを用いて再学習を行う処理と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高い汎化能力を有するパターン認識装置、学習方法、及びプログラムに関する。
【背景技術】
【0002】
非巡回階層(フィードフォワード)型の神経回路網モデルの学習では従来、誤差関数を最適化するために、勾配法を用いるケースが多く見られ、最急降下法はそのうちの一手段である。しかしながら、最適化の過程において、局所最適解に陥ってしまうといった既知の問題を孕んでいる。また、活性化関数が微分可能である必要があり、微分処理を伴う誤差逆伝播法を用いて最適化を行った場合に、モデルが多層化すると勾配消失が生じ、学習が十分に進まないといった可能性も存在する。
【0003】
特許文献1では、揺らぎ駆動学習法が開示されている。揺らぎ駆動学習法は、活性化関数の活性値に所定の分布を有する揺らぎノイズを付加して学習を進めるといった手法である。この学習法を用いると、微分可能である連続関数としきい値関数のような不連続関数を混在させたモデルを学習することが可能である。また、微分処理や逆伝播処理を必要としないので、勾配の消失により学習が進まないといった問題が生じないといった優位点がある。
【0004】
特許文献2では、揺らぎ駆動学習法において課題となっている学習後のモデルの汎化性能が低いこと、及び最適化が収束するまでの学習時間が長時間となること等の課題に対して、モデルの学習中に、活性化関数の活性値に加える揺らぎノイズの値の分散値を変化させる学習法を開示している。具体的には、学習時において算出された誤差関数の値が、前回学習時の値から所定の値より大きく変化している場合には付加する揺らぎノイズの値の分散値を小さくし、値の変化が所定の値以下である場合には分散値を大きくするといった処理を行うといった手法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平8-235146号公報
【文献】特開2021-189532号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【0007】
上記の通り、特許文献2では、学習後のモデルの汎化性能が低いこと、及び最適化が収束するまでの学習時間が長時間となること等を課題としてモデルの学習中に揺らぎノイズの分散値を変化させるといった解決手段が開示されている。
【0008】
これに対して、学習が一旦終了した後に、汎化能力を向上させることを目的とした再学習を行うといった手法が考えられるが、このような手法については未だ先行文献において開示されていない。
【0009】
そこで、本発明の一視点において、神経回路網モデルの学習収束後に、さらなる汎化性能を向上することに寄与するパターン認識装置、学習方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第一の視点によれば、複数のパターンを含む入力データと、教師データとの組を取得する学習データ取得部と、所定の分布に基づく値である揺らぎノイズを生成する揺らぎノイズ生成部と、前記揺らぎノイズと前記入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する誤差関数値取得部と、前記誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う学習部と、を有し、前記揺らぎノイズ生成部は、最適化により学習が完了した後に別の分布に基づく別の揺らぎノイズを生成し、前記学習部は、前記別の揺らぎノイズと学習データを用いて再学習を行う、パターン認識装置が提供される。
【0011】
本発明の第二の視点によれば、以下のステップをコンピュータに実行させるための学習方法であって、複数のパターンを含む入力データと、教師データとの組を取得するステップと、所定の分布に基づく値である揺らぎノイズを生成するステップと、前記揺らぎノイズと前記入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得するステップと、前記誤差関数を最適化することによりパターン認識のための学習モデルの学習を行うステップと、最適化により学習が完了した後に別の分布に基づく別の揺らぎノイズを生成するステップと、前記別の揺らぎノイズと学習データを用いて再学習を行うステップと、を含む学習方法が提供される。
【0012】
本発明の第三の視点によれば、複数のパターンを含む入力データと、教師データとの組を取得する処理と、所定の分布に基づく値である揺らぎノイズを生成する処理と、前記揺らぎノイズと前記入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する処理と、前記誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う処理と、最適化により学習が完了した後に別の分布に基づく別の揺らぎノイズを生成する処理と、前記別の揺らぎノイズと学習データを用いて再学習を行う処理と、をコンピュータに実行させるためのプログラムが提供される。
【0013】
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0014】
本発明の各視点によれば、神経回路網モデルの学習収束後に、さらなる汎化性能を向上することに寄与するパターン認識装置、学習方法、及びプログラムが提供される。
【図面の簡単な説明】
【0015】
【
図1】一実施形態のパターン認識装置における構成の一例を示すブロック図である。
【
図2】第1の実施形態のパターン認識装置における処理の流れを示すフローチャートである。
【
図3】第1の実施形態のパターン認識装置におけるハードウエア構成の一例を示す概略図である。
【
図4】第2の実施形態のパターン認識装置における構成の一例を示すブロック図である。
【
図5】第2の実施形態のパターン認識装置における非巡回階層型ニューラルネットワークのネットワーク構成を示す概略図である。
【
図6】第2の実施形態のパターン認識装置における非巡回階層型ニューラルネットワークの各ユニット(ニューロン)の入出力イメージを示す概略図である。
【
図7】第2の実施形態のパターン認識装置における動作の一例を示すフローチャートである。
【
図8】第2の実施形態のパターン認識装置における動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0016】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【0017】
図1に一実施形態のパターン認識装置の構成の一例を示したブロック図を示す。一実施形態のパターン認識装置10は、学習データ取得部11と、揺らぎノイズ生成部12と、誤差関数値取得部13と、学習部14と、を有する。
【0018】
学習データ取得部11は、複数のパターンを含む入力データと、教師データとの組を取得する。揺らぎノイズ生成部12は、所定の分布に基づく値である揺らぎノイズを生成する。誤差関数値取得部13は、揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する。学習部14は、誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う。
【0019】
揺らぎノイズ生成部12は更に、最適化により学習が完了した後に別の分布に基づく別の揺らぎノイズを生成する。学習部14は更に、別の揺らぎノイズと学習データを用いて再学習を行う。
【0020】
このように一実施形態のパターン認識装置10は、揺らぎノイズにより誤差関数を最適化して一旦学習が終了した後に、別の分布に基づく別の揺らぎノイズを用いて再学習を行う事により、より汎化能力が高いモデルの学習が可能である。
【0021】
[第1の実施形態]
[装置の構成]
第1の実施形態のパターン認識装置10は、一実施形態と同様に、学習データ取得部11と、揺らぎノイズ生成部12と、誤差関数値取得部13と、学習部14と、を有する。
【0022】
また、一実施形態と同様に、揺らぎノイズ生成部12は、最適化により学習が完了した後に別の分布に基づく別の揺らぎノイズを生成し、学習部14は、別の揺らぎノイズと学習データを用いて再学習を行う。
【0023】
本実施形態の特徴点は、揺らぎノイズ生成部12が生成する揺らぎノイズ、及び別の揺らぎノイズは正規分布に従い、揺らぎノイズの分散がσ12であり、別の揺らぎノイズの分散がσ22であるとき、σ12<σ22の関係を有する点である。
【0024】
学習データ取得部11は、複数のパターンを含む入力データと、教師データとの組を取得する。学習データを蓄積している記憶域から学習データを取得し、学習部14に送る。取得はネットワークを介して行ってもよい。本実施形態のパターン認識装置10は、主に非巡回階層型(フィードフォワード)の神経回路網モデルに基づいているため、入力データとこれに対応する教師データとを学習部14にて提示する。
【0025】
揺らぎノイズ生成部12は、所定の分布に基づく値である揺らぎノイズを生成する。「揺らぎノイズ」とは、既知の揺らぎ駆動式学習法にて用いられるノイズであって、本実施形態のパターン認識装置10を構成する神経回路網モデルの各ユニットの活性値に付加される乱数値である。「所定の分布」とは例えば、正規分布に基づく乱数値であってもよい。
【0026】
上述の通り、揺らぎノイズ生成部12は更に、最適化により学習が完了した後に使用する、別の分布に基づく別の揺らぎノイズを生成する。「別の分布」とは、例えば、当初の学習に使用するために生成される、正規分布に従う揺らぎノイズ値と同じ正規分布であっても、互いに異なる分散値を有する分布を含む。
【0027】
すなわち、揺らぎノイズの分散がσ12であり、別の揺らぎノイズの分散がσ22であるとき、例えば、σ12≠σ22の関係となっていてもよい。更に、上述の通りσ12<σ22の関係を有していてもよい。
【0028】
誤差関数値取得部13は、揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する。「入力データ」は、学習データ取得部11で取得された学習データのうちの入力データを指す。入力データはパターン認識装置10を構成する神経回路網モデル(学習モデル)のニューロンに相当するユニットのうち、入力層に入力される入力ベクトルである。「出力データ」は、同様なユニットのうち、出力層から出力される出力ベクトルを指す。誤差関数は学習データのうちの教師データベクトルと出力ベクトルの乖離に基づく値を誤差関数値として出力する。例えば、誤差関数値は教師データベクトルと出力ベクトルの差分の二乗和であってもよい。
【0029】
学習部14は、誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う。「最適化」とは、誤差関数値を最小化する方向にパラメータを修正していくことである。具体的には、所定の更新式に基づいて各ユニット間の結合係数を更新し、誤差関数が最小となる結合係数ベクトルを取得する。
【0030】
また学習部14は、揺らぎノイズ生成部12により生成された別の揺らぎノイズと学習データを用いて再学習を行う。当初生成された揺らぎノイズを使用した学習が収束した後に、今度は別の揺らぎノイズを用いて再学習を行う。別の揺らぎノイズの分布の分散値は上述したように、当初学習に用いた揺らぎノイズの分散値よりも大きくすることが望ましい。またさらに、再学習に用いる学習データは、教師データが当初学習時のものと同一であれば、異なる学習データであってもよい。すなわち、当初学習に用いた学習データ以外の異なる入力データであってもよい。
【0031】
このように、分散値を大きくして学習モデルを再学習することで、当初学習済みのモデルが訓練誤差を最小化することにより過学習された状態であった場合にはその状態から脱して、汎化能力の向上を目指すことが可能である。
【0032】
[処理の流れ]
図2は第1の実施形態のパターン認識装置10の処理の流れを示すフローチャートである。パターン認識装置10は、まず、複数のパターンを含む入力データと、教師データとの組を取得する(ステップS21)。次に、所定の分布に基づく値である揺らぎノイズを生成する(ステップS22)。揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する(ステップS23)。次に、誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う(ステップS24)。学習の結果として誤差関数値が所定の値を下回るか否かの判断を行い(ステップS25)、所定の値を下回ると(ステップS25、Y)学習が完了し、最適化により学習が完了した後に使用する、別の分布に基づく別の揺らぎノイズを生成する(ステップS26)。誤差関数値が所定の値以上であった場合(ステップS25、N)には、揺らぎノイズを生成するステップ(ステップS22)へ戻り、再び学習を行う。学習が完了した場合、別の揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を再度取得する(ステップS27)。次に別の揺らぎノイズと学習データを用いて再学習を行う(ステップS28)。学習の結果として誤差関数値が所定の値を下回るか否かの判断を行い(ステップS29)、所定の値を下回ると(ステップS29、Y)、再学習が完了し一連の処理は終了する。いっぽう、所定の値以上であると(ステップS29、N)再び別の揺らぎノイズを生成するステップ(ステップS26)へ戻り再び再学習を行う。
【0033】
なお、揺らぎノイズを生成する処理(ステップS22及びステップS26)において、誤差関数の値が、前回の学習時もしくは再学習時よりも増加した場合には、生成する揺らぎノイズの分散値(σ12及びσ22)を、所定の値だけ小さく変更した分布に従った揺らぎノイズを生成するように調整を行ってもよい。
【0034】
[ハードウエア構成]
次に、第1の実施形態に係るパターン認識装置10を構成する各種装置のハードウエア構成を説明する。
図3は、第1の実施形態に係るパターン認識装置10のハードウエア構成の一例を示すブロック図である。
【0035】
パターン認識装置10は、情報処理装置(コンピュータ)により構成可能であり、
図3に例示する構成を備える。例えば、パターン認識装置10は、内部バス35により相互に接続される、CPU(Central Processing Unit)31、メモリ32、入出力インタフェース33及び通信手段であるNIC(Network Interface Card)34等を備える。
【0036】
但し、
図3に示す構成は、パターン認識装置10のハードウエア構成を限定する趣旨ではない。パターン認識装置10は、図示しないハードウエアを含んでもよいし、必要に応じて入出力インタフェース33を備えていなくともよい。また、パターン認識装置10に含まれるCPU等の数も
図3の例示に限定する趣旨ではなく、例えば、複数のCPUがパターン認識装置10に含まれていてもよい。
【0037】
メモリ32は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)である。
【0038】
入出力インタフェース33は、図示しない表示装置や入力装置のインタフェースとなる手段である。表示装置は、例えば、液晶ディスプレイ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。
【0039】
パターン認識装置10の機能は、処理モジュールである学習データ取得プログラムと、ノイズ生成プログラムと、誤差関数値取得プログラムと、学習プログラム等と、メモリ32に保持されている各ニューロンに相当する活性値により実現される。当該処理モジュールは、例えば、メモリ32に格納されたプログラムをCPU31が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。更に、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウエア、及び/又は、ソフトウエアで実行する手段があればよい。
【0040】
[ハードウエアの動作]
パターン認識装置10は動作を開始すると、学習データ取得プログラムがメモリ32から呼び出されCPU31にて実行状態となる。同プログラムはNIC34や入出力インタフェース33等を介して学習データ(入力パターンq及び教師データt)を受け付けると、メモリ32に一時的に格納する。次に揺らぎノイズ生成プログラムがメモリ32から呼び出されCPU31にて実行状態となる。同プログラムは、所定の分布に基づく値、すなわち分散σ12、平均値μを有する正規分布に従う乱数値ベクトルn1を生成する。生成されたnはメモリ32に一時的に格納される。
【0041】
次に、誤差関数値取得プログラムがメモリ32から呼び出され、CPU31にて実行状態となる。同プログラムはメモリ32に格納しているベクトルn1を、学習モデルの各ユニットの活性化関数fの活性値に付加する。同プログラムは、学習モデルの入力層に学習データの入力パターンqに結合係数である重みwをかけ合わせた入力ベクトルを入力し、これに各ユニット層の各ユニットで順方向の演算をCPU31にて行う。演算の結果、出力層の各ユニットからの出力uを得ると、uとメモリ32に格納されている学習データのうち教師データtの二乗誤差である誤差関数値eをCPU31の演算により算出する。
【0042】
次に学習プログラムがメモリ32から呼び出され、CPU31にて実行状態となる。同プログラムは学習モデルの各ユニット間の重みwを所定のeの更新式(後述)で更新する。更新が完了すると、CPU31にて再度順方向の演算を行い、出力層から出力が得られると誤差関数値eを算出する。eの値が所定の基準値を下回った場合には学習が終了する。所定の基準値以上であった場合には、再度他の入力パターンを入力し、揺らぎノイズを生成し、誤差関数値を算出し、学習プログラムによる学習を実行する。
【0043】
学習が一旦終了すると、揺らぎノイズ生成プログラムが再度実行状態となり、CPU31の演算処理により、今度は分散σ22(σ22>σ12)、平均値μを有する正規分布に従う乱数値ベクトルn2を生成する。次に誤差関数値取得プログラム及び学習プログラムが再度実行状態となり、上述のように、誤差関数値を取得し、誤差関数値を最適化するための処理を繰り返し、再学習を行う。
【0044】
[効果の説明]
本実施形態のパターン認識装置10は、揺らぎノイズにより誤差関数を最適化して一旦学習が終了した後に、別の分布に基づく別の揺らぎノイズを用いて再学習を行う事により、より汎化能力が高いモデルの学習が可能である。すなわち、揺らぎノイズの分散値を大きくして学習モデルを再学習することで、当初学習済みのモデルが訓練誤差を最小化することにより過学習された状態であった場合にはその状態から脱して、汎化能力の向上を目指すことが可能である。
【0045】
[第2の実施形態]
[構成]
図4は第2の実施形態のパターン認識装置10の構成を示す図である。第2の実施形態のパターン認識装置10は、CPU、RAM及びROMから構成される処理部41と、いずれもRAMやROMから構成される学習データ記憶部42、ニューロン出力値計算部43、出力データ記憶部44、正解データ記憶部45、学習誤差計算部46、正規乱数発生部47からなる。
【0046】
[動作の説明]
第2の実施形態では、パターン群を学習する問題において、非巡回階層型ニューラルネットワークを、入力される学習データに一対一に対応した教師信号を出力するように、揺らぎ駆動式学習法を用いて学習する。
【0047】
非巡回階層型ニューラルネットワークの学習モデルのネットワーク構成は、
図5のようになり、各ユニット(ニューロン)の入出力イメージは、
図6のようになる。具体的には、揺らぎノイズを含むユニットの出力は、数式1で表される。pは、学習パターン番号を表し、tは、時刻を表す。
【0048】
【0049】
数式1において、それぞれ、下記のようになる。
【数2】
(シグモイド関数)
【0050】
【0051】
【0052】
なお数式2にあるように、第2の実施形態のパターン認識装置では各ユニットの活性化関数はシグモイド関数を採用しているが、特にこれに限られない。シグモイド関数は微分可能な連続関数であるが、tanh関数(Hyperbolic tangent function)や不連続なReLUを採用したり、これらを混在したりさせてもよい。
【0053】
ここで揺らぎノイズはn(t)、結合係数はベクトルw、パターンpの入力データはベクトルq(p,t)、時間はtである。また誤差関数e(p,t)は数式5で表せるような二乗誤差とする。
【数5】
【0054】
数式5にて、t
k(p)は、入力パターンpとしたときの、出力ユニットkに対応する教師信号を表す。揺らぎノイズn(t)が正規乱数であるとすると、数式5の誤差を小さくするための結合係数wの更新式は、数式6で表される。なお、数式6の
は、期間T
pのe(p,t), n
k(t)及びベクトルq
k(p,t)の積の平均を表す。
【数6】
【0055】
数式6で逐次的に結合係数wを更新することで、数式5で計算される誤差を小さくできる。すなわち、学習データが入力されたときの学習モデルの出力を教師信号へ近付けることができ、入力学習データと教師信号の対を学習することができる。
【0056】
従来技術では、揺らぎノイズn
k(t)に、数式7のような確率密度関数の正規乱数を使用し、分散σ
k
2は、固定値としていた。
【数7】
【0057】
図7及び
図8は第2の実施形態におけるパターン認識装置の動作の一例を示すフローチャートである。
図7及び
図8中では、分散σ
k
2を簡単にdと記述している。まず、最初の学習パターンp=1を学習モデルに与えた時の、全ニューロンの活性値v(p,t)を、数式3で計算する。
【0058】
なお、数式3のn(t)は、期間T
p中に全ニューロンへ入力される揺らぎノイズであり、数式8からなる確率密度関数を持つ正規乱数により生成される。
【数8】
【0059】
まず、
図7のフローチャートの左側に初回学習と記載のあるループで、誤差が十分小さくなるまで学習を行う。誤差が十分小さくなったら、初回学習終了とする。その後、正規分布の分散を初回学習の分散σ
k
2よりも大きくして、
図8のフローチャートの左側に汎化能力向上学習と記載のあるループで、それ以降の汎化能力向上学習を行う。もし、汎化能力向上学習にて学習誤差が増加した場合は、分散を現在用いている分散よりも小さくして、汎化能力向上学習を継続する。この処理によって、初回学習終了時よりも汎化能力が低下することを防止している。
【0060】
ここでは、例として、分散σk
2に比べて小さな正の値αを考える。汎化能力向上学習の初期値分散として、σk
2+αを使用する。もし、σk
2+αの分散を使用して、汎化能力向上学習中の学習誤差が大きくなった場合は、他の小さな正の値γを考え、分散をσk
2+α-γへ変更し、汎化能力向上学習を継続する。汎化能力向上学習は、学習誤差の値が十分小さくなる(所定の値を下回る)まで継続する。
【0061】
なお、汎化能力向上学習の分散σ
k
2の初期値として定数αを使用したが、初回学習で使用した分散σ
k
2から数式9のように算出してもよい。ここで、nは、正の値とする。
【数9】
【0062】
上記の実施形態の一部又は全部は、以下のようにも記載され得るが、以下には限られない。
[形態1]
上述の第一の視点に係るパターン認識装置のとおりである。
[形態2]
揺らぎノイズ生成部が生成する揺らぎノイズ、及び別の揺らぎノイズは正規分布に従う、好ましくは形態1のパターン認識装置。
[形態3]
揺らぎノイズの分散がσ12であり、別の揺らぎノイズの分散がσ22であるとき、σ12<σ22の関係を有する、好ましくは形態2のパターン認識装置。
[形態4]
揺らぎノイズ生成部は、誤差関数値取得部における誤差関数の値が、前回の学習時もしくは再学習時よりも増加した場合には、σ22の値を、所定の値だけ小さく変更した分布に従った揺らぎノイズを生成する、好ましくは形態3のパターン認識装置。
[形態5]
学習部は、誤差関数の値が、所定の誤差より大きい場合には学習を継続し、所定の誤差を下回った場合には、学習を終了する、好ましくは形態1から形態4のパターン認識装置。
[形態6]
上述の第二の視点に係る学習方法のとおりである。
[形態7]
揺らぎノイズ、及び別の揺らぎノイズは正規分布に従う、好ましくは形態6の学習方法。
[形態8]
揺らぎノイズの分散がσ12であり、別の揺らぎノイズの分散がσ22であるとき、σ12<σ22の関係を有する、好ましくは形態7の学習方法。
[形態9]
誤差関数の値が、前回の学習時もしくは再学習時よりも増加した場合には、σ22の値を、所定の値だけ小さく変更した分布に従った揺らぎノイズを生成する、好ましくは形態8の学習方法。
[形態10]
上記第三の視点に係るプログラムのとおりである。
なお、形態10は、形態1と同様に、形態2~形態5に展開することが可能である。
【0063】
引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、更にその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【0064】
10 :パターン認識装置
11 :学習データ取得部
12 :揺らぎノイズ生成部
13 :誤差関数値取得部
14 :学習部
31 :CPU(Central Processing Unit)
32 :メモリ
33 :入出力インタフェース
34 :NIC(Network Interface Card)
35 :内部バス
41 :処理部
42 :学習データ記憶部
43 :ニューロン出力値計算部
44 :出力データ記憶部
45 :正解データ記憶部
46 :学習誤差計算部
47 :正規乱数発生部
【要約】
【課題】神経回路網モデルの学習収束後に、さらなる汎化性能を向上することに寄与するパターン認識装置、学習方法、及びプログラムの提供。
【解決手段】複数のパターンを含む入力データと、教師データとの組を取得する学習データ取得部と、所定の分布に基づく値である揺らぎノイズを生成する揺らぎノイズ生成部と、揺らぎノイズと入力データとに基づく出力データと、教師データと、の間の乖離を示す誤差関数の値を取得する誤差関数値取得部と、誤差関数を最適化することによりパターン認識のための学習モデルの学習を行う学習部と、を有し、揺らぎノイズ生成部は、最適化により学習が完了した後に使用する、別の分布に基づく別の揺らぎノイズを生成し、学習部は、別の揺らぎノイズと学習データを用いて再学習を行う、パターン認識装置を提供する。
【選択図】
図1