(57)【特許請求の範囲】
【請求項１】
デジタル式演算装置を用いて、式１にて表され式２の制約条件を満たすＭ個の変数ｗからなる関数Ｅ（ｗ）が最小値となる変数ｗの解を求めるに際して、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、
を備えて準ニュートン射影法による演算を行うと共に、
１〜Ｍの整数の内、相異なるｑ個の整数を要素とする集合Ｉcを式６に示すごとく表し、集合Ｉcに含まれる各整数ｌi（ｉ＝１，２，…，ｑ）に対して１行Ｍ列のベクトルで、第ｌiの要素がｃliであり他の要素がすべて０、かつｃliが＋１または−１で定義されるベクトルを式７の記号で表し、更に前記行列Ａqを式８に示すごとくｑ行Ｍ列の行列で表すことで、前記式４の計算の内、式９にて表す行列の計算の代わりに、整数ｍ∈Ｉcならばｂm＝１、整数ｍ∈Ｉcでないならばｂm＝０である関数ｂmを対角要素とする対角行列ｄｉａｇ［ｂ1  ｂ2  …  ｂM］の計算を用いることを特徴とする簡略化準ニュートン射影法演算システム。
【数１】
0003733711.tif 000069
【請求項２】
デジタル式演算装置を用いて、式１１にて表され式１２の制約条件を満たすＭ個の変数ｗからなる関数Ｅ（ｗ）が最小値となる変数ｗの解を求めるに際して、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式１２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式１３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式１４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式１５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、
を備えて準ニュートン射影法による演算を行うと共に、
ヘシアンＨの第ｉ行第ｊ列の要素をｈijで表し、全ての制約条件における各係数ベクトルａrの第ｒ要素が＋１または−１であり、他の要素がすべて０であるとして表すことで、前記式１３の計算の内、式１６にて表す行列の計算の代わりに、第ｉ行第ｊ列の要素が式１７で表されるＭ行Ｍ列の行列の計算を用いることを特徴とする簡略化準ニュートン射影法演算システム。
【数２】
0003733711.tif 000070
【請求項３】
デジタル式演算装置を用いて、式２１にて表され式２２の制約条件を満たすＭ個の変数ｗからなる関数Ｅ（ｗ）が最小値となる変数ｗの解を求めるに際して、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式２２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式２３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式２４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式２５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、
を備えて準ニュートン射影法による演算を行うと共に、
１〜Ｍの整数の内、相異なるｑ個の整数を要素とする集合Ｉcを式２６に示すごとく表し、集合Ｉcに含まれる各整数ｌi（ｉ＝１，２，…，ｑ）に対して１行Ｍ列のベクトルで、第ｌiの要素がｃliであり他の要素がすべて０、かつｃliが＋１または−１で定義されるベクトルを式２７の記号で表し、更に前記行列Ａqを式２８に示すごとくｑ行Ｍ列の行列で表し、∇Ｅ（ｗk）を式２９に示すごとく表すことで、前記式２４の計算の内、式３０にて表す行列の計算の代わりに、式３１にて表す計算を用いることを特徴とする簡略化準ニュートン射影法演算システム。
【数３】
0003733711.tif 000071
【請求項４】
デジタル式演算装置を用いて、式４１にて表され式４２の制約条件を満たすＭ個の変数ｗからなる関数Ｅ（ｗ）が最小値となる変数ｗの解を求めるに際して、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式４２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式４３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式４４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式４５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、
を備えて準ニュートン射影法による演算を行うと共に、
１〜Ｍの整数の内、相異なるｑ個の整数を要素とする集合Ｉcを式４６に示すごとく表し、集合Ｉcに含まれる各整数ｌi（ｉ＝１，２，…，ｑ）に対して１行Ｍ列のベクトルで、第ｌiの要素がｃliであり他の要素がすべて０、かつｃliが＋１または−１で定義されるベクトルを式４７の記号で表し、更に前記行列Ａqを式４８に示すごとくｑ行Ｍ列の行列で表すことで、前記式４５の計算の内、式４９にて表す行列の計算の代わりに、第ｓ行ｓ列の要素が１で他の要素が全て０であるＭ行Ｍ列の計算を用いることを特徴とする簡略化準ニュートン射影法演算システム。
【数４】
0003733711.tif 000072
【請求項５】
デジタル式演算装置を用いて、式５１にて表され式５２の制約条件を満たすＭ個の変数ｗからなる関数Ｅ（ｗ）が最小値となる変数ｗの解を求めるに際して、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式５２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式５３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式５４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式５５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、
を備えて準ニュートン射影法による演算を行うと共に、
１〜Ｍの整数の内、相異なるｑ個の整数を要素とする集合Ｉcを式５６に示すごとく表し、集合Ｉcに含まれる各整数ｌi（ｉ＝１，２，…，ｑ）に対して１行Ｍ列のベクトルで、第ｌiの要素がｃliであり他の要素がすべて０、かつｃliが＋１または−１で定義されるベクトルを式５７の記号で表し、更に前記行列Ａqを式５８に示すごとくｑ行Ｍ列の行列で表すことで、前記式５４の計算の内、式５９にて表す行列の計算の代わりに、整数ｍ∈Ｉcならばｂm＝１、整数ｍ∈Ｉcでないならばｂm＝０である関数ｂmを対角要素とする対角行列ｄｉａｇ［ｂ1  ｂ2  …  ｂM］の計算を用い、前記式５５の計算の内、式６０にて表す行列の計算の代わりに、第ｓ行ｓ列の要素が１で他の要素が全て０であるＭ行Ｍ列の計算を用い、
更に、∇Ｅ（ｗk）を式６１に示すごとく表すことで、前記式５４の計算の内、式６２にて表す行列の計算の代わりに、式６３にて表す計算を用い、
更に、ヘシアンＨの第ｉ行第ｊ列の要素をｈijで表し、全ての制約条件における各係数ベクトルａrの第ｒ要素が＋１または−１であり、他の要素がすべて０であるとして表すことで、前記式５３の計算の内、式６４にて表す行列の計算の代わりに、第ｉ行第ｊ列の要素が式６５で表されるＭ行Ｍ列の行列の計算を用いることを特徴とする簡略化準ニュートン射影法演算システム。
【数５】
0003733711.tif 000073
【請求項６】
第２処理手段にて用いられる公式は、ＢＦＧＳ公式、ＤＦＰ公式あるいは対称ランク１公式であることを特徴とする請求項１〜５のいずれかに記載の簡略化準ニュートン射影法演算システム。
【請求項７】
前記Ｍ個の変数ｗは、神経回路網における入力層のユニットから出力層のユニットに至るユニットを結合するＭ本のシナプスのシナプス荷重を表し、関数Ｅ（ｗ）は前記神経回路網に与えられる教師信号と前記神経回路網の出力との誤差を表し、第１処理手段、第２処理手段および第３処理手段によって行われる関数Ｅ（ｗ）が最小値となる変数ｗの解を求める処理は、前記神経回路網に対する学習処理であることを特徴とする請求項１〜６のいずれか記載の神経回路網学習システム。
【請求項８】
請求項１〜６のいずれか記載の簡略化準ニュートン射影法演算システムの各手段としてコンピュータシステムを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
請求項７記載の神経回路網学習システムの各手段としてコンピュータシステムを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
請求項７における神経回路網学習システムによる学習処理により得られた神経回路網を組み込んだことを特徴とする信号処理装置。
【請求項１１】
請求項７における神経回路網学習システムによる学習処理により得られた神経回路網と、
処理される入力信号を、前記神経回路網の入力層のユニットへ入力する入力手段と、
前記神経回路網の出力層のユニットの状態を読み取って信号として出力する出力手段と、
を備えたことを特徴とする信号処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、簡略化準ニュートン射影法演算システム、このシステムを利用した神経回路網学習システム、これらのシステムをコンピュータシステム上で実現するプログラムを記録した記録媒体、および信号処理装置に関する。
【０００２】
【従来の技術】
神経回路網（ニューラルネットワークとも言う。）は、パターン認識やデータ処理等に広く応用されている。この神経回路網は、繰り返し行われる学習処理によりその処理能力を獲得するものであり、迅速な学習と学習処理後に獲得される能力向上のために、シナプス荷重の変更方法がいくつか提案されている。
【０００３】
神経回路網はユニットからなる入力層、中間層、出力層と各層間を結合するシナプスから構成される。各シナプスはシナプス荷重という重みを持ち、このシナプス荷重を学習により変えることで様々な入出力特性を実現できる。以下シナプスの総数をＭとし、各シナプス荷重をｗ1，ｗ2，…ｗMとする。また、ｗ＝［ｗ1，ｗ2，…ｗM］tで表す。
【０００４】
神経回路網の学習は、教師入力信号を神経回路網に入力したときの神経回路網出力信号を計算し、この出力信号と教師出力信号と比較し、比較結果に基づいて各シナプス荷重ｗ1，ｗ2，…，ｗMを変更して、教師出力信号と神経回路網出力信号との誤差、例えば、自乗誤差和Ｅ（ｗ）が最小になるようにする処理である。
【０００５】
一般に最小値はたとえばバックプロパゲーション法（McClelland,J.L.,Rumelhart,D.E., and the PDP Research Group, Parallel Distributed Processing: Explorations in the Microstructure of Cognition, MIT Press, Chapter 8, 1986）などの降下法によって計算する。
【０００６】
このバックプロパゲーション法の計算ステップを説明する。ここで、ｋは更新回数、ｋmaxは更新回数の上限である。また降下法の模式図を図８（ａ）に示す。（厳密に言うと、以下のステップで求まるのは最小値ではなく極小値であるが、以下の説明において本質的な違いをもたらすものではない。）
ステップ１：ｋ＝０として、神経回路網のシナプス荷重に初期値ｗkを設定する。
【０００７】
ステップ２：ｗkにおけるＥ（ｗk）の勾配∇Ｅ（ｗk）を計算する。∇Ｅ（ｗk）＝０ならステップ４に飛ぶ。
ステップ３：Ｅ（ｗk+1）＜Ｅ（ｗk）を満たす新たな点ｗk+1を見つける。そしてｗkにｗk+1の値を設定して新たなｗkとして、ｋ＜ｋmaxならステップ２に戻る。ｋ＝ｋmaxなら、ステップ４に移る。
【０００８】
ステップ４：ｗkを解とする。
図８（ａ）の例では誤差曲面３０１において、初期値ｗ0を与えたときの学習の進行する様子を示す。ここではｋ回更新後の値ｗkにおいて最小値に収束している。
【０００９】
しかし適用事例によっては最小値が空間の無限遠に存在するものがある。このような事例の学習を行なうと、一部のシナプス荷重の絶対値がたとえば１０００を超えて増大し続ける。その例を図８（ｂ）に示す。このような神経回路網はシナプス荷重のダイナミックレンジが大きく、デジタル式演算装置の浮動小数点演算では正しい入出力特性が得られるが、固定小数点演算では大きな量子化誤差が発生し所望の入出力特性が得られない。民生品ではコスト削減等の理由で固定小数点ＣＰＵを用いるので、シナプス荷重が過大になるような神経回路網を組み込んで使用することはできない。
【００１０】
例えば、語長１６ビットの固定小数点演算で神経回路網を計算する場合を考える。［ｓｘｘｘｘｘｘｘ．ｘｘｘｘｘｘｘｘ］は小数部に８ビットを割り当てたデータ型を示す。ｓは符号ビット、ｘは数値データを表すビットである。このデータ型で表現できる数の精度は「１／２8＝０．００３９０６２５」であり、範囲は［−２16-1／２8，（２16-1−１）／２8］＝［−１２８，１２７．９９６０９３７５］である。
【００１１】
神経回路網を固定小数点演算で実現する場合、シナプス荷重ｗ＝［ｗ1  ｗ2  …  ｗM］tを固定小数点データ型で表現する。データ型は各シナプス荷重の絶対値の最大値により決まる。たとえばその値が１０００であるとすると、その格納のため整数部は１０ビット必要となり、小数部は５ビットしか取れない。すなわち、［ｓｘｘｘｘｘｘｘｘｘｘ．ｘｘｘｘｘ］となる。この精度は「１／２5＝０．０３１２５」であり、範囲は［−２16-1／２5，（２16-1−１）／２5］＝［−１０２４，１０２３．９６８７５］である。これでは演算精度を低下させ、量子化誤差が増大する原因となる。
【００１２】
上述した量子化誤差を低減させる方法として、バックプロパゲーション法にてシナプス荷重に上下限を設けて、学習させる方法が知られている（特開平７−１５２７１６号公報，特開平７−４４５１５号公報，特開平２−１４３３８４号公報）が、バックプロパゲーション法の特質から計算速度を高める各種の工夫が困難であり計算速度は不十分なものであった。
【００１３】
この他に、シナプス荷重の絶対値増大を抑制する方法としては、ペナルティ関数法がある（Michael A.Arbib, The Handbook of Brain Theory and Neural Networks, MIT Press,p643,p992）。これはＧ（ｗ）＝Ｅ（ｗ）＋μ×Ｆ（ｗ）で定義された自乗誤差和Ｅ（ｗ）と各シナプスの自乗の関数であるペナルティ項Ｆ（ｗ）の和で定義される関数Ｇ（ｗ）を最小化する方法である。係数μはＥ（ｗ）とＦ（ｗ）との相対的な重要度を決めるパラメーターである。
【００１４】
しかしながらペナルティ関数法ではパラメーターμを試行錯誤により設定しなければならないという問題があり、適切な解が得られるまでに長時間を要した。
【００１５】
【発明が解決しようとする課題】
上述した問題を生じない方法として、シナプス荷重の絶対値に上限を設定し、その上限を超えない範囲で学習を行なうことが考えられる。その実現には準ニュートン射影法であるＧｏｌｄｆａｒｂ（コールドファーブ）法が利用できる（たとえば今野 浩、山下 浩、非線型計画法、日科技連、p.264-267）。
【００１６】
しかしながらＧｏｌｄｆａｒｂ法は一般化逆行列等の複雑な計算が必要なため、プログラミングが困難であった。また一般化逆行列等の計算時間は長く、計算に用いる作業用メモリ領域としてかなり大きなものが必要であった。別の問題として、一般化逆行列の計算は桁落ち等の数値解析上の問題により、デジタル式演算装置では正確な計算ができないことがあり、その現象が生じた場合、計算結果が不正確になるという問題があった。
【００１７】
本発明は、デジタル式演算装置の固定小数点演算による準ニュートン射影法にて神経回路網の学習等を行う場合に、計算時間を短く、メモリの消費量も小さく、かつ計算結果が正確になる簡略化準ニュートン射影法演算システムを提供すること、更にこの簡略化準ニュートン射影法演算システムを利用した神経回路網学習システム、これらのシステムをコンピュータシステム上で実現するプログラムを記録した記録媒体および前記神経回路網学習システムによる学習処理により得られた神経回路網を組み込んだ信号処理装置の提供を目的とするものである。
【００１８】
【課題を解決するための手段及び発明の効果】
本発明の簡略化準ニュートン射影法演算システムは、固定小数点演算を行うデジタル式演算装置を用いて、式１にて表され式２の制約条件を満たすＭ個の変数ｗからなる関数Ｅ（ｗ）が最小値となる変数ｗの解を求めるに際して、基本的には前述した準ニュートン射影法を用いている。
【００１９】
すなわち、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、を備えることにより、準ニュートン射影法による演算を行っている。
【００２０】
この準ニュートン射影法による処理において、１〜Ｍの整数の内、相異なるｑ個の整数を要素とする集合Ｉcを式６に示すごとく表し、各ｌi（ｉ＝１，２，…，ｑ）に対して１行Ｍ列のベクトルで、第ｌiの要素がｃliであり他の要素がすべて０、かつｃliが＋１または−１で定義されるベクトルを式７の記号で表し、更にｑ行Ｍ列の行列Ａqを式８に示すごとく表した場合に、前記式４の計算の内、式９にて表す行列の計算の代わりに、ｍ∈Ｉcならばｂm＝１、ｍ∈Ｉcでないならばｂm＝０である関数ｂmを対角要素とする対角行列ｄｉａｇ［ｂ1  ｂ2  …ｂM］の計算を用いることとして、準ニュートン射影法を簡略化している。
【００２１】
【数６】
0003733711.tif 000002
【００２２】
この簡略化により、式９に示す一般化逆行列の計算をしなくて済む。したがって、計算時間が長くならず、計算に用いる作業用メモリ領域も小さくて済む。更に、桁落ち等の数値解析上の問題が生じないので、正確な計算ができる。
また同様に、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式１２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式１３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式１４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式１５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、を備えることにより、準ニュートン射影法による演算を行うに際して、次のような処理としても良い。
【００２３】
すなわち、ヘシアンＨの第ｉ行第ｊ列の要素をｈijで表し、全ての制約条件における各係数ベクトルａrの第ｒ要素が＋１または−１であり、他の要素がすべて０であるとして表すことで、前記式１３の計算の内、式１６にて表す行列の計算の代わりに、第ｉ行第ｊ列の要素が式１７で表されるＭ行Ｍ列の行列の計算を用いることを特徴とするものである。
【００２４】
【数７】
0003733711.tif 000003
【００２５】
この簡略化により、５回の行列の乗算が必要な式１６が、式１７のごとく簡略化される。したがって、計算時間が長くならず、計算に用いる作業用メモリ領域も小さくて済む。更に、桁落ち等の数値解析上の問題が生じないので、正確な計算ができる。
【００２６】
また同様に、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式２２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式２３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式２４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式２５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、を備えることにより、準ニュートン射影法による演算を行うに際して、次のような処理としても良い。
【００２７】
すなわち、１〜Ｍの整数の内、相異なるｑ個の整数を要素とする集合Ｉcを式２６に示すごとく表し、集合Ｉcに含まれる各整数ｌi（ｉ＝１，２，…，ｑ）に対して１行Ｍ列のベクトルで、第ｌiの要素がｃliであり他の要素がすべて０、かつｃliが＋１または−１で定義されるベクトルを式２７の記号で表し、更に前記行列Ａqを式２８に示すごとくｑ行Ｍ列の行列で表し、∇Ｅ（ｗk）を式２９に示すごとく表すことで、前記式２４の計算の内、式３０にて表す行列の計算の代わりに、式３１にて表す計算を用いることを特徴とするものである。
【００２８】
【数８】
0003733711.tif 000004
【００２９】
この簡略化により、式３０に示す一般化逆行列の計算をしなくて済む。したがって、計算時間が長くならず、計算に用いる作業用メモリ領域も小さくて済む。更に、桁落ち等の数値解析上の問題が生じないので、正確な計算ができる。
また同様に、
直線探索を行って、関数Ｅ（ｗ）の値を小さくする変数ｗの値を求める第１処理手段と、
前記第１処理手段の処理の次に行われ、新しい変数ｗの値に基づく前記式４２の新しい制約条件が有効になったら、新たに有効になった制約条件の係数ベクトルａrを、制約条件が有効である係数ベクトルから構成されている行列Ａqに加え、かつ前記関数Ｅ（ｗ）の勾配を表す転置行列∇tＥ（ｗ）から前記関数Ｅ（ｗ）の変化方向を表すベクトルｄを求めるためのヘシアンＨを式４３により更新して処理を前記第１処理手段に戻し、新しい変数ｗの値に基づく新しい制約条件が有効にならなかったら、新しいヘシアンＨを作成するための公式にて、新たなヘシアンＨを更新して処理を前記第１処理手段に戻す第２処理手段と、
前記第１処理手段にて、前記転置行列∇tＥ（ｗ）と前記ヘシアンＨとの積に基づいて得られる前記関数Ｅ（ｗ）の変化方向を表すベクトルｄがゼロとなった場合には、式４４に基づいて行列で得られるラグランジュ乗数λの要素すべてが非負ならば、そのときのｗを解として得て全処理を終了し、前記ベクトルｄがゼロでない場合には、ラグランジュ乗数λの負の要素の内、絶対値が最大のものに対応する制約条件の係数ベクトルａsを、前記行列Ａqから除いて、式４５に基づいてヘシアンＨを更新して処理を第１処理手段に戻す第３処理手段と、を備えることにより、準ニュートン射影法による演算を行うに際して、次のような処理としても良い。
【００３０】
すなわち、１〜Ｍの整数の内、相異なるｑ個の整数を要素とする集合Ｉcを式４６に示すごとく表し、集合Ｉcに含まれる各整数ｌi（ｉ＝１，２，…，ｑ）に対して１行Ｍ列のベクトルで、第ｌiの要素がｃliであり他の要素がすべて０、かつｃliが＋１または−１で定義されるベクトルを式４７の記号で表し、更に前記行列Ａqを式４８に示すごとくｑ行Ｍ列の行列で表すことで、前記式４５の計算の内、式４９にて表す行列の計算の代わりに、第ｓ行ｓ列の要素が１で他の要素が全て０であるＭ行Ｍ列の計算を用いることを特徴とするものである。
【００３１】
【数９】
0003733711.tif 000005
【００３２】
この簡略化により、行列の計算が不要となる。したがって、計算時間が長くならず、計算に用いる作業用メモリ領域も小さくて済む。更に、桁落ち等の数値解析上の問題が生じないので、正確な計算ができる。
また、これら全ての簡略化を用いたものであっても良く、より一層効果的である。
【００３３】
第２処理手段にて用いられる公式としては、ＢＦＧＳ公式、ＤＦＰ公式あるいは対称ランク１公式が挙げられる。
前記Ｍ個の変数ｗは、神経回路網における入力層のユニットから出力層のユニットに至るユニットを結合するＭ本のシナプスのシナプス荷重を表し、関数Ｅ（ｗ）は前記神経回路網に与えられる教師信号と前記神経回路網の出力との誤差を表し、第１処理手段、第２処理手段および第３処理手段によって行われる関数Ｅ（ｗ）が最小値となる変数ｗの解を求める処理は、前記神経回路網に対する学習処理であるものとして、上述した簡略化準ニュートン射影法演算システムを神経回路網学習システムに適用しても良い。
【００３４】
前述したごとく、メモリ不足を生じることなく短時間に学習して、精度の高い神経回路網を作成することができる。
なお、このような簡略化準ニュートン射影法演算システムや神経回路網学習システムの各手段をコンピュータシステムにて実現する機能は、例えば、コンピュータシステム側で起動するプログラムとして備えることができる。このようなプログラムの場合、例えば、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体として前記プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いても良い。
【００３５】
上述した神経回路網学習システムによる学習処理により得られた神経回路網は、信号処理装置に組み込まれることにより、入力層のユニットから出力層のユニットへ、Ｍ本のシナプスのシナプス荷重に基づいて信号を処理することができる。このような信号処理装置に組み込むためには、例えば、処理される入力信号を、神経回路網の入力層のユニットへ入力する入力手段と、神経回路網の出力層のユニットの状態を読み取って信号として出力する出力手段と、を備える。
【００３６】
前記神経回路網学習システムによる学習処理は、安価なデジタルコンピュータでも迅速に学習でき、しかも正確な学習結果を得ることができるので、信号処理装置においても精度の高い出力をなすことができる。
【００３７】
【発明の実施の形態】
図１は、上述した発明が適用された神経回路網学習システム２の概略構成を表すブロック図である。
本神経回路網学習システム２は、神経回路網１２、学習制御部１４、標準パターン格納部１８を備える。ここでは、神経回路網１２はＲＡＭやＥＥＰＲＯＭ等の書換え可能なメモリが用いられる。更に、学習制御部１４はコンピュータ装置として構成され、その中心となるＣＰＵはデジタル式演算装置を用いている。学習制御部１４は、ハードディスクにて構成される標準パターン格納部１８に他のデータと共に記憶されているプログラムをＲＡＭにロードして後述する神経回路網学習処理を実行する。
【００３８】
本神経回路網学習システム２は神経回路網１２に対して学習処理を行う。この学習処理では、図２に示すごとく、学習制御部１４は標準パターン格納部１８内に備えられた教師パターンデータベース１８ａの標準パターンから、標準入力信号１８ｂを形成して神経回路網１２へ出力する。学習制御部１４は、標準入力信号１８ｂの入力に伴う神経回路網１２からの出力信号１８ｃを、教師パターンデータベース１８ａの標準パターンから形成した教師信号１８ｄと比較する。この比較結果に基づいて学習制御部１４は、シナプス荷重更新指令信号１８ｅを神経回路網１２へ出力する。このシナプス荷重更新指令信号１８ｅを受けて神経回路網１２ではユニット１２ａのシナプス荷重、ここではＭ個のシナプス荷重が調整される。この処理を繰り返すことにより、神経回路網１２にて学習が行われる。
【００３９】
このようにして学習される神経回路網１２の一例として、図３に、オートカーエアコンの制御用途に用いるための神経回路網１２の学習例を示す。標準入力信号１８ｂとしてオートカーエアコンの運転状態を検出するセンサからの信号、この神経回路網１２では、目標吹出温度、日射量、内気温度および外気温度の信号が入力され、出力信号として風量レベルを出力している。この風量レベル出力信号が学習制御部１４にて教師信号と比較されて、シナプス荷重を更新する指令がなされる。これを繰り返すことにより学習がなされる。
【００４０】
このようにして学習された結果、適切なシナプス荷重が得られれば、例えば自動車に搭載される電子制御ユニット（ＥＣＵ）に組み込まれて、オートカーエアコンのセンサから目標吹出温度、日射量、内気温度および外気温度の信号を入力して、風量レベルを出力することにより、オートカーエアコンの風量を制御することができる。
【００４１】
上述した学習処理において、シナプス荷重更新指令信号、すなわち、Ｍ個のシナプス荷重の変動量は、簡略化準ニュートン射影法演算システムとして構成されている神経回路網学習システム２により決定される。
次に神経回路網学習システム２にておこなわれる神経回路網学習処理について説明する。神経回路網学習処理のフローチャートを図４〜図６に示す。この神経回路網学習処理は、Ｇｏｌｄｆａｒｂ法（たとえば今野 浩、山下 浩、非線型計画法、日科技連、p.264-267）を利用した簡略化準ニュートン射影法によるものである。
【００４２】
なお、Ｇｏｌｄｆａｒｂ法は、線形制約条件付き最適化問題を解く手法である。前述した神経回路網１２に対して線形制約条件付き最適化問題は以下のように定式化される。
すなわち、Ｍ個のシナプス荷重ｗ1，ｗ2，…，ｗMを変数として、前述した自乗誤差和の関数Ｅ（ｗ）は式７１のごとく表され、この関数Ｅ（ｗ）において、式７２で表すＫ個の不等式を満足する最小値を求める手法である。ただし、ｗは式７３で定義される。
【００４３】
【数１０】
0003733711.tif 000006
【００４４】
ここで、いくつか用語と記号を定義する。
（１）有効制約とＩ（ｗ）
あるｗに対しａiｗ−ｂi＝０となる制約条件を、制約条件が有効である（以下、「有効制約」と称する。）と呼ぶ。またその番号ｉの集合を式７４のごとくＩ（ｗ）で表す。
【００４５】
【数１１】
0003733711.tif 000007
【００４６】
（２）すべての制約条件を満たす点の集合を許容領域と呼び、式７５のごとく記号Ｓで表す。
【００４７】
【数１２】
0003733711.tif 000008
【００４８】
（３）ｗにおける有効制約の数をｑとし、有効制約の係数ベクトルａi（制約条件が有効である係数ベクトルａi）を行に持つｑ行Ｍ列の行列をＡqとし、Ｉ（ｗ）が式７６で表されるとき、Ａqは式７７のごとく表す。
【００４９】
【数１３】
0003733711.tif 000009
【００５０】
（４）Ｍ×Ｍの単位行列をＩMで表記する。
（５）式７８によりＭ行Ｍ列の行列を定義する。第２項に現れる式７９はＡqの一般化逆行列である。
【００５１】
【数１４】
0003733711.tif 000010
【００５２】
（６）Ｇｏｌｄｆａｒｂ法では式８０で表される条件を満足する点ｗk+1を見つけるのにヘシアンというＭ行Ｍ列の行列を使用する。ｋ回目の更新におけるヘシアンをＨkで示す。ヘシアンＨkは常に対称行列であり、式８１で表す関係が成立する。
【００５３】
【数１５】
0003733711.tif 000011
【００５４】
（７）式８２のごとく表される∇Ｅ（ｗk）は、点ｗkにおける関数Ｅ（ｗk）の勾配を示す。これは１行Ｍ列の行ベクトルである。∇Ｅt（ｗk）はその転置であり、Ｍ行１列の列ベクトルである。
【００５５】
【数１６】
0003733711.tif 000012
【００５６】
（８）対角要素がａ1  ａ2  …  ａMであるＭ行Ｍ列の対角行列を式８３に示すごとく表記する。
【００５７】
【数１７】
0003733711.tif 000013
【００５８】
神経回路網学習処理が開始されると、まず、ｋ＝０にｋが初期設定され、初期値としてｗ0∈Ｓを満足するシナプス荷重ｗ0が選択される（Ｓ１００）。次に、有効制約の番号の集合Ｉ（ｗ0）と、行列Ａqとを求める（Ｓ１０２）。
式８４により、Ｐqを求める（Ｓ１０４）。
【００５９】
【数１８】
0003733711.tif 000014
【００６０】
ここで、ｄｉａｇ［ｂ1  ｂ2  …  ｂM］は、ｍ∈Ｉ（ｗ0）ならｂm＝１、ｍ∈Ｉ（ｗ0）でないならｂm＝０である関数ｂmを対角成分とする対角行列を表している。
次に、ヘシアンＨの初期の内容として、Ｐqをそのまま設定する（Ｓ１０６）。
【００６１】
次に、学習制御部１４はシナプス荷重更新指令信号１８ｅを神経回路網１２に出力して、神経回路網１２の実際のシナプス荷重をｗ0の値に設定する（Ｓ１１０）。
次に、標準パターン格納部１８からの標準パターンの内の標準入力信号１８ｂを、神経回路網１２の入力層のユニット１２ａに入力し、同時に神経回路網１２の出力層のユニット１２ａからの出力信号１８ｃを、学習制御部１４内のメモリに記録する（Ｓ１２０）。
【００６２】
次に、Ｅ（ｗk）が算出され（Ｓ１３０）、更に∇Ｅ（ｗk）が算出される（Ｓ１３４）。
Ｅ（ｗk）は、式８５に示すごとく、ｔで表す標準パターンの教師信号１８ｄとｏで表す神経回路網１２の出力信号１８ｃとの自乗誤差和に該当する。
【００６３】
【数１９】
0003733711.tif 000015
【００６４】
ここで、Ｎは出力層のユニット数、Ｐは標準パターンの数である。
∇Ｅ（ｗk）は、式８６に示すごとく定義される。
【００６５】
【数２０】
0003733711.tif 000016
【００６６】
次に、∇Ｅ（ｗk）を転置した∇tＥ（ｗk）をヘシアンＨkにより、式８７のごとくの計算により、Ｅ（ｗk）の変化方向を表すベクトルｄkを求める（Ｓ１４０）。
【００６７】
【数２１】
0003733711.tif 000017
【００６８】
次に、ｄk＝０か否かが判定される（Ｓ１５０）。ｄk＝０で無ければ（Ｓ１５０にて「ＮＯ」）、次に直線探索により、新たなシナプス荷重ｗk+1を設定する（Ｓ１９０）。ただし、直線探索は、式８８に示す計算によって行われる。
【００６９】
【数２２】
0003733711.tif 000018
【００７０】
ここで、係数行列αkは、αk＞0 かつｗk+1∈Ｓとなる範囲で設定する。
次に、新たに設定されたシナプス荷重ｗk+1を神経回路網１２のシナプス荷重として設定して、標準入力信号１８ｂを神経回路網１２の入力層のユニット１２ａに入力し、出力層のユニット１２ａからの出力信号１８ｃと教師信号１８ｄとによる、式８５に示した計算を行って、Ｅ（ｗk+1）を算出する（Ｓ２００）。そして、式８９を満足するか否かを判定する（Ｓ２１０）。
【００７１】
【数２３】
0003733711.tif 000019
【００７２】
式８９を満足していなければ（Ｓ２１０で「ＮＯ」）、再度、ステップＳ１９０に戻って、更に直線探索を継続して、Ｅ（ｗk+1）を検討する。
直線探索の結果、式８９を満足すれば（Ｓ２１０で「ＹＥＳ」）、次に、式７２で示した制約条件の内、新たに有効制約となったものがあるか否かが判定される（Ｓ２２０）。新たに有効になった制約条件がなければ（Ｓ２２０で「ＮＯ」）、ＢＦＧＳ公式によりＨkを更新する（Ｓ２３０）。
【００７３】
ＢＦＧＳ公式による計算は、式９０に示すごとくなされる。なお、ｓk＝ｗk+1−ｗk、ｒk＝∇tＥ（ｗk+1）−∇tＥ（ｗk）とする。
【００７４】
【数２４】
0003733711.tif 000020
【００７５】
一方、新たに有効になった制約条件があれば（Ｓ２２０で「ＹＥＳ」）、式９１にて新たなヘシアンＨk+1を算出する（Ｓ２４０）。
【００７６】
【数２５】
0003733711.tif 000021
【００７７】
ここで、Ｒkは、Ｈkの第ｉ行第ｊ列の要素をｈkijとした場合に、式９２で示すごとく第ｉ行第ｊ列の要素が表される行列である。
【００７８】
【数２６】
0003733711.tif 000022
【００７９】
次に、新たに有効になった制約条件を行列Ａqに加えて、Ａq+1とし（Ｓ２５０）、有効制約の数を表すカウンタｑをインクリメントする（Ｓ２６０）。
そして、ｋをインクリメントする（Ｓ２７０）。ステップＳ２３０の処理が終了した場合もこのステップＳ２７０の処理を行う。
【００８０】
ステップＳ２７０の次にｋがｋの上限値ｋmaxを越えていないか判定し（Ｓ２７２）、越えていなければ（Ｓ２７２で「ＮＯ」）、新たな∇Ｅ（ｗk）を算出し（Ｓ１３４）、新たなヘシアンＨkと∇tＥ（ｗk）とにより、式８７に示したごとく、ベクトルｄkを求め（Ｓ１４０）、ｄk＝０でなければ（Ｓ１５０で「ＮＯ」）、前述した処理が繰り返される。
【００８１】
もし、ｄk＝０であった場合には（Ｓ１５０で「ＹＥＳ」）、ラグランジュ乗数λを式９３のごとく算出する（Ｓ２８０）。ここで、Ｉ（ｗk）は、式９４、∇Ｅ（ｗk）は式９５のごとく定義されている。
【００８２】
【数２７】
0003733711.tif 000023
【００８３】
次にラグランジュ乗数λの全要素が非負、すなわち、λの全要素≧０か否かが判定される（Ｓ２９０）。ラグランジュ乗数λの全要素が非負でない場合（Ｓ２９０で「ＮＯ」）は、現在のシナプス荷重ｗkは解ではないので、ラグランジュ乗数λの要素の内、最も小さい要素、すなわち負で絶対値が最大の要素（番号ｓ）に対応する制約条件ａsをＡqから取り除き、Ａq-1とする（Ｓ３００）。
【００８４】
次にＩ（ｗk）から番号ｓを取り除く（Ｓ３１０）。そして、式９６の計算にて、新たなヘシアンＨk+1を算出する（Ｓ３２０）。
【００８５】
【数２８】
0003733711.tif 000024
【００８６】
ここでＤsは、第ｓ行第ｓ列の要素が１で他は全て０のＭ行Ｍ列の行列である。
次にｑがステップＳ３００でＡqから要素を１つ取り除いたことに対応して、１つ減算される（Ｓ３３０）。
【００８７】
次にｋをインクリメントして（Ｓ３４０）、ｋがｋの上限値ｋmaxを越えていないか判定し（Ｓ３４２）、越えていなければ（Ｓ３４２で「ＮＯ」）、ベクトルｄkを求める処理（Ｓ１４０）に戻る。以後、ステップＳ１５０またはステップＳ２９０にて「ＮＯ」と判定される限り、前述した処理を繰り返し、学習が継続される。
【００８８】
ステップＳ２９０にてラグランジュ乗数λの全要素が非負であると判定された場合（Ｓ２９０にて「ＹＥＳ」）、この時に設定されているｗkが解として記録される（Ｓ３５０）。こうして学習処理は終了する。なお、ステップＳ２７２またはステップＳ３４２にて、ｋ＞ｋmaxと判定された場合も、この時に設定されているｗkが解として記録され（Ｓ３５０）、学習処理を終了する。
【００８９】
上述した学習処理では、計算上、４つの簡略化を行っている。そして、この４つの簡略化は、神経回路網１２のシナプス荷重ｗに上下限を設定するに際して、前記式７２にて示した制約条件の係数ベクトルａiが、第li要素が−１または１であり、他の要素が全て０の１行Ｍ列の行ベクトルであるとの制約のもとに、初めて得られる。ここで便宜上、ａiをｃで表すと、式９７に示すごとくとなる。
【００９０】
【数２９】
0003733711.tif 000025
【００９１】
更に、式９７をＺ毎に区別して表すと、式９８のごとくに表すことができる。
【００９２】
【数３０】
0003733711.tif 000026
【００９３】
このような係数ベクトルａiの制約による簡略化について説明する。
［第１の簡略化］
ステップＳ１０４におけるＰqの算出に際して、式９９に示す計算を行っている。
【００９４】
【数３１】
0003733711.tif 000027
【００９５】
従来知られているＰqの計算は、式１００に示すごとくの一般化逆行列の計算である。
【００９６】
【数３２】
0003733711.tif 000028
【００９７】
簡単のため、１行Ｍ列で第ｍ番目の要素がｘで他の要素が全て０であるベクトルをｅMm（x）と表記する。ｅMm（x）について、式１０１が成立する。
【００９８】
【数３３】
0003733711.tif 000029
【００９９】
なお、前記式９７のｃliZは式１０２のように表記できる。
【０１００】
【数３４】
0003733711.tif 000030
【０１０１】
次に、ｉ，ｊ＝１，２，…，ｑとして、ＡqＡqtの第ｉ行第ｊ列要素は、ｃli（ｃli）tである。ｉ＝ｊならｌi＝ｌj、ｉ≠ｊならｌi≠ｌjであるから、式１０３が整成立する。
【０１０２】
【数３５】
0003733711.tif 000031
【０１０３】
したがって、ＡqＡqtはｑ行ｑ列の単位行列Ｉqであり、（ＡqＡqt）-1もｑ行ｑ列の式１０４で表すごとく単位行列Ｉqとなる。
【０１０４】
【数３６】
0003733711.tif 000032
【０１０５】
式１０４から、式１０５が成立する。
【０１０６】
【数３７】
0003733711.tif 000033
【０１０７】
Ａqの第ｉ列ベクトル（ｉ＝１，２，…，Ｍ）をｄiで表記する。これは、式１０６に示すごとくである。
【０１０８】
【数３８】
0003733711.tif 000034
【０１０９】
すると、ＡqtＡqの第ｉ行第ｊ列要素は、（ｄi）tｄjとなる。
さて、式１０７が成立するならｄi＝０である。したがって式１０７または式１０８が成立するなら（ｄi）tｄj＝０となる。
【０１１０】
【数３９】
0003733711.tif 000035
【０１１１】
一方、式１０９が成立するなら、ｉ＝ｌu、ｊ＝ｌvとなる数ｕ，ｖが存在する。ｄiは第ｕ要素がｃlu、他の要素は０のベクトルとなる。すなわち、式１１０が成立し、同様に式１１１が成立する。
【０１１２】
【数４０】
0003733711.tif 000036
【０１１３】
ｉ＝ｊならｕ＝ｖ、ｉ≠ｊならｕ≠ｖであるので、式１１２が成立する。
【０１１４】
【数４１】
0003733711.tif 000037
【０１１５】
以上より、（ｄi）tｄj＝１となるのは、ｉ＝ｊかつｉ∈Ｉc（ｗk）のときに限る。したがって、ｂmを式１１３のごとく表すと、ＡqtＡqは、式１１４のごとく表される。
【０１１６】
【数４２】
0003733711.tif 000038
【０１１７】
すなわち式９９が証明された。したがって、一般化逆行列の計算を実行しなくても、ステップＳ１０４におけるＰqの算出が可能であり、この部分で計算のための作業メモリを要したり、計算が不正確になるのを防止できる。また、プログラム作成時も一般化逆行列のプログラムを作成しなくても良いので、プログラム作成作業が容易となる。
【０１１８】
［第２の簡略化］
ステップＳ２４０におけるＨk+1の算出に際して、Ｈk+1の各要素について、式１１５に示す計算を行っている。
【０１１９】
【数４３】
0003733711.tif 000039
【０１２０】
従来知られているＨk+1の計算は、式１１６に示すごとくの行列の計算である。
【０１２１】
【数４４】
0003733711.tif 000040
【０１２２】
ここで、ｗkをｗk+1に更新して、ｗrk+1＝−Ｂまたはｗrk+1＝Ｂになったとする。すると、制約条件ｃrZｗk+1−Ｂが新たに有効制約となる。ａr＝ｃrZとおくと、前記式１１６は、式１１７のごとく表される。
【０１２３】
【数４５】
0003733711.tif 000041
【０１２４】
この内、前記式１１７の第２項の分母と分子とに共通のＨk（ｃrZ）tを計算すると式１１８のごとくになる。
【０１２５】
【数４６】
0003733711.tif 000042
【０１２６】
したがって、前記式１１７の第２項の分母は式１１９のように計算できる。
【０１２７】
【数４７】
0003733711.tif 000043
【０１２８】
次に、Ｈkt＝Ｈkの関係より、前記式１１７の第２項の分子の一部であるｃrZＨkは、式１２０の計算式に示すごとく、分子の他の部分であるＨk（ｃrZ）tを転置したものに等しい。
【０１２９】
【数４８】
0003733711.tif 000044
【０１３０】
前記式１１８と前記式１２０とにより、前記式１１７の第２項の分子は式１２１で表される。
【０１３１】
【数４９】
0003733711.tif 000045
【０１３２】
前記式１１９と前記式１２１との関係から、前記式１１５の関係が得られる。したがって、５回の行列の乗算が必要な式１１６が、式１１５のごとく簡略化さえる。ステップＳ２４０におけるＨk+1の算出が可能であり、この部分で計算のための作業メモリを要したり、計算が不正確になるのを防止できる。また、プログラム作成作業が容易となる。
【０１３３】
［第３の簡略化］
ステップＳ２８０におけるラグランジュ乗数λの算出に際して、式１２２に示す計算を行っている。
【０１３４】
【数５０】
0003733711.tif 000046
【０１３５】
従来知られているλの計算は、式１２３に示すごとくの一般化逆行列を含む計算である。
【０１３６】
【数５１】
0003733711.tif 000047
【０１３７】
ここで、前記式１０４の関係から、式１２４の関係が成立する。
【０１３８】
【数５２】
0003733711.tif 000048
【０１３９】
したがって、λのｉ番目の要素は式１２５のように求められ、前記式１２２が証明された。
【０１４０】
【数５３】
0003733711.tif 000049
【０１４１】
したがって、一般化逆行列の計算を実行しなくても、ステップＳ２８０におけるλの算出が可能であり、この部分で計算のための作業メモリを要したり、計算が不正確になるのを防止できる。また、プログラム作成時も一般化逆行列のプログラムを作成しなくても良いので、プログラム作成作業が容易となる。
【０１４２】
［第４の簡略化］
ステップＳ３２０におけるＨk+1の算出に際して、式１２６に示す計算を行っている。
【０１４３】
【数５４】
0003733711.tif 000050
【０１４４】
ここでＤsは、第ｓ行第ｓ列の要素が１で他は全て０のＭ行Ｍ列の行列である。
従来知られているＨk+1の計算は、式１２７に示すごとくの一般化逆行列の計算である。
【０１４５】
【数５５】
0003733711.tif 000051
【０１４６】
ここで、制約条件ｃsZｗk−Ｂ＝０を有効制約から取り除くとする。式１２８の条件が成立するので、ｂs＝０となる。
【０１４７】
【数５６】
0003733711.tif 000052
【０１４８】
ａs＝ｃsZとおくと、式１２７は、式１２９のごとく表される。
【０１４９】
【数５７】
0003733711.tif 000053
【０１５０】
はじめに、前記式１２９の第２項の分母と分子とに共通なＰq-1（ｃsZ）tを計算する。前記式９９の関係から式１３０の関係が存在する。
【０１５１】
【数５８】
0003733711.tif 000054
【０１５２】
ここで、ｂs＝０であるので、Ｐq-1の第ｓ行第ｓ列の要素は１である。これにより、前記式１２９の第２項の分母と分子とに共通なＰq-1（ｃsZ）tは式１３１に示すごとく（ｃsZ）tに等しいことがわかる。
【０１５３】
【数５９】
0003733711.tif 000055
【０１５４】
したがって、第２項の分母は、式１３２に示すごとく１となる。
【０１５５】
【数６０】
0003733711.tif 000056
【０１５６】
一方、Ｐq-1t＝Ｐq-1であることにより第２項の分子の一部であるｃsZＰq-1は式１３３に示すごとく、第２項の他の一部であるＰq-1（ｃsZ）tを転置したｃsZとなる。
【０１５７】
【数６１】
0003733711.tif 000057
【０１５８】
したがって、第２項の分子は、式１３４に示すごとくとなり、第ｓ行第ｓ列の要素が１で、他の要素は全て０のＭ行Ｍ列の行列となる。
【０１５９】
【数６２】
0003733711.tif 000058
【０１６０】
すなわち、第ｉ行第ｊ列の要素をｐijとすると、式１３５のように表すことができる。
【０１６１】
【数６３】
0003733711.tif 000059
【０１６２】
したがって、一般化逆行列の計算を実行しなくても、ステップＳ３２０におけるＨk+1の算出が可能であり、この部分で計算のための作業メモリを要したり、計算が不正確になるのを防止できる。また、プログラム作成時も一般化逆行列のプログラムを作成しなくても良いので、プログラム作成作業が容易となる。
【０１６３】
以上述べたように、固定小数点式デジタル演算装置で実行する神経回路網１２のシナプス荷重のダイナミックレンジを抑制するために、シナプス荷重の絶対値に上限値を設定し、その範囲内で学習を行なうＧｏｌｄｆａｒｂ法を適用する際に、上述のごとく、前記式７２にて示した制約条件の係数ベクトルａiが、第li要素が−１または１であり、他の要素が全て０の１行Ｍ列の行ベクトルであるとの制約のもとに、一般化逆行列の複雑な計算を不要にできるため、神経回路網１２の学習プログラムのプログラミングは容易となる。また計算時間、メモリ使用量を削減できる。更に、別の効果として、一般化逆行列の計算は桁落ち等の数値解析上の問題により、正確な計算ができない場合があるが、上述した簡略化によりその問題を回避でき、より正確な数値解が得られるという利点もある。
【０１６４】
なお、本実施の形態では各シナプス荷重ｗi（ｉ＝１，２，…，Ｍ）の絶対値に共通の上限値Ｂを設定した場合、すなわち｜ｗi｜≦Ｂについて簡略計算式を導出し、証明した。しかしこれらの式は、各シナプス荷重ｗiにそれぞれ別個に上限値ＢiU、下限値ＢiLを設定した場合、すなわちＢiL≦ｗi≦ＢiUとした場合にも同様に有効である。また本実施の形態は階層型神経回路網について説明したが、降下法により学習できる神経回路網であれば、他のモデル（リカレントニューラルネットワーク等）にも適用可能である。
【０１６５】
［実験例］
オートカーエアコン風量制御に本発明を適用した効果を示す実験結果を以下に説明する。本実験では、前述した４つの簡略化を行った処理にて学習した場合（「実施例」で表す。）と、従来の学習法であるＢＦＧＳ公式を用いたＧｏｌｄｆａｒｂ法（「従来法」で表す。）にて学習した場合との比較を行ない、固定小数点演算での神経回路網出力の誤差を評価した。
【０１６６】
Ａ．要領
比較に用いた適用事例、神経回路網の構成等の条件を以下に示す。オートカーエアコンをＡ／Ｃと略記する。
（ａ）適用事例
Ａ／Ｃ吹き出し口制御 （ＦＡＣＥ，Ｂ／Ｌ，ＦＯＯＴ等の切り替え）
（ｂ）入出力の仕様
入出力は、４入力１出力である。各入力の仕様を表１に、各出力の仕様を表２に示す。入力センサー値範囲のうち、単純なif-thenルールによりプログラム処理できる領域を除いた部分を神経回路網により処理する。神経回路網へは、各センサー信号をセンサー値範囲で［０，１］に正規化して入力する。
【０１６７】
【表１】
0003733711.tif 000060
【０１６８】
【表２】
0003733711.tif 000061
【０１６９】
出力信号である吹出口モードにしたがい、Ａ／Ｃは以下のようにモードを切り替えさせるものとする。
【０１７０】
【表３】
0003733711.tif 000062
【０１７１】
吹出口モードの許容誤差は±０．１であるが、モード切替点では確実にモードを切り替えるため、誤差をできるだけ小さくする必要がある。
（ｃ）教師パターン数
５９１５個 （うち３９４４個を学習に使用）
（ｄ）神経回路網の構成
４層型神経回路網 （入力層４ユニット、第１中間層８ユニット、第２中間層８ユニット、出力層１ユニット）
入力ユニットは線形ユニット、中間、出力ユニットはシグモイドユニット
（ｅ）評価方法
ステップ１．従来法、実施例（上限値Ｂ＝６４、１２８）それぞれにつき、初期値を変えて２０回学習を行なった。各神経回路網係数の初期値は（−１、１）の範囲の乱数とする。学習サイクルは各試行とも１０００回とする。
【０１７２】
ステップ２．各神経回路網を浮動小数点演算、固定小数点演算で計算し、式１３６に示すごとく全パターンに対する自乗誤差和Ｅを算出して比較する。
【０１７３】
【数６４】
0003733711.tif 000063
【０１７４】
Ｂ．実験結果
自乗誤差和Ｅの計算結果を表４に示す。試行番号が同じ神経回路網は同一の初期値から学習を開始している。 従来法は浮動小数点演算において最良の結果を示し、試行３、１２、１３、１７で自乗誤差和Ｅはほぼ０となった。しかしながら固定小数点演算では試行により演算精度が低下し、自乗誤差和Ｅが異常に大きくなることがあった（試行３、１０等）。自乗誤差和Ｅの最大値を比較すると、従来法で１８７．１となったのに対し、実施例は上限値Ｂ＝６４、１２８それぞれで１．３７２、１．０７９となった。これより固定小数点演算に関し、実施例は、従来法より神経回路網の初期値依存性が低く、試行による自乗誤差和Ｅのばらつきの少ないことが分かる。
【０１７５】
【表４】
0003733711.tif 000064
【０１７６】
次に、従来法、実施例につき固定小数点演算における自乗誤差和Ｅの最も小さいもの３つを選択し、シナプス荷重の絶対値の最大値、教師出力と神経回路網出力との絶対誤差の最大値を比較した。従来法の結果を表５に、実施例の上限値Ｂ＝６４の場合の結果を表６に、実施例の上限値Ｂ＝１２８の場合の結果を表７に示す。
【０１７７】
【表５】
0003733711.tif 000065
【０１７８】
【表６】
0003733711.tif 000066
【０１７９】
【表７】
0003733711.tif 000067
【０１８０】
最小の自乗誤差和Ｅを比較すると、実施例が２桁小さく、より正確な入出力関数が実現できた。絶対誤差の最大値も本実施の形態が従来法より小さく、優れた性能を示した。許容誤差は各学習法すべて±０．１の範囲内であるが、従来法では出力値０．３、０．４、０．５付近で大きな自乗誤差和Ｅが発生した。特に０．３、０．５はモード切替点であり、この神経回路網を制御に用いることはできない。一方、実施例では上限値Ｂ＝６４、１２８いずれにおいても特定の出力値で大きな自乗誤差和Ｅが発生する現象はなかった。
【０１８１】
表８に演算方式の違いによる実施例と従来例との自乗誤差和Ｅの比較を示す。
【０１８２】
【表８】
0003733711.tif 000068
【０１８３】
表８からわかるように、実施例では浮動小数点演算でも、固定小数点演算でもほとんど自乗誤差和Ｅに差はないが、従来法では極めて大きな差を生じる。このことから、従来法は、ＥＣＵ等において一般的に用いられている固定小数点演算を行う演算装置に用いるのは不適であることがわかる。
【０１８４】
図７に実施例と従来法とによる制御曲線の比較を示す。図中の教師出力は実現すべき制御曲線を、神経回路網出力は神経回路網の出力した制御曲線を示す。（ａ）は実施例による結果、（ｂ）は従来法の結果である。
従来法では出力値０．３、０．４、０．５で大きな自乗誤差和Ｅが発生したのに対し、実施例は教師出力曲線、神経回路網出力曲線がほぼ一致したことが分かる。これより実施例の効果を確認した。
【０１８５】
【その他】
上述した実施の形態では、学習制御部１４は、ハードディスクとして構成されている標準パターン格納部１８に記憶されているプログラムをＲＡＭにロードして神経回路網学習処理を実行したが、これ以外に、例えば、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いても良い。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体として前記プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いても良い。
【図面の簡単な説明】
【図１】  一実施の形態としての神経回路網学習システムの概略構成を表すブロック図である。
【図２】  前記神経回路網学習システムによる神経回路網に対する学習処理の説明図である。
【図３】  前記神経回路網学習システムによるオートカーエアコン制御用の神経回路網に対する学習処理の説明図である。
【図４】  前記神経回路網学習システムによる神経回路網学習処理のフローチャートである。
【図５】  前記神経回路網学習システムによる神経回路網学習処理のフローチャートである。
【図６】  前記神経回路網学習システムによる神経回路網学習処理のフローチャートである。
【図７】  実施例と従来法との学習の効果を示す説明図である。
【図８】  従来の学習における自乗誤差和Ｅの推移状態説明図である。
【符号の説明】
２…神経回路網学習システム    １２…神経回路網    １２ａ…ユニット
１４…学習制御部    １８…標準パターン格納部
１８ａ…教師パターンデータベース    １８ｂ…標準入力信号
１８ｃ…出力信号    １８ｄ…教師信号
１８ｅ…シナプス荷重更新指令信号
【図１】
0003733711.tif 000074
【図２】
0003733711.tif 000075
【図３】
0003733711.tif 000076
【図４】
0003733711.tif 000077
【図５】
0003733711.tif 000078
【図６】
0003733711.tif 000079
【図７】
0003733711.tif 000080
【図８】
0003733711.tif 000081