(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】データ処理システム、及びデータ処理プログラム
(51)【国際特許分類】
G06N 3/126 20230101AFI20241217BHJP
G06T 7/00 20170101ALI20241217BHJP
【FI】
G06N3/126
G06T7/00 350D
(21)【出願番号】P 2021003581
(22)【出願日】2021-01-13
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】000003768
【氏名又は名称】東洋製罐グループホールディングス株式会社
(74)【代理人】
【識別番号】100154184
【氏名又は名称】生富 成一
(72)【発明者】
【氏名】柏原 賢
(72)【発明者】
【氏名】中村 圭亨
(72)【発明者】
【氏名】原 萌子
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2020-107008(JP,A)
【文献】特開2015-169962(JP,A)
【文献】特開2007-310860(JP,A)
【文献】米国特許出願公開第2020/0293899(US,A1)
【文献】伊藤強,“多種染色体GAの人員配置問題への応用”,第65回(平成15年)全国大会講演論文集(2),2003年03月25日,p.(2-127)-(2-128)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/126
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、データから検出対象を検出するデータ処理を最適化するデータ処理システムであって、
複数のノードからなるノード情報と、ノードの実行順序を定義するネットワーク情報とからなり、前記ノード情報と前記ネットワーク情報を別個に有する複数の個体情報を記憶する個体群記憶部と、前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部と、を備え、
前記遺伝子操作部が、前記個体情報における前記ノード情報と前記ネットワーク情報に対し別個に選択又は変更を行う
ことを特徴とするデータ処理システム。
【請求項2】
前記ノード情報と前記ネットワーク情報とを別個に生成し、これらを個体情報ごとに前記個体群記憶部に記憶させる個体生成部を備える
ことを特徴とする請求項1記載のデータ処理システム。
【請求項3】
学習用又は検証用のデータを入力するデータ入力部と、
前記個体情報にもとづいて前記データを処理し、出力情報を生成するデータ処理部と、
前記出力情報を評価するための教師情報を入力する教師情報入力部と、
前記出力情報と前記教師情報を比較して評価値を計算し、この評価値にもとづき前記個体情報を順位付けする評価値計算部と、を備え、
前記遺伝子操作部が、前記個体情報の順位付け情報にもとづき前記個体情報の選択又は変更を行う
ことを特徴とする請求項1又は2記載のデータ処理システム。
【請求項4】
前記評価値計算部が、前記出力情報と前記教師情報を比較して得られる評価値と、前記ネットワーク情報にもとづく評価値とを別個に計算し、これらの評価値にもとづき前記個体情報の評価値を計算し、前記個体情報の評価値にもとづき前記個体情報を順位付けする
ことを特徴とする請求項3記載のデータ処理システム。
【請求項5】
前記評価値計算部が、前記出力情報と前記教師情報を比較して得られる評価値と、前記ネットワーク情報にもとづく評価値と、前記ノード情報にもとづく評価値とを別個に計算し、これらの評価値にもとづき前記個体情報の評価値を計算し、前記個体情報の評価値にもとづき前記個体情報を順位付けする
ことを特徴とする請求項3記載のデータ処理システム。
【請求項6】
前記ノード情報が、ノード及びパラメータで構成されることを特徴とする請求項1~5のいずれかに記載のデータ処理システム。
【請求項7】
前記ネットワーク情報が、ノード群とその連結関係を表すエッジ群で構成されることを特徴とする請求項1~6のいずれかに記載のデータ処理システム。
【請求項8】
前記ネットワーク情報が、隣接行列、接続行列、又はラプラシアン行列で定義されることを特徴とする請求項1~7のいずれかに記載のデータ処理システム。
【請求項9】
前記データが、画像又は波形データであることを特徴とする請求項1~8のいずれかに記載のデータ処理システム。
【請求項10】
生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、データから検出対象を検出するデータ処理を最適化するデータ処理プログラムであって、
コンピュータを、
複数のノードからなるノード情報と、ノードの実行順序を定義するネットワーク情報とからなり、前記ノード情報と前記ネットワーク情報を別個に有する複数の個体情報を記憶する個体群記憶部、及び、前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部として機能させ、
前記遺伝子操作部に、前記個体情報における前記ノード情報と前記ネットワーク情報に対し別個に選択又は変更を行わせる
ことを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データから検出対象を見つけ出すデータ処理技術に関し、このデータ処理を遺伝的操作により最適化するデータ処理システムに関する。
【背景技術】
【0002】
従来、画像から検出対象を見つけ出す進化的計算を用いた画像処理アルゴリズムの自動生成において、複数のノード(機能の単位,遺伝子に相当)の実行順序を定義する個体情報(染色体に相当)を用いて学習用画像に対して画像処理を行い、得られた出力画像を教師画像と比較して評価値を計算し、その結果を個体情報に反映させることにより学習を行って、画像処理を最適化することが行われている。
【0003】
個体情報は、ノードの実行順序を定義するものであるため、例えば
図13に示すように、ノード番号ごとにノード(機能)、パラメータ、及び入力元と出力先のノード番号を示すネットワークの情報がテーブル状に備えられている。また、進化的計算では、個体情報に対して交叉処理や突然変異処理といった遺伝子操作が行われて、新たな個体情報が生成される。
このような方法によれば、学習によって優れた個体情報を得ることができ、画像処理の最適化を行うことが可能となっている。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】進化手法による最適ネットワークの生成,山本,小松,生天目,コンピュータソフトウェア, Vol.28, No.1(2011), pp.26-33.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、個体情報に対して交叉処理や突然変異処理を行う場合、新たな個体情報においてネットワークが適切に成立せず、出力情報の得られないものが生成することがあった。
このような状況において、本発明者らは、ネットワークの情報がノードと一体で遺伝子操作されることによって、進化の効率が阻害されている虞があることに想到した。すなわち、個体情報においてノード情報とネットワーク情報とが一体に構成され、この個体情報に対して交叉処理や突然変異処理が行われる結果、進化計算が煩雑になっている可能性があった。
【0007】
そこで、本発明者らは鋭意研究し、個体情報におけるノード情報とネットワーク情報をそれぞれ別個に遺伝子操作できるようにすることによって、データ処理の最適化をより効率的に行うことに成功して本発明を完成させた。
【0008】
ここで、特許文献1には、遺伝的プログラミングにおける生殖の自由度を高め、固体構造と数値の同時最適化を行う進化計算システムが開示されている。しかし、この進化計算システムは、個体情報においてノード情報とネットワーク情報とが一体に構成されているため、本発明の課題を解消可能なものではなかった。
また、非特許文献1には、進化手法による最適ネットワークの生成に関する技術が開示されているが、この技術はネットワーク情報のみを最適化するものであり、本発明の課題を解消可能なものではなかった。
【0009】
本発明は、上記事情に鑑みてなされたものであり、データから検出対象を見つけ出すデータ処理を遺伝的操作により最適化するデータ処理システムにおいて、個体情報におけるノード情報とネットワーク情報を別個に遺伝子操作でき、データ処理の最適化をより効率的に行うことの可能なデータ処理システム、及びデータ処理プログラムの提供を目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明のデータ処理システムは、生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、データから検出対象を検出するデータ処理を最適化するデータ処理システムであって、複数のノードからなるノード情報と、ノードの実行順序を定義するネットワーク情報とからなり、前記ノード情報と前記ネットワーク情報を別個に有する複数の個体情報を記憶する個体群記憶部と、前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部とを備え、前記遺伝子操作部が、前記個体情報における前記ノード情報と前記ネットワーク情報に対し別個に選択又は変更を行う構成としてある。
【0011】
また、本発明のデータ処理システムを、前記ノード情報と前記ネットワーク情報とを別個に生成し、これらを個体情報ごとに前記個体群記憶部に記憶させる個体生成部を備える構成とすることが好ましい。
【0012】
また、本発明のデータ処理システムを、学習用又は検証用のデータを入力するデータ入力部と、前記出力情報を評価するための教師情報を入力する教師情報入力部と、前記個体情報にもとづいて前記データを処理し、出力情報を生成するデータ処理部と、前記出力情報と前記教師情報を比較して評価値を計算し、この評価値にもとづき前記個体情報を順位付けする評価値計算部とを備え、前記遺伝子操作部が、前記個体情報の順位付け情報にもとづき前記個体情報の選択又は変更を行う構成とすることも好ましい。
【0013】
また、本発明のデータ処理システムを、前記評価値計算部が、前記出力情報と前記教師情報を比較して得られる評価値と、前記ネットワーク情報にもとづく評価値とを別個に計算し、これらの評価値にもとづき前記個体情報の評価値を計算し、前記個体情報の評価値にもとづき前記個体情報を順位付けする構成とすることも好ましい。
【0014】
また、本発明のデータ処理システムを、前記評価値計算部が、前記出力情報と前記教師情報を比較して得られる評価値と、前記ネットワーク情報にもとづく評価値と、前記ノード情報にもとづく評価値とを別個に計算し、これらの評価値にもとづき前記個体情報の評価値を計算し、前記個体情報の評価値にもとづき前記個体情報を順位付けする構成とすることも好ましい。
【0015】
また、本発明のデータ処理システムを、前記ノード情報が、ノード(機能)及びパラメータで構成されるものとすることも好ましい。
【0016】
また、本発明のデータ処理システムを、前記ネットワーク情報が、ノード群とその連結関係を表すエッジ群で構成されるものとすることも好ましい。
【0017】
また、本発明のデータ処理システムを、前記ネットワーク情報が、隣接行列、接続行列、又はラプラシアン行列で定義される構成とすることも好ましい。
【0018】
また、本発明のデータ処理システムを、前記データが、画像又は波形データである構成とすることも好ましい。
【0019】
また、本発明のデータ処理プログラムは、生物の進化を数学的に模擬した最適化手法である遺伝的操作を用いて、データから検出対象を検出するデータ処理を最適化するデータ処理プログラムであって、コンピュータを、複数のノードからなるノード情報と、ノードの実行順序を定義するネットワーク情報とからなり、前記ノード情報と前記ネットワーク情報を別個に有する複数の個体情報を記憶する個体群記憶部、及び、前記個体情報の選択又は変更を行って、前記個体群記憶部を更新する遺伝子操作部として機能させ、前記遺伝子操作部に、前記個体情報における前記ノード情報と前記ネットワーク情報に対し別個に選択又は変更を行わせる構成としてある。
【発明の効果】
【0020】
本発明によれば、データから検出対象を見つけ出すデータ処理を遺伝的操作により最適化するデータ処理システムにおいて、個体情報における機能情報とネットワーク情報を別個に遺伝子操作でき、データ処理の最適化をより効率的に行うことの可能なデータ処理システム、及びデータ処理プログラムの提供が可能となる。
【図面の簡単な説明】
【0021】
【
図1】本発明の実施形態に係るデータ処理装置の構成を示すブロック図である。
【
図2】本発明の実施形態に係るデータ処理装置において用いられるノード情報とネットワーク情報とを別個に有する個体情報についての説明図である。
【
図3】本発明の実施形態に係るデータ処理装置において用いられる個体情報の構造例を示す説明図である。
【
図4】本発明の実施形態に係るデータ処理装置においてネットワーク情報として用いられる有向グラフについての説明図である。
【
図5】本発明の実施形態に係るデータ処理装置においてネットワーク情報として用いられる隣接行列についての説明図である。
【
図6】本発明の実施形態に係るデータ処理装置においてネットワーク情報として用いられる接続行列についての説明図である。
【
図7】本発明の実施形態に係るデータ処理装置におけるノード情報の交叉処理についての説明図である。
【
図8】本発明の実施形態に係るデータ処理装置におけるネットワーク情報の交叉処理についての説明図である。
【
図9】本発明の実施形態に係るデータ処理装置による処理手順を示すフローチャートである。
【
図10】本発明の実施形態に係るデータ処理装置による処理手順における初期個体群の生成の処理手順を示すフローチャートである。
【
図11】本発明の実施形態に係るデータ処理装置による処理手順における評価値の計算の処理手順を示すフローチャートである。
【
図12】本発明の実施形態に係るデータ処理装置による処理手順における遺伝子操作の処理手順を示すフローチャートである。
【
図13】従来のデータ処理装置において用いられる個体情報についての説明図である。
【発明を実施するための形態】
【0022】
以下、本発明のデータ処理システム、及びデータ処理プログラムの実施形態について詳細に説明する。ただし、本発明は、以下の実施形態の具体的な内容に限定されるものではない。
【0023】
まず、本発明の実施形態に係るデータ処理システム、及びデータ処理プログラムについて、
図1~
図8を参照して説明する。
図1は、本実施形態に係るデータ処理装置の構成を示すブロック図である。
図2は、本実施形態に係るデータ処理装置において用いられる個体情報についての説明図であり、
図3は、その個体情報の構造例を示す図である。
図4~6は、それぞれ本実施形態に係るデータ処理装置においてネットワーク情報として用いられる有向グラフ、隣接行列、及び接続行列についての説明図である。
図7及び
図8は、それぞれ本実施形態に係るデータ処理装置におけるノード情報の交叉処理、及びネットワーク情報の交叉処理についての説明図である。
【0024】
本実施形態のデータ処理システムは、
図1に示すように、ノード記憶部10、個体生成部11、個体群記憶部12、対象データ入力部13、対象データ記憶部14、教師情報入力部15、教師情報記憶部16、データ処理部17、出力情報記憶部18、評価値計算部19、評価結果記憶部20、及び遺伝子操作部21を備えている。
本実施形態のデータ処理装置1におけるこれらの各構成は、
図1に示すように一個の情報処理装置に全て備えることができる。また、これらの各構成は、複数の情報処理装置からなるデータ処理システムの各装置に分散して備えてもよい。
【0025】
ノード記憶部10は、ある処理を実行する機能単位であるノードをノード番号ごとに記憶する。本実施形態において、このノードとして、画像処理などのデータ処理を行うための様々なものを用いることができる。
【0026】
画像処理としては、画像から検出対象を検出する画像処理アルゴリズムや、画像のノイズ除去アルゴリズム、画像の高解像度化アルゴリズム、画像の合成のアルゴリズム等を挙げることができる。これらのアルゴリズムは、複数のノードを組み合わせることにより作成される。また、これらのノードは、それぞれの処理の実行に用いるパラメータが存在する場合には、そのパラメータと共にノード記憶部10に記憶される。
本明細書において、「画像処理」には、ノイズ除去のための各種フィルタ処理や、輝度補正などの補正処理、2値化処理、エッジ検出処理、周波数フィルタ処理、四則演算などの演算処理、モフォロジ処理、検出対象判定処理、分岐処理等が含まれる。
【0027】
また、ノードとして、画像処理以外のデータ処理を行うための様々なものを用いることができ、波形データ処理を行うものを用いることもできる。具体的には、検出対象の測定指標、特徴量の種類、特徴量の計算に用いられるパラメータなどから構成されたものを用いることができる。
検出対象の測定指標としては、装置などから取得されるプロセスデータと、製品などから取得される検査データを挙げることができ、これらを組み合わせて用いることが好ましい。
【0028】
プロセスデータとしては、温度、湿度、振動、変位、速度、加速度、回転角、角速度、角加速度、電圧、電流、光量、音、圧力等を挙げることができる。
検査データとしては、寸法(サイズ、円形度など)、色、欠陥(数、サイズなど)、排出数、透過度、重量、強度、及び表面粗さ等を挙げることができる。
【0029】
特徴量の種類としては、時系列データにおける測定値、時系列データのある時間的幅の平均値,最大値,最小値,中央値,標準偏差,最大値-最小値,1σ確率,3σ確率,第1四分位数,第3四分位数、前記時系列データのヒストグラムの最頻値,尖度,歪度、前記時系列データの周波数特性におけるピーク位置,ピーク値,重心位置、田口法による変化量,存在量等を挙げることができる。
パラメータとしては、時系列データにおける特徴量を算出するスタート時刻、幅(時間間隔)、周波数領域、周波数領域の分割数等を挙げることができる。
【0030】
さらに、ノードとして、何ら処理を実行しないものを用いてもよく、複数の処理を実行するノードをまとめたものを1個のノード(ノードセット)として用いてもよい。ノードとして何ら処理を実行しないものを含めて用いることにより、例えば個体情報を生成するための初期ノード数の設定値が多すぎた場合などに、実質的なノード数を減らすことができる。
【0031】
個体生成部11は、ノード記憶部10に記憶されているノードを用いて、複数の個体情報を生成する。この個体情報が、データ処理アルゴリズムを構成する。
本実施形態において、個体情報は、
図2に示すように、複数のノードからなるノード情報と、ノードの実行順序を定義するネットワーク情報とを別個に(分離して)有している。
【0032】
すなわち、個体生成部11は、ノード記憶部10に記憶されているノードにもとづいて、複数のノードからなるノード情報を生成すると共に、この複数のノードの実行順序を定義するネットワーク情報を別個に生成し、これらを個体情報ごとに個体群記憶部12に記憶させる。
図2には、ノード情報をテーブルとして記憶させ、ネットワーク情報を行列として記憶させたものが示されている。
【0033】
ノード情報は、複数のノードとパラメータからなり、入力元及び出力先などのネットワーク情報を備えていない。
ネットワーク情報は、ノード群とその連結関係を表すエッジ群で構成されるものとすることが好ましく、そのエッジ群は、隣接行列、接続行列、又はラプラシアン行列で定義することが好ましい。
図2では、ネットワーク情報は、隣接行列により定義されている。
すなわち、本実施形態において、ネットワークは、向きが付いたエッジにより構成される有向グラフであり、フィードバックを含むものとすることができる。また、後述するように、ネットワーク情報の評価のために、エッジに重みを付けることも好ましい。
【0034】
また、これらのノード情報とネットワーク情報により、
図3に示す個体情報の構造を表現することができる。
ネットワーク情報には、対象データの入力処理、及び出力データの保存処理を行うために、それぞれを実行するための各ノードも含まれる。なお、対象データの入力処理を最初に行ったり、一定数のノードの処理後に出力データの保存処理を行うようにしたり、あるいは一定回数のループが生じた場合に出力データの保存処理を行うように制御することもできる。
【0035】
有向グラフは、
図4に示すように、各頂点をノードとして、各辺(エッジ)により入力元及び出力先を表現する。
有向グラフの隣接行列は、
図5に示すように、ノード数×ノード数の行列として表現され、各行と列がそれぞれの頂点に対応する。そして、頂点pから頂点qへ向かう辺が、存在している場合、(p, q)の要素を1とし、存在していない場合、(p, q)の要素を0として表現される。
【0036】
有向グラフの接続行列は、
図6に示すように、ノード数×エッジ数の行列として表現され、各行が頂点、各列がエッジに対応する。そして、頂点pが辺rの始点である場合、(p, r)の要素を1とし、頂点pが辺rの終点である場合、(p, r)の要素を-1とし、頂点pが端点でない場合、(p, r)の要素を0として表現される(有向グラフの隣接行列と接続行列の基本概念については、「グラフ・ネットワークアルゴリズムの基礎 数理とCプログラム,浅野孝夫,2017年4月30日)を参照)。
【0037】
このように、個体生成部11が、ネットワーク情報を隣接行列や接続行列などのノード群とその連結関係を表すエッジ群で構成される抽象データ型で生成することによって、例えばネットワークの成立の判定を行う場合に、行列における各列と行の値を足し合わせることによって簡単にネットワークの成立判定を行うことが可能となっている。
【0038】
なお、ネットワーク情報の生成や遺伝子操作の結果、ネットワークが適切に成立せず、出力情報が得られない個体情報が生成された場合、評価値が悪くなるため進化的計算の過程により淘汰されることになる。このため、ネットワークの成立判定を行うことにより、不必要な個体情報を効率的に排除することは可能であるものの、このネットワークの成立判定は必須の構成ではなく、省略することが可能である。
【0039】
個体群記憶部12は、個体生成部11によって生成された複数の個体情報からなる個体群を記憶する。これらの個体情報は、
図2に示すように、複数のノードからなるノード情報と、ノードの実行順序を定義するネットワーク情報とを別個に有している。
この個体群として、1つの世代又は複数の世代を個体群記憶部12に記憶させることができ、世代番号ごとに個体情報を個体群記憶部12に記憶させることができる。
なお、後述する評価値計算部19は、世代ごと又は設定された世代ごとに個体情報を順位付けして、順位付け情報を評価結果記憶部20に記憶させることができる。
【0040】
対象データ入力部13は、複数の学習用データ及び複数の検証用データを対象データとしてデータ処理装置1に入力して、データの識別情報ごとに対象データ記憶部14に記憶させる。学習用データ及び検証用データとしては、例えば画像や波形データなどを用いることができる。
【0041】
学習用データは、全ての個体情報(データ処理アルゴリズム)により処理して出力情報を得るため、またその出力情報と教師情報を比較して評価値を計算するため、及び評価値を用いて個体の順位付けを実施するために用いることができる。
検証用データは、所定の個体情報の中で一番良い個体情報により処理して出力情報を得るため、またその出力情報と教師情報を比較して評価値を計算するため、及びその評価値を用いてデータ処理アルゴリズムの妥当性や過学習が発していなかなどを検証するために用いることができる。
【0042】
なお、検証用データは、人が結果を分析するために使用されるため、基本的に進化的計算に影響は及ぼさないが、終了判定に検証用データの評価値を用いる場合、例えば検証用データの評価値が閾値に達した場合に終了する場合や学習用データと検証用データの評価値に大きな差が発生した場合に早期終了する場合には、進化的計算に自動的に影響を及ぼすことになる。
【0043】
教師情報入力部15は、出力情報を評価するための教師情報を入力し、対応するデータの識別情報ごとに教師情報記憶部16に記憶させる。
この教師情報としては、複数の学習用データに対応するものや、複数の検証用データに対応するものなどを用いることができる。教師情報が画像の場合、例えば黒の背景に検出対象を白で表したものなどを用いることができる。また、教師情報が画像の場合に、画像と共に、画像における検出対象の個数や位置、あるいは検出対象が存在する範囲などを教師情報として用いることも好ましい。
【0044】
データ処理部17は、対象データ記憶部14から対象データを入力すると共に、個体群記憶部12から個体情報を入力して、その個体情報にもとづき当該個体情報に含まれる複数のノードをネットワーク情報に従って順次実行する。
【0045】
このとき、各ノードは、対象データから得られる情報を用いて、それぞれの機能に対応する処理を実行する。また、各ノードは、その処理結果にもとづいて、処理結果に対応する次のノードを選択的に実行し得る。したがって、個体情報に含まれるノードであっても、データ処理において、必ずしも全てのノードが実行される訳ではない。勿論、個体情報における全てのノードが実行される場合があり、フィードバックが行われることによって、一つの個体情報において1つのみ定義されているノードが、複数回実行されることもある。
【0046】
また、ノードとして、ノイズ除去のための各種フィルタ処理や、輝度補正などの補正処理、2値化処理、エッジ検出処理、周波数フィルタ処理、四則演算などの演算処理、モフォロジ処理、分岐処理等の狭義の画像処理の機能がある。
また、ノードとして、検出対象判定処理の機能がある。これは、データ処理部17によって、例えば画像における一定範囲の検出対象候補をラベリングしてその特徴量を計算し、閾値などにもとづいて、その特徴量を備えた検出対象候補が、正しい検出対象であるか否かを判定する処理として行われる。
なお、検出対象判定処理において、非検出対象候補をラベリングしてその特徴量を計算し、閾値などにもとづきその特徴量を備えていないことにより、検出対象でないことを判定する処理を行うこともできる。
【0047】
また、データ処理部17は、学習用データと検証用データごとに出力情報(検出結果データ)を作成して、個体情報(の識別情報)ごと且つ対象データ(の識別情報)ごとに出力情報記憶部18に記憶させることができる。なお、教師情報として、画像における検出対象の個数、位置、又は検出対象が存在する範囲が含まれる場合は、出力情報として、それぞれ検出対象の個数、位置、又は検出対象が存在する範囲も出力情報として作成され、出力情報記憶部18に記憶される。
【0048】
データ処理部17は、学習用データと検証用データのそれぞれについて、検出対象が検出された場合は、検出対象が存在すること(領域など)を示す情報が付加された検出結果データを作成し、検出対象が検出されなかった場合は、当該情報が付加されていない検出結果データを作成することができる。
そして、この出力情報を個体情報ごと且つ対象データごとに出力情報記憶部18に記憶させることができる。
【0049】
なお、検出結果データを作成する機能を評価値計算部19に行わせることもできる。すなわち、データ処理部17によりデータ処理を行った後、評価値計算部19が検出結果データを作成して出力情報記憶部18に記憶させ、これを用いて評価値を計算する構成とすることも可能である。
【0050】
評価値計算部19は、出力情報記憶部18から出力情報を入力すると共に、教師情報記憶部16からその出力情報に対応する教師情報を入力し、出力情報と教師情報を比較して評価値を計算する。また、評価値計算部19は、ネットワーク情報にもとづく評価値を計算する。そして、これらの評価値にもとづき個体情報の評価値を計算することができる。
このとき、評価値計算部19は、出力情報と教師情報を比較して得られた評価値とネットワーク情報にもとづく評価値とに重み付けを行って合計することにより、個体情報の評価値を計算することができる。
【0051】
さらに、評価値計算部19に、ノード情報にもとづく評価値を計算させることも好ましい。すなわち、データ処理部17により個体情報における各ノードによる処理の実行のタイミングでそれぞれの処理後の情報を出力情報記憶部18に記憶させておき、評価値計算部19によりそれぞれの処理後の情報と教師情報を比較することで、各ノードによる影響を評価する評価値を得ることもできる。
このとき、評価値計算部19は、出力情報と教師情報を比較して得られた評価値とネットワーク情報にもとづく評価値とノード情報にもとづく評価値とに重み付けを行って合計することにより、個体情報の評価値を計算することができる。
【0052】
そして、評価値計算部19は、得られた個体情報の評価値を、個体情報ごと且つ対象データごとに評価結果記憶部20に記憶させることができる。
【0053】
評価値計算部19は、出力情報と教師情報を比較して得られる評価値として、出力情報と教師情報の誤差を、例えば最小二乗法による平均二乗誤差を算出することにより得ることができる。
【0054】
また、評価値計算部19は、ネットワーク情報にもとづく評価値を、例えば以下の指標を用いて計算することができる。
(1)ノード数
ネットワークの大きさを表す。例えば、次の式にもとづき計算して、評価要素とすることができる。
ノード数=ノードの設定数-リンクが無いノード数
【0055】
(2)ノード次数
ノードに接続するエッジの本数の平均値を表す。
(3)最少エッジ数
ノードからノードへの到達に要する最少エッジ数であり、具体的には入力ノードから出力ノードへの有向グラフ上の距離を表す。
【0056】
(4)重み付け(コスト)
有向グラフにおけるエッジに対する重み付けであり、例えば処理時間やノードによる画像処理前後の変化率などを重みとして用いることができる。この場合、ネットワークは重み付き有向グラフとして表され、例えば
図5に示す隣接行列においては、0.5や2など1や0以外の数値を要素として有するものとして表現することができる。
【0057】
さらに、評価値計算部19は、ノード情報にもとづく評価値評価値として、各ノードによる処理後の情報と教師情報の誤差を、例えば最小二乗法による平均二乗誤差を算出することにより得ることができる。
【0058】
このように、評価値計算部19によって、出力情報やノード情報とは別個にネットワーク情報のみの評価値を計算することで、個体情報の進化の方向性を制御することが可能となる。例えば、進化初期は大きいネットワークを探索するとした場合にノード次数が大きいものを良い個体とし、進化の終了時期にネットワークを縮小したい場合にノード次数が小さいものを良い個体とするように制御することが可能である。
【0059】
また、評価値計算部19は、個体群記憶部12に記憶されている全ての個体情報(又は1世代分の個体情報)につき評価値を計算し終えて評価結果記憶部20に記憶させたタイミングなどで、それらの評価値にもとづき個体情報を順位付け(ランキング)して、得られた順位付け情報を評価結果記憶部20に記憶させることができる。
また、評価値計算部19は、評価値にもとづき個体情報ごとに学習用データを順位付けして、得られた順位付け情報を評価結果記憶部20に記憶させることもできる。
【0060】
さらに、評価値計算部19は、データ処理部17によるデータ処理を終了するか否かを判定するための終了判定を行うことができる。終了判定は、終了条件を満たすか否かにもとづき行うことができ、終了条件を満たす場合、評価結果記憶部20に記憶された最も評価値の高い個体情報を、データから検出対象を検出するために最適化された個体情報(最適化済み検出器)とすることができ、図示しないが最適化済み検出器記憶部に記憶させることができる。
【0061】
評価値計算部19による終了判定における終了条件としては、予め設定した全ての世代の個体群について画像処理を完了した場合や、一定の世代数以上で進化が発生していない場合などを挙げることができる。進化が発生していない場合とは、評価値が、比較対象の時点よりも改善されていない場合である。
なお、評価値計算部19からこの終了判定の機能を分離して、本実施形態のデータ処理装置1において終了判定を行うための終了判定部を備えてもよい。
【0062】
遺伝子操作部21は、評価結果記憶部20における個体情報の順位付け情報にもとづいて、個体情報の選択又は変更を行って、個体群記憶部12を更新する。
これによって、個体群記憶部12に新たな世代の個体群の個体情報を順次追加することができる。
このとき、遺伝子操作部21は、個体情報におけるノード情報とネットワーク情報に対し別個に選択又は変更を行う。
【0063】
具体的には、遺伝子操作部21は、評価値が高い個体情報を次世代に残すエリート個体保存部と、評価値にもとづいて、一定の確率で個体情報を次世代に残す個体選択部と、2つの個体情報の一部を相互に交換する交叉部と、選択された1つの個体情報の一部又は全部やノードのパラメータをランダムに書き換える突然変異部とを有するものとすることができる。
【0064】
エリート個体保存部は、各世代の個体群において、一番評価値の良い個体情報などを、無条件で次世代に残す処理を行うことができる。
個体選択部は、各世代の個体群において、評価値の順位の高い個体情報を高い確率で選択して、次世代に残す処理等を行うことができる。
【0065】
交叉部は、交叉処理として、複数の個体情報におけるノード情報及びネットワーク情報における同一の並びについて、ある確率で入れ替える1様交叉を行うことができる。また、交叉部は、交叉処理として、ノード情報及びネットワーク情報における同一の並びの1点を境として、一方の配列を相互に入れ替える1点交叉や、同一の並びの複数点を境として配列を相互に入れ替える複数点交叉を行うこともできる。交叉部は、このような交叉処理を、個体選択部により選択された個体情報に対して行うことができる。
【0066】
具体的には、ノード情報の交叉処理は、例えば
図7に示すように、2つの親個体情報から2つの次世代個体情報を得るように行うことができる。また、ネットワーク情報の交叉処理は、例えば
図8に示すように、2つの親個体情報から2つの次世代個体情報を得るように行うことができる。
【0067】
突然変異部は、突然変異処理として、ノード記憶部10に記憶されているノードを用いて、個体情報ごとに一定の確率でその個体情報の一部を書き換えたり、その個体情報の全てを書き換えることができる。突然変異部は、このような突然変異処理を、個体選択部により選択された個体情報に対して行うことができる。また、突然変異部は、突然変異処理として、ノード記憶部10に記憶されているノードを用いて、新しい個体情報を生成することもできる。さらに、突然変異部に、突然変異処理として、選択された親個体情報のノードのパラメータの一部又は全部をランダムに書き換えることなどによって、パラメータ変異を行わせることもできる。
【0068】
なお、同じ個体情報にもとづいて生成された同系列個体が増えると、多様性が失われて進化が袋小路(数学的に局所解に陥った状態)に入ってしまう。一方、同系列以外の個体を増やしすぎると、ランダム探索に近づき、効率的な進化が行われない。
そこで、学習初期では多様性を持たせるために、同系列以外の個体を増やすように突然変異部による処理を行い、学習中期では効率的な進化を実施するために、個体選択部により同系列を増やすことが好ましい。また、進化が止まった場合には、再度多様性を持たせるために突然変異部により同系列以外を増やすことなどを好適に行うことができる。
【0069】
そして、遺伝子操作部21は、新たな世代の個体群を生成して、個体群記憶部12に記憶させる。このとき、遺伝子操作部21は、前の世代の個体群を上書きすることにより、個体群記憶部12を更新することができる。また、複数世代の個体群を世代ごとに記憶させることにより、個体群記憶部12を更新することもできる。
【0070】
このように、遺伝子操作部21によって、交叉処理や突然変異処理の遺伝子操作において、ノード情報とネットワーク情報とを別個に処理することによって、細かい遺伝子操作を行うことが可能である。
【0071】
次に、本実施形態に係るデータ処理装置による処理手順について、
図9~
図12を参照して説明する。
図9は、本実施形態に係るデータ処理装置による処理手順を示すフローチャートである。また、
図10~
図12は、それぞれ初期個体群の生成の処理手順を示すフローチャート、評価値の計算の処理手順を示すフローチャート、及び遺伝子操作の処理手順を示すフローチャートである。
【0072】
まず、
図9に示すように、データ処理装置1における対象データ入力部13が、対象データを入力して、対象データ記憶部14に記憶させる(ステップ10)。この対象データとしては、複数の学習用データと複数の検証用データとすることができ、例えば画像や波形データを用いることができる。
【0073】
また、教師情報入力部15が、教師情報を入力して、教師情報記憶部16に記憶させる(ステップ11)。このとき、教師情報入力部15は、教師情報として、例えば画像や波形データを用いることができる。また、教師情報として、画像と共に画像における検出対象の個数や位置、あるいは検出対象が存在する範囲などを用いることもできる。
【0074】
次に、個体生成部11が、初期個体群を生成する(ステップ12)。
具体的には、
図10に示すように、設定された個体数について、個体群ループ処理が行われる(ステップ30)。
このとき、個体生成部11は、設定されたノード数につきループ処理を行って(ステップ31)、ノードとこれに対応するパラメータをランダムに設定することによって、個体情報におけるノード情報を生成する(ステップ32)。また、この個体情報におけるネットワーク情報をノード情報とは別個にランダムに設定することにより生成する(ステップ33)。
【0075】
そして、個体生成部11は、このようにして生成された個体情報を識別情報ごとに個体群記憶部12に記憶させる。このとき、個体生成部11は、複数の個体情報からなる個体群を一つの世代として、世代番号ごとに個体群を個体群記憶部12に記憶させることができる。
なお、新たな世代の個体群は、個体群記憶部12に記憶されている個体情報に対して、遺伝子操作部21が遺伝子操作を行うことにより作成することができる。すなわち、新たな世代の個体群は、遺伝子操作部21により個体情報の選択又は変更が行われ、個体群記憶部12が更新されることによって作成することができる。
【0076】
次に、個体生成部11は、ネットワークの成立判定処理を行う(ステップ34)。ネットワークが成立していない場合(ステップ34のNo)、ネットワーク情報を設定する処理(ステップ33)に戻る。また、ネットワークが成立している場合(ステップ34のYes)、初期個体群の生成処理を終了する。このネットワークの成立判定処理(ステップ34)は省略してもよい。
なお、ステップ10~12までの各ステップの実行順序は、入れ替えてもよい。
【0077】
次に、世代ループが、予め設定された世代数分について実行される(ステップ13)。なお、後述する終了判定で終了条件が満たされる場合、設定された世代数分の実行前に世代ループが終了することがある。
【0078】
各世代ループにおいて、個体群ループが、個体群記憶部12における当該世代の個体群の全ての個体情報について実行される(ステップ14)。
ここで、データ処理部17は、個体群記憶部12における当該世代の個体群の各個体情報を用いて、対象データ記憶部14における対象データについて、それぞれデータ処理を実行する(ステップ15)。
このとき、データ処理部17は、対象データに対して、個体情報におけるノード情報の複数のノードをネットワーク情報にもとづきそれぞれ順次実行し、対象データに対応する出力情報を作成して、出力情報記憶部18に記憶させることができる。
【0079】
次に、評価値計算部19が、評価値の計算処理を行う(ステップ16)。
このとき、評価値計算部19は、出力情報記憶部18における当該世代の個体群の個体情報ごと及び対象データごとに、出力情報記憶部18における出力情報と教師情報記憶部16における教師情報とを比較して、評価値を計算する。
【0080】
具体的には、
図11に示すように、評価値計算部19は、出力情報と教師情報を比較して得られる評価値(x1)として、出力情報と教師情報の誤差を計算する(ステップ40)。このとき、評価値計算部19は、出力情報と教師情報とを用いて、例えば最小二乗法により、平均二乗誤差を評価値として算出することができる。
【0081】
また、評価値計算部19は、ネットワーク情報にもとづく評価値(x2)を計算する(ステップ41)。このとき、評価値計算部19は、例えばノード数、ノード次数、最少エッジ数、重み付けにもとづき評価値を算出することができる。
そして、評価値計算部19は、出力情報と教師情報を比較して得られる評価値(x1)とネットワーク情報にもとづく評価値(x2)に所定の重み付けを行って、個体情報の評価値(w1×x1+w2×x2)を計算する(ステップ42)。
【0082】
なお、評価値計算部19によって、ノード情報にもとづく評価値(x3)として、例えばノードによる処理後の情報と教師情報の誤差を計算し、出力情報と教師情報を比較して得られる評価値(x1)とネットワーク情報にもとづく評価値(x2)とノード情報にもとづく評価値(x3)に所定の重み付けを行って、個体情報の評価値(w1×x1+w2×x2+w3×x3)を計算することも好ましい。
【0083】
評価値計算部19は、得られた評価値を評価結果記憶部20に個体情報ごと及び対象データごとに記憶させて、評価値の計算処理を終了する。
なお、評価値計算部19により、個体情報ごとに評価値の統計値を計算して記憶させることもできる。評価値の統計値としては、例えば平均値や標準偏差などを用いることができる。
【0084】
次に、評価値計算部19は、評価結果記憶部20に記憶されている評価値にもとづいて、個体情報の順位付けを行い、その結果を評価結果記憶部20に記憶する(ステップ17)。この個体情報の順位付けは、評価値の統計値などにもとづいて行うことができる。
【0085】
また、評価値計算部19は、終了条件が満たされているか否かの判定処理を行う(ステップ18)。終了条件が満たされている場合、評価値計算部19は、評価結果記憶部20に記憶されている最も順位の高い個体情報を、最適化済み検出器として最適化済み検出器記憶部に記憶させることができる。
【0086】
終了条件が満たされていない場合、遺伝子操作部21は、遺伝子操作処理を実行する(ステップ19)。
これにより、遺伝子操作部21は、個体群記憶部12に新たな世代の個体群を追加更新することができる。
【0087】
具体的には、
図12に示すように、遺伝子操作部21におけるエリート個体保存部は、最も評価値の高い個体情報を次世代の個体群の個体情報として選択する(ステップ50)。
次に、交叉操作のループが、予め設定された個体数分について実行される(ステップ51)。このとき、遺伝子操作部21における個体選択部は、評価値の順位の高い個体情報ほど高い確率で2個を選択する(ステップ52)。
【0088】
遺伝子操作部21における交叉部は、個体選択部により選択された個体情報に対して、交叉処理を実行して、新たな個体情報を生成する。
このとき、交叉部は、例えば次世代の個体情報を30個作る場合、処理を分岐して(ステップ53)、0~10個目まではノード情報について交叉処理を実行し(ステップ54)、11~20個目まではネットワーク情報について交叉処理を実行し(ステップ55)、21~30個目まではノード情報について交叉処理を実行後(ステップ56)、ネットワーク情報について交叉処理を実行する(ステップ57)ことができる。なお、生成する個体数は制限されず、また分岐の数値条件もこれらに限定されず、それぞれに偏りを持たせたり、ランダムに設定してもよい。
【0089】
次に、突然変異操作のループが、予め設定された個体数分について実行される(ステップ58)。このとき、遺伝子操作部21における個体選択部は、評価値の順位の高い個体情報ほど高い確率で1個を選択する(ステップ59)。
【0090】
遺伝子操作部21における突然変異部は、個体選択部により選択された個体情報を用いて、またはこれらの個体情報を用いることなく、突然変異処理等を行い、新たな個体情報を生成する。
このとき、突然変異部は、例えば次世代の個体情報を30個作る場合、処理を分岐して(ステップ60)、0~10個目まではノード情報について突然変異処理を実行し(ステップ61)、11~20個目まではネットワーク情報について突然変異処理を実行し(ステップ62)、21~30個目まではノード情報について突然変異処理を実行後(ステップ63)、ネットワーク情報について突然変異処理を実行する(ステップ64)ことができる。なお、生成する個体数は制限されず、また分岐の数値条件もこれらに限定されず、それぞれに偏りを持たせたり、ランダムに設定してもよい。また、交叉操作と突然変異操作の順序を入れ替えて実行してもよい。
【0091】
そして、遺伝子操作部21は、次世代の個体数分についてループ処理を実行し(ステップ65)、ネットワークの成立判定処理を行う(ステップ66)。ネットワークが成立していない場合(ステップ66のNo)、遺伝子操作部21は、ネットワークの修正処理を実行し(ステップ67)、ネットワークが成立している場合(ステップ66のYes)、遺伝子操作処理を終了する。このネットワークの成立判定処理とネットワークの修正処理は省略してもよい。
【0092】
この遺伝子操作処理(ステップ19)によって、個体群記憶部12に次世代の個体群の個体情報を追加することができる。
このように、世代ループ(ステップ13)を繰り返すことで、個体群記憶部12において、新たな世代の個体群の個体情報を順次追加することができる。
【0093】
上記実施形態のデータ処理装置は、本発明のデータ処理プログラムに制御されたコンピュータを用いて実現することができる。コンピュータのCPUは、データ処理プログラムにもとづいてコンピュータの各構成要素に指令を送り、データ処理装置の動作に必要となる所定の処理、例えば、個体生成処理、データ処理、評価値計算処理、遺伝子操作処理等を行わせる。このように、本発明のデータ処理装置における各処理、動作は、プログラムとコンピュータとが協働した具体的手段により実現できるものである。
【0094】
プログラムは予めROM,RAM等の記録媒体に格納され、コンピュータに実装された記録媒体から当該コンピュータにプログラムを読み込ませて実行されるが、例えば通信回線を介してコンピュータに読み込ませることもできる。
また、プログラムを格納する記録媒体は、例えば半導体メモリ、磁気ディスク、光ディスク、その他任意のコンピュータで読取り可能な任意の記録手段により構成できる。
【0095】
以上説明したように、本発明の実施形態に係るデータ処理システム、及びデータ処理プログラムによれば、個体情報におけるノード情報とネットワーク情報に対して別個に遺伝子操作を可能とすることで、データ処理の最適化をより効率的に行うことが可能である。
また、ネットワーク情報を隣接行列や接続行列などのノード群とその連結関係を表すエッジ群で構成される抽象データ型で生成することによって、例えばネットワークの成立の判定を行う場合に、行列における各列と行の値を足し合わせることによって簡単にネットワークの成立判定を行うことが可能となっている。
【0096】
また、評価値の計算において出力情報やノード情報とは別個にネットワーク情報のみの評価値を計算することにより、個体情報の進化の方向性を制御することが可能となっている。
さらに、交叉処理や突然変異処理の遺伝子操作において、ノード情報とネットワーク情報とを別個に処理することにより、細かい遺伝子操作を行うことが可能となっている。
【0097】
本発明は、以上の実施形態に限定されるものではなく、本発明の範囲内において、種々の変更実施が可能であることは言うまでもない。
例えば、データ処理装置における各構成を複数の情報処理装置に分散して持たせたり、ネットワーク情報の評価値としてその他の指標を加えるなど適宜変更することが可能である。
【産業上の利用可能性】
【0098】
本発明は、データから検出対象を見つけ出すデータ処理を遺伝的操作により最適化する場合において、そのデータ処理の最適化を効率的に行うことが可能なデータ処理システムとして好適に利用することが可能である。
【符号の説明】
【0099】
1 データ処理装置
10 ノード記憶部
11 個体生成部
12 個体群記憶部
13 対象データ入力部
14 対象データ記憶部
15 教師情報入力部
16 教師情報記憶部
17 データ処理部
18 出力情報記憶部
19 評価値計算部
20 評価結果記憶部
21 遺伝子操作部