(57)【特許請求の範囲】
【請求項１】
複数の処理部品を組み合わせた少なくとも１つの前世代の変換器から、遺伝的処理により現世代の変換器を生成する生成部と、
前世代およびそれ以前の複数の世代における少なくとも１つの変換器により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分に応じた値に基づき、データ領域毎の重みを表わす現世代の重みデータを生成する重み生成部と、
それぞれの前記現世代の変換器について、学習用入力データから学習用目標データへの変換に対する適合度を、前記現世代の重みデータにより重み付けして算出する適合度算出部と、
を備え、
前記重み生成部は、少なくとも１つの変換器により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分に応じた値を、所定世代から前世代まで累積して得られる更新値に基づき、前記現世代の重みデータを生成して、
前記重み生成部は、前記差分の絶対値が閾値より大きい場合に、前記現世代の更新値を前記前世代の更新値より増加させ、前記差分の絶対値が前記閾値より小さい場合に、前記現世代の更新値を前記前世代の更新値より減少させる更新変化量を生成する
遺伝的処理装置。
【請求項２】
前記重み生成部は、前世代の少なくとも１つの変換器により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分の絶対値に基づく更新変化量に、第１係数を乗じた値を、前世代の更新値に加算して、現世代の更新値を算出する
請求項１に記載の遺伝的処理装置。
【請求項３】
前記重み生成部は、前記更新値を予め定められた範囲内に制限する
請求項１または２に記載の遺伝的処理装置。
【請求項４】
前記重み生成部は、前世代の重みデータと前記更新値に応じた値とを加算して前記現世代の重みデータを生成する
請求項１から３の何れか１項に記載の遺伝的処理装置。
【請求項５】
前記重み生成部は、世代がより大きい場合に前記重みデータの変化をより小さくする
請求項１から４の何れか１項に記載の遺伝的処理装置。
【請求項６】
前記重み生成部は、世代が大きくなるに従い値が０に漸近する第２係数を前記更新値に乗じた値と、前記前世代の重みデータとを加算して、前記現世代の重みデータを生成する
請求項４に記載の遺伝的処理装置。
【請求項７】
前記生成部は、入力画像を出力画像にそれぞれ変換する複数のフィルタ部品を前記複数の処理部品とし、当該複数のフィルタ部品を組み合わせた少なくとも１つの前世代の画像フィルタを前記少なくとも１つの前記前世代の変換器として、遺伝的処理により現世代の画像フィルタを生成する
請求項１から６の何れか１項に記載の遺伝的処理装置。
【請求項８】
複数の処理部品を組み合わせた少なくとも１つの前世代の変換器から、遺伝的処理により現世代の変換器を生成し、
前世代およびそれ以前の複数の世代における少なくとも１つの変換器により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分に応じた値に基づき、データ領域毎の重みを表わす現世代の重みデータを生成し、
それぞれの前記現世代の変換器について、学習用入力データから学習用目標データへの変換に対する適合度を、前記現世代の重みデータにより重み付けして算出して、
前記重みデータの生成において、少なくとも１つの変換器により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分に応じた値を、所定世代から前世代まで累積して得られる更新値に基づき、前記現世代の重みデータを生成して、
前記重みデータの生成において、前記差分の絶対値が閾値より大きい場合に、前記現世代の更新値を前記前世代の更新値より増加させ、前記差分の絶対値が前記閾値より小さい場合に、前記現世代の更新値を前記前世代の更新値より減少させる更新変化量を生成する
遺伝的処理方法。
【請求項９】
コンピュータを請求項１から７の何れか１項に記載の遺伝的処理装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遺伝的処理装置、遺伝的処理方法およびプログラムに関する。
【背景技術】
【０００２】
遺伝的アルゴリズムまたは遺伝的プログラミング等の進化的計算を用いた画像フィルタの生成方法が知られている（非特許文献１参照）。この方法においては、画像フィルタに対して、交叉、突然変異および選択等の操作を複数回繰り返すことにより、新たな画像フィルタを生成する。このような方法によれば、それぞれの事例に最適であって、解析的に得ることが困難な複雑な構造の画像フィルタを、より少ない労力で設計することができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】前薗正宜  他２名、「遺伝的アルゴリズムによる画像フィルタ設計の研究」、［ｏｎｌｉｎｅ］、コンピュータ利用教育協議会、［２００８年３月２０日検索］、インターネット＜URL：http://www.ciec.or.jp/event/2003/papers/pdf/E00086.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、このように進化的計算により画像フィルタを生成する場合、目的の画像フィルタが得られるまでに世代交代を繰り返す。各世代においては、学習用入力データを複数の画像フィルタのそれぞれにより変換して複数の学習用出力データを生成し、学習用出力データと目標データとの適合度を算出する。そして、適合度のより高い学習用出力データが得られる画像フィルタを次世代へ生存させる。
【０００５】
ここで、世代が進むと、複数の画像フィルタにより生成された複数の学習用出力データのほとんどが、目標データと近くなっていく。従って、複数の学習用出力データの間の差が微小となり、次世代へ残存させるべき画像フィルタと現世代で淘汰すべき画像フィルタとの判別が困難となる。
【０００６】
そこで、画像内の重要な領域については大きな重みを与え、画像内の重要でない部分については小さな重みを与える重みデータを用いて、適合度を算出してもよい。これにより、画像内の重要な部分を精度良くフィルタリングできる画像フィルタを次世代へと残存させることができる。
【０００７】
しかしながら、それぞれの事例において適切な重みを与えることは、経験および知識が必要であり、非常に難しかった。また、世代に応じて与える重みデータを変化させることも考えられるが、世代間における重みデータが急激に変化すると、進化的計算が不安定となってしまい、適切な画像フィルタを次世代へと残存させることができない場合がある。また、重みデータが２つの局所解の間で振動してしまう場合があり、適切な画像フィルタを次世代へと残存させることができない場合がある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の態様においては、複数の処理部品を組み合わせた少なくとも１つの前世代の変換器から、遺伝的処理により現世代の変換器を生成する生成部と、前世代以前の複数の世代における少なくとも１つの変換器により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分に応じた値に基づき、データ領域毎の重みを表わす現世代の重みデータを生成する重み生成部と、それぞれの前記現世代の変換器について、学習用入力データから学習用目標データへの変換に対する適合度を、前記現世代の重みデータにより重み付けして算出する適合度算出部と、を備える遺伝的処理装置、遺伝的処理方法およびプログラムを提供する。
【０００９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施形態に係る遺伝的処理装置１０の構成を示す。
【図２】図２は、本実施形態に係る処理部品２２を直列に組み合わせた構成の変換器２０の一例を示す。
【図３】図３は、本実施形態に係る処理部品２２を木構造に組み合わせた構成の変換器２０の一例を示す。
【図４】図４は、本実施形態に係る処理部品２２を直列に組み合わせた構成の変換器２０に対して行われる遺伝的な操作の一例を示す。
【図５】図５は、本実施形態に係る処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる交叉操作の一例を示す。
【図６】図６は、本実施形態に係る処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる突然変異操作の一例を示す。
【図７】図７は、本実施形態に係る遺伝的処理装置１０の処理フローを示す。
【図８】図８は、本実施形態に係る変換器２０の適合度の算出方法の一例を示す。
【図９】図９は、本実施形態に係る遺伝的処理装置１０による重みデータの算出のための処理の一例を示す。
【図１０】図１０は、本実施形態に係る更新変化量の一例を示す。
【図１１】図１１は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、本実施形態に係る遺伝的処理装置１０の構成を示す。遺伝的処理装置１０は、入力データを処理して処理結果を出力データとして出力する複数の処理部品２２の入出力間を組み合わせた変換器２０を含む変換器群を進化的計算に基づいて複数世代にわたり進化させる。そして、遺伝的処理装置１０は、学習用入力データを学習用目標データへ変換するのに適した変換器２０を生成する。
【００１３】
遺伝的処理装置１０は、一例として、コンピュータにより実現される。また、変換器２０は、一例として、画像フィルタであってよい。
【００１４】
遺伝的処理装置１０は、変換器格納部３４と、学習用入力データ格納部３６と、変換処理部３８と、学習用出力データ格納部４０と、学習用目標データ格納部４２と、重み生成部４３と、適合度算出部４４と、選択部４６と、更新部４８と、生成部５０とを備える。変換器格納部３４は、互いに異なる構成の複数の変換器２０を格納する。
【００１５】
学習用入力データ格納部３６は、変換器２０の変換対象である学習用入力データを格納する。学習用入力データは、一例として、当該遺伝的処理装置１０により生成された変換器２０が適用されるアプリケーションにおいて、変換器２０に実際に与えられるデータのサンプルであってよい。変換器２０が画像フィルタである場合、学習用入力データは、一例として、使用者により予め生成または撮影された画像であってよい。
【００１６】
変換処理部３８は、変換器格納部３４に格納された複数の変換器２０を順次に取得する。変換処理部３８は、取得したそれぞれの変換器２０により、学習用入力データ格納部３６に格納された学習用入力データを変換させて、学習用出力データのそれぞれを生成する。
【００１７】
学習用出力データ格納部４０は、変換処理部３８において生成された学習用出力データを格納する。学習用出力データ格納部４０は、一例として、生成された学習用出力データのそれぞれを、変換した変換器２０に対応付けて格納する。
【００１８】
学習用目標データ格納部４２は、学習用入力データを変換して生成される学習用出力データの目標となる学習用目標データを格納する。学習用目標データは、一例として、当該遺伝的処理装置１０により生成された変換器２０が適用されるアプリケーションにおいて、変換器２０が実際に出力するべきデータのサンプルであってよい。変換器２０が画像フィルタである場合、学習用目標データは、一例として、使用者により予め生成または撮影された画像であってよい。
【００１９】
重み生成部４３は、データ毎の重みを表わす重みデータを生成する。学習用入力データおよび学習用目標データが画像であった場合には、重みデータは、一例として、各ピクセルの値（例えば輝度値）によって当該ピクセル位置の重みを表わす重み画像であってよい。
【００２０】
ここで、重み生成部４３は、学習用出力データと学習用目標データとの差分に応じた値に基づき、重みデータを生成する。重み生成部４３は、一例として、差分が大きい部分の重みを、差分が小さい部分の重みより大きくした重みデータを生成する。
【００２１】
更に、重み生成部４３は、重みデータを世代毎に更新する。この場合において、重み生成部４３は、前世代以前の複数の世代における少なくとも１つの変換器２０（例えばエリートとして選択された変換器２０）により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分に応じた値に基づき、現世代の重みデータを生成する。なお、重みデータの生成処理の詳細については、後述する。
【００２２】
適合度算出部４４は、変換器格納部３４に格納されたそれぞれの変換器２０について、学習用入力データから学習用目標データへの変換に対する適合度を、重み生成部４３により生成された現世代の重みデータにより重み付けして算出する。ここで、適合度は、学習用入力データを学習用目標データへと変換するのに適しているかどうかを表す指標値であり、値が高いほど学習用入力データを学習用目標データへと変換するのに適していることを表す。
【００２３】
選択部４６は、変換器格納部３４に格納された複数の変換器２０のうち少なくとも１つの変換器２０を選択する。この場合において、選択部４６は、適合度がより高い変換器２０を優先的に選択する。より具体的には、選択部４６は、生物の自然淘汰をモデル化した手法により、残存させる少なくとも１つの変換器２０を選択する。選択部４６は、一例として、変換器格納部３４に格納された複数の変換器２０のそれぞれの適合度に基づき、エリート選択およびルーレット選択といった遺伝的計算により少なくとも１つの変換器２０を選択する。
【００２４】
更新部４８は、変換器格納部３４に格納された複数の変換器２０のうち、選択部４６により選択された変換器２０を残存させ、選択部４６により選択されなかった変換器２０を淘汰する。更新部４８は、一例として、変換器２０を変換器格納部３４から削除することにより淘汰する。
【００２５】
生成部５０は、変換器格納部３４に格納された少なくとも１つの前世代の変換器２０から、遺伝的処理により現世代の変換器２０を生成する。即ち、生成部５０は、少なくとも１つの変換器２０を親として、遺伝的処理により新たな変換器２０を生成する。そして、生成部５０は、生成した新たな変換器２０を変換器格納部３４に書き込む。
【００２６】
生成部５０は、一例として、更新部４８による更新処理において残存した少なくとも１つの変換器２０を、変換器格納部３４から取得する。続いて、生成部５０は、一例として、取得した少なくとも１つの変換器２０に対して交叉および突然変異等の遺伝的な操作をして、新たな変換器２０を生成する。そして、生成部５０は、一例として、生成した新たな変換器２０を変換器格納部３４に書き込む。これにより、変換器格納部３４は、更新処理において残存した少なくとも１つの変換器２０および生成部５０が生成した新たな変換器２０を、格納することができる。
【００２７】
このような遺伝的処理装置１０は、変換処理部３８による変換処理、適合度算出部４４による適合度の算出処理、選択部４６による変換器２０の選択処理、更新部４８による更新処理および生成部５０による新たな変換器２０の生成処理を、複数回（例えば複数世代）繰り返す。これにより、遺伝的処理装置１０は、学習用入力データを学習用目標データへ変換するのに適した変換器２０を、進化的計算を用いて生成することができる。
【００２８】
図２は、処理部品２２を直列に組み合わせた構成の変換器２０の一例を示す。図３は、処理部品２２を木構造に組み合わせた構成の変換器２０の一例を示す。
【００２９】
変換器２０は、一例として、図２に示されるような、複数の処理部品２２を直列に組み合わせた構成であってよい。また、変換器２０は、一例として、図３に示されるような、複数の処理部品２２を木構造に組み合わせた構成であってもよい。また、変換器２０は、一例として、１つの入力端に対して、複数の出力端を有する構成であってもよい。また、変換器２０は、一例として、複数の入力端および複数の出力端を有する構成であってもよい。
【００３０】
なお、処理部品２２が木構造に組み合わされた構成の変換器２０は、木構造の末端の処理部品２２に入力データが与えられ、木構造の最上位の処理部品２２から出力データを出力する。また、このような変換器２０は、複数の末端の処理部品２２のそれぞれに、同一の入力データが与えられる。これに代えて、このような変換器２０は、複数の末端の処理部品２２のそれぞれに互いに異なる入力データが与えられてもよい。
【００３１】
また、例えば、変換器２０は、入力画像を出力画像にそれぞれ変換する複数のフィルタ部品である処理部品２２を組み合わせた画像フィルタであってよい。この場合、各処理部品２２は、前段に配置された処理部品２２から出力された画像データを受け取り、受け取った画像データに演算を施して後段に配置された処理部品２２に与える。また、この場合、遺伝的処理装置１０は、複数の画像フィルタを含む画像フィルタ群を進化的計算に基づいて複数世代にわたり進化させる。
【００３２】
また、変換器２０は、一例として、ハードウェアである処理部品２２を組み合わせた構成であってよい。また、変換器２０は、データに対して演算を施すプログラムである処理部品２２を組み合わせた構成であってもよい。また、変換器２０は、データに対して施すべき演算内容を表わす演算式である処理部品２２を組み合わせた構成であってもよい。
【００３３】
また、変換器２０は、例えば、１次元データ列、２次元データ群、３次元データ群、又は、更に多次元のデータ群等を変換してもよい。１次元データ列は、例えば、時系列データ又は配列状のデータ列等である。２次元データ群は、例えば、複数の画素データ等が２次元空間に配列された画像データ等である。３次元データ群は、例えば、色又は濃度等を表わすデータ値が３次元空間の各格子点に配置されたボリュームデータ等である。また、変換器２０は、入力されたデータと異なる次元のデータを出力してもよい。
【００３４】
複数の処理部品２２のそれぞれは、一例として、２値化演算、ヒストグラム演算、平滑化演算、エッジ検出演算、モルフォロジ演算及び／又は周波数空間での演算（例えば、ローパスフィルタリング演算およびハイパスフィルタリング演算）等の単項演算をする。さらに、複数の処理部品２２のそれぞれは、一例として、平均演算、差分演算及び／又はファジー演算（例えば論理和演算、論理積演算、代数和、代数積、限界和、限界積、激烈和および激烈積等）等の二項演算をしてもよい。
【００３５】
図４は、処理部品２２を直列に組み合わせた構成の変換器２０に対して行われる遺伝的な操作の一例を示す。図５は、処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる交叉操作の一例を示す。図６は、処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる突然変異操作の一例を示す。
【００３６】
生成部５０は、一例として、２個又はそれ以上の変換器２０に対して、遺伝的な操作の一例である交叉操作を行って新たな２個又はそれ以上の変換器２０を生成する。生成部５０は、一例として、図４および図５に示されるように、既に生成された少なくとも１つの一の変換器２０Ａの一部の部品群２４Ａを、既に生成された他の変換器２０Ｂの少なくとも一部の部品群２４Ｂと置換して、新たな変換器２０Ｅおよび２０Ｆを生成する。なお、部品群２４は、少なくとも１つの処理部品２２の組を表す部材である。
【００３７】
また、生成部５０は、一例として、一の変換器２０に対して、遺伝的な操作の一例である突然変異操作を行って新たな一の変換器２０を生成する。生成部５０は、一例として、図４および図６に示されるように、既に生成された一の変換器２０Ｃの一部の部品群２４Ｃを、例えばランダムに選択された他の部品群２４Ｇに置換して、新たな変換器２０Ｇを生成する。
【００３８】
また、生成部５０は、一例として、現世代の変換器２０をそのまま次世代の変換器２０として残してもよい。生成部５０は、一例として、図４に示されるように、変換器２０Ｄの処理部品２２の構成をそのまま含む次世代の変換器２０Ｈを生成する。
【００３９】
図７は、本実施形態に係る遺伝的処理装置１０の処理フローを示す。遺伝的処理装置１０は、ステップＳ１２〜ステップＳ１７の各処理を、複数回（例えば複数世代）繰返して実行する（Ｓ１１、Ｓ１８）。
【００４０】
それぞれの世代において、まず、重み生成部４３は、重みデータを適切なデータに更新する（Ｓ１２）。この場合において、重み生成部４３は、前世代以前の複数の世代における少なくとも１つの変換器２０（例えば、前世代以前の複数の世代におけるエリートの変換器２０）により学習用入力データを変換して得られた学習用出力データと学習用目標データとの差分に応じた値を、累積して得られる更新値に基づき、現世代の重みデータを生成する。
【００４１】
なお、重み生成部４３は、最初の世代においては、予め定められた重みデータを用いる。重みデータの生成処理の詳細については、図９において説明する。
【００４２】
続いて、変換処理部３８は、現世代の複数の変換器２０のそれぞれについて、当該変換器２０により学習用入力データを変換した学習用出力データを生成する（Ｓ１３）。変換処理部３８は、生成した学習用出力データを当該変換器２０に対応付けて学習用出力データ格納部４０に格納させる。
【００４３】
続いて、適合度算出部４４は、現世代の複数の変換器２０のそれぞれについて、ステップＳ１２において更新された現世代の重みデータにより重み付けして適合度を算出する（Ｓ１４）。適合度算出部４４は、一例として、学習用出力データと学習用目標データとの類似度または近似度を適合度として算出してよい。
【００４４】
続いて、選択部４６は、現世代の複数の変換器２０のうち、適合度が高い変換器２０を優先的に選択する（Ｓ１５）。選択部４６は、一例として、適合度が基準値より高い変換器２０を選択する。
【００４５】
また、選択部４６は、一例として、現世代の複数の変換器２０のうち、適合度が上位から予め定められた範囲の変換器２０を選択してもよい。また、選択部４６は、一例として、適合度がより高い変換器２０がより高い確率で選択されるように設定がされている条件下で、ランダムに変換器２０を選択してもよい。なお、選択部４６は、一例として、最後の世代においては、適合度の最も高い１個の変換器２０を選択する。
【００４６】
続いて、更新部４８は、変換器格納部３４に格納された複数の変換器２０を更新する（Ｓ１６）。より具体的には、更新部４８は、現世代の複数の変換器２０のうちステップＳ１５において選択された変換器２０を次世代へと残存させ、他の変換器２０を淘汰することにより更新する。更新部４８は、一例として、ステップＳ１５において選択されなかった変換器２０を、変換器格納部３４から消去することによって淘汰する。
【００４７】
続いて、生成部５０は、更新処理によって残存した少なくとも１つの変換器２０に対して、交叉および突然変異等の遺伝的な操作を行って、１または複数個の新たな変換器２０を生成する（Ｓ１７）。そして、生成部５０は、残存した変換器２０および新たな変換器２０を、次世代の複数の変換器２０として変換器格納部３４に格納させる。なお、生成部５０は、最後の世代においては、当該処理を実行しない。
【００４８】
遺伝的処理装置１０は、以上の処理を複数の世代（例えば数十世代または数百世代以上）繰返して実行して、最後の世代（例えば第Ｎ世代、Ｎは２以上の自然数）まで処理を実行した後に、当該フローを抜ける（Ｓ１８）。このようにして、遺伝的処理装置１０は、学習用入力データを学習用目標データへ変換するのに適した変換器２０を、進化的計算を用いて生成することができる。
【００４９】
図８は、本実施形態に係る変換器２０の適合度の算出方法の一例を示す。適合度算出部４４は、一例として、変換器２０の適合度として、当該変換器２０により学習用入力データを変換させることにより生成された学習用出力データと学習用目標データとがどれだけ類似または近似しているかを表すパラメータを算出する。適合度は、例えば、値がより大きいほど、変換器２０がより適切であることを示す。
【００５０】
適合度算出部４４は、学習用出力データの各領域の値と学習用目標データの対応する領域の値とを比較した比較値を算出し、領域毎の比較値に対して重みデータにより指定される重みを乗じる。そして、適合度算出部４４は、重みが乗じられた領域毎の比較値を全領域について平均または合計した値を算出し、算出した値を当該学習用出力データの適合度として出力する。
【００５１】
適合度算出部４４は、一例として、学習用出力データ、学習用目標データおよび重みデータが画像データの場合、学習用出力データのピクセル毎の輝度値と、学習用目標データの対応するピクセルの輝度値との差分または比率を算出する。そして、適合度算出部４４は、一例として、算出したピクセル毎の差分または比率のそれぞれに、重みデータに基づく重みを乗じ、重みが乗じられたピクセル毎の差分または比率を合計または平均して、適合度を算出する。
【００５２】
例えば、学習用出力データ、学習用目標データおよび重みデータが画像データの場合、適合度算出部４４は、下記式（１）に示される演算をして、適合度を算出する。なお、この場合において、学習用出力データ、学習用目標データおよび重みデータの画像サイズは、同一とされる。
【００５３】
【数１】
0005418052.tif 000002
【００５４】
式（１）において、ｆは、適合度を表わす。Ｙｍａｘは、輝度の最大値を表わす。また、ｘは、画像の水平方向のピクセル位置を示す変数である。ｙは、画像の垂直方向のピクセル位置を示す変数である。ｘｍａｘは、画像の水平方向のピクセル数を示す定数である。ｔｙｍａｘは、画像の垂直方向のピクセル数を示す定数である。
【００５５】
Ｉｗｅｉｈｔ（ｘ，ｙ）は、重みデータにおける（ｘ，ｙ）位置のピクセルの輝度値を表わす。Ｉｔａｒｇｅｔ（ｘ，ｙ）は、学習用目標データにおける（ｘ，ｙ）位置のピクセルの輝度値を表わす。Ｉｆｉｌｔｅｒ（ｘ，ｙ）は、学習用出力データにおける（ｘ，ｙ）位置のピクセルの輝度値を表わす。
【００５６】
すなわち、式（１）の中カッコ内の分子部分に示されるように、適合度算出部４４は、学習用目標データの輝度値から学習用出力データの輝度値の差の絶対値に対して重みデータの輝度値を乗じた重み付き差分値を、画面内の全てのピクセル毎に算出し、算出した重み付き差分値を全ピクセルについて合計した合計重み付け差分値を算出する。さらに、式（１）の中カッコ内の分母部分に示されるように、適合度算出部４４は、重みデータの輝度値を全ピクセルについて合計した合計重みを算出する。
【００５７】
さらに、適合度算出部４４は、合計重み付け差分値を合計重みで除算した除算値（式（１）の中カッコ内）に、輝度値の最大値の逆数（１／Ｙｍａｘ）を乗じて正規化値（式（１）の２番目の項）を算出する。そして、適合度算出部４４は、１から、正規化値を減じた値を、適合度ｆとして算出する。これにより、適合度算出部４４は、学習用出力データと学習用目標データとの差分を領域毎に重み付けして適合度を算出することができる。
【００５８】
図９は、本実施形態に係る遺伝的処理装置１０の重み生成部４３の構成の一例を示す。重み生成部４３は、一例として、差分値算出部６２と、更新値算出部６４と、更新部６６と、設定部６８とを有する。
【００５９】
差分値算出部６２は、前世代（第ｔ世代：ｔは２以上の整数）における少なくとも１つの変換器２０（例えばエリートの変換器２０）により得られた学習用出力データ（Ｉｔ）と、学習用目標データ（Ｉｔａｒｇｅｔ）との差分に応じた値（差分値ΔＩｔ）を算出する。本例においては、差分値算出部６２は、下記式（２）に示されるように、前世代におけるエリートの変換器２０により得られた学習用出力データ（Ｉｔ）と学習用目標データ（Ｉｔａｒｇｅｔ）との差分の絶対値を、差分値（ΔＩｔ）として算出する。
【００６０】
【数２】
0005418052.tif 000003
【００６１】
更新値算出部６４は、少なくとも１つの変換器２０（例えばエリートの変換器２０）により得られた学習用出力データと学習用目標データとの差分に応じた値（ｆ（ΔＩｔ））に、第１係数（α）を乗じた値を、所定世代から前世代まで累積して得られる更新値（Ｖｔ＋１）を算出する。本例においては、更新値算出部６４は、下記式（３）に示されるように更新値（Ｖｔ＋１）を算出する。
【００６２】
【数３】
0005418052.tif 000004
【００６３】
式（３）において、αは、正の値である第１係数を表す。また、式（３）において、Ｖｔは、前世代の処理において算出された更新値を表す。また、式（３）において、ｆ（ΔＩｔ）は、更新変化量を表わす。
【００６４】
即ち、更新値算出部６４は、更新変化量（ｆ（ΔＩｔ））に第１係数（α）を乗じた値を、前世代の処理において算出された更新値（Ｖｔ）に加算して、現世代の更新値（Ｖｔ＋１）を算出する。これにより、更新値算出部６４は、所定世代（例えば第１世代）から前世代（第ｔ世代）までのそれぞれの更新変化量（ｆ（ΔＩ１）、ｆ（ΔＩ２）…、ｆ（ΔＩｔ−１）、ｆ（ΔＩｔ））に第１係数（α）を乗じた値を累積した更新値（Ｖｔ＋１）を算出することができる。
【００６５】
なお、更新値算出部６４は、一例として、差分の絶対値（ΔＩｔ）が所定の閾値より大きい場合に、現世代の更新値（Ｖｔ＋１）を前世代の更新値（Ｖ１）より増加させ、差分の絶対値（ΔＩｔ）が閾値より小さい場合に、現世代の更新値（Ｖｔ＋１）を前世代の更新値（Ｖｔ）より減少させる更新変化量を生成してもよい。
【００６６】
これにより、更新値算出部６４は、学習用出力データが学習用目標データに近似しており変換が成功していると判断される場合（差分の絶対値（ΔＩｔ）が閾値より小さい場合）には、重みデータ（Ｗｔ）の変化を小さくすることができる。一方、学習用出力データが学習用目標データに近似しておらず変換が失敗していると判断される場合（差分の絶対値（ΔＩｔ）が閾値より大きい場合）には、重みデータ（Ｗｔ）の変化を大きくすることができる。なお、更新変化量（ｆ（ΔＩｔ））の具体的な演算例については、図１０において更に説明する。
【００６７】
また、更新値算出部６４は、現世代により近い世代の差分値に乗じられる第１係数（α）ほど、絶対値を大きくしてもよい。これにより、更新値算出部６４は、現世代により近い世代の差分値の影響を更新値（Ｖｔ＋１）に大きく反映することができる。また、更新値算出部６４は、更新値（Ｖｔ＋１）を予め定められた範囲内に制限してもよい。これにより、更新値算出部６４は、更新値（Ｖｔ＋１）が極単に大きくなってしまうことを回避することができる。
【００６８】
更新部６６は、前世代の重みデータ（Ｗｔ）と、更新値算出部６４により算出された更新値（Ｖｔ＋１）に応じた値とを加算して現世代の重みデータ（Ｗｔ＋１）を生成する。ここで、更新部６６は、世代がより大きい場合に重みデータの変化をより小さくする。これにより、更新部６６は、世代が大きくなるほど重みデータを安定化させることができる。また、更新部６６は、複数の世代に基づいた重みデータを用いて更新できるので、進化的計算を安定化させることができる。本例においては、更新部６６は、下記式（４）に示される演算式により現世代の重みデータ（Ｗｔ＋１）を生成する。
【００６９】
【数４】
0005418052.tif 000005
【００７０】
式（４）において、ｅ−βｔは、第２係数を表す。また、βは正の整数を表す。このような第２係数（ｅ−βｔ）は、ｔ（世代）が大きくなるに従い値が０に漸近する。これにより、更新部６６は、更新値（Ｖｔ＋１）に世代が大きくなるに従い値が０に漸近する第２係数（ｅ−βｔ）を乗じた値（Ｖｔ＋１・ｅ−βｔ）と、前世代の重みデータ（Ｗｔ）とを加算して現世代の重みデータ（Ｗｔ＋１）を生成することができる。
【００７１】
なお、更新部６６は、重みデータＷｔの上限値を設定してもよい。これにより、更新部６６は、重みデータＷｔが極単に大きくなってしまうことを回避することができる。
【００７２】
設定部６８は、外部からの指示等に応じて、第１係数（α）を更新値算出部６４に対して設定する。ここで、重みデータＷｔの変化速度は、第１係数（α）の大きさに応じて調整される。
【００７３】
従って、設定部６８は、第１係数（α）を小さくすれば、重みデータの加速度を小さくし、第１係数（α）を大きくすれば、重みデータの加速度（を大きくすることができる。即ち、設定部６８は、第１係数（α）を制御することにより、重みデータＷｔの安定度を制御することができる。
【００７４】
また、設定部６８は、外部からの指示等に応じて、第２係数（ｅ−βｔ）内のβの値を更新部６６に設定してもよい。第２係数（ｅ−βｔ）は、βが大きいとより早く０に近づき、βが小さいとより遅く０に近づく。従って、設定部６８は、βを大きくすれば、更新値を０に漸近させる速度を早くし、βを小さくすれば、更新値を０に漸近させる速度を遅くすることができる。従って、設定部６８は、第２係数（ｅ−βｔ）内のβの値を制御することによっても、重みデータＷｔの安定度を制御することができる。
【００７５】
図１０は、本実施形態に係る更新変化量の一例を示す。更新値算出部６４により算出される更新変化量（ｆ（ΔＩｔ））は、一例として、下記式（５）に示される関数であってよい。なお、下記式（５）により表される関数は、例えば図１０のように表される。
【００７６】
【数５】
0005418052.tif 000006
【００７７】
式（５）に示された更新変化量（ｆ（ΔＩｔ））は、差分の絶対値（ΔＩｔ）が大きいほど、大きい値となる。さらに、更新変化量（ｆ（ΔＩｔ））は、差分の絶対値（ΔＩｔ）が所定の閾値（τ）より大きい場合には正の値となり、差分の絶対値（ΔＩｔ）が所定の閾値（τ）より小さい場合には負の値となる。また、更に、更新変化量（ｆ（ΔＩｔ））は、差分の絶対値（ΔＩｔ）が増加していくと１に漸近し、差分の絶対値（ΔＩｔ）が減少していくと−１に漸近する。
【００７８】
即ち、更新変化量（ｆ（ΔＩｔ））は、閾値（τ）において正負が反転する単調非減少関数であって、正の上限値（例えば＋１）および負の下限値（例えば−１）の範囲の値をとる関数である。このような更新変化量（ｆ（ΔＩｔ））によれば、差分の絶対値（ΔＩｔ）が閾値（τ）より大きい場合に、現世代の更新値（Ｖｔ＋１）を前世代の更新値（Ｖｔ）より増加させ、差分の絶対値（ΔＩｔ）が閾値（τ）より小さい場合に、現世代の更新値（Ｖｔ＋１）を前世代の更新値（Ｖｔ）より減少させることができる。
【００７９】
なお、式（５）において、σは、更新変化量（ｆ（ΔＩｔ））が−１から１へと変化する変化速度を表す。即ち、更新変化量（ｆ（ΔＩｔ））は、σが大きいほど−１から１へと緩やかに変化し、σが小さいほど−１から１へと急峻に変化する。τおよびσは、例えば使用者により任意に設定される。
【００８０】
なお、式（５）は一例である。更新値算出部６４は、式（５）以外のアルゴリズムにより更新変化量（ｆ（ΔＩｔ））を算出してよい。
【００８１】
以上のように本実施形態に係る遺伝的処理装置１０は、前世代以前の複数の世代における差分値ΔＩｔに基づき、現世代の重みデータを生成する。これにより、遺伝的処理装置１０は、重みデータＷｔの変化の加速度を制御することができる。
【００８２】
従って、本実施形態に係る遺伝的処理装置１０によれば、重みデータＷｔの急激な変化および２つの局所解間での振動等を無くして、進化的計算を安定化させることができる。この結果、遺伝的処理装置１０によれば、遺伝的処理装置１０によれば、少ない演算コスト（演算時間も含む）で、目的とする変換器２０を得ることができる可能性を高くすることができる。
【００８３】
図１１は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００８４】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００８５】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００８６】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００８７】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００８８】
コンピュータ１９００にインストールされ、コンピュータ１９００を遺伝的処理装置１０として機能させるプログラムは、変換器格納モジュールと、学習用入力データ格納モジュールと、変換処理モジュールと、学習用出力データ格納モジュールと、学習用目標データ格納モジュールと、重み生成モジュールと、適合度算出モジュールと、選択モジュールと、更新モジュールと、生成モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、変換器格納部３４、学習用入力データ格納部３６、変換処理部３８、学習用出力データ格納部４０、学習用目標データ格納部４２、重み生成部４３、適合度算出部４４、選択部４６、更新部４８および生成部５０としてそれぞれ機能させる。
【００８９】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である変換器格納部３４、学習用入力データ格納部３６、変換処理部３８、学習用出力データ格納部４０、学習用目標データ格納部４２、重み生成部４３、適合度算出部４４、選択部４６、更新部４８および生成部５０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の遺伝的処理装置１０が構築される。
【００９０】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００９１】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００９２】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００９３】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００９４】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００９５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００９６】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００９７】
１０  遺伝的処理装置、２０  変換器、２２  処理部品、２４  部品群、３４  変換器格納部、３６  学習用入力データ格納部、３８  変換処理部、４０  学習用出力データ格納部、４２  学習用目標データ格納部、４３  重み生成部、４４  適合度算出部、４６  選択部、４８  更新部、５０  生成部、６２  差分値算出部、６４  更新値算出部、６６  更新部、６８  設定部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
0005418052.tif 000007
【図２】
0005418052.tif 000008
【図３】
0005418052.tif 000009
【図４】
0005418052.tif 000010
【図５】
0005418052.tif 000011
【図６】
0005418052.tif 000012
【図７】
0005418052.tif 000013
【図８】
0005418052.tif 000014
【図９】
0005418052.tif 000015
【図１０】
0005418052.tif 000016
【図１１】
0005418052.tif 000017