JPWO2017056320A1 - プログラム生成装置、プログラム生成方法および生成プログラム - Google Patents
プログラム生成装置、プログラム生成方法および生成プログラム Download PDFInfo
- Publication number
- JPWO2017056320A1 JPWO2017056320A1 JP2017542661A JP2017542661A JPWO2017056320A1 JP WO2017056320 A1 JPWO2017056320 A1 JP WO2017056320A1 JP 2017542661 A JP2017542661 A JP 2017542661A JP 2017542661 A JP2017542661 A JP 2017542661A JP WO2017056320 A1 JPWO2017056320 A1 JP WO2017056320A1
- Authority
- JP
- Japan
- Prior art keywords
- individual
- fitness
- individuals
- population
- child
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 163
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 3
- 230000008569 process Effects 0.000 claims abstract description 127
- 238000004364 calculation method Methods 0.000 claims abstract description 35
- 230000004083 survival effect Effects 0.000 claims abstract description 12
- 230000007423 decrease Effects 0.000 claims description 22
- 230000002068 genetic effect Effects 0.000 claims description 15
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 abstract description 150
- 230000004048 modification Effects 0.000 description 44
- 238000012986 modification Methods 0.000 description 44
- 230000008859 change Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 10
- 230000000052 comparative effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000035772 mutation Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000003384 imaging method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Physiology (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Genetics & Genomics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
画像処理プログラムの生成時間を短縮する。演算部(1b)は、母集団(2)に含まれる各個体の適応度のうち最大適応度の増加率を計算し、増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、増加率が第1の閾値より低い場合、設定値を第1の個数より大きい第2の個数に設定する設定処理(S1)と、母集団(2)に含まれる各個体の中から選択された親個体(4a,4b)に基づいて、設定値の数だけ子個体(5a,5b)を生成する進化処理(S2)と、親個体(4a,4b)と子個体(5a,5b)の中から適応度が最大である個体(6)を選択し、母集団(2)に含まれる個体の1つを個体(6)と入れ替える生存選択処理(S3)とを繰り返し実行する。
Description
本発明は、プログラム生成装置、プログラム生成方法および生成プログラムに関する。
所望の画像処理を実行する画像処理プログラムを、遺伝的プログラミングによって自動生成する技術が注目されている。この技術は、入力画像と目標となる処理結果(例えば、目標画像)とを用いて、画像処理のための部分プログラム(例えば、画像フィルタのプログラム)を組み合わせて生成される画像処理プログラムを、遺伝的プログラミングによって最適化していくものである。
また、遺伝的アルゴリズムを用いて最適解を探索する技術の例として、探索された解の評価値の上昇率を観測し、ある1つの探索状態における探索の効果が低下したと判定すると、別の探索状態に遷移する演算装置が提案されている。さらに、ファジィ推論におけるルールの学習を遺伝的アルゴリズムによって実現する技術の例として、新規に生成されるルール数を1世代前の個体の数に依存して変化させるようにしたファジィ推論装置が提案されている。
青木紳也、長尾智晴、「木構造画像変換の自動構築法ACTIT」、情報メディア学会誌Vol.53,No.6、1999年6月20日、p.890−892
画像処理プログラムを遺伝的プログラミングによって生成する際、通常、親個体を基に生成される子個体の数は各世代で一定とされる。ここで、生成される子個体の数が少ない場合には、解の探索空間において1世代当たりで探索される範囲が狭い。このため、子個体の適応度が上昇しにくくなって、学習の進行速度が低下する場合がある。一方、生成される子個体の数が多い場合には、探索範囲が広がることから、世代ごとの子個体の適応度は上昇しやすい。しかし、世代ごとに適応度の算出回数が増加し、1世代当たりの学習時間が長くなる。このため、子個体の生成数を多くしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
1つの側面では、本発明は、画像処理プログラムの生成時間を短縮可能なプログラム生成装置、プログラム生成方法および生成プログラムを提供することを目的とする。
1つの案では、遺伝的プログラミングを用いたプログラム生成装置が提供される。このプログラム生成装置は、記憶部と演算部とを有する。記憶部は、それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、母集団に含まれる各個体の適応度とを記憶する。演算部は、母集団に含まれる各個体の適応度のうち最大適応度の増加率を計算し、増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、増加率が第1の閾値より低い場合、設定値を第1の個数より大きい第2の個数に設定する設定処理と、母集団に含まれる各個体の中から選択された親個体に基づいて、設定値の数だけ子個体を生成する進化処理と、親個体の適応度を記憶部から取得するとともに子個体の適応度を計算し、親個体と子個体の中から適応度が最大である選択個体を選択し、母集団に含まれる個体の1つを選択個体と入れ替えるとともに、選択個体の適応度を記憶部に登録する生存選択処理と、を繰り返し実行する。
また、1つの案では、上記のプログラム生成装置と同様の処理がコンピュータによって実行されるプログラム生成方法が提供される。
さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させる生成プログラムが提供される。
さらに、1つの案では、上記のプログラム生成装置と同様の処理をコンピュータに実行させる生成プログラムが提供される。
1つの側面では、画像処理プログラムの生成時間を短縮できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。第1の実施の形態に係るプログラム生成装置1は、画像処理プログラムを遺伝的プログラミングによって生成する装置である。このプログラム生成装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、例えば、RAM(Random Access Memory)などの揮発性記憶装置、あるいはHDD(Hard Disk Drive)、フラッシュメモリなどの不揮発性記憶装置として実装される。演算部1bは、例えば、プロセッサである。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るプログラム生成装置の構成例および処理例を示す図である。第1の実施の形態に係るプログラム生成装置1は、画像処理プログラムを遺伝的プログラミングによって生成する装置である。このプログラム生成装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、例えば、RAM(Random Access Memory)などの揮発性記憶装置、あるいはHDD(Hard Disk Drive)、フラッシュメモリなどの不揮発性記憶装置として実装される。演算部1bは、例えば、プロセッサである。
記憶部1aは、複数の個体を含む母集団2を示す母集団情報2aを記憶する。母集団2に含まれる個体は、それぞれ木構造で表される画像処理プログラムである。また、記憶部1aは、母集団2に含まれる各個体について算出された適応度3a,3b,・・・を記憶する。
後述するように、母集団2に含まれる個体の少なくとも一部は、演算部1bによって更新される。また、母集団2に含まれる個体が更新されると、更新後の個体についての適応度によって、記憶部1aに記憶される適応度も更新される。
演算部1bは、設定処理(ステップS1)と、進化処理(ステップS2)と、生存選択処理(ステップS3)とを繰り返し実行する。
ステップS1の設定処理では、次のような処理が実行される。演算部1bは、母集団2に含まれる各個体の適応度3a,3b,・・・のうち、最大適応度の増加率を計算する。例えば、演算部1bは、現時点を基準に母集団2が所定回数だけ更新された期間における最大適応度の増加率を計算する。
ステップS1の設定処理では、次のような処理が実行される。演算部1bは、母集団2に含まれる各個体の適応度3a,3b,・・・のうち、最大適応度の増加率を計算する。例えば、演算部1bは、現時点を基準に母集団2が所定回数だけ更新された期間における最大適応度の増加率を計算する。
演算部1bは、算出された増加率に基づいて、ステップS2での子個体の生成数を示す設定値を設定する。具体的には、演算部1bは、増加率が所定の閾値Th1以上である場合、設定値をP1に設定する。一方、演算部1bは、増加率が閾値Th1より低い場合、設定値をP1より大きいP2に設定する。
次に、ステップS2の進化処理では、演算部1bは、母集団2に含まれる個体の中から選択された親個体4a,4bに基づいて、ステップS1で設定された設定値の数だけ子個体を生成する。図1の例では、2つの子個体5a,5bが生成されている。なお、親個体は、あらかじめ決められた一定数だけ選択される。また、親個体の選択は、ステップS1の開始時からステップS2での子個体の生成までの間の任意のタイミングで、演算部1bによって実行されればよい。
次に、ステップS3の生存選択処理では、次のような処理が実行される。演算部1bは、親個体4a,4bについての各適応度を記憶部1aから取得する。また、演算部1bは、ステップS2で生成した子個体5a,5bについての各適応度を計算する。なお、例えば、入力画像と、この入力画像に対して画像処理を施したときの目標画像とがあらかじめ用意される場合には、個体の適応度は次のようにして算出される。演算部1bは、個体に対応する画像処理プログラムを実行して、入力画像に画像処理を施す。演算部1bは、画像処理によって得られた画像と目標画像とを比較して、これらの画像間の類似度を適応度として算出する。
演算部1bは、次に、親個体4a,4bと子個体5a,5bの中から、適応度が最大である個体6を選択する。ここで、演算部1bは、例えば、選択された個体6の適応度が所定の閾値Th2より大きい場合、個体6を最終的な画像処理プログラムとして出力する。一方、演算部1bは、個体6の適応度が閾値Th2以下である場合、母集団2に含まれる個体の1つを、選択された個体6と入れ替える。例えば、演算部1bは、親個体4a,4bのいずれかを母集団2から削除して、選択された個体6を母集団2に含める。これによって、母集団2が更新される。また、記憶部1aに記憶された適応度も、個体6の適応度によって更新される。
この後、ステップS1に戻り、更新後の母集団2に含まれる個体の適応度のうち最大適応度が計算されて、算出された最大適応度の増加率に応じて設定値が設定される。
以上のプログラム生成装置1の処理では、母集団2に含まれる個体の適応度のうち最大適応度の増加率に基づいて、子個体の生成数が増減される。増加率が閾値Th1以上の場合には、子個体の生成数はP1に抑えられる。これにより、ステップS3での子個体の適応度の算出回数が抑制され、増加率を一定以上に保持したまま、1世代当たりの処理時間を短縮することができる。
以上のプログラム生成装置1の処理では、母集団2に含まれる個体の適応度のうち最大適応度の増加率に基づいて、子個体の生成数が増減される。増加率が閾値Th1以上の場合には、子個体の生成数はP1に抑えられる。これにより、ステップS3での子個体の適応度の算出回数が抑制され、増加率を一定以上に保持したまま、1世代当たりの処理時間を短縮することができる。
一方、増加率が閾値Th1より低い場合には、子個体の生成数がP1からP2に増加される。子個体の生成数が増加すると、解の探索空間における探索範囲が拡大する。これにより、生成された各子個体の適応度のうちの最大値が増加しやすくなる。そして、その最大値が算出された子個体によって母集団2が更新されることで、母集団2に含まれる個体の適応度のうち最大適応度の増加率が上昇する可能性が高まる。
ここで、子個体の生成数が増加すると、ステップS3での子個体の適応度の算出回数も増加するため、1世代当たりの処理時間が増大する。このため、最大適応度を増加させるために子個体の生成数を長期間増やしたままにすることは、プログラム生成にかかる時間が長くなり、好ましくない。
これに対して、上記のプログラム生成装置1は、最大適応度の増加率が低くなった期間のみ、子個体の生成数を一時的に増加させる。これにより、必要最小限の期間のみ、子個体の生成数が増加されて、1世代当たりの適応度の算出回数が増加する。したがって、全体として、子個体の適応度の算出回数を抑制しつつ、最大適応度の増加率をある程度維持することができ、プログラム生成が完了するまでにかかる時間を短縮することができる。
〔第2の実施の形態〕
次に、第2の実施の形態に係る画像処理装置について説明する。第2の実施の形態に係る画像処理装置は、図1に示したプログラム生成装置1と同様の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
次に、第2の実施の形態に係る画像処理装置について説明する。第2の実施の形態に係る画像処理装置は、図1に示したプログラム生成装置1と同様の処理機能と、この処理機能によって生成された画像処理プログラムを実行して画像処理を行う機能とを備える。
以下の説明では、まず、図2〜図4を用いて、遺伝的プログラミングによる画像処理プログラムの生成処理の比較例について説明し、次に、図5を用いて、この比較例における問題点について説明した後、第2の実施の形態に係る画像処理装置の詳細について説明する。
<画像処理プログラム生成処理の比較例>
図2は、画像処理プログラムの生成処理手順の比較例を示す図である。
画像処理プログラムの生成処理の前に、1つ以上の学習データ20が用意される。学習データ20には、入力画像21と、入力画像21に対して画像処理を施したときの目標画像22とが含まれる。入力画像21は、例えば、カメラによって被写体を撮像することによって得られる。
図2は、画像処理プログラムの生成処理手順の比較例を示す図である。
画像処理プログラムの生成処理の前に、1つ以上の学習データ20が用意される。学習データ20には、入力画像21と、入力画像21に対して画像処理を施したときの目標画像22とが含まれる。入力画像21は、例えば、カメラによって被写体を撮像することによって得られる。
遺伝的プログラミングによる画像処理プログラムの生成処理では、個体は、1つ以上の部分プログラムを組み合わせて構成される。例えば、図2の左上に示すように、個体は木構造で定義される。
個体に組み込むことが可能な複数の部分プログラムも、あらかじめ用意される。以下、個体に組み込まれる部分プログラムの例として、画像フィルタを想定するが、部分プログラムは画像フィルタに限るものではなく、他の種類の画像処理を行うプログラムを用いることもできる。なお、図2の左上において、“F”は画像フィルタを示し、“I”は入力端子を示し、“O”は出力端子を示す。
遺伝的プログラミングによる画像処理プログラムの生成処理は、例えば、次のように実行される。まず、母集団31に含められる複数の初期個体が生成される(ステップS11)。各初期個体のノードには、あらかじめ用意された複数の画像フィルタの中から画像フィルタがランダムに選択されて組み込まれる。次に、母集団31の中から、ランダムに一定数の親個体が選択される(ステップS12)。以下、例として2つの親個体が選択されるものとする。
次に、選択された2つの親個体に対して進化過程の処理が施されることで、2以上の一定数の子個体が生成される(ステップS13)。進化過程では、2つの親個体に対して交叉処理および突然変異処理が行われる。2つの親個体に対して、それぞれ異なる交叉処理や突然変異処理が行われることで、3つ以上の子個体が生成されてもよい。すなわち、生成される子個体の数は、母集団31から選択される親個体の数以上とされる。
次に、進化過程を経て生成された子個体、および元の親個体のそれぞれについて、適応度が計算される(ステップS14)。この処理では、対象の個体それぞれを用いた画像処理が、学習データ20の各入力画像21に対して実行され、実行後の画像と対応する目標画像22とが比較されることで適応度が計算される。複数の学習データ20が存在する場合、個体それぞれについて、複数の学習データ20を用いて得られた適応度の平均値が算出される。
なお、母集団31が生成された時点で母集団31に含まれる初期個体の適応度が算出されてもよい。この場合、ステップS14では、生成された子個体の適応度だけが算出される。
ここで、生成された子個体および元の親個体のうちのいずれかの適応度が所定の閾値以上であった場合には、その個体が最終的な画像処理プログラムとして出力され、プログラム生成処理が終了する。一方、すべての個体の適応度が所定の閾値未満であった場合には、生成された各子個体および元の2つの親個体を含む個体群32の中から、生存選択が行われる(ステップS15)。この生存選択では、個体群32の中から、算出された適応度が最大の個体が選択される。さらに、個体群32内の残りの個体の中から、所定の方法で個体が1つ選択される。例えば、残りの個体の中から、適応度に応じた確率で個体が選択される。
このような生存選択によって選択された2つの個体は、母集団31に含まれる個体のうち、親個体として選択された2つの個体と入れ替えられる(ステップS16)。これにより、母集団31に含まれる個体が次世代の個体へ変更される。そして、適応度が所定の閾値以上となる個体が出現するまで、同様の処理が繰り返される。
図3は、交叉の例を示す図である。図3では、親個体41aと親個体42aとの間で交叉が行われ、親個体41aに基づく子個体41bと、親個体42aに基づく子個体42bとが生成される場合の例を示す。
親個体41aは、画像フィルタF1,F2,F3,F4を含み、親個体42aは、画像フィルタF2,F3,F5,F6を含む。ここで、親個体41aにおける画像フィルタF2のノードと、親個体42aにおける画像フィルタF5のノードが、交叉を行う箇所として選択されたものとする。
交叉の処理では、例えば、選択されたノードだけでなく、そのノードより下位階層のノードも交叉の対象となる。このため、図3の例では、親個体41aにおける“画像フィルタF2,F1、画像フィルタF2の一方に接続された入力端子のノード、画像フィルタF1に接続された入力端子のノード”と、親個体42aにおける“画像フィルタF5、画像フィルタF5に接続された入力端子のノード”とが入れ替えられる。このような交叉により、画像フィルタF3,F4,F5を含む子個体41bと、画像フィルタF1,F3,F6をそれぞれ1つ含み、画像フィルタF2を2つ含む子個体42bとが生成される。
図4は、突然変異の例を示す図である。図4において、個体43aは、画像フィルタF3,F4,F5を含む。この個体43aは、例えば、母集団31から選択された親個体であってもよいし、または、母集団31から親個体として選択された後、交叉が行われた個体であってもよい。
ここで、個体43aにおける画像フィルタF3のノードが突然変異を行う箇所として選択されるとともに、突然変異による置き換え後の画像フィルタとして画像フィルタF7が選択されたものとする。なお、突然変異による置き換え後の画像フィルタは、あらかじめ用意された複数の画像フィルタの中からランダムに選択される。このような突然変異により、画像フィルタF4,F5,F7を含む子個体43bが生成される。
以上の比較例のような手順により生成される画像処理プログラムの用途の例としては、FA(Factory Automation)分野において、製品を撮像した画像に画像処理を施して所望の効果を得るという用途が考えられる。例えば、製品の外観を撮像した画像に画像処理を施して、欠陥が生じた箇所を抽出する、位置合わせを行う箇所を抽出するといった用途が考えられる。
このような用途では、被写体となる製品の変更や改良、それに伴う撮像環境の変化などに応じて、画像処理アルゴリズムの再構築の必要が生じる場合がある。このため、画像処理アルゴリズムの構築の容易性が求められている。また、照明条件の変化や被写体の形状、位置姿勢のバラツキなどの撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを構築することが求められている。
遺伝的プログラミングを利用することで、入力画像21とこれに対応する目標画像22とをあらかじめ用意しておくだけで、このような用途で使用可能な画像処理プログラムを容易に生成することができる。また、それぞれ撮像環境が異なる入力画像21と目標画像22のペア(学習データ20)を複数用意しておくことで、撮像環境の変化に対するロバスト性が高い画像処理アルゴリズムを自動生成することもできる。
<比較例における問題点>
上記の比較例では、図2のステップS13の進化過程において2つの親個体から生成される子個体の数は、一定値に固定されている。ここで、子個体の生成数に関しては、次のような問題がある。子個体の生成数が少ない場合には、子個体の適応度が上昇しにくくなって、学習の進行速度が低下する場合がある。一方、子個体の生成数が多い場合には、世代ごとの子個体の適応度は上昇しやすくなるが、世代ごとの適応度の算出回数が増加し、世代ごとの学習時間が長くなる。このため、子個体の生成数を多くしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
上記の比較例では、図2のステップS13の進化過程において2つの親個体から生成される子個体の数は、一定値に固定されている。ここで、子個体の生成数に関しては、次のような問題がある。子個体の生成数が少ない場合には、子個体の適応度が上昇しにくくなって、学習の進行速度が低下する場合がある。一方、子個体の生成数が多い場合には、世代ごとの子個体の適応度は上昇しやすくなるが、世代ごとの適応度の算出回数が増加し、世代ごとの学習時間が長くなる。このため、子個体の生成数を多くしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
この問題点について、次の図5を用いてさらに説明する。
図5は、子個体の数と探索範囲との関係を模式的に示す図である。図5に示す解の探索空間51は、個体が含まれる空間を模式的に示したものである。この探索空間51では、各個体の適応度は正解領域52との近さによって表される。なお、図5において、黒丸は、ある世代の母集団31に含まれる個体を示し、白丸は、母集団31から選択された個体を基に生成された子個体を示す。
図5は、子個体の数と探索範囲との関係を模式的に示す図である。図5に示す解の探索空間51は、個体が含まれる空間を模式的に示したものである。この探索空間51では、各個体の適応度は正解領域52との近さによって表される。なお、図5において、黒丸は、ある世代の母集団31に含まれる個体を示し、白丸は、母集団31から選択された個体を基に生成された子個体を示す。
上記の比較例のような遺伝的プログラミングによる学習は、母集団31に含まれる個体を、適応度の高い子個体によって更新していくことで、母集団31に含まれる個体の適応度を全体的に上昇させるものである。これは、解の探索空間51に含まれる個体を全体的に正解領域52に近づけていくことに相当する。そして、適応度が所定閾値を超える個体が現れたとき、すなわち、正解領域52に含まれる個体が現れたときに、その個体が学習結果として出力される。
また、母集団31から選択された親個体に基づいて子個体が生成される場合、子個体は解の探索空間51において親個体に比較的近い領域に現れる。これは、子個体は親個体の一部が変形されることで生成されるため、親個体とある程度類似するからである。
ここで、図5(A)は、2つの親個体53a,53bから生成される子個体の数が少ない場合の例を示し、図5(B)は、2つの親個体53a,53bから生成される子個体の数が多い場合の例を示す。探索領域54a,54bは、母集団31から選択された2つの親個体53a,53bと、親個体53a,53bから生成された子個体の個体群とが含まれる領域である。
図5(B)に示す探索領域54bは、図5(A)に示す探索領域54aより大きくなる可能性が高い。換言すると、子個体の生成数が多い方が、探索領域が大きくなる可能性が高い。これは、子個体の生成数が多くなることで、親個体に対する変形パターンが増え、解の探索空間51における親個体の位置から互いに異なる方向に位置する多くの子個体が生成されるからである。
このため、子個体の生成数を多くして探索領域を拡大することで、子個体の個体群の中に正解領域52により近い子個体、すなわち適応度がより大きい子個体が現れる可能性が高くなる。したがって、子個体の生成数が多い方が、母集団に含まれる子個体の適応度のうちの最大適応度についての、世代数を基準とした増加率は高くなる。
しかしながら、子個体の生成数が多くなるほど、世代ごとに子個体の適応度を算出する回数が多くなる。その結果、1世代当たりの処理時間が長くなり、世代数を基準とした最大適応度の増加率は高くなったとしても、最大適応度が所定の閾値に達するまでの時間が短縮されるとは限らず、逆に時間が長くかかってしまう可能性が高い。したがって、子個体の生成数を固定的に大きくしたとしても、プログラム生成にかかる時間を必ずしも短縮できないという問題がある。
<第2の実施の形態でのプログラム生成処理の概要>
上記の問題に対して、第2の実施の形態のプログラム生成処理では、母集団31に含まれる個体の適応度のうち最大適応度の増加率に応じて、子個体の生成数が動的に設定されるように、上記の比較例の処理が変形される。
上記の問題に対して、第2の実施の形態のプログラム生成処理では、母集団31に含まれる個体の適応度のうち最大適応度の増加率に応じて、子個体の生成数が動的に設定されるように、上記の比較例の処理が変形される。
図6は、子個体の生成数が一定の場合における最大適応度の変化の例を示す図である。この図6において、期間61,63,65,67では、最大適応度の増加率が所定の閾値以上である一方、期間62,64,66では、最大適応度の増加率が閾値より小さい。すなわち、期間62,64,66では、学習の進行が停滞している。
そこで、本実施の形態の画像処理装置は、期間62,64,66のように最大適応度の増加率が低くなっている期間のみ、1世代の親個体から生成される子個体の数を増加させて、最大適応度の増加を促進させる。このように、必要最小限の期間のみ子個体の生成数を多くすることで、処理時間を抑制しつつ、最大適応度の増加率が一定以上に維持されるようにする。その結果、プログラム生成にかかる時間を短縮する。
また、処理時間を短くするには、子個体の生成数が多い期間(世代数)を、生成数が少ない期間(世代数)より短くすることが望ましい。そこで、本実施の形態に係る画像処理装置は、最大適応度の増加率が閾値より低くなったことを契機として一定の世代数の期間、子個体の生成数を多くした後、それより多くの世代数の期間、最大適応度の増加率に関係なく子個体の生成数を少なくする。
図6の例のように、一般的に、子個体の生成数が一定の場合、最大適応度は段階的に増加する。このため、ある一定の世代数の期間、子個体の生成数を多くすることで、その後の期間で子個体の生成数を少なくしても、最大適応度の増加率を一定以上に維持できる可能性は高い。したがって、上記のように子個体の生成数を制御することで、最大適応度の増加率を高めながらも、子個体の適応度の算出数が多くなる期間を短くすることができ、学習を効率化できる。
<第2の実施の形態に係る画像処理装置の詳細>
以下、第2の実施の形態に係る画像処理装置の詳細について説明する。
まず、図7は、画像処理装置のハードウェア構成例を示す図である。本実施の形態に係る画像処理装置100は、例えば、図7に示すようなコンピュータとして実現される。
以下、第2の実施の形態に係る画像処理装置の詳細について説明する。
まず、図7は、画像処理装置のハードウェア構成例を示す図である。本実施の形態に係る画像処理装置100は、例えば、図7に示すようなコンピュータとして実現される。
画像処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス109を介して、RAM102と複数の周辺機器が接続されている。
RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
RAM102は、画像処理装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、通信インタフェース107およびネットワークインタフェース108がある。
HDD103は、画像処理装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aの画面に表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース107は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース107には、外部デバイスとしてカメラ107aが接続され、通信インタフェース107は、カメラ107aから送信された画像データをプロセッサ101に送信する。
ネットワークインタフェース108は、ネットワーク108aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
以上のようなハードウェア構成によって、画像処理装置100の処理機能を実現することができる。
図8は、画像処理装置が備える処理機能の構成例を示すブロック図である。画像処理装置100は、画像取得部111、画像処理部112、プログラム生成部120、プログラム記憶部130、フィルタセット記憶部141、学習データ記憶部142および母集団情報記憶部143を有する。
画像取得部111、画像処理部112およびプログラム生成部120の処理は、例えば、画像処理装置100のプロセッサ101が所定のプログラムを実行することで実現される。また、画像処理部112の処理の一部は、プログラム記憶部130に保存された画像処理プログラムを、画像処理装置100のプロセッサ101が実行することで実現される。プログラム記憶部130、フィルタセット記憶部141および学習データ記憶部142は、例えば、画像処理装置100のHDD103の記憶領域として実現される。母集団情報記憶部143は、例えば、画像処理装置100のRAM102の記憶領域として実現される。
画像取得部111は、撮像された画像のデータをカメラ107aから取得し、プログラム生成部120または画像処理部112に出力する。
プログラム生成部120は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部130に保存する。なお、プログラム生成部120の内部構成については後述する。
プログラム生成部120は、遺伝的プログラミングにより画像処理プログラムを生成し、生成された画像処理プログラムをプログラム記憶部130に保存する。なお、プログラム生成部120の内部構成については後述する。
画像処理部112は、カメラ107aによって撮像された画像のデータを画像取得部111を介して取得する。画像処理部112は、プログラム記憶部130に保存された画像処理プログラムにしたがって、取得した画像に画像処理を施す。処理後の画像は、例えば、表示装置104aに表示される。
プログラム記憶部130は、プログラム生成部120によって生成された画像処理プログラムを記憶する。
フィルタセット記憶部141は、プログラム生成部120によって生成される各個体に組み込むことが可能な画像フィルタのプログラムを、複数記憶する。
フィルタセット記憶部141は、プログラム生成部120によって生成される各個体に組み込むことが可能な画像フィルタのプログラムを、複数記憶する。
学習データ記憶部142は、それぞれ入力画像および目標画像の各データを含む学習データを、1つ以上記憶する。学習データに含まれる入力画像は、例えば、画像処理装置100に接続されたカメラ107aによって撮像された画像であってもよい。
母集団情報記憶部143は、母集団31に含まれる各個体の情報を記憶する。個体の情報には、個体の木構造を示す情報と、個体について算出された適応度とが含まれる。さらに、母集団情報記憶部143には、母集団31に含まれる各個体の適応度のうち最大適応度についての世代ごとの履歴情報が記憶される。
プログラム生成部120は、学習制御部121、適応度算出部122および学習状況解析部123を有する。
学習制御部121は、プログラム生成部120でのプログラム生成処理全体を統括的に制御する。例えば、学習制御部121は、母集団31に含める初期個体の生成、個体の進化処理、適応度に基づく生存選択および最終的な画像処理プログラムの出力、生存選択された個体による母集団31の更新などの処理を実行する。
学習制御部121は、プログラム生成部120でのプログラム生成処理全体を統括的に制御する。例えば、学習制御部121は、母集団31に含める初期個体の生成、個体の進化処理、適応度に基づく生存選択および最終的な画像処理プログラムの出力、生存選択された個体による母集団31の更新などの処理を実行する。
適応度算出部122は、個体を評価するための適応度を算出する。具体的には、適応度算出部122は、個体の木構造に基づいて構築される画像処理プログラムにしたがって、学習データに含まれる入力画像に画像処理を施す。適応度算出部122は、画像処理によって得られた画像と、入力画像に対応づけられた目標画像との類似度を、個体の適応度として算出する。
学習状況解析部123は、学習状況を示す指標を計算する。本実施の形態では、学習状況解析部123は、母集団情報記憶部143に記憶された履歴情報に基づいて、母集団31の個体の適応度のうち最大適応度の増加率を算出する。この増加率は、世代交代に伴う学習の進行速度を示す。なお、以下の説明では、母集団31の個体の適応度のうち最大適応度を、「母集団31の最大適応度」と略称する場合がある。
次に、画像処理装置100における画像処理プログラムの生成処理について、フローチャートを用いて説明する。
図9は、プログラム生成処理手順の例を示すフローチャートである。
図9は、プログラム生成処理手順の例を示すフローチャートである。
この図9の処理では、進化・適応度算出処理での動作モードとして「通常モード」と「増加モード」のいずれかが設定される。通常モードでは、1世代当たりC個の子個体が生成され、増加モードでは、1世代当たり通常モードよりk倍(k>1)の子個体が生成される。
また、母集団31の最大適応度が閾値より低い場合に通常モードから増加モードに遷移し、その後の一定世代数の期間、増加モードに維持された後、必ず通常モードに戻るという制御が行われる。さらに、通常モードも一定世代数以上の期間、連続して設定され、増加モードに設定される期間(世代数)より通常モードに設定される期間(世代数)の方が長いものとする。
本実施の形態では、例として、母集団31に含まれる個体数をPとし、通常モードに設定される最小期間LをP/2に設定する。この「P/2」は、母集団31から親個体を2個選択する場合に、母集団31の中の個体が平均で1回入れ替わる世代数に相当する。一方、本実施の形態では、増加モードに設定される期間DをP/10に設定する。なお、期間Dは経験的な値に設定されるが、期間Dが長いと処理時間が増大する一方、期間Dが短すぎると母集団31の個体のうちごく少数の個体だけしか親個体として選択されないため、母集団31の最大適応度を増加させる効果を十分得ることができない。
期間Dの目安としては、例えば次のように算出することができる。増加モードでの子個体の増加率を示す前述のkと、期間全体に対する増加モードの割合m(0≦m≦1)とを用い、通常モードと増加モードを合わせた場合の世代当たりの平均処理時間をd(d>1)に抑えることを考えた場合、「1×(1−m)+k×m≦d」という式を満たす必要がある。この式を変形すると、「m≦(d−1)/(k−1)」となる。
例えば、増加モードでの個体数を5倍(すなわち、k=5)とし、1世代当たりの平均処理時間を1.5倍に抑えるケースでは、m≦(1.5−1)/(5−1)=1/8という値が得られる。この場合、例えば、増加モードに設定される期間Dは、通常モードに設定される最小期間Lの1/8倍に設定される。
[ステップS21]学習制御部121は、学習データの設定のための入力操作を受け付ける。例えば、学習データ記憶部142に記憶された学習データの中から、本処理で使用される学習データが指定される。
[ステップS22]学習制御部121は、フィルタセットの設定のための入力操作を受け付ける。例えば、フィルタセット記憶部141に登録された画像フィルタの中から、本処理で使用される画像フィルタが指定される。
[ステップS23]学習制御部121は、母集団31に含まれる個体数Pと、通常モードで生成される子個体の個体数Cを設定するための入力操作を受け付ける。
[ステップS24]学習制御部121は、母集団31に含めるP個の初期個体を生成する。各初期個体は、木構造の各ノードに対して、ステップS22で指定された画像フィルタをランダムに選択して組み合わせることで生成される。また、各初期個体の木構造は、例えば、あらかじめ決められた複数の木構造の中からランダムに選択される。あるいは、木構造自体がランダムに決定されてもよい。
[ステップS24]学習制御部121は、母集団31に含めるP個の初期個体を生成する。各初期個体は、木構造の各ノードに対して、ステップS22で指定された画像フィルタをランダムに選択して組み合わせることで生成される。また、各初期個体の木構造は、例えば、あらかじめ決められた複数の木構造の中からランダムに選択される。あるいは、木構造自体がランダムに決定されてもよい。
学習制御部121は、生成した各初期個体に関する情報を母集団情報記憶部143に登録する。
[ステップS25]適応度算出部122は、母集団31に含まれる各初期個体の適応度を算出する。具体的には、適応度算出部122は、各初期個体に対応する画像処理プログラムにしたがって、学習データに含まれる入力画像に画像処理を施す。適応度算出部122は、画像処理によって得られた画像と、入力画像に対応づけられた目標画像との類似度を、その初期個体の適応度として算出する。なお、学習データが複数登録されている場合には、適応度算出部122は、例えば、各学習データを用いて類似度を算出し、それらの類似度の平均値を初期個体の適応度とする。適応度算出部122は、各初期個体について算出した適応度を母集団情報記憶部143に登録する。
[ステップS25]適応度算出部122は、母集団31に含まれる各初期個体の適応度を算出する。具体的には、適応度算出部122は、各初期個体に対応する画像処理プログラムにしたがって、学習データに含まれる入力画像に画像処理を施す。適応度算出部122は、画像処理によって得られた画像と、入力画像に対応づけられた目標画像との類似度を、その初期個体の適応度として算出する。なお、学習データが複数登録されている場合には、適応度算出部122は、例えば、各学習データを用いて類似度を算出し、それらの類似度の平均値を初期個体の適応度とする。適応度算出部122は、各初期個体について算出した適応度を母集団情報記憶部143に登録する。
[ステップS26]学習制御部121は、動作モードを通常モードに設定する。
[ステップS27]進化・適応度算出処理が実行される。この処理では、基本的には、母集団31から2つの親個体が選択され、それらの親個体に基づいて1つ以上の子個体が生成され、各子個体についての適応度が算出される。進化・適応度算出処理の内容については、後の図10において詳しく説明する。
[ステップS27]進化・適応度算出処理が実行される。この処理では、基本的には、母集団31から2つの親個体が選択され、それらの親個体に基づいて1つ以上の子個体が生成され、各子個体についての適応度が算出される。進化・適応度算出処理の内容については、後の図10において詳しく説明する。
[ステップS28]学習制御部121は、ステップS27で選択された親個体と、ステップS27で生成された子個体の中から、適応度が最大の個体を選択し、その適応度が閾値Th11より大きいかを判定する。適応度が閾値Th11以下の場合、ステップS29の処理が実行され、適応度が閾値Th11より大きい場合、ステップS30の処理が実行される。
[ステップS29]学習制御部121は、ステップS27で選択された親個体と、ステップS27で生成された子個体の中から、適応度が最大の個体を生存させる個体として選択する。さらに、学習制御部121は、残りの個体の中から生存させる個体をさらに1つ選択する。この選択処理では、例えば、算出された適応度に応じた確率で個体が選択される。
学習制御部121は、母集団31に含まれる個体のうちステップS27で親個体として選択された2つの個体を、生存させる個体として選択された2つの個体に入れ替える。これによって、母集団31の世代が更新される。実際の処理としては、学習制御部121は、ステップS27で親個体として選択された2つの個体の情報を母集団情報記憶部143から削除し、生存させる個体として選択された2つの個体の情報を母集団情報記憶部143に登録する。
なお、学習制御部121は、例えば、母集団31に含まれる個体のうち適応度が小さい2つの個体を、生存させる個体として選択された2つの個体に入れ替えてもよい。
[ステップS30]学習制御部121は、ステップS28で選択された適応度が最大の個体に対応する画像処理プログラムを、プログラム記憶部130に格納して、処理を終了する。
[ステップS30]学習制御部121は、ステップS28で選択された適応度が最大の個体に対応する画像処理プログラムを、プログラム記憶部130に格納して、処理を終了する。
図10は、進化・適応度算出処理の手順の例を示すフローチャートである。この図10の処理は、図9のステップS27の処理に対応する。
[ステップS41]学習制御部121は、母集団31に含まれる個体の中から2つの親個体をランダムに選択する。
[ステップS41]学習制御部121は、母集団31に含まれる個体の中から2つの親個体をランダムに選択する。
[ステップS42]学習制御部121は、現在の動作モードが通常モードであるかを判定する。通常モードである場合、ステップS43の処理が実行される。一方、通常モードでない場合、すなわち増加モードである場合には、ステップS48の処理が実行される。
[ステップS43]学習制御部121は、通常モードの期間が終了したかを判定する。具体的には、学習制御部121は、通常モードに設定された期間が、前述の最小期間Lを超えた場合(すなわち、通常モードに設定されてからのステップS43の実行回数がLを超えた場合)に、通常モードの期間が終了したと判定する。通常モードの期間が終了したと判定された場合、ステップS44の処理が実行され、通常モードの期間が終了していないと判定された場合、ステップS50の処理が実行される。
[ステップS44]学習状況解析部123は、母集団情報記憶部143に記憶された履歴情報に基づいて、過去の一定数の世代における母集団31の最大適応度の増加率を算出する。本実施の形態では例として、過去のL世代における母集団31の最大適応度の増加率が算出される。すなわち、増加率は、現世代における母集団31の最大適応度から、L世代前における母集団31の最大適応度を減算した値を、Lで除算することによって算出される。
なお、母集団情報記憶部143には、増加率を算出するために、少なくとも過去のL世代における母集団31の最大適応度についての履歴情報が記録される。
[ステップS45]学習制御部121は、ステップS44で算出された増加率が、所定の閾値Th12より低いかを判定する。増加率が閾値Th12より低い場合、ステップS46の処理が実行される。一方、増加率が閾値Th12以上である場合は、動作モードが通常モードに維持されたままステップS50の処理が実行される。すなわち、増加率が閾値Th12以上である場合は、通常モードの期間が最小期間Lを超える長さに延長される。
[ステップS45]学習制御部121は、ステップS44で算出された増加率が、所定の閾値Th12より低いかを判定する。増加率が閾値Th12より低い場合、ステップS46の処理が実行される。一方、増加率が閾値Th12以上である場合は、動作モードが通常モードに維持されたままステップS50の処理が実行される。すなわち、増加率が閾値Th12以上である場合は、通常モードの期間が最小期間Lを超える長さに延長される。
[ステップS46]学習制御部121は、動作モードを通常モードから増加モードに変更する。
[ステップS47]学習制御部121は、ステップS41で選択された2つの親個体を用いて、kC個の子個体を生成する。なお、子個体の生成は、例えば、次のような手順が行われる。学習制御部121は、2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。さらに、学習制御部121は、生成された子個体のいずれかのノードに突然変異を発生させて、元の子個体のノードに組み込まれていた画像フィルタを図9のステップS22で指定された他の画像フィルタのいずれかに置き換える。
[ステップS47]学習制御部121は、ステップS41で選択された2つの親個体を用いて、kC個の子個体を生成する。なお、子個体の生成は、例えば、次のような手順が行われる。学習制御部121は、2つの親個体の間で交叉を行うことで、2つ以上の所定数の子個体を生成する。さらに、学習制御部121は、生成された子個体のいずれかのノードに突然変異を発生させて、元の子個体のノードに組み込まれていた画像フィルタを図9のステップS22で指定された他の画像フィルタのいずれかに置き換える。
[ステップS48]学習制御部121は、増加モードの期間が終了したかを判定する。具体的には、学習制御部121は、増加モードに設定された期間が、前述の期間Dを超えた場合(すなわち、増加モードに設定されてからのステップS48の実行回数がDを超えた場合)に、増加モードの期間が終了したと判定する。増加モードの期間が終了したと判定された場合、ステップS49の処理が実行され、増加モードの期間が終了していないと判定された場合、ステップS47の処理が実行される。
[ステップS49]学習制御部121は、動作モードを増加モードから通常モードに変更する。
[ステップS50]学習制御部121は、ステップS41で選択された2つの親個体を用いて、C個の子個体を生成する。
[ステップS50]学習制御部121は、ステップS41で選択された2つの親個体を用いて、C個の子個体を生成する。
[ステップS51]適応度算出部122は、ステップS47で生成されたkC個の子個体、またはステップS50で生成されたC個の子個体のそれぞれについて、適応度を算出する。この後、図9のステップS28の処理が実行される。
以上の図9,図10の処理によれば、通常モードが最小期間L以上継続された後、母集団31の最大適応度の増加率が閾値Th12より低いと判定されると、動作モードは増加モードに遷移する。これにより、子個体の生成数が増加し、母集団31の最大適応度の増加が促進される。この後、期間Dだけ増加モードが継続されてから通常モードに遷移し、期間Dより長い最小期間L以上、通常モードが継続される。そして、母集団31の最大適応度の増加率が再度閾値Th12より低いと判定されると、再び増加モードに遷移して、その増加が促進される。
図11は、世代交代に伴う最大適応度および子個体の生成数の変化の例を示す図である。図11において、グラフ71は、母集団31の最大適応度の変化の例を示し、グラフ72は、子個体の生成数の変化の例を示す図である。
グラフ71に示す点線は、通常モードのままで学習を行った場合の比較例を示す。一方、グラフ71に示す実線は、最大適応度の増加率に応じて通常モードと増加モードとを切り替えた場合の例を示す。また、グラフ72の実線は、最大適応度の増加率に応じて通常モードと増加モードとを切り替えた場合の子個体の生成数を示す。グラフ72の実線のように、この例では、増加モードに遷移するとほとんどの場合一時的に最大適応度の増加率が上昇するものの、通常モードに戻ると増加率が低下することから、ほぼ一定間隔で増加モードへの遷移が発生している。
グラフ71でわかるように、最大適応度の増加率が閾値Th11より低い場合に増加モードに遷移させ、子個体の生成数を増加させることで、最大適応度の増加が促進される。そのため、通常モードに固定した場合と比較して、少ない世代数で最大適応度が所望の目標値に到達している。
図12は、時間経過に伴う最大適応度の変化の例を示す図である。この図12のグラフは、図11のグラフ71に示した母集団31の最大適応度の変化を、横軸を世代数から時間に変更して示したものである。この図12からわかるように、最大適応度の増加率に応じて動作モードを切り替えることで、短時間で最大適応度が所望の目標値に到達している。
増加モードに遷移すると、1世代当たりの子個体の適応度の計算回数が増加するため、1世代当たりの最大適応度の増加は促進されるものの、処理時間は長くなってしまう。これに対して、図11のグラフ72に示すように限定された期間のみ増加モードに設定されることで、最大適応度が目標値に到達するまでの処理時間を短縮することができる。
次に、第2の実施の形態に係る画像処理装置100の処理の一部を変形した変形例について説明する。なお、以下の各変形例では、図7,図8に示した画像処理装置100と同様の符号を用いて説明する。
<変形例1>
変形例1では、画像処理装置100は、第2の実施の形態のように増加モードに設定した子個体の生成数を増加させても、母集団31の最大適応度の増加率が上昇しない場合に、逆に子個体の生成数を減少させる。子個体の生成数が減少することで、1世代当たりの処理時間が短縮され、時間当たりの親個体の選択回数および子個体の生成回数が増加する。これにより、生成される子個体のバリエーションを増やすことができ、図5に示した解の探索空間51において正解領域52に近い子個体が生成されやすくなる。
変形例1では、画像処理装置100は、第2の実施の形態のように増加モードに設定した子個体の生成数を増加させても、母集団31の最大適応度の増加率が上昇しない場合に、逆に子個体の生成数を減少させる。子個体の生成数が減少することで、1世代当たりの処理時間が短縮され、時間当たりの親個体の選択回数および子個体の生成回数が増加する。これにより、生成される子個体のバリエーションを増やすことができ、図5に示した解の探索空間51において正解領域52に近い子個体が生成されやすくなる。
さらに、画像処理装置100は、子個体の生成数を減少させても最大適応度の増加率が上昇しない場合には、母集団31の個体数を増加させる。
ここで、図13は、母集団の個体数と探索範囲との関係を模式的に示す図である。図13に示す解の探索空間81では、図5に示した解の探索空間51と同様に、各個体の適応度は正解領域82との近さによって表される。
ここで、図13は、母集団の個体数と探索範囲との関係を模式的に示す図である。図13に示す解の探索空間81では、図5に示した解の探索空間51と同様に、各個体の適応度は正解領域82との近さによって表される。
図13(A)は、母集団31の個体数が少ない場合の例を示す。探索領域83a,83bはそれぞれ、個体数が少ない母集団31に含まれる任意の2つの個体から一定数の子個体を生成した場合に、生成された子個体が含まれ得る領域を示す。また、図13(B)は、母集団31の個体数が多い場合の例を示す。探索領域84a〜84dはそれぞれ、個体数が多い母集団31に含まれる任意の2つの個体から一定数の子個体を生成した場合に、生成された子個体が含まれ得る領域を示す。
図13(A)のように母集団31の個体数が少ない場合には、親個体が正解領域82の近傍に存在しない可能性が高くなる。その結果、1世代当たりで正解領域82に近い子個体が生成される可能性が低くなり、学習の進展が遅くなる。そこで、図13(B)のように母集団31の個体数を増やすことで、正解領域82の近傍に存在する親個体が生成される可能性が生じ、学習の進展速度の向上を期待できる。
ただし、母集団31の個体数を多くしただけでは、正解領域82に近い親個体が選択される確率は必ずしも上がらない。このため、正解領域82に近い親個体が選択されるまでの時間が長くなることもあり得る。そこで、例えば、子個体の生成数を小さくして世代交代の速度を高めることで、正解領域82に近い親個体が短時間で選択されるようになる。
なお、母集団31の個体数を多くする代わりに、母集団31の個体のうち適応度の低い個体を、新たに生成した個体に入れ替える方法もある。この方法によれば、子個体の生成数を減らさなくても、正解領域82に近い親個体が選択される確率を向上させ、学習の進展速度を向上させることができる。
図14は、変形例1における処理手順の例を示すフローチャートである。図14の処理では例として、動作モードとして通常モードおよび増加モードに加えて減少モードが用意される。減少モードでは、子個体の生成数が通常モードより少ないC’に設定される。減少モードは、前述の期間Dだけ増加モードが継続した後に、母集団31の最大適応度の増加率が閾値Th12以上に増加しなかった場合に設定されるものとする。
変形例1では、例えば、図10のステップS42で動作モードが通常モードではないと判定された場合に、図14のステップS61の処理が実行される。
[ステップS61]学習制御部121は、現在の動作モードが増加モードであるかを判定する。増加モードである場合、ステップS62の処理が実行される。一方、増加モードでない場合、すなわち減少モードである場合には、ステップS67の処理が実行される。
[ステップS61]学習制御部121は、現在の動作モードが増加モードであるかを判定する。増加モードである場合、ステップS62の処理が実行される。一方、増加モードでない場合、すなわち減少モードである場合には、ステップS67の処理が実行される。
[ステップS62]学習制御部121は、増加モードの期間が終了したかを判定する。具体的には、学習制御部121は、増加モードに設定された期間が、前述の期間Dを超えた場合(すなわち、増加モードに設定されてからのステップS62の実行回数がDを超えた場合)に、増加モードの期間が終了したと判定する。増加モードの期間が終了したと判定された場合、ステップS63の処理が実行され、増加モードの期間が終了していないと判定された場合、図10のステップS47の処理が実行される。
[ステップS63]学習状況解析部123は、図10のステップS44と同様の手順で、母集団情報記憶部143に記憶された履歴情報に基づいて、過去のL世代における母集団31の最大適応度の増加率を算出する。
[ステップS64]学習制御部121は、ステップS63で算出された増加率が閾値Th12より低いかを判定する。増加率が閾値Th12より低い場合、ステップS65の処理が実行される。一方、増加率が閾値Th12以上である場合は、図10のステップS49の処理が実行され、動作モードが通常モードに変更される。
[ステップS65]学習制御部121は、動作モードを増加モードから減少モードに変更する。
[ステップS66]学習制御部121は、図10のステップS41で選択された2つの親個体を用いて、C’個の子個体を生成する(ただし、C’<C)。この後、図9のステップS28の処理が実行される。
[ステップS66]学習制御部121は、図10のステップS41で選択された2つの親個体を用いて、C’個の子個体を生成する(ただし、C’<C)。この後、図9のステップS28の処理が実行される。
[ステップS67]学習制御部121は、減少モードの期間が終了したかを判定する。具体的には、学習制御部121は、減少モードに設定された期間が前述の期間Dを超えた場合(すなわち、減少モードに設定されてからのステップS67の実行回数がDを超えた場合)に、減少モードの期間が終了したと判定する。減少モードの期間が終了したと判定された場合、ステップS68の処理が実行され、減少モードの期間が終了していないと判定された場合、ステップS66の処理が実行される。
[ステップS68]学習状況解析部123は、ステップS63と同様の手順で、母集団情報記憶部143に記憶された履歴情報に基づいて、過去のL世代における母集団31の最大適応度の増加率を算出する。
[ステップS69]学習制御部121は、ステップS68で算出された増加率が閾値Th12より低いかを判定する。増加率が閾値Th12より低い場合、ステップS70の処理が実行される。一方、増加率が閾値Th12以上である場合は、図10のステップS49の処理が実行され、動作モードが通常モードに変更される。なお、このステップS69では、閾値Th12とは異なる閾値が使用されてもよい。
[ステップS70]学習制御部121は、図9のステップS22で指定されたフィルタセットを用いて、所定数の個体を新たに生成する。学習制御部121は、生成した個体を母集団31に追加する。具体的な処理としては、追加した個体についての木構造情報および適応度が母集団情報記憶部143に登録される。この後、動作モードが減少モードに維持されたまま、ステップS66の処理が実行される。
以上の図14の処理では、最大適応度の増加促進のために期間Dだけ増加モードに設定された後に、最大適応度の増加率が閾値Th12以上に回復しなかった場合に、減少モードに設定される。これにより、子個体の生成数が減少して、1世代当たりの処理時間が短縮され、時間当たりの親個体の選択回数および子個体の生成回数が増加する。その結果、生成される子個体のバリエーションが増え、適応度の高い子個体が生成されやすくなる。
しかし、期間Dだけ減少モードに設定されても最大適応度の増加率が閾値Th12以上に回復しなかった場合には、減少モードが継続されたまま、母集団31に新たな個体が追加される。これにより、短時間で適応度の高い子個体が生成される可能性が高まる。
なお、ステップS69で増加率が閾値Th12より低い場合、学習制御部121は、新たな個体を生成し、母集団31の個体数を変化させずに、母集団31の個体のうち適応度の低い個体を、新たに生成した個体に入れ替えてもよい。この場合、個体の入れ替えが行われた後、図10のステップS49に進んで通常モードに変更されてもよい。この場合でも、短時間で適応度の高い子個体が生成される可能性が高まる。
また、例えば、ステップS61で増加モードの期間が終了したと判定されたとき、それまでに増加モードに遷移した回数が所定数以上である場合に、ステップS63以後の処理が実行されてもよい。
<変形例2>
変形例2では、画像処理装置100は、生成された各子個体の適応度のばらつきが小さい場合にも、子個体の生成数を増加させる。子個体の適応度のばらつきが小さい場合には、適応度が増加しにくく、学習の進行が停滞しやすい。そこで、このような場合にも子個体の生成数を増加させることで、学習の進行を促進することができる。
変形例2では、画像処理装置100は、生成された各子個体の適応度のばらつきが小さい場合にも、子個体の生成数を増加させる。子個体の適応度のばらつきが小さい場合には、適応度が増加しにくく、学習の進行が停滞しやすい。そこで、このような場合にも子個体の生成数を増加させることで、学習の進行を促進することができる。
さらに、画像処理装置100は、子個体の生成数を増加しても各子個体の適応度のばらつきがほとんど変化しない場合には、逆に子個体の生成数を通常モードより減少させる。これにより、単位時間内に生成される子個体のバリエーションを増やし、図5に示した解の探索空間51において正解領域52に近い子個体が生成されやすくする。
図15は、変形例2における処理手順の例を示すフローチャートである。変形例2では、例えば、図10のステップS50でC個の子個体が生成された後、次のステップS81の処理が実行される。
[ステップS81]適応度算出部122は、図10のステップS51と同様の手順により、ステップS50で生成されたC個の子個体のそれぞれについて、適応度を算出する。 [ステップS82]学習状況解析部123は、ステップS81で算出された適応度のばらつき(分散)を計算する。学習制御部121は、算出されたばらつきが所定の閾値Th13より小さいかを判定する。ばらつきが閾値Th13より小さい場合、ステップS83の処理が実行され、ばらつきが閾値Th13以上である場合、ステップS87の処理が実行される。
[ステップS83]学習制御部121は、図10のステップS41で選択された2つの親個体を用いて、所定数の個体を新たに生成する。例えば、(kC−C)個の個体が生成される。
[ステップS84]適応度算出部122は、図10のステップS51と同様の手順により、ステップS83で生成された各個体の適応度を算出する。
[ステップS85]学習状況解析部123は、ステップS81およびステップS84で算出されたすべての適応度に基づいて、適応度のばらつきを計算する。学習制御部121は、算出されたばらつき閾値Th13より小さいかを判定する。ばらつきが閾値Th13より小さい場合、ステップS86の処理が実行され、ばらつきが閾値Th13以上である場合、ステップS87の処理が実行される。
[ステップS85]学習状況解析部123は、ステップS81およびステップS84で算出されたすべての適応度に基づいて、適応度のばらつきを計算する。学習制御部121は、算出されたばらつき閾値Th13より小さいかを判定する。ばらつきが閾値Th13より小さい場合、ステップS86の処理が実行され、ばらつきが閾値Th13以上である場合、ステップS87の処理が実行される。
[ステップS86]学習制御部121は、ステップS50およびステップS83で生成された子個体の中から、適応度の大きい所定数の個体を、処理対象の個体として選択する。ここで選択される個体の数は、通常モードでの子個体の生成数Cより小さい値とされる。
[ステップS87]学習制御部121は、ステップS50およびステップS83で生成されたすべての個体を、処理対象の個体として選択する。
ステップS86,S87の後、図9のステップS28の処理が実行される。ステップS28では、ステップS86またはステップS87で処理対象として選択された個体が、子個体として利用される。さらに、ステップS28の次のステップS29の処理が実行された場合でも、ステップS86またはステップS87で処理対象として選択された個体が、子個体として利用される。
ステップS86,S87の後、図9のステップS28の処理が実行される。ステップS28では、ステップS86またはステップS87で処理対象として選択された個体が、子個体として利用される。さらに、ステップS28の次のステップS29の処理が実行された場合でも、ステップS86またはステップS87で処理対象として選択された個体が、子個体として利用される。
以上の図15の処理では、通常モードで生成された各子個体の適応度のばらつきが閾値Th13より小さい場合に、子個体の生成数が一時的に増加され、学習の進行が促進される。また、子個体の生成数を増加しても各子個体の適応度のばらつきが依然として閾値Th13より小さい場合には、その後の処理に用いる子個体の数を通常モードより減少させて、単位時間内に生成される子個体のバリエーションを増やす。このような処理により、学習の進行が停滞することを抑制することができる。
なお、上記の図15では、1世代の処理において、子個体が生成された後にその適応度のばらつきに基づいてさらに子個体の個数を増減するようにした。しかし、他の処理例として、前世代の処理において生成された子個体の適応度のばらつきに基づいて、現世代での子個体の生成数を増減するようにしてもよい。
また、以上の変形例2の処理は、変形例1の処理と組み合わせることも可能である。
<変形例3>
母集団31の最大適応度がある一定値以上となり、学習の到達段階が末期である場合には、母集団31から適応度の高い個体が親個体として選択されやすくすることで、学習の進行を促進することができる。そこで、変形例3では、画像処理装置100は、学習の到達段階が末期であると推定される場合には、母集団31から適応度の低い個体を削除し、母集団31の個体数を減少させる。これにより、母集団31の中から適応度の高い個体が親個体として選択されやすくなり、学習を促進することができる。
<変形例3>
母集団31の最大適応度がある一定値以上となり、学習の到達段階が末期である場合には、母集団31から適応度の高い個体が親個体として選択されやすくすることで、学習の進行を促進することができる。そこで、変形例3では、画像処理装置100は、学習の到達段階が末期であると推定される場合には、母集団31から適応度の低い個体を削除し、母集団31の個体数を減少させる。これにより、母集団31の中から適応度の高い個体が親個体として選択されやすくなり、学習を促進することができる。
図16は、変形例3における処理手順の例を示すフローチャートである。変形例3では、例えば、図10のステップS41の前に、図16に示すステップS101〜S103の処理が実行される。
[ステップS101]学習制御部121は、母集団31の最大適応度が所定の閾値Th14以上であるかを判定する。最大適応度が閾値Th14以上である場合、ステップS102の処理が実行され、最大適応度が閾値Th14より低い場合、図10のステップS41の処理が実行される。
[ステップS102]学習制御部121は、母集団31から適応度の低い所定数の個体を削除する。
[ステップS103]学習制御部121は、動作モードを増加モードに変更する。
[ステップS103]学習制御部121は、動作モードを増加モードに変更する。
以上の図16の処理では、母集団31の最大適応度が閾値Th14以上になったとき、母集団31の個体数を減少させるとともに、増加モードに遷移して子個体の生成数を増加させている。適応度の高い親個体が選択されやすい状況で子個体の生成数を増加させることで、子個体の適応度の上昇を期待でき、学習の進行がさらに促進される。
なお、以上の変形例3の処理は、変形例1,2の処理と組み合わせることも可能である。
<変形例4>
母集団31に含まれる各個体の適応度のばらつきが小さい場合には、正解領域の近傍に個体が存在しない可能性がある。この場合には、母集団31の最大適応度は増加しにくい。ただし、学習の末期では母集団31の最大適応度がすでに高くなっているため、正解領域の近傍に母集団31に含まれる個体が存在する可能性が高い。
<変形例4>
母集団31に含まれる各個体の適応度のばらつきが小さい場合には、正解領域の近傍に個体が存在しない可能性がある。この場合には、母集団31の最大適応度は増加しにくい。ただし、学習の末期では母集団31の最大適応度がすでに高くなっているため、正解領域の近傍に母集団31に含まれる個体が存在する可能性が高い。
そこで、変形例4では、画像処理装置100は、学習の初期において母集団31に含まれる各個体の適応度のばらつきが小さい場合には、母集団31に新たな個体を追加して母集団31の個体数を増加させる。これにより、適応度の高い個体が親個体として選択されやすくなり、学習の進行が促進される。
図17は、変形例4における処理手順の例を示すフローチャートである。変形例4では、例えば、図10のステップS41の前に、図17に示すステップS121〜S126の処理が実行される。
[ステップS121]学習状況解析部123は、母集団31に含まれる各個体の適応度のばらつき(分散)を計算する。
[ステップS122]学習制御部121は、ステップS121で算出されたばらつきが所定の閾値Th15より小さいかを判定する。ばらつきが閾値Th15より小さい場合、ステップS123の処理が実行され、ばらつきが閾値Th15以上である場合、図10のステップS41の処理が実行される。
[ステップS122]学習制御部121は、ステップS121で算出されたばらつきが所定の閾値Th15より小さいかを判定する。ばらつきが閾値Th15より小さい場合、ステップS123の処理が実行され、ばらつきが閾値Th15以上である場合、図10のステップS41の処理が実行される。
[ステップS123]学習制御部121は、母集団31の最大適応度が所定の閾値Th16_Lより低いかを判定する。最大適応度が閾値Th16_Lより低い場合、ステップS124の処理が実行され、最大適応度が閾値Th16_L以上である場合、ステップS125の処理が実行される。
[ステップS124]学習制御部121は、図14のステップS70と同様の手順で、図9のステップS22で指定されたフィルタセットを用いて所定数の個体を新たに生成し、生成した個体を母集団31に追加する。この後、図10のステップS41の処理が実行される。
[ステップS125]学習制御部121は、母集団31の最大適応度が所定の閾値Th16_H以上であるかを判定する。この閾値Th16_Hは、ステップS123で使用された閾値Th16_Lより大きい値とされる。最大適応度が閾値Th16_H以上である場合、ステップS126の処理が実行され、最大適応度が閾値Th16_Hより低い場合、図10のステップS41の処理が実行される。
なお、ステップS123,S125では、例えば、最大適応度がある閾値より低い場合にステップS124の処理が実行され、最大適応度が同じ閾値以上である場合にステップS126の処理が実行されるように、変形されてもよい。
[ステップS126]学習制御部121は、適応度が類似する個体が母集団31に含まれないように、母集団31に含まれる個体数を削減する。例えば、学習制御部121は、母集団31に含まれる個体について、互いの適応度の差が所定閾値以下となる個体のペアを特定し、特定された個体のペアの一方を母集団31から削除する。この後、図10のステップS41の処理が実行される。
以上の図17の処理では、ステップS122で母集団31に含まれる個体の適応度のばらつきが低いと判定された場合に、ステップS123,S125で学習の段階が判定される。学習の初期段階と判定された場合、ステップS124において母集団31に新たな個体が追加される。これにより、適応度の高い個体が親個体として選択されやすくなり、学習の進行が促進される。
一方、図17の例ではさらに、学習の末期段階と判定された場合には、ステップS126において、適応度が互いに類似する個体の一方が母集団31から削除される。母集団31の個体数が削減されることで、母集団31内の個体全体が親個体として短時間で選択されやすくなる。しかも、適応度の高い個体ペアの一方が削除されることで、各世代で親個体として選択される個体の適応度のばらつきが大きくなる。これら2つの効果により、母集団31の個体の中から最適な個体が親個体として短時間で選択されやすくなり、学習の進行が促進される。
なお、ステップS126では、例えば、母集団31に含まれる個体から木構造が類似する個体のペアが特定され、特定された個体のペアの一方が母集団31から削除されてもよい。木構造の類似度は、例えば、木構造に含まれるノードの数や、各ノードに割り当てられた画像フィルタの種類の類似性に基づいて算出される。このような処理が行われた場合でも、母集団31の個体の中から最適な個体が親個体として短時間で選択されやすくなり、学習の進行が促進される。
また、以上の変形例4の処理は、変形例1,2の処理と組み合わせることも可能である。
<変形例5>
母集団31から選択された2つの親個体の適応度のばらつきが小さい場合、解の探索空間における1世代当たりの探索範囲は狭くなる。そこで、変形例5では、画像処理装置100は、親個体の適応度のばらつきが小さい場合には、子個体の生成数を増加させる。これにより、正解領域に近い子個体が生成されやすくなり、学習の進行が促進される。
<変形例5>
母集団31から選択された2つの親個体の適応度のばらつきが小さい場合、解の探索空間における1世代当たりの探索範囲は狭くなる。そこで、変形例5では、画像処理装置100は、親個体の適応度のばらつきが小さい場合には、子個体の生成数を増加させる。これにより、正解領域に近い子個体が生成されやすくなり、学習の進行が促進される。
図18は、変形例5における処理手順の例を示すフローチャートである。変形例5では、例えば、図10のステップS41で2つの親個体が選択された後、次のステップS141の処理が実行される。
[ステップS141]学習状況解析部123は、ステップS41で選択された各親個体の適応度の差分を計算する。学習制御部121は、算出された差分が所定の閾値Th17より小さいかを判定する。差分が閾値Th17以上である場合には、図10のステップS42の処理が実行される。一方、差分が閾値Th17より小さく、親個体の適応度のばらつきが小さいと判定された場合には、図10のステップS47に進み、一時的に子個体の生成数が増加される。
なお、図18のステップS141の処理は、増加モードへの遷移による母集団31の最大適応度の増加効果が十分得られない場合に実行されてもよい。例えば、画像処理装置100は、増加モードへの遷移回数が所定の閾値を超えた場合に、ステップS41の実行後に母集団31の最大適応度の増加率を計算する。画像処理装置100は、増加率が所定閾値より低い場合のみステップS141の処理を実行し、増加率が閾値以上である場合にはステップS141をスキップしてステップS42の処理を実行する。
また、以上の変形例5の処理は、変形例1〜4の処理と組み合わせることも可能である。
<変形例6>
変形例6では、母集団31から選択された親個体の木構造のサイズに応じて、子個体の生成数が制御される。木構造のサイズとは、例えば、木構造に含まれるノード数を示す。
<変形例6>
変形例6では、母集団31から選択された親個体の木構造のサイズに応じて、子個体の生成数が制御される。木構造のサイズとは、例えば、木構造に含まれるノード数を示す。
親個体の木構造のサイズが大きいほど、その親個体から様々なバリエーションの子個体が生成され得る。そのため、子個体の適応度が高くなりやすい。そこで、変形例6では、画像処理装置100は、親個体の木構造のサイズが大きい場合には、子個体の生成数を増加させて、学習の進行をさらに加速させる。
逆に、親個体の木構造のサイズが小さい場合には、その親個体に交叉処理を施して子個体を生成しても、互いに類似する子個体が生成されやすく、その分だけ学習の進行速度が低下する。そこで、変形例6では、画像処理装置100は、親個体の木構造のサイズが小さい場合には、子個体の生成数を通常モードより減少させて、短時間で新たな親個体が選択されるようにする。これにより、学習の進行の停滞を抑制できる。
図19は、変形例6における処理手順の例を示すフローチャートである。変形例6では、例えば、図10のステップS41で2つの親個体が選択された後、次のような処理が実行される。
[ステップS151]学習制御部121は、ステップS41で選択された親個体の各木構造のサイズと、所定の閾値Th18_Lとを比較する。各木構造のサイズのうち少なくとも一方が閾値Th18_Lより小さい場合、図10のステップS47に進み、子個体の生成数が一時的にkC個に増加される。一方、木構造のサイズが両方とも閾値Th18_L以上である場合には、ステップS152の処理が実行される。
[ステップS152]学習制御部121は、ステップS41で選択された親個体の各木構造のサイズと、所定の閾値Th18_Hとを比較する。閾値Th18_Hは、閾値Th18_Lより大きい値とされる。各木構造のサイズのうち少なくとも一方が閾値Th18_H以上である場合、ステップS153の処理が実行される。一方、木構造のサイズが両方とも閾値Th18_Hより小さい場合、図10のステップS42の処理が実行される。
[ステップS153]学習制御部121は、ステップS41で選択された2つの親個体を用いて、通常モードでの子個体の生成数Cより小さいC’個の子個体を生成する。すなわち、親個体の木構造のサイズのうち少なくとも一方が閾値Th18_Lより大きい場合には、子個体の生成数が一時的に増加される。この後、図9のステップS28の処理が実行される。
なお、図19のステップS151,S152の判定処理は、増加モードへの遷移による母集団31の最大適応度の増加効果が十分得られない場合に実行されてもよい。例えば、画像処理装置100は、増加モードへの遷移回数が所定の閾値を超えた場合に、ステップS41の実行後に母集団31の最大適応度の増加率を計算する。画像処理装置100は、増加率が所定閾値より低い場合のみステップS151の処理を実行し、増加率が閾値以上である場合にはステップS151,S152をスキップしてステップS42の処理を実行する。
また、以上の変形例6の処理は、変形例1〜5の処理と組み合わせることも可能である。
なお、上記の各実施の形態に示した装置(プログラム生成装置1および画像処理装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
なお、上記の各実施の形態に示した装置(プログラム生成装置1および画像処理装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1 プログラム生成装置
1a 記憶部
1b 演算部
2 母集団
2a 母集団情報
3a,3b,・・・ 適応度
4a,4b 親個体
5a,5b 子個体
6 個体
1a 記憶部
1b 演算部
2 母集団
2a 母集団情報
3a,3b,・・・ 適応度
4a,4b 親個体
5a,5b 子個体
6 個体
Claims (10)
- 遺伝的プログラミングを用いたプログラム生成装置において、
それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部と、
前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、前記増加率が前記第1の閾値より低い場合、前記設定値を前記第1の個数より大きい第2の個数に設定する設定処理と、
前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の1つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
を繰り返し実行する演算部と、
を有するプログラム生成装置。 - 前記設定処理では、前記増加率が前記第1の閾値以上の場合、その後に前記設定処理を第1の回数だけ実行する間、前記設定値を前記第1の個数に設定し続け、前記増加率が前記第1の閾値より低い場合、その後に前記設定処理を前記第1の回数より少ない第2の回数だけ実行する間、前記設定値を前記第2の個数に設定し続ける、
請求項1記載のプログラム生成装置。 - 前記設定値が前記第2の個数に設定された前記設定処理が前記第2の回数だけ実行された後の前記設定処理では、前記増加率が第3の閾値より低い場合、前記設定値を前記第1の個数より小さい第3の個数に設定する、
請求項2記載のプログラム生成装置。 - 前記演算部は、さらに、前記進化処理において生成された前記子個体のそれぞれの適応度のばらつきに基づいて、前記設定値を増減させる、
請求項1乃至3のいずれか1項に記載のプログラム生成装置。 - 前記演算部は、さらに、前記最大適応度が第4の閾値以上である場合には、前記母集団から適応度の低い個体を削除するとともに、前記設定値を増加させる、
請求項1乃至4のいずれか1項に記載のプログラム生成装置。 - 前記設定処理では、前記親個体のそれぞれの適応度のばらつきに基づいて、前記設定値を増減する、
請求項1乃至5のいずれか1項に記載のプログラム生成装置。 - 前記設定処理では、前記親個体を示す木構造のサイズに基づいて、前記設定値を増減する、
請求項1乃至6のいずれか1項に記載のプログラム生成装置。 - 前記演算部は、さらに、前記母集団に含まれる前記各個体の適応度のばらつきが第5の閾値より小さい場合、前記最大適応度に基づいて前記母集団に含まれる前記個体の数を増減する、
請求項1乃至7のいずれか1項に記載のプログラム生成装置。 - 遺伝的プログラミングを用いたプログラム生成方法において、
コンピュータが、
それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部を参照して、前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、前記増加率が前記第1の閾値より低い場合、前記設定値を前記第1の個数より大きい第2の個数に設定する設定処理と、
前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の1つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
を繰り返し実行する、
プログラム生成方法。 - 遺伝的プログラミングを用いてプログラムを生成する生成プログラムにおいて、
コンピュータに、
それぞれ木構造で表される画像処理プログラムである複数の個体を含む母集団を示す情報と、前記母集団に含まれる前記各個体の適応度とを記憶する記憶部を参照して、前記母集団に含まれる前記各個体の適応度のうち最大適応度の増加率を計算し、前記増加率が第1の閾値以上の場合、子の生成数を示す設定値を第1の個数に設定し、前記増加率が前記第1の閾値より低い場合、前記設定値を前記第1の個数より大きい第2の個数に設定する設定処理と、
前記母集団に含まれる前記各個体の中から選択された親個体に基づいて、前記設定値の数だけ子個体を生成する進化処理と、
前記親個体の適応度を前記記憶部から取得するとともに前記子個体の適応度を計算し、前記親個体と前記子個体の中から適応度が最大である選択個体を選択し、前記母集団に含まれる前記個体の1つを前記選択個体と入れ替えるとともに、前記選択個体の適応度を前記記憶部に登録する生存選択処理と、
を繰り返す処理を実行させる、
生成プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/078084 WO2017056320A1 (ja) | 2015-10-02 | 2015-10-02 | プログラム生成装置、プログラム生成方法および生成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017056320A1 true JPWO2017056320A1 (ja) | 2018-08-09 |
JP6544435B2 JP6544435B2 (ja) | 2019-07-17 |
Family
ID=58422852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017542661A Active JP6544435B2 (ja) | 2015-10-02 | 2015-10-02 | プログラム生成装置、プログラム生成方法および生成プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11151458B2 (ja) |
JP (1) | JP6544435B2 (ja) |
WO (1) | WO2017056320A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6663873B2 (ja) * | 2017-02-22 | 2020-03-13 | 株式会社日立製作所 | プログラム自動生成システム及びプログラム自動生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07225752A (ja) * | 1993-12-16 | 1995-08-22 | Fujitsu Ltd | 状態遷移の概念を導入した問題解決演算装置および方法 |
JPH09179845A (ja) * | 1995-12-22 | 1997-07-11 | Toyo Electric Mfg Co Ltd | 遺伝的アルゴリズムを用いた最適化処理方法および装置 |
JP2008117059A (ja) * | 2006-11-01 | 2008-05-22 | Fuji Heavy Ind Ltd | 制御パラメータの自動調整装置 |
WO2015001967A1 (ja) * | 2013-07-02 | 2015-01-08 | 富士通株式会社 | 画像処理フィルタの作成装置及びその方法 |
WO2015189935A1 (ja) * | 2014-06-11 | 2015-12-17 | 富士通株式会社 | プログラム生成装置、プログラム生成方法およびプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06119176A (ja) | 1992-10-06 | 1994-04-28 | Matsushita Electric Ind Co Ltd | ファジィ演算装置 |
US6052678A (en) * | 1993-12-16 | 2000-04-18 | Fujitsu Limited | Problem solving operation apparatus using a state transition |
JPH09114797A (ja) | 1995-10-18 | 1997-05-02 | Fuji Xerox Co Ltd | 最適解探索方法及び装置 |
JPH09251446A (ja) | 1996-03-18 | 1997-09-22 | Nri & Ncc Co Ltd | 不均衡進化説に基づく遺伝的アルゴリズムによる最適化装置およびその方法 |
JP3404532B2 (ja) * | 2001-07-27 | 2003-05-12 | 独立行政法人産業技術総合研究所 | 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム |
-
2015
- 2015-10-02 WO PCT/JP2015/078084 patent/WO2017056320A1/ja active Application Filing
- 2015-10-02 JP JP2017542661A patent/JP6544435B2/ja active Active
-
2018
- 2018-03-29 US US15/939,588 patent/US11151458B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07225752A (ja) * | 1993-12-16 | 1995-08-22 | Fujitsu Ltd | 状態遷移の概念を導入した問題解決演算装置および方法 |
JPH09179845A (ja) * | 1995-12-22 | 1997-07-11 | Toyo Electric Mfg Co Ltd | 遺伝的アルゴリズムを用いた最適化処理方法および装置 |
JP2008117059A (ja) * | 2006-11-01 | 2008-05-22 | Fuji Heavy Ind Ltd | 制御パラメータの自動調整装置 |
WO2015001967A1 (ja) * | 2013-07-02 | 2015-01-08 | 富士通株式会社 | 画像処理フィルタの作成装置及びその方法 |
WO2015189935A1 (ja) * | 2014-06-11 | 2015-12-17 | 富士通株式会社 | プログラム生成装置、プログラム生成方法およびプログラム |
Non-Patent Citations (1)
Title |
---|
吉井健吾 外2名: "「ヘテロ計算環境を想定した多目的遺伝的アルゴリズムの並列モデルの提案およびその検討」", 情報処理学会論文誌, vol. 第48巻,第SIG15号(TOM18), JPN6015051743, 15 October 2007 (2007-10-15), pages 103 - 117, ISSN: 0004036671 * |
Also Published As
Publication number | Publication date |
---|---|
JP6544435B2 (ja) | 2019-07-17 |
US11151458B2 (en) | 2021-10-19 |
US20180218263A1 (en) | 2018-08-02 |
WO2017056320A1 (ja) | 2017-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6511986B2 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
Weber et al. | Distributed differential evolution with explorative–exploitative population families | |
US11468261B2 (en) | Information processing apparatus, image processing method, and computer-readable recording medium recording image processing program | |
JP6468356B2 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
JP6344469B2 (ja) | プログラム生成装置、プログラム生成方法およびプログラム | |
JP5795743B2 (ja) | 適応的重み付けを用いた様々な文書間類似度計算方法に基づいた文書比較方法および文書比較システム | |
JPWO2017068675A1 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
JP7003753B2 (ja) | 探索点決定プログラム、探索点決定方法および探索点決定装置 | |
JP6015670B2 (ja) | 画像処理装置及び画像処理方法 | |
US20190228314A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP2018528511A (ja) | 生産システムにおける出力効率の最適化 | |
JP6729810B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
WO2017056320A1 (ja) | プログラム生成装置、プログラム生成方法および生成プログラム | |
JP6622369B1 (ja) | 訓練データを生成する方法、コンピュータおよびプログラム | |
JP6536157B2 (ja) | モデル推定システム、モデル推定方法およびモデル推定プログラム | |
CN112734454B (zh) | 一种用户信息确定方法、装置、电子设备和存储介质 | |
US11182650B2 (en) | Information processing apparatus to generate a next generation image processing program in genetic programming, control method, and non-transitory computer-readable storage medium for storage program | |
JP6505322B2 (ja) | ユーザインタフェース装置 | |
JP7050028B2 (ja) | 計算機システム及び機械学習の制御方法 | |
JPWO2011016281A1 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
JP2021157654A (ja) | 機械学習装置、学習モデルの生成方法及びプログラム | |
JP7127686B2 (ja) | 仮説推論装置、仮説推論方法、及びプログラム | |
JP6085481B2 (ja) | プログラマブル回路、演算処理方法 | |
JP2022154442A (ja) | 学習装置、学習方法およびプログラム | |
JP2023069081A (ja) | 説明プログラム、説明方法および情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180328 |
|
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: 20190521 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190603 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6544435 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |