(57)【特許請求の範囲】
【請求項１】
伝達信号を生成するユニットをそれぞれ一つ以上備えた入力層，中間層，出力層と、各層間のユニットを結合して前記伝達信号を伝送するシナプスとからなり、前記入力層に入力信号を与えると前記ユニット間を前記出力層に向けて前記伝達信号が順次伝送されることにより、前記出力層から得られる伝達信号を網出力信号とし、該網出力信号と予め設定された教師出力信号との誤差が許容範囲内となるようシナプス荷重を設定する神経回路網の検証方法であって、
前記入力層への各入力信号の値域をそれぞれ１次元の入力信号空間として、前記入力層へのＭ（Ｍは１以上の整数）次元の入力信号空間を複数の部分入力信号空間に分割し、
この分割された部分入力信号空間毎に、前記網出力信号が取り得る値域を表す区間網出力信号を算出し、
前記部分入力信号空間毎に、前記教師出力信号が取り得る値域を表す区間教師出力信号を算出し、
前記部分入力信号空間毎に、前記区間網出力信号と前記区間教師出力信号との誤差が取り得る値域を表す区間誤差を算出し、
該区間誤差と前記許容範囲との包含関係の判定し、
該判定の結果、前記区間誤差の一部が前記許容範囲外にあると判定された部分入力信号空間を、複数の部分入力信号空間に再分割し、該再分割により生成された部分入力信号空間毎に前記包含関係を再判定する操作を繰り返し行うことにより、前記神経回路網を検証することを特徴とする神経回路網の検証方法。
【請求項２】
請求項１記載の検証方法において、
前記区間誤差の幅が、前記許容範囲の幅より小さな限界幅以下である場合に、前記部分入力信号空間の再分割を禁止することを特徴とする神経回路網の検証方法。
【請求項３】
請求項１又は請求項２記載の検証方法において、  前記部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、
前記入力層から前記出力層への信号伝送過程に従って各ユニット毎に、該ユニットにて生成される前記伝達信号が前記区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出して、前記出力層のユニットについて算出された区間伝達信号を、前記網出力信号が取り得る値域を表す区間網出力信号とし、
該区間網出力信号に基づいて前記区間誤差を算出することを特徴とする神経回路網の検証方法。
【請求項４】
請求項３記載の検証方法において、
前記入力層のユニットは、前記入力信号を、そのまま前記伝達信号として出力し、前記中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成し、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成するものであって、
前記中間層及び出力層のユニットについては、
前段のユニットから入力される前記区間伝達信号と前記シナプス荷重との積和に基づいて求められる第１の区間信号と、前記重み付け信号が前記区間入力信号に対して取り得る変化率の値域を表す第１の傾斜と前記区間入力信号との積和に基づいて求められる第２の区間信号との共通区間を求め、該共通区間を、前記重み付け信号が前記区間入力信号に対して取り得る値域を表す区間重み付け信号とし、
該区間重み付け信号と前記出力関数とに基づいて前記区間伝達信号を生成することを特徴とする神経回路網の検証方法。
【請求項５】
請求項４記載の検証方法において、
前記第１の傾斜を、前段のユニットから入力される前記伝達信号が前記区間入力信号に対して取り得る変化率の値域を表す第２の傾斜と前記シナプス荷重との積和により算出し、
後段へ出力する伝達信号についての前記第２の傾斜を、前記前記出力関数の傾きが前記区間重み付け信号に対して取り得る値域を表す第３の傾斜と前記第１の傾斜との積により算出することを特徴とする神経回路網の検証方法。
【請求項６】
請求項５記載の検証方法において、
前記出力関数ｆ(ｘ)がシグモイド関数または双曲線関数であり、該出力関数ｆ(ｘ)の導関数をｆ'(ｘ) ，区間重み付け信号を［ＮＬ，ＮＵ］，その内点をＮＣとするとき、前記第３の傾斜を、ＮＵ＜０であれば［｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝，｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝］、ＮＬ≧０であれば［｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝，｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝］、それ以外であれば［ｍｉｎ｛ｆ'(ＮＬ)，ｆ'(ＮＵ)｝，ｆ'(０)]に設定することを特徴とする神経回路網の検証方法。
【請求項７】
請求項１ないし請求項６のいずれか記載の検証方法をコンピュータシステムに実行させるためのプログラムが記録され、該記録内容を前記コンピュータシステムにより読取可能な記録媒体。
【請求項８】
伝達信号を生成するユニットをそれぞれ一つ以上備えた入力層，中間層，出力層と、各層間のユニットを結合して前記伝達信号を伝送するシナプスとからなり、前記入力層に入力信号を与えると前記ユニット間を前記出力層に向けて前記伝達信号が順次伝送されることにより前記出力層から得られる伝達信号を網出力信号とし、該網出力信号と予め設定された教師出力信号との誤差が、許容範囲内となるようシナプス荷重を設定する神経回路網の検証装置であって、
前記入力層への各入力信号の値域をそれぞれ１次元の入力信号空間として、前記入力層へのＭ（Ｍは１以上の整数）次元の入力信号空間を部分入力信号空間に分割する区間分割手段と、
前記部分入力信号空間毎に、前記網出力信号が取り得る値域を表す区間網出力信号を算出する区間網出力信号算出手段と、
前記部分入力信号空間毎に、前記教師出力信号が取り得る値域を表す区間教師出力信号を算出する区間教師出力信号算出手段と、
前記部分入力信号空間毎に、前記区間網出力信号及び前記区間教師出力信号間の誤差が取り得る値域を表す区間誤差を算出する区間誤差算出手段と、
前記区間誤差と前記許容範囲との包含関係を判定する判定手段と、
を備え、
前記区間分割手段に、前記判定手段により前記区間誤差の一部が前記許容範囲外にあると判定された部分入力信号空間を、複数の部分入力信号空間に再分割する区間再分割手段を設けたことを特徴とする神経回路網の検証装置。
【請求項９】
請求項８記載の検証装置において、
前記区間分割手段に、前記区間誤差の幅が、前記許容範囲の幅より小さな限界幅以下である場合に、前記区間再分割手段による前記部分入力信号空間の再分割を禁止する再分割禁止手段を設けたことを特徴とする神経回路網の検証装置。
【請求項１０】
請求項８又は請求項９記載の検証装置において、
前記区間網出力信号算出手段は、前記部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、前記入力層から前記出力層への信号伝送過程に従って各ユニット毎に、該ユニットにて生成される前記伝達信号が前記区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出する区間伝達信号算出手段を備え、
該区間伝達信号算出手段により前記出力層のユニットについて算出された区間伝達信号を、前記網出力信号が取り得る値域を表す区間網出力信号とすることを特徴とする神経回路網の検証装置。
【請求項１１】
請求項１０記載の検証装置において、
前記入力層のユニットは、前記入力信号を、そのまま前記伝達信号として出力し、前記中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成して、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成するものであって、
前記区間伝達信号算出手段は、
前段のユニットから入力される前記区間伝達信号と前記シナプス荷重との積和に基づいて第１の区間信号を算出する第１区間信号算出手段と、
前記区間入力信号と前記重み付け信号が前記区間入力信号に対して取り得る変化率の値域を表す第１の傾斜との積和に基づいて第２の区間信号を算出する第２区間信号算出手段と、
前記第１及び第２の区間信号の共通区間を、前記重み付け信号が前記区間入力信号に対して取り得る値域を表す区間重み付け信号として設定する共通区間抽出手段と、
該共通区間抽出手段により設定された前記区間重み付け信号と前記出力関数とに基づいて前記区間伝達信号を生成する区間伝達信号生成手段と、
を備えることを特徴とする神経回路網の検証装置。
【請求項１２】
請求項１１記載の検証装置において、
前記第１の傾斜を、前段のユニットからの前記伝達信号が前記区間入力信号に対して取り得る変化率の値域を表す第２の傾斜と前記シナプス荷重との積和により算出する第１傾斜算出手段と、
後段へ出力する伝達信号についての前記第２の傾斜を、前記出力関数の傾きが前記区間重み付け信号に対して取り得る値域を表す第３の傾斜と前記第１の傾斜との積により算出する第２傾斜算出手段と、
を備えることを特徴とする神経回路網の検証装置。
【請求項１３】
請求項１２記載の検証装置において、
前記出力関数ｆ(ｘ)がシグモイド関数または双曲線関数であり、該出力関数ｆ(ｘ)の導関数をｆ'(ｘ) ，区間重み付け信号を［ＮＬ，ＮＵ］，その内点をＮＣとするとき、前記第３の傾斜を、ＮＵ＜０であれば［｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝，｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝］、ＮＬ≧０であれば［｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝，｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝］、それ以外であれば［ｍｉｎ｛ｆ'(ＮＬ)，ｆ'(ＮＵ)｝，ｆ'(０)]に設定する第３傾斜設定手段を備えることを特徴とする神経回路網の検証装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、神経回路網出力信号と教師出力信号との誤差が、許容範囲内となるようにシナプス荷重を設定する神経回路網の検証方法，検証装置及び記録媒体に関する。
【０００２】
【従来の技術】
従来より、伝達信号を生成するユニットをそれぞれ一つ以上備えた入力層，中間層，出力層と、各層間のユニットを結合して伝達信号を伝送するシナプスとからなる神経回路網（ニューラルネットワークとも言う）が知られている。この神経回路網では、各シナプスがシナプス荷重を持ち、このシナプス荷重を学習処理によって適宜変更することにより所望の入出力特性が実現される。
【０００３】
なお、神経回路網の学習は、教師入力信号を神経回路網に入力したときの網出力信号を計算し、この網出力信号と実現すべき特性を表す教師出力信号との比較結果に基づいて各シナプス荷重を変更して、教師出力信号と網出力信号との誤差、例えば、自乗誤差和が最小になるようにする処理である。
【０００４】
そして、図１３（ａ）に示すように、教師出力信号ｔ（ｘ）に対して、±εの範囲を許容範囲として、図１３（ｂ）に示すように、網出力信号ｎ（ｘ）と教師出力信号ｔ（ｘ）との誤差（ｎ（ｘ）−ｔ（ｘ））が、実際に取り得る全ての入力信号に対して、この許容範囲±ε内に収まる（｜ｎ（ｘ）−ｔ（ｘ）｜＜ε）ように学習するのである。
【０００５】
ところで、神経回路網は、パターン認識やデータ処理等に広く応用されているが、近年、空調機器等の制御への応用も増加している。このように、各種制御を行わせるために神経回路網を製品に組み込んだ場合、神経回路網に入力され得る任意の入力信号に対して、神経回路網から常に正しい出力信号が出力されることを保証する必要がある。
【０００６】
ところが、学習によってシナプス荷重が設定される神経回路網では、その出力特性を、ｉｆ−ｔｈｅｎ  ルール等の単純な論理にて記述できないので、内部解析による検証は困難である。このため、通常は、入力される可能性のある信号（テストデータ）を可能な限り多く準備し、これらの信号を実際に入力して、所望の出力信号が得られているか否かを逐一確認するという方法が行われていた。
【０００７】
【発明が解決しようとする課題】
しかし、このように実際にテストデータを入力して検査を行う場合、神経回路網の動作が確実に保証されるのは、図１３（ｃ）に示すように、その検査ポイントｘｐ  のみであり、検査ポイントｘｐ  間に存在する許容範囲から外れた部分ＥＲを見落としてしまう可能性がある。これを防止するには、テストデータを増加させればよいが、テストデータを増やすほど、検証に時間がかかってしまうという問題があった。また、入力信号の種類の増加に応じて検査すべきポイント（範囲）は指数関数的に増大する。特に、入力信号が連続信号である場合、検査すべきポイントは無限に存在し、つまり、どれだけテストデータを増やしたとしても、殆どのポイントについては検査することができず、すべての入力信号に対しての保証を確実なものとすることができないという問題があった。
【０００８】
本発明は、上記問題点を解決するために、入力される可能性のある任意の入力信号に対する神経回路網の動作を確実に保証できるようにすることを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するためになされた請求項１記載の神経回路網の検証方法では、入力層への各入力信号の値域をそれぞれ１次元の入力信号空間として、入力層へのＭ（Ｍは１以上の整数）次元の入力信号空間を複数の部分入力信号空間に分割し、この部分入力信号空間毎に、網出力信号と教師出力信号との誤差を判定することにより神経回路網を検証する。
【００１０】
このように本発明では、テストデータによる検査のように入力信号空間内のあるポイントについて検査するのではなく、部分入力信号空間毎に検査（誤差を判定）するので、入力信号空間の全てを漏れなく検証できる。
即ち、図１４は、２（Ｍ＝２）個の入力信号ｘ1∈Ｘ1，ｘ2∈Ｘ2が形成する２次元の入力信号空間Ｘを模式的に表したものであり、本発明では、テストデータによる検査のように決められた検査ポイントｘp∈Ｘ だけ（図１４（ａ）参照）でなく、２次元的な広がりを持つ部分入力信号空間ＸＰ毎に検証する（図１４（ｂ）参照）ので、入力信号空間Ｘ内を漏れなく検証できるのである。
【００１１】
そして、誤差の評価は、部分入力信号空間毎に、教師出力信号と網出力信号との誤差が取り得る値域を表す区間誤差を算出し、この区間誤差と、判定の基準となる許容範囲との包含関係を判定することで行うことができる。
【００１２】
即ち、区間誤差には、その部分入力信号空間内のあらゆる入力信号（又はその組み合わせ）を用いて神経回路網を動作させた時の誤差の上限値及び下限値が含まれているので、図１５（ａ）に示すように、この区間誤差Ｅ＝［ｅＬ，ｅＵ］が全て許容範囲内にふくまれていれば（ｅＬ≧−ε  且つ  ｅＵ≦ε）、その部分入力信号空間内に含まれるどのような入力信号（又はその組み合わせ）であっても、神経回路網の動作が保証されるのである。
【００１３】
また、逆に、図１５（ｂ）に示すように、区間誤差Ｅが全く許容範囲内に含まれていなければ（ｅＬ＞ε  又は  ｅＵ＜−ε）、その部分入力信号空間内に含まれるどのような入力信号（又はその組み合わせ）であっても、動作が保証されないことは明らかである。つまり、このような部分入力信号空間内の入力信号（又はその組み合わせ）に対して、学習をやり直す必要があることがわかる。
【００１４】
そして、図１５（ｃ）に示すように、それ以外の場合、つまり区間誤差Ｅの一部が許容範囲外にあり、それ以外が許容範囲内にある場合は、その部分入力信号空間の入力信号（又はその組み合わせ）には、神経回路網の所望動作に適合するものと適合しないものとが混在していることになる。
【００１５】
このため、本発明では、区間誤差の一部が許容範囲外にあると判定された場合には、部分入力信号空間が分割不足であるとして、その部分入力信号空間を、複数の部分入力信号空間に再分割し、該再分割により生成された部分入力信号空間毎に、その区間誤差と許容範囲との包含関係を再判定する操作を繰り返し行う。
【００１６】
これにより、神経回路網の所望動作に適合しない部分入力信号空間の範囲を絞り込むことができ、例えば、学習をやり直す際には、その絞り込んだ部分入力信号空間について集中的に行えばよいため、より効果的に学習を行うことが可能となる。
【００１７】
なお、図１６に示すように、部分入力信号空間ＸＰ内に、網出力信号ｎ（ｘ）と教師出力信号ｔ（ｘ）との誤差が許容範囲の境界値と等しく（｜ｎ（ｘ）−ｔ（ｘ）｜＝ε）なる点（臨界点という）よりわずかに大きな点を有する場合、分割不足であると判断され、部分入力信号空間の再分割が行われる。そして、この再分割により生成された部分入力信号空間では区間誤差Ｅが小さくなるが、いずれかの部分入力信号空間には必ず臨界点が含まれている。その結果、臨界点を含む部分入力信号空間で再分割が繰り返し行われることになり、計算量が増大するため、計算速度の低下を招くことになる。
【００１８】
そこで、請求項２に記載のように、区間誤差の幅が許容範囲の幅より小さな限界幅以下である場合には、区間誤差の一部が許容範囲外にあると判定されたとしても、部分入力信号空間の再分割を禁止することが望ましい。
なお、再分割の禁止方法としては、再分割回数の上限を予め決めておくようにしてもよい。
【００１９】
次に、請求項３記載の神経回路網の検証方法では、部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、入力層から出力層への信号伝送過程に従って各ユニット毎に、該ユニットにて生成される伝達信号が区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出して、出力層のユニットについて算出された区間伝達信号を、網出力信号が取り得る値域を表す区間網出力信号とし、この区間網出力信号に基づいて区間誤差を算出する。
【００２０】
ここで、区間演算とは、上限値α，下限値βを取る変数の区間を［α，β］にて表す場合、２つの区間Ｘ＝［ｘL，ｘU］、Ｙ＝［ｙL，ｙU］に対する加減乗除が（１）〜（４）（４ａ）（４ｂ）式にて定義されたものである。
0003550985.tif 000002
なお、実数ａは、幅が０の区間［ａ，ａ］とみなされ、実数ａと区間Ｘとの乗算が（５ａ）（５ｂ）式にて定義され、区間Ｘの幅（以下、区間幅という）ｗ(Ｘ)が（６）式にて定義される。
【００２１】
0003550985.tif 000003
例えば、関数ｈ(ｘ)＝ｘ2−ｘ として変数ｘが０≦ｘ≦１（即ち、区間Ｘ＝［０，１］、ｘ∈Ｘ）である場合、区間Ｘ内の変数ｘに対して関数ｈ(ｘ)が実際に取り得る値を計算すると、−１／４≦ｈ(ｘ)≦０となる。ここで変数ｘを区間Ｘに置き換えて区間演算を行うと、
ｈ(Ｘ)＝Ｘ2−Ｘ＝[0,1]2−[0,1]＝[0,1]−[0,1]＝[-1,1]
となり、即ち［−１／４，０］⊂［−１，１］であるため、任意のｘ∈Ｘに対しｈ(ｘ)∈ｈ(Ｘ)が成立し、区間演算ｈ(Ｘ)が関数ｈ(ｘ)の区間Ｘにおける上限，下限を与えることがわかる。
【００２２】
この区間演算については、例えば、Ｒ．Ｂａｋｅｒ  Ｋｅａｒｆｏｔｔ，「Ｒｉｇｏｕｒｏｕｓ  Ｇｌｏｂａｌ  Ｓｅａｒｃｈ：Ｃｏｎｔｉｎｕｏｕｓ  Ｐｒｏｂｌｅｍ」，ＫＬＵＷＥＲ  ＡＣＡＤＥＭＩＣ  ＰＵＢＬＩＳＨＥＲＳ（１９９６）  （以下、文献１とよぶ）に詳述されているので、ここではこれ以上の説明は省略する。
つまり、区間演算を用いれば、区間入力信号から各ユニットが生成する伝達信号の上限，下限（即ち区間伝達信号）を、ひいては網出力信号と教師出力信号との誤差の上限，下限（即ち区間誤差）を実際に求めることができるのである。
【００２３】
但し、上記の例からもわかるように、関数ｈ（ｘ）の区間Ｘにおける区間演算ｈ（Ｘ）は、関数ｈ（ｘ）の区間Ｘにおける真の範囲を含むが、一般に区間幅は広がってしまうため、必ずしも関数の範囲を正確に計算できるとは限らない。
そして、実際の誤差の上限，下限と比較して区間誤差が大きすぎると、網出力信号が実際には誤差の許容範囲内にあっても、分割不足であると判定されてしまうことがあり、本来ならば必要のない再分割，再評価が行われ、計算時間が増大してしまうおそれがある。
【００２４】
そこで、請求項４記載の神経回路網の検証方法では、入力層のユニットは、入力信号を、そのまま伝達信号として出力し、中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成し、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成する場合に、中間層及び出力層のユニットについては、前段のユニットから入力される区間伝達信号とシナプス荷重との積和に基づいて求められる第１の区間信号と、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第１の傾斜と区間入力信号との積和に基づいて求められる第２の区間信号との共通区間を求め、該共通区間を、重み付け信号が前記区間入力信号に対して取り得る値域を表す区間重み付け信号とする。そして、この区間重み付け信号と出力関数とに基づいて区間伝達信号を生成する。
【００２５】
即ち、異なった２種類の求め方で、区間重み付け信号を求め、その共通区間を求めることにより、区間重み付け信号をより実際に近いものとしているのである。
ここで、第２の区間信号を求めるために用いられる傾斜とは、先の文献１にて、”ｓｌｏｐｅ”  との用語で用いられている公知技術であり、文献１に詳述されているので、ここではその概略のみ説明する。
【００２６】
即ち、関数ｈ（ｘ）について、その変数ｘの区間をＸ＝［ｘＬ，ｘＵ］、区間Ｘ内の任意の内点をｘＣ  として、この区間Ｘ内にて、内点ｘＣ  を通り、且つ関数ｈ（ｘ）を挟み込む２つの直線Ｕ（ｘ），Ｌ（ｘ）が存在すると仮定すると、これらは、次の（７）（８）式にて表される。
【００２７】
Ｕ（ｘ）＝ｓＵ・（ｘ−ｘＣ）＋ｈ（ｘＣ）                        （７）
Ｌ（ｘ）＝ｓＬ・（ｘ−ｘＣ）＋ｈ（ｘＣ）                        （８）
但し、ｓＵ，ｓＬは、区間Ｘにより定まる定数であり、ｓＵ＞ｓＬとすると、図１７に示すように、
Ｌ（ｘ）≦ｈ（ｘ）≦Ｕ（ｘ）        （ｘ≧ｘＣ  ）              （９）
Ｕ（ｘ）≦ｈ（ｘ）≦Ｌ（ｘ）        （ｘ＜ｘＣ  ）            （１０）
となる。このとき、区間Ｘに対してｈ（ｘ）が取り得る値域の半区間幅Ｗを（１１）式にて定義すると、区間Ｘにて（１２）の関係が成立する。
【００２８】
Ｗ＝ｍａｘ（｜ｓＬ｜，｜ｓＵ｜）・ｍａｘ（ｘＵ−ｘＣ，ｘＣ−ｘＬ）        （１１）
ｈ（ｘＣ）−Ｗ≦ｈ（ｘ）≦ｈ（ｘＣ）＋Ｗ                      （１２）
つまり、区間Ｘに対して関数ｈ（ｘ）が取り得る値域は、
ｈ（Ｘ）＝［ｈ（ｘＣ）−  Ｗ，ｈ（ｘＣ）＋Ｗ］                  （１３）
となる。そして、この時の区間Ｘに対する関数ｈ（ｘ）の傾斜が、（１４）式にて定義されるのである。
【００２９】
【数１】
0003550985.tif 000004
【００３０】
ここで、区間Ｘ＝［ｘＬ，ｘＵ］，内点ｘＣ  ，傾斜Φｈ／ΦＸが与えられたとき、半区間幅Ｗを求める演算子を＊で示すことにする。つまり演算子＊は（１５）式にて定義される。
【００３１】
【数２】
0003550985.tif 000005
【００３２】
上記説明では、理解を容易にするため、１変数関数を用いて説明したが、Ｍ次元多変数関数ｈ(ｘ)＝ｈ(ｘ1，ｘ2，…，ｘM) ，各変数に対応する区間ベクトルＸ＝（Ｘ1 Ｘ2 … ＸM）t 、内点ｘC＝（ｘ1C，ｘ2C，…，ｘMC）t∈Ｘに対しても、（１６）式に示すように、各区間ベクトルの要素毎に同様な傾斜を定義でき、この傾斜を用いて半区間幅Ｗを（１７）式にて求めることができる。
【００３３】
【数３】
0003550985.tif 000006
【００３４】
ところで、請求項５に記載のように、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第１の傾斜は、例えば、前段のユニットから入力される伝達信号が区間入力信号に対して取り得る変化率の値域を表す第２の傾斜とシナプス荷重との積和により算出でき、また、後段へ出力する伝達信号についての第２の傾斜は、例えば、前記前記出力関数の傾きが前記重み付け信号に対して取り得る値域を表す第３の傾斜と前記第１の傾斜との積により算出できる。
【００３５】
そして、請求項６に記載のように、前記出力関数ｆ(ｘ)がシグモイド関数または双曲線関数であり、該出力関数ｆ(ｘ)の導関数をｆ'(ｘ) ，区間重み付け信号を［ＮＬ，ＮＵ］，その内点をＮＣとするとき、第３の傾斜は、ＮＵ＜０であれば［｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝，｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝］、ＮＬ≧０であれば［｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝，｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝］、それ以外であれば［ｍｉｎ｛ｆ'(ＮＬ)，ｆ'(ＮＵ)｝，ｆ'(０)］に設定することができる。
【００３６】
即ち、区間Ｘ＝［ｘＬ，ｘＵ］における任意の関数ｈ（ｘ）の傾斜Φｈ／ΦＸを求める場合、一般に次の▲１▼▲２▼が成立することが知られている。
▲１▼  区間Ｘにおいて関数ｈ（ｘ）が、単調増加（ｈ’（ｘ）＞０）  または単調減少（ｈ’（ｘ）＜０）  し、区間Ｘでの関数ｈ（ｘ）の微係数ｈ’（ｘ）  の上限，下限がｇＵ，ｇＬで与えられている場合、傾斜Φｈ／ΦＸを、［ｇＬ，ｇＵ］としてよい。
▲２▼  区間Ｘにおいて関数ｈ（ｘ）が上に凸（ｈ”（ｘ）＞０）または下に凸（ｈ”（ｘ）＜０）である場合、図１８（ここでは下に凸な場合を示す）から明らかなように、傾斜Φｈ／ΦＸ＝［ｓＬ，ｓＵ］は、以下の（１８）（１９）式で与えられる。但し、区間Ｘの内点をｘＣ  とする。
【００３７】
【数４】
0003550985.tif 000007
【００３８】
そして、出力関数として用いられるシグモイド関数ｆ（ｘ）＝１／｛１＋ｅｘｐ（−ｘ）｝、及び双曲線関数ｆ（ｘ）＝ｔａｎｈ（ｘ）は、図１９に示すように、いずれも、単調増加関数であり、且つｘ≧０では上に凸，ｘ＜０では下に凸となり、しかも、微係数ｆ’（ｘ）  がｘ＝０にて最大値をとるという特性を有する。なお、図１９では、（ａ）にシグモイド関数ｆ（ｘ）、（ｂ）にその微係数ｆ’（ｘ）  のグラフについてのみ示したが、双曲線関数もほぼ同様のグラフとなる。
【００３９】
このため、区間重み付け信号が、ｘ＝０を跨がない場合は上記▲２▼の性質を用い、また、区間重み付け信号がｘ＝０を跨ぐ場合には上記▲１▼の性質を用いて、区間重み付け信号に対する出力関数の傾斜を求めることができるのである。
このように、本発明によれば、出力関数の傾斜が簡単に求められるため、計算時間の短縮を図ることができる。
【００４０】
なお、上述した神経回路網の検証方法は、コンピュータシステムにて実行されるプログラムにより実現してもよい。この場合、請求項７記載のように、このようなプログラムは、例えば、フロッピーディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ハードディスク等のコンピュータシステムによる読取が可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータシステムによる読取が可能な記録媒体として前記プログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭをコンピュータシステムに組み込んで用いてもよい。
【００４１】
次に、請求項８記載の神経回路網の検証装置では、区間分割手段が、入力層への各入力信号の値域をそれぞれ１次元の入力信号空間として、入力層へのＭ（Ｍは１以上の整数）次元の入力信号空間を部分入力信号空間に分割する。すると、この分割された部分入力信号空間毎に、区間網出力信号算出手段が、網出力信号が取り得る値域を表す区間網出力信号を算出し、区間教師出力信号算出手段が、教師出力信号が取り得る値域を表す区間教師出力信号を算出し、区間誤差算出手段が、区間網出力信号及び区間教師出力信号間の誤差が取り得る値域を表す区間誤差を算出する。そして、判定手段が、区間誤差と許容範囲との包含関係を判定する。
【００４２】
また、判定手段により区間誤差の一部が許容範囲外にあると判定された部分入力信号空間を、区間再分割手段が、複数の部分入力信号空間に再分割する。即ち、この検証装置は、請求項１記載の検証方法を実現する手段を備えるものである。
【００４３】
また次に、請求項９記載の神経回路網の検証装置では、区間誤差の幅が、許容範囲の幅より小さな限界幅以下である場合に、再分割禁止手段が、区間再分割手段による部分入力信号空間の再分割を禁止する。即ち、この検証装置は、請求項２記載の検証方法を実現する手段を備えるものである。
【００４４】
更に、請求項１０記載の神経回路網の検証装置では、区間伝達信号算出手段が、部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、入力層から出力層への信号伝送過程に従って、各ユニットにて生成される伝達信号が区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出する。そして、区間網出力信号算出手段は、この区間伝達信号算出手段により出力層のユニットについて算出された区間伝達信号を、網出力信号が取り得る値域を表す区間網出力信号とする。即ち、この検証装置は、請求項３記載の検証方法を実現する手段を備えるものである。
【００４５】
また更に、請求項１１記載の神経回路網の検証装置では、入力層のユニットは、入力信号を、そのまま伝達信号として出力し、中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成して、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成するものであるとして、第１区間信号算出手段が、前段のユニットから入力される区間伝達信号とシナプス荷重との積和に基づいて第１の区間信号を算出し、第２区間信号算出手段が、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第１の傾斜と区間入力信号との積和に基づいて第２の区間信号を算出する。
【００４６】
そして、共通区間抽出手段が、第１及び第２の区間信号の共通区間を、重み付け信号が区間入力信号に対して取り得る値域を表す区間重み付け信号として設定し、区間伝達信号生成手段が、共通区間抽出手段により設定された区間重み付け信号と出力関数とに基づいて区間伝達信号を生成する。即ち、この検証装置は、請求項４記載の検証方法を実現する手段を備えるものである。
【００４７】
また、請求項１２記載の神経回路網の検証装置では、第１傾斜算出手段が、第１の傾斜を、前段のユニットからの伝達信号が区間入力信号に対して取り得る変化率の値域を表す第２の傾斜とシナプス荷重との積和により算出し、第２傾斜算出手段が、後段へ出力する伝達信号についての第２の傾斜を、出力関数の傾きが重み付け信号に対して取り得る値域を表す第３の傾斜と第１の傾斜との積により算出する。即ち、この検証装置は、請求項５記載の検証方法を実現する手段を備えるものである。
【００４８】
また次に、請求項１３記載の神経回路網の検証装置では、出力関数ｆ(ｘ)がシグモイド関数または双曲線関数であり、該出力関数ｆ(ｘ)の導関数をｆ'(ｘ) ，区間重み付け信号を［ＮＬ，ＮＵ］，その内点をＮＣとするとき、第３傾斜設定手段が、第３の傾斜を、ＮＵ＜０であれば［｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝，｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝］、ＮＬ≧０であれば［｛ｆ(ＮＵ)−ｆ(ＮＣ)｝／｛ＮＵ−ＮＣ｝，｛ｆ(ＮＬ)−ｆ(ＮＣ)｝／｛ＮＬ−ＮＣ｝］、それ以外であれば［ｍｉｎ｛ｆ'(ＮＬ)，ｆ'(ＮＵ)｝，ｆ'(０)］ に設定する。即ち、この検証装置は、請求項６記載の検証方法を実現する手段を備えるものである。
【００４９】
このように、請求項８〜１３記載の神経回路網の検証装置は、それぞれ請求項１〜６記載の検証方法を実現する装置であり、従って、これらの装置を用いて神経回路網の検証を行えば、上記検証方法について記述した通りの効果を得ることができる。
【００５０】
【発明の実施の形態】
以下に本発明の実施形態を図面と共に説明する。
［第１実施形態］
図１は、本発明が適用された神経回路網検証装置２の概略構成を表すブロック図である。
【００５１】
本実施形態の神経回路網検証装置２は、図１に示すように、検証すべき神経回路網の構造に関するデータ（シナプスの結合関係，シナプス荷重，出力関数の型など）からなる神経回路網データファイルＤＦＮ、及び検証すべき神経回路網への入力信号が取り得る値の範囲や教師出力信号を定義するデータ等からなる検証データファイルＤＦＫを格納するデータファイル格納部４と、データファイル格納部４から神経回路網データファイルＤＦＮを読み込んで、検証対象となる神経回路網ＮＥＴを構成する網構成部６と、同じくデータファイル格納部４から検証データファイルＤＦＫを読み込んで、後述する初期区間入力ベクトルデータベースＤＢＩを作成する入力データ作成部８と、網構成部６が構成した神経回路網ＮＥＴ、及び入力データ作成部８が作成した初期区間入力ベクトルデータベースＤＢＩに基づいて、神経回路網ＮＥＴの検証を実行し、その検証結果に基づいて検証結果データベースＤＢＯを作成する検証実行部１０と、上記各部に対する各種指令を入力するためのキーボードやマウス等からなる入力操作部１２と、入力操作部１２を操作する手順や検証結果データベースＤＢＯの内容等を表示するためのディスプレイ等からなる表示部１４とを備えている。
【００５２】
なお、本実施形態の検証装置２は、ワークステーション等、ＣＰＵ，ＲＯＭ，ＲＡＭ，Ｉ／Ｏポートを中心に構成された周知の汎用計算機上に構成されており、網構成部６，入力データ作成部８，検証実行部１０は、ＣＰＵが実行する処理として実現され、また、神経回路網ＮＥＴ、初期区間入力ベクトルデータベースＤＢＩ，検証結果データベースＤＢＯは、ＲＡＭ上に作成される。また、データファイル格納部４は、ハードディスクや磁気ディスク，フロッピーディスク等の外部記憶装置により構成されている。
【００５３】
以下、ＣＰＵにて実行される網検証処理について、図２に示すフローチャートに沿って説明する。なお、本処理のプログラムは、予めＲＯＭに記憶されていてもよいし、図示しないフロッピーディスク等の外部記憶装置からＲＡＭにロードするようにしてもよい。
【００５４】
本処理が起動されると、まずステップ（以下、単にＳとする）１１０では、入力操作部１２を介して、神経回路網データファイルＤＦＮ及び検証データファイルＤＦＫの各ファイル名、及び後述の処理で使用する許容誤差εが入力されたか否かを判断し、これらが入力されると、Ｓ１２０に移行する。
【００５５】
Ｓ１２０では、Ｓ１１０にて入力されたファイル名に従って、データファイル格納部４から神経回路網データファイルＤＦＮを読み込み、その内容に基づいて検証対象となる神経回路網ＮＥＴをＲＡＭ上に構成する網構成部６としての処理を実行する。
【００５６】
このとき作成される神経回路網ＮＥＴは、図３に示すように、伝達信号を生成する合計ＮＵ個のユニットＵｊ  （ｊ＝１，２，…，ＮＵ）により構成された入力層（第１層），中間層（第２〜（ＮＬ−１）層），出力層（第ＮＬ層）と、伝達信号を伝送するために各層間のユニットＵｊ  を結合するシナプスとから構成される。
【００５７】
なお、第ｉ層（ｉ＝１，２，…，ＮＬ）は、それぞれＭｉ  個（Ｍ１＋Ｍ２＋…＋ＭＮＬ＝ＮＵ）のユニットで構成されており、特に、本実施形態では、入力層のユニット数をＭ１＝Ｍ，  出力層のユニット数をＭＮＬ＝１とする。但し、出力層のユニット数ＭＮＬは複数であってもよい。
【００５８】
このうち入力層を構成するユニットＵｍ  （ｍ＝１，２，…，Ｍ）は、入力信号ｘｍ  を、そのまま次層への伝達信号ｏｍ  として出力するように構成されている。また、中間層（第２〜（ＮＬ−１）層）を構成するユニットＵｎ  （ｎ＝Ｍ＋１，Ｍ＋２，…，ＮＵ−１）は、前層から入力される伝達信号，この伝達信号に対応して設定されるシナプス荷重，及び予め定義された出力関数を用いて次層への伝達信号を生成するように構成されている。
【００５９】
即ち、第ｉ層（＝２，３，…，ＮＬ−１）のユニットＵｊ  では、第（ｉ−１）層のユニットＵｋ  からの伝達信号ｏｋ  に対するシナプス荷重をωｊｋ，ユニットＵｊ  でのバイアスをｂｊ  ，ユニットＵｊ  に伝達信号ｏｋ  を送るユニットＵｋ  の番号の集合をＣ（ｊ）として、重み付け信号ｎｅｔｊを（２０）式にて算出し、更に、シグモイド関数からなる出力関数ｆ（ｘ）＝１／｛１＋ｅｘｐ（−ｘ）｝を用いて、（２１）式により、次層への伝達信号ｏｊ  を生成するように構成されている。
【００６０】
【数５】
0003550985.tif 000008
【００６１】
そして、出力層（第ＮＬ層）のユニットＵＮＵは、中間層のユニットＵｎ  と同様に構成されたものであり、このユニットＵＮＵにて生成された伝達信号ｏＮＵが、当該神経回路網ＮＥＴの出力である網出力信号ｎ（ｘ）となる。
続くＳ１３０では、Ｓ１１０にて入力されたファイル名に従って、データファイル格納部４から検証データファイルＤＦＫを読み込み、その内容に基づいて初期区間入力ベクトルデータベースＤＢＩを作成する入力データ作成部８としての処理を実行する。
【００６２】
この初期区間入力ベクトルデータベースＤＢＩには、次のようにして作成される区間入力ベクトル信号Ｉｓが格納される。
即ち、まず神経回路網ＮＥＴへの入力信号（即ち入力層のユニット数）がＭ個ある場合、各入力信号が取り得る値を０〜１の範囲に正規化し、この正規化した各入力信号をそれぞれ１次元の入力信号空間Ｘｍ⊂［０，１］ （ｍ＝１〜Ｍ）として、Ｍ次元入力信号空間Ｘ（＝Ｘ１×Ｘ２×…×ＸＭ⊂［０，１］Ｍ）を考える。但し、図４では、理解を容易にするため、Ｍ＝２の場合を示す。
【００６３】
そして、各入力信号空間Ｘｍ  毎に、それぞれ  Ｎｍ＋１個の分割点Ｇｍｌ（ｌ＝０〜Ｎｍ  ）を（２３）式の関係を満たすように設ける。
Ｇｍ０（＝０）＜Ｇｍ１＜…＜ＧｍＮｍ（＝１）                    （２３）
この分割点は、検証データファイルＤＦＫに予め設定されているものとする。
【００６４】
この分割点Ｇｍｌに基づき、１次元の各入力信号空間Ｘｍ  を、
［Ｇｍ０，Ｇｍ１］［Ｇｍ１，Ｇｍ２］…［ＧｍＮｍ−１，ＧｍＮｍ］        （２４）
という  Ｎｍ個の部分入力信号空間に分割し、これに対応して、Ｍ次元入力信号空間Ｘを、（２５）式に示すような、ＮＰＸ（＝Ｎ１・Ｎ２・…・Ｎｍ  ）個のＭ次元部分入力信号空間ＸＰに分割する。但し、ｐｍ＝０，１，…，Ｎｍ−１  である。
【００６５】
0003550985.tif 000009
これらの部分入力信号空間ＸＰのそれぞれに対して、次のＭ次元区間入力ベクトル信号Ｉｓ（ｓ＝１〜ＮＰＸ）を生成する。
【００６６】
0003550985.tif 000010
このようにして生成した区間入力ベクトル信号Ｉｓを、特に初期区間入力ベクトル信号とよび、初期区間入力ベクトルデータベースＤＢＩに格納する。
【００６７】
続くＳ１４０では、神経回路網ＮＥＴの検証開始を指示する検証開始指令が、入力操作部１２から入力されたか否かを判断し、検証開始指令が入力されると、Ｓ１５０に進み、Ｓ１３０にて生成された初期区間入力ベクトルデータベースＤＢＩから区間入力ベクトル信号Ｉｓを順番に読み込んで、スタックに積み込む。
【００６８】
なお、スタックは、最後に入力したデータを最初に出力するいわゆるＬＩＦＯ（Ｌａｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）  型のメモリで、初期区間入力ベクトルデータベースＤＢＩ等と同様にＲＡＭ上に形成される。そして、以下では、スタックに最後に積み込まれてスタックの一番上（スタックトップという）にある区間入力ベクトル信号ＩｓをＸｔｏｐ  とし、次の（２７）式にて表す。この式は、（２６）式の記号を付け替えただけのものであり、（２６）式と全く等価である。
【００６９】
Ｘｔｏｐ＝（［ｘ１Ｌ，ｘ１Ｕ］［ｘ２Ｌ，ｘ２Ｕ］…［ｘＭＬ，ｘＭＵ］）ｔ      （２７）
また、以下では、区間入力ベクトル信号Ｘｔｏｐ  を構成する各要素［ｘ１Ｌ，ｘ１Ｕ］［ｘ２Ｌ，ｘ２Ｕ］…［ｘＭＬ，ｘＭＵ］を区間要素と呼び、ＸＰ１，ＸＰ２，…，ＸＰＭ  とも表記する。
【００７０】
次にＳ１６０にて、スタックトップの区間入力ベクトル信号Ｘｔｏｐ  を取り出して、続くＳ１７０では、この区間入力ベクトル信号Ｘｔｏｐ  に対応する区間教師出力信号ｔ（Ｘｔｏｐ）＝［ｔＬ，ｔＵ］  を算出し、更にＳ１８０では、同じくスタックトップの区間入力ベクトル信号Ｘｔｏｐ  に属する入力信号に対して、網出力信号ｎ（ｘ）が取り得る値域を表す区間網出力信号ｎ（Ｘｔｏｐ）＝［ｎＬ，ｎＵ］  を区間演算を用いて算出する。
【００７１】
なお、区間教師出力信号ｔ（Ｘｔｏｐ）  の算出方法については、例えば教師出力信号が関数により定義されている場合、この関数に区間演算を適用することで簡単に算出できる。詳しくは、後述の［算出例１］の欄にて具体的な例をあげて説明する。
【００７２】
ここで、区間網出力信号ｎ（Ｘｔｏｐ）＝［ｎＬ，ｎＵ］  を算出する処理の詳細を、図５に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずＳ３１０では、入力層（第１層）の各ユニットＵｍ  （ｍ＝１，２，…，Ｍ）が出力する区間伝達信号Ｏｍ  を初期化する。具体的には、区間入力ベクトル信号Ｘｔｏｐ  の区間要素ＸＰｍ＝［ｘｍＬ，ｘｍＵ］  をそのまま区間伝達信号Ｏｍ  として設定する。
【００７３】
即ち、区間伝達信号Ｏｍ  は、区間要素ＸＰｍ  の内点を、ユニットＵｍ  （ｍ＝１，２，…，Ｍ）に入力した時に、このユニットＵｍ  から出力される伝達信号ｏｍ  が取り得る値域を表すものであり、入力層のユニットＵｍ  は、上述したように入力信号をそのまま伝達信号ｏｍ  として出力するからである。
【００７４】
なお、通常の演算に用いられる信号（例えば、伝達信号ｏｍ  ）と、区間演算に用いられる信号（例えば、区間伝達信号Ｏｍ  ）とを区別するために、区間演算に用いられる信号については、その先頭を大文字で表す。
次にＳ３２０では、ユニットＵｊ  を識別するためのカウンタｊを、中間層で最も番号の小さいユニットを指示するようＭ＋１に設定し、続くＳ３３０では、ユニットＵｊ  について、次の（２８）式に従って区間重み付け信号Ｎｅｔｊ  を算出する。なお、ｂｊ  ，ｗｊｋ，Ｃ（ｊ）は、先の（２０）式にて説明したのと同じものである。
【００７５】
【数６】
0003550985.tif 000011
【００７６】
続くＳ３４０では、出力関数ｆ（ｘ）の変数ｘの代わりに、Ｓ３３０にて算出した区間重み付け信号Ｎｅｔｊ＝［ｎｅｔｊＬ，ｎｅｔｊＵ］  を用いて区間演算を行うことにより、区間入力ベクトル信号Ｘｔｏｐ  に対するユニットＵｊ  での区間伝達信号Ｏｊ  を算出する。
【００７７】
なお、本実施形態では、出力関数ｆ（ｘ）として、単調増加関数であるシグモイド関数を用いているので、区間伝達信号Ｏｊ＝［ｆ（ｎｅｔｊＬ），ｆ（ｎｅｔｊＵ）］  となる。Ｓ３５０では、カウンタｊをインクリメントし、Ｓ３６０にてカウンタｊの値が、神経回路網ＮＥＴの全ユニット数ＮＵ以下であるか否かを判断する。そして、肯定判断された場合は、Ｓ３３０に戻って、次のユニットＵｊ  について区間伝達信号Ｏｊ  の算出を行う。
【００７８】
一方、Ｓ３６０にて否定判定された場合、即ち、神経回路網ＮＥＴの中間層及び出力層（第２〜ＮＬ層）の全てのユニットＵｊ  についての区間伝達信号Ｏｊ  の算出を終了した場合には、Ｓ３７０に移行し、出力層（第ＮＬ層）のユニットＵＮＵでの区間伝達信号ＯＮＵを、区間入力ベクトル信号Ｘｔｏｐ  に対する区間網出力信号ｎ（Ｘｔｏｐ）  として設定し、本処理を終了する。
【００７９】
なお、上述の区間入力ベクトル信号Ｘｔｏｐ  に対する区間網出力信号ｎ（Ｘｔｏｐ）  の算出処理は、公知技術である実数入力ベクトル信号ｘに対する網出力信号ｎ（ｘ）の算出処理（例えば、ＭｃＣｌｅｌｌａｎｄ，Ｊ．Ｌ．，Ｒｕｍｅｌｈａｒｔ，Ｄ．Ｅ．，ａｎｄ  ｔｈｅ  ＰＤＰ  Ｒｅｓｅａｒｃｈ  Ｇｒｏｕｐ，”Ｐａｒａｌｌｅｌ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｐｒｏｃｅｓｓｉｎｇ：Ｅｘｐｌｏｒａｔｉｏｎｓ  ｉｎ  ｔｈｅ  Ｍｉｃｒｏｓｔｒｕｃｔｕｒｅ  ｏｆ  Ｃｏｇｎｉｔｉｏｎ”，ＭＩＴ  Ｐｒｅｓｓ，Ｃｈａｐｔｅｒ  ８，（１９８６）を参照）に対して、区間演算を適用したものであり、各種演算が区間演算になっている点が異なるだけで、その他の全体の手順等は、網出力信号ｎ（ｘ）の算出処理と全く同様である。
【００８０】
その詳細は、Ｈ．Ｉｓｈｉｂｕｃｈ  ａｎｄ  Ｈ．Ｔａｎａｋａ，”Ａｎ  Ｅｘｔｅｎｓｉｏｎ  ｏｆ  ｔｈｅ  ＢＰ  Ａｌｇｏｒｉｔｈｍ  ｔｏ  Ｉｎｔｅｒｖａｌ  Ｉｎｐｕｔ  Ｖｅｃｔｏｒｓ：Ｌｅａｒｎｉｎｇ  ｆｏｒｍ  Ｎｕｍｅｒｉｃａｌ  Ｄａｔａ  ａｎｄ  Ｅｘｐｅｒｔ’ｓ  Ｋｎｏｗｌｅｄｇｅ”，  Ｉｎｔ，  Ｊｏｉｎｔ  Ｃｏｎｆ．  ｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ，  Ｓｉｎｇａｐｏｒｅ，  ｐｐ．１５８８−１５９３，１９９１  に記載されている。
【００８１】
次に、図２に示すフローチャートに戻り、Ｓ１９０では、Ｓ１７０にて算出された区間教師出力信号ｔ（Ｘｔｏｐ）  と、Ｓ１８０にて算出された区間網出力信号ｎ（Ｘｔｏｐ）  とから、区間誤差Ｅ＝ｅ（Ｘｔｏｐ）＝［ｅＬ，ｅＵ］  を（５０）式により区間演算を用いて算出する。
【００８２】
0003550985.tif 000012
続くＳ２００では、Ｓ１９０にて算出した区間誤差Ｅと、先のＳ１１０にて入力された許容誤差εとにより判定処理を行った後、Ｓ２１０に進む。
【００８３】
ここで、この判定処理の詳細を、図６に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずＳ４１０では、区間誤差Ｅのすべてが、許容誤差範囲［−ε，ε］に包含されているか否かを判断し、肯定判定された場合はＳ４２０に移行して、検証結果を「可」として、この検証結果を区間入力ベクトル信号Ｘｔｏｐ  と対応づけて、検証結果データベースＤＢＯに記憶し、本処理を終了する。
【００８４】
一方、Ｓ４２０にて、否定判定された場合はＳ４３０に移行し、今度は、区間誤差Ｅが、その全てが開区間（−∞，−ε）又は開区間（ε，＋∞）に包含されているか否か、即ち許容誤差範囲［−ε，ε］には全く包含されていないか否かを判断する。そして、肯定判断された場合はＳ４４０に移行して、検証結果を「不可」として、この検証結果を区間入力ベクトル信号Ｘｔｏｐ  と対応づけて、検証結果データベースＤＢＯに記憶し、本処理を終了する。
【００８５】
またＳ４３０でも否定判定された場合、即ち、区間誤差Ｅの一部のみが許容誤差範囲［−ε，ε］に包含されている場合は、「分割不足」であるとしてＳ４５０に移行し、この区間入力ベクトル信号Ｘｔｏｐ  を分割して、続くＳ４６０にて、この分割により生成された新たな区間入力ベクトル信号Ｉｓを、全てスタックに積み込んで本処理を終了する。
【００８６】
ところで、Ｓ４５０における区間入力ベクトル信号  Ｘｔｏｐ＝（［ｘ１Ｌ，ｘ１Ｕ］［ｘ２Ｌ，ｘ２Ｕ］…［ｘＭＬ，ｘＭＵ］）ｔ  の分割は、例えば、いずれか一つのの区間要素［ｘｍＬ，ｘｍＵ］（ｍ＝１〜Ｍ）を選択し、その内点ｘｍＣ∈［ｘｍＬ，ｘｍＵ］を用いて、（２９ａ）（２９ｂ）に示すように２分割すればよい。
【００８７】
ＩＬ＝（［ｘ１Ｌ，ｘ１Ｕ］…［ｘｍＬ，ｘｍＣ］…［ｘＭＬ，ｘＭＵ］）ｔ        （２９ａ）
ＩＵ＝（［ｘ１Ｌ，ｘ１Ｕ］…［ｘｍＣ，ｘｍＵ］…［ｘＭＬ，ｘＭＵ］）ｔ        （２９ｂ）
なお、内点ｘｍＣは、例えば、区間要素［ｘｍＬ，ｘｍＵ］の中点（（ｘｍＬ＋ｘｍＵ）／２）に設定するのが簡単であるが、これに限らず前記区間内であればどのようなものに設定してもよい。また、２分割に限らず、３分割以上にしてもよい。そして、同じ区間入力ベクトル信号に対して繰り返し分割が行われる場合には、分割毎に選択する区間要素を適宜変えていくようにすることが望ましい。
【００８８】
次に図２に示すフローチャートに戻り、Ｓ２１０では、スタックが空になっているか否かを判断し、否定判定された場合、即ちスタックに処理すべき区間入力ベクトル信号Ｉｓが残されている場合、Ｓ１６０に戻り、Ｓ１６０〜Ｓ２１０までの処理をスタックが空になるまで繰り返し実行する。
【００８９】
そして、Ｓ２１０にて肯定判断された場合、即ち、スタックに積まれた全ての区間入力ベクトル信号Ｉｓについて、区間誤差の判定処理を終了した場合には、Ｓ２２０に移行し、検証結果データベースＤＢＯの記録内容を、表示部１４に表示させた後、本処理を終了する。
【００９０】
なお、本処理において、Ｓ１３０が区間分割手段、Ｓ１７０が区間教師出力信号算出手段、Ｓ１８０が区間網出力信号算出手段、Ｓ１９０が区間誤差算出手段、Ｓ２００が判定手段、Ｓ４５０が区間再分割手段、Ｓ３１０〜Ｓ３６０が区間伝達信号算出手段に相当する。
【００９１】
以上、説明したように、本実施形態の神経回路網検証装置２においては、Ｍ次元入力信号空間Ｘを部分入力信号空間ＸＰ（区間入力ベクトル信号Ｘｔｏｐ  ）に分割し、この部分入力信号空間ＸＰ毎に、区間演算を用いて、網出力信号ｎ（ｘ）の上限値，下限値を含んだ区間網出力信号ｎ（Ｘｔｏｐ）  と、区間教師出力信号ｔ（Ｘｔｏｐ）  との誤差を表す区間誤差Ｅ（＝ｅ（Ｘｔｏｐ））  を算出し、この区間誤差Ｅと許容誤差範囲［−ε，ε］との包含関係を比較することにより、誤差の判定を行っている。
【００９２】
このように、本実施形態の神経回路網検証装置２によれば、区間演算を用いて、部分入力信号空間ＸＰに属する全ての入力信号（又はその組み合わせ）について、一度にまとめて検証しているので、従来のテストデータにより個々の入力信号毎に検証する場合と比較して、短時間で検証することができる。しかも、入力信号が離散値ではなく、検証すべきポイントが無限に存在する連続値を取る場合にも適用できるため、入力信号空間Ｘに属する全ての入力信号（又はその組み合わせ）について、神経回路網ＮＥＴの動作を確実に保証することができる。
【００９３】
また、本実施形態の神経回路網検証装置２においては、区間入力ベクトル信号Ｘｔｏｐ  についての検証結果が「分割不足」であれば、その区間入力ベクトル信号Ｘｔｏｐ  を再分割してスタックに積み、分割された区間入力ベクトル信号毎に検証処理を再度実行するようにされている。
【００９４】
従って、検証結果が「不可」となる区間入力ベクトル信号Ｉｓの範囲を絞り込むことができ、神経回路網ＮＥＴを再学習する際に、教師データを増やすべきポイントを的確に知ることができるため、効率よく学習を行わせることができる。ところで、神経回路網ＮＥＴを検証後、機器に組み込んで使用する際、神経回路網ＮＥＴの計算を固定小数点演算ＣＰＵで実行する場合は、小数点の位置により計算精度が変わってしまう。
【００９５】
しかし、本実施形態の神経回路網検証装置２によれば、区間演算によって、処理の過程で表れる計算値の上限値，下限値が明らかになるため、整数部に必要最小限のビット数が割り当てられるように小数点の位置を決めることができ、ＣＰＵに精度よく計算を行わせることができるため、神経回路網ＮＥＴの能力を最大限に引き出すことができる。
【００９６】
なお、上記実施例では、神経回路網として階層型のモデルを用いたが、神経回路網出力信号の上限値，下限値を計算できるものであれば、他のモデルを用いてもよい。
［第２実施形態］
次に、第２実施形態について説明する。
【００９７】
本実施形態の神経回路網検証装置は、第１実施形態のものとは、Ｓ２００にて実行される区間誤差判定処理の処理内容が一部異なるだけで、それ以外の構成や処理は全く同様であるため、この区間誤差判定処理についてのみ、図７に示すフローチャートに沿って説明する。
【００９８】
本処理が起動されると、まず、Ｓ５１０〜Ｓ５４０では、第１実施形態におけるＳ４１０〜Ｓ４４０と全く同様に、区間誤差Ｅ＝ｅ（Ｘｔｏｐ）＝［ｅＬ，ｅＵ］  のすべてが、許容誤差範囲［−ε，ε］に包含されていれば、検証結果を「可」として、この検証結果を区間入力ベクトル信号Ｘｔｏｐ  と対応づけて、検証結果データベースＤＢＯに記憶（Ｓ５１０−ＹＥＳ，Ｓ５２０）した後、本処理を終了し、一方、区間誤差Ｅの全てが、許容誤差範囲［−ε，ε］には全く包含されていなければ、検証結果を「不可」として、この検証結果を区間入力ベクトル信号Ｘｔｏｐ  と対応づけて、検証結果データベースＤＢＯに記憶（Ｓ５１０−ＹＥＳ，Ｓ５３０−ＹＥＳ，Ｓ５４０）した後、本処理を終了し、それ以外の場合（Ｓ５３０−ＮＯ）は、Ｓ５５０へ移行する。
【００９９】
そしてＳ５５０では、区間誤差Ｅについての区間誤差幅ＷＥを（３０）式にて算出し、続くＳ５６０にて、この区間誤差幅ＷＥが、予め設定された限界値αε（０＜α＜１）より小さいか否かを判断する。
ＷＥ＝Ｗ（ｅ（Ｘｔｏｐ））＝ｅＵ−ｅＬ                            （３０）
このＳ５６０にて肯定判断された場合は、Ｓ５７０に移行して、区間入力ベクトル信号Ｘｔｏｐ  に臨界点が含まれる旨を表すため、検証結果を「臨界点」として、この検証結果を区間入力ベクトル信号Ｘｔｏｐ  と対応づけて、検証結果データベースＤＢＯに記憶し、本処理を終了する。
【０１００】
一方、Ｓ５６０にて否定判定された場合は、「分割不足」であるとして、Ｓ５８０に移行し、以下、第１実施形態におけるＳ４５０，Ｓ４６０と同様に、区間入力ベクトル信号Ｘｔｏｐ  を分割し（Ｓ５８０）、この分割により生成され区間入力ベクトル信号ＩＬ，ＩＵをスタックに積んで（Ｓ５９０）、本処理を終了する。
【０１０１】
なお、本処理においてＳ５５０，Ｓ５６０が再分割禁止手段に相当する。
このように、本実施形態においては、検証結果が「可」でも「不可」でもない場合に、区間誤差幅ＷＥが限界値αε以下であれば、区間誤差Ｅは臨界点を含むものとして、区間入力ベクトル信号Ｘｔｏｐ  をそれ以上に再分割することを禁止しているので、臨界点を含む区間入力ベクトル信号Ｘｔｏｐ  の分割が不必要に繰り返されてしまうことを防止でき、ひいては処理速度の低下を確実に防止できる。
［第３実施形態］
次に、第３実施形態について説明する。
【０１０２】
本実施形態の神経回路網検証装置は、第１及び第２実施形態のものとは、Ｓ１８０にて実行される区間網出力信号算出処理の処理内容が異なるだけで、それ以外の構成や処理は全く同様であるため、この区間網出力信号算出処理についてのみ、図８に示すフローチャートに沿って説明する。
【０１０３】
本処理が起動されると、まずＳ６１０では、区間入力ベクトル信号  Ｘｔｏｐ＝（［ｘ１Ｌ，ｘ１Ｕ］［ｘ２Ｌ，ｘ２Ｕ］…［ｘＭＬ，ｘＭＵ］）ｔ  の中央点ｘＣ＝（ｘ１Ｃ，ｘ２Ｃ，…，ｘＭＣ）ｔを（３１）式により算出する。
ｘｍＣ＝（ｘｍＬ＋ｘｍＵ）／２    （ｍ＝１，２，…，Ｍ）      （３１）
続くＳ６２０では、神経回路網ＮＥＴを構成する全てのユニットＵｊ  について、この中央点ｘＣ  に対する重み付け信号ｎｅｔｊを算出する。
【０１０４】
具体的には、図５に示した区間網出力信号算出処理と同様の手順で算出することができる。但し、区間入力ベクトル信号Ｘｔｏｐ  ，区間伝達信号Ｏｊ  ，区間重み付け信号Ｎｅｔｊ  の代わりに、中央点ｘＣ  ，伝達信号ｏｊ  ，重み付け信号ｎｅｔｊを用いて、区間演算ではなく通常の演算にて処理を実行することにより、Ｓ３３０にて算出される値を用いればよい。なお、本ステップの処理により算出された、ユニットＵｊ  における重み付け信号を、以下では、ｎｅｔｊＣ  と表記する。
【０１０５】
次にＳ６３０では、第１実施形態におけるＳ３００と全く同様に、入力層の各ユニットＵｍ  （ｍ＝１，２，…，Ｍ）の区間伝達信号Ｏｍ  を初期化する。即ち、区間入力ベクトル信号Ｘｔｏｐ  の各区間要素ＸＰｍ  をそのまま区間伝達信号Ｏｍ  として設定する。
【０１０６】
続くＳ６４０では、入力層の各ユニットＵｍ  毎に、各区間要素ＸＰｎ  （ｎ＝１，２，…，Ｍ）に対する伝達信号ｏｍ（ｍ＝１，２，…，Ｍ）  の傾斜Φｏｍ／ΦＸＰｎを（３２）式に従って初期化する。
【０１０７】
【数７】
0003550985.tif 000013
【０１０８】
このように初期化するのは、入力層のユニットＵｍ  には、区間要素ＸＰｍ  のみが入力され、ユニットＵｍ  の伝達信号ｏｍ  は、ｍ≠ｎである他の区間要素ＸＰｎ  とは関係なく、区間要素ＸＰｍ  のみにより決まるためである。
なお、この傾斜Φｏｍ／ΦＸＰｎは、本発明における第２の傾斜に相当する。
【０１０９】
Ｓ６５０，Ｓ６６０は、第１実施形態におけるＳ３２０，Ｓ３３０と全く同様に、カウンタｊをＭ＋１に設定（Ｓ６５０）した後、ユニットＵｊ  についての区間重み付け信号Ｎｅｔｊ  を算出（Ｓ６６０）する。但し、ここでは、このＳ６６０にて算出される区間重み付け信号を第１の区間Ｎｅｔｊ＿１とする。
【０１１０】
続くＳ６７０では、同じくユニットＵｊ  について、区間要素ＸＰｍ  （ｍ＝１，２，…，Ｍ）毎に、区間要素ＸＰｍ  に対する重み付け信号ｎｅｔｊの傾斜Φｎｅｔｊ／ΦＸＰｍ  を（３３）式に従って算出する。以下では、その要素を（３４）式にて表記する。
【０１１１】
【数８】
0003550985.tif 000014
【０１１２】
なお、この傾斜Φｎｅｔｊ／ΦＸＰｎ  が、本発明における第１の傾斜に相当する。
続くＳ６８０では、Ｓ６７０にて求めた傾斜Φｎｅｔｊ／ΦＸＰｍ  に基づき、ユニットＵｊ  の区間重み付け信号Ｎｅｔｊ  を算出する。但し、ここでは、本ステップで算出される区間重み付け信号を第２の区間Ｎｅｔｊ＿２とする。
【０１１３】
即ち、（３５）式により半区間幅Ｗを算出し、この半区間幅Ｗと、Ｓ６２０にて算出した中央点ｘＣ  に対する重み付け信号ｎｅｔｊＣとを用いて、（３６）式にて表される区間を第２の区間Ｎｅｔｊ＿２として設定するのである。
【０１１４】
【数９】
0003550985.tif 000015
【０１１５】
そして、Ｓ６９０では、Ｓ６６０にて求めた第１の区間Ｎｅｔｊ＿１、及びＳ６８０にて求めた第２の区間Ｎｅｔｊ＿２に基づき、両者の共通区間をユニットＵｊ  の区間重み付け信号Ｎｅｔｊ  に設定する。
即ち、Ｎｅｔｊ＿１＝［ｎｅｔ１Ｌ，ｎｅｔ１Ｕ］，Ｎｅｔｊ＿２＝［ｎｅｔ２Ｌ，ｎｅｔ２Ｕ］  とすると、区間重み付け信号Ｎｅｔｊ  は、次の（３７）式にて表記される。
【０１１６】
0003550985.tif 000016
続くＳ７００では、Ｓ６９０にて求めた区間重み付け信号Ｎｅｔｊ  を用いて、第１実施形態におけるＳ３４０と全く同様に、区間入力ベクトル信号Ｘｔｏｐ  に対するユニットＵｊ  の区間伝達信号Ｏｊ  を算出する。
【０１１７】
Ｓ７１０では、カウンタｊの値が、神経回路網ＮＥＴのユニット総数ＮＵより小さいか否かを判断し、肯定判定された場合は、現在処理中のユニットＵｊ  が、中間層（第２〜ＮＬ−１層）を構成するものであるとしてＳ７２０に移行する。Ｓ７２０では、Ｓ６９０にて求められた区間重み付け信号Ｎｅｔｊ  に対する出力関数ｆ（ｘ）の傾斜Φｆ／ΦＮｅｔｊ  を算出する。なお、この傾斜Φｆ／ΦＮｅｔｊ  が本発明における第３の傾斜に相当する。
【０１１８】
ここで、傾斜Φｆ／ΦＮｅｔｊ  を算出する処理の詳細を、図９に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずＳ８１０では、先のＳ６９０にて求めた区間重み付け信号Ｎｅｔｊ  の全範囲が、出力関数（シグモイド関数）ｆ（ｘ）が下に凸である区間（−∞，０］に包含されているか否かを判断する。そして、肯定判定された場合は、Ｓ８２０に移行して、（３８）式に従って傾斜Φｆ／ΦＮｅｔｊ  を設定し、本処理を終了する。
【０１１９】
【数１０】
0003550985.tif 000017
【０１２０】
一方、Ｓ８１０にて否定判定された場合は、Ｓ８３０に移行し、今度は、区間重み付け信号Ｎｅｔｊ  の全範囲が、出力関数ｆ（ｘ）が上に凸である区間［０，＋∞）に包含されているか否かを判断する。そして、肯定判定された場合は、Ｓ８４０に移行して、（３９）式に従って傾斜Φｆ／ΦＮｅｔｊ  を設定し、本処理を終了する。
【０１２１】
【数１１】
0003550985.tif 000018
【０１２２】
またＳ８３０でも否定判定された場合は、Ｓ８５０に移行し、区間重み付け信号Ｎｅｔｊ  が、出力関数ｆ（ｘ）が上に凸である区間と下に凸である区間との両方に渡っている、即ち、微係数ｆ’（ｘ）  が最大値となる０を跨いだ区間となっているので、（４０）式に従って傾斜Φｆ／ΦＮｅｔｊ  を設定し、本処理を終了する。
【０１２３】
【数１２】
0003550985.tif 000019
【０１２４】
以下では、このＳ７２０にて求められた傾斜Φｆ／ΦＮｅｔｊ  を（４１）式にて表記する。
【０１２５】
【数１３】
0003550985.tif 000020
【０１２６】
次に、図８に示すフローチャートに戻り、Ｓ７３０では、各区間要素ＸＰｍ  （ｍ＝１，２，…，Ｍ）毎に、区間要素ＸＰｍ  に対する当該ユニットＵｊ  の伝達関数ｏｊ  の傾斜Φｏｊ／ΦＸＰｍ（本発明における第２の傾斜に相当する）をそれぞれ算出する。
【０１２７】
即ち、Ｓ６７０にて算出された傾斜Φｎｅｔｊ／ΦＸＰｍ  、及びＳ７２０にて算出された傾斜Φｆ／ΦＮｅｔｊ  を用いて、（４２）式に従って算出する。
【０１２８】
【数１４】
0003550985.tif 000021
【０１２９】
続くＳ７４０では、カウンタｊをインクリメント後、Ｓ６６０に戻り、次のユニットＵｊ  に対する処理を行う。
一方、先のＳ７１０にて、否定判定された場合は、全てのユニットＵｊ  について処理を終了したものとして、Ｓ７５０に移行し、出力層のユニットＵＮＵを、区間入力ベクトル信号Ｘｔｏｐ  に対する網出力信号ｎ（Ｘｔｏｐ）  として設定し、本処理を終了する。
【０１３０】
なお、上述の処理において、Ｓ６１０〜Ｓ７４０が区間伝達信号算出手段に相当し、更に、Ｓ６６０が第１区間信号算出手段、Ｓ６８０が第２区間信号算出手段、Ｓ６９０が共通区間抽出手段、Ｓ７００が区間伝達信号生成手段、Ｓ６７０が第１傾斜算出手段、Ｓ７３０が第２傾斜算出手段、Ｓ７２０が第３傾斜設定手段に相当する。
【０１３１】
また、本処理の処理内容の理解を助けるために、本処理による具体的な算出例を後述の［算出例２］の欄に示す。
以上、説明したように、本実施形態の神経回路網検証装置においては、各ユニットＵｊ  にて区間重み付け信号Ｎｅｔｊを、２種類の方法により算出し、その共通区間を用いることにより、重み付け信号ｎｅｔｊが実際に取り得る値域に、より近いものとなるように絞り込んでいる。
【０１３２】
従って、本実施形態の神経回路網検証装置によれば、より精度よく区間誤差Ｅが算出されるため、区間誤差Ｅが実際の誤差の上限から下限までの範囲より大きく算出されることに基づいて、区間入力ベクトル信号Ｘｔｏｐ  の再分割が不必要に行われてしまう回数が減少し、より短時間で検証を完了することができる。
【０１３３】
また、本実施形態によれば、区間重み付け信号Ｎｅｔｊ  に対する出力関数ｆ（ｘ）の傾斜Φｆ／ΦＮｅｔｊを、出力関数ｆ（ｘ）の特徴、即ち単調増加関数であり、且つｘ＝０にて微係数ｆ’（ｘ）が最大値となることを利用して設定しているので、計算量を減少させることができ、処理時間の短縮化を図ることができる。
［実験例］
次に、オートカーエアコン風量制御に用いられる神経回路網を、上記第２実施形態の区間誤差判定処理と、第３実施形態の区間網出力信号とが実行される神経回路網検証装置により検証を行った実験結果を説明する。本実験では、従来テストデータを１点づつ入力して網の検証を行う従来方法との比較を行い、検証に要する時間により性能の評価を行った。
【０１３４】
まず、図１０は、実験に用いられる神経回路網が適用された風量制御装置２０の概略構成である。
図１０に示すように、風量制御装置２０は、図示しない制御パネル上の設定等に基づいて決定される目標吹出口温度ＴＡＯ、及び車両に設置される各種センサによって検出される車内温度ＴＲ，外気温度ＴＡＭ，日射量ＴＳを入力信号とし、これら入力信号に基づいて顔側吹出口での風量レベルＶＡａを設定する第１のレベル設定部２２ａと、同様に、目標吹出口温度ＴＡＯ，車内温度ＴＲ，外気温度ＴＡＭ，日射量ＴＳを入力信号とし、これら入力信号に基づいて、足側吹出口の風量レベルＶＡｂを設定する第２のレベル設定部２２ｂと、両レベル設定部２２ａ，２２ｂが設定する風量レベルＶＡａ，ＶＡｂに従って、実際に風量を増減制御する風量制御ユニット２４とを備えている。
【０１３５】
そして、第１及び第２のレベル設定部２２ａ，２２ｂ（以下、総称して単にレベル設定部２２という）は、いずれも、神経回路網２６と、上記入力信号を０〜１の間の値に正規化して神経回路網２６に入力する前処理部２８と、神経回路網２６の出力を、０〜３１の間の値を持つ風量レベルＶＡに規格化する後処理部３０とを備えている。
【０１３６】
なお、神経回路網２６は、顔側（第１のレベル設定部２２ａ），足側（第２のレベル設定部２２ｂ）のいずれも、入力層，第１中間層，第２中間層，出力層からなる４層型であり、各層のニューロン（ユニット）数を、表１に示す通り設定してものを用いた。
【０１３７】
【表１】
0003550985.tif 000022
【０１３８】
また、各入力信号の入力範囲、及び分解能は、表２に示す通りである。
【０１３９】
【表２】
0003550985.tif 000023
【０１４０】
なお、ある入力信号Ｓの入力範囲の下限値をＶＬ，上限値をＶＨ，分解能をＤとした場合、その入力信号Ｓは、（４３）式で表される離散値を取る。
Ｓ＝ＶＬ＋α・ｉ  （ｉ＝０，１，…，Ｄ）                  （４３）
但し、α＝（ＶＨ−ＶＬ）／Ｄ
つまり、神経回路網２６に入力される可能性のある信号数は、各入力信号毎にそれぞれＤ＋１個であり、即ち入力される可能性のある入力信号の組み合わせは、本実験例の場合では、  （２１６＋１）×（２８＋１）×（２８＋１）×（２７＋１）≒５．５８×１０１１となる。
【０１４１】
このように構成された神経回路網２６を、それぞれ、２０３１４８個の教師データを用いて学習を行った後、各神経回路網２６を、本発明が適用された検証装置と、テストデータによる従来方法とにより検証を行い、その検証時間を比較した。
【０１４２】
なお、検証装置では、最初は、分割点を設けず、即ち全入力信号空間に対応する区間入力ベクトル信号Ｉｓを一つだけ生成して処理を開始した。
一方、従来方法は、入力される可能性のある全数（５．５８×１０１１個）のテストデータを順次神経回路網に入力して、網出力信号が許容誤差内にあるか否かを逐一比較すべきであるが、これは非常に時間がかかるため、２０３１４８個の入力信号の検証に要する時間を実測し、これに基づき全数の入力信号の検証に要する時間を予測して求めた。
【０１４３】
これらの比較結果を表３に示す。
【０１４４】
【表３】
0003550985.tif 000024
【０１４５】
このように、従来法では、入力される可能性のある全信号について漏れなく検証を行おうとすると、４００日以上費やす必要があり、実際上、このような検証は不可能である。これに対して本検証装置を用いれば、６．５分以内で検証が完了する。つまり、従来方法では、入力される可能性のある全信号に対して確実に動作を保証することが不可能な神経回路網を、本検証装置では、高速に検証できることが確認された。
［算出例１］
次に、区間教師出力信号ｔ（Ｉｓ）  の算出例を具体的に説明する。
【０１４６】
ここでは、入力信号が、２次元信号ｘ＝（ｘ１，ｘ２）∈［０，１］２  であり、教師出力信号ｔ（ｘ）が、次の（４４）式で定義される場合について説明する。
ｔ（ｘ）＝０．５＋０．５・ｓｉｎ｛π・（ｘ１＋ｘ２）｝                  （４４）
各入力信号が取り得る区間Ｘ１，Ｘ２は、
Ｘ１＝［ｘ１Ｌ，ｘ１Ｕ］⊂［０，１］
Ｘ２＝［ｘ２Ｌ，ｘ２Ｕ］⊂［０，１］
であるので、ｘ１＋ｘ２＝ｙ（∈Ｙ）とすると、
Ｙ＝［ｙＬ，ｙＵ］＝Ｘ１＋Ｘ２⊂［０，２］となる。
【０１４７】
ここで、（４４）式において、ｘの代わりにｙを用いると、（４４ａ）式にて表され、そのグラフは図１１に示すようなものとなる。
ｔ（ｙ）＝０．５＋０．５・ｓｉｎ｛π・ｙ｝                          （４４ａ）
図１１から明らかなように、０≦ｙ≦２において、ｔ（ｙ）は、ｙ＝０．５で最大値１、ｙ＝１．５で最小値０を取り、これ以外に極値を持たない。
【０１４８】
この性質を利用して区間Ｙ＝［ｙＬ，ｙＵ］に対するｔ（ｙ）の区間演算値ｔ（Ｙ）を、次のようにして求めることができる。
即ち、区間Ｙに、ｔ（ｙ）が極値となるｙ＝０．５及びｙ＝１．５のいずれも含まれていなければ、この区間で関数ｔ（ｙ）は単調増加、或いは単調減少となるため、ｔ（Ｙ）を（４５）式で求めることができる。
【０１４９】
一方、区間Ｙ＝［ｙＬ，ｙＵ］に、ｙ＝０．５  が含まれていれば最大値が決まるため（４６）式、またｙ＝１．５  が含まれていれば最小値が決まるため（４７）式、更に、ｙ＝０．５  及びｙ＝１．５  のいずれもが含まれていれば最大値，最小値の両方が決まるため（４８）式にて求めることができる。
【０１５０】
ｔ（Ｙ）＝［ｍｉｎ｛ｔ（ｙＬ），ｔ（ｙＵ）｝，ｍａｘ｛ｔ（ｙＬ），ｔ（ｙＵ）｝］    （４５）
ｔ（Ｙ）＝［ｍｉｎ｛ｔ（ｙＬ），ｔ（ｙＵ）｝，１］                      （４６）
ｔ（Ｙ）＝［０，ｍａｘ｛ｔ（ｙＬ），ｔ（ｙＵ）｝］                      （４７）
ｔ（Ｙ）＝［０，１］                                          （４８）
このように、定義関数ｔ（ｙ）の特徴を利用し、定義関数ｔ（ｙ）が単調増加または単調減少する区間と、関数が極値となる値をを含む区間とで場合分けすることにより、区間教師出力信号を少ない計算量で正確に求めることができる。
【０１５１】
具体的な数値を代入した算出例を以下に示す。
▲１▼Ｘ１＝［０．２，０．３］，Ｘ２＝［０．２，０．５］の場合（図１１（ａ），（４６）式参照）
Ｘ１＋Ｘ２＝Ｙ＝［０．４，０．８］  より  ｔ（Ｘ）＝［０．７９４，１］
▲２▼Ｘ１＝［０．３，０．８］，Ｘ２＝［０．８，０．９］の場合（図１１（ｂ），（４７）式参照）
Ｘ１＋Ｘ２＝Ｙ＝［１．１，１．７］  より  ｔ（Ｘ）＝［０，０．３４５］
▲３▼Ｘ１＝［０．５，０．７］，Ｘ２＝［０．３，０．５］の場合（図１１（ｃ），（４５）式参照）
Ｘ１＋Ｘ２＝Ｙ＝［０．８，１．２］  より  ｔ（Ｘ）＝［０．２０６，０．７９４］
［算出例２］
次に、第３実施形態にて説明した区間網出力信号算出処理について、その処理内容の理解を助けるための算出例を示す。
【０１５２】
ここでは、図１２に示すように、２個のユニットＵ１，Ｕ２からなる入力層（第１層），２個のユニットＵ３，Ｕ４からなる中間層（第２層），１個のユニットからなる出力層（第３層）を備えた神経回路網について、具体的に区間網出力信号ｎ（Ｘｔｏｐ）  を算出してみる。
【０１５３】
なお、シナプス結合、及び中間層，出力層の各ユニットにおけるバイアスは、
ω３１＝ω３２＝ω４１＝ω４２＝ω５３＝１
ω５４＝−１
ｂ３＝ｂ４＝ｂ５＝０
であり、初期区間入力ベクトル信号Ｘｔｏｐ  は、
Ｘｔｏｐ  ＝（ＸＰ１，ＸＰ２）＝（［０，１］，［０，１］）ｔ
であるとする。
▲１▼初期区間入力ベクトル信号Ｘｔｏｐ  の中央値ｘＣ  を求める（Ｓ６１０）。
【０１５４】
ｘＣ＝（ｘ１Ｃ，ｘ２Ｃ）ｔ＝（０．５，０．５）ｔ
▲２▼各ユニットＵｊについて、中央値ｘＣ  に対する重み付け信号ｎｅｔｊＣを求める（Ｓ６２０）。但し、ユニットＵ１，Ｕ２は入力をそのまま出力するので、
ｏ１＝ｏ１＝Ｏ．５  である。
【０１５５】
ｎｅｔ３Ｃ＝ｂ３＋ω３１・ｏ１＋ω３２・ｏ２＝０＋１×０．５＋１×０．５＝１．０
ｏ３Ｃ＝ｆ（ｎｅｔ３Ｃ）＝０．７３１０
ｎｅｔ４Ｃ＝ｂ４＋ω４１・ｏ１＋ω４２・ｏ２＝０＋１×０．５＋１×０．５＝１．０
ｏ４Ｃ＝ｆ（ｎｅｔ４Ｃ）＝０．７３１０
ｎｅｔ５Ｃ＝ｂ５＋ω５３・ｏ３＋ω５４・ｏ４＝０＋１×０．７３１０−１×０．７３１０＝０．０
ｏ５Ｃ＝ｆ（ｎｅｔ５Ｃ）＝０．５
▲３▼入力層のユニットＵ１，Ｕ２の区間出力信号Ｏ１，Ｏ２を初期化する（Ｓ６３０）。
【０１５６】
Ｏ１＝［０，１］    Ｏ２＝［０，１］
▲４▼入力層のユニットＵ１，Ｕ２での傾斜Φｏｍ／ΦＸＰｎを初期化する（Ｓ６４０）。
Φｏ１／ΦＸＰ１＝［１，１］          Φｏ１／ΦＸＰ２＝［０，０］
Φｏ２／ΦＸＰ１＝［０，０］          Φｏ２／ΦＸＰ２＝［１，１］
▲５▼ユニットＵ３  について（ｊ＝３）
・第１の区間Ｎｅｔ３＿１を求める（Ｓ６６０）。
【０１５７】
Ｎｅｔ３＿１＝ｂ３＋ω３１・Ｏ１＋ω３２・Ｏ２＝［０，１］＋［０，１］＝［０，２］
・傾斜Φｎｅｔ３／ΦＸＰｎを求める（Ｓ６７０）。
Φｎｅｔ３／ΦＸＰ１＝ω３１・（Φｏ１／ΦＸＰ１）＋ω３２・（Φｏ２／ΦＸＰ１）＝［１，１］
Φｎｅｔ３／ΦＸＰ２＝ω３１・（Φｏ１／ΦＸＰ２）＋ω３２・（Φｏ２／ΦＸＰ２）＝［１，１］
・第２の区間Ｎｅｔ３＿２を求める（Ｓ６８０）。
【０１５８】
Ｗ＝（Φｎｅｔ３／ΦＸＰ１）＊（ＸＰ１−ｘ１Ｃ）＋（Φｎｅｔ３／ΦＸＰ２）＊（ＸＰ２−ｘ２Ｃ）
＝１・０．５＋１・０．５＝１
Ｎｅｔ３＿２＝［ｎｅｔ３Ｃ−Ｗ，ｎｅｔ３Ｃ＋Ｗ］＝［１−１，１＋１］＝［０，２］
・重み付け信号Ｎｅｔ３を求める（Ｓ６９０）。
【０１５９】
Ｎｅｔ３＝Ｎｅｔ３＿１∩Ｎｅｔ３＿２＝［０，２］＝［ｎｅｔ３Ｌ，ｎｅｔ３Ｕ］
・区間出力信号を求める（Ｓ７００）。
Ｏ３＝ｆ（Ｎｅｔ３）＝［０．５，０．８８１］＝［ｆ（ｎｅｔ３Ｌ），ｆ（ｎｅｔ３Ｕ）］
・傾斜Φｆ／Φｎｅｔ３を求める（Ｓ７２０）。
【０１６０】
（Ｎｅｔ３＝［０，２］⊂［０，∞）であるため、（３９）式を用いる。）
Φｆ／ΦＮｅｔ３＝［０．１５０，０．２３１］
・傾斜Φｏ３／ΦＸＰｍを求める（Ｓ７３０）。
Φｏ３／ΦＸＰ１＝（Φｆ／ΦＮｅｔ３）・（Φｎｅｔ３／ΦＸＰ１）＝［０．１５０，０．２３１］
Φｏ３／ΦＸＰ２＝（Φｆ／ΦＮｅｔ３）・（Φｎｅｔ３／ΦＸＰ２）＝［０．１５０，０．２３１］
▲６▼ユニットＵ４  について（ｊ＝４）
・ユニットＵ３  と全く同様に計算され、以下の結果が得られる。
【０１６１】
Ｏ４＝ｆ（Ｎｅｔ３）＝［０．５，０．８８１］
Φｏ４／ΦＸＰ１＝（Φｆ／ΦＮｅｔ４）・（Φｎｅｔ４／ΦＸＰ１）＝［０．１５０，０．２３１］
Φｏ４／ΦＸＰ２＝（Φｆ／ΦＮｅｔ４）・（Φｎｅｔ４／ΦＸＰ２）＝［０．１５０，０．２３１］
▲７▼ユニットＵ５  について（ｊ＝５）
・第１の区間Ｎｅｔ５＿１を求める（Ｓ６６０）。
【０１６２】
Ｎｅｔ５＿１＝ｂ５＋ω５３・Ｏ３＋ω５４・Ｏ４＝［−０．３８１，０．３８１］
・傾斜Φｎｅｔ５／ΦＸＰｎを求める（Ｓ６７０）。
0003550985.tif 000025
・第２の区間Ｎｅｔ５＿２を求める（Ｓ６８０）。
【０１６３】
0003550985.tif 000026
・重み付け信号Ｎｅｔ５を求める（Ｓ６９０）。
【０１６４】
Ｎｅｔ５＝Ｎｅｔ５＿１∩Ｎｅｔ５＿２＝［−０．０８１，０．０８１］
・区間出力信号Ｏ５を求める（Ｓ７００）。
Ｏ５＝ｆ（Ｎｅｔ５）＝［０．４８０，０．５２０］
▲８▼区間網出力信号ｎ（Ｘｔｏｐ）  を設定する（Ｓ７５０）。
【０１６５】
ｎ（Ｘｔｏｐ）＝Ｏ５＝［０．４８０，０．５２０］
【図面の簡単な説明】
【図１】第１実施形態の神経回路網検証装置の概略構成を表すブロック図であある。
【図２】検証装置のＣＰＵが実行する検証処理を表すフローチャートである。
【図３】検証対象である神経回路網の構成を表す説明図である。
【図４】区間入力ベクトル信号の生成を方法を表す説明図である。
【図５】図２のＳ１８０にて実行される区間網出力信号算出処理の詳細を表すフローチャートである。
【図６】図２のＳ２００にて実行される区間誤差判定処理の詳細を表すフローチャートである。
【図７】第２実施形態における区間誤差判定処理を表すフローチャートである。
【図８】第３実施形態における区間網出力信号算出処理を表すフローチャートである。
【図９】図８のＳ７２０にて実行される傾斜算出処理の詳細を表すフローチャートである。
【図１０】実験に用いられる神経回路網が適用された風量制御装置の概略構成を表すブロック図である。
【図１１】区間教師出力信号の算出例を表す説明図である。
【図１２】算出例２に用いられた神経回路網の構成図である。
【図１３】神経回路網の検証方法、及びその問題点を表す説明図である。
【図１４】本発明の効果を表す説明図である。
【図１５】区間誤差による判定方法を表す説明図である。
【図１６】区間誤差と臨界点との関係を表す説明図である。
【図１７】傾斜の定義を表す説明図である。
【図１８】下に凸な関数における傾斜の算出方法を表す説明図である。
【図１９】シグモイド関数、及びその微係数を表すグラフである。
【符号の説明】
２…神経回路網検証装置      ４…データファイル格納部
６…網構成部          ８…入力データ作成部    １０…検証実行部
１２…入力操作部      １４…表示部              ２０…風量制御装置
２２…レベル設定部    ２４…風量制御ユニット    ２６…神経回路網
２８…前処理部        ３０…後処理部
ＤＢＩ…初期区間入力ベクトルデータベース
ＤＢＯ…検証結果データベース        ＤＦＫ…検証データファイル
ＤＦＮ…神経回路網データファイル    ＮＥＴ…神経回路網
【図１】
0003550985.tif 000027
【図２】
0003550985.tif 000028
【図３】
0003550985.tif 000029
【図４】
0003550985.tif 000030
【図５】
0003550985.tif 000031
【図６】
0003550985.tif 000032
【図７】
0003550985.tif 000033
【図８】
0003550985.tif 000034
【図９】
0003550985.tif 000035
【図１０】
0003550985.tif 000036
【図１１】
0003550985.tif 000037
【図１２】
0003550985.tif 000038
【図１３】
0003550985.tif 000039
【図１４】
0003550985.tif 000040
【図１５】
0003550985.tif 000041
【図１６】
0003550985.tif 000042
【図１７】
0003550985.tif 000043
【図１８】
0003550985.tif 000044
【図１９】
0003550985.tif 000045