(57)【要約】【課題】  追加の学習に要する時間が短く、追加学習後に出力値を判定するため要する時間が増大してしまうことのないニューラルネットワークの学習方法及び学習システムを提供する。【解決手段】  入力層１１へ入力されたデータを基に重み係数１４に応じた値を出力層１３から出力するニューロネットワーク１０に、入力層１１へ入力された少なくとも一つの学習データに応じて重み関数１４を変化させる学習処理を、該学習データと共に入力された教師データに基づいて全ての学習データを正解と判断するまで繰り返させるニューラルネットワークの学習方法であって、学習処理のサイクルにおいて、各学習データに応じた出力値Ｘが連続して第１のしきい値以上となった回数を各学習データについて連続性カウンタ２１でカウントし、そのカウント値が第１の設定回数を上回っている学習データについては、学習データゲート部２４は次サイクルの学習処理において該学習データを入力層へ入力せずに連続性カウンタ２１にカウント値を１加算させる。【選択図】  図１
2005100011.tif 000002
【特許請求の範囲】
【請求項１】
入力層ニューロン素子を複数段有する入力層と、出力層ニューロン素子を複数段有する出力層と、前記入力層と前記出力層との間に介在し、中間層ニューロン素子を複数段有する層を少なくとも１層備えた中間層とを有し、前記入力層、前記中間層及び前記出力層のニューロン素子同士がそれぞれ結合荷重を介して接続されており、前記入力層にデータが入力された場合には、該データを基に前記各層間の結合荷重の組合せである重み係数に応じた値を前記出力層から出力するニューロネットワークに、前記入力層へ入力された少なくとも一つの学習データに応じて前記各層間の前記重み関数を変化させる学習処理を、該学習データと共に前記ニューラルネットワークへ入力された教師データに基づいて該学習データ全てを正解と判断するまで繰り返させることによって、前記学習データを学習させるニューラルネットワークの学習方法であって、
前記学習処理のサイクルにおいて、前記各学習データに応じた前記出力層からの出力値が連続して第１のしきい値以上となった回数を各学習データについてカウントし、カウント値が第１の設定回数を上回っている学習データについては、次サイクルの学習処理において該学習データを前記入力層へ入力せずに前記カウント値を１加算することを特徴とするニューラルネットワークの学習方法。
【請求項２】
前記学習処理のサイクルにおいて、前記入力層へ入力されたいずれかの前記学習データに応じた前記出力層からの出力値が、第２のしきい値未満であった場合には、次サイクルの学習処理においては、前記カウント値が前記第１の設定回数以上である学習データを含む全ての学習データを前記入力層へ入力することを特徴とする請求項１記載のニューラルネットワークの学習方法。
【請求項３】
前記学習処理のサイクルにおいて、前記カウント値が第２の設定回数を上回っている学習データを学習対象から削除することを特徴とする請求項１又は２記載のニューラルネットワークの学習方法。
【請求項４】
入力層ニューロン素子を複数段有する入力層と、出力層ニューロン素子を複数段有する出力層と、前記入力層と前記出力層との間に介在し、中間層ニューロン素子を複数段有する層を少なくとも１層備えた中間層とを有し、前記入力層、前記中間層及び前記出力層のニューロン素子同士がそれぞれ結合荷重を介して接続されており、前記入力層にデータが入力された場合には、該データを基に前記各層間の結合荷重の組合せである重み係数に応じた値を前記出力層から出力し、且つ、前記入力層へ入力された少なくとも一つの学習データ及びこれと共に入力された教師データに基づいて前記各層間の前記重み関数を変化させる学習処理を、該学習データ全てを正解と判断するまで繰り返すことにより学習データを学習するニューラルネットワークと、
前記入力層に入力された各学習データに応じて前記出力層から出力された値が、何回連続して第１のしきい値以上となったかを前記学習データそれぞれについてカウントするカウンタと、
いずれかの前記学習データについてのカウント数が所定の設定数以上となった場合には、次サイクルの学習処理実行時には、該学習データを前記入力層へ入力せず、前記カウンタのカウント数を１加算させる学習データゲート手段とを有することを特徴とする学習システム。
【請求項５】
前記学習データゲート手段は、前記学習処理のサイクルにおいて、前記入力層へ入力されたいずれかの前記学習データに応じた前記出力層からの出力値が、第２のしきい値未満であった場合には、次サイクルの学習処理においては、前記カウント値が前記第１の設定回数以上である学習データを含む全ての学習データを前記入力層へ入力することを特徴とする請求項４記載の学習システム。
【請求項６】
前記カウント値が第２の設定回数を上回っている学習データを学習対象から削除する手段をさらに有することを特徴とする請求項４又は５記載の学習システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習時に全ての学習データが正しいと判断するまで学習サイクルを繰り返すニューラルネットワークの学習方法及び学習システムに関する。
【背景技術】
【０００２】
従来、ニューラルネットワークにおいて追加の学習を行う場合、追加されたデータのみで学習で学習を行うと、学習済みのデータを正しく認識できなくなるという問題がある。
【０００３】
この問題を解決する手法として、追加の学習を行う場合、学習済みのデータについても学習を行う「再学習方法」と、新規にニューラルネットワークや中間層を追加して学習済みのネットワークに並列に接続する「並列追加方法」とがある。
【０００４】
再学習方法は、追加学習の度に学習するデータが増加していくため、追加学習を繰り返していくと膨大なデータを学習しなければならなくなる。このため、再学習方法では、学習に要する時間が長くなってしまう。
【０００５】
再学習方法における上記の問題を解決するための従来技術として、特許文献１に開示される「ニューラルネットワーク学習方式」がある。特許文献１に開示される発明は、任意のスレッショルド以上の学習入力用信号を削除することによって、少数の学習用入力信号を用いて高速集束させる学習用入力信号追加反復学習方式を実現するものである。
【０００６】
また、並列学習方法の従来技術としては、特許文献２に開示される「ニューロシステム及びその構築方法」や特許文献３に開示される「ニューラルネットワーク」がある。
上記特許文献２や特許文献３のような並列追加方式の場合は、学習済みのデータは再学習しなくて良いので、追加学習に要する時間は短縮される。
【特許文献１】特開平１０−４９５０９号公報
【特許文献２】特開２００２−３２４２２６号公報
【特許文献３】特開平９−６２６４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に開示される発明では、十分に学習が行われている場合は良いが、学習データの数が少なく学習が十分に行われていない場合には、その後の学習で重み係数が大きく変わり、削除したデータを正しく判定できないことがある。
【０００８】
また、ニューラルネットワーク本来の目的は入力信号に応じた出力値を判定することであり、ニューラルネットワークを増加するということは、出力値の判定に要する時間が増加することに他ならない。すなわち、特許文献２や特許文献３のような並列追加方法では、出力値の判定に要する時間が長期化する原因となる。
さらに、ネットワークの規模が増大してしまうと回路化が困難になる。
【０００９】
このように、従来のニューラルネットワークにおいては、追加の学習に要する時間や追加後のニューラルネットワークにおいて出力値を判定するため要する時間が増大してしまうという問題があった。
【００１０】
本発明は係る問題に鑑みて為されたものであり、追加の学習に要する時間が短く、追加学習後に出力値を判定するため要する時間が増大してしまうことのないニューラルネットワークの学習方法及び学習システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明は、第１の態様として、入力層ニューロン素子を複数段有する入力層と、出力層ニューロン素子を複数段有する出力層と、入力層と出力層との間に介在し、中間層ニューロン素子を複数段有する層を少なくとも１層備えた中間層とを有し、入力層、中間層及び出力層のニューロン素子同士がそれぞれ結合荷重を介して接続されており、入力層にデータが入力された場合には、該データを基に各層間の結合荷重の組合せである重み係数に応じた値を出力層から出力するニューロネットワークに、入力層へ入力された少なくとも一つの学習データに応じて各層間の重み関数を変化させる学習処理を、該学習データと共にニューラルネットワークへ入力された教師データに基づいて該学習データ全てを正解と判断するまで繰り返させることによって、学習データを学習させるニューラルネットワークの学習方法であって、学習処理のサイクルにおいて、各学習データに応じた出力層からの出力値が連続して第１のしきい値以上となった回数を各学習データについてカウントし、カウント値が第１の設定回数を上回っている学習データについては、次サイクルの学習処理において該学習データを入力層へ入力せずにカウント値を１加算することを特徴とするニューラルネットワークの学習方法を提供するものである。
【００１２】
上記本発明の第１の態様においては、学習処理のサイクルにおいて、入力層へ入力されたいずれかの学習データに応じた出力層からの出力値が、第２のしきい値未満であった場合には、次サイクルの学習処理においては、カウント値が第１の設定回数以上である学習データを含む全ての学習データを入力層へ入力することが好ましい。
【００１３】
また、上記本発明の第１の態様においては、学習処理のサイクルにおいて、カウント値が第２の設定回数を上回っている学習データを学習対象から削除することが好ましい。
【００１４】
また、上記目的を達成するため、本発明は、入力層ニューロン素子を複数段有する入力層と、出力層ニューロン素子を複数段有する出力層と、入力層と出力層との間に介在し、中間層ニューロン素子を複数段有する層を少なくとも１層備えた中間層とを有し、入力層、中間層及び出力層のニューロン素子同士がそれぞれ結合荷重を介して接続されており、入力層にデータが入力された場合には、該データを基に各層間の結合荷重の組合せである重み係数に応じた値を出力層から出力し、且つ、入力層へ入力された少なくとも一つの学習データ及びこれと共に入力された教師データに基づいて各層間の重み関数を変化させる学習処理を、該学習データ全てを正解と判断するまで繰り返すことにより学習データを学習するニューラルネットワークと、入力層に入力された各学習データに応じて出力層から出力された値が、何回連続して第１のしきい値以上となったかを学習データそれぞれについてカウントするカウンタと、いずれかの学習データについてのカウント数が所定の設定数以上となった場合には、次サイクルの学習処理実行時には、該学習データを入力層へ入力せず、カウンタのカウント数を１加算させる学習データゲート手段とを有することを特徴とする学習システムを提供するものである。
【００１５】
上記本発明の第２の態様においては、学習データゲート手段は、学習処理のサイクルにおいて、入力層へ入力されたいずれかの学習データに応じた出力層からの出力値が、第２のしきい値未満であった場合には、次サイクルの学習処理においては、カウント値が第１の設定回数以上である学習データを含む全ての学習データを入力層へ入力することが好ましい。
【００１６】
また、上記本発明の第２の態様においては、カウント値が第２の設定回数を上回っている学習データを学習対象から削除する手段をさらに有することが好ましい。
【発明の効果】
【００１７】
本発明によれば、追加の学習に要する時間が短く、追加学習後に出力値を判定するため要する時間が増大してしまうことのないニューラルネットワークの学習方法及び学習システムを提供できる。
【発明を実施するための最良の形態】
【００１８】
本発明は、学習時に全ての学習データが正しい判定を出力するまで学習サイクルを繰り返すニューラルネットワークにおいて、学習サイクル中に類似性のあるデータと判断した学習データを学習の対象から除外することで、学習の速度を高速化し、学習データの記憶量の低減を図るものである。
【００１９】
〔第１の実施形態〕
本発明を好適に実施した第１の実施形態について説明する。図１に、本実施形態に係る学習システムの構成を示す。この学習システムは、ニューラルネットワーク１０、重み係数記憶部１５、重み係数更新部１６、学習データ記憶部２０、連続性カウンタ２１、再確認要求部２３、学習データゲート部２４、テストデータ入力部２６及びしきい値記憶部３１を備えている。
【００２０】
ニューラルネットワーク１０は、教師付学習機能を有するもので、複数段の入力を持つ入力層１１、複数層・複数段の中間層１２、及び複数段の出力層１３を備え、それぞれの層の間には、その繋がりの度合を示す重み係数１４を備えている。
ニューラルネットワーク１０は、テストデータ入力部２６から入力されたデータに応じた値を、学習した情報に基づいて判断して出力する装置であり、学習時には、全ての学習データが正しい判定するまで学習サイクルを繰り返す。
【００２１】
重み係数記憶部１５には、重み関数１４の値が記憶されており、ニューラルネットワーク１０は、ここに記憶されている重み関数を用いて出力値Ｘを算出する。
【００２２】
重み係数更新部１６は、学習データゲート部２４からの要求に応じて、重み係数記憶部１５内に記憶されている重み係数を更新する。
【００２３】
学習データ記憶部２０は、ニューラルネットワーク１０の入力信号として必要な特徴量（例えば、画像データであればＲＧＢデータやＨＳＶデータ）と、そのデータをどのように判定すれば正解であるかを示す教師データとを記憶している。換言すると、学習データ記憶部２０は、ニューラルネットワーク１０にセットする学習データと教師データとを記憶する。
【００２４】
連続性カウンタ２１は、それぞれの学習データの判定結果が任意のしきい値Ｕ以上であるときに、その連続性をカウントする。換言すると、連続性カウンタ２１は、学習時にそれぞれの学習データの判定結果が、何回連続して任意のしきい値Ｕを以上となったかをカウントする。すなわち、連続性カウンタ２１は、学習データごとに判定結果の連続性をカウントしており、学習データの判定結果がしきい値Ｕ以上であればカウント数を１インクリメントし、しきい値Ｕ未満であればカウント数をクリアして０とする。
【００２５】
再確認要求部２３は、学習データゲート部２４からの要求に応じて、しきい値記憶部３１に記憶されているしきい値Ｌ、Ｔ、Ｕを読み出して、これらのいずれかとニューラルネットワーク１０の出力値Ｘとを比較する。再確認要求部２３は、これらのしきい値と出力値Ｘとの比較結果に応じて、カウンタ制御信号やチェック信号出力要求を出力し、学習データゲート部２４にフラグｅやｐのＯＮ／ＯＦＦを通知する。
また、再確認要求部２３は、学習データの判定結果が任意のしきい値Ｌ未満のものが一つでもあれば、次の学習サイクル時にチェック信号２２を出力する。換言すると、再確認要求部２３は、学習データの判定結果が任意のしきい値Ｌ未満であった場合に、ニューラルネットワーク内の重み係数１４が大きく変化すると判断し、そのサイクルでの学習が終了した後にチェック信号２２を出力する。
【００２６】
学習データゲート部２４は、連続カウンタ２１のカウント数が任意の設定回数Ｃ以上で、且つチェック信号２２が出力されていない場合にはそのデータを学習させないように処理を行う。換言すると、学習データゲート部２４は、連続性カウンタ２１のカウント値とチェック信号の状態（出力されているか否か）を参照し、これらに基づいて入力信号を学習データとして用いるか否かを判断する。
【００２７】
図２に、学習データゲート部２４の構成の一例を示す。学習データゲート部２４は、制御部２４１、学習データ・教師データ保持部２４２、処理部２４３、ｉカウンタ２４４、フラグｅ２４５及びフラグｐ２４６を有する。
制御部２４１は、学習データゲート部２４の各部の動作を制御する。学習データゲート部２４２は、学習データ記憶部２０から読み出した学習データ及び教師データを保持するメモリである。処理部２４３は、現在の処理対象であるデータ番号がｉ番目の学習データ・教師データが保持する。ｉカウンタ２４４は、学習データ・教師データ記憶部２４２に保持されている各データのうち、データ番号が何番のデータが現在の処理対象であるか否かを特定するためのカウンタである。フラグｅ２４５は、一連の学習処理の一サイクル中に学習データの学習を実行したか否かを示すフラグである。フラグｐ２４６は、一連の学習処理の一サイクル中に、出力層１３から出力値Ｘとして極端に低い値が出力されたか否かを示すフラグである。
【００２８】
次に、本実施形態に係る学習システムの動作について説明する。図３及び図４に、本実施形態に係る学習システムの学習時の動作の流れを示す。
学習開始に先立って、制御部２４１は、学習データ記憶部２０に記憶されている学習データ及び教師データの学習データゲート部２４（学習データ・教師データ保持部２４２）への読み込みや、連続性カウンタ２１への初期データの設定といった初期動作を行う（ステップＳ１０１）。
【００２９】
学習データ記憶部２０には、ｎ個の学習データが記憶されているため、ステップＳ１０２以降の処理は、制御部２４１が学習データ・教師データ保持部２４２に保持されているｎ個のデータについて記憶された順番に学習データを処理部２４３へ取り出して行う。すなわち、制御部２４１は、ｉカウンタ２４４の値を参照して、学習データｉ（ｉ番目の学習データ）の特徴量とその教師データとを取り出す（ステップＳ１０２）。換言すると、制御部２４１は、ｉカウンタ２４４の値によって示されるｉ番目のデータを学習データ・教師データ保持部２４２から処理部２４３へ取り出して学習処理の対象とする。
【００３０】
次に、制御部２４１は、チェック信号２２が出力されているか否かを調べる（ステップＳ１０３）。チェック信号２２がＯＮ状態、すなわち出力されているのであれば、ステップＳ１０５に進む。なお、初期状態ではチェック信号２２ＯＦＦ状態、すなわち出力されていない状態である。
【００３１】
次に、制御部２４１は、連続性カウンタ２１のカウント値のうち、処理部２４３へ取り出した学習データに応じたカウンタ値をチェックする（ステップＳ１０４）。連続性カウンタ２１のカウンタ値が設定値Ｃ未満である場合には（ステップＳ１０４／Ｙｅｓ）、ステップＳ１０５へ進み、制御部２４１は処理部２４３に保持されている学習データｉをニューラルネットワーク１０へ送信し、ニューラルネットワーク１０に出力値Ｘを算出させる。
【００３２】
一方、連続性カウンタ２１のカウント値が設定値Ｃ以上であれば（ステップＳ１０４／Ｎｏ）、制御部２４１は、追加学習の１回目学習サイクルであるか否かを判断し（ステップＳ１２０）、追加学習の１回目の学習サイクルで無ければ（ステップＳ１２０／Ｎｏ）、連続性カウンタ２１にカウント値を１インクリメントさせて（ステップＳ１１７）、ステップＳ１１０へ進む。一方、追加学習の１回目の学習サイクルであれば（ステップＳ１２０／Ｙｅｓ）、連続性カウンタ２１にカウント値をインクリメントさせずにステップＳ１１０へ進む。
【００３３】
チェック信号２２がＯＮ状態の場合（ステップＳ１０３／Ｙｅｓ）、又は連続性カウンタ２１のカウント値が設定値Ｃ未満である場合（ステップＳ１０４／Ｙｅｓ）は、制御部２４１は処理部２４３に保持されている学習データｉをニューラルネットワーク１０に送信し、出力値Ｘを算出させる（ステップＳ１０５）。
【００３４】
一般に、ニューラルネットワーク１０の第ｎ層ｉ番目ユニットの出力値Ｘinは、次の式（１）、式（２）によって求められる。
【００３５】
【数１】
2005100011.tif 000003
【００３６】
ここで、ｕinは、第ｎ層ｉ番目のユニットの内部状態（ネット値）であり、ｈinは、そのしきい値である。また、ｆは伝達関数であり、一般的にはシグモイド関数が用いられることが多い。よって、本実施形態においても、伝達関数ｆにシグモイド関数を用いた場合を例に説明を行う。このため、出力値Ｘは、０≦Ｘ≦１の範囲の値となる。
【００３７】
出力値Ｘがニューラルネットワーク１０から出力されると、再確認要求部２３は、しきい値記憶部３１からしきい値Ｔを読み出し、出力値Ｘとしきい値Ｔとを比較する（ステップＳ１０６）。
【００３８】
Ｘ＜Ｔの場合には（ステップＳ１０６／Ｎｏ）、再確認要求部２３は学習データゲート部２４に指示を送り、フラグｅ２４５（学習実施フラグ）をＯＮにさせる（ステップＳ１０７）。そして再確認要求部２３は、しきい値記憶部３１からしきい値Ｌを読み出し、出力値Ｘがしきい値Ｌ未満であるか否かを判断する（ステップＳ１０８）。出力値Ｘがしきい値Ｌ未満であれば（ステップＳ１０８／Ｙｅｓ）、再確認要求部２３は制御部２４１にその旨を通知し、フラグｐ２４６をＯＮにさせて学習データｉについての学習を実行させる（ステップＳ１０９）。
【００３９】
一方、Ｘ≧Ｔの場合には（ステップＳ１０６／Ｙｅｓ）、再確認要求部２３はしきい値記憶部３１からしきい値Ｕを読み出し、出力値Ｘを任意のしきい値Ｕと比較する（ステップＳ１１６）。Ｘ≧Ｕであれば（ステップＳ１１６／Ｙｅｓ）、再確認要求部２３は、連続性カウンタ２１へカウンタ制御信号を送信し、データ番号ｉのカウント値を１インクリメントする（ステップＳ１１７）。一方、Ｘ＜Ｕであれば（ステップＳ１１６／Ｎｏ）、再確認要求部２３は、連続性カウンタ２１へカウンタ制御信号を送信し、データ番号ｉのカウント値をクリアして０とする（ステップＳ１１８）。
【００４０】
なお、上記の各しきい値Ｌ、Ｔ、Ｕは、Ｌ＜Ｔ＜Ｕの関係にあり、その値についてはニューラルネットワーク１０の重み計数１４の変化量や、入力値の分解能に応じて決定される。
【００４１】
連続性カウンタ２１のデータ番号ｉのカウント値をインクリメント又はクリアした後、制御部２４１は、全学習データの処理が終了したか否か（１サイクルの学習が終了したか否か、すなわちｉ＝ｎであるか否か）を判断する（ステップＳ１１０）。全ての学習データの処理を終了していない場合には（ステップＳ１１０／Ｎｏ）、ｉカウンタ２４４の値を１インクリメントしてステップＳ１０２へ進み、上記同様の処理を実行する。
一方、１サイクルが終了した場合には（ステップＳ１１０／Ｙｅｓ）、制御部２４１は、フラグｅ２４５がＯＮになっているか否か、すなわち学習が実行されたか否かをチェックする（ステップＳ１１１）。
【００４２】
フラグｅ２４５がＯＦＦになっている場合には、制御部２４１は、全ての学習データの判定値がしきい値Ｔ以上であると判断して学習を終了する（ステップＳ１１１／Ｎｏ）。
【００４３】
一方、学習実施フラグｅがＯＮになっている場合には（ステップＳ１１１／Ｙｅｓ）、制御部２４１は、フラグｐ２４６がＯＮになっているか否かを確認する（ステップＳ１１２）。
【００４４】
フラグｐ２４６がＯＮの場合（ステップＳ１１２／Ｙｅｓ）、制御部２４１は、再確認要求部２３に指示を送り、チェック信号２２をＯＮにさせる（ステップＳ１１３）。一方、フラグｐがＯＦＦの場合（ステップＳ１１２／Ｎｏ）、制御部２４１は、再確認要求部２３へ指示を送り、チェック信号２２をＯＦＦにさせる（ステップＳ１１４）。
【００４５】
その後、制御部２４１は、ｉカウンタ２４４の値（変数ｉ）、フラグｐ２４６及びフラグｅ２４５を初期状態（ｉ＝１、ｐ＝ＯＦＦ、ｅ＝ＯＦＦ）に設定してからステップＳ１０２へ進み（ステップＳ１１５）、学習が終了するまで（全ての学習データの判定値がしきい値Ｔ以上となるまで）上記同様の処理を繰り返す。
【００４６】
本実施形態に係る学習システムの具体的な動作の一例を示す。図５は、学習データ記憶部２０に記憶されている学習データ及び教師データの一例である。データ数は１０であり、データ番号１〜５のデータは、ニューラルネットワーク１０が既に学習済みである。データ番号６〜１０のデータは、ニューラルネットワーク１０が追加学習するデータである。なお、ここでは、連続性カウンタ２１のカウント数の初期値も学習データ記憶部２０に記憶されているものとする。
【００４７】
各データは、三つの特徴量と教師データとを有する。各特徴量が図６の斜線で示す領域内の値のとき、そのデータは良品、不良１、不良２と分類され、これをコード化して教師データとしている。
【００４８】
ニューラルネットワーク１０の構成が階層型ネットワークである場合、図７に示すように、入力層１１は、特徴量１、特徴量２及び特徴量３の３段、出力層１３は、良品、不良１、不良２の３段で、中間層１２はｍ層ｎ段の階層型ネットワークとなる。
【００４９】
学習データゲート部２４に学習データを読み込んで初期設定を行った後（ステップＳ１０１）、データ番号１のデータから順番にステップＳ１０２以降の処理を実施する。
重み係数１４の初期値、すなわち重み係数記憶部１５に記憶されている内容は、データ番号１〜５の学習データを学習した結果が反映された値である。
【００５０】
ここで、しきい値記憶部３１には、連続性カウンタ２１のカウント値をインクリメントする基準であるしきい値Ｕ＝０．９９、チェック信号２２のＯＮ／ＯＦＦを切り換える基準であるしきい値Ｌ＝０．６、出力値Ｘを正解と判定する判定しきい値Ｔ＝０．９５がそれぞれ記憶されているのものとする。また、制御部２４１は、ある学習データの連続性カウンタのカウント値Ｃが２を越えた場合に、その学習データについては十分な学習が行われたと判断するものとする。
【００５１】
まず、制御部２４１は、データ番号１のデータについて、学習データの特徴量、教師データを学習データ・教師データ保持部２４２から処理部２４３へ読み出し、さらに連続性カウンタ２１のカウント値の初期値を読み出す（ステップＳ１０２）。ここで、チェック信号２２の初期値はＯＦＦであるため（ステップＳ１０３／Ｎｏ）、１サイクル目の処理内容は、連続性カウンタ２１の学習データ１のカウント値に応じて決定される（ステップＳ１０４）。
【００５２】
図８に、連続性カウンタ２１の初期値と各学習サイクルにおける動作を示す。１回目のサイクルにおいては、データ番号１〜５のデータのうち、データ番号４のデータについては連続性カウンタ２１のカウント値の初期値は３であり、設定値Ｃを越えているため（ステップＳ１０４／Ｎｏ）、ステップＳ１０５〜Ｓ１１８の動作は実行されず、制御部２４１からの指示を受けて連続性カウンタ２１がカウント値を１インクリメントする（ステップＳ１２０／Ｎｏ、Ｓ１１７）。
【００５３】
一方、データ番号１，２，３，５のデータについては、連続性カウンタ２１のカウント値の初期値が設定値Ｃ未満であり（ステップＳ１０４／Ｙｅｓ）、出力値がＴ以上であるから（ステップＳ１０６／Ｙｅｓ）、ステップＳ１０７〜Ｓ１０９の動作は実行されず、制御部２４１からの指示を受けて連続性カウンタ２１がカウンタ値を１インクリメントする（ステップＳ１１６／Ｙｅｓ、Ｓ１１７）。
【００５４】
データ番号６〜１０のデータのうち、データ番号８のデータについては、出力値Ｘがしきい値Ｔ以上であるからステップＳ１０７〜Ｓ１０９の動作は実行されず、制御部２４１からの指示を受けて連続性カウンタ２１がカウント値を１インクリメントする（ステップＳ１１６／Ｙｅｓ、Ｓ１１７）。
【００５５】
一方、データ番号６，７，９，１０のデータについては、出力値Ｘが０．５であるから（ステップＳ１０６／Ｎｏ）、再確認要求部２３からの通知を受けた制御部２４１がフラグｅ２４５をＯＮにし（ステップＳ１０７）、フラグｐ２４６もＯＮとする。さらに、制御部２４１は、連続性カウンタ２１に指示を送りカウント値をクリアさせる（ステップＳ１０８／Ｙｅｓ、Ｓ１０９、Ｓ１１８）。
【００５６】
１サイクル目の学習が終了した時点では、全てのデータ番号の出力値が正解と判定されているわけでは無く（ステップＳ１１１／Ｙｅｓ）、データ番号６，７，９，１０の学習時にフラグｐ２４６がＯＮとなっているため、制御部２４１は、再確認要求部２３に指示を送りチェック信号２２をＯＮとさせる（ステップＳ１１３）。その後、制御部２４１は、フラグｐ２４６やフラグｅ２４５を初期化した後に（ステップＳ１１５）、２サイクル目の処理を行う。
【００５７】
２回目の学習サイクルにおいては、チェック信号２２がＯＮとなっているため（ステップＳ１０４／Ｙｅｓ）、制御部２４１は、ニューラルネットワーク１０に全てのデータ番号のデータについて学習データの出力値を算出させる（ステップＳ１０５）。２サイクル目の処理においてデータ番号１，５，９，１０の出力値Ｘがしきい値Ｔを下回ったため（ステップＳ１０６／Ｎｏ）、制御部２４１は、学習実施フラグｅ２４５をＯＮとした後に連続性カウンタ２１に指示を送り、カウント値をクリアさせる（ステップＳ１０７、Ｓ１０８／Ｎｏ、Ｓ１１８）。
その他のデータ（データ番号２，３，４，６，７，８）は、出力値がしきい値Ｔ以上であるため（ステップＳ１０６／Ｙｅｓ）、連続性カウンタ２１は、再確認要求部２３からのカウンタ制御信号に基づいて、各データ番号のデータのカウント値をそれぞれ１インクリメントする（ステップＳ１１６／Ｙｅｓ、Ｓ１１７）。
【００５８】
１回目の学習サイクルの後でデータ番号１及びデータ番号５の学習データの出力値Ｘが低下した原因は、これらの学習データの特徴量に近い値を持つデータ番号９及びデータ番号１０の学習データをそれぞれ不良１、不良２として学習したためである。特徴量が類似しているが別の分類とされるデータを学習すると、ニューラルネットワーク１０の重み係数１４は大幅に変更され、学習済みのデータの出力値Ｘが低下する。
本実施形態に係る学習システムは、学習中にいずれかのデータの出力値が低い値を示した場合にはこのような現象が発生したものと予測し、学習データとして再チェックを行う。換言すると、いずれかの学習データについて出力層１３からの出力値Ｘがしきい値Ｌ未満であった場合には、再確認要求部２３がチェック信号２２を出力することで、全ての学習データの再チェック（学習）を行う。これにより、学習データをより正確に学習することができる。
【００５９】
２回目の学習サイクルが終了した際には、学習実施フラグｅ２４５がＯＮとなっており（ステップＳ１１１／Ｙｅｓ）、フラグｐ２４６はＯＦＦとなっているため（ステップＳ１１２／Ｎｏ）、制御部２４１は、再確認要求部２３に指示を送り、チェック信号２２をＯＦＦとさせる（ステップＳ１１４）。その後、制御部２４１は、フラグｐ２４６やフラグｅ２４５を初期化した後に（ステップＳ１１５）、３サイクル目の処理を行う。
【００６０】
３回目の学習サイクルにおいては、チェック信号２２がＯＦＦとなっているため（ステップＳ１０３／Ｎｏ）、連続性カウンタ２１の学習データのカウント値に応じて学習を行うか否かが決定される（ステップＳ１０４）。
【００６１】
３回目の学習サイクルにおいては、データ番号１，５，９，１０の学習データについては、連続性カウンタ２１のカウント値が設定値Ｃ未満であり（ステップＳ１０４／Ｙｅｓ）、出力値Ｘがしきい値Ｔ未満でしきい値Ｌよりも大きいから（ステップＳ１０６／Ｎｏ、Ｓ１０８／Ｎｏ）、制御部２４１は、学習実施フラグｅ２４５をＯＮとした後に（ステップＳ１０７）、連続性カウンタ２１へ指示を送り、カウント値をクリアさせる（ステップＳ１１８）。
一方、データ番号２，３、４のデータについては、連続性カウンタ２１のカウント値が設定値Ｃ以上であり（ステップＳ１０４／Ｎｏ）、追加の学習の１サイクル目ではないため（ステップＳ１２０／Ｎｏ）、制御部２４１は、連続性カウンタ２１へ指示を送り、カウント値を１インクリメントさせる（ステップＳ１１７）。
さらに、データ番号６，７，８のデータについては、連続性カウンタ２１のカウント値が設定値Ｃ未満であり（ステップＳ１０４／Ｙｅｓ）、出力値Ｘがしきい値Ｔ以上しきい値Ｕ未満であるため（ステップＳ１０６／Ｙｅｓ、Ｓ１１６／Ｎｏ）、連続性カウンタ２１は再確認要求部２３の出力するカウンタ制御信号に基づいてのカウント値をクリアする（ステップＳ１１７）。
【００６２】
以降、上記のような学習サイクルを繰り返し実行する。この例では、５回目の学習サイクルにおいて、全ての学習データの出力値がしきい値Ｔを越える（換言すると、全てのデータ番号の学習データが正解と判定され、ステップＳ１０６／Ｙｅｓとなる）ため、５回目の学習サイクル終了時には学習実施フラグｅ２４５はＯＮとなっていない（ステップＳ１１１／Ｎｏ）。よって、制御部２４１は、５回の学習サイクルで学習を終了する。
【００６３】
このように、本実施形態に係る学習システムは、ニューラルネットワークの出力値の履歴と、出力値が任意のしきい値Ｌを下回った場合に重み係数が大きく変化したこととを認識して実際の学習処理の有無を制御することにより、汎化率を低下させること無く学習時間を短縮することができる。これは、ニューラルネットワークの規模にもよるが、学習時間の７割〜９割が出力値の計算処理及び学習（換言すると、重み係数の修正処理）のための時間であるためであり、この処理をできる限り実行しないことにより学習時間を短縮できる。
【００６４】
また、本実施形態に係る学習システムは、ニューラルネットワークそのものの構成を追加したり削除したりするわけでは無いため、回路化が容易であり、出力値の判定に使用する出力値計算時間も増加しない。
【００６５】
〔第２の実施形態〕
本発明を好適に実施した第２の実施形態について説明する。図９に、本実施形態係る学習システムの構成を示す、この学習システムは、学習データ削除部２５をさらに有する他は、第１の実施形態に係る学習システムと同様である。
【００６６】
学習データ削除部２５は、連続性カウンタ２１の各学習データのカウント値をチェックし、カウンタ値が任意の設定数Ｄを越えた場合には、その学習データを学習データ記憶部２０から削除する。
【００６７】
本実施形態に係る学習システムの動作について説明する。図１０及び図１１に、本実施形態に係る学習システムの動作の流れを示す。ステップＳ２０１からＳ２２０の各処理ステップにおける動作は、第１の実施形態に係る学習システムのステップＳ１０１からＳ２２０の処理とそれぞれ同様であるため、重複する説明は省略する。
この動作の流れは図３及び図４に示した第１の実施形態に係る学習システムの動作とほぼ同様であるが、第１の実施形態でのステップＳ１１７，Ｓ１１０の処理に相当するステップＳ２１７とＳ２１０との間にステップＳ２２１及びＳ２２２の処理ステップを有する。
【００６８】
本実施形態においては、再確認要求部２３が出力するカウンタ制御信号に応じて連続性カウンタ２１がカウント値を１インクリメントした後（ステップＳ２１７）、そのカウント値が設定値Ｄを越える場合は（ステップＳ２２１／Ｙｅｓ）、学習データ削除部２５は、その学習データを学習データ記憶部２０から削除する（ステップＳ２２２）。
【００６９】
次に、具体的な動作例について説明する。学習データ記憶部２０の内容や各しきい値は図５と同様とする。なお、学習データを削除するか否かを判断するための設定値Ｄは５回であるとする。
【００７０】
第１の実施形態と同様にして、学習サイクルを繰り返して行くと、４回目の学習サイクルにおいてデータ番号４の学習データは、４回目の学習サイクルにおいて連続性カウンタ２１のカウント値が６となって設定値Ｄを越える（ステップＳ２２１／Ｙｅｓ）。よって、学習データ削除部２５は、４回目の学習サイクルにおいて、カウント値２１が設定値Ｄを越えたデータ番号４の学習データを学習データ記憶部２０から削除する（ステップＳ２２２）。
【００７１】
この結果、４回目の学習サイクル終了時には、学習データ記憶部２０内のデータの内容は図１２に示すようになる。よって、５回目の学習サイクルは、データ番号１〜３及び５〜１０の９個の学習データについて学習を行う。
【００７２】
ある学習データの判定値が連続して正解となった場合、その学習データについては十分な学習が為されたといえる。よって、本実施形態にかかる学習システムは、連続性カウンタ２１のカウント値が任意の設定値Ｄを越えた学習データを学習の対象から削除することで、学習に要する時間を短縮できる。
【００７３】
なお、上記各実施形態は本発明の好適な実施の一例であり、本発明はこれに限定されることはない。
例えば、上記各実施形態においては、入力層及び出力層が３段のニューラルネットワークについて説明を行ったが、これは入力層及び出力層の段数を限定するものではない。例えば、入力層や出力層の段数は３段以上であっても良いし、入力層と出力層とで段数が異なってもよい。
また、上記動作の説明に用いたしきい値はあくまでも一例であり、これらの値は処理内容に応じて任意に設定可能である。
このように、本発明は様々な変形が可能である。
【図面の簡単な説明】
【００７４】
【図１】本発明を好適に実施した第１の実施形態に係る学習システムの構成を示す図である。
【図２】学習データゲート部の構成を示す図である。
【図３】第１の実施形態に係る学習システムの追加学習動作の流れを示すフローチャートである。
【図４】第１の実施形態に係る学習システムの追加学習動作の流れを示すフローチャートである。
【図５】学習データ記憶部に記憶されているデータの一例を示す図である。
【図６】各特徴量と教師データとの関係を示す図である。
【図７】ニューラルネットワークの構成例を示す図である。
【図８】各学習サイクルにおける各データの出力値Ｘと連続性カウンタのカウント値との関係を示す図である。
【図９】本発明を好適に実施した第２の実施形態に係る学習システムの構成を示す図である。
【図１０】第２の実施形態に係る学習システムの追加学習動作の流れを示す図である。
【図１１】第２の実施形態に係る学習システムの追加学習動作の流れを示す図である。
【図１２】学習データ記憶部に記憶されているデータの中から出力値Ｘが安定した学習データを削除した後の一例を示す図である。
【符号の説明】
【００７５】
１０    ニューラルネットワーク
１１    入力層
１２    中間層
１３    出力層
２１    連続性カウンタ
２２    チェック信号
２３    再確認要求部
２４    学習データゲート部
２５    学習データ削除部
２６    テストデータ入力部
３１    しきい値記憶部
２４１    制御部
２４２    学習データ・教師データ保持部
２４３    処理部
２４４    ｉカウンタ
２４５    フラグｅ（学習実施フラグ）
２４６    フラグｐ
【図１】
2005100011.tif 000004
【図２】
2005100011.tif 000005
【図３】
2005100011.tif 000006
【図４】
2005100011.tif 000007
【図５】
2005100011.tif 000008
【図６】
2005100011.tif 000009
【図７】
2005100011.tif 000010
【図８】
2005100011.tif 000011
【図９】
2005100011.tif 000012
【図１０】
2005100011.tif 000013
【図１１】
2005100011.tif 000014
【図１２】
2005100011.tif 000015