【実施例】
【0021】
本実施形態のテストは大域的最適化、検索及び機械学習の問題の標準関数を選択して本発明及び通常の遺伝的アルゴリズムに対して性能テスト及び比較を行う。標準関数及び関連するパラメータの設定を表1に示す。
【表1】
【0022】
通常、群の大きさは変数すなわち次元数の10倍に設定され、よって本実施形態の群の大きさはS=300と設定され、通常の遺伝的アルゴリズム中の交叉率は通常p
c=0.5と設定され、変異率は通常p
m=0.2と設定される。検証が一致するようにするため、本発明では交叉率として0.5を採用し、変異率として0.2を採用する。各テスト関数をそれぞれ独立して30回実行する。関数の評価回数は全て3×10
5である。
2つのテスト関数に対し、本発明に係るアルゴリズム及び通常の遺伝的アルゴリズムの解の検索の平均値、標準差、最適性、及び精度の結果を表2及び表3にそれぞれ示す。
【表2】
【表3】
【0023】
表2及び表3の統計資料から分かるように、本発明のアルゴリズムによる最適化の平均値、標準差、最適性、及び精度が全て通常の遺伝的アルゴリズムより優れている。また、解の精度も大きく上回り、理論最適値に極めて近い。
【0024】
図5及び
図6はそれぞれ本発明及び通常の遺伝的アルゴリズムが関数の評価回数の変化に基づく平均適応度及び平均検索精度の関係を図示する。図示するように、本発明に係るアルゴリズムは最適化テスト関数f
1及びf
2の場合に得られる最適解は理論最適解に更に接近する。また、本発明に係るアルゴリズムの検索速度は通常の遺伝的アルゴリズムよりもはるかに速い。
【0025】
上述のように、本発明は高い最適化精度及び速い収束速度を有する。
【0026】
公衆が本発明の技術方法を理解して使用可能にするため、以下では2つの大域的最適化、検索及び機械学習の問題の応用実施形態を基に更に説明する。
【0027】
(応用実施形態1−簡単なニューラルネットワークに基づく排他的論理和機械学習の問題)
人工ニューラルネットワーク(Artificial Neural Networks、略称ANNs)はニューラルネットワーク(NNs)とも呼ばれ、動物のニューラルネットワークの振る舞いの特徴を模倣し、分散式並行情報処理及び機械学習のアルゴリズムモデルを実現させる。このネットワークは相互接続されたノンリニアニューロンノードに依存し、ノード間の相互接続関係及び比重を調整することにより情報の処理及び学習、記憶させる目的が達成される。
図7は簡単なニューラルネットワークを図示し、円はニューロンを表し、入力点「−1」はバイアスノードと称される。ニューラルネットワークの最も左側の層は入力層であり、最も右側の層は出力層である。中間の全てのノードにより隠蔽層が構成され、訓練サンプルセット中でこれらの値を直接観察することはできない。また、前記ニューラルネットワークの機械学習の実施例において、2つの入力ユニット(バイアスユニットを含まず)、2つの隠蔽ユニット、及び1つの出力ユニットを観察することができる。
【0028】
図8に示すように、簡単なネットワークを有する1つのニューラルネットワークにより2つの変数の排他的論理和問題を実現し、獲得形質の遺伝的アルゴリズムを使用した機械学習の状況について説明する。これは実効的で有効な学習アルゴリズムを探し出すために重要な意義がある。入力ニューロンはx
1、x
2であり、出力はyであり、排他的論理和問題の4種類の訓練モデルは表4に示す。
【表4】
入力層のニューロンが出力層のニューロンに接続される重み値は合計9個であり、w
n、n=1,2,・・・,9と記載する。
本発明の大域的最適化、検索及び機械学習の技術方法によりニューラルネットワークが実現する排他的論理和問題を解決し、訓練ネットワークの重み値はw
nであり、具体的な実施フローチャートは
図1及び
図2に示す。
【0029】
工程1、排他的論理和問題の構造の目的関数f(W)に基づくと、Wは重みベクトルであり、すなわちW={w
n,n=1,2,・・・,9}となる。普遍性を保持させるため、ここでは
【数1】
が採用され、mは訓練モデル番号であり、y
mは表示訓練モデルmの出力を表す。
図8からはfがWの関数であることが分かり、その値は解の適応度を表し、これが大きい程訓練または学習の誤差が小さくなる。よって、本実施形態の目的はfを最大化させることである。
【0030】
工程2では、問題
対象の最適化要求に基づいて通常の遺伝的アルゴリズムの操作パラメータが自動計算または手動入力され、Wが染色体として編集され、初期化が行われる。
工程(1)、まず、通常の遺伝的アルゴリズムの作動モードに基づくと、S=90であり(一般的にはパラメータ変数の次元の10倍)、変数の次元d=9であり、W取得値の範囲は−5から4.9であり、遺伝率としてp
c=0.6が採用され、変異率としてp
m=0.05が採用される。
工程(2)、その後に問題
対象の最適化が必要な構造及びそのパラメータに対して十進数の編集が行われ、個体遺伝子鎖、染色体、及び解候補群が形成され、遺伝子鎖長Lが確定される。ここでは、二桁の十進数が重み値の編集方法を説明するために採用され、具体的には表5に示し、遺伝子鎖長L=2×d=2×9=18である。例えば、W={w
1,w
2,w
3,w
4,w
5,w
6,w
7,w
8,w
9}={−5,−4.9,−4.8,−4.7,0.0,4.6,4.7,4.8,4.9}であり、編集形式はWc={000102035096979899}である。
【表5】
工程(3)、最後に問題
対象の変数の取得範囲に基づいて初期化が行われ、1組の初期解候補がランダムに生成される。k=0である場合、各染色体P
i0の重み値ベクトルの編集形式はW
c={x
10(i),x
20(i),・・・,x
j0(i)}であり、P
i0={x
j0(i),i=1,・・・,S,j=1,・・・,L}となり、x
j0(i)はコードの各桁であり、初期群はG
0={P
i0,i=1,2,・・・,S}とする。
【0031】
工程3において、最適化要求に基づいてk世代群をG
k={P
1k,P
2k,・・・,P
Sk}と仮定し、P
ikは群中の1つの個体(染色体)を表し、反復法を利用し、書き換え及び突然変異操作によりk+1世代群G
k+1={P
1k+1,P
2k+1,・・・,P
Sk+1}が得られる。最適化過程は以下のとおりである。
工程(1)、個体評価。表4によると、訓練入力マトリクスは
【数2】
であり、希望出力マトリクスはY=[0 1 0 1]であり、群G
k中の各個体P
ikの解読後の適応度、すなわち目的関数値が計算され、ここでは最大値の問題に属する。例えば、f(P
i1k)=0.4、f(P
i2k)=0.2であり、P
i1kはP
i2kより優れる。
工程(2)、
図2に示すように、ラマルクの「遺伝オペレーター」の書き換え操作が実行されて新しい解候補群G’
k+1が生成され、以下の工程を含む。
工程(2a)、交叉率p
cに基づいて2つの親染色体(すなわち、親解候補の遺伝子クラスタ)がランダムに選択され、すなわち(0,1]の間の1つの乱数rがランダムに生成され、r<p
cである場合、2つの親染色体が選択され、さもなくば選択がなされず、乱数rの生成が継続される。例えば、P
i1k={x
1k(i1),x
2k(i1),・・・,x
jk(i1)}
dj=1及びP
i2k={x
1k(i2),x
2k(i2),・・・,x
jk(i2)}
dj=1となる。
工程(2b)、2つの染色体の適合度関数値f(P
i1k)及びf(P
i2k)が比較される。例えば、f(P
i1k)>f(P
i2k)である場合、f(P
i1k)は子世代に遺伝され、より多くの遺伝子となる。遺伝子の遺伝の百分率p
tが下記のように計算される。
【数3】
下記計算式に基づいて次世代に遺伝される遺伝子数が計算される。
【数4】
工程(2c)、遺伝オペレーターの操作及び書き換え操作の実行。適応度の高い染色体が保留され、適応度が高い染色体上のn
t個の遺伝子が適応度が低い染色体の対応する位置に書き換えられ、新しい染色体が形成される。対応して書き換えられることにより適応度の高い染色体上の選択された位置の遺伝子が適応度が低い染色体の対応する位置上に書き換えられ、以降同様に実行され、基本的なフローチャートは
図2に示す。1回の書き換え操作は
図3に示す(図中では全てのコードビットが記載されているわけではない)。上述の工程に基づくと、P
i2k中の18×2/3=12個のコードビットはP
i1k中のコードビットにより書き換えられた後に1回書き換えられる。
工程(2d)、上述の工程(2a)乃至工程(2c)の過程がp
cS回重複して実行され、書き換え操作後の新しい解候補の臨時群G’
k+1が生成される。
書き換え回数がN
p=p
cS(0.6×90=54。積が整数ではない場合、切り上げて整数にする)より多いか等しい場合、書き換え操作が終了し、書き換え回数が54より少ない場合、継続して工程(2a)乃至工程(2c)が繰り返し実行される。
【0032】
工程(3)、1つの適切な「変異オペレーター」が使用され、臨時群G’
k+1に対して突然変異操作が実行され、新しい解候補群G
k+1が獲得される。ここでは、機械学習の問題は比較的簡単であり、本実施形態では「使い捨てオペレーター」の操作が採用されず、比較的常用される通常の遺伝的アルゴリズムにおける先天的一様突然変異法のみが採用される。変異率はp
m=0.05であり、1回の反復後の新しい群G
k+1中では90×18×0.05=81(積が整数出ない場合、切り上げて整数にする)個のコードビットを有し、且つ0乃至9の間の1つの新しい値が獲得される。
【0033】
工程(4)、所定の設定の終了条件が満たされるまで工程(1)乃至工程(3)が繰り返し反復される。ここでは、終了条件は単純に100世代までの進化と設定される。
【0034】
工程(5)、解読後の前記最適解が今回の最適化計算要求を満たしているか否か評価が下され、要求を満たしている場合、演算が終了する。要求を満たしていない場合、アルゴリズムの操作パラメータが修正され、例えば、交叉率p
cや変異率p
mが手動で修正されるか、或いは群の大きさ及び進化の反復回数が増大され、再計算が行われ、最終最適化結果が獲得される。ここでは、最適化計算要求はf>0.95であり、
図9は要求を満たしている。
【0035】
工程4では、問題対象の末代最適解集W
0が出力される。
図8には1つの重み値の最適解集合を示す。
【0036】
図9及び
図10はそれぞれ本発明に係るニューラルネットワークの最適化により2つの変数の排他的論理和機械学習の問題が解決された場合の100回反復が行われる最適化及び平均目的関数値並びに獲得された入力と出力の関係を示す。図から分かるように、本発明に係るアルゴリズムはニューラルネットワーク排他的論理和問題の重み値が最適化されて得られる出力が希望出力に近付く。
【0037】
上述のように、本発明に係る獲得形質の遺伝的アルゴリズムはニューラルネットワークを効果的に最適化させ、最適化された重み値が検索され、機械学習の問題も解決される。
【0038】
さらに、
図7に示すネットワーク構造は遺伝子クラスタに編集され、これにより重み値も同時に最適化される。
【0039】
問題
対象に要求されるネットワーク構造がより複雑な場合、獲得形質の遺伝的プログラミングを実施することによりネットワーク構造が直接的により自由に最適化される。
【0040】
(応用実施形態2−信号処理問題)
粒子フィルターアルゴリズムはノンリニア信号処理における重要な技術であり、システムモデル特性及びノイズ分布による制限を受けず、他のフィルター技術よりも高い適用性を有する。然しながら、粒子フィルターアルゴリズムの性能は自身の粒子窮乏化問題の制限を受ける。本発明に係るアルゴリズムを利用することで粒子フィルターアルゴリズムの再サンプリング過程における粒子欠乏問題が解決され、粒子分布が最適化され、粒子サンプルが実際の事後確率密度サンプルに更に近付き、フィルター性能が向上する。
【0041】
ここでは、粒子フィルターによりノンリニア動態システムの状態評価を実現させ、獲得形質の遺伝的アルゴリズムを使用した粒子フィルターによる処理信号の最適化状況について説明し、性能が優れたノンリニアフィルターアルゴリズムを見つけることの重要性を説明する。システム状態の空間モデルは下記のとおりである。
【数5】
【数6】
プロセスノイズはV
k〜Gamma(3,2)であり、観測ノイズはn
k〜N(0,0.00001)である。観測時間は70と設定され、実行回数は200と設定され、粒子数Nは10である。
【0042】
本発明に関わる大域的最適化、検索及び機械学習技術方法を利用して粒子フィルターアルゴリズムの粒子窮乏化問題を解決させ、粒子分布を最適化させる具体的な実施方式は以下のとおりである。
【0043】
工程1では、ノンリニア動態システムの状態評価問題の構造の目的関数f(x)に基づき、ここでは粒子の重み値関数が選択される。
【0044】
工程2では、問題
対象の最適化要求に基づ
いて、通常の遺伝的アルゴリズムの操作パラメータが自動計算または手動入力され、初期化が行われる。
工程(1)、まず、通常の遺伝的アルゴリズムの作動モードに基づいて、群の大きさS=N=10が確定される。Nは粒子数であり、変数の次元はd=1であり、交叉率はp
c=0.9であり、変異率p
m=0.05である。
工程(2)、その後、問題
対象の最適化には構造及びパラメータの編集が必要であり、個体遺伝子鎖、染色体及び候選群が形成され、遺伝子鎖長Lが確定される。ここでは、固定有効桁数l
x=7の浮動小数点数が採用されて各重点サンプリング粒子値が編集され、すなわちシステムの状態値xである。各染色体は1つの粒子の浮動小数点数形式を表し、浮動小数点数値の一桁目は符号桁を表し、「1」は正数であり、「0」は負数である。遺伝子クラスタの長さは固定有効桁数であり、すなわちL=d×l
x=1×7である。例えば、k時間のi番目の粒子状態値がx=10.4711である場合、その浮動小数点数編集形式はx
c=(1104711)となる。
工程(3)、最後に、問題
対象の変数の取得範囲に基づいて初期化が行われ、1組の初期解候補がランダムに生成される。ここでは、粒子自身の初期化工程に基づいてランダムに生成される。k=0である場合、各染色体P
i0は粒子状態値の編集形式がx
c={x
10(i),x
20(i),・・・,x
d0(i)}となり、すなわちp
i0={x
j0(i),j=1,・・・,d}となり、x
j0(i)はコードの各桁であり、初期群はG
0={P
i0,i=1,2,・・・,S}とする。
【0045】
工程3では、最適化要求に基づいて、仮に現世代(k世代)群をG
k={P
1k,P
2k,・・・,P
Sk}とし、P
ikは群中の1つの個体(染色体)を表す。反復法を利用し、書き換え及び突然変異操作によってk+1世代群が獲得される。最適化過程は以下のとおりである。
工程(1)、個体評価では、粒子重み値の公式に基づいて、群G
k中の各個体P
ikがxとして解読された後の適応度が計算され、ここでは最大値問題に属する。例えば、f(P
i1k)=0.5779であり、f(P
i2k)=0.4221である。
工程(2a)、遺伝率p
cに基づいて2つの親染色体(すなわち、親解候補の遺伝子クラスタ)がランダムに選択され、例えば、P
i1k={x
1k(i1),x
2k(i1),・・・,x
jk(i1)}
dj=1及びP
i2k={x
1k(i2),x
2k(i2),・・・,x
jk(i2)}
dj=1となる。
工程(2b)、2つの染色体適合度関数値f(P
i1k)及びf(P
i2k)の比較が行われる。例えば、f(P
i1k)>f(P
i2k)である場合、P
i1kが子世代に遺伝されてより多くの遺伝子となる。遺伝子の遺伝の百分率p
tの計算は
【数7】
となり、下記計算式に基づいて計算される次世代に遺伝される遺伝子数n
tはn
t=L×p
t=7×3/5≫5(ここでは、整数への切り上げが実施される)となる。
工程(2c)、遺伝オペレーターが操作され、書き換え操作が実行される。適応度の高い染色体が保留され、適応度の高い染色体上のn
t個の遺伝子が適応度が低い染色体の対応する位置上に書き換えされ、新しい染色体が形成される。対応して書き換えられることにより適応度の高い染色体上の選択位置の遺伝子が適応度が低い染色体の対応する位置上に書き換えられ、以降同様であり、基本的なフローチャートは
図2に示す。上述の工程に基づくと、P
i2k中の7×3/5≫5個のコードビットがP
i1k中のコードビットにより書き換えられる。
工程(2d)、上述の工程(2a)乃至(2c)の過程がp
cS回繰り返し実行され、書き換え操作の後に新しい解候補の臨時群G’
k+1が生成される。
【0046】
工程(3)、1つの適切な「変異オペレーター」が使用され、臨時群G’
k+1に対して突然変異操作が実行され、新しい解候補群G
k+1が獲得される。ここでは、機械学習ノンリニアフィルターの問題は複雑であるため、この実施形態においては「変異オペレーター」を考慮して「使い捨てオペレーター」の操作が採用される。
【0047】
工程(3a)、一般的には、通常の遺伝的アルゴリズムにおいて比較的常用される非定方向の一様突然変異法が採用される。変異率p
m=0.05であるため、1回の反復後の新しい群G
k+1中では10×7×0.05≒4(ここでは、整数への切り上げが実施される)個のコードビットを有して変異が実行される。ランダムに選択された変異桁が編集された符号桁である場合、通常の遺伝的アルゴリズムの二進数に従って変異が行われ、すなわち、1から0に変わり、或いは0から1に変わる。符号桁の変異桁が除去されて0乃至9の間の1つの新しい値が獲得される。
【0048】
工程(3b)ではフィルターアルゴリズムの速度及び精度を高めるため、ここでは例を挙げて通常の遺伝的アルゴリズムにおける非定方向の「変異オペレーター」に獲得形質の遺伝的アルゴリズムにおける定方向の「使い捨てオペレーター」のオペレーターをどのように採用するかについて説明する。この応用実施形態では、非勾配最適化の山登りアルゴリズムが用いられて「使い捨てオペレーター」の操作が実現される。新しい群G
k+1中の個体P
ikに対し、一様突然変異法に相似し、変異率は同様にp
m=0.05が選択され、但し、非定方向突然変異とは異なり、ここでは新しい群G
k+1中の個体P
ikが対応する粒子状態値x
ikとして解読されて操作される。すなわち、1回の反復後に10×0.05≒1(ここでは、整数への切り上げが実施される)個の粒子状態を有して変異が実行され、変異した粒子状態により1つの元の粒子状態値付近のランダムな新しい値が獲得される。また、定方向突然変異は変異が必要な粒子状態値x
ikに対してN
m回の変異が実行されて最良の結果が得られる。ここでは、N
m=S×20%=10×20%=2であり、2回の変異後に得られる2つの新しい粒子状態値及び本来のx
ikが比較され、最良の結果が得られる。すなわち、定方向突然変異が形成される。よって、変異は常に悪い方向には向かわず、「使い捨てオペレーター」が実現される。
【0049】
工程(4)、所定の終了条件を満たすまで上述の工程3中の工程(1)乃至工程(3)が繰り返し反復される。
【0050】
工程(5)、前記最適解が今回の最適化計算要求を満たしているか否か評価が下され、要求を満たしている場合は演算が終了する。要求を満たしていない場合、アルゴリズムの操作パラメータが修正され、群の大きさ及び反復回数が増大され、再計算が行われて最終最適化結果が獲得される。
【0051】
工程4では、問題対象の末代最適解集が出力され、すなわち粒子集合である。
【0052】
表6は粒子数N=10の状況において200回モンテカルロ・テストが行われ、本発明及び他の複数種の粒子フィルターアルゴリズムが統計され、すなわち、基本粒子フィルターアルゴリズム(PF)、補助粒子フィルターアルゴリズム(APF)、及び正規化粒子フィルターアルゴリズム(RPF)との平方根平均二乗誤差(RMSE)の平均値、RMSEの平方偏差の比較結果を示す。
【表6】
【0053】
図11は本発明及び他の粒子フィルターアルゴリズムで生成されるRMSE平均値が時間経過に従って変化する概略図である。表6及び
図11から分かるように、本発明に係る獲得形質の遺伝的アルゴリズムは粒子フィルターを効果的に最適化させ、最適化された粒子集合が検索可能であり、ノンリニアフィルターの問題を解決させる。
【0054】
上述の実施形態は本発明の技術思想及び特徴を説明するためのものにすぎず、当該技術分野を熟知する者に本発明の内容を理解させると共にこれをもって実施させることを目的とし、本発明の特許請求の範囲を限定するものではない。従って、本発明の精神を逸脱せずに行う各種の同様の効果をもつ改良又は変更は、後述の請求項に含まれるものとする。