JP3550985B2 - 神経回路網の検証方法,検証装置及び記録媒体 - Google Patents
神経回路網の検証方法,検証装置及び記録媒体 Download PDFInfo
- Publication number
- JP3550985B2 JP3550985B2 JP33206897A JP33206897A JP3550985B2 JP 3550985 B2 JP3550985 B2 JP 3550985B2 JP 33206897 A JP33206897 A JP 33206897A JP 33206897 A JP33206897 A JP 33206897A JP 3550985 B2 JP3550985 B2 JP 3550985B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- section
- input
- output
- input signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、神経回路網出力信号と教師出力信号との誤差が、許容範囲内となるようにシナプス荷重を設定する神経回路網の検証方法,検証装置及び記録媒体に関する。
【0002】
【従来の技術】
従来より、伝達信号を生成するユニットをそれぞれ一つ以上備えた入力層,中間層,出力層と、各層間のユニットを結合して伝達信号を伝送するシナプスとからなる神経回路網(ニューラルネットワークとも言う)が知られている。この神経回路網では、各シナプスがシナプス荷重を持ち、このシナプス荷重を学習処理によって適宜変更することにより所望の入出力特性が実現される。
【0003】
なお、神経回路網の学習は、教師入力信号を神経回路網に入力したときの網出力信号を計算し、この網出力信号と実現すべき特性を表す教師出力信号との比較結果に基づいて各シナプス荷重を変更して、教師出力信号と網出力信号との誤差、例えば、自乗誤差和が最小になるようにする処理である。
【0004】
そして、図13(a)に示すように、教師出力信号t(x)に対して、±εの範囲を許容範囲として、図13(b)に示すように、網出力信号n(x)と教師出力信号t(x)との誤差(n(x)−t(x))が、実際に取り得る全ての入力信号に対して、この許容範囲±ε内に収まる(|n(x)−t(x)|<ε)ように学習するのである。
【0005】
ところで、神経回路網は、パターン認識やデータ処理等に広く応用されているが、近年、空調機器等の制御への応用も増加している。このように、各種制御を行わせるために神経回路網を製品に組み込んだ場合、神経回路網に入力され得る任意の入力信号に対して、神経回路網から常に正しい出力信号が出力されることを保証する必要がある。
【0006】
ところが、学習によってシナプス荷重が設定される神経回路網では、その出力特性を、if−then ルール等の単純な論理にて記述できないので、内部解析による検証は困難である。このため、通常は、入力される可能性のある信号(テストデータ)を可能な限り多く準備し、これらの信号を実際に入力して、所望の出力信号が得られているか否かを逐一確認するという方法が行われていた。
【0007】
【発明が解決しようとする課題】
しかし、このように実際にテストデータを入力して検査を行う場合、神経回路網の動作が確実に保証されるのは、図13(c)に示すように、その検査ポイントxp のみであり、検査ポイントxp 間に存在する許容範囲から外れた部分ERを見落としてしまう可能性がある。これを防止するには、テストデータを増加させればよいが、テストデータを増やすほど、検証に時間がかかってしまうという問題があった。また、入力信号の種類の増加に応じて検査すべきポイント(範囲)は指数関数的に増大する。特に、入力信号が連続信号である場合、検査すべきポイントは無限に存在し、つまり、どれだけテストデータを増やしたとしても、殆どのポイントについては検査することができず、すべての入力信号に対しての保証を確実なものとすることができないという問題があった。
【0008】
本発明は、上記問題点を解決するために、入力される可能性のある任意の入力信号に対する神経回路網の動作を確実に保証できるようにすることを目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成するためになされた請求項1記載の神経回路網の検証方法では、入力層への各入力信号の値域をそれぞれ1次元の入力信号空間として、入力層へのM(Mは1以上の整数)次元の入力信号空間を複数の部分入力信号空間に分割し、この部分入力信号空間毎に、網出力信号と教師出力信号との誤差を判定することにより神経回路網を検証する。
【0010】
このように本発明では、テストデータによる検査のように入力信号空間内のあるポイントについて検査するのではなく、部分入力信号空間毎に検査(誤差を判定)するので、入力信号空間の全てを漏れなく検証できる。
即ち、図14は、2(M=2)個の入力信号x1∈X1,x2∈X2が形成する2次元の入力信号空間Xを模式的に表したものであり、本発明では、テストデータによる検査のように決められた検査ポイントxp∈X だけ(図14(a)参照)でなく、2次元的な広がりを持つ部分入力信号空間XP毎に検証する(図14(b)参照)ので、入力信号空間X内を漏れなく検証できるのである。
【0011】
そして、誤差の評価は、部分入力信号空間毎に、教師出力信号と網出力信号との誤差が取り得る値域を表す区間誤差を算出し、この区間誤差と、判定の基準となる許容範囲との包含関係を判定することで行うことができる。
【0012】
即ち、区間誤差には、その部分入力信号空間内のあらゆる入力信号(又はその組み合わせ)を用いて神経回路網を動作させた時の誤差の上限値及び下限値が含まれているので、図15(a)に示すように、この区間誤差E=[eL,eU]が全て許容範囲内にふくまれていれば(eL≧−ε 且つ eU≦ε)、その部分入力信号空間内に含まれるどのような入力信号(又はその組み合わせ)であっても、神経回路網の動作が保証されるのである。
【0013】
また、逆に、図15(b)に示すように、区間誤差Eが全く許容範囲内に含まれていなければ(eL>ε 又は eU<−ε)、その部分入力信号空間内に含まれるどのような入力信号(又はその組み合わせ)であっても、動作が保証されないことは明らかである。つまり、このような部分入力信号空間内の入力信号(又はその組み合わせ)に対して、学習をやり直す必要があることがわかる。
【0014】
そして、図15(c)に示すように、それ以外の場合、つまり区間誤差Eの一部が許容範囲外にあり、それ以外が許容範囲内にある場合は、その部分入力信号空間の入力信号(又はその組み合わせ)には、神経回路網の所望動作に適合するものと適合しないものとが混在していることになる。
【0015】
このため、本発明では、区間誤差の一部が許容範囲外にあると判定された場合には、部分入力信号空間が分割不足であるとして、その部分入力信号空間を、複数の部分入力信号空間に再分割し、該再分割により生成された部分入力信号空間毎に、その区間誤差と許容範囲との包含関係を再判定する操作を繰り返し行う。
【0016】
これにより、神経回路網の所望動作に適合しない部分入力信号空間の範囲を絞り込むことができ、例えば、学習をやり直す際には、その絞り込んだ部分入力信号空間について集中的に行えばよいため、より効果的に学習を行うことが可能となる。
【0017】
なお、図16に示すように、部分入力信号空間XP内に、網出力信号n(x)と教師出力信号t(x)との誤差が許容範囲の境界値と等しく(|n(x)−t(x)|=ε)なる点(臨界点という)よりわずかに大きな点を有する場合、分割不足であると判断され、部分入力信号空間の再分割が行われる。そして、この再分割により生成された部分入力信号空間では区間誤差Eが小さくなるが、いずれかの部分入力信号空間には必ず臨界点が含まれている。その結果、臨界点を含む部分入力信号空間で再分割が繰り返し行われることになり、計算量が増大するため、計算速度の低下を招くことになる。
【0018】
そこで、請求項2に記載のように、区間誤差の幅が許容範囲の幅より小さな限界幅以下である場合には、区間誤差の一部が許容範囲外にあると判定されたとしても、部分入力信号空間の再分割を禁止することが望ましい。
なお、再分割の禁止方法としては、再分割回数の上限を予め決めておくようにしてもよい。
【0019】
次に、請求項3記載の神経回路網の検証方法では、部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、入力層から出力層への信号伝送過程に従って各ユニット毎に、該ユニットにて生成される伝達信号が区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出して、出力層のユニットについて算出された区間伝達信号を、網出力信号が取り得る値域を表す区間網出力信号とし、この区間網出力信号に基づいて区間誤差を算出する。
【0020】
ここで、区間演算とは、上限値α,下限値βを取る変数の区間を[α,β]にて表す場合、2つの区間X=[xL,xU]、Y=[yL,yU]に対する加減乗除が(1)〜(4)(4a)(4b)式にて定義されたものである。
なお、実数aは、幅が0の区間[a,a]とみなされ、実数aと区間Xとの乗算が(5a)(5b)式にて定義され、区間Xの幅(以下、区間幅という)w(X)が(6)式にて定義される。
【0021】
例えば、関数h(x)=x2−x として変数xが0≦x≦1(即ち、区間X=[0,1]、x∈X)である場合、区間X内の変数xに対して関数h(x)が実際に取り得る値を計算すると、−1/4≦h(x)≦0となる。ここで変数xを区間Xに置き換えて区間演算を行うと、
h(X)=X 2 −X=[0,1] 2 − [0,1]=[0,1]−[0,1]=[-1,1]
となり、即ち[−1/4,0]⊂[−1,1]であるため、任意のx∈Xに対しh(x)∈h(X)が成立し、区間演算h(X)が関数h(x)の区間Xにおける上限,下限を与えることがわかる。
【0022】
この区間演算については、例えば、R.Baker Kearfott,「Rigourous Global Search:Continuous Problem」,KLUWER ACADEMIC PUBLISHERS(1996) (以下、文献1とよぶ)に詳述されているので、ここではこれ以上の説明は省略する。
つまり、区間演算を用いれば、区間入力信号から各ユニットが生成する伝達信号の上限,下限(即ち区間伝達信号)を、ひいては網出力信号と教師出力信号との誤差の上限,下限(即ち区間誤差)を実際に求めることができるのである。
【0023】
但し、上記の例からもわかるように、関数h(x)の区間Xにおける区間演算h(X)は、関数h(x)の区間Xにおける真の範囲を含むが、一般に区間幅は広がってしまうため、必ずしも関数の範囲を正確に計算できるとは限らない。
そして、実際の誤差の上限,下限と比較して区間誤差が大きすぎると、網出力信号が実際には誤差の許容範囲内にあっても、分割不足であると判定されてしまうことがあり、本来ならば必要のない再分割,再評価が行われ、計算時間が増大してしまうおそれがある。
【0024】
そこで、請求項4記載の神経回路網の検証方法では、入力層のユニットは、入力信号を、そのまま伝達信号として出力し、中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成し、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成する場合に、中間層及び出力層のユニットについては、前段のユニットから入力される区間伝達信号とシナプス荷重との積和に基づいて求められる第1の区間信号と、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第1の傾斜と区間入力信号との積和に基づいて求められる第2の区間信号との共通区間を求め、該共通区間を、重み付け信号が前記区間入力信号に対して取り得る値域を表す区間重み付け信号とする。そして、この区間重み付け信号と出力関数とに基づいて区間伝達信号を生成する。
【0025】
即ち、異なった2種類の求め方で、区間重み付け信号を求め、その共通区間を求めることにより、区間重み付け信号をより実際に近いものとしているのである。
ここで、第2の区間信号を求めるために用いられる傾斜とは、先の文献1にて、”slope” との用語で用いられている公知技術であり、文献1に詳述されているので、ここではその概略のみ説明する。
【0026】
即ち、関数h(x)について、その変数xの区間をX=[xL,xU]、区間X内の任意の内点をxC として、この区間X内にて、内点xC を通り、且つ関数h(x)を挟み込む2つの直線U(x),L(x)が存在すると仮定すると、これらは、次の(7)(8)式にて表される。
【0027】
U(x)=sU・(x−xC)+h(xC) (7)
L(x)=sL・(x−xC)+h(xC) (8)
但し、sU,sLは、区間Xにより定まる定数であり、sU>sLとすると、図17に示すように、
L(x)≦h(x)≦U(x) (x≧xC ) (9)
U(x)≦h(x)≦L(x) (x<xC ) (10)
となる。このとき、区間Xに対してh(x)が取り得る値域の半区間幅Wを(11)式にて定義すると、区間Xにて(12)の関係が成立する。
【0028】
W=max(|sL|,|sU|)・max(xU−xC,xC−xL) (11)
h(xC)−W≦h(x)≦h(xC)+W (12)
つまり、区間Xに対して関数h(x)が取り得る値域は、
h(X)=[h(xC)− W,h(xC)+W] (13)
となる。そして、この時の区間Xに対する関数h(x)の傾斜が、(14)式にて定義されるのである。
【0029】
【数1】
【0030】
ここで、区間X=[xL,xU],内点xC ,傾斜Φh/ΦXが与えられたとき、半区間幅Wを求める演算子を*で示すことにする。つまり演算子*は(15)式にて定義される。
【0031】
【数2】
【0032】
上記説明では、理解を容易にするため、1変数関数を用いて説明したが、M次元多変数関数h(x)=h(x1,x2,…,x M ) ,各変数に対応する区間ベクトルX=(X1 X2 … X M )t 、内点xC=(x1 C,x2 C,…,x M C )t∈Xに対しても、(16)式に示すように、各区間ベクトルの要素毎に同様な傾斜を定義でき、この傾斜を用いて半区間幅Wを(17)式にて求めることができる。
【0033】
【数3】
【0034】
ところで、請求項5に記載のように、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第1の傾斜は、例えば、前段のユニットから入力される伝達信号が区間入力信号に対して取り得る変化率の値域を表す第2の傾斜とシナプス荷重との積和により算出でき、また、後段へ出力する伝達信号についての第2の傾斜は、例えば、前記前記出力関数の傾きが前記重み付け信号に対して取り得る値域を表す第3の傾斜と前記第1の傾斜との積により算出できる。
【0035】
そして、請求項6に記載のように、前記出力関数f(x)がシグモイド関数または双曲線関数であり、該出力関数f(x)の導関数をf'(x) ,区間重み付け信号を[NL,NU],その内点をNCとするとき、第3の傾斜は、NU<0であれば[{f(NL)−f(NC)}/{NL−NC},{f(NU)−f(NC)}/{NU−NC}]、NL≧0であれば[{f(NU)−f(NC)}/{NU−NC},{f(NL)−f(NC)}/{NL−NC}]、それ以外であれば[min{f'(NL),f'(NU)},f'(0)]に設定することができる。
【0036】
即ち、区間X=[xL,xU]における任意の関数h(x)の傾斜Φh/ΦXを求める場合、一般に次の▲1▼▲2▼が成立することが知られている。
▲1▼ 区間Xにおいて関数h(x)が、単調増加(h’(x)>0) または単調減少(h’(x)<0) し、区間Xでの関数h(x)の微係数h’(x) の上限,下限がgU,gLで与えられている場合、傾斜Φh/ΦXを、[gL,gU]としてよい。
▲2▼ 区間Xにおいて関数h(x)が上に凸(h”(x)>0)または下に凸(h”(x)<0)である場合、図18(ここでは下に凸な場合を示す)から明らかなように、傾斜Φh/ΦX=[sL,sU]は、以下の(18)(19)式で与えられる。但し、区間Xの内点をxC とする。
【0037】
【数4】
【0038】
そして、出力関数として用いられるシグモイド関数f(x)=1/{1+exp(−x)}、及び双曲線関数f(x)=tanh(x)は、図19に示すように、いずれも、単調増加関数であり、且つx≧0では上に凸,x<0では下に凸となり、しかも、微係数f’(x) がx=0にて最大値をとるという特性を有する。なお、図19では、(a)にシグモイド関数f(x)、(b)にその微係数f’(x) のグラフについてのみ示したが、双曲線関数もほぼ同様のグラフとなる。
【0039】
このため、区間重み付け信号が、x=0を跨がない場合は上記▲2▼の性質を用い、また、区間重み付け信号がx=0を跨ぐ場合には上記▲1▼の性質を用いて、区間重み付け信号に対する出力関数の傾斜を求めることができるのである。
このように、本発明によれば、出力関数の傾斜が簡単に求められるため、計算時間の短縮を図ることができる。
【0040】
なお、上述した神経回路網の検証方法は、コンピュータシステムにて実行されるプログラムにより実現してもよい。この場合、請求項7記載のように、このようなプログラムは、例えば、フロッピーディスク,光磁気ディスク,CD−ROM,ハードディスク等のコンピュータシステムによる読取が可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ROMやバックアップRAMをコンピュータシステムによる読取が可能な記録媒体として前記プログラムを記録しておき、このROMあるいはバックアップRAMをコンピュータシステムに組み込んで用いてもよい。
【0041】
次に、請求項8記載の神経回路網の検証装置では、区間分割手段が、入力層への各入力信号の値域をそれぞれ1次元の入力信号空間として、入力層へのM(Mは1以上の整数)次元の入力信号空間を部分入力信号空間に分割する。すると、この分割された部分入力信号空間毎に、区間網出力信号算出手段が、網出力信号が取り得る値域を表す区間網出力信号を算出し、区間教師出力信号算出手段が、教師出力信号が取り得る値域を表す区間教師出力信号を算出し、区間誤差算出手段が、区間網出力信号及び区間教師出力信号間の誤差が取り得る値域を表す区間誤差を算出する。そして、判定手段が、区間誤差と許容範囲との包含関係を判定する。
【0042】
また、判定手段により区間誤差の一部が許容範囲外にあると判定された部分入力信号空間を、区間再分割手段が、複数の部分入力信号空間に再分割する。即ち、この検証装置は、請求項1記載の検証方法を実現する手段を備えるものである。
【0043】
また次に、請求項9記載の神経回路網の検証装置では、区間誤差の幅が、許容範囲の幅より小さな限界幅以下である場合に、再分割禁止手段が、区間再分割手段による部分入力信号空間の再分割を禁止する。即ち、この検証装置は、請求項2記載の検証方法を実現する手段を備えるものである。
【0044】
更に、請求項10記載の神経回路網の検証装置では、区間伝達信号算出手段が、部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、入力層から出力層への信号伝送過程に従って、各ユニットにて生成される伝達信号が区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出する。そして、区間網出力信号算出手段は、この区間伝達信号算出手段により出力層のユニットについて算出された区間伝達信号を、網出力信号が取り得る値域を表す区間網出力信号とする。即ち、この検証装置は、請求項3記載の検証方法を実現する手段を備えるものである。
【0045】
また更に、請求項11記載の神経回路網の検証装置では、入力層のユニットは、入力信号を、そのまま伝達信号として出力し、中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成して、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成するものであるとして、第1区間信号算出手段が、前段のユニットから入力される区間伝達信号とシナプス荷重との積和に基づいて第1の区間信号を算出し、第2区間信号算出手段が、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第1の傾斜と区間入力信号との積和に基づいて第2の区間信号を算出する。
【0046】
そして、共通区間抽出手段が、第1及び第2の区間信号の共通区間を、重み付け信号が区間入力信号に対して取り得る値域を表す区間重み付け信号として設定し、区間伝達信号生成手段が、共通区間抽出手段により設定された区間重み付け信号と出力関数とに基づいて区間伝達信号を生成する。即ち、この検証装置は、請求項4記載の検証方法を実現する手段を備えるものである。
【0047】
また、請求項12記載の神経回路網の検証装置では、第1傾斜算出手段が、第1の傾斜を、前段のユニットからの伝達信号が区間入力信号に対して取り得る変化率の値域を表す第2の傾斜とシナプス荷重との積和により算出し、第2傾斜算出手段が、後段へ出力する伝達信号についての第2の傾斜を、出力関数の傾きが重み付け信号に対して取り得る値域を表す第3の傾斜と第1の傾斜との積により算出する。即ち、この検証装置は、請求項5記載の検証方法を実現する手段を備えるものである。
【0048】
また次に、請求項13記載の神経回路網の検証装置では、出力関数f(x)がシグモイド関数または双曲線関数であり、該出力関数f(x)の導関数をf'(x) ,区間重み付け信号を[NL,NU],その内点をNCとするとき、第3傾斜設定手段が、第3の傾斜を、NU<0であれば[{f(NL)−f(NC)}/{NL−NC},{f(NU)−f(NC)}/{NU−NC}]、NL≧0であれば[{f(NU)−f(NC)}/{NU−NC},{f(NL)−f(NC)}/{NL−NC}]、それ以外であれば[min{f'(NL),f'(NU)},f'(0)] に設定する。即ち、この検証装置は、請求項6記載の検証方法を実現する手段を備えるものである。
【0049】
このように、請求項8〜13記載の神経回路網の検証装置は、それぞれ請求項1〜6記載の検証方法を実現する装置であり、従って、これらの装置を用いて神経回路網の検証を行えば、上記検証方法について記述した通りの効果を得ることができる。
【0050】
【発明の実施の形態】
以下に本発明の実施形態を図面と共に説明する。
[第1実施形態]
図1は、本発明が適用された神経回路網検証装置2の概略構成を表すブロック図である。
【0051】
本実施形態の神経回路網検証装置2は、図1に示すように、検証すべき神経回路網の構造に関するデータ(シナプスの結合関係,シナプス荷重,出力関数の型など)からなる神経回路網データファイルDFN、及び検証すべき神経回路網への入力信号が取り得る値の範囲や教師出力信号を定義するデータ等からなる検証データファイルDFKを格納するデータファイル格納部4と、データファイル格納部4から神経回路網データファイルDFNを読み込んで、検証対象となる神経回路網NETを構成する網構成部6と、同じくデータファイル格納部4から検証データファイルDFKを読み込んで、後述する初期区間入力ベクトルデータベースDBIを作成する入力データ作成部8と、網構成部6が構成した神経回路網NET、及び入力データ作成部8が作成した初期区間入力ベクトルデータベースDBIに基づいて、神経回路網NETの検証を実行し、その検証結果に基づいて検証結果データベースDBOを作成する検証実行部10と、上記各部に対する各種指令を入力するためのキーボードやマウス等からなる入力操作部12と、入力操作部12を操作する手順や検証結果データベースDBOの内容等を表示するためのディスプレイ等からなる表示部14とを備えている。
【0052】
なお、本実施形態の検証装置2は、ワークステーション等、CPU,ROM,RAM,I/Oポートを中心に構成された周知の汎用計算機上に構成されており、網構成部6,入力データ作成部8,検証実行部10は、CPUが実行する処理として実現され、また、神経回路網NET、初期区間入力ベクトルデータベースDBI,検証結果データベースDBOは、RAM上に作成される。また、データファイル格納部4は、ハードディスクや磁気ディスク,フロッピーディスク等の外部記憶装置により構成されている。
【0053】
以下、CPUにて実行される網検証処理について、図2に示すフローチャートに沿って説明する。なお、本処理のプログラムは、予めROMに記憶されていてもよいし、図示しないフロッピーディスク等の外部記憶装置からRAMにロードするようにしてもよい。
【0054】
本処理が起動されると、まずステップ(以下、単にSとする)110では、入力操作部12を介して、神経回路網データファイルDFN及び検証データファイルDFKの各ファイル名、及び後述の処理で使用する許容誤差εが入力されたか否かを判断し、これらが入力されると、S120に移行する。
【0055】
S120では、S110にて入力されたファイル名に従って、データファイル格納部4から神経回路網データファイルDFNを読み込み、その内容に基づいて検証対象となる神経回路網NETをRAM上に構成する網構成部6としての処理を実行する。
【0056】
このとき作成される神経回路網NETは、図3に示すように、伝達信号を生成する合計NU個のユニットUj (j=1,2,…,NU)により構成された入力層(第1層),中間層(第2〜(NL−1)層),出力層(第NL層)と、伝達信号を伝送するために各層間のユニットUj を結合するシナプスとから構成される。
【0057】
なお、第i層(i=1,2,…,NL)は、それぞれMi 個(M1+M2+…+MNL=NU)のユニットで構成されており、特に、本実施形態では、入力層のユニット数をM1=M, 出力層のユニット数をMNL=1とする。但し、出力層のユニット数MNLは複数であってもよい。
【0058】
このうち入力層を構成するユニットUm (m=1,2,…,M)は、入力信号xm を、そのまま次層への伝達信号om として出力するように構成されている。また、中間層(第2〜(NL−1)層)を構成するユニットUn (n=M+1,M+2,…,NU−1)は、前層から入力される伝達信号,この伝達信号に対応して設定されるシナプス荷重,及び予め定義された出力関数を用いて次層への伝達信号を生成するように構成されている。
【0059】
即ち、第i層(=2,3,…,NL−1)のユニットUj では、第(i−1)層のユニットUk からの伝達信号ok に対するシナプス荷重をωjk,ユニットUj でのバイアスをbj ,ユニットUj に伝達信号ok を送るユニットUk の番号の集合をC(j)として、重み付け信号netjを(20)式にて算出し、更に、シグモイド関数からなる出力関数f(x)=1/{1+exp(−x)}を用いて、(21)式により、次層への伝達信号oj を生成するように構成されている。
【0060】
【数5】
【0061】
そして、出力層(第NL層)のユニットUNUは、中間層のユニットUn と同様に構成されたものであり、このユニットUNUにて生成された伝達信号oNUが、当該神経回路網NETの出力である網出力信号n(x)となる。
続くS130では、S110にて入力されたファイル名に従って、データファイル格納部4から検証データファイルDFKを読み込み、その内容に基づいて初期区間入力ベクトルデータベースDBIを作成する入力データ作成部8としての処理を実行する。
【0062】
この初期区間入力ベクトルデータベースDBIには、次のようにして作成される区間入力ベクトル信号Isが格納される。
即ち、まず神経回路網NETへの入力信号(即ち入力層のユニット数)がM個ある場合、各入力信号が取り得る値を0〜1の範囲に正規化し、この正規化した各入力信号をそれぞれ1次元の入力信号空間Xm⊂[0,1] (m=1〜M)として、M次元入力信号空間X(=X1×X2×…×XM⊂[0,1]M)を考える。但し、図4では、理解を容易にするため、M=2の場合を示す。
【0063】
そして、各入力信号空間Xm 毎に、それぞれ Nm+1個の分割点Gm l(l=0〜Nm )を(23)式の関係を満たすように設ける。
Gm 0(=0)<Gm 1<…<Gm Nm(=1) (23)
この分割点は、検証データファイルDFKに予め設定されているものとする。
【0064】
この分割点Gm lに基づき、1次元の各入力信号空間Xm を、
[Gm 0,Gm 1][Gm 1,Gm 2]…[Gm Nm−1,Gm Nm] (24)
という Nm個の部分入力信号空間に分割し、これに対応して、M次元入力信号空間Xを、(25)式に示すような、NPX(=N1・N2・…・Nm )個のM次元部分入力信号空間XPに分割する。但し、pm=0,1,…,Nm−1 である。
【0065】
これらの部分入力信号空間XPのそれぞれに対して、次のM次元区間入力ベクトル信号Is(s=1〜NPX)を生成する。
【0066】
このようにして生成した区間入力ベクトル信号Isを、特に初期区間入力ベクトル信号とよび、初期区間入力ベクトルデータベースDBIに格納する。
【0067】
続くS140では、神経回路網NETの検証開始を指示する検証開始指令が、入力操作部12から入力されたか否かを判断し、検証開始指令が入力されると、S150に進み、S130にて生成された初期区間入力ベクトルデータベースDBIから区間入力ベクトル信号Isを順番に読み込んで、スタックに積み込む。
【0068】
なお、スタックは、最後に入力したデータを最初に出力するいわゆるLIFO(Last In First Out) 型のメモリで、初期区間入力ベクトルデータベースDBI等と同様にRAM上に形成される。そして、以下では、スタックに最後に積み込まれてスタックの一番上(スタックトップという)にある区間入力ベクトル信号IsをXtop とし、次の(27)式にて表す。この式は、(26)式の記号を付け替えただけのものであり、(26)式と全く等価である。
【0069】
Xtop=([x1 L,x1 U][x2 L,x2 U]…[xM L,xM U])t (27)
また、以下では、区間入力ベクトル信号Xtop を構成する各要素[x1 L,x1 U][x2 L,x2 U]…[xM L,xM U]を区間要素と呼び、XP1,XP2,…,XPM とも表記する。
【0070】
次にS160にて、スタックトップの区間入力ベクトル信号Xtop を取り出して、続くS170では、この区間入力ベクトル信号Xtop に対応する区間教師出力信号t(Xtop)=[tL,tU] を算出し、更にS180では、同じくスタックトップの区間入力ベクトル信号Xtop に属する入力信号に対して、網出力信号n(x)が取り得る値域を表す区間網出力信号n(Xtop)=[nL,nU] を区間演算を用いて算出する。
【0071】
なお、区間教師出力信号t(Xtop) の算出方法については、例えば教師出力信号が関数により定義されている場合、この関数に区間演算を適用することで簡単に算出できる。詳しくは、後述の[算出例1]の欄にて具体的な例をあげて説明する。
【0072】
ここで、区間網出力信号n(Xtop)=[nL,nU] を算出する処理の詳細を、図5に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずS310では、入力層(第1層)の各ユニットUm (m=1,2,…,M)が出力する区間伝達信号Om を初期化する。具体的には、区間入力ベクトル信号Xtop の区間要素XPm=[xm L,xm U] をそのまま区間伝達信号Om として設定する。
【0073】
即ち、区間伝達信号Om は、区間要素XPm の内点を、ユニットUm (m=1,2,…,M)に入力した時に、このユニットUm から出力される伝達信号om が取り得る値域を表すものであり、入力層のユニットUm は、上述したように入力信号をそのまま伝達信号om として出力するからである。
【0074】
なお、通常の演算に用いられる信号(例えば、伝達信号om )と、区間演算に用いられる信号(例えば、区間伝達信号Om )とを区別するために、区間演算に用いられる信号については、その先頭を大文字で表す。
次にS320では、ユニットUj を識別するためのカウンタjを、中間層で最も番号の小さいユニットを指示するようM+1に設定し、続くS330では、ユニットUj について、次の(28)式に従って区間重み付け信号Netj を算出する。なお、bj ,wjk,C(j)は、先の(20)式にて説明したのと同じものである。
【0075】
【数6】
【0076】
続くS340では、出力関数f(x)の変数xの代わりに、S330にて算出した区間重み付け信号Netj=[netj L,netj U] を用いて区間演算を行うことにより、区間入力ベクトル信号Xtop に対するユニットUj での区間伝達信号Oj を算出する。
【0077】
なお、本実施形態では、出力関数f(x)として、単調増加関数であるシグモイド関数を用いているので、区間伝達信号Oj=[f(netj L),f(netj U)] となる。S350では、カウンタjをインクリメントし、S360にてカウンタjの値が、神経回路網NETの全ユニット数NU以下であるか否かを判断する。そして、肯定判断された場合は、S330に戻って、次のユニットUj について区間伝達信号Oj の算出を行う。
【0078】
一方、S360にて否定判定された場合、即ち、神経回路網NETの中間層及び出力層(第2〜NL層)の全てのユニットUj についての区間伝達信号Oj の算出を終了した場合には、S370に移行し、出力層(第NL層)のユニットUNUでの区間伝達信号ONUを、区間入力ベクトル信号Xtop に対する区間網出力信号n(Xtop) として設定し、本処理を終了する。
【0079】
なお、上述の区間入力ベクトル信号Xtop に対する区間網出力信号n(Xtop) の算出処理は、公知技術である実数入力ベクトル信号xに対する網出力信号n(x)の算出処理(例えば、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)を参照)に対して、区間演算を適用したものであり、各種演算が区間演算になっている点が異なるだけで、その他の全体の手順等は、網出力信号n(x)の算出処理と全く同様である。
【0080】
その詳細は、H.Ishibuch and H.Tanaka,”An Extension of the BP Algorithm to Interval Input Vectors:Learning form Numerical Data and Expert’s Knowledge”, Int, Joint Conf. on Neural Networks, Singapore, pp.1588−1593,1991 に記載されている。
【0081】
次に、図2に示すフローチャートに戻り、S190では、S170にて算出された区間教師出力信号t(Xtop) と、S180にて算出された区間網出力信号n(Xtop) とから、区間誤差E=e(Xtop)=[eL,eU] を(50)式により区間演算を用いて算出する。
【0082】
続くS200では、S190にて算出した区間誤差Eと、先のS110にて入力された許容誤差εとにより判定処理を行った後、S210に進む。
【0083】
ここで、この判定処理の詳細を、図6に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずS410では、区間誤差Eのすべてが、許容誤差範囲[−ε,ε]に包含されているか否かを判断し、肯定判定された場合はS420に移行して、検証結果を「可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶し、本処理を終了する。
【0084】
一方、S420にて、否定判定された場合はS430に移行し、今度は、区間誤差Eが、その全てが開区間(−∞,−ε)又は開区間(ε,+∞)に包含されているか否か、即ち許容誤差範囲[−ε,ε]には全く包含されていないか否かを判断する。そして、肯定判断された場合はS440に移行して、検証結果を「不可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶し、本処理を終了する。
【0085】
またS430でも否定判定された場合、即ち、区間誤差Eの一部のみが許容誤差範囲[−ε,ε]に包含されている場合は、「分割不足」であるとしてS450に移行し、この区間入力ベクトル信号Xtop を分割して、続くS460にて、この分割により生成された新たな区間入力ベクトル信号Isを、全てスタックに積み込んで本処理を終了する。
【0086】
ところで、S450における区間入力ベクトル信号 Xtop=([x1 L,x1 U][x2 L,x2 U]…[xM L,xM U])t の分割は、例えば、いずれか一つのの区間要素[xm L,xm U](m=1〜M)を選択し、その内点xm C∈[xm L,xm U]を用いて、(29a)(29b)に示すように2分割すればよい。
【0087】
IL=([x1 L,x1 U]…[xm L,xm C]…[xM L,xM U])t (29a)
IU=([x1 L,x1 U]…[xm C,xm U]…[xM L,xM U])t (29b)
なお、内点xm Cは、例えば、区間要素[xm L,xm U]の中点((xm L+xm U)/2)に設定するのが簡単であるが、これに限らず前記区間内であればどのようなものに設定してもよい。また、2分割に限らず、3分割以上にしてもよい。そして、同じ区間入力ベクトル信号に対して繰り返し分割が行われる場合には、分割毎に選択する区間要素を適宜変えていくようにすることが望ましい。
【0088】
次に図2に示すフローチャートに戻り、S210では、スタックが空になっているか否かを判断し、否定判定された場合、即ちスタックに処理すべき区間入力ベクトル信号Isが残されている場合、S160に戻り、S160〜S210までの処理をスタックが空になるまで繰り返し実行する。
【0089】
そして、S210にて肯定判断された場合、即ち、スタックに積まれた全ての区間入力ベクトル信号Isについて、区間誤差の判定処理を終了した場合には、S220に移行し、検証結果データベースDBOの記録内容を、表示部14に表示させた後、本処理を終了する。
【0090】
なお、本処理において、S130が区間分割手段、S170が区間教師出力信号算出手段、S180が区間網出力信号算出手段、S190が区間誤差算出手段、S200が判定手段、S450が区間再分割手段、S310〜S360が区間伝達信号算出手段に相当する。
【0091】
以上、説明したように、本実施形態の神経回路網検証装置2においては、M次元入力信号空間Xを部分入力信号空間XP(区間入力ベクトル信号Xtop )に分割し、この部分入力信号空間XP毎に、区間演算を用いて、網出力信号n(x)の上限値,下限値を含んだ区間網出力信号n(Xtop) と、区間教師出力信号t(Xtop) との誤差を表す区間誤差E(=e(Xtop)) を算出し、この区間誤差Eと許容誤差範囲[−ε,ε]との包含関係を比較することにより、誤差の判定を行っている。
【0092】
このように、本実施形態の神経回路網検証装置2によれば、区間演算を用いて、部分入力信号空間XPに属する全ての入力信号(又はその組み合わせ)について、一度にまとめて検証しているので、従来のテストデータにより個々の入力信号毎に検証する場合と比較して、短時間で検証することができる。しかも、入力信号が離散値ではなく、検証すべきポイントが無限に存在する連続値を取る場合にも適用できるため、入力信号空間Xに属する全ての入力信号(又はその組み合わせ)について、神経回路網NETの動作を確実に保証することができる。
【0093】
また、本実施形態の神経回路網検証装置2においては、区間入力ベクトル信号Xtop についての検証結果が「分割不足」であれば、その区間入力ベクトル信号Xtop を再分割してスタックに積み、分割された区間入力ベクトル信号毎に検証処理を再度実行するようにされている。
【0094】
従って、検証結果が「不可」となる区間入力ベクトル信号Isの範囲を絞り込むことができ、神経回路網NETを再学習する際に、教師データを増やすべきポイントを的確に知ることができるため、効率よく学習を行わせることができる。ところで、神経回路網NETを検証後、機器に組み込んで使用する際、神経回路網NETの計算を固定小数点演算CPUで実行する場合は、小数点の位置により計算精度が変わってしまう。
【0095】
しかし、本実施形態の神経回路網検証装置2によれば、区間演算によって、処理の過程で表れる計算値の上限値,下限値が明らかになるため、整数部に必要最小限のビット数が割り当てられるように小数点の位置を決めることができ、CPUに精度よく計算を行わせることができるため、神経回路網NETの能力を最大限に引き出すことができる。
【0096】
なお、上記実施例では、神経回路網として階層型のモデルを用いたが、神経回路網出力信号の上限値,下限値を計算できるものであれば、他のモデルを用いてもよい。
[第2実施形態]
次に、第2実施形態について説明する。
【0097】
本実施形態の神経回路網検証装置は、第1実施形態のものとは、S200にて実行される区間誤差判定処理の処理内容が一部異なるだけで、それ以外の構成や処理は全く同様であるため、この区間誤差判定処理についてのみ、図7に示すフローチャートに沿って説明する。
【0098】
本処理が起動されると、まず、S510〜S540では、第1実施形態におけるS410〜S440と全く同様に、区間誤差E=e(Xtop)=[eL,eU] のすべてが、許容誤差範囲[−ε,ε]に包含されていれば、検証結果を「可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶(S510−YES,S520)した後、本処理を終了し、一方、区間誤差Eの全てが、許容誤差範囲[−ε,ε]には全く包含されていなければ、検証結果を「不可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶(S510−YES,S530−YES,S540)した後、本処理を終了し、それ以外の場合(S530−NO)は、S550へ移行する。
【0099】
そしてS550では、区間誤差Eについての区間誤差幅WEを(30)式にて算出し、続くS560にて、この区間誤差幅WEが、予め設定された限界値αε(0<α<1)より小さいか否かを判断する。
WE=W(e(Xtop))=eU−eL (30)
このS560にて肯定判断された場合は、S570に移行して、区間入力ベクトル信号Xtop に臨界点が含まれる旨を表すため、検証結果を「臨界点」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶し、本処理を終了する。
【0100】
一方、S560にて否定判定された場合は、「分割不足」であるとして、S580に移行し、以下、第1実施形態におけるS450,S460と同様に、区間入力ベクトル信号Xtop を分割し(S580)、この分割により生成され区間入力ベクトル信号IL,IUをスタックに積んで(S590)、本処理を終了する。
【0101】
なお、本処理においてS550,S560が再分割禁止手段に相当する。
このように、本実施形態においては、検証結果が「可」でも「不可」でもない場合に、区間誤差幅WEが限界値αε以下であれば、区間誤差Eは臨界点を含むものとして、区間入力ベクトル信号Xtop をそれ以上に再分割することを禁止しているので、臨界点を含む区間入力ベクトル信号Xtop の分割が不必要に繰り返されてしまうことを防止でき、ひいては処理速度の低下を確実に防止できる。
[第3実施形態]
次に、第3実施形態について説明する。
【0102】
本実施形態の神経回路網検証装置は、第1及び第2実施形態のものとは、S180にて実行される区間網出力信号算出処理の処理内容が異なるだけで、それ以外の構成や処理は全く同様であるため、この区間網出力信号算出処理についてのみ、図8に示すフローチャートに沿って説明する。
【0103】
本処理が起動されると、まずS610では、区間入力ベクトル信号 Xtop=([x1 L,x1 U][x2 L,x2 U]…[xM L,xM U])t の中央点xC=(x1 C,x2 C,…,xM C)tを(31)式により算出する。
xm C=(xm L+xm U)/2 (m=1,2,…,M) (31)
続くS620では、神経回路網NETを構成する全てのユニットUj について、この中央点xC に対する重み付け信号netjを算出する。
【0104】
具体的には、図5に示した区間網出力信号算出処理と同様の手順で算出することができる。但し、区間入力ベクトル信号Xtop ,区間伝達信号Oj ,区間重み付け信号Netj の代わりに、中央点xC ,伝達信号oj ,重み付け信号netjを用いて、区間演算ではなく通常の演算にて処理を実行することにより、S330にて算出される値を用いればよい。なお、本ステップの処理により算出された、ユニットUj における重み付け信号を、以下では、netj C と表記する。
【0105】
次にS630では、第1実施形態におけるS300と全く同様に、入力層の各ユニットUm (m=1,2,…,M)の区間伝達信号Om を初期化する。即ち、区間入力ベクトル信号Xtop の各区間要素XPm をそのまま区間伝達信号Om として設定する。
【0106】
続くS640では、入力層の各ユニットUm 毎に、各区間要素XPn (n=1,2,…,M)に対する伝達信号om(m=1,2,…,M) の傾斜Φom/ΦXPnを(32)式に従って初期化する。
【0107】
【数7】
【0108】
このように初期化するのは、入力層のユニットUm には、区間要素XPm のみが入力され、ユニットUm の伝達信号om は、m≠nである他の区間要素XPn とは関係なく、区間要素XPm のみにより決まるためである。
なお、この傾斜Φom/ΦXPnは、本発明における第2の傾斜に相当する。
【0109】
S650,S660は、第1実施形態におけるS320,S330と全く同様に、カウンタjをM+1に設定(S650)した後、ユニットUj についての区間重み付け信号Netj を算出(S660)する。但し、ここでは、このS660にて算出される区間重み付け信号を第1の区間Netj_1とする。
【0110】
続くS670では、同じくユニットUj について、区間要素XPm (m=1,2,…,M)毎に、区間要素XPm に対する重み付け信号netjの傾斜Φnetj/ΦXPm を(33)式に従って算出する。以下では、その要素を(34)式にて表記する。
【0111】
【数8】
【0112】
なお、この傾斜Φnetj/ΦXPn が、本発明における第1の傾斜に相当する。
続くS680では、S670にて求めた傾斜Φnetj/ΦXPm に基づき、ユニットUj の区間重み付け信号Netj を算出する。但し、ここでは、本ステップで算出される区間重み付け信号を第2の区間Netj_2とする。
【0113】
即ち、(35)式により半区間幅Wを算出し、この半区間幅Wと、S620にて算出した中央点xC に対する重み付け信号netj Cとを用いて、(36)式にて表される区間を第2の区間Netj_2として設定するのである。
【0114】
【数9】
【0115】
そして、S690では、S660にて求めた第1の区間Netj_1、及びS680にて求めた第2の区間Netj_2に基づき、両者の共通区間をユニットUj の区間重み付け信号Netj に設定する。
即ち、Netj_1=[net1L,net1U],Netj_2=[net2L,net2U] とすると、区間重み付け信号Netj は、次の(37)式にて表記される。
【0116】
続くS700では、S690にて求めた区間重み付け信号Netj を用いて、第1実施形態におけるS340と全く同様に、区間入力ベクトル信号Xtop に対するユニットUj の区間伝達信号Oj を算出する。
【0117】
S710では、カウンタjの値が、神経回路網NETのユニット総数NUより小さいか否かを判断し、肯定判定された場合は、現在処理中のユニットUj が、中間層(第2〜NL−1層)を構成するものであるとしてS720に移行する。S720では、S690にて求められた区間重み付け信号Netj に対する出力関数f(x)の傾斜Φf/ΦNetj を算出する。なお、この傾斜Φf/ΦNetj が本発明における第3の傾斜に相当する。
【0118】
ここで、傾斜Φf/ΦNetj を算出する処理の詳細を、図9に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずS810では、先のS690にて求めた区間重み付け信号Netj の全範囲が、出力関数(シグモイド関数)f(x)が下に凸である区間(−∞,0]に包含されているか否かを判断する。そして、肯定判定された場合は、S820に移行して、(38)式に従って傾斜Φf/ΦNetj を設定し、本処理を終了する。
【0119】
【数10】
【0120】
一方、S810にて否定判定された場合は、S830に移行し、今度は、区間重み付け信号Netj の全範囲が、出力関数f(x)が上に凸である区間[0,+∞)に包含されているか否かを判断する。そして、肯定判定された場合は、S840に移行して、(39)式に従って傾斜Φf/ΦNetj を設定し、本処理を終了する。
【0121】
【数11】
【0122】
またS830でも否定判定された場合は、S850に移行し、区間重み付け信号Netj が、出力関数f(x)が上に凸である区間と下に凸である区間との両方に渡っている、即ち、微係数f’(x) が最大値となる0を跨いだ区間となっているので、(40)式に従って傾斜Φf/ΦNetj を設定し、本処理を終了する。
【0123】
【数12】
【0124】
以下では、このS720にて求められた傾斜Φf/ΦNetj を(41)式にて表記する。
【0125】
【数13】
【0126】
次に、図8に示すフローチャートに戻り、S730では、各区間要素XPm (m=1,2,…,M)毎に、区間要素XPm に対する当該ユニットUj の伝達関数oj の傾斜Φoj/ΦXPm(本発明における第2の傾斜に相当する)をそれぞれ算出する。
【0127】
即ち、S670にて算出された傾斜Φnetj/ΦXPm 、及びS720にて算出された傾斜Φf/ΦNetj を用いて、(42)式に従って算出する。
【0128】
【数14】
【0129】
続くS740では、カウンタjをインクリメント後、S660に戻り、次のユニットUj に対する処理を行う。
一方、先のS710にて、否定判定された場合は、全てのユニットUj について処理を終了したものとして、S750に移行し、出力層のユニットUNUを、区間入力ベクトル信号Xtop に対する網出力信号n(Xtop) として設定し、本処理を終了する。
【0130】
なお、上述の処理において、S610〜S740が区間伝達信号算出手段に相当し、更に、S660が第1区間信号算出手段、S680が第2区間信号算出手段、S690が共通区間抽出手段、S700が区間伝達信号生成手段、S670が第1傾斜算出手段、S730が第2傾斜算出手段、S720が第3傾斜設定手段に相当する。
【0131】
また、本処理の処理内容の理解を助けるために、本処理による具体的な算出例を後述の[算出例2]の欄に示す。
以上、説明したように、本実施形態の神経回路網検証装置においては、各ユニットUj にて区間重み付け信号Netjを、2種類の方法により算出し、その共通区間を用いることにより、重み付け信号netjが実際に取り得る値域に、より近いものとなるように絞り込んでいる。
【0132】
従って、本実施形態の神経回路網検証装置によれば、より精度よく区間誤差Eが算出されるため、区間誤差Eが実際の誤差の上限から下限までの範囲より大きく算出されることに基づいて、区間入力ベクトル信号Xtop の再分割が不必要に行われてしまう回数が減少し、より短時間で検証を完了することができる。
【0133】
また、本実施形態によれば、区間重み付け信号Netj に対する出力関数f(x)の傾斜Φf/ΦNetjを、出力関数f(x)の特徴、即ち単調増加関数であり、且つx=0にて微係数f’(x)が最大値となることを利用して設定しているので、計算量を減少させることができ、処理時間の短縮化を図ることができる。
[実験例]
次に、オートカーエアコン風量制御に用いられる神経回路網を、上記第2実施形態の区間誤差判定処理と、第3実施形態の区間網出力信号とが実行される神経回路網検証装置により検証を行った実験結果を説明する。本実験では、従来テストデータを1点づつ入力して網の検証を行う従来方法との比較を行い、検証に要する時間により性能の評価を行った。
【0134】
まず、図10は、実験に用いられる神経回路網が適用された風量制御装置20の概略構成である。
図10に示すように、風量制御装置20は、図示しない制御パネル上の設定等に基づいて決定される目標吹出口温度TAO、及び車両に設置される各種センサによって検出される車内温度TR,外気温度TAM,日射量TSを入力信号とし、これら入力信号に基づいて顔側吹出口での風量レベルVAaを設定する第1のレベル設定部22aと、同様に、目標吹出口温度TAO,車内温度TR,外気温度TAM,日射量TSを入力信号とし、これら入力信号に基づいて、足側吹出口の風量レベルVAbを設定する第2のレベル設定部22bと、両レベル設定部22a,22bが設定する風量レベルVAa,VAbに従って、実際に風量を増減制御する風量制御ユニット24とを備えている。
【0135】
そして、第1及び第2のレベル設定部22a,22b(以下、総称して単にレベル設定部22という)は、いずれも、神経回路網26と、上記入力信号を0〜1の間の値に正規化して神経回路網26に入力する前処理部28と、神経回路網26の出力を、0〜31の間の値を持つ風量レベルVAに規格化する後処理部30とを備えている。
【0136】
なお、神経回路網26は、顔側(第1のレベル設定部22a),足側(第2のレベル設定部22b)のいずれも、入力層,第1中間層,第2中間層,出力層からなる4層型であり、各層のニューロン(ユニット)数を、表1に示す通り設定してものを用いた。
【0137】
【表1】
【0138】
また、各入力信号の入力範囲、及び分解能は、表2に示す通りである。
【0139】
【表2】
【0140】
なお、ある入力信号Sの入力範囲の下限値をVL,上限値をVH,分解能をDとした場合、その入力信号Sは、(43)式で表される離散値を取る。
S=VL+α・i (i=0,1,…,D) (43)
但し、α=(VH−VL)/D
つまり、神経回路網26に入力される可能性のある信号数は、各入力信号毎にそれぞれD+1個であり、即ち入力される可能性のある入力信号の組み合わせは、本実験例の場合では、 (216+1)×(28+1)×(28+1)×(27+1)≒5.58×1011となる。
【0141】
このように構成された神経回路網26を、それぞれ、203148個の教師データを用いて学習を行った後、各神経回路網26を、本発明が適用された検証装置と、テストデータによる従来方法とにより検証を行い、その検証時間を比較した。
【0142】
なお、検証装置では、最初は、分割点を設けず、即ち全入力信号空間に対応する区間入力ベクトル信号Isを一つだけ生成して処理を開始した。
一方、従来方法は、入力される可能性のある全数(5.58×1011個)のテストデータを順次神経回路網に入力して、網出力信号が許容誤差内にあるか否かを逐一比較すべきであるが、これは非常に時間がかかるため、203148個の入力信号の検証に要する時間を実測し、これに基づき全数の入力信号の検証に要する時間を予測して求めた。
【0143】
これらの比較結果を表3に示す。
【0144】
【表3】
【0145】
このように、従来法では、入力される可能性のある全信号について漏れなく検証を行おうとすると、400日以上費やす必要があり、実際上、このような検証は不可能である。これに対して本検証装置を用いれば、6.5分以内で検証が完了する。つまり、従来方法では、入力される可能性のある全信号に対して確実に動作を保証することが不可能な神経回路網を、本検証装置では、高速に検証できることが確認された。
[算出例1]
次に、区間教師出力信号t(Is) の算出例を具体的に説明する。
【0146】
ここでは、入力信号が、2次元信号x=(x1,x2)∈[0,1]2 であり、教師出力信号t(x)が、次の(44)式で定義される場合について説明する。
t(x)=0.5+0.5・sin{π・(x1+x2)} (44)
各入力信号が取り得る区間X1,X2は、
X1=[x1 L,x1 U]⊂[0,1]
X2=[x2 L,x2 U]⊂[0,1]
であるので、x1+x2=y(∈Y)とすると、
Y=[yL,yU]=X1+X2⊂[0,2]となる。
【0147】
ここで、(44)式において、xの代わりにyを用いると、(44a)式にて表され、そのグラフは図11に示すようなものとなる。
t(y)=0.5+0.5・sin{π・y} (44a)
図11から明らかなように、0≦y≦2において、t(y)は、y=0.5で最大値1、y=1.5で最小値0を取り、これ以外に極値を持たない。
【0148】
この性質を利用して区間Y=[yL,yU]に対するt(y)の区間演算値t(Y)を、次のようにして求めることができる。
即ち、区間Yに、t(y)が極値となるy=0.5及びy=1.5のいずれも含まれていなければ、この区間で関数t(y)は単調増加、或いは単調減少となるため、t(Y)を(45)式で求めることができる。
【0149】
一方、区間Y=[yL,yU]に、y=0.5 が含まれていれば最大値が決まるため(46)式、またy=1.5 が含まれていれば最小値が決まるため(47)式、更に、y=0.5 及びy=1.5 のいずれもが含まれていれば最大値,最小値の両方が決まるため(48)式にて求めることができる。
【0150】
t(Y)=[min{t(yL),t(yU)},max{t(yL),t(yU)}] (45)
t(Y)=[min{t(yL),t(yU)},1] (46)
t(Y)=[0,max{t(yL),t(yU)}] (47)
t(Y)=[0,1] (48)
このように、定義関数t(y)の特徴を利用し、定義関数t(y)が単調増加または単調減少する区間と、関数が極値となる値をを含む区間とで場合分けすることにより、区間教師出力信号を少ない計算量で正確に求めることができる。
【0151】
具体的な数値を代入した算出例を以下に示す。
▲1▼X1=[0.2,0.3],X2=[0.2,0.5]の場合(図11(a),(46)式参照)
X1+X2=Y=[0.4,0.8] より t(X)=[0.794,1]
▲2▼X1=[0.3,0.8],X2=[0.8,0.9]の場合(図11(b),(47)式参照)
X1+X2=Y=[1.1,1.7] より t(X)=[0,0.345]
▲3▼X1=[0.5,0.7],X2=[0.3,0.5]の場合(図11(c),(45)式参照)
X1+X2=Y=[0.8,1.2] より t(X)=[0.206,0.794]
[算出例2]
次に、第3実施形態にて説明した区間網出力信号算出処理について、その処理内容の理解を助けるための算出例を示す。
【0152】
ここでは、図12に示すように、2個のユニットU1,U2からなる入力層(第1層),2個のユニットU3,U4からなる中間層(第2層),1個のユニットからなる出力層(第3層)を備えた神経回路網について、具体的に区間網出力信号n(Xtop) を算出してみる。
【0153】
なお、シナプス結合、及び中間層,出力層の各ユニットにおけるバイアスは、
ω31=ω32=ω41=ω42=ω53=1
ω54=−1
b3=b4=b5=0
であり、初期区間入力ベクトル信号Xtop は、
Xtop =(XP1,XP2)=([0,1],[0,1])t
であるとする。
▲1▼初期区間入力ベクトル信号Xtop の中央値xC を求める(S610)。
【0154】
xC=(x1 C,x2 C)t=(0.5,0.5)t
▲2▼各ユニットUjについて、中央値xC に対する重み付け信号netj Cを求める(S620)。但し、ユニットU1,U2は入力をそのまま出力するので、
o1=o1=O.5 である。
【0155】
net3 C=b3+ω31・o1+ω32・o2=0+1×0.5+1×0.5=1.0
o3 C=f(net3 C)=0.7310
net4 C=b4+ω41・o1+ω42・o2=0+1×0.5+1×0.5=1.0
o4 C=f(net4 C)=0.7310
net5 C=b5+ω53・o3+ω54・o4=0+1×0.7310−1×0.7310=0.0
o5 C=f(net5 C)=0.5
▲3▼入力層のユニットU1,U2の区間出力信号O1,O2を初期化する(S630)。
【0156】
O1=[0,1] O2=[0,1]
▲4▼入力層のユニットU1,U2での傾斜Φom/ΦXPnを初期化する(S640)。
Φo1/ΦXP1=[1,1] Φo1/ΦXP2=[0,0]
Φo2/ΦXP1=[0,0] Φo2/ΦXP2=[1,1]
▲5▼ユニットU3 について(j=3)
・第1の区間Net3_1を求める(S660)。
【0157】
Net3_1=b3+ω31・O1+ω32・O2=[0,1]+[0,1]=[0,2]
・傾斜Φnet3/ΦXPnを求める(S670)。
Φnet3/ΦXP1=ω31・(Φo1/ΦXP1)+ω32・(Φo2/ΦXP1)=[1,1]
Φnet3/ΦXP2=ω31・(Φo1/ΦXP2)+ω32・(Φo2/ΦXP2)=[1,1]
・第2の区間Net3_2を求める(S680)。
【0158】
W=(Φnet3/ΦXP1)*(XP1−x1 C)+(Φnet3/ΦXP2)*(XP2−x2 C)
=1・0.5+1・0.5=1
Net3_2=[net3 C−W,net3 C+W]=[1−1,1+1]=[0,2]
・重み付け信号Net3を求める(S690)。
【0159】
Net3=Net3_1∩Net3_2=[0,2]=[net3 L,net3 U]
・区間出力信号を求める(S700)。
O3=f(Net3)=[0.5,0.881]=[f(net3 L),f(net3 U)]
・傾斜Φf/Φnet3を求める(S720)。
【0160】
(Net3=[0,2]⊂[0,∞)であるため、(39)式を用いる。)
Φf/ΦNet3=[0.150,0.231]
・傾斜Φo3/ΦXPmを求める(S730)。
Φo3/ΦXP1=(Φf/ΦNet3)・(Φnet3/ΦXP1)=[0.150,0.231]
Φo3/ΦXP2=(Φf/ΦNet3)・(Φnet3/ΦXP2)=[0.150,0.231]
▲6▼ユニットU4 について(j=4)
・ユニットU3 と全く同様に計算され、以下の結果が得られる。
【0161】
O4=f(Net3)=[0.5,0.881]
Φo4/ΦXP1=(Φf/ΦNet4)・(Φnet4/ΦXP1)=[0.150,0.231]
Φo4/ΦXP2=(Φf/ΦNet4)・(Φnet4/ΦXP2)=[0.150,0.231]
▲7▼ユニットU5 について(j=5)
・第1の区間Net5_1を求める(S660)。
【0162】
Net5_1=b5+ω53・O3+ω54・O4=[−0.381,0.381]
・傾斜Φnet5/ΦXPnを求める(S670)。
・第2の区間Net5_2を求める(S680)。
【0163】
・重み付け信号Net5を求める(S690)。
【0164】
Net5=Net5_1∩Net5_2=[−0.081,0.081]
・区間出力信号O5を求める(S700)。
O5=f(Net5)=[0.480,0.520]
▲8▼区間網出力信号n(Xtop) を設定する(S750)。
【0165】
n(Xtop)=O5=[0.480,0.520]
【図面の簡単な説明】
【図1】第1実施形態の神経回路網検証装置の概略構成を表すブロック図であある。
【図2】検証装置のCPUが実行する検証処理を表すフローチャートである。
【図3】検証対象である神経回路網の構成を表す説明図である。
【図4】区間入力ベクトル信号の生成を方法を表す説明図である。
【図5】図2のS180にて実行される区間網出力信号算出処理の詳細を表すフローチャートである。
【図6】図2のS200にて実行される区間誤差判定処理の詳細を表すフローチャートである。
【図7】第2実施形態における区間誤差判定処理を表すフローチャートである。
【図8】第3実施形態における区間網出力信号算出処理を表すフローチャートである。
【図9】図8のS720にて実行される傾斜算出処理の詳細を表すフローチャートである。
【図10】実験に用いられる神経回路網が適用された風量制御装置の概略構成を表すブロック図である。
【図11】区間教師出力信号の算出例を表す説明図である。
【図12】算出例2に用いられた神経回路網の構成図である。
【図13】神経回路網の検証方法、及びその問題点を表す説明図である。
【図14】本発明の効果を表す説明図である。
【図15】区間誤差による判定方法を表す説明図である。
【図16】区間誤差と臨界点との関係を表す説明図である。
【図17】傾斜の定義を表す説明図である。
【図18】下に凸な関数における傾斜の算出方法を表す説明図である。
【図19】シグモイド関数、及びその微係数を表すグラフである。
【符号の説明】
2…神経回路網検証装置 4…データファイル格納部
6…網構成部 8…入力データ作成部 10…検証実行部
12…入力操作部 14…表示部 20…風量制御装置
22…レベル設定部 24…風量制御ユニット 26…神経回路網
28…前処理部 30…後処理部
DBI…初期区間入力ベクトルデータベース
DBO…検証結果データベース DFK…検証データファイル
DFN…神経回路網データファイル NET…神経回路網
【発明の属する技術分野】
本発明は、神経回路網出力信号と教師出力信号との誤差が、許容範囲内となるようにシナプス荷重を設定する神経回路網の検証方法,検証装置及び記録媒体に関する。
【0002】
【従来の技術】
従来より、伝達信号を生成するユニットをそれぞれ一つ以上備えた入力層,中間層,出力層と、各層間のユニットを結合して伝達信号を伝送するシナプスとからなる神経回路網(ニューラルネットワークとも言う)が知られている。この神経回路網では、各シナプスがシナプス荷重を持ち、このシナプス荷重を学習処理によって適宜変更することにより所望の入出力特性が実現される。
【0003】
なお、神経回路網の学習は、教師入力信号を神経回路網に入力したときの網出力信号を計算し、この網出力信号と実現すべき特性を表す教師出力信号との比較結果に基づいて各シナプス荷重を変更して、教師出力信号と網出力信号との誤差、例えば、自乗誤差和が最小になるようにする処理である。
【0004】
そして、図13(a)に示すように、教師出力信号t(x)に対して、±εの範囲を許容範囲として、図13(b)に示すように、網出力信号n(x)と教師出力信号t(x)との誤差(n(x)−t(x))が、実際に取り得る全ての入力信号に対して、この許容範囲±ε内に収まる(|n(x)−t(x)|<ε)ように学習するのである。
【0005】
ところで、神経回路網は、パターン認識やデータ処理等に広く応用されているが、近年、空調機器等の制御への応用も増加している。このように、各種制御を行わせるために神経回路網を製品に組み込んだ場合、神経回路網に入力され得る任意の入力信号に対して、神経回路網から常に正しい出力信号が出力されることを保証する必要がある。
【0006】
ところが、学習によってシナプス荷重が設定される神経回路網では、その出力特性を、if−then ルール等の単純な論理にて記述できないので、内部解析による検証は困難である。このため、通常は、入力される可能性のある信号(テストデータ)を可能な限り多く準備し、これらの信号を実際に入力して、所望の出力信号が得られているか否かを逐一確認するという方法が行われていた。
【0007】
【発明が解決しようとする課題】
しかし、このように実際にテストデータを入力して検査を行う場合、神経回路網の動作が確実に保証されるのは、図13(c)に示すように、その検査ポイントxp のみであり、検査ポイントxp 間に存在する許容範囲から外れた部分ERを見落としてしまう可能性がある。これを防止するには、テストデータを増加させればよいが、テストデータを増やすほど、検証に時間がかかってしまうという問題があった。また、入力信号の種類の増加に応じて検査すべきポイント(範囲)は指数関数的に増大する。特に、入力信号が連続信号である場合、検査すべきポイントは無限に存在し、つまり、どれだけテストデータを増やしたとしても、殆どのポイントについては検査することができず、すべての入力信号に対しての保証を確実なものとすることができないという問題があった。
【0008】
本発明は、上記問題点を解決するために、入力される可能性のある任意の入力信号に対する神経回路網の動作を確実に保証できるようにすることを目的とする。
【0009】
【課題を解決するための手段】
上記目的を達成するためになされた請求項1記載の神経回路網の検証方法では、入力層への各入力信号の値域をそれぞれ1次元の入力信号空間として、入力層へのM(Mは1以上の整数)次元の入力信号空間を複数の部分入力信号空間に分割し、この部分入力信号空間毎に、網出力信号と教師出力信号との誤差を判定することにより神経回路網を検証する。
【0010】
このように本発明では、テストデータによる検査のように入力信号空間内のあるポイントについて検査するのではなく、部分入力信号空間毎に検査(誤差を判定)するので、入力信号空間の全てを漏れなく検証できる。
即ち、図14は、2(M=2)個の入力信号x1∈X1,x2∈X2が形成する2次元の入力信号空間Xを模式的に表したものであり、本発明では、テストデータによる検査のように決められた検査ポイントxp∈X だけ(図14(a)参照)でなく、2次元的な広がりを持つ部分入力信号空間XP毎に検証する(図14(b)参照)ので、入力信号空間X内を漏れなく検証できるのである。
【0011】
そして、誤差の評価は、部分入力信号空間毎に、教師出力信号と網出力信号との誤差が取り得る値域を表す区間誤差を算出し、この区間誤差と、判定の基準となる許容範囲との包含関係を判定することで行うことができる。
【0012】
即ち、区間誤差には、その部分入力信号空間内のあらゆる入力信号(又はその組み合わせ)を用いて神経回路網を動作させた時の誤差の上限値及び下限値が含まれているので、図15(a)に示すように、この区間誤差E=[eL,eU]が全て許容範囲内にふくまれていれば(eL≧−ε 且つ eU≦ε)、その部分入力信号空間内に含まれるどのような入力信号(又はその組み合わせ)であっても、神経回路網の動作が保証されるのである。
【0013】
また、逆に、図15(b)に示すように、区間誤差Eが全く許容範囲内に含まれていなければ(eL>ε 又は eU<−ε)、その部分入力信号空間内に含まれるどのような入力信号(又はその組み合わせ)であっても、動作が保証されないことは明らかである。つまり、このような部分入力信号空間内の入力信号(又はその組み合わせ)に対して、学習をやり直す必要があることがわかる。
【0014】
そして、図15(c)に示すように、それ以外の場合、つまり区間誤差Eの一部が許容範囲外にあり、それ以外が許容範囲内にある場合は、その部分入力信号空間の入力信号(又はその組み合わせ)には、神経回路網の所望動作に適合するものと適合しないものとが混在していることになる。
【0015】
このため、本発明では、区間誤差の一部が許容範囲外にあると判定された場合には、部分入力信号空間が分割不足であるとして、その部分入力信号空間を、複数の部分入力信号空間に再分割し、該再分割により生成された部分入力信号空間毎に、その区間誤差と許容範囲との包含関係を再判定する操作を繰り返し行う。
【0016】
これにより、神経回路網の所望動作に適合しない部分入力信号空間の範囲を絞り込むことができ、例えば、学習をやり直す際には、その絞り込んだ部分入力信号空間について集中的に行えばよいため、より効果的に学習を行うことが可能となる。
【0017】
なお、図16に示すように、部分入力信号空間XP内に、網出力信号n(x)と教師出力信号t(x)との誤差が許容範囲の境界値と等しく(|n(x)−t(x)|=ε)なる点(臨界点という)よりわずかに大きな点を有する場合、分割不足であると判断され、部分入力信号空間の再分割が行われる。そして、この再分割により生成された部分入力信号空間では区間誤差Eが小さくなるが、いずれかの部分入力信号空間には必ず臨界点が含まれている。その結果、臨界点を含む部分入力信号空間で再分割が繰り返し行われることになり、計算量が増大するため、計算速度の低下を招くことになる。
【0018】
そこで、請求項2に記載のように、区間誤差の幅が許容範囲の幅より小さな限界幅以下である場合には、区間誤差の一部が許容範囲外にあると判定されたとしても、部分入力信号空間の再分割を禁止することが望ましい。
なお、再分割の禁止方法としては、再分割回数の上限を予め決めておくようにしてもよい。
【0019】
次に、請求項3記載の神経回路網の検証方法では、部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、入力層から出力層への信号伝送過程に従って各ユニット毎に、該ユニットにて生成される伝達信号が区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出して、出力層のユニットについて算出された区間伝達信号を、網出力信号が取り得る値域を表す区間網出力信号とし、この区間網出力信号に基づいて区間誤差を算出する。
【0020】
ここで、区間演算とは、上限値α,下限値βを取る変数の区間を[α,β]にて表す場合、2つの区間X=[xL,xU]、Y=[yL,yU]に対する加減乗除が(1)〜(4)(4a)(4b)式にて定義されたものである。
なお、実数aは、幅が0の区間[a,a]とみなされ、実数aと区間Xとの乗算が(5a)(5b)式にて定義され、区間Xの幅(以下、区間幅という)w(X)が(6)式にて定義される。
【0021】
例えば、関数h(x)=x2−x として変数xが0≦x≦1(即ち、区間X=[0,1]、x∈X)である場合、区間X内の変数xに対して関数h(x)が実際に取り得る値を計算すると、−1/4≦h(x)≦0となる。ここで変数xを区間Xに置き換えて区間演算を行うと、
h(X)=X 2 −X=[0,1] 2 − [0,1]=[0,1]−[0,1]=[-1,1]
となり、即ち[−1/4,0]⊂[−1,1]であるため、任意のx∈Xに対しh(x)∈h(X)が成立し、区間演算h(X)が関数h(x)の区間Xにおける上限,下限を与えることがわかる。
【0022】
この区間演算については、例えば、R.Baker Kearfott,「Rigourous Global Search:Continuous Problem」,KLUWER ACADEMIC PUBLISHERS(1996) (以下、文献1とよぶ)に詳述されているので、ここではこれ以上の説明は省略する。
つまり、区間演算を用いれば、区間入力信号から各ユニットが生成する伝達信号の上限,下限(即ち区間伝達信号)を、ひいては網出力信号と教師出力信号との誤差の上限,下限(即ち区間誤差)を実際に求めることができるのである。
【0023】
但し、上記の例からもわかるように、関数h(x)の区間Xにおける区間演算h(X)は、関数h(x)の区間Xにおける真の範囲を含むが、一般に区間幅は広がってしまうため、必ずしも関数の範囲を正確に計算できるとは限らない。
そして、実際の誤差の上限,下限と比較して区間誤差が大きすぎると、網出力信号が実際には誤差の許容範囲内にあっても、分割不足であると判定されてしまうことがあり、本来ならば必要のない再分割,再評価が行われ、計算時間が増大してしまうおそれがある。
【0024】
そこで、請求項4記載の神経回路網の検証方法では、入力層のユニットは、入力信号を、そのまま伝達信号として出力し、中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成し、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成する場合に、中間層及び出力層のユニットについては、前段のユニットから入力される区間伝達信号とシナプス荷重との積和に基づいて求められる第1の区間信号と、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第1の傾斜と区間入力信号との積和に基づいて求められる第2の区間信号との共通区間を求め、該共通区間を、重み付け信号が前記区間入力信号に対して取り得る値域を表す区間重み付け信号とする。そして、この区間重み付け信号と出力関数とに基づいて区間伝達信号を生成する。
【0025】
即ち、異なった2種類の求め方で、区間重み付け信号を求め、その共通区間を求めることにより、区間重み付け信号をより実際に近いものとしているのである。
ここで、第2の区間信号を求めるために用いられる傾斜とは、先の文献1にて、”slope” との用語で用いられている公知技術であり、文献1に詳述されているので、ここではその概略のみ説明する。
【0026】
即ち、関数h(x)について、その変数xの区間をX=[xL,xU]、区間X内の任意の内点をxC として、この区間X内にて、内点xC を通り、且つ関数h(x)を挟み込む2つの直線U(x),L(x)が存在すると仮定すると、これらは、次の(7)(8)式にて表される。
【0027】
U(x)=sU・(x−xC)+h(xC) (7)
L(x)=sL・(x−xC)+h(xC) (8)
但し、sU,sLは、区間Xにより定まる定数であり、sU>sLとすると、図17に示すように、
L(x)≦h(x)≦U(x) (x≧xC ) (9)
U(x)≦h(x)≦L(x) (x<xC ) (10)
となる。このとき、区間Xに対してh(x)が取り得る値域の半区間幅Wを(11)式にて定義すると、区間Xにて(12)の関係が成立する。
【0028】
W=max(|sL|,|sU|)・max(xU−xC,xC−xL) (11)
h(xC)−W≦h(x)≦h(xC)+W (12)
つまり、区間Xに対して関数h(x)が取り得る値域は、
h(X)=[h(xC)− W,h(xC)+W] (13)
となる。そして、この時の区間Xに対する関数h(x)の傾斜が、(14)式にて定義されるのである。
【0029】
【数1】
【0030】
ここで、区間X=[xL,xU],内点xC ,傾斜Φh/ΦXが与えられたとき、半区間幅Wを求める演算子を*で示すことにする。つまり演算子*は(15)式にて定義される。
【0031】
【数2】
【0032】
上記説明では、理解を容易にするため、1変数関数を用いて説明したが、M次元多変数関数h(x)=h(x1,x2,…,x M ) ,各変数に対応する区間ベクトルX=(X1 X2 … X M )t 、内点xC=(x1 C,x2 C,…,x M C )t∈Xに対しても、(16)式に示すように、各区間ベクトルの要素毎に同様な傾斜を定義でき、この傾斜を用いて半区間幅Wを(17)式にて求めることができる。
【0033】
【数3】
【0034】
ところで、請求項5に記載のように、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第1の傾斜は、例えば、前段のユニットから入力される伝達信号が区間入力信号に対して取り得る変化率の値域を表す第2の傾斜とシナプス荷重との積和により算出でき、また、後段へ出力する伝達信号についての第2の傾斜は、例えば、前記前記出力関数の傾きが前記重み付け信号に対して取り得る値域を表す第3の傾斜と前記第1の傾斜との積により算出できる。
【0035】
そして、請求項6に記載のように、前記出力関数f(x)がシグモイド関数または双曲線関数であり、該出力関数f(x)の導関数をf'(x) ,区間重み付け信号を[NL,NU],その内点をNCとするとき、第3の傾斜は、NU<0であれば[{f(NL)−f(NC)}/{NL−NC},{f(NU)−f(NC)}/{NU−NC}]、NL≧0であれば[{f(NU)−f(NC)}/{NU−NC},{f(NL)−f(NC)}/{NL−NC}]、それ以外であれば[min{f'(NL),f'(NU)},f'(0)]に設定することができる。
【0036】
即ち、区間X=[xL,xU]における任意の関数h(x)の傾斜Φh/ΦXを求める場合、一般に次の▲1▼▲2▼が成立することが知られている。
▲1▼ 区間Xにおいて関数h(x)が、単調増加(h’(x)>0) または単調減少(h’(x)<0) し、区間Xでの関数h(x)の微係数h’(x) の上限,下限がgU,gLで与えられている場合、傾斜Φh/ΦXを、[gL,gU]としてよい。
▲2▼ 区間Xにおいて関数h(x)が上に凸(h”(x)>0)または下に凸(h”(x)<0)である場合、図18(ここでは下に凸な場合を示す)から明らかなように、傾斜Φh/ΦX=[sL,sU]は、以下の(18)(19)式で与えられる。但し、区間Xの内点をxC とする。
【0037】
【数4】
【0038】
そして、出力関数として用いられるシグモイド関数f(x)=1/{1+exp(−x)}、及び双曲線関数f(x)=tanh(x)は、図19に示すように、いずれも、単調増加関数であり、且つx≧0では上に凸,x<0では下に凸となり、しかも、微係数f’(x) がx=0にて最大値をとるという特性を有する。なお、図19では、(a)にシグモイド関数f(x)、(b)にその微係数f’(x) のグラフについてのみ示したが、双曲線関数もほぼ同様のグラフとなる。
【0039】
このため、区間重み付け信号が、x=0を跨がない場合は上記▲2▼の性質を用い、また、区間重み付け信号がx=0を跨ぐ場合には上記▲1▼の性質を用いて、区間重み付け信号に対する出力関数の傾斜を求めることができるのである。
このように、本発明によれば、出力関数の傾斜が簡単に求められるため、計算時間の短縮を図ることができる。
【0040】
なお、上述した神経回路網の検証方法は、コンピュータシステムにて実行されるプログラムにより実現してもよい。この場合、請求項7記載のように、このようなプログラムは、例えば、フロッピーディスク,光磁気ディスク,CD−ROM,ハードディスク等のコンピュータシステムによる読取が可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ROMやバックアップRAMをコンピュータシステムによる読取が可能な記録媒体として前記プログラムを記録しておき、このROMあるいはバックアップRAMをコンピュータシステムに組み込んで用いてもよい。
【0041】
次に、請求項8記載の神経回路網の検証装置では、区間分割手段が、入力層への各入力信号の値域をそれぞれ1次元の入力信号空間として、入力層へのM(Mは1以上の整数)次元の入力信号空間を部分入力信号空間に分割する。すると、この分割された部分入力信号空間毎に、区間網出力信号算出手段が、網出力信号が取り得る値域を表す区間網出力信号を算出し、区間教師出力信号算出手段が、教師出力信号が取り得る値域を表す区間教師出力信号を算出し、区間誤差算出手段が、区間網出力信号及び区間教師出力信号間の誤差が取り得る値域を表す区間誤差を算出する。そして、判定手段が、区間誤差と許容範囲との包含関係を判定する。
【0042】
また、判定手段により区間誤差の一部が許容範囲外にあると判定された部分入力信号空間を、区間再分割手段が、複数の部分入力信号空間に再分割する。即ち、この検証装置は、請求項1記載の検証方法を実現する手段を備えるものである。
【0043】
また次に、請求項9記載の神経回路網の検証装置では、区間誤差の幅が、許容範囲の幅より小さな限界幅以下である場合に、再分割禁止手段が、区間再分割手段による部分入力信号空間の再分割を禁止する。即ち、この検証装置は、請求項2記載の検証方法を実現する手段を備えるものである。
【0044】
更に、請求項10記載の神経回路網の検証装置では、区間伝達信号算出手段が、部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、入力層から出力層への信号伝送過程に従って、各ユニットにて生成される伝達信号が区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出する。そして、区間網出力信号算出手段は、この区間伝達信号算出手段により出力層のユニットについて算出された区間伝達信号を、網出力信号が取り得る値域を表す区間網出力信号とする。即ち、この検証装置は、請求項3記載の検証方法を実現する手段を備えるものである。
【0045】
また更に、請求項11記載の神経回路網の検証装置では、入力層のユニットは、入力信号を、そのまま伝達信号として出力し、中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成して、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成するものであるとして、第1区間信号算出手段が、前段のユニットから入力される区間伝達信号とシナプス荷重との積和に基づいて第1の区間信号を算出し、第2区間信号算出手段が、重み付け信号が区間入力信号に対して取り得る変化率の値域を表す第1の傾斜と区間入力信号との積和に基づいて第2の区間信号を算出する。
【0046】
そして、共通区間抽出手段が、第1及び第2の区間信号の共通区間を、重み付け信号が区間入力信号に対して取り得る値域を表す区間重み付け信号として設定し、区間伝達信号生成手段が、共通区間抽出手段により設定された区間重み付け信号と出力関数とに基づいて区間伝達信号を生成する。即ち、この検証装置は、請求項4記載の検証方法を実現する手段を備えるものである。
【0047】
また、請求項12記載の神経回路網の検証装置では、第1傾斜算出手段が、第1の傾斜を、前段のユニットからの伝達信号が区間入力信号に対して取り得る変化率の値域を表す第2の傾斜とシナプス荷重との積和により算出し、第2傾斜算出手段が、後段へ出力する伝達信号についての第2の傾斜を、出力関数の傾きが重み付け信号に対して取り得る値域を表す第3の傾斜と第1の傾斜との積により算出する。即ち、この検証装置は、請求項5記載の検証方法を実現する手段を備えるものである。
【0048】
また次に、請求項13記載の神経回路網の検証装置では、出力関数f(x)がシグモイド関数または双曲線関数であり、該出力関数f(x)の導関数をf'(x) ,区間重み付け信号を[NL,NU],その内点をNCとするとき、第3傾斜設定手段が、第3の傾斜を、NU<0であれば[{f(NL)−f(NC)}/{NL−NC},{f(NU)−f(NC)}/{NU−NC}]、NL≧0であれば[{f(NU)−f(NC)}/{NU−NC},{f(NL)−f(NC)}/{NL−NC}]、それ以外であれば[min{f'(NL),f'(NU)},f'(0)] に設定する。即ち、この検証装置は、請求項6記載の検証方法を実現する手段を備えるものである。
【0049】
このように、請求項8〜13記載の神経回路網の検証装置は、それぞれ請求項1〜6記載の検証方法を実現する装置であり、従って、これらの装置を用いて神経回路網の検証を行えば、上記検証方法について記述した通りの効果を得ることができる。
【0050】
【発明の実施の形態】
以下に本発明の実施形態を図面と共に説明する。
[第1実施形態]
図1は、本発明が適用された神経回路網検証装置2の概略構成を表すブロック図である。
【0051】
本実施形態の神経回路網検証装置2は、図1に示すように、検証すべき神経回路網の構造に関するデータ(シナプスの結合関係,シナプス荷重,出力関数の型など)からなる神経回路網データファイルDFN、及び検証すべき神経回路網への入力信号が取り得る値の範囲や教師出力信号を定義するデータ等からなる検証データファイルDFKを格納するデータファイル格納部4と、データファイル格納部4から神経回路網データファイルDFNを読み込んで、検証対象となる神経回路網NETを構成する網構成部6と、同じくデータファイル格納部4から検証データファイルDFKを読み込んで、後述する初期区間入力ベクトルデータベースDBIを作成する入力データ作成部8と、網構成部6が構成した神経回路網NET、及び入力データ作成部8が作成した初期区間入力ベクトルデータベースDBIに基づいて、神経回路網NETの検証を実行し、その検証結果に基づいて検証結果データベースDBOを作成する検証実行部10と、上記各部に対する各種指令を入力するためのキーボードやマウス等からなる入力操作部12と、入力操作部12を操作する手順や検証結果データベースDBOの内容等を表示するためのディスプレイ等からなる表示部14とを備えている。
【0052】
なお、本実施形態の検証装置2は、ワークステーション等、CPU,ROM,RAM,I/Oポートを中心に構成された周知の汎用計算機上に構成されており、網構成部6,入力データ作成部8,検証実行部10は、CPUが実行する処理として実現され、また、神経回路網NET、初期区間入力ベクトルデータベースDBI,検証結果データベースDBOは、RAM上に作成される。また、データファイル格納部4は、ハードディスクや磁気ディスク,フロッピーディスク等の外部記憶装置により構成されている。
【0053】
以下、CPUにて実行される網検証処理について、図2に示すフローチャートに沿って説明する。なお、本処理のプログラムは、予めROMに記憶されていてもよいし、図示しないフロッピーディスク等の外部記憶装置からRAMにロードするようにしてもよい。
【0054】
本処理が起動されると、まずステップ(以下、単にSとする)110では、入力操作部12を介して、神経回路網データファイルDFN及び検証データファイルDFKの各ファイル名、及び後述の処理で使用する許容誤差εが入力されたか否かを判断し、これらが入力されると、S120に移行する。
【0055】
S120では、S110にて入力されたファイル名に従って、データファイル格納部4から神経回路網データファイルDFNを読み込み、その内容に基づいて検証対象となる神経回路網NETをRAM上に構成する網構成部6としての処理を実行する。
【0056】
このとき作成される神経回路網NETは、図3に示すように、伝達信号を生成する合計NU個のユニットUj (j=1,2,…,NU)により構成された入力層(第1層),中間層(第2〜(NL−1)層),出力層(第NL層)と、伝達信号を伝送するために各層間のユニットUj を結合するシナプスとから構成される。
【0057】
なお、第i層(i=1,2,…,NL)は、それぞれMi 個(M1+M2+…+MNL=NU)のユニットで構成されており、特に、本実施形態では、入力層のユニット数をM1=M, 出力層のユニット数をMNL=1とする。但し、出力層のユニット数MNLは複数であってもよい。
【0058】
このうち入力層を構成するユニットUm (m=1,2,…,M)は、入力信号xm を、そのまま次層への伝達信号om として出力するように構成されている。また、中間層(第2〜(NL−1)層)を構成するユニットUn (n=M+1,M+2,…,NU−1)は、前層から入力される伝達信号,この伝達信号に対応して設定されるシナプス荷重,及び予め定義された出力関数を用いて次層への伝達信号を生成するように構成されている。
【0059】
即ち、第i層(=2,3,…,NL−1)のユニットUj では、第(i−1)層のユニットUk からの伝達信号ok に対するシナプス荷重をωjk,ユニットUj でのバイアスをbj ,ユニットUj に伝達信号ok を送るユニットUk の番号の集合をC(j)として、重み付け信号netjを(20)式にて算出し、更に、シグモイド関数からなる出力関数f(x)=1/{1+exp(−x)}を用いて、(21)式により、次層への伝達信号oj を生成するように構成されている。
【0060】
【数5】
【0061】
そして、出力層(第NL層)のユニットUNUは、中間層のユニットUn と同様に構成されたものであり、このユニットUNUにて生成された伝達信号oNUが、当該神経回路網NETの出力である網出力信号n(x)となる。
続くS130では、S110にて入力されたファイル名に従って、データファイル格納部4から検証データファイルDFKを読み込み、その内容に基づいて初期区間入力ベクトルデータベースDBIを作成する入力データ作成部8としての処理を実行する。
【0062】
この初期区間入力ベクトルデータベースDBIには、次のようにして作成される区間入力ベクトル信号Isが格納される。
即ち、まず神経回路網NETへの入力信号(即ち入力層のユニット数)がM個ある場合、各入力信号が取り得る値を0〜1の範囲に正規化し、この正規化した各入力信号をそれぞれ1次元の入力信号空間Xm⊂[0,1] (m=1〜M)として、M次元入力信号空間X(=X1×X2×…×XM⊂[0,1]M)を考える。但し、図4では、理解を容易にするため、M=2の場合を示す。
【0063】
そして、各入力信号空間Xm 毎に、それぞれ Nm+1個の分割点Gm l(l=0〜Nm )を(23)式の関係を満たすように設ける。
Gm 0(=0)<Gm 1<…<Gm Nm(=1) (23)
この分割点は、検証データファイルDFKに予め設定されているものとする。
【0064】
この分割点Gm lに基づき、1次元の各入力信号空間Xm を、
[Gm 0,Gm 1][Gm 1,Gm 2]…[Gm Nm−1,Gm Nm] (24)
という Nm個の部分入力信号空間に分割し、これに対応して、M次元入力信号空間Xを、(25)式に示すような、NPX(=N1・N2・…・Nm )個のM次元部分入力信号空間XPに分割する。但し、pm=0,1,…,Nm−1 である。
【0065】
これらの部分入力信号空間XPのそれぞれに対して、次のM次元区間入力ベクトル信号Is(s=1〜NPX)を生成する。
【0066】
このようにして生成した区間入力ベクトル信号Isを、特に初期区間入力ベクトル信号とよび、初期区間入力ベクトルデータベースDBIに格納する。
【0067】
続くS140では、神経回路網NETの検証開始を指示する検証開始指令が、入力操作部12から入力されたか否かを判断し、検証開始指令が入力されると、S150に進み、S130にて生成された初期区間入力ベクトルデータベースDBIから区間入力ベクトル信号Isを順番に読み込んで、スタックに積み込む。
【0068】
なお、スタックは、最後に入力したデータを最初に出力するいわゆるLIFO(Last In First Out) 型のメモリで、初期区間入力ベクトルデータベースDBI等と同様にRAM上に形成される。そして、以下では、スタックに最後に積み込まれてスタックの一番上(スタックトップという)にある区間入力ベクトル信号IsをXtop とし、次の(27)式にて表す。この式は、(26)式の記号を付け替えただけのものであり、(26)式と全く等価である。
【0069】
Xtop=([x1 L,x1 U][x2 L,x2 U]…[xM L,xM U])t (27)
また、以下では、区間入力ベクトル信号Xtop を構成する各要素[x1 L,x1 U][x2 L,x2 U]…[xM L,xM U]を区間要素と呼び、XP1,XP2,…,XPM とも表記する。
【0070】
次にS160にて、スタックトップの区間入力ベクトル信号Xtop を取り出して、続くS170では、この区間入力ベクトル信号Xtop に対応する区間教師出力信号t(Xtop)=[tL,tU] を算出し、更にS180では、同じくスタックトップの区間入力ベクトル信号Xtop に属する入力信号に対して、網出力信号n(x)が取り得る値域を表す区間網出力信号n(Xtop)=[nL,nU] を区間演算を用いて算出する。
【0071】
なお、区間教師出力信号t(Xtop) の算出方法については、例えば教師出力信号が関数により定義されている場合、この関数に区間演算を適用することで簡単に算出できる。詳しくは、後述の[算出例1]の欄にて具体的な例をあげて説明する。
【0072】
ここで、区間網出力信号n(Xtop)=[nL,nU] を算出する処理の詳細を、図5に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずS310では、入力層(第1層)の各ユニットUm (m=1,2,…,M)が出力する区間伝達信号Om を初期化する。具体的には、区間入力ベクトル信号Xtop の区間要素XPm=[xm L,xm U] をそのまま区間伝達信号Om として設定する。
【0073】
即ち、区間伝達信号Om は、区間要素XPm の内点を、ユニットUm (m=1,2,…,M)に入力した時に、このユニットUm から出力される伝達信号om が取り得る値域を表すものであり、入力層のユニットUm は、上述したように入力信号をそのまま伝達信号om として出力するからである。
【0074】
なお、通常の演算に用いられる信号(例えば、伝達信号om )と、区間演算に用いられる信号(例えば、区間伝達信号Om )とを区別するために、区間演算に用いられる信号については、その先頭を大文字で表す。
次にS320では、ユニットUj を識別するためのカウンタjを、中間層で最も番号の小さいユニットを指示するようM+1に設定し、続くS330では、ユニットUj について、次の(28)式に従って区間重み付け信号Netj を算出する。なお、bj ,wjk,C(j)は、先の(20)式にて説明したのと同じものである。
【0075】
【数6】
【0076】
続くS340では、出力関数f(x)の変数xの代わりに、S330にて算出した区間重み付け信号Netj=[netj L,netj U] を用いて区間演算を行うことにより、区間入力ベクトル信号Xtop に対するユニットUj での区間伝達信号Oj を算出する。
【0077】
なお、本実施形態では、出力関数f(x)として、単調増加関数であるシグモイド関数を用いているので、区間伝達信号Oj=[f(netj L),f(netj U)] となる。S350では、カウンタjをインクリメントし、S360にてカウンタjの値が、神経回路網NETの全ユニット数NU以下であるか否かを判断する。そして、肯定判断された場合は、S330に戻って、次のユニットUj について区間伝達信号Oj の算出を行う。
【0078】
一方、S360にて否定判定された場合、即ち、神経回路網NETの中間層及び出力層(第2〜NL層)の全てのユニットUj についての区間伝達信号Oj の算出を終了した場合には、S370に移行し、出力層(第NL層)のユニットUNUでの区間伝達信号ONUを、区間入力ベクトル信号Xtop に対する区間網出力信号n(Xtop) として設定し、本処理を終了する。
【0079】
なお、上述の区間入力ベクトル信号Xtop に対する区間網出力信号n(Xtop) の算出処理は、公知技術である実数入力ベクトル信号xに対する網出力信号n(x)の算出処理(例えば、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)を参照)に対して、区間演算を適用したものであり、各種演算が区間演算になっている点が異なるだけで、その他の全体の手順等は、網出力信号n(x)の算出処理と全く同様である。
【0080】
その詳細は、H.Ishibuch and H.Tanaka,”An Extension of the BP Algorithm to Interval Input Vectors:Learning form Numerical Data and Expert’s Knowledge”, Int, Joint Conf. on Neural Networks, Singapore, pp.1588−1593,1991 に記載されている。
【0081】
次に、図2に示すフローチャートに戻り、S190では、S170にて算出された区間教師出力信号t(Xtop) と、S180にて算出された区間網出力信号n(Xtop) とから、区間誤差E=e(Xtop)=[eL,eU] を(50)式により区間演算を用いて算出する。
【0082】
続くS200では、S190にて算出した区間誤差Eと、先のS110にて入力された許容誤差εとにより判定処理を行った後、S210に進む。
【0083】
ここで、この判定処理の詳細を、図6に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずS410では、区間誤差Eのすべてが、許容誤差範囲[−ε,ε]に包含されているか否かを判断し、肯定判定された場合はS420に移行して、検証結果を「可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶し、本処理を終了する。
【0084】
一方、S420にて、否定判定された場合はS430に移行し、今度は、区間誤差Eが、その全てが開区間(−∞,−ε)又は開区間(ε,+∞)に包含されているか否か、即ち許容誤差範囲[−ε,ε]には全く包含されていないか否かを判断する。そして、肯定判断された場合はS440に移行して、検証結果を「不可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶し、本処理を終了する。
【0085】
またS430でも否定判定された場合、即ち、区間誤差Eの一部のみが許容誤差範囲[−ε,ε]に包含されている場合は、「分割不足」であるとしてS450に移行し、この区間入力ベクトル信号Xtop を分割して、続くS460にて、この分割により生成された新たな区間入力ベクトル信号Isを、全てスタックに積み込んで本処理を終了する。
【0086】
ところで、S450における区間入力ベクトル信号 Xtop=([x1 L,x1 U][x2 L,x2 U]…[xM L,xM U])t の分割は、例えば、いずれか一つのの区間要素[xm L,xm U](m=1〜M)を選択し、その内点xm C∈[xm L,xm U]を用いて、(29a)(29b)に示すように2分割すればよい。
【0087】
IL=([x1 L,x1 U]…[xm L,xm C]…[xM L,xM U])t (29a)
IU=([x1 L,x1 U]…[xm C,xm U]…[xM L,xM U])t (29b)
なお、内点xm Cは、例えば、区間要素[xm L,xm U]の中点((xm L+xm U)/2)に設定するのが簡単であるが、これに限らず前記区間内であればどのようなものに設定してもよい。また、2分割に限らず、3分割以上にしてもよい。そして、同じ区間入力ベクトル信号に対して繰り返し分割が行われる場合には、分割毎に選択する区間要素を適宜変えていくようにすることが望ましい。
【0088】
次に図2に示すフローチャートに戻り、S210では、スタックが空になっているか否かを判断し、否定判定された場合、即ちスタックに処理すべき区間入力ベクトル信号Isが残されている場合、S160に戻り、S160〜S210までの処理をスタックが空になるまで繰り返し実行する。
【0089】
そして、S210にて肯定判断された場合、即ち、スタックに積まれた全ての区間入力ベクトル信号Isについて、区間誤差の判定処理を終了した場合には、S220に移行し、検証結果データベースDBOの記録内容を、表示部14に表示させた後、本処理を終了する。
【0090】
なお、本処理において、S130が区間分割手段、S170が区間教師出力信号算出手段、S180が区間網出力信号算出手段、S190が区間誤差算出手段、S200が判定手段、S450が区間再分割手段、S310〜S360が区間伝達信号算出手段に相当する。
【0091】
以上、説明したように、本実施形態の神経回路網検証装置2においては、M次元入力信号空間Xを部分入力信号空間XP(区間入力ベクトル信号Xtop )に分割し、この部分入力信号空間XP毎に、区間演算を用いて、網出力信号n(x)の上限値,下限値を含んだ区間網出力信号n(Xtop) と、区間教師出力信号t(Xtop) との誤差を表す区間誤差E(=e(Xtop)) を算出し、この区間誤差Eと許容誤差範囲[−ε,ε]との包含関係を比較することにより、誤差の判定を行っている。
【0092】
このように、本実施形態の神経回路網検証装置2によれば、区間演算を用いて、部分入力信号空間XPに属する全ての入力信号(又はその組み合わせ)について、一度にまとめて検証しているので、従来のテストデータにより個々の入力信号毎に検証する場合と比較して、短時間で検証することができる。しかも、入力信号が離散値ではなく、検証すべきポイントが無限に存在する連続値を取る場合にも適用できるため、入力信号空間Xに属する全ての入力信号(又はその組み合わせ)について、神経回路網NETの動作を確実に保証することができる。
【0093】
また、本実施形態の神経回路網検証装置2においては、区間入力ベクトル信号Xtop についての検証結果が「分割不足」であれば、その区間入力ベクトル信号Xtop を再分割してスタックに積み、分割された区間入力ベクトル信号毎に検証処理を再度実行するようにされている。
【0094】
従って、検証結果が「不可」となる区間入力ベクトル信号Isの範囲を絞り込むことができ、神経回路網NETを再学習する際に、教師データを増やすべきポイントを的確に知ることができるため、効率よく学習を行わせることができる。ところで、神経回路網NETを検証後、機器に組み込んで使用する際、神経回路網NETの計算を固定小数点演算CPUで実行する場合は、小数点の位置により計算精度が変わってしまう。
【0095】
しかし、本実施形態の神経回路網検証装置2によれば、区間演算によって、処理の過程で表れる計算値の上限値,下限値が明らかになるため、整数部に必要最小限のビット数が割り当てられるように小数点の位置を決めることができ、CPUに精度よく計算を行わせることができるため、神経回路網NETの能力を最大限に引き出すことができる。
【0096】
なお、上記実施例では、神経回路網として階層型のモデルを用いたが、神経回路網出力信号の上限値,下限値を計算できるものであれば、他のモデルを用いてもよい。
[第2実施形態]
次に、第2実施形態について説明する。
【0097】
本実施形態の神経回路網検証装置は、第1実施形態のものとは、S200にて実行される区間誤差判定処理の処理内容が一部異なるだけで、それ以外の構成や処理は全く同様であるため、この区間誤差判定処理についてのみ、図7に示すフローチャートに沿って説明する。
【0098】
本処理が起動されると、まず、S510〜S540では、第1実施形態におけるS410〜S440と全く同様に、区間誤差E=e(Xtop)=[eL,eU] のすべてが、許容誤差範囲[−ε,ε]に包含されていれば、検証結果を「可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶(S510−YES,S520)した後、本処理を終了し、一方、区間誤差Eの全てが、許容誤差範囲[−ε,ε]には全く包含されていなければ、検証結果を「不可」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶(S510−YES,S530−YES,S540)した後、本処理を終了し、それ以外の場合(S530−NO)は、S550へ移行する。
【0099】
そしてS550では、区間誤差Eについての区間誤差幅WEを(30)式にて算出し、続くS560にて、この区間誤差幅WEが、予め設定された限界値αε(0<α<1)より小さいか否かを判断する。
WE=W(e(Xtop))=eU−eL (30)
このS560にて肯定判断された場合は、S570に移行して、区間入力ベクトル信号Xtop に臨界点が含まれる旨を表すため、検証結果を「臨界点」として、この検証結果を区間入力ベクトル信号Xtop と対応づけて、検証結果データベースDBOに記憶し、本処理を終了する。
【0100】
一方、S560にて否定判定された場合は、「分割不足」であるとして、S580に移行し、以下、第1実施形態におけるS450,S460と同様に、区間入力ベクトル信号Xtop を分割し(S580)、この分割により生成され区間入力ベクトル信号IL,IUをスタックに積んで(S590)、本処理を終了する。
【0101】
なお、本処理においてS550,S560が再分割禁止手段に相当する。
このように、本実施形態においては、検証結果が「可」でも「不可」でもない場合に、区間誤差幅WEが限界値αε以下であれば、区間誤差Eは臨界点を含むものとして、区間入力ベクトル信号Xtop をそれ以上に再分割することを禁止しているので、臨界点を含む区間入力ベクトル信号Xtop の分割が不必要に繰り返されてしまうことを防止でき、ひいては処理速度の低下を確実に防止できる。
[第3実施形態]
次に、第3実施形態について説明する。
【0102】
本実施形態の神経回路網検証装置は、第1及び第2実施形態のものとは、S180にて実行される区間網出力信号算出処理の処理内容が異なるだけで、それ以外の構成や処理は全く同様であるため、この区間網出力信号算出処理についてのみ、図8に示すフローチャートに沿って説明する。
【0103】
本処理が起動されると、まずS610では、区間入力ベクトル信号 Xtop=([x1 L,x1 U][x2 L,x2 U]…[xM L,xM U])t の中央点xC=(x1 C,x2 C,…,xM C)tを(31)式により算出する。
xm C=(xm L+xm U)/2 (m=1,2,…,M) (31)
続くS620では、神経回路網NETを構成する全てのユニットUj について、この中央点xC に対する重み付け信号netjを算出する。
【0104】
具体的には、図5に示した区間網出力信号算出処理と同様の手順で算出することができる。但し、区間入力ベクトル信号Xtop ,区間伝達信号Oj ,区間重み付け信号Netj の代わりに、中央点xC ,伝達信号oj ,重み付け信号netjを用いて、区間演算ではなく通常の演算にて処理を実行することにより、S330にて算出される値を用いればよい。なお、本ステップの処理により算出された、ユニットUj における重み付け信号を、以下では、netj C と表記する。
【0105】
次にS630では、第1実施形態におけるS300と全く同様に、入力層の各ユニットUm (m=1,2,…,M)の区間伝達信号Om を初期化する。即ち、区間入力ベクトル信号Xtop の各区間要素XPm をそのまま区間伝達信号Om として設定する。
【0106】
続くS640では、入力層の各ユニットUm 毎に、各区間要素XPn (n=1,2,…,M)に対する伝達信号om(m=1,2,…,M) の傾斜Φom/ΦXPnを(32)式に従って初期化する。
【0107】
【数7】
【0108】
このように初期化するのは、入力層のユニットUm には、区間要素XPm のみが入力され、ユニットUm の伝達信号om は、m≠nである他の区間要素XPn とは関係なく、区間要素XPm のみにより決まるためである。
なお、この傾斜Φom/ΦXPnは、本発明における第2の傾斜に相当する。
【0109】
S650,S660は、第1実施形態におけるS320,S330と全く同様に、カウンタjをM+1に設定(S650)した後、ユニットUj についての区間重み付け信号Netj を算出(S660)する。但し、ここでは、このS660にて算出される区間重み付け信号を第1の区間Netj_1とする。
【0110】
続くS670では、同じくユニットUj について、区間要素XPm (m=1,2,…,M)毎に、区間要素XPm に対する重み付け信号netjの傾斜Φnetj/ΦXPm を(33)式に従って算出する。以下では、その要素を(34)式にて表記する。
【0111】
【数8】
【0112】
なお、この傾斜Φnetj/ΦXPn が、本発明における第1の傾斜に相当する。
続くS680では、S670にて求めた傾斜Φnetj/ΦXPm に基づき、ユニットUj の区間重み付け信号Netj を算出する。但し、ここでは、本ステップで算出される区間重み付け信号を第2の区間Netj_2とする。
【0113】
即ち、(35)式により半区間幅Wを算出し、この半区間幅Wと、S620にて算出した中央点xC に対する重み付け信号netj Cとを用いて、(36)式にて表される区間を第2の区間Netj_2として設定するのである。
【0114】
【数9】
【0115】
そして、S690では、S660にて求めた第1の区間Netj_1、及びS680にて求めた第2の区間Netj_2に基づき、両者の共通区間をユニットUj の区間重み付け信号Netj に設定する。
即ち、Netj_1=[net1L,net1U],Netj_2=[net2L,net2U] とすると、区間重み付け信号Netj は、次の(37)式にて表記される。
【0116】
続くS700では、S690にて求めた区間重み付け信号Netj を用いて、第1実施形態におけるS340と全く同様に、区間入力ベクトル信号Xtop に対するユニットUj の区間伝達信号Oj を算出する。
【0117】
S710では、カウンタjの値が、神経回路網NETのユニット総数NUより小さいか否かを判断し、肯定判定された場合は、現在処理中のユニットUj が、中間層(第2〜NL−1層)を構成するものであるとしてS720に移行する。S720では、S690にて求められた区間重み付け信号Netj に対する出力関数f(x)の傾斜Φf/ΦNetj を算出する。なお、この傾斜Φf/ΦNetj が本発明における第3の傾斜に相当する。
【0118】
ここで、傾斜Φf/ΦNetj を算出する処理の詳細を、図9に示すフローチャートに沿って説明する。
即ち、本処理が開始されると、まずS810では、先のS690にて求めた区間重み付け信号Netj の全範囲が、出力関数(シグモイド関数)f(x)が下に凸である区間(−∞,0]に包含されているか否かを判断する。そして、肯定判定された場合は、S820に移行して、(38)式に従って傾斜Φf/ΦNetj を設定し、本処理を終了する。
【0119】
【数10】
【0120】
一方、S810にて否定判定された場合は、S830に移行し、今度は、区間重み付け信号Netj の全範囲が、出力関数f(x)が上に凸である区間[0,+∞)に包含されているか否かを判断する。そして、肯定判定された場合は、S840に移行して、(39)式に従って傾斜Φf/ΦNetj を設定し、本処理を終了する。
【0121】
【数11】
【0122】
またS830でも否定判定された場合は、S850に移行し、区間重み付け信号Netj が、出力関数f(x)が上に凸である区間と下に凸である区間との両方に渡っている、即ち、微係数f’(x) が最大値となる0を跨いだ区間となっているので、(40)式に従って傾斜Φf/ΦNetj を設定し、本処理を終了する。
【0123】
【数12】
【0124】
以下では、このS720にて求められた傾斜Φf/ΦNetj を(41)式にて表記する。
【0125】
【数13】
【0126】
次に、図8に示すフローチャートに戻り、S730では、各区間要素XPm (m=1,2,…,M)毎に、区間要素XPm に対する当該ユニットUj の伝達関数oj の傾斜Φoj/ΦXPm(本発明における第2の傾斜に相当する)をそれぞれ算出する。
【0127】
即ち、S670にて算出された傾斜Φnetj/ΦXPm 、及びS720にて算出された傾斜Φf/ΦNetj を用いて、(42)式に従って算出する。
【0128】
【数14】
【0129】
続くS740では、カウンタjをインクリメント後、S660に戻り、次のユニットUj に対する処理を行う。
一方、先のS710にて、否定判定された場合は、全てのユニットUj について処理を終了したものとして、S750に移行し、出力層のユニットUNUを、区間入力ベクトル信号Xtop に対する網出力信号n(Xtop) として設定し、本処理を終了する。
【0130】
なお、上述の処理において、S610〜S740が区間伝達信号算出手段に相当し、更に、S660が第1区間信号算出手段、S680が第2区間信号算出手段、S690が共通区間抽出手段、S700が区間伝達信号生成手段、S670が第1傾斜算出手段、S730が第2傾斜算出手段、S720が第3傾斜設定手段に相当する。
【0131】
また、本処理の処理内容の理解を助けるために、本処理による具体的な算出例を後述の[算出例2]の欄に示す。
以上、説明したように、本実施形態の神経回路網検証装置においては、各ユニットUj にて区間重み付け信号Netjを、2種類の方法により算出し、その共通区間を用いることにより、重み付け信号netjが実際に取り得る値域に、より近いものとなるように絞り込んでいる。
【0132】
従って、本実施形態の神経回路網検証装置によれば、より精度よく区間誤差Eが算出されるため、区間誤差Eが実際の誤差の上限から下限までの範囲より大きく算出されることに基づいて、区間入力ベクトル信号Xtop の再分割が不必要に行われてしまう回数が減少し、より短時間で検証を完了することができる。
【0133】
また、本実施形態によれば、区間重み付け信号Netj に対する出力関数f(x)の傾斜Φf/ΦNetjを、出力関数f(x)の特徴、即ち単調増加関数であり、且つx=0にて微係数f’(x)が最大値となることを利用して設定しているので、計算量を減少させることができ、処理時間の短縮化を図ることができる。
[実験例]
次に、オートカーエアコン風量制御に用いられる神経回路網を、上記第2実施形態の区間誤差判定処理と、第3実施形態の区間網出力信号とが実行される神経回路網検証装置により検証を行った実験結果を説明する。本実験では、従来テストデータを1点づつ入力して網の検証を行う従来方法との比較を行い、検証に要する時間により性能の評価を行った。
【0134】
まず、図10は、実験に用いられる神経回路網が適用された風量制御装置20の概略構成である。
図10に示すように、風量制御装置20は、図示しない制御パネル上の設定等に基づいて決定される目標吹出口温度TAO、及び車両に設置される各種センサによって検出される車内温度TR,外気温度TAM,日射量TSを入力信号とし、これら入力信号に基づいて顔側吹出口での風量レベルVAaを設定する第1のレベル設定部22aと、同様に、目標吹出口温度TAO,車内温度TR,外気温度TAM,日射量TSを入力信号とし、これら入力信号に基づいて、足側吹出口の風量レベルVAbを設定する第2のレベル設定部22bと、両レベル設定部22a,22bが設定する風量レベルVAa,VAbに従って、実際に風量を増減制御する風量制御ユニット24とを備えている。
【0135】
そして、第1及び第2のレベル設定部22a,22b(以下、総称して単にレベル設定部22という)は、いずれも、神経回路網26と、上記入力信号を0〜1の間の値に正規化して神経回路網26に入力する前処理部28と、神経回路網26の出力を、0〜31の間の値を持つ風量レベルVAに規格化する後処理部30とを備えている。
【0136】
なお、神経回路網26は、顔側(第1のレベル設定部22a),足側(第2のレベル設定部22b)のいずれも、入力層,第1中間層,第2中間層,出力層からなる4層型であり、各層のニューロン(ユニット)数を、表1に示す通り設定してものを用いた。
【0137】
【表1】
【0138】
また、各入力信号の入力範囲、及び分解能は、表2に示す通りである。
【0139】
【表2】
【0140】
なお、ある入力信号Sの入力範囲の下限値をVL,上限値をVH,分解能をDとした場合、その入力信号Sは、(43)式で表される離散値を取る。
S=VL+α・i (i=0,1,…,D) (43)
但し、α=(VH−VL)/D
つまり、神経回路網26に入力される可能性のある信号数は、各入力信号毎にそれぞれD+1個であり、即ち入力される可能性のある入力信号の組み合わせは、本実験例の場合では、 (216+1)×(28+1)×(28+1)×(27+1)≒5.58×1011となる。
【0141】
このように構成された神経回路網26を、それぞれ、203148個の教師データを用いて学習を行った後、各神経回路網26を、本発明が適用された検証装置と、テストデータによる従来方法とにより検証を行い、その検証時間を比較した。
【0142】
なお、検証装置では、最初は、分割点を設けず、即ち全入力信号空間に対応する区間入力ベクトル信号Isを一つだけ生成して処理を開始した。
一方、従来方法は、入力される可能性のある全数(5.58×1011個)のテストデータを順次神経回路網に入力して、網出力信号が許容誤差内にあるか否かを逐一比較すべきであるが、これは非常に時間がかかるため、203148個の入力信号の検証に要する時間を実測し、これに基づき全数の入力信号の検証に要する時間を予測して求めた。
【0143】
これらの比較結果を表3に示す。
【0144】
【表3】
【0145】
このように、従来法では、入力される可能性のある全信号について漏れなく検証を行おうとすると、400日以上費やす必要があり、実際上、このような検証は不可能である。これに対して本検証装置を用いれば、6.5分以内で検証が完了する。つまり、従来方法では、入力される可能性のある全信号に対して確実に動作を保証することが不可能な神経回路網を、本検証装置では、高速に検証できることが確認された。
[算出例1]
次に、区間教師出力信号t(Is) の算出例を具体的に説明する。
【0146】
ここでは、入力信号が、2次元信号x=(x1,x2)∈[0,1]2 であり、教師出力信号t(x)が、次の(44)式で定義される場合について説明する。
t(x)=0.5+0.5・sin{π・(x1+x2)} (44)
各入力信号が取り得る区間X1,X2は、
X1=[x1 L,x1 U]⊂[0,1]
X2=[x2 L,x2 U]⊂[0,1]
であるので、x1+x2=y(∈Y)とすると、
Y=[yL,yU]=X1+X2⊂[0,2]となる。
【0147】
ここで、(44)式において、xの代わりにyを用いると、(44a)式にて表され、そのグラフは図11に示すようなものとなる。
t(y)=0.5+0.5・sin{π・y} (44a)
図11から明らかなように、0≦y≦2において、t(y)は、y=0.5で最大値1、y=1.5で最小値0を取り、これ以外に極値を持たない。
【0148】
この性質を利用して区間Y=[yL,yU]に対するt(y)の区間演算値t(Y)を、次のようにして求めることができる。
即ち、区間Yに、t(y)が極値となるy=0.5及びy=1.5のいずれも含まれていなければ、この区間で関数t(y)は単調増加、或いは単調減少となるため、t(Y)を(45)式で求めることができる。
【0149】
一方、区間Y=[yL,yU]に、y=0.5 が含まれていれば最大値が決まるため(46)式、またy=1.5 が含まれていれば最小値が決まるため(47)式、更に、y=0.5 及びy=1.5 のいずれもが含まれていれば最大値,最小値の両方が決まるため(48)式にて求めることができる。
【0150】
t(Y)=[min{t(yL),t(yU)},max{t(yL),t(yU)}] (45)
t(Y)=[min{t(yL),t(yU)},1] (46)
t(Y)=[0,max{t(yL),t(yU)}] (47)
t(Y)=[0,1] (48)
このように、定義関数t(y)の特徴を利用し、定義関数t(y)が単調増加または単調減少する区間と、関数が極値となる値をを含む区間とで場合分けすることにより、区間教師出力信号を少ない計算量で正確に求めることができる。
【0151】
具体的な数値を代入した算出例を以下に示す。
▲1▼X1=[0.2,0.3],X2=[0.2,0.5]の場合(図11(a),(46)式参照)
X1+X2=Y=[0.4,0.8] より t(X)=[0.794,1]
▲2▼X1=[0.3,0.8],X2=[0.8,0.9]の場合(図11(b),(47)式参照)
X1+X2=Y=[1.1,1.7] より t(X)=[0,0.345]
▲3▼X1=[0.5,0.7],X2=[0.3,0.5]の場合(図11(c),(45)式参照)
X1+X2=Y=[0.8,1.2] より t(X)=[0.206,0.794]
[算出例2]
次に、第3実施形態にて説明した区間網出力信号算出処理について、その処理内容の理解を助けるための算出例を示す。
【0152】
ここでは、図12に示すように、2個のユニットU1,U2からなる入力層(第1層),2個のユニットU3,U4からなる中間層(第2層),1個のユニットからなる出力層(第3層)を備えた神経回路網について、具体的に区間網出力信号n(Xtop) を算出してみる。
【0153】
なお、シナプス結合、及び中間層,出力層の各ユニットにおけるバイアスは、
ω31=ω32=ω41=ω42=ω53=1
ω54=−1
b3=b4=b5=0
であり、初期区間入力ベクトル信号Xtop は、
Xtop =(XP1,XP2)=([0,1],[0,1])t
であるとする。
▲1▼初期区間入力ベクトル信号Xtop の中央値xC を求める(S610)。
【0154】
xC=(x1 C,x2 C)t=(0.5,0.5)t
▲2▼各ユニットUjについて、中央値xC に対する重み付け信号netj Cを求める(S620)。但し、ユニットU1,U2は入力をそのまま出力するので、
o1=o1=O.5 である。
【0155】
net3 C=b3+ω31・o1+ω32・o2=0+1×0.5+1×0.5=1.0
o3 C=f(net3 C)=0.7310
net4 C=b4+ω41・o1+ω42・o2=0+1×0.5+1×0.5=1.0
o4 C=f(net4 C)=0.7310
net5 C=b5+ω53・o3+ω54・o4=0+1×0.7310−1×0.7310=0.0
o5 C=f(net5 C)=0.5
▲3▼入力層のユニットU1,U2の区間出力信号O1,O2を初期化する(S630)。
【0156】
O1=[0,1] O2=[0,1]
▲4▼入力層のユニットU1,U2での傾斜Φom/ΦXPnを初期化する(S640)。
Φo1/ΦXP1=[1,1] Φo1/ΦXP2=[0,0]
Φo2/ΦXP1=[0,0] Φo2/ΦXP2=[1,1]
▲5▼ユニットU3 について(j=3)
・第1の区間Net3_1を求める(S660)。
【0157】
Net3_1=b3+ω31・O1+ω32・O2=[0,1]+[0,1]=[0,2]
・傾斜Φnet3/ΦXPnを求める(S670)。
Φnet3/ΦXP1=ω31・(Φo1/ΦXP1)+ω32・(Φo2/ΦXP1)=[1,1]
Φnet3/ΦXP2=ω31・(Φo1/ΦXP2)+ω32・(Φo2/ΦXP2)=[1,1]
・第2の区間Net3_2を求める(S680)。
【0158】
W=(Φnet3/ΦXP1)*(XP1−x1 C)+(Φnet3/ΦXP2)*(XP2−x2 C)
=1・0.5+1・0.5=1
Net3_2=[net3 C−W,net3 C+W]=[1−1,1+1]=[0,2]
・重み付け信号Net3を求める(S690)。
【0159】
Net3=Net3_1∩Net3_2=[0,2]=[net3 L,net3 U]
・区間出力信号を求める(S700)。
O3=f(Net3)=[0.5,0.881]=[f(net3 L),f(net3 U)]
・傾斜Φf/Φnet3を求める(S720)。
【0160】
(Net3=[0,2]⊂[0,∞)であるため、(39)式を用いる。)
Φf/ΦNet3=[0.150,0.231]
・傾斜Φo3/ΦXPmを求める(S730)。
Φo3/ΦXP1=(Φf/ΦNet3)・(Φnet3/ΦXP1)=[0.150,0.231]
Φo3/ΦXP2=(Φf/ΦNet3)・(Φnet3/ΦXP2)=[0.150,0.231]
▲6▼ユニットU4 について(j=4)
・ユニットU3 と全く同様に計算され、以下の結果が得られる。
【0161】
O4=f(Net3)=[0.5,0.881]
Φo4/ΦXP1=(Φf/ΦNet4)・(Φnet4/ΦXP1)=[0.150,0.231]
Φo4/ΦXP2=(Φf/ΦNet4)・(Φnet4/ΦXP2)=[0.150,0.231]
▲7▼ユニットU5 について(j=5)
・第1の区間Net5_1を求める(S660)。
【0162】
Net5_1=b5+ω53・O3+ω54・O4=[−0.381,0.381]
・傾斜Φnet5/ΦXPnを求める(S670)。
・第2の区間Net5_2を求める(S680)。
【0163】
・重み付け信号Net5を求める(S690)。
【0164】
Net5=Net5_1∩Net5_2=[−0.081,0.081]
・区間出力信号O5を求める(S700)。
O5=f(Net5)=[0.480,0.520]
▲8▼区間網出力信号n(Xtop) を設定する(S750)。
【0165】
n(Xtop)=O5=[0.480,0.520]
【図面の簡単な説明】
【図1】第1実施形態の神経回路網検証装置の概略構成を表すブロック図であある。
【図2】検証装置のCPUが実行する検証処理を表すフローチャートである。
【図3】検証対象である神経回路網の構成を表す説明図である。
【図4】区間入力ベクトル信号の生成を方法を表す説明図である。
【図5】図2のS180にて実行される区間網出力信号算出処理の詳細を表すフローチャートである。
【図6】図2のS200にて実行される区間誤差判定処理の詳細を表すフローチャートである。
【図7】第2実施形態における区間誤差判定処理を表すフローチャートである。
【図8】第3実施形態における区間網出力信号算出処理を表すフローチャートである。
【図9】図8のS720にて実行される傾斜算出処理の詳細を表すフローチャートである。
【図10】実験に用いられる神経回路網が適用された風量制御装置の概略構成を表すブロック図である。
【図11】区間教師出力信号の算出例を表す説明図である。
【図12】算出例2に用いられた神経回路網の構成図である。
【図13】神経回路網の検証方法、及びその問題点を表す説明図である。
【図14】本発明の効果を表す説明図である。
【図15】区間誤差による判定方法を表す説明図である。
【図16】区間誤差と臨界点との関係を表す説明図である。
【図17】傾斜の定義を表す説明図である。
【図18】下に凸な関数における傾斜の算出方法を表す説明図である。
【図19】シグモイド関数、及びその微係数を表すグラフである。
【符号の説明】
2…神経回路網検証装置 4…データファイル格納部
6…網構成部 8…入力データ作成部 10…検証実行部
12…入力操作部 14…表示部 20…風量制御装置
22…レベル設定部 24…風量制御ユニット 26…神経回路網
28…前処理部 30…後処理部
DBI…初期区間入力ベクトルデータベース
DBO…検証結果データベース DFK…検証データファイル
DFN…神経回路網データファイル NET…神経回路網
Claims (13)
- 伝達信号を生成するユニットをそれぞれ一つ以上備えた入力層,中間層,出力層と、各層間のユニットを結合して前記伝達信号を伝送するシナプスとからなり、前記入力層に入力信号を与えると前記ユニット間を前記出力層に向けて前記伝達信号が順次伝送されることにより、前記出力層から得られる伝達信号を網出力信号とし、該網出力信号と予め設定された教師出力信号との誤差が許容範囲内となるようシナプス荷重を設定する神経回路網の検証方法であって、
前記入力層への各入力信号の値域をそれぞれ1次元の入力信号空間として、前記入力層へのM(Mは1以上の整数)次元の入力信号空間を複数の部分入力信号空間に分割し、
この分割された部分入力信号空間毎に、前記網出力信号が取り得る値域を表す区間網出力信号を算出し、
前記部分入力信号空間毎に、前記教師出力信号が取り得る値域を表す区間教師出力信号を算出し、
前記部分入力信号空間毎に、前記区間網出力信号と前記区間教師出力信号との誤差が取り得る値域を表す区間誤差を算出し、
該区間誤差と前記許容範囲との包含関係の判定し、
該判定の結果、前記区間誤差の一部が前記許容範囲外にあると判定された部分入力信号空間を、複数の部分入力信号空間に再分割し、該再分割により生成された部分入力信号空間毎に前記包含関係を再判定する操作を繰り返し行うことにより、前記神経回路網を検証することを特徴とする神経回路網の検証方法。 - 請求項1記載の検証方法において、
前記区間誤差の幅が、前記許容範囲の幅より小さな限界幅以下である場合に、前記部分入力信号空間の再分割を禁止することを特徴とする神経回路網の検証方法。 - 請求項1又は請求項2記載の検証方法において、 前記部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、
前記入力層から前記出力層への信号伝送過程に従って各ユニット毎に、該ユニットにて生成される前記伝達信号が前記区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出して、前記出力層のユニットについて算出された区間伝達信号を、前記網出力信号が取り得る値域を表す区間網出力信号とし、
該区間網出力信号に基づいて前記区間誤差を算出することを特徴とする神経回路網の検証方法。 - 請求項3記載の検証方法において、
前記入力層のユニットは、前記入力信号を、そのまま前記伝達信号として出力し、前記中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成し、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成するものであって、
前記中間層及び出力層のユニットについては、
前段のユニットから入力される前記区間伝達信号と前記シナプス荷重との積和に基づいて求められる第1の区間信号と、前記重み付け信号が前記区間入力信号に対して取り得る変化率の値域を表す第1の傾斜と前記区間入力信号との積和に基づいて求められる第2の区間信号との共通区間を求め、該共通区間を、前記重み付け信号が前記区間入力信号に対して取り得る値域を表す区間重み付け信号とし、
該区間重み付け信号と前記出力関数とに基づいて前記区間伝達信号を生成することを特徴とする神経回路網の検証方法。 - 請求項4記載の検証方法において、
前記第1の傾斜を、前段のユニットから入力される前記伝達信号が前記区間入力信号に対して取り得る変化率の値域を表す第2の傾斜と前記シナプス荷重との積和により算出し、
後段へ出力する伝達信号についての前記第2の傾斜を、前記前記出力関数の傾きが前記区間重み付け信号に対して取り得る値域を表す第3の傾斜と前記第1の傾斜との積により算出することを特徴とする神経回路網の検証方法。 - 請求項5記載の検証方法において、
前記出力関数f(x)がシグモイド関数または双曲線関数であり、該出力関数f(x)の導関数をf'(x) ,区間重み付け信号を[NL,NU],その内点をNCとするとき、前記第3の傾斜を、NU<0であれば[{f(NL)−f(NC)}/{NL−NC},{f(NU)−f(NC)}/{NU−NC}]、NL≧0であれば[{f(NU)−f(NC)}/{NU−NC},{f(NL)−f(NC)}/{NL−NC}]、それ以外であれば[min{f'(NL),f'(NU)},f'(0)]に設定することを特徴とする神経回路網の検証方法。 - 請求項1ないし請求項6のいずれか記載の検証方法をコンピュータシステムに実行させるためのプログラムが記録され、該記録内容を前記コンピュータシステムにより読取可能な記録媒体。
- 伝達信号を生成するユニットをそれぞれ一つ以上備えた入力層,中間層,出力層と、各層間のユニットを結合して前記伝達信号を伝送するシナプスとからなり、前記入力層に入力信号を与えると前記ユニット間を前記出力層に向けて前記伝達信号が順次伝送されることにより前記出力層から得られる伝達信号を網出力信号とし、該網出力信号と予め設定された教師出力信号との誤差が、許容範囲内となるようシナプス荷重を設定する神経回路網の検証装置であって、
前記入力層への各入力信号の値域をそれぞれ1次元の入力信号空間として、前記入力層へのM(Mは1以上の整数)次元の入力信号空間を部分入力信号空間に分割する区間分割手段と、
前記部分入力信号空間毎に、前記網出力信号が取り得る値域を表す区間網出力信号を算出する区間網出力信号算出手段と、
前記部分入力信号空間毎に、前記教師出力信号が取り得る値域を表す区間教師出力信号を算出する区間教師出力信号算出手段と、
前記部分入力信号空間毎に、前記区間網出力信号及び前記区間教師出力信号間の誤差が取り得る値域を表す区間誤差を算出する区間誤差算出手段と、
前記区間誤差と前記許容範囲との包含関係を判定する判定手段と、
を備え、
前記区間分割手段に、前記判定手段により前記区間誤差の一部が前記許容範囲外にあると判定された部分入力信号空間を、複数の部分入力信号空間に再分割する区間再分割手段を設けたことを特徴とする神経回路網の検証装置。 - 請求項8記載の検証装置において、
前記区間分割手段に、前記区間誤差の幅が、前記許容範囲の幅より小さな限界幅以下である場合に、前記区間再分割手段による前記部分入力信号空間の再分割を禁止する再分割禁止手段を設けたことを特徴とする神経回路網の検証装置。 - 請求項8又は請求項9記載の検証装置において、
前記区間網出力信号算出手段は、前記部分入力信号空間を形成する各入力信号の値域のそれぞれを区間入力信号とし、前記入力層から前記出力層への信号伝送過程に従って各ユニット毎に、該ユニットにて生成される前記伝達信号が前記区間入力信号に対して取り得る値域を表す区間伝達信号を、区間演算を用いて順次算出する区間伝達信号算出手段を備え、
該区間伝達信号算出手段により前記出力層のユニットについて算出された区間伝達信号を、前記網出力信号が取り得る値域を表す区間網出力信号とすることを特徴とする神経回路網の検証装置。 - 請求項10記載の検証装置において、
前記入力層のユニットは、前記入力信号を、そのまま前記伝達信号として出力し、前記中間層及び出力層のユニットは、前段のユニットから入力される全ての伝達信号と該伝達信号にそれぞれ対応するシナプス荷重とに基づいて重み付け信号を生成して、該重み付け信号を入力とする予め決められた出力関数により後段へ出力する伝達信号を生成するものであって、
前記区間伝達信号算出手段は、
前段のユニットから入力される前記区間伝達信号と前記シナプス荷重との積和に基づいて第1の区間信号を算出する第1区間信号算出手段と、
前記区間入力信号と前記重み付け信号が前記区間入力信号に対して取り得る変化率の値域を表す第1の傾斜との積和に基づいて第2の区間信号を算出する第2区間信号算出手段と、
前記第1及び第2の区間信号の共通区間を、前記重み付け信号が前記区間入力信号に対して取り得る値域を表す区間重み付け信号として設定する共通区間抽出手段と、
該共通区間抽出手段により設定された前記区間重み付け信号と前記出力関数とに基づいて前記区間伝達信号を生成する区間伝達信号生成手段と、
を備えることを特徴とする神経回路網の検証装置。 - 請求項11記載の検証装置において、
前記第1の傾斜を、前段のユニットからの前記伝達信号が前記区間入力信号に対して取り得る変化率の値域を表す第2の傾斜と前記シナプス荷重との積和により算出する第1傾斜算出手段と、
後段へ出力する伝達信号についての前記第2の傾斜を、前記出力関数の傾きが前記区間重み付け信号に対して取り得る値域を表す第3の傾斜と前記第1の傾斜との積により算出する第2傾斜算出手段と、
を備えることを特徴とする神経回路網の検証装置。 - 請求項12記載の検証装置において、
前記出力関数f(x)がシグモイド関数または双曲線関数であり、該出力関数f(x)の導関数をf'(x) ,区間重み付け信号を[NL,NU],その内点をNCとするとき、前記第3の傾斜を、NU<0であれば[{f(NL)−f(NC)}/{NL−NC},{f(NU)−f(NC)}/{NU−NC}]、NL≧0であれば[{f(NU)−f(NC)}/{NU−NC},{f(NL)−f(NC)}/{NL−NC}]、それ以外であれば[min{f'(NL),f'(NU)},f'(0)]に設定する第3傾斜設定手段を備えることを特徴とする神経回路網の検証装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33206897A JP3550985B2 (ja) | 1997-12-02 | 1997-12-02 | 神経回路網の検証方法,検証装置及び記録媒体 |
US09/323,107 US6466924B1 (en) | 1997-12-02 | 1999-06-01 | Verification method of neural network and verification apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33206897A JP3550985B2 (ja) | 1997-12-02 | 1997-12-02 | 神経回路網の検証方法,検証装置及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11167563A JPH11167563A (ja) | 1999-06-22 |
JP3550985B2 true JP3550985B2 (ja) | 2004-08-04 |
Family
ID=18250796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33206897A Expired - Fee Related JP3550985B2 (ja) | 1997-12-02 | 1997-12-02 | 神経回路網の検証方法,検証装置及び記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6466924B1 (ja) |
JP (1) | JP3550985B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658443B1 (en) * | 1999-11-03 | 2003-12-02 | Sun Microsystems, Inc. | Method and apparatus for representing arithmetic intervals within a computer system |
US6842764B2 (en) * | 2001-03-26 | 2005-01-11 | Sun Microsystems, Inc. | Minimum and maximum operations to facilitate interval multiplication and/or interval division |
US7020672B2 (en) * | 2001-03-30 | 2006-03-28 | Koninklijke Philips Electronics, N.V. | Reduced complexity IDCT decoding with graceful degradation |
US20030055861A1 (en) * | 2001-09-18 | 2003-03-20 | Lai Gary N. | Multipler unit in reconfigurable chip |
US6916398B2 (en) * | 2001-10-26 | 2005-07-12 | Applied Materials, Inc. | Gas delivery apparatus and method for atomic layer deposition |
CN103324980B (zh) * | 2013-04-25 | 2016-12-28 | 华北电力大学(保定) | 一种风电场风速预测方法 |
CN105528517B (zh) * | 2015-12-01 | 2019-02-26 | 北京国电通网络技术有限公司 | 基于神经网络、小波分解光伏电站功率预测方法、*** |
CN106326919A (zh) * | 2016-08-16 | 2017-01-11 | 西北农林科技大学 | 一种基于bp神经网络的生猪行为分类方法 |
US10634081B2 (en) * | 2018-02-05 | 2020-04-28 | Toyota Jidosha Kabushiki Kaisha | Control device of internal combustion engine |
JP6702389B2 (ja) * | 2018-10-09 | 2020-06-03 | トヨタ自動車株式会社 | 車両用駆動装置の制御装置、車載電子制御ユニット、学習済みモデル、機械学習システム、車両用駆動装置の制御方法、電子制御ユニットの製造方法及び出力パラメータ算出装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02246485A (ja) | 1989-03-17 | 1990-10-02 | Matsushita Electric Ind Co Ltd | ベクトル量子化装置 |
JPH02266458A (ja) | 1989-04-06 | 1990-10-31 | Nec Corp | ニューラルネットワークシミュレーション装置 |
JPH02310779A (ja) | 1989-05-26 | 1990-12-26 | Matsushita Electric Ind Co Ltd | 適応型画像フィルタ |
JPH05189398A (ja) | 1992-01-14 | 1993-07-30 | Fujitsu Ltd | ニューラルネットワークによる学習方法 |
JPH0736847A (ja) * | 1993-07-15 | 1995-02-07 | Jun Nakatani | 人工知能における学習・推論方法および装置 |
JPH07249089A (ja) | 1994-03-09 | 1995-09-26 | Nippondenso Co Ltd | 閾値論理変換神経回路網 |
-
1997
- 1997-12-02 JP JP33206897A patent/JP3550985B2/ja not_active Expired - Fee Related
-
1999
- 1999-06-01 US US09/323,107 patent/US6466924B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11167563A (ja) | 1999-06-22 |
US6466924B1 (en) | 2002-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | A fuzzy system for concrete bridge damage diagnosis | |
JP3550985B2 (ja) | 神経回路網の検証方法,検証装置及び記録媒体 | |
JPH05151188A (ja) | エキスパートシステム機能を備えたニユーラルネツトワーク | |
WO2016071725A1 (en) | Grading and monitoring of a geographical region | |
Zhao et al. | Concrete bridge deterioration diagnosis using fuzzy inference system | |
Bagheri et al. | Modeling of epistemic uncertainty in reliability analysis of structures using a robust genetic algorithm | |
CN113420833B (zh) | 一种基于问题语义映射的视觉问答方法及装置 | |
CN110837787B (zh) | 一种三方生成对抗网络的多光谱遥感图像检测方法及*** | |
EP3614314A1 (en) | Method and apparatus for generating chemical structure using neural network | |
Kawashima et al. | The aleatoric uncertainty estimation using a separate formulation with virtual residuals | |
JP2000339005A (ja) | 制御対象の最適化制御方法及び制御装置 | |
CN112686099A (zh) | 适用于用电业扩报装申请的图文资料自动识别方法及*** | |
JP3029451B2 (ja) | ファジィ制御装置 | |
Hatzilygeroudis et al. | PASS: An expert system with certainty factors for predicting student success | |
JP2019204268A (ja) | ニューラルネットワークを用いた情報処理方法、システムおよびその構築システム | |
Jerić et al. | Data mining for assessing the credit risk of local government units in Croatia | |
Zheng et al. | A multi-team competitive optimization algorithm for bearing fault diagnosis | |
JP3287738B2 (ja) | 関係関数探索装置 | |
Rotshtein et al. | Neurolinguistic identification of nonlinear dependences | |
JP4267726B2 (ja) | 制御装置における動作信号と操作量との関係を決定する装置、制御装置、データ生成装置、入出力特性決定装置及び相関関係評価装置 | |
Greig | Validation, statistical testing, and the decision to model | |
JP7472999B2 (ja) | 出力制御プログラム、出力制御方法および情報処理装置 | |
Antonsson et al. | Fuzzy fitness functions applied to engineering design problems | |
US20230316107A1 (en) | Information processing device, information processing method, and recording medium | |
Park et al. | Interior wind noise prediction and visual explanation system for exterior vehicle design using combined convolution neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040412 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |