ニューラルネットワーク学習における前処理装置
【課題】矛盾した教師データであっても適切に総誤差評価関数を把握することにより学習の終了判定が実現でき、学習終了時に、必要とされる計算精度を得られるニューラルネットワーク学習における前処理装置を得る。
【解決手段】教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数するとともに、教師データ中の同一入力パターンに対する全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータの重複分を教師入力データから削除する前処理を施す前処理部と、この前処理部で処理を施された教師データでニューラルネットワーク学習を実行し、各入力パターンの誤差評価関数を導出する誤差修正部と、前記誤差修正部から導出される各入力パターンの誤差評価関数と入力パターン毎のケース数から成る重み係数を用いて、ニューラルネットワーク学習の収束条件を決定するための総誤差評価関数を計算する総誤差評価関数部とを、具備する。
【解決手段】教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数するとともに、教師データ中の同一入力パターンに対する全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータの重複分を教師入力データから削除する前処理を施す前処理部と、この前処理部で処理を施された教師データでニューラルネットワーク学習を実行し、各入力パターンの誤差評価関数を導出する誤差修正部と、前記誤差修正部から導出される各入力パターンの誤差評価関数と入力パターン毎のケース数から成る重み係数を用いて、ニューラルネットワーク学習の収束条件を決定するための総誤差評価関数を計算する総誤差評価関数部とを、具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、教師あり学習に対して使用されるニューラルネットワーク学習における前処理装置に関する。
【背景技術】
【0002】
教師あり学習に対して使用されるニューラルネットワーク学習では、理想となる入出力の値が記載された教師データが使用される。教師データが与えられる場合のニューラルネットワーク学習は、教師データの入出力が再現できるように、ニューラルネットワーク内部のパラメータが調整される。
【0003】
従来、教師データの取り扱いに関し、種々の提案がなされている。例えば、ニューラルネットワークで取り扱う教師データの修正方法が提案されている(例えば、特許文献1参照。)。この手法は、あるデータを教師データに追加する際に、距離が近いデータとの平均を取って合成するものである。これにより、教師データのケース数は増えず、ニューラルネットワークの学習時間が増えないようにするものである。
【0004】
また、矛盾する教師データについて統一する手法が提案されている(例えば、特許文献2参照。)。これは、自動車用腐食現象予測に関するもので、腐食予測に関わる入力データの選定及び学習方法についての提案であるが、矛盾した教師データに対して、「データの統一」と記述される処理をしている。尚、「データの統一」が具体的にどのような処理を行うかは、記述されていない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平4−184668号公報
【特許文献2】特開2002−257689号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的に、ニューラルネットワークの教師あり学習においては、同一入力パターンであるのに異なる出力パターンとなるような矛盾した教師データは用いられない。なぜなら、同一の入力に対し異なる出力を同時に満たす解が存在せず、それら出力の平均値を導出するよう学習されるからである。このとき、ニューラルネットワークの出力値は教師データの出力を再現しないため、従来の学習方法では総誤差評価関数を過大評価してしまう。総誤差評価関数は、全入力データに対して、ニューラルネットワークによる出力結果がどれほど教師データの出力に近づいたかを表す関数であり、ニューラルネットワークの学習進行状況(学習精度)を表す情報量である。通常は、任意で決めた閾値よりも総誤差評価関数が小さくなったとき、学習を打ち切る。ところが、矛盾した教師データの場合には、ニューラルネットワークの学習結果は教師データを再現しなくなるため、ニューラルネットワークの出力と教師データの出力との差からでは収束誤差が適切に評価できず、適切に学習の終了判定ができないという問題が起こる。このとき、従来の総誤差評価関数には余分な成分(矛盾データ成分)が加わっているため、学習終了時の学習精度を適切に評価することもできない。さらに、同一教師データのパターン分だけ不要な計算コストが発生し、学習時間が長くなるという問題もあった。
【0007】
そこで、本発明は、上記の問題に鑑みてなされたもので、矛盾した教師データであっても適切に総誤差評価関数を把握することにより学習の終了判定が実現でき、学習終了時に、必要とされる計算精度を得られるニューラルネットワーク学習における前処理装置を提供するものである。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数するとともに、教師データ中の同一入力パターンに対する全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータの重複分を教師入力データから削除する前処理を施す前処理部と、この前処理部で処理を施された教師データでニューラルネットワーク学習を実行し、各入力パターンの誤差評価関数を導出する誤差修正部と、前記誤差修正部から導出される各入力パターンの誤差評価関数と入力パターン毎のケース数から成る重み係数を用いて、ニューラルネットワーク学習の収束条件を決定するための総誤差評価関数を計算する総誤差評価関数部とを、具備することを特徴とするニューラルネットワーク学習の前処理装置が提供される。
【0009】
本発明のニューラルネットワーク学習の前処理装置は、前記誤差修正部において、各入力パターンの誤差評価関数の平均をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き平均として総誤差評価関数を計算することを特徴とする。
【0010】
また、本発明のニューラルネットワーク学習の前処理装置は、前記誤差修正部において、各入力パターンの誤差評価関数の総和をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き総和として総誤差評価関数を計算することを特徴とする。
【発明の効果】
【0011】
本発明によれば、矛盾する教師データに影響されることなく、総誤差評価関数を適切に評価するので、必要とされる学習精度で、確実に学習速度を向上させることが出来るとともに、入力データを重複して学習しないので、学習時間を短縮することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係るニューラルネットワーク学習の前処理装置の構成を示す図である。
【図2】教師データの一例を示す図である。
【図3】前処理部の概略の構成を説明する図である。
【図4】図2に示す教師データに対して前処理を施した教師データと入力パターン毎のケース数を示す図である。
【図5】総誤差評価関数評価部における処理を説明する図である。
【図6】学習した際の計算速度を比較した結果を示す図である。
【図7】前処理なしの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【図8】前処理ありの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【図9】第2の実施形態における教師データの実際のデータ形式を示す図である。
【図10】学習した際の計算速度を比較した結果を示す表である。
【図11】前処理なしの場合と前処理ありの場合について、反復計算回数と総誤差評価関数の関係を示した表である。
【図12】学習したデータに対する降水予測の結果を示す表である。
【図13】未学習のデータに対する降水予測の結果を示す表である。
【図14】教師データの一例を示す図である。
【図15】前処理済み教師データと入力パターン毎のケース数データを示す図である。
【図16】ケース数を保持しない前処理手法における前処理済み教師データと入力パターン毎のケース数データを示す図である。
【図17】学習結果の収束を三者で比較したもので、収束誤差の比(入力パターンの1のビットの数が1の点で規格化)を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0014】
図1は、本発明の実施形態に係るニューラルネットワーク学習の前処理装置の構成を示す図である。本実施形態において、ニューラルネットワークは、入力層―中間層―出力層からなる3層構造のもので説明するが、これに限定されることはない。
【0015】
ニューラルネットワーク学習の前処理装置100は、入力した教師データに対して前処理を行う前処理部101と、ニューラルネットワーク部102から構成されている。ニューラルネットワーク部102は、誤差修正部103と総誤差評価関数評価部104から構成されている。
【0016】
前処理部101に対して教師データが入力されると、教師データに対する前処理済み教師データと、教師データの同一入力パターン毎のケース数データが生成される。前処理済み教師データと同一入力パターン毎のケース数データはニューラルネットワーク部102に送信される。
【0017】
ニューラルネットワーク部102では、前処理済み教師データを利用して学習を行う。すなわち、誤差修正部103において教師データと目標出力との相対誤差が最小になるように修正しながら、学習を繰り返す。ある入力1ケースの誤差評価関数は、(そのパターンのケース数)×(教師出力ノードの値 −ニューラルネットワーク出力ノードの値)2を全出力ノードで計算し、その総和をとったものとして導出される。ニューラルネットワークの出力値は(理論的な収束値+収束誤差)と表わされ、収束誤差が小さくなるように学習を繰り返す。
【0018】
総誤差評価関数評価部104では、入力したケース数データを利用して総誤差評価関数の評価を行い、ニューラルネットワーク部102が学習の終了判定ができるようにする。総誤差評価関数は、各パターンで計算した誤差評価関数をパターン数の総和ではなくケース数データの総和で平均化したものである。
【0019】
学習が終了すると、ニューラルネットワークの学習結果として、結合強度やバイアスといったニューラルネットワーク内部の学習済みパラメータデータがニューラルネットワーク部102から出力される。
【0020】
次に、本実施形態において取り扱う教師データについて説明する。図2は、教師データの一例を示す図である。本実施形態では、教師データとして2値のビットデータで表現される教師データを例にしている。
【0021】
2値のビットデータは、次のような性質を持っている。(1)ある入力ビットが1のとき、対応する位置の出力ビットが1になる可能性がある、(2)出力側で1の値を取るビット数は1ケースで1ビットのみである、(3)出力パターンとして複数考えられる場合は、全てのパターンが均等の確率で選択される。
【0022】
図2に示すように、5ビット長の教師データの場合、教師入力データの入力パターンは“00000”と“11111”を除いた全30パターンがある。そこで、各パターンについて、例えば12個(12ケース)の入力データを用意する。ここで、12個用意した理由は、ケース数の少ないパターンは学習時に軽視されることから、各入力パターンのケース数が均等であるように設定するためである。本実施形態では、全教師データが平等に重要であると仮定しているため、12個(12ケース)ずつ用意するように設定したが、本発明では必ずしもこのような設定を必要とするものではない。上記した2値のビットデータの性質から、教師入力データが“00011”であるとき、教師出力データとしては“00001”と、“00010”が出現する可能性がある。そして、出現確率は均等なので、“00001”が6個、“00010”も6個となる。同様に、教師入力データが“00111”であるとき、教師出力データとしては“00001”と、“00010”と“00100”が出現する可能性がある。そして、出現確率は均等なので、“00001”が4個、“00010”が4個、“00100”も4個となる。ここで、教師入力データの1つ1つを「ケース」と呼ぶこととする。各パターンについて12ケースずつ用意するので、30×12=360、すなわち、本実施形態に係るニューラルネットワーク学習の前処理装置では、全部で360ケースの教師データを取り扱う。図2に示した教師データは、同一パターンの入力データであるにもかかわらず、異なる出力パターンが出現するので、矛盾した教師データを含んでいることになる。
【0023】
(前処理)
矛盾した教師データを含んだままでのニューラルネットワーク学習では、上記したように、適切な学習終了が判断できなくなる。そこで、本実施形態では、前処理部101において、教師データに対して以下に詳述するような前処理を施す。
【0024】
図3は、前処理部101の概略の構成を説明する図である。前処理部101は、同一入力パターン探索部201と、平均値導出部202から構成されている。
【0025】
教師データが前処理部101に入力されると、まず同一入力パターン探索部201において、教師データ中の同一入力パターンが探索される。探索結果は、入力パターン毎のケース数として計数する。図2に示した教師データの例では、全30個の入力パターンに対するケース数がそれぞれ計数され、入力パターン毎のケース数データは全パターンに対してそれぞれ12個という値を持つ。
【0026】
得られた入力パターン毎のケース数データは、同一入力パターン探索部201からニューラルネットワーク部102へ出力される。
【0027】
次に、平均値導出部202において、教師データの出力を各入力パターンに対する収束値に修正する。具体的には、係る修正は、教師データ中の同一入力パターンに対する全出力パターンの教師出力の平均値をとることになる。この平均値の導出処理は、教師データ中の全入力パターンに対して行われる。そして、平均値導出部202で導出したそれぞれのパターンにおける出力平均値は、教師出力値に書き換える。この書き換え処理では、入力パターン1つにつき一度だけ出力データを書き換え、以後、同一の入力パターンデータは教師入力データ中から削除する。したがって、教師入力データ数が360→30と大幅に減り、入力データを重複して学習することが避けられる。
【0028】
図2に示した教師データに対して前処理を施した結果は、図4に示すような前処理済み教師データと入力パターン毎のケース数データとなる。図4では、教師入力データは30パターンとなり、例えば“00011”の入力パターンに対する教師出力データは、“000 1/2 1/2”と修正され、“00111”の入力パターンに対する教師出力データは、“00 1/3 1/3 1/3”と修正されている。そして、入力パターン毎のケース数は、いずれも12個となっている。
【0029】
最終的に、前処理部101からは、教師データを入力パターン毎に出力が平均された前処理済み教師データがニューラルネットワーク部102へ出力される。このように、教師データ中の同一入力パターンを統一することで、ケース毎でなく入力パターン毎の学習を行う。上記から明らかであるように、前処理部101は矛盾していない教師データに対しては、実効的なデータ変換処理が行われない。そのため、教師データの中に矛盾している教師データが含まれているか否かを事前に判断する必要はない。
【0030】
次に、ニューラルネットワーク内部の総誤差評価関数の評価について説明する。図5は、総誤差評価関数評価部104における評価処理を説明する図である。総誤差評価関数評価部104では、総誤差評価関数の計算と学習終了判定が実行される。
【0031】
まず、誤差修正部103において前処理済みの教師データを1度だけ読み込み、学習を開始する。ニューラルネットワークでの学習方法は、例えば、逆誤差伝播法を用いることができる。誤差逆伝播法は、階層型ニューラルネットワークである多層パーセプトロンの学習に使われる学習アルゴリズムで、ある教師データが与えられたとき、多層パーセプトロンの出力が教師データと一致するように各層のノード間の結合強度を修正するという学習法である。また、総誤差評価関数の最小化には、例えば、準ニュートン法を用いることができる。準ニュートン法は、最適化問題のアルゴリズムの一つで、可変計量法とも呼ばれ、数値計算を反復的に行うニュートン法と同様な手法で最小値を探す手法である。
【0032】
ニューラルネットワークの出力ノードの値は、(理論的な収束値+収束誤差)であるが、矛盾した教師データで学習する場合には、矛盾した教師データの影響を受けて、総誤算評価関数の評価が正しく評価されない。総誤差評価関数をEとすると、E=(教師出力ノードの値−理論的な収束値−収束誤差)2 で表わされるが、矛盾した教師データで学習した場合には、(該当出力ノードの理論的な収束値)=((同一入力パターン間で平均化した教師出力ノードの値)となるため、誤差評価関数は、ケース数×(教師出力ノードの値と上記平均値とのずれ+収束誤差)2となる。したがって、収束誤差が0になったとしても、(教師出力ノードの値−理論的な収束値)≠0となり、誤差評価関数は0にならない。このため、総誤差評価関数Eが学習の終了判定に重要な収束誤差を表わさなくなる。一方、矛盾しない教師データの場合は、ケース数=1、(該当出力ノードの理論的な収束値)=(教師出力ノードの値)であり、誤差評価関数=ケース数×(収束誤差)2となり、収束誤差が0に近づくことで、誤差評価関数が0に近づく。
【0033】
そこで、本実施形態においては、同一入力パターン毎に、出力パターンを平均化した値に教師データを修正する前処理を施し、総誤差評価関数が正しく収束誤差を表わすようにする。さらに、パターン間の収束誤差も含めて学習結果を厳密に変化させないために、入力データ間の出現数などによる重み付けを行う。すなわち、教師データの修正時に、その入力パターンが登場した回数(ケース数)を重み係数として求める。そして、重み係数を使って、ケース数分の重みを付けた総誤差評価関数Eを導出する。図2に示した教師データの例では、“00001”の入力パターンの重み係数は12、“00011”の入力パターンの重み係数は12、“00111”の入力パターンの重み係数は12となる。
【0034】
収束判定に際しては、総誤差評価関数Eの評価にあたり各入力パターンの重み係数を利用する。総誤差評価関数評価部104は、入力パターン毎のケース数データ108を一度だけ読み込む。総誤差評価関数Eの具体的な計算としては、教師データと現在のニューラルネットワーク出力データとの差の平方和に、重み係数として該入力パターンのケース数を乗ずる。本実施形態においては、各入力パターンにおける誤差評価関数の平均値として総誤差評価関数Eを導出しているが、この平均処理において各パターンの誤差評価関数の重み付き総和を、入力パターン毎のケース数データ108の総和で除することで、重み付き平均として導出している。このため、ニューラルネットワークの学習処理は、本実施形態に係る前処理を施しても、学習結果を変化させることはない。
【0035】
収束判定については、次のような手法を採用するのが好適である。例えば、(1)総誤差評価関数の絶対値が、予め設定した第1の閾値を下回る、(2)学習進行時に総誤差評価関数の変化量が、予め設定した第2の閾値を下回るという2つの収束条件のうち、いずれかの条件が満たされたときに学習を終了する。尚、個別の問題に合わせた他の収束条件を用いても本発明の趣旨は損なわれないことは言うまでもない。
【0036】
次に、上記したように構成した本実施形態に係るニューラルネットワーク学習における前処理装置によって、奏される効果について説明する。前提条件として、ニューラルネットワークの構造を5−15−5の3層構造型とし、収束条件として予め設定する総誤差評価関数の絶対値について第1の閾値を1E-6、総誤差評価関数の変化量について第2の閾値を1E-9とする。効果の確認のため、ニューラルネットワーク部分を同一にし、前処理を行わずにニューラルネットワーク計算を行った結果と、前処理を行ってニューラルネットワーク計算を行った結果を比較する。
【0037】
前処理を行わない場合、図2に示すように矛盾した教師データを含む教師データを用いているため、教師データ中の出力値にニューラルネットワークの出力値が収束しない。そのため、総誤差評価関数が一定値より小さくならない。そこで、反復計算回数を1000回で学習を打ち切っている。尚、再現性についても確認するため、前処理なしの場合、前処理ありの場合、それぞれ5回の試行をしている。
【0038】
図6は、学習した際の計算速度を比較した結果を示している。前処理なしの場合、教師データは360ケースあるが、前処理ありの場合、教師データはパターン数である30ケースを学習することになる。ニューラルネットワークの学習時間と比較すると、入力パターン毎のケース数データを重み係数として利用する計算には教師データのデータ量が少ないため、計算速度が約7倍程度向上していることが確認できる。したがって、前処理を施すことにより、ニューラルネットワークの学習時間の短縮が図られることがわかる。
【0039】
図7は、前処理なしの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【0040】
図7によれば、前処理なしの場合、反復計算回数が20回程度で総誤差評価関数が0.51という値から低減しなくなっていることがわかる。この0.51という値は、教師データの矛盾による成分の影響が表れたもので、総誤差評価関数が(教師出力の値−理論的な収束値−収束誤差)で決まるのに対し、教師データと理論的な収束値の不一致に起因する成分である。
【0041】
図8は、前処理ありの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【0042】
前処理ありの場合には、教師データ中の矛盾が解決されているため、総誤差評価関数は純粋に教師出力とニューラルネットワーク出力との間の収束誤差を反映する。そのため、前処理ありの学習計算は、反復計算を重ねることにより、総誤差評価関数は0に近づいていくのがわかる。したがって、総誤差評価関数自体と総誤差評価関数の変化量について閾値を用いた収束判定条件を適用することができる。尚、図8に示す5回の試行結果から、総誤差評価関数の0への近づき方に差があることがわかる。これは、反復計算回数からでは、総誤差評価関数の計算精度が決まらないことを示している。
【0043】
(第2の実施形態)
第2の実施形態では、教師データに対して前処理を施しても、学習結果の収束値に影響を与えないことについて、例を挙げて説明する。本実施形態は、ニューラルネットワークの構造や総誤差評価関数自体と総誤差評価関数の変化量についての閾値が異なるが、第1の実施形態と同等の構成としている。
【0044】
第2の実施形態では、図2に示したような機能検証用に設定したデータではなく、現実に用いられる可能性があるデータに対して前処理を施してニューラルネットワーク学習させ、降水予測を行う。教師出力の平均値を効果的に利用する一例として、降雨予測や配電系統分野における現象などに対し、対象となる現象の発生確率を入力パターン別に導出することが挙げられる。
【0045】
一例として、京都府の10地点の降水有無のデータを利用して降水予測に適用した。京都府の10地点(須知、三和、長岡京、三岳、故屋岡、京北、鷲峰山、本庄、花背峠、綾部)、4つの時刻(現在、30分前、60分前、90分前)の降水有無を入力データとし、それら10地点の10分後の降水有無を予測する。降水データは、気象庁が発表している「地域気象観測システム」(AMeDAS( Automated Meteorological Data Acquisition System))のデータを用いている。教師データを2004年8月、2006年8月、2008年8月、汎化性能の検証として2005年8月、2007年8月のデータを利用した。この二つのデータ時には、同じモデルで降雨したことを仮定している。
【0046】
実際のデータ形式を図9に示す。図9に示すデータ中の値が1の場合、降水があったことを示している。教師データから全地点・全時刻晴れていた入力条件、すなわち全て0となっている入力パターンは除外し、2469ケースに対して学習を行った。尚、ニューラルネットワークから出力されるのは同一入力に対する平均出力であるため、出力値は各地点の10分後の降水確率という意味を持つ。
【0047】
本実施形態においては、汎化性能の向上を意図して過度に中間層を増やさずに、ニューラルネットワークの構造は、40−25−10のペンシル型を用いた。ニューラルネットワークの構造上、総誤差評価関数Eは0に収束しないため、総誤差評価関数の絶対値について第1の閾値は1E-2、総誤差評価関数の変化量について第2の閾値は1E-4と設定した。再現性についても確認するため、前処理なしの場合、前処理ありの場合、それぞれ5回の試行をしている。
【0048】
図10は、学習した際の計算速度を比較した結果を示している。前処理なしの場合には教師データは2469ケースあるが、前処理ありの場合には教師データのパターン数である1295ケースを学習することとなった。このように、事前に教師データが矛盾しているかどうかを判断する必要はなく、前処理の結果、学習するケース数が減っていれば矛盾した教師データを含んでいることがわかる。学習速度については、5回の試行結果から、平均して約1.7倍向上していることが確認できる。
【0049】
図11は前処理なしの場合と前処理ありの場合について、反復計算回数と総誤差評価関数の関係を示した表である。図11に示すように、前処理なしの場合と前処理ありの場合では、両者の総誤差評価関数Eの差は矛盾した教師データによる成分0.11と同等程度になっている。前処理を行わない場合、総誤差評価関数に、ニューラルネットワークの構造による誤差成分以外に、矛盾した教師データによる誤差成分が含まれてしまうため、ニューラルネットワークの構造による誤差成分と総誤差評価関数が正しく関係付けられない。
【0050】
本実施形態により矛盾した教師データによる成分を解消することで、総誤差評価関数がニューラルネットワークの構造により適切に決定付けられるため、本発明がニューラルネットワークの構造決定支援に有用であることが確認できた。
【0051】
図12は学習したデータに対する降水予測の結果を示す表であり、図13は未学習のデータに対する降水予測の結果を示す表である。図12、図13において、左端の列はニューラルネットワークの降水確率(出力確率)を10%刻みで区切ったものである。前処理なしの場合の降水確率(出力確率)及び前処理ありの場合の降水確率(出力確率)の列は、(実際に降水した度数)/(その行に含まれるニューラルネットワークの出力確率の度数)として計算したものである。これらは、ニューラルネットワークの出力確率がどの程度の信頼性であるかを示している。例えば、図12中の前処理なしの場合、ニューラルネットワークの出力確率が80〜90%であった度数は1521件であり、そのうち実際に1394件が降水したため、降水確率(出力確率)91.69%となっている。それぞれの結果は、5回試行した降水確率(出力確率)の平均値を示している。標準偏差については、5回試行した結果の中での実験的な標準偏差を示しており、各試行における収束誤差成分は含めていない。そのため、真の標準偏差と比して小さく見積もられている。
【0052】
図12、図13において、重要なことは、降水予測としてニューラルネットワークの出力確率の信頼性評価ではなく、前処理無しの場合と前処理ありの場合の学習結果が誤差の範囲でほぼ一致していることである。
【0053】
本実施形態によれば、教師データに前処理を施しても、学習結果の収束値が変わらず、学習結果が変化しないことが、第1の実施形態のように人為的に設定したデータだけではなく実データにおいても確認できた。また、教師データに対して前処理を施す際、事前に教師データの矛盾性を確認する必要はなく、前処理を施すことによって学習速度が向上する効果がある。さらに、総誤差評価関数をニューラルネットワークの構造による成分のみにすることでニューラルネットワーク構造決定支援に役立つ可能性がある。
【0054】
(第3の実施形態)
次に、教師データに対して前処理を施しても、学習結果の各入力パターンにおける収束誤差に影響を与えないことについて、例を挙げて説明する。本実施形態においては、ニューラルネットワークの構造は5−15−5のノードを持つ3層構造型とし、第1の閾値を1E-6、第2の閾値を1E-9にそれぞれ設定し、第1の実施形態と同等の構成としている。
【0055】
図14は、教師データの一例を示す図である。図14に示すデータは2値のビットデータで、図2に示したデータと同じ性質をもっているが、各入力パターンの重複数が図2に示した場合と異なっている。同一の入力パターンの重複数は、教師入力データ中のビット“1”の数と同じである。すなわち、入力パターン“00011”の場合、2ケース有り、出力パターンは、“00001”が1ケース、“00010”が1ケースとなる。入力パターン“00111”の場合、3ケース有り、出力パターンは、“00001”が1ケース、“00010”が1ケース、“00100” が1ケースとなる。“00000”と“11111”は用いないので、教師データは、30パターン、75ケースとなる。
【0056】
このようなデータに対して、同一入力パターン毎に、出力パターンを平均化した値に教師データを修正する前処理を施すと、前処理済み教師データと入力パターン毎のケース数データは図15に示すようになる。図15では、例えば“00011”の入力パターンに対する教師出力データは、“0001/2 1/2”と修正され、入力パターン毎のケース数(=重み係数)は2個、このケースの誤差評価関数はE2=7.1E-7 となっている。また、“00111”の入力パターンに対する教師出力データは、“001/3 1/3 1/3”と修正され、入力パターン毎のケース数(=重み係数)は3個、このケースの誤差評価関数はE3=2.5E-6 となっている。
【0057】
一方、上記特許文献1では、あるデータを教師データに追加する際に、距離が近いデータとの平均を取って合成するが、ケース数は保持していない。そのため、入力パターン毎のケース数データは全て1ケースとして記録される処理となる(図16参照)。
【0058】
以上の条件下で、同じデータに対して、本実施形態による前処理を施した場合、特許文献1のようにケース数を保持しない場合、前処理なしの場合について、ニューラルネットワーク学習をそれぞれ3回ずつ試行し再現性を確認した。前処理なしの場合については、第1の実施形態と同じく1000回の反復回数で学習を打ち切っている。
【0059】
入力ケース毎に収束誤差を導出し、入力データの1ビットの数毎に収束誤差を平均し、「1ビットの数=1」を使って規格化し、学習結果の収束を三者で比較すると、図17に示すようになる。図17の横軸は入力データ中の“1”の数を表している。これは、入力パターンの1の数によってケース数が変化しているためである。図17の縦軸は対応する横軸の各ケースにおける平均誤差評価関数を、入力データ中の“1”の数が1個のパターンのときの値で規格化したものである。図17の生成手順を詳述すると、まず、入力中で“1”の数ごとにパターンを分ける。ここでは、“1”の数が、1個が5パターン、2個が10パターン、3個が10パターン、4個が5パターンとなっている。次いで、“1”の数ごとに、誤差評価関数を平均化する。なお、このときの誤差評価関数には、特許文献1の場合と比較するので、ケース数は乗じていない。したがって、それぞれ、1個:E1、2個:E2、3個:E3、4個:E4、と置いている。そして、それぞれ、E1で規格化した値を縦軸の値とする。したがって、1個:E1/E1、2個:E2/E1、3個:E3/E1、4個:E4/E1で表わされている。
【0060】
図17から明らかなように、特許文献1のようにケース数を保持しない前処理を施した場合では、入力パターンの“1”の数毎に見た収束誤差の比が異なることが確認できる。一方で、本実施形態と前処理なしの結果は概ね全パターンにわたり同程度の比の収束誤差になっている。
【0061】
この結果から、本発明に係る教師データの前処理手法は、収束値だけでなく各入力パターンの収束誤差においても、前処理前と学習結果を変えないという効果が確認できる。
【0062】
以上説明したように、本実施形態によれば、矛盾した教師データが含まれる教師データを取り扱っても、同一入力パターンに対する出力の平均値をニューラルネットワークにより導出したい場合に学習速度の向上と総誤差評価関数を適切に評価することができる。
【0063】
なお、本発明は上記の実施形態のそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0064】
100…ニューラルネットワーク学習の前処理装置、101…前処理部、102…ニューラルネットワーク部、103…誤差修正部、104…総誤差評価関数評価部、201…同一入力パターン探索部、202…平均値導出部。
【技術分野】
【0001】
本発明は、教師あり学習に対して使用されるニューラルネットワーク学習における前処理装置に関する。
【背景技術】
【0002】
教師あり学習に対して使用されるニューラルネットワーク学習では、理想となる入出力の値が記載された教師データが使用される。教師データが与えられる場合のニューラルネットワーク学習は、教師データの入出力が再現できるように、ニューラルネットワーク内部のパラメータが調整される。
【0003】
従来、教師データの取り扱いに関し、種々の提案がなされている。例えば、ニューラルネットワークで取り扱う教師データの修正方法が提案されている(例えば、特許文献1参照。)。この手法は、あるデータを教師データに追加する際に、距離が近いデータとの平均を取って合成するものである。これにより、教師データのケース数は増えず、ニューラルネットワークの学習時間が増えないようにするものである。
【0004】
また、矛盾する教師データについて統一する手法が提案されている(例えば、特許文献2参照。)。これは、自動車用腐食現象予測に関するもので、腐食予測に関わる入力データの選定及び学習方法についての提案であるが、矛盾した教師データに対して、「データの統一」と記述される処理をしている。尚、「データの統一」が具体的にどのような処理を行うかは、記述されていない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平4−184668号公報
【特許文献2】特開2002−257689号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的に、ニューラルネットワークの教師あり学習においては、同一入力パターンであるのに異なる出力パターンとなるような矛盾した教師データは用いられない。なぜなら、同一の入力に対し異なる出力を同時に満たす解が存在せず、それら出力の平均値を導出するよう学習されるからである。このとき、ニューラルネットワークの出力値は教師データの出力を再現しないため、従来の学習方法では総誤差評価関数を過大評価してしまう。総誤差評価関数は、全入力データに対して、ニューラルネットワークによる出力結果がどれほど教師データの出力に近づいたかを表す関数であり、ニューラルネットワークの学習進行状況(学習精度)を表す情報量である。通常は、任意で決めた閾値よりも総誤差評価関数が小さくなったとき、学習を打ち切る。ところが、矛盾した教師データの場合には、ニューラルネットワークの学習結果は教師データを再現しなくなるため、ニューラルネットワークの出力と教師データの出力との差からでは収束誤差が適切に評価できず、適切に学習の終了判定ができないという問題が起こる。このとき、従来の総誤差評価関数には余分な成分(矛盾データ成分)が加わっているため、学習終了時の学習精度を適切に評価することもできない。さらに、同一教師データのパターン分だけ不要な計算コストが発生し、学習時間が長くなるという問題もあった。
【0007】
そこで、本発明は、上記の問題に鑑みてなされたもので、矛盾した教師データであっても適切に総誤差評価関数を把握することにより学習の終了判定が実現でき、学習終了時に、必要とされる計算精度を得られるニューラルネットワーク学習における前処理装置を提供するものである。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数するとともに、教師データ中の同一入力パターンに対する全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータの重複分を教師入力データから削除する前処理を施す前処理部と、この前処理部で処理を施された教師データでニューラルネットワーク学習を実行し、各入力パターンの誤差評価関数を導出する誤差修正部と、前記誤差修正部から導出される各入力パターンの誤差評価関数と入力パターン毎のケース数から成る重み係数を用いて、ニューラルネットワーク学習の収束条件を決定するための総誤差評価関数を計算する総誤差評価関数部とを、具備することを特徴とするニューラルネットワーク学習の前処理装置が提供される。
【0009】
本発明のニューラルネットワーク学習の前処理装置は、前記誤差修正部において、各入力パターンの誤差評価関数の平均をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き平均として総誤差評価関数を計算することを特徴とする。
【0010】
また、本発明のニューラルネットワーク学習の前処理装置は、前記誤差修正部において、各入力パターンの誤差評価関数の総和をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き総和として総誤差評価関数を計算することを特徴とする。
【発明の効果】
【0011】
本発明によれば、矛盾する教師データに影響されることなく、総誤差評価関数を適切に評価するので、必要とされる学習精度で、確実に学習速度を向上させることが出来るとともに、入力データを重複して学習しないので、学習時間を短縮することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係るニューラルネットワーク学習の前処理装置の構成を示す図である。
【図2】教師データの一例を示す図である。
【図3】前処理部の概略の構成を説明する図である。
【図4】図2に示す教師データに対して前処理を施した教師データと入力パターン毎のケース数を示す図である。
【図5】総誤差評価関数評価部における処理を説明する図である。
【図6】学習した際の計算速度を比較した結果を示す図である。
【図7】前処理なしの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【図8】前処理ありの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【図9】第2の実施形態における教師データの実際のデータ形式を示す図である。
【図10】学習した際の計算速度を比較した結果を示す表である。
【図11】前処理なしの場合と前処理ありの場合について、反復計算回数と総誤差評価関数の関係を示した表である。
【図12】学習したデータに対する降水予測の結果を示す表である。
【図13】未学習のデータに対する降水予測の結果を示す表である。
【図14】教師データの一例を示す図である。
【図15】前処理済み教師データと入力パターン毎のケース数データを示す図である。
【図16】ケース数を保持しない前処理手法における前処理済み教師データと入力パターン毎のケース数データを示す図である。
【図17】学習結果の収束を三者で比較したもので、収束誤差の比(入力パターンの1のビットの数が1の点で規格化)を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0014】
図1は、本発明の実施形態に係るニューラルネットワーク学習の前処理装置の構成を示す図である。本実施形態において、ニューラルネットワークは、入力層―中間層―出力層からなる3層構造のもので説明するが、これに限定されることはない。
【0015】
ニューラルネットワーク学習の前処理装置100は、入力した教師データに対して前処理を行う前処理部101と、ニューラルネットワーク部102から構成されている。ニューラルネットワーク部102は、誤差修正部103と総誤差評価関数評価部104から構成されている。
【0016】
前処理部101に対して教師データが入力されると、教師データに対する前処理済み教師データと、教師データの同一入力パターン毎のケース数データが生成される。前処理済み教師データと同一入力パターン毎のケース数データはニューラルネットワーク部102に送信される。
【0017】
ニューラルネットワーク部102では、前処理済み教師データを利用して学習を行う。すなわち、誤差修正部103において教師データと目標出力との相対誤差が最小になるように修正しながら、学習を繰り返す。ある入力1ケースの誤差評価関数は、(そのパターンのケース数)×(教師出力ノードの値 −ニューラルネットワーク出力ノードの値)2を全出力ノードで計算し、その総和をとったものとして導出される。ニューラルネットワークの出力値は(理論的な収束値+収束誤差)と表わされ、収束誤差が小さくなるように学習を繰り返す。
【0018】
総誤差評価関数評価部104では、入力したケース数データを利用して総誤差評価関数の評価を行い、ニューラルネットワーク部102が学習の終了判定ができるようにする。総誤差評価関数は、各パターンで計算した誤差評価関数をパターン数の総和ではなくケース数データの総和で平均化したものである。
【0019】
学習が終了すると、ニューラルネットワークの学習結果として、結合強度やバイアスといったニューラルネットワーク内部の学習済みパラメータデータがニューラルネットワーク部102から出力される。
【0020】
次に、本実施形態において取り扱う教師データについて説明する。図2は、教師データの一例を示す図である。本実施形態では、教師データとして2値のビットデータで表現される教師データを例にしている。
【0021】
2値のビットデータは、次のような性質を持っている。(1)ある入力ビットが1のとき、対応する位置の出力ビットが1になる可能性がある、(2)出力側で1の値を取るビット数は1ケースで1ビットのみである、(3)出力パターンとして複数考えられる場合は、全てのパターンが均等の確率で選択される。
【0022】
図2に示すように、5ビット長の教師データの場合、教師入力データの入力パターンは“00000”と“11111”を除いた全30パターンがある。そこで、各パターンについて、例えば12個(12ケース)の入力データを用意する。ここで、12個用意した理由は、ケース数の少ないパターンは学習時に軽視されることから、各入力パターンのケース数が均等であるように設定するためである。本実施形態では、全教師データが平等に重要であると仮定しているため、12個(12ケース)ずつ用意するように設定したが、本発明では必ずしもこのような設定を必要とするものではない。上記した2値のビットデータの性質から、教師入力データが“00011”であるとき、教師出力データとしては“00001”と、“00010”が出現する可能性がある。そして、出現確率は均等なので、“00001”が6個、“00010”も6個となる。同様に、教師入力データが“00111”であるとき、教師出力データとしては“00001”と、“00010”と“00100”が出現する可能性がある。そして、出現確率は均等なので、“00001”が4個、“00010”が4個、“00100”も4個となる。ここで、教師入力データの1つ1つを「ケース」と呼ぶこととする。各パターンについて12ケースずつ用意するので、30×12=360、すなわち、本実施形態に係るニューラルネットワーク学習の前処理装置では、全部で360ケースの教師データを取り扱う。図2に示した教師データは、同一パターンの入力データであるにもかかわらず、異なる出力パターンが出現するので、矛盾した教師データを含んでいることになる。
【0023】
(前処理)
矛盾した教師データを含んだままでのニューラルネットワーク学習では、上記したように、適切な学習終了が判断できなくなる。そこで、本実施形態では、前処理部101において、教師データに対して以下に詳述するような前処理を施す。
【0024】
図3は、前処理部101の概略の構成を説明する図である。前処理部101は、同一入力パターン探索部201と、平均値導出部202から構成されている。
【0025】
教師データが前処理部101に入力されると、まず同一入力パターン探索部201において、教師データ中の同一入力パターンが探索される。探索結果は、入力パターン毎のケース数として計数する。図2に示した教師データの例では、全30個の入力パターンに対するケース数がそれぞれ計数され、入力パターン毎のケース数データは全パターンに対してそれぞれ12個という値を持つ。
【0026】
得られた入力パターン毎のケース数データは、同一入力パターン探索部201からニューラルネットワーク部102へ出力される。
【0027】
次に、平均値導出部202において、教師データの出力を各入力パターンに対する収束値に修正する。具体的には、係る修正は、教師データ中の同一入力パターンに対する全出力パターンの教師出力の平均値をとることになる。この平均値の導出処理は、教師データ中の全入力パターンに対して行われる。そして、平均値導出部202で導出したそれぞれのパターンにおける出力平均値は、教師出力値に書き換える。この書き換え処理では、入力パターン1つにつき一度だけ出力データを書き換え、以後、同一の入力パターンデータは教師入力データ中から削除する。したがって、教師入力データ数が360→30と大幅に減り、入力データを重複して学習することが避けられる。
【0028】
図2に示した教師データに対して前処理を施した結果は、図4に示すような前処理済み教師データと入力パターン毎のケース数データとなる。図4では、教師入力データは30パターンとなり、例えば“00011”の入力パターンに対する教師出力データは、“000 1/2 1/2”と修正され、“00111”の入力パターンに対する教師出力データは、“00 1/3 1/3 1/3”と修正されている。そして、入力パターン毎のケース数は、いずれも12個となっている。
【0029】
最終的に、前処理部101からは、教師データを入力パターン毎に出力が平均された前処理済み教師データがニューラルネットワーク部102へ出力される。このように、教師データ中の同一入力パターンを統一することで、ケース毎でなく入力パターン毎の学習を行う。上記から明らかであるように、前処理部101は矛盾していない教師データに対しては、実効的なデータ変換処理が行われない。そのため、教師データの中に矛盾している教師データが含まれているか否かを事前に判断する必要はない。
【0030】
次に、ニューラルネットワーク内部の総誤差評価関数の評価について説明する。図5は、総誤差評価関数評価部104における評価処理を説明する図である。総誤差評価関数評価部104では、総誤差評価関数の計算と学習終了判定が実行される。
【0031】
まず、誤差修正部103において前処理済みの教師データを1度だけ読み込み、学習を開始する。ニューラルネットワークでの学習方法は、例えば、逆誤差伝播法を用いることができる。誤差逆伝播法は、階層型ニューラルネットワークである多層パーセプトロンの学習に使われる学習アルゴリズムで、ある教師データが与えられたとき、多層パーセプトロンの出力が教師データと一致するように各層のノード間の結合強度を修正するという学習法である。また、総誤差評価関数の最小化には、例えば、準ニュートン法を用いることができる。準ニュートン法は、最適化問題のアルゴリズムの一つで、可変計量法とも呼ばれ、数値計算を反復的に行うニュートン法と同様な手法で最小値を探す手法である。
【0032】
ニューラルネットワークの出力ノードの値は、(理論的な収束値+収束誤差)であるが、矛盾した教師データで学習する場合には、矛盾した教師データの影響を受けて、総誤算評価関数の評価が正しく評価されない。総誤差評価関数をEとすると、E=(教師出力ノードの値−理論的な収束値−収束誤差)2 で表わされるが、矛盾した教師データで学習した場合には、(該当出力ノードの理論的な収束値)=((同一入力パターン間で平均化した教師出力ノードの値)となるため、誤差評価関数は、ケース数×(教師出力ノードの値と上記平均値とのずれ+収束誤差)2となる。したがって、収束誤差が0になったとしても、(教師出力ノードの値−理論的な収束値)≠0となり、誤差評価関数は0にならない。このため、総誤差評価関数Eが学習の終了判定に重要な収束誤差を表わさなくなる。一方、矛盾しない教師データの場合は、ケース数=1、(該当出力ノードの理論的な収束値)=(教師出力ノードの値)であり、誤差評価関数=ケース数×(収束誤差)2となり、収束誤差が0に近づくことで、誤差評価関数が0に近づく。
【0033】
そこで、本実施形態においては、同一入力パターン毎に、出力パターンを平均化した値に教師データを修正する前処理を施し、総誤差評価関数が正しく収束誤差を表わすようにする。さらに、パターン間の収束誤差も含めて学習結果を厳密に変化させないために、入力データ間の出現数などによる重み付けを行う。すなわち、教師データの修正時に、その入力パターンが登場した回数(ケース数)を重み係数として求める。そして、重み係数を使って、ケース数分の重みを付けた総誤差評価関数Eを導出する。図2に示した教師データの例では、“00001”の入力パターンの重み係数は12、“00011”の入力パターンの重み係数は12、“00111”の入力パターンの重み係数は12となる。
【0034】
収束判定に際しては、総誤差評価関数Eの評価にあたり各入力パターンの重み係数を利用する。総誤差評価関数評価部104は、入力パターン毎のケース数データ108を一度だけ読み込む。総誤差評価関数Eの具体的な計算としては、教師データと現在のニューラルネットワーク出力データとの差の平方和に、重み係数として該入力パターンのケース数を乗ずる。本実施形態においては、各入力パターンにおける誤差評価関数の平均値として総誤差評価関数Eを導出しているが、この平均処理において各パターンの誤差評価関数の重み付き総和を、入力パターン毎のケース数データ108の総和で除することで、重み付き平均として導出している。このため、ニューラルネットワークの学習処理は、本実施形態に係る前処理を施しても、学習結果を変化させることはない。
【0035】
収束判定については、次のような手法を採用するのが好適である。例えば、(1)総誤差評価関数の絶対値が、予め設定した第1の閾値を下回る、(2)学習進行時に総誤差評価関数の変化量が、予め設定した第2の閾値を下回るという2つの収束条件のうち、いずれかの条件が満たされたときに学習を終了する。尚、個別の問題に合わせた他の収束条件を用いても本発明の趣旨は損なわれないことは言うまでもない。
【0036】
次に、上記したように構成した本実施形態に係るニューラルネットワーク学習における前処理装置によって、奏される効果について説明する。前提条件として、ニューラルネットワークの構造を5−15−5の3層構造型とし、収束条件として予め設定する総誤差評価関数の絶対値について第1の閾値を1E-6、総誤差評価関数の変化量について第2の閾値を1E-9とする。効果の確認のため、ニューラルネットワーク部分を同一にし、前処理を行わずにニューラルネットワーク計算を行った結果と、前処理を行ってニューラルネットワーク計算を行った結果を比較する。
【0037】
前処理を行わない場合、図2に示すように矛盾した教師データを含む教師データを用いているため、教師データ中の出力値にニューラルネットワークの出力値が収束しない。そのため、総誤差評価関数が一定値より小さくならない。そこで、反復計算回数を1000回で学習を打ち切っている。尚、再現性についても確認するため、前処理なしの場合、前処理ありの場合、それぞれ5回の試行をしている。
【0038】
図6は、学習した際の計算速度を比較した結果を示している。前処理なしの場合、教師データは360ケースあるが、前処理ありの場合、教師データはパターン数である30ケースを学習することになる。ニューラルネットワークの学習時間と比較すると、入力パターン毎のケース数データを重み係数として利用する計算には教師データのデータ量が少ないため、計算速度が約7倍程度向上していることが確認できる。したがって、前処理を施すことにより、ニューラルネットワークの学習時間の短縮が図られることがわかる。
【0039】
図7は、前処理なしの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【0040】
図7によれば、前処理なしの場合、反復計算回数が20回程度で総誤差評価関数が0.51という値から低減しなくなっていることがわかる。この0.51という値は、教師データの矛盾による成分の影響が表れたもので、総誤差評価関数が(教師出力の値−理論的な収束値−収束誤差)で決まるのに対し、教師データと理論的な収束値の不一致に起因する成分である。
【0041】
図8は、前処理ありの場合の総誤差評価関数と反復計算回数の関係を示すグラフである。
【0042】
前処理ありの場合には、教師データ中の矛盾が解決されているため、総誤差評価関数は純粋に教師出力とニューラルネットワーク出力との間の収束誤差を反映する。そのため、前処理ありの学習計算は、反復計算を重ねることにより、総誤差評価関数は0に近づいていくのがわかる。したがって、総誤差評価関数自体と総誤差評価関数の変化量について閾値を用いた収束判定条件を適用することができる。尚、図8に示す5回の試行結果から、総誤差評価関数の0への近づき方に差があることがわかる。これは、反復計算回数からでは、総誤差評価関数の計算精度が決まらないことを示している。
【0043】
(第2の実施形態)
第2の実施形態では、教師データに対して前処理を施しても、学習結果の収束値に影響を与えないことについて、例を挙げて説明する。本実施形態は、ニューラルネットワークの構造や総誤差評価関数自体と総誤差評価関数の変化量についての閾値が異なるが、第1の実施形態と同等の構成としている。
【0044】
第2の実施形態では、図2に示したような機能検証用に設定したデータではなく、現実に用いられる可能性があるデータに対して前処理を施してニューラルネットワーク学習させ、降水予測を行う。教師出力の平均値を効果的に利用する一例として、降雨予測や配電系統分野における現象などに対し、対象となる現象の発生確率を入力パターン別に導出することが挙げられる。
【0045】
一例として、京都府の10地点の降水有無のデータを利用して降水予測に適用した。京都府の10地点(須知、三和、長岡京、三岳、故屋岡、京北、鷲峰山、本庄、花背峠、綾部)、4つの時刻(現在、30分前、60分前、90分前)の降水有無を入力データとし、それら10地点の10分後の降水有無を予測する。降水データは、気象庁が発表している「地域気象観測システム」(AMeDAS( Automated Meteorological Data Acquisition System))のデータを用いている。教師データを2004年8月、2006年8月、2008年8月、汎化性能の検証として2005年8月、2007年8月のデータを利用した。この二つのデータ時には、同じモデルで降雨したことを仮定している。
【0046】
実際のデータ形式を図9に示す。図9に示すデータ中の値が1の場合、降水があったことを示している。教師データから全地点・全時刻晴れていた入力条件、すなわち全て0となっている入力パターンは除外し、2469ケースに対して学習を行った。尚、ニューラルネットワークから出力されるのは同一入力に対する平均出力であるため、出力値は各地点の10分後の降水確率という意味を持つ。
【0047】
本実施形態においては、汎化性能の向上を意図して過度に中間層を増やさずに、ニューラルネットワークの構造は、40−25−10のペンシル型を用いた。ニューラルネットワークの構造上、総誤差評価関数Eは0に収束しないため、総誤差評価関数の絶対値について第1の閾値は1E-2、総誤差評価関数の変化量について第2の閾値は1E-4と設定した。再現性についても確認するため、前処理なしの場合、前処理ありの場合、それぞれ5回の試行をしている。
【0048】
図10は、学習した際の計算速度を比較した結果を示している。前処理なしの場合には教師データは2469ケースあるが、前処理ありの場合には教師データのパターン数である1295ケースを学習することとなった。このように、事前に教師データが矛盾しているかどうかを判断する必要はなく、前処理の結果、学習するケース数が減っていれば矛盾した教師データを含んでいることがわかる。学習速度については、5回の試行結果から、平均して約1.7倍向上していることが確認できる。
【0049】
図11は前処理なしの場合と前処理ありの場合について、反復計算回数と総誤差評価関数の関係を示した表である。図11に示すように、前処理なしの場合と前処理ありの場合では、両者の総誤差評価関数Eの差は矛盾した教師データによる成分0.11と同等程度になっている。前処理を行わない場合、総誤差評価関数に、ニューラルネットワークの構造による誤差成分以外に、矛盾した教師データによる誤差成分が含まれてしまうため、ニューラルネットワークの構造による誤差成分と総誤差評価関数が正しく関係付けられない。
【0050】
本実施形態により矛盾した教師データによる成分を解消することで、総誤差評価関数がニューラルネットワークの構造により適切に決定付けられるため、本発明がニューラルネットワークの構造決定支援に有用であることが確認できた。
【0051】
図12は学習したデータに対する降水予測の結果を示す表であり、図13は未学習のデータに対する降水予測の結果を示す表である。図12、図13において、左端の列はニューラルネットワークの降水確率(出力確率)を10%刻みで区切ったものである。前処理なしの場合の降水確率(出力確率)及び前処理ありの場合の降水確率(出力確率)の列は、(実際に降水した度数)/(その行に含まれるニューラルネットワークの出力確率の度数)として計算したものである。これらは、ニューラルネットワークの出力確率がどの程度の信頼性であるかを示している。例えば、図12中の前処理なしの場合、ニューラルネットワークの出力確率が80〜90%であった度数は1521件であり、そのうち実際に1394件が降水したため、降水確率(出力確率)91.69%となっている。それぞれの結果は、5回試行した降水確率(出力確率)の平均値を示している。標準偏差については、5回試行した結果の中での実験的な標準偏差を示しており、各試行における収束誤差成分は含めていない。そのため、真の標準偏差と比して小さく見積もられている。
【0052】
図12、図13において、重要なことは、降水予測としてニューラルネットワークの出力確率の信頼性評価ではなく、前処理無しの場合と前処理ありの場合の学習結果が誤差の範囲でほぼ一致していることである。
【0053】
本実施形態によれば、教師データに前処理を施しても、学習結果の収束値が変わらず、学習結果が変化しないことが、第1の実施形態のように人為的に設定したデータだけではなく実データにおいても確認できた。また、教師データに対して前処理を施す際、事前に教師データの矛盾性を確認する必要はなく、前処理を施すことによって学習速度が向上する効果がある。さらに、総誤差評価関数をニューラルネットワークの構造による成分のみにすることでニューラルネットワーク構造決定支援に役立つ可能性がある。
【0054】
(第3の実施形態)
次に、教師データに対して前処理を施しても、学習結果の各入力パターンにおける収束誤差に影響を与えないことについて、例を挙げて説明する。本実施形態においては、ニューラルネットワークの構造は5−15−5のノードを持つ3層構造型とし、第1の閾値を1E-6、第2の閾値を1E-9にそれぞれ設定し、第1の実施形態と同等の構成としている。
【0055】
図14は、教師データの一例を示す図である。図14に示すデータは2値のビットデータで、図2に示したデータと同じ性質をもっているが、各入力パターンの重複数が図2に示した場合と異なっている。同一の入力パターンの重複数は、教師入力データ中のビット“1”の数と同じである。すなわち、入力パターン“00011”の場合、2ケース有り、出力パターンは、“00001”が1ケース、“00010”が1ケースとなる。入力パターン“00111”の場合、3ケース有り、出力パターンは、“00001”が1ケース、“00010”が1ケース、“00100” が1ケースとなる。“00000”と“11111”は用いないので、教師データは、30パターン、75ケースとなる。
【0056】
このようなデータに対して、同一入力パターン毎に、出力パターンを平均化した値に教師データを修正する前処理を施すと、前処理済み教師データと入力パターン毎のケース数データは図15に示すようになる。図15では、例えば“00011”の入力パターンに対する教師出力データは、“0001/2 1/2”と修正され、入力パターン毎のケース数(=重み係数)は2個、このケースの誤差評価関数はE2=7.1E-7 となっている。また、“00111”の入力パターンに対する教師出力データは、“001/3 1/3 1/3”と修正され、入力パターン毎のケース数(=重み係数)は3個、このケースの誤差評価関数はE3=2.5E-6 となっている。
【0057】
一方、上記特許文献1では、あるデータを教師データに追加する際に、距離が近いデータとの平均を取って合成するが、ケース数は保持していない。そのため、入力パターン毎のケース数データは全て1ケースとして記録される処理となる(図16参照)。
【0058】
以上の条件下で、同じデータに対して、本実施形態による前処理を施した場合、特許文献1のようにケース数を保持しない場合、前処理なしの場合について、ニューラルネットワーク学習をそれぞれ3回ずつ試行し再現性を確認した。前処理なしの場合については、第1の実施形態と同じく1000回の反復回数で学習を打ち切っている。
【0059】
入力ケース毎に収束誤差を導出し、入力データの1ビットの数毎に収束誤差を平均し、「1ビットの数=1」を使って規格化し、学習結果の収束を三者で比較すると、図17に示すようになる。図17の横軸は入力データ中の“1”の数を表している。これは、入力パターンの1の数によってケース数が変化しているためである。図17の縦軸は対応する横軸の各ケースにおける平均誤差評価関数を、入力データ中の“1”の数が1個のパターンのときの値で規格化したものである。図17の生成手順を詳述すると、まず、入力中で“1”の数ごとにパターンを分ける。ここでは、“1”の数が、1個が5パターン、2個が10パターン、3個が10パターン、4個が5パターンとなっている。次いで、“1”の数ごとに、誤差評価関数を平均化する。なお、このときの誤差評価関数には、特許文献1の場合と比較するので、ケース数は乗じていない。したがって、それぞれ、1個:E1、2個:E2、3個:E3、4個:E4、と置いている。そして、それぞれ、E1で規格化した値を縦軸の値とする。したがって、1個:E1/E1、2個:E2/E1、3個:E3/E1、4個:E4/E1で表わされている。
【0060】
図17から明らかなように、特許文献1のようにケース数を保持しない前処理を施した場合では、入力パターンの“1”の数毎に見た収束誤差の比が異なることが確認できる。一方で、本実施形態と前処理なしの結果は概ね全パターンにわたり同程度の比の収束誤差になっている。
【0061】
この結果から、本発明に係る教師データの前処理手法は、収束値だけでなく各入力パターンの収束誤差においても、前処理前と学習結果を変えないという効果が確認できる。
【0062】
以上説明したように、本実施形態によれば、矛盾した教師データが含まれる教師データを取り扱っても、同一入力パターンに対する出力の平均値をニューラルネットワークにより導出したい場合に学習速度の向上と総誤差評価関数を適切に評価することができる。
【0063】
なお、本発明は上記の実施形態のそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0064】
100…ニューラルネットワーク学習の前処理装置、101…前処理部、102…ニューラルネットワーク部、103…誤差修正部、104…総誤差評価関数評価部、201…同一入力パターン探索部、202…平均値導出部。
【特許請求の範囲】
【請求項1】
教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数するとともに、教師データ中の同一入力パターンに対する全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータの重複分を教師入力データから削除する前処理を施す前処理部と、
この前処理部で処理を施された教師データでニューラルネットワーク学習を実行し、各入力パターンの誤差評価関数を導出する誤差修正部と、
前記誤差修正部から導出される各入力パターンの誤差評価関数と入力パターン毎のケース数から成る重み係数を用いて、ニューラルネットワーク学習の収束条件を決定するための総誤差評価関数を計算する総誤差評価関数部とを、
具備することを特徴とするニューラルネットワーク学習の前処理装置。
【請求項2】
前記誤差修正部において、各入力パターンの誤差評価関数の平均をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き平均として総誤差評価関数を計算することを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項3】
前記誤差修正部において、各入力パターンの誤差評価関数の総和をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き総和として総誤差評価関数を計算することを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項4】
前記前処理部は、教師データが矛盾していない場合、入力された教師データに実効的な変換を加えず、入力パターン毎のケース数を導出しないことを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項5】
前記前処理部は、教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数する同一入力パターン探索部と、全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータを教師入力データから削除する平均値導出部を有していることを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項6】
前記ニューラルネットワーク学習の収束条件は、総誤差評価関数の絶対値が、予め設定した第1の閾値を下回る、又は、学習進行時に総誤差評価関数の変化量が、予め設定した第2の閾値を下回ることとし、いずれかの条件が満たされたときに学習を終了させることを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項1】
教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数するとともに、教師データ中の同一入力パターンに対する全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータの重複分を教師入力データから削除する前処理を施す前処理部と、
この前処理部で処理を施された教師データでニューラルネットワーク学習を実行し、各入力パターンの誤差評価関数を導出する誤差修正部と、
前記誤差修正部から導出される各入力パターンの誤差評価関数と入力パターン毎のケース数から成る重み係数を用いて、ニューラルネットワーク学習の収束条件を決定するための総誤差評価関数を計算する総誤差評価関数部とを、
具備することを特徴とするニューラルネットワーク学習の前処理装置。
【請求項2】
前記誤差修正部において、各入力パターンの誤差評価関数の平均をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き平均として総誤差評価関数を計算することを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項3】
前記誤差修正部において、各入力パターンの誤差評価関数の総和をとることにより総誤差評価関数を導出する場合、前記総誤差評価関数部では、入力パターン毎のケース数を重み係数に用い、各入力パターンの誤差評価関数の重み付き総和として総誤差評価関数を計算することを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項4】
前記前処理部は、教師データが矛盾していない場合、入力された教師データに実効的な変換を加えず、入力パターン毎のケース数を導出しないことを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項5】
前記前処理部は、教師データ中の同一入力パターンを探索して、入力パターン毎のケース数を計数する同一入力パターン探索部と、全出力パターンの教師出力データの平均値を算出し、当該平均値を各入力パターンにおける教師出力値に書き換え、同一入力パターンデータを教師入力データから削除する平均値導出部を有していることを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【請求項6】
前記ニューラルネットワーク学習の収束条件は、総誤差評価関数の絶対値が、予め設定した第1の閾値を下回る、又は、学習進行時に総誤差評価関数の変化量が、予め設定した第2の閾値を下回ることとし、いずれかの条件が満たされたときに学習を終了させることを特徴とする請求項1記載のニューラルネットワーク学習の前処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図7】
【図8】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図7】
【図8】
【図17】
【公開番号】特開2011−107885(P2011−107885A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−260935(P2009−260935)
【出願日】平成21年11月16日(2009.11.16)
【出願人】(000003078)株式会社東芝 (54,554)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願日】平成21年11月16日(2009.11.16)
【出願人】(000003078)株式会社東芝 (54,554)
[ Back to top ]