(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024050317
(43)【公開日】2024-04-10
(54)【発明の名称】フロー生成プログラム、フロー生成方法および情報処理装置
(51)【国際特許分類】
G06N 3/126 20230101AFI20240403BHJP
【FI】
G06N3/12 160
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022157119
(22)【出願日】2022-09-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】丸尾 昭人
(72)【発明者】
【氏名】實宝 秀幸
(72)【発明者】
【氏名】添田 武志
(57)【要約】
【課題】最適な処理フローを効率的に得る。
【解決手段】実施形態のフロー生成プログラムは、選択する処理と、特定する処理とをコンピュータに実行させる。選択する処理は、処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択する。特定する処理は、選択した処理フローを初期個体とする遺伝的プログラミングをもとに対象問題に対応する処理の木構造を特定する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して前記対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択し、
選択した前記処理フローを初期個体とする遺伝的プログラミングをもとに前記対象問題に対応する処理の木構造を特定する、
処理をコンピュータに実行させることを特徴とするフロー生成プログラム。
【請求項2】
任意に作成した問題に対応するメタ情報に基づいて当該問題に対応する処理フロー作成の有無を判定し、
作成有りと判定した場合、作成した前記問題に対応する処理フローを遺伝的プログラミングをもとに求め、
作成した前記問題に対応するメタ情報とともに、求めた前記処理フローを前記記憶部に蓄積する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載のフロー生成プログラム。
【請求項3】
前記特定する処理により得られた木構造の処理フローに対して前記対象問題に対応するメタ情報を付与して前記記憶部に格納する、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載のフロー生成プログラム。
【請求項4】
前記処理フローを選択する処理に先立って、メタ情報の種類の選択を受け付け、前記記憶部に記憶された処理フローの中から前記選択されたメタ情報の種類と一致する処理フローを絞り込む、
処理をさらに前記コンピュータに実行させることを特徴とする請求項1に記載のフロー生成プログラム。
【請求項5】
前記絞り込む処理は、前記記憶部に記憶された処理フローの中で前記選択されたメタ情報の種類と一致度が所定値以上の処理フローについて、前記選択されたメタ情報の種類に対して不足する種類のメタ情報を補った上で前記一致する処理フローとする、
ことを特徴とする請求項4に記載のフロー生成プログラム。
【請求項6】
処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して前記対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択し、
選択した前記処理フローを初期個体とする遺伝的プログラミングをもとに前記対象問題に対応する処理の木構造を特定する、
処理をコンピュータが実行することを特徴とするフロー生成方法。
【請求項7】
処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して前記対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択し、
選択した前記処理フローを初期個体とする遺伝的プログラミングをもとに前記対象問題に対応する処理の木構造を特定する、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、フロー生成プログラム、フロー生成方法および情報処理装置に関する。
【背景技術】
【0002】
電子回路の設計、ロボットの制御プログラミングの作成等における最適な処理フローの決定は、データ生成、データ補正などの処理の順番、各処理における適切なモデルの選択、パラメータ設定等の処理手順の試行錯誤に時間を要するため、専門家でも困難な作業となる。
【0003】
このような処理フロー決定に関する従来技術としては、生物の進化の原理(交叉、突然変異)を木構造組み合わせ最適化に応用した遺伝的プログラミング(GP:Genetic Programming)を用いて最適な処理手順を探索する手法が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000-132204号公報
【特許文献2】特開2003-109170号公報
【特許文献3】特開平11-85720号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、最適な処理フローの探索効率が悪く、探索に時間を要するという問題がある。例えば、遺伝的プログラミング(GP)では、初期の組み合わせ候補が多いと、交叉、突然変異を繰り返して最適な処理手順を探索するのに多大な時間を要することとなる。
【0006】
1つの側面では、最適な処理フローを効率的に得ることができるフロー生成プログラム、フロー生成方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、フロー生成プログラムは、選択する処理と、特定する処理とをコンピュータに実行させる。選択する処理は、処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択する。特定する処理は、選択した処理フローを初期個体とする遺伝的プログラミングをもとに対象問題に対応する処理の木構造を特定する。
【発明の効果】
【0008】
最適な処理フローを効率的に得ることができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態にかかる情報処理装置のハードウェア構成の一例を示すブロック図である。
【
図2】
図2は、実施形態にかかる情報処理装置の機能構成の一例を示すブロック図である。
【
図3】
図3は、実施形態にかかる情報処理装置における学習フェーズの概要を説明する説明図である。
【
図4】
図4は、実施形態にかかる情報処理装置における運用フェーズの概要を説明する説明図である。
【
図5】
図5は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図6A】
図6Aは、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図6B】
図6Bは、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図7】
図7は、実施例1にかかる仮想データの一例を説明する説明図である。
【
図8A】
図8Aは、実施例1にかかるフローDBの一例を説明する説明図である。
【
図8B】
図8Bは、実施例1にかかるフローDBの一例を説明する説明図である。
【
図9】
図9は、実施例1にかかる処理対象データの一例を説明する説明図である。
【
図10】
図10は、実施例1にかかる出力結果の一例を説明する説明図である。
【
図11】
図11は、実施例1と従来例との比較を説明する説明図である。
【
図12】
図12は、実施例2にかかるフローDBの調整を説明する説明図である。
【
図13】
図13は、実施例3にかかるモジュールの概要を説明する説明図である。
【
図14】
図14は、ハイパーボリュームの概要を説明する説明図である。
【
図15】
図15は、実施例3にかかるフローDBの一例を説明する説明図である。
【
図16】
図16は、実施例3にかかる処理対象データの一例を説明する説明図である。
【
図17】
図17は、実施例3にかかるモデル化の概要を説明する説明図である。
【
図18】
図18は、実施例3にかかる出力結果の一例を説明する説明図である。
【
図19】
図19は、実施例3と従来例との解の比較を説明する説明図である。
【
図20】
図20は、実施例3と従来例との初期個体と解の比較を説明する説明図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態にかかるフロー生成プログラム、フロー生成方法および情報処理装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明するフロー生成プログラム、フロー生成方法および情報処理装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0011】
(実施形態について)
図1は、実施形態にかかる情報処理装置のハードウェア構成の一例を示すブロック図である。
図1に示すように、情報処理装置1は、USB(Universal Serial Bus)等の通信線を介して記録装置2、入力装置3および表示装置4と接続される。情報処理装置1は、例えばPC(Personal Computer)等を適用できる。
【0012】
記録装置2は、例えば、HDD(Hard Disk Drive)装置、SSD(Solid State Drive)装置等である。記録装置2は、プログラム21、設定情報22、フローDB群23、処理対象データ24等の情報処理装置1が用いる種々の情報を記憶する。
【0013】
プログラム21は、情報処理装置1のCPU11(
図2参照)が読み出して実行することで、情報処理装置1における各種機能を提供するプログラムデータである。
【0014】
設定情報22は、情報処理装置1のCPU11がプログラム21を実行する際の各種設定内容を記載したデータである。
【0015】
フローDB群23は、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶するフローDB(DB:DataBase)を複数集積したものである。
【0016】
処理対象データ24は、電子回路の設計、ロボットの制御プログラミングの作成等のフロー生成の対象となる問題(適用問題ともよぶ)に関するデータである。
【0017】
入力装置3は、ユーザからのデータ入力を受け付ける装置であり、例えば、キーボード、マウス等を適用できる。表示装置4は、情報処理装置1の処理結果等の表示を行うディスプレイなどであり、例えば、LCD(Liquid Crystal Display)等を適用できる。
【0018】
図2は、実施形態にかかる情報処理装置1の機能構成の一例を示すブロック図である。
図2に示すように、情報処理装置1は、通信I/F10、CPU11およびRAM12を有する。
【0019】
通信I/F10は、有線又は無線で外部装置等に接続され、CPU11の制御のもとで外部装置等との間でデータの送受信を行う通信インターフェースである。例えば、通信I/F10は、USB等の通信線を介して接続する記録装置2、入力装置3および表示装置4との間でデータの送受信を行う。
【0020】
CPU11(CPU:Central Processing Unit)は、通信I/F10を介して記録装置2より読み出したプログラム21をRAM12に展開して順次実行することで、情報処理装置1の動作を中央制御する。具体的には、CPU11は、プログラム21を実行することで、学習処理部110、運用処理部111としての機能を有する。
【0021】
RAM12(RAM:Random Access Memory)は、CPU11が各種処理を行う際の作業領域を提供する。具体的には、RAM12は、通信I/F10を介して記録装置2より読み出されたプログラム21、設定情報22、フローDB231、処理対象データ24等のデータをCPU11より読み書き可能に格納する。
【0022】
学習処理部110は、フローDB231を生成してフローDB群23に蓄積する学習フェーズを実行する処理部である。
図3は、実施形態にかかる情報処理装置における学習フェーズの概要を説明する説明図である。
【0023】
図3に示すように、学習フェーズ(S1)が開始されると、学習処理部110は、まず、乱数等で任意の仮想問題(仮想データ)を生成する(S10)。
【0024】
ついで、学習処理部110は、生成した仮想問題のメタ情報を用いて仮想問題に対応する自律フロー(処理フロー)の作成の有無を判定する(S11)。
【0025】
ここで、メタ情報については、問題の内容を示すデータであればいずれであってもよい。例えば、メタ情報としては、問題に含まれる説明変数の数、データの個数、デフォルトフローを用いた決定係数(R2)、訓練データ交叉検証、テストデータ、元データに対するデータ密度の形状などがある。
【0026】
学習処理部110は、設定情報22に予め設定された実問題に対応するメタ情報と、生成した仮想問題のメタ情報との類似度を求める。ついで、学習処理部110は、類似度が所定の閾値以上である場合、仮想問題に対応する自律フローの作成を有りと判定する。
【0027】
なお、類似度が所定の閾値以上でなく、生成した仮想問題が実問題と類似性がない場合、学習処理部110は、仮想問題に対応する自律フローの作成を無と判定し、仮想問題の生成をやり直す(S12)。
【0028】
仮想問題に対応する自律フローの作成を有りと判定した場合、学習処理部110は、GP(遺伝的プログラミング)による公知の処理手順の探索処理により、仮想問題に対応する自律フローを生成する(S13)。具体的には、学習処理部110は、乱数個体を初期個体として所定の確率で交叉、突然変異を繰り返すことで、生成した仮想問題に対応する処理手順に対応する木構造の組み合わせ最適化を行い、最適な木構造を特定する。
【0029】
ついで、学習処理部110は、生成した最適化結果の処理フローF10に対し、仮想問題のメタ情報を付与してフローDB231に蓄積する(S14)。このように、学習処理部110は、生成した仮想問題について、メタ情報と、生成した最適化結果の処理フローF10とをフローDB231に蓄積する。
【0030】
ついで、学習処理部110は、フローDB231が設定情報22等に予め設定された十分な量(問題数)となるまでS10~S14の処理を繰り返す(S15)。フローDB231が十分な量となった場合、学習処理部110は、フローDB231をフローDB群23に格納し(S16)、学習フェーズ(S1)を終了する。
【0031】
図2に戻り、運用処理部111は、フロー生成の対象となる適用問題について、その問題に対応する最適な処理フローを求める適用フェーズを実行する処理部である。
図4は、実施形態にかかる情報処理装置における運用フェーズの概要を説明する説明図である。
【0032】
図4に示すように、運用フェーズ(S2)が開始されると、入力装置3による入力操作などを介して、ユーザがメタ情報の選択を行う(S20)。このメタ情報の選択は、フロー生成の対象となる適用問題について、最適な処理フローを求める際に用いるメタ情報の種類を、ユーザが予め選択するものである。
【0033】
運用処理部111は、入力装置3を介してメタ情報の選択を受け付けると、選択されたメタ情報の種類と一致するフローDB231をフローDB群23より検索する。この検索の結果、メタ情報の種類が一致するフローDB231がフローDB群23にない場合(S21)、学習処理部110は、前述した学習フェーズ(S1)によるフローDB231生成を行う(S22)。
【0034】
上記の検索によりメタ情報の種類が一致するフローDB231がある場合、運用処理部111は、メタ情報の種類が一致するフローDB231をフローDB群23より取得する(S23)。
【0035】
ついで、運用処理部111は、処理対象データ24(適用問題)について、その適用問題のメタ情報を基に、取得したフローDB231の中から、遺伝的プログラミング(GP)による処理フローの探索を行う際の初期個体(処理フロー)の選択を行う(S24)。具体的には、運用処理部111は、取得したフローDB231の中で、適用問題のメタ情報と類似するメタ情報の問題の処理フローを取得し、GPにおける初期個体とする。
【0036】
ついで、運用処理部111は、適用問題のメタ情報と類似するメタ情報の問題の処理フローを初期個体とした上で、GPによる処理手順の探索処理を行い、適用問題に対応する自律フロー(処理フロー)を生成する(S25)。
【0037】
このS25において、GPによる処理手順の探索処理は、初期個体が予め適用問題と類似する問題の処理フローに絞り込まれていることから、個体数、世代数ともに比較的小規模で行われる。
【0038】
このGPの規模は、設定情報22などに予め設定されており、通常は数百個体、数十世代であるところ、例えば数個体(個体数:8など)、数世代(世代数:5)などとして設定される。このように、GPの規模を小さくすることで、探索時間を短くすることができる。また、適用問題と類似する問題の処理フローに初期個体が絞り込まれていることから、GPの規模が比較的小規模であっても、十分な探索精度を保つことができる。
【0039】
ついで、運用処理部111は、S25において生成した最適化結果の処理フローF11に対し、適用問題のメタ情報を付与してフローDB231に蓄積する(S26)。このように、運用処理部111は、適用問題について、生成した最適化結果の処理フローF11を、適用問題のメタ情報とともにフローDB231に蓄積する。
【0040】
ここで、フローDB231の蓄積量(問題数)が一定以上、すなわち設定情報22に予め設定された閾値を上回る場合、運用処理部111は、もっとも古いフロー(問題のメタ情報と処理フロー)を削除する(S27)。具体的には、フローDB231は、格納順に識別情報が付与されるキュー形式で問題ごとのメタ情報と処理フローとを格納している。運用処理部111は、格納数が一定数となったところで、格納順が古く、直近のトレンドと一致しないような問題のフローを削除する。
【0041】
ここで、学習フェーズ(S1)における処理の詳細を説明する。
図5は、実施形態にかかる情報処理装置1の動作例を示すフローチャートであり、学習フェーズ(S1)における情報処理装置1の動作例を示している。
【0042】
図5に示すように、処理が開始されると、学習処理部110は、仮想データ(仮想問題)を乱数で生成する(S30)。ついで、学習処理部110は、生成した仮想データのメタ情報を算出し(S31)、算出したメタ情報と、設定情報22に予め設定された実問題に対応するメタ情報と比較して判定を行う(S32)。
【0043】
具体的には、学習処理部110は、メタ情報を比較することで、生成した仮想問題(仮想データ)と実問題との類似性を判定し(S33)、類似性がある場合(S33:Yes)は仮想問題に対応する自律フローの作成有りとしてS34へ処理を進める。類似性がない場合(S33:No)は仮想問題に対応する自律フローの作成を無とし、学習処理部110は、S30へ処理を戻す。
【0044】
S34において、学習処理部110は、初期個体のフローをランダムに作成し(S34)、GP(遺伝的プログラミング)による公知の処理手順の探索処理により、仮想問題に対応する自律フローを探索する(S35)。これにより、学習処理部110は、最適化結果の処理フローF10を得る。
【0045】
ついで、学習処理部110は、最適化結果の処理フローF10に仮想問題のメタ情報を付与した上でフローDB231に保存する(S36)。
【0046】
ついで、学習処理部110は、フローDB231の格納数(問題数)について設定情報22等に予め設定された閾値と比較し、フローDB231の格納数が十分であるか否かを判定する(S37)。
【0047】
十分でない場合(S37:No)、学習処理部110は、S30へ処理を戻し、学習フェーズを継続する。十分である場合(S37:Yes)、学習処理部110は、生成したフローDB231をフローDB群23に保存し(S38)、学習フェーズの処理を終了する。
【0048】
つぎに運用フェーズ(S2)における処理の詳細を説明する。
図6A、6Bは、実施形態にかかる情報処理装置1の動作例を示すフローチャートであり、運用フェーズ(S2)における情報処理装置1の動作例を示している。
【0049】
図6Aに示すように、処理が開始されると、ユーザが入力装置3の操作などにより、メタ情報の種類の選択を行う(S40)。運用処理部111は、通信I/F10を介してユーザによるメタ情報の種類の選択結果を受け付ける。
【0050】
ついで、運用処理部111は、フローDB群23の中から、ユーザが選択したメタ情報の種類と一致するフローDB231を検索する(S41)。ついで、運用処理部111は、一致するフローDB231があるか否かを判定し(S42)、一致するフローDB231がある場合(S42:Yes)は一致するフローDB231をフローDB群23より取得する(S46)。
【0051】
一致するフローDB231がない場合(S42:No)、運用処理部111は、フローDB群23の各フローDB231について、ユーザが選択したメタ情報の種類に対する一致度を求める。ついで、運用処理部111は、設定情報22などで予め指定した一致度以上のフローDB231がフローDB群23にあるか否かを判定する(S43)。
【0052】
指定した一致度以上のフローDB231がフローDB群23にある場合(S43:Yes)、運用処理部111は、最も一致度が高いフローDB231を複製し、この複製したフローDB231について、ユーザが選択したメタ情報の種類と合うようにメタ情報を調整する(S44)。具体的には、運用処理部111は、複製したフローDB231について、ユーザが選択したメタ情報の種類に対して不足している種類のメタ情報を補う。
【0053】
このS44におけるメタ情報の調整は、メタ情報の種類をユーザ選択に一致させることを目的とするものであり、メタ情報の内容を一致させることを目的としてはいない。したがって、運用処理部111が補うメタ情報については、任意の値や固定値であるものとする。運用処理部111は、このようにメタ情報を補った後のフローDBを、ユーザが選択したメタ情報の種類と一致するものとしてS46へ処理を進める。
【0054】
指定した一致度以上のフローDB231がフローDB群23にない場合(S43:No)、学習処理部110は、学習フェーズ(S1)を実施することで新規のフローDB231を生成し(S45)、S46へ処理を進める。
【0055】
このように、運用処理部111は、学習フェーズ(S1)の実施や、不足している種類のメタ情報を補うことで、一致するフローDB231を取得してもよい(S46)。
【0056】
図6Bに示すように、S46についで、運用処理部111は、記録装置2から読み出すなどしてフローDB群23の入力を受け付ける(S47)。ついで、運用処理部111は、フローDB群23、すなわち処理の対象問題(適用問題)の内容をもとにメタ情報を算出する(S48)。
【0057】
ついで、運用処理部111は、取得したフローDB231内のメタ情報を標準化(正規化)と、フローDB群23のメタ情報の標準化(正規化)とを行う(S49、S50)。具体的には、運用処理部111は、フローDB231内のメタ情報およびフローDB群23のメタ情報に含まれる説明変数の数、データの個数、デフォルトフローを用いた決定係数(R2)などの値を互いに比較可能とするために、0~1の間の値で正規化する。
【0058】
ついで、運用処理部111は、標準化したメタ情報を用いたk近傍法により、適用問題のメタ情報と類似するメタ情報の問題の処理フローをフローDB231から初期個体とする個体数分選択する(S51)。ここで、運用処理部111は、重複したフローは含めないものとする。
【0059】
ついで、運用処理部111は、適用問題に類似する問題の処理フローが初期個体とする個体数分に足りるか否かを判定する(S52)。初期個体とする個体数分に足りない場合(S52:Yes)、運用処理部111は、不足分の処理フローをランダムに生成し(S53)、S54へ処理を進める。初期個体とする個体数分に足りる場合(S52:No)、運用処理部111は、不足分がないことからそのままS54へ処理を進める。
【0060】
S54において、運用処理部111は、選択した処理フローをGPにおける初期個体に設定する。ついで、運用処理部111は、個体数、世代数などが小規模なGP(遺伝的プログラミング)による処理フローの探索を行い(S55)、最適化結果の処理フローF11を得る。
【0061】
ついで、運用処理部111は、得られた処理フローF11を、対象問題(適用問題)における最適な処理手順の結果とし、通信I/F10を介して接続する表示装置4より表示・出力する(S56)。
【0062】
ついで、運用処理部111は、最適化結果の処理フローF11に対し、適用問題のメタ情報を付与した上でフローDB231に保存する(S57)。ついで、運用処理部111は、フローDB231内の処理フロー(問題のメタ情報と処理フロー)の数が一定量以上であるか否かを判定する(S58)。
【0063】
フローDB231内の処理フローの数が一定量以上である場合(S58:Yes)、運用処理部111は、フローDB231内の最も古いフロー(問題のメタ情報と処理フロー)を削除し(S59)、S60へ処理を進める。
【0064】
フローDB231内の処理フローの数が一定量以上でない場合(S58:No)、運用処理部111は、フローDB231をフローDB群23に保存し(S60)、処理を終了する。
【0065】
(実施例1)
ここで、実施例1における具体例を説明する。実施例1では、混合物の特性予測モデルの生成フローの探索を目的とするものであり、次の各処理の最適な処理手順を求めるものとする。
前処理:データ制御(データ生成、データ補正など)
モデル化:モデルの選択(ガウス過程回帰、AutoMLなど)
モデルを生成する際の設定:標準化のありなし(説明変数、特性値)
【0066】
なお、デフォルトのモデル情報は、AutoMLで説明変数・特性値標準化ありとする。また、最適な処理手順を求める際の目的関数(F)は次のとおりとし、Fを最大(max)とするものを求める。
・F=0.4×(訓練データ交差検証R2)+0.3×(テストデータR2)+0.3×(元データに対するR2)-α×(モジュール数)
【0067】
また、データ補正にはSMOGNアルゴリズムを利用する。SMOGNのパラメータであるrel_thres(データ内の稀少性の閾値)、rel_coef(オーバー/アンダーサンプリングを実施する際の係数)の大きさにより、次の4つのモジュール(DC0~DC3)を用意する。
・DC0:rel_thres=0.05、rel_coef=1.5
・DC1:rel_thres=0.8、rel_coef=1.5
・DC2:rel_thres=0.05、rel_coef=0.01
・DC3:rel_thres=0.8、rel_coef=0.01
【0068】
また、SMOGNのパラメータであるK(補間で考慮する隣接の数)は次のとおりにデータ数(N)による調整とし、その他はデフォルトとする。
N≦5:データの個数-1
5<N≦40:5
40<N:10
【0069】
また、ユーザが選択したメタ情報の種類は、説明変数の数、データの個数、デフォルトフローを用いた決定係数R2(訓練データ交差検証)、デフォルトフローを用いた決定係数R2(テストデータ)、デフォルトフローを用いた決定係数R2(元データ)の5個とする。
【0070】
また、初期状態において、フローDB群23に格納されたフローDB231はないものとする(学習フェーズ(S1)からスタート)。メタ情報を用いた類似性の判定は、デフォルトフローを用いた決定係数R2(訓練データ交差検証、テストデータ、元データ)の値を比較して行うものとする。たとえば、この比較において、正の値の場合は実問題と類似性ありとする。逆に、負の値の場合は実問題と類似性なしとする。
【0071】
この実施例1において、仮想問題の生成は次のように行った。
・候補成分数(説明変数)Nc:3~20の整数でランダム
・データ個数Nd:10~100の整数でランダム
・データ成分の合計は100%とする。
・データの刻み幅Δd:10%
・1つのデータは2~rand{min(Nc,100/Δd)}成分で構成される。
・特性値:0~1の実数でランダム
【0072】
図7は、実施例1にかかる仮想データの一例を説明する説明図である。
図7に示すように、実施例1では、特性値、説明変数がランダムな仮想問題を生成した。
【0073】
また、実施例1におけるモデル化条件、GP(遺伝的プログラミング)の設定などの実行条件は次のとおりとした。
・モデル化条件
テストデータの割合は10[%]、交差検証分割数は5とする。
・GP設定
学習フェーズ(S1)におけるGP(通常の規模)では、個体数を100、世代数を30とした。また、運用フェーズ(S2)におけるGP(小規模)では、個体数を8、世代数を5とした。
【0074】
図8A、
図8Bは、実施例1にかかるフローDB231の一例を説明する説明図であり、上述した実行条件で学習フェーズ(S1)を行った後のフローDB231を例示している。
【0075】
図8A、
図8Bに示すように、学習フェーズ(S1)を実行することで、50個のフロー(問題ごとの処理フローとメタ情報)が生成され、フローDB231に格納されている。
【0076】
図9は、実施例1にかかる処理対象データの一例を説明する説明図である。
図9に示すように、実施例1における処理対象データ24は、特開2021-34637号広報(名称:電波吸収材料、出願人:株式会社巴川製紙所)のデータを用いるものとする。
【0077】
また、混合物の特性予測モデルの生成フローの探索を、上記の処理対象データ24を用いて行う場合の、目的変数および説明変数は次のとおりとする。
目的変数(特性値):2(熱伝導率、電波吸収性)
説明変数(材料候補):4(媒体、半導体フィラー、絶縁性熱伝導フィラー、導電性フィラー)
【0078】
図10は、実施例1にかかる出力結果の一例を説明する説明図である。
図10のケースC1は運用フェーズ(S2)においてTC特性値に関する処理フローを求めた結果であり、ケースC2は、RA特性値に関する処理フローを求めた結果である。
【0079】
実施例1では、運用フェーズ(S2)におけるGPの実行条件を、個体数を8、世代数を5と比較的小規模なものとしているが、
図10に示すように、ケースC1、C2ともに目的関数値(0.890、0.826)が1に近く、精度のよい処理フローが得られている。ここで、運用処理部111は、得られた結果の処理フローの木構造をモデル化したフローモデルM1、M2を生成し、表示・出力してもよい。
【0080】
図11は、実施例1と従来例との比較を説明する説明図であり、
図10に例示した結果に対して、デフォルトおよび従来例(GP(初期個体ランダム))を並べて例示したものである。なお、フローモデルM11、M12は、ケースC1のTC特性値に関するデフォルトおよび従来例の処理フローをモデル化したものである。同様に、フローモデルM21、M22は、ケースC2のRA特性値に関するデフォルトおよび従来例の処理フローをモデル化したものである。
【0081】
図11に示すように、運用フェーズ(S2)におけるGPの実行条件を、個体数を8、世代数を5と比較的小規模なものとした場合、初期個体をランダムとする従来例では、実施例1と比較して目的関数値が1より遠い値となっている。具体的には、ケースC1のTC特性値の場合、実施例1が0.890であるのに対し、従来例では0.683となっている。また、ケースC2のRA特性値の場合、実施例1が0.826であるのに対し、実施例では-0.993となっている。
【0082】
(実施例2)
実施例2では、次のメタ情報の種類を有する2つのフローDB231がフローDB群23に予め格納されているものとする。
・第1のフローDB:説明変数の数、データの個数、デフォルトフローを用いた決定係数R2(訓練データ交差検証)
・第2のフローDB:説明変数の数、データの個数、デフォルトフローを用いた決定係数R2(訓練データ交差検証)、デフォルトフローを用いた決定係数R2(テストデータ)
【0083】
また、ユーザが選択したメタ情報の種類は、説明変数の数、データの個数、デフォルトフローを用いた決定係数R2(訓練データ交差検証)、デフォルトフローを用いた決定係数R2(テストデータ)、デフォルトフローを用いた決定係数R2(元データ)の5個とする。一致度の足切り(閾値)は0.5とする。
【0084】
第1、第2のフローDBそれぞれについてユーザが選択したメタ情報の種類に対する一致度(S1,S2)を計算すると、次のとおりとなる。
・第1のフローDBの一致度S1=3/5=0.6
・第2のフローDBの一致度S2=4/5=0.8
【0085】
ともに一致度0.5以上なので、運用処理部111は、一致度が最も大きい第2のフローDBのメタ情報を、ユーザが選択したメタ情報の種類と合うように調整する。
【0086】
図12は、実施例2にかかるフローDBの調整を説明する説明図である。
図12におけるフローDB231aは上述した第1のフローDB、フローDB231bは上述した第2のフローDBの具体例である。
図12に示すように、運用処理部111は、一致度が最も大きいフローDB231bについて、ユーザが選択したメタ情報の種類に対して不足している種類のメタ情報を付与することで、メタ情報を調整する。このように、メタ情報の調整後のフローDB231cは、一致度S
3が1(完全一致)となる。なお、メタ情報の調整については、図示例のように種類が過不足なく一致するように合わせればよく、不足分である決定係数R2(元データ)の値については、例えば定数(今回は0)を付与するなど、任意のものであってよい。
【0087】
(実施例3)
実施例3は、混合物の多目的最適化フローを探索するものであり、最適化手法の選択においてDA(デジタルアニーラ)、GA(遺伝的アルゴリズム)が含まれるものとする。なお最適化手法については、他の手法(例えばSAや線形計画法など)を含めてもよい。
【0088】
ここで、最適化手法により利用できるモデル化手法が次のように異なるため、実施例3においては、最適化手法ごとにモデル化を行う。
・DA:1次重回帰、2次重回帰
・GA:すべて利用可能
・SA:すべて利用可能
・線形計画法:1次重回帰
【0089】
また、単目的最適化手法は、線形荷重を用いて多目的最適化を解くものとする。また、1ステップ前の処理の最適化結果を利用して最適化を行うものとする。ここで、1ステップ前の処理がない場合は、初期値は乱数あるいはデフォルト値を用いるものとする。また、DA→GAの場合は、DAの最適化結果をGAの初期個体とする。また、最終結果の多目的最適化結果の評価の際には、生成したモデルで最も良いモデル(例えば、目的関数値が1に近い)を用いるものとする。
【0090】
図13は、実施例3にかかるモジュールの概要を説明する説明図であり、実施例3にかかるケースC3において使用するモジュールを例示している。
図13に示すように、実施例3にかかるケースC3では、GA(遺伝的アルゴリズム)、DA(デジタルアニーラ)の2個のモジュールを用いた処理の最適化を探索するものとする。
【0091】
また、実施例3において最適な処理手順を求める際の目的関数(F)は次のとおりとし、Fを最大(max)とするものを求める。
・F=(最終結果のハイパーボリューム)-α×(モジュール数)
【0092】
図14は、ハイパーボリュームの概要を説明する説明図である。
図14に示すように、ハイパーボリュームは、横軸がF
1、縦軸がF
2の多目的関数の空間上で、ある基準点と、アルゴリズムによって得られた解K1~K4の集合とによって形成される領域の面積を表す。この空間においては、上述した面積(ハイパーボリューム値)が大きいほど、良い結果が得られていることを示している。
【0093】
図15は、実施例3にかかるフローDB231の一例を説明する説明図である。実施例3では、
図15に示すようなフローDB231が事前に用意されているものとする。
【0094】
図16は、実施例3にかかる処理対象データの一例を説明する説明図である。
図16に示すように、実施例3にかかる処理対象データ24は、混合テスト問題であり、特性値f
1、f
2について、候補成分数(説明変数)が40個、データ個数が500個あるものとある。また、1つのデータは、3~8成分で構成され、データの刻み幅は10%であるものとする。
【0095】
図17は、実施例3にかかるモデル化の概要を説明する説明図である。実施例3にかかる2次重回帰(L1)およびGP回帰でのモデル化は、
図17に示すように行うものとする。ここで、テストデータの割合は、10%(50個)とする。また、テストデータは、2次重回帰(L1)→DA用、GP回帰→DA用とする。
【0096】
また、実施例3における最小化問題については次のとおりとする。
・F1(x)=f1(x)→min,F2(x)=f2(x)→min
・DAの場合はE=αf1(x)+(1-α)f2(x)→min
【0097】
また、実施例3における最適化手法の設定については、次のとおりとする。
・GP設定:(個体数:1、世代数:1)
・入力データのメタ情報:(説明変数の数:40、成分数上限:3)
・DA設定:αを0≦α≦1の範囲で0.01刻みで101回解析を実施
・GA設定:(個体数:160、世代数:250、成分数上限:3)
なお、DA→GAの場合は、101個のDAの解をGAの初期個体として利用し、初期個体の残り(例えば59個)はランダム個体を利用
【0098】
図18は、実施例3にかかる出力結果の一例を説明する説明図である。
図18におけるフローモデルM31は、デフォルト手法(従来例)により得られた処理フローをモデル化したものであり、フローモデルM3は、本実施例(実施例3)により得られた処理フローをモデル化したものである。
【0099】
図18に示すように、本実施例(実施例3)では、DAの解をGAの初期解として利用するフローモデルM3が得られている。このフローモデルM3の目的関数値と、フローモデルM31の目的関数値とを比較しても明らかなように、本実施例(実施例3)のほうが性能(精度)のよいものとなっている。
【0100】
図19は、実施例3と従来例との解の比較を説明する説明図である。
図19における丸印は、縦軸を特性値f
1、横軸を特性値f
2とする空間上の本実施例(実施例3)の解を示している。同様に、
図19におけるバツ印は、従来例の解を示している。
【0101】
図19に示すように、本実施例(実施例3)では、従来例に対して、空間上における解の広がりがあり、より左側にも解のある、よりよいパレート解が得られている。
【0102】
図20は、実施例3と従来例との初期個体と解の比較を説明する説明図である。
図20におけるグラフG1は、従来例(GAのみ)のグラフであり、グラフG2は、本実施例(実施例3、DA初期個体利用)のグラフである。このグラフG1、G2における黒丸は初期個体をプロットしたものであり、白丸は解をプロットしたものである。
【0103】
図20に示すように、グラフG1の従来例において、初期個体は、ランダムに生成されることから、一様にバラけており、解の近くにはほとんど存在しない。これに対し、グラフG2の本実施例(実施例3、DA初期個体利用)では、DAの解を初期個体として利用しているため、解に近いところに初期個体が多くある(まばらに分布している初期個体は59個のランダム個体)。このため、本実施例(実施例3)では、解に近いところから探索がスタートでき、より効率的な解の探索が可能となっている。
【0104】
以上のように、情報処理装置1は、処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶するフローDB231を参照して対象問題に対応するメタ情報と類似するメタ情報の問題に対応する処理フローを選択する。情報処理装置1は、選択した処理フローを初期個体とする遺伝的プログラミング(GP)をもとに対象問題に対応する処理の木構造を最適化する。
【0105】
これにより、情報処理装置1は、遺伝的プログラミング(GP)をもとに対象問題に対応する処理の木構造を最適化する際に、対象問題とメタ情報が類似する問題の処理フローを初期個体とすることで、ランダムに多数の初期個体を用いることなく、効率的に最適な処理フローを生成することができる。
【0106】
また、情報処理装置1は、任意に作成した仮想問題に対応するメタ情報に基づいて当該問題に対応する処理フロー作成の有無を判定する。情報処理装置1は、処理フロー作成有りと判定した場合、作成した仮想問題に対応する処理フローを遺伝的プログラミングをもとに求める。情報処理装置1は、作成した仮想問題に対応するメタ情報とともに、求めた処理フローをフローDB231に蓄積する。このように、情報処理装置1は、仮想問題から生成した処理フローをフローDB231に蓄積しておくことで、種々の対象問題に対応することができる。
【0107】
また、情報処理装置1は、対象問題に対応する処理の最適化により得られた木構造の処理フローに対して対象問題に対応するメタ情報を付与してフローDB231に格納する。これにより、情報処理装置1は、対象となる問題のトレンド(環境)に応じてフローDB231に蓄積する内容(初期個体として用いる処理フロー)を順応させることができる。
【0108】
また、情報処理装置1は、対象問題に対応するメタ情報と類似するメタ情報の問題に対応する処理フローの選択に先立って、メタ情報の種類の選択を受け付け、フローDB群23に記憶されたフローDB231の中から選択されたメタ情報の種類と一致するフローDB231を絞り込む。これにより、情報処理装置1は、メタ情報の種類によりフローDB231の絞り込み、すなわち、遺伝的プログラミング(GP)をもとに対象問題の最適化を行う際に用いる初期個体の絞り込みを行うことができる。
【0109】
また、情報処理装置1は、フローDB群23に記憶されたフローDB231の中で選択されたメタ情報の種類と一致度が所定値以上のフローDB231について、選択されたメタ情報の種類に対して不足する種類のメタ情報を補った上で一致するフローDB231とする。これにより、情報処理装置1では、一致度が所定値以上のフローDB231について、選択されたメタ情報の種類に対して不足する種類のメタ情報を補い、選択されたメタ情報の種類と一致させることができる。
【0110】
以上の実施形態に関し、さらに以下の付記を開示する。
【0111】
(付記1)処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して前記対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択し、
選択した前記処理フローを初期個体とする遺伝的プログラミングをもとに前記対象問題に対応する処理の木構造を特定する、
処理をコンピュータに実行させることを特徴とするフロー生成プログラム。
【0112】
(付記2)任意に作成した問題に対応するメタ情報に基づいて当該問題に対応する処理フロー作成の有無を判定し、
作成有りと判定した場合、作成した前記問題に対応する処理フローを遺伝的プログラミングをもとに求め、
作成した前記問題に対応するメタ情報とともに、求めた前記処理フローを前記記憶部に蓄積する、
処理をさらに前記コンピュータに実行させることを特徴とする付記1に記載のフロー生成プログラム。
【0113】
(付記3)前記特定する処理により得られた木構造の処理フローに対して前記対象問題に対応するメタ情報を付与して前記記憶部に格納する、
処理をさらに前記コンピュータに実行させることを特徴とする付記1に記載のフロー生成プログラム。
【0114】
(付記4)前記処理フローを選択する処理に先立って、メタ情報の種類の選択を受け付け、前記記憶部に記憶された処理フローの中から前記選択されたメタ情報の種類と一致する処理フローを絞り込む、
処理をさらに前記コンピュータに実行させることを特徴とする付記1に記載のフロー生成プログラム。
【0115】
(付記5)前記絞り込む処理は、前記記憶部に記憶された処理フローの中で前記選択されたメタ情報の種類と一致度が所定値以上の処理フローについて、前記選択されたメタ情報の種類に対して不足する種類のメタ情報を補った上で前記一致する処理フローとする、
ことを特徴とする付記4に記載のフロー生成プログラム。
【0116】
(付記6)処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して前記対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択し、
選択した前記処理フローを初期個体とする遺伝的プログラミングをもとに前記対象問題に対応する処理の木構造を特定する、
処理をコンピュータが実行することを特徴とするフロー生成方法。
【0117】
(付記7)任意に作成した問題に対応するメタ情報に基づいて当該問題に対応する処理フロー作成の有無を判定し、
作成有りと判定した場合、作成した前記問題に対応する処理フローを遺伝的プログラミングをもとに求め、
作成した前記問題に対応するメタ情報とともに、求めた前記処理フローを前記記憶部に蓄積する、
処理をさらに前記コンピュータが実行することを特徴とする付記6に記載のフロー生成方法。
【0118】
(付記8)前記特定する処理により得られた木構造の処理フローに対して前記対象問題に対応するメタ情報を付与して前記記憶部に格納する、
処理をさらに前記コンピュータが実行することを特徴とする付記6に記載のフロー生成方法。
【0119】
(付記9)前記処理フローを選択する処理に先立って、メタ情報の種類の選択を受け付け、前記記憶部に記憶された処理フローの中から前記選択されたメタ情報の種類と一致する処理フローを絞り込む、
処理をさらに前記コンピュータが実行することを特徴とする付記6に記載のフロー生成方法。
【0120】
(付記10)前記絞り込む処理は、前記記憶部に記憶された処理フローの中で前記選択されたメタ情報の種類と一致度が所定値以上の処理フローについて、前記選択されたメタ情報の種類に対して不足する種類のメタ情報を補った上で前記一致する処理フローとする、
ことを特徴とする付記9に記載のフロー生成方法。
【0121】
(付記11)処理フロー生成の対象問題に対応するメタ情報に基づき、問題ごとに、当該問題に対応するメタ情報と処理フローとを記憶する記憶部を参照して前記対象問題に対応するメタ情報と所定の類似度を有するメタ情報の問題に対応する処理フローを選択し、
選択した前記処理フローを初期個体とする遺伝的プログラミングをもとに前記対象問題に対応する処理の木構造を特定する、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【0122】
(付記12)任意に作成した問題に対応するメタ情報に基づいて当該問題に対応する処理フロー作成の有無を判定し、
作成有りと判定した場合、作成した前記問題に対応する処理フローを遺伝的プログラミングをもとに求め、
作成した前記問題に対応するメタ情報とともに、求めた前記処理フローを前記記憶部に蓄積する、
処理をさらに前記制御部が実行することを特徴とする付記11に記載の情報処理装置。
【0123】
(付記13)前記特定する処理により得られた木構造の処理フローに対して前記対象問題に対応するメタ情報を付与して前記記憶部に格納する、
処理をさらに前記制御部が実行することを特徴とする付記11に記載の情報処理装置。
【0124】
(付記14)前記処理フローを選択する処理に先立って、メタ情報の種類の選択を受け付け、前記記憶部に記憶された処理フローの中から前記選択されたメタ情報の種類と一致する処理フローを絞り込む、
処理をさらに前記制御部が実行することを特徴とする付記11に記載の情報処理装置。
【0125】
(付記15)前記絞り込む処理は、前記記憶部に記憶された処理フローの中で前記選択されたメタ情報の種類と一致度が所定値以上の処理フローについて、前記選択されたメタ情報の種類に対して不足する種類のメタ情報を補った上で前記一致する処理フローとする、
ことを特徴とする付記14に記載の情報処理装置。
【符号の説明】
【0126】
1…情報処理装置
2…記録装置
3…入力装置
4…表示装置
10…通信I/F
11…CPU
12…RAM
21…プログラム
22…設定情報
23…フローDB群
24…処理対象データ
110…学習処理部
111…運用処理部
231、231a~231c…フローDB
C1~C3…ケース
F10、F11…処理フロー
G1、G2…グラフ
K1~K4…解
M1~M3、M11~M31…フローモデル