(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-30
(45)【発行日】2022-12-08
(54)【発明の名称】探索装置、探索システム、探索方法およびプログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20221201BHJP
【FI】
G06N99/00 180
(21)【出願番号】P 2020567728
(86)(22)【出願日】2020-01-24
(86)【国際出願番号】 JP2020002608
(87)【国際公開番号】W WO2020153495
(87)【国際公開日】2020-07-30
【審査請求日】2021-07-21
(31)【優先権主張番号】P 2019010663
(32)【優先日】2019-01-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】木佐森 慶一
(72)【発明者】
【氏名】亀田 義男
(72)【発明者】
【氏名】鷲尾 隆
【審査官】赤穂 州一郎
(56)【参考文献】
【文献】国際公開第2019/003644(WO,A1)
【文献】KISAMORI, Keiichi, et al.,"A Rare and Critical Condition Search Technique and its Application to Telescope Stray Light Analysi,Proceedings of the 2018 SIAM International Conference on Data Mining (SDM18),[online],2018年,Pages 567-575,eISBN: 978-1-61197-532-1, <DOI: 10.1137/1.9781611975321.64>, [retrieved on 2020-04-02], Retrieved from the Internet: <URL: https://epubs.siam.org/doi/ pdf/10.1137/1.9781611975321.64>.
(58)【調査した分野】(Int.Cl.,DB名)
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
パラメータ値と、前記パラメータ値の場合に対象事象が生じている程度を示す数値とのセットを複数用いて、前記パラメータ値と、前記数値との間の関係性を算出する関係性算出手段と、
前記数値がとり得る範囲の分割によって得られる複数の区間に関して、前記数値が区間に含まれる頻度を算出する頻度算出手段と、
前記複数の区間のうち少なくとも一部の前記区間に対して、前記頻度を用いて、前記頻度が少ない区間ほど、前記数値の算出対象となる前記パラメータ値の個数をより増加させるように
調整するための係数値として、前記区間に関して前記頻度の逆数に応じた係数値を算出する個数設定手段と、
算出された前記係数値に基づく
個数分のパラメータ値を設定するパラメータ設定手段と、
を備える探索装置。
【請求項2】
前記関係性算出手段は、前記対象事象が生じる程度を算出する、
請求項1に記載の探索装置。
【請求項3】
前記パラメータ設定手段は、前記パラメータ値を仮設定し、前記関係性を用いて算出したそのパラメータ値に関する数値が基準を満たしているか否かに基づき、そのパラメータ値の設定を採用するか否かを決定する、
請求項1
または請求項2に記載の探索装置。
【請求項4】
前記複数のセットにフィットする前記関係性を求める分布決定手段を備える、
請求項1から
3の何れか一項に記載の探索装置。
【請求項5】
請求項1から
4のいずれか一項に記載の探索装置と
入力されたパラメータ値に対応した前記対象事象が生じている程度を示す数値を算出する装置
とを備える探索システム。
【請求項6】
コンピュータが、
パラメータ値と、前記パラメータ値の場合に対象事象が生じている程度を示す数値とのセットを複数用いて、前記パラメータ値と、前記数値との間の関係性を算出し、
前記数値がとり得る範囲の分割によって得られる複数の区間に関して、前記数値が区間に含まれる頻度を算出し、
前記複数の区間のうち少なくとも一部の前記区間に対して、前記頻度を用いて、前記頻度が少ない区間ほど、前記数値の算出対象となる前記パラメータ値の個数をより増加させるように
調整するための係数値として、前記区間に関して前記頻度の逆数に応じた係数値を算出し、
算出された前記係数値に基づく
個数分のパラメータ値を設定する、
探索方法。
【請求項7】
コンピュータに、
パラメータ値と、前記パラメータ値の場合に対象事象が生じている程度を示す数値とのセットを複数用いて、前記パラメータ値と、前記数値との間の関係性を算出し、
前記数値がとり得る範囲の分割によって得られる複数の区間に関して、前記数値が区間に含まれる頻度を算出し、
前記複数の区間のうち少なくとも一部の前記区間に対して、前記頻度を用いて、前記頻度が少ない区間ほど、前記数値の算出対象となる前記パラメータ値の個数をより増加させるように
調整するための係数値として、前記区間に関して前記頻度の逆数に応じた係数値を算出し、
算出された前記係数値に基づく
個数分のパラメータ値を算出する、
機能を実行させる探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、探索装置、探索システム、探索方法およびプログラムに関する。
【背景技術】
【0002】
人工衛星に搭載される望遠鏡における迷光(ゴースト)の発生など、稀な事象は見落としのリスクが高く、効率的に探索できることが望まれる。そこで、非特許文献1では、multicanonical-MCMC(Markov Chain Monte Carlo)と呼ばれる手法を用いて、稀な事象の発生条件を効率的に探索する方法が提案されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Kisamori、外3名、A Rare and Critical Condition Search technique and its Application to Telescope Stray Light Analysis、SIAM、2018年
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1に記載の方法では、事象の発生の条件に相当するパラメータ値のサンプリングの確率分布が与えられ、その確率分布に応じてサンプリングを行うことで、稀な事象の発生条件を効率的に探索する。パラメータ値のサンプリングの確率分布が明示されていない場合、非特許文献1に記載の方法を用いて事象の発生条件を探索するユーザが、パラメータ値のサンプリングの確率分布を設定する必要がある。非特許文献1に記載の方法による稀な事象の発生条件の探索効率は、パラメータ値のサンプリングに左右される。このため、ユーザが、背景知識等を用いてパラメータ値のサンプリングの確率分布を適切に設定することが好ましく、ユーザにとって負担となる。
対象事象(発生条件を探索する対象となっている事象)が発生する条件を探索する装置が、パラメータ値のサンプリングの確率分布など、探索の手掛かりとなる情報を予め得られていない場合であっても、対象事象が生じる状況を効率的に探索できることが好ましい。
【0005】
本発明の目的の一例は、上述の課題を解決することのできる探索装置、探索システム、探索方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、探索装置は、パラメータ値と、前記パラメータ値の場合に対象事象が生じている程度を示す数値とのセットを複数用いて、前記パラメータ値と、前記数値との間の関係性を算出する関係性算出手段と、前記数値がとり得る範囲の分割によって得られる複数の区間に関して、前記数値が区間に含まれる頻度を算出する頻度算出手段と、前記複数の区間のうち少なくとも一部の前記区間に対して、前記頻度を用いて、前記頻度が少ない区間ほど、前記数値の算出対象となる前記パラメータ値の個数をより増加させるように調整するための係数値として、前記区間に関して前記頻度の逆数に応じた係数値を算出する個数設定手段と、算出された前記係数値に基づく個数分のパラメータ値を設定するパラメータ設定手段と、を備える。
【0007】
本発明の第2の態様によれば、探索方法は、コンピュータが、パラメータ値と、前記パラメータ値の場合に対象事象が生じている程度を示す数値とのセットを複数用いて、前記パラメータ値と、前記数値との間の関係性を算出し、前記数値がとり得る範囲の分割によって得られる複数の区間に関して、前記数値が区間に含まれる頻度を算出し、前記複数の区間のうち少なくとも一部の前記区間に対して、前記頻度を用いて、前記頻度が少ない区間ほど、前記数値の算出対象となる前記パラメータ値の個数をより増加させるように調整するための係数値として、前記区間に関して前記頻度の逆数に応じた係数値を算出し、算出された前記係数値に基づく個数分のパラメータ値を設定する。
【0008】
本発明の第3の態様によれば、プログラムは、コンピュータに、パラメータ値と、前記パラメータ値の場合に対象事象が生じている程度を示す数値とのセットを複数用いて、前記パラメータ値と、前記数値との間の関係性を算出し、前記数値がとり得る範囲の分割によって得られる複数の区間に関して、前記数値が区間に含まれる頻度を算出し、前記複数の区間のうち少なくとも一部の前記区間に対して、前記頻度を用いて、前記頻度が少ない区間ほど、前記数値の算出対象となる前記パラメータ値の個数をより増加させるように調整するための係数値として、前記区間に関して前記頻度の逆数に応じた係数値を算出し、算出された前記係数値に基づく個数分のパラメータ値を算出する、機能を実行させる探索プログラムである。
【発明の効果】
【0009】
この発明の実施形態によれば、探索の手掛かりとなる情報を予め得られていない場合であっても、対象事象が生じる状況を効率的に探索することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る探索装置の機能構成を示す概略ブロック図である。
【
図2】実施形態に係る分布決定部が設定するパラメータ値と、当該パラメータ値の場合に対象事象が生じている程度を示す数値との関係性を示すモデルの例を示す図である。
【
図3】実施形態に係る条件取得部が行う、エネルギー関数に基づくパラメータ値のサンプリングの例を示す図である。
【
図4】実施形態に係るモデルのパラメータが2つである場合の、分布決定部によるエネルギー関数の初期設定の例を示す図である。
【
図5】実施形態に係る分布決定部がエネルギー関数を、
図4に例示される初期設定から更新した例を示す図である。
【
図6】実施形態に係る分布決定部がエネルギー関数を
図5に示す設定からさらに更新した例を示す図である。
【
図7】実施形態に係る分布決定部がエネルギー関数を
図6のグラフG61に示す設定からさらに更新した例を示す図である。
【
図8】実施形態に係る条件取得部がエネルギー関数に基づいて行う、パラメータXの値のサンプリングの例を示す図である。
【
図9】実施形態に係る係数設定部が算出する重み係数値の例を概念的に示す図である。
【
図10】実施形態に係る係数設定部が算出する重み係数値の例を示す図である。
【
図11】実施形態に係るサンプリング処理部が仮にサンプリングしたパラメータ値の第1例を示す図である。
【
図12】実施形態に係るサンプリング処理部が仮にサンプリングしたパラメータ値の第2例を示す図である。
【
図13】実施形態に係る探索装置が対象事象の発生条件を検索する処理手順の例を示すフローチャートである。
【
図14】実施形態に係る条件取得部が、エネルギー関数に基づいてパラメータXの値をサンプリングする処理手順の例を示すフローチャートである。
【
図15】実施形態に係る係数設定部がエネルギー関数の値の区間毎の重み係数値を算出する処理手順の例を示すフローチャートである。
【
図16】モデルの演算を探索装置とは別の装置が行う場合の、探索システムの構成例を示す図である。
【
図17】実施形態に係る事象発生探索装置の構成の例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係る探索装置の機能構成を示す概略ブロック図である。
図1に示すように、探索装置100は、表示部120と、操作入力部130と、記憶部180と、制御部190とを備える。記憶部180は、モデル記憶部181を備える。制御部190は、分布決定部191と、条件取得部192とを備える。条件取得部192は、係数設定部193と、サンプリング処理部194と、事象発生パラメータ値抽出部195とを備える。
【0012】
探索装置100は、パラメータ値と、そのパラメータ値の場合に対象事象が生じているか否かを示す情報とが組み合わされたセットを複数取得する。ここでいう対象事象は、探索装置100が、その事象が発生する条件を探索する対象となっている事象である。パラメータ値は、対象事象が生じているか否かの判定対象となる条件(状況)を示す。
探索装置100は、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値情報とが組み合わされたセットを複数取得してもよい。探索装置100は、
図13または
図14等を参照しながら後述するような処理を実行することによって、対象事象が発生する状況(条件、以降、「発生条件」と称する)を探索する。数値情報は、例えば、発生した事象と、探索対象である対象事象とが類似している程度を示す情報である。探索装置100は、事象を示す情報を取得し、取得した該事象と対象事象とが類似している程度を算出してもよい。
【0013】
パラメータ値の場合に生じる事象は、例えば、そのパラメータ値を取得し、そのパラメータ値に基づき、あるシミュレーションモデルに従った処理を実行することによって算出される。パラメータ値の場合に生じる事象は、例えば、パラメータ値が示す状況にて、実験、測定、または、観測等によって実際に得られる事象であってもよい。
シミュレーションモデルは、パラメータ値の入力を受けて、パラメータ値の場合に生じる事象(結果)を出力する。しかし、シミュレーションモデルは、逆演算、すなわち、事象(結果)の入力を受けてその結果となるパラメータ値(状況)を出力することはできないモデルであってよい。対象事象の発生条件を探索するために、探索装置100は、パラメータ値の生成と、生成したパラメータ値(状況)の場合に対象事象の発生の有無を確認する処理とを繰り返す。
【0014】
探索装置100は、パラメータ値の入力を受けて事象の発生の有無を示す値を出力するモデルを用いて、事象発生条件(事象が発生する条件)を探索する。探索装置100が用いるモデルは、パラメータ値の入力を受けて結果を出力するが、逆演算、すなわち、結果の入力を受けてその結果となるパラメータ値を出力することはできないモデルであってよい。逆演算を用いずに事象発生条件を探索するために、探索装置100は、パラメータ値のサンプリングを行い、サンプリングしたパラメータ値をモデルに入力して事象の発生の有無を確認する処理を繰り返す。
【0015】
ここでいうサンプリングは、対象事象の発生の有無を調べる対象となるパラメータ値を設定することである。特に、ここでいうサンプリングは、既存のものの中から何れかを選択することに限定されない。探索装置100が新たにパラメータ値を生成(例えば、算出)するようにしてもよい。
本願の各実施形態では、サンプリングは、データベースに格納されている複数のパラメータ値から選ぶという処理、または、対象事象が生じている程度を示す数値と、関係性とに基づきパラメータ値を算出する処理のいずれかであってもよい。
【0016】
発生が稀な事象の発生条件を探索する場合に、条件(状況)を示す多数のパラメータ値を生成し、生成したパラメータ値毎に、そのパラメータ値が示す条件下での対象事象の発生の有無を確認することに、膨大な時間を要することが考えられる。そこで、探索装置100は、対象事象が発生するパラメータ値を効率的に探索するために、
図13~
図15を参照して後述するような処理を実行することによって、発生条件検索対象の事象が発生するパラメータ値を探索する。
【0017】
上述したように、パラメータ値の場合に生じる事象は、そのパラメータ値に基づき、あるシミュレーションモデルに従った処理を実行することによって算出される。パラメータ値の場合に生じる事象は、例えば、パラメータ値が示す状況にて、実験、測定、または、観測等によって実際に得られる事象であってもよい。したがって、対象事象が発生する場合のパラメータ値は、当該対象事象が発生する状況(条件)を示す。
探索装置100は、例えばパソコン(Personal Computer:PC)またはワークステーション(Workstation)等のコンピュータ(情報処理装置、計算装置)を用いて構成される。
【0018】
表示部120は、例えば液晶パネルまたはLED(Light Emitting Diode)パネル等の表示画面を備え、各種画像を表示する。例えば、表示部120は、探索装置100による探索結果を表示する。
操作入力部130は、例えばキーボードおよびマウスなどの入力デバイスを備え、ユーザ操作を受け付ける。例えば、操作入力部130は、発生条件(対象事象が発生する条件)の探索開始を指示するユーザ操作を受ける。
【0019】
記憶部180は、各種データを記憶する。記憶部180は、探索装置100が備える記憶デバイスを用いて構成される。
モデル記憶部181は、たとえば、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値との間の関係性を示すモデルを記憶することができる。モデル記憶部181は、たとえば、パラメータ値と、そのパラメータ値の場合に対象事象が生じているか否かを示す情報との間の関係性を示すモデルを記憶してもよい。対象事象が生じているか否かを示す情報は、たとえば、対象事象が生じていることを示す情報、及び、対象事象が生じていないことを示す情報という2値であってもよい。
【0020】
制御部190は、探索装置100の各部を制御して各種処理を実行する。制御部190は、探索装置100が備えるCPU(Central Processing Unit、中央処理装置)が記憶部180からプログラムを読み出して実行することで構成される。
分布決定部191は、モデル記憶部181が記憶するモデルに入力するパラメータ値のサンプリングの分布を決定する。そして、分布決定部191は、サンプリングされたパラメータ値の入力に対するモデルの出力に基づいて、分布を更新する。
【0021】
言い換えると、分布決定部191は、入力した複数のセットに関して、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値との間の関係性を示す分布を算出する。分布決定部191は、たとえば、パラメータ値と、そのパラメータ値の場合における数値との間の関係性を、超曲面を用いて近似するモデルフィッテイングに従い求める。
これにより、探索装置100は、この分布に基づいて、数値に応じたパラメータ値を算出する。
【0022】
条件取得部192は、分布決定部191が決定した分布に基づいてパラメータ値をサンプリングし、サンプリングされたパラメータ値の入力に対するモデルの出力に基づいて、事象の発生条件を取得する。
係数設定部193は、超曲面で示される分布に応じたサンプリングを行うための係数値(重み係数値)を設定する。
【0023】
サンプリング処理部194は、係数設定部193が設定した重み係数値を用いて、超曲面で示される分布に応じたサンプリングを行う。具体的には、サンプリング処理部194は、パラメータ値の仮サンプリングを行う。サンプリング処理部194は、仮サンプリングされたパラメータ値毎に、係数設定部193が設定した重み係数値を用いてそのパラメータ値のサンプリングとしての採否を決定する。
事象発生パラメータ値抽出部195は、サンプリングとして採用されたパラメータ値のうち、モデルに入力して対象事象の発生有りとされたパラメータ値を抽出する。事象発生パラメータ値抽出部195が抽出するパラメータ値は、対象事象が発生する条件を示す。
【0024】
図2は、分布決定部191が設定するパラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値との関係性を示すモデルの例を示す図である。
図2のグラフの横軸は、パラメータ値を示す。縦軸は、数値を示す。数値は、対象事象が生じている場合に1になる。数値は、対象事象が生じていない場合に0になる。数値が1と0との中間値をとっている場合、数値が1に近いほど対象事象が生じている程度が高く、数値が0に近いほど対象事象が生じている程度が低い。
【0025】
線L111は、数値が2値の場合のモデルを示す。このモデルは、数値が3値以上であってもよく、線L112に示されるように連続であってもよい。
図2では、説明の便宜上、パラメータは、Xにて示された1つのパラメータとしている。
以下では、モデルのパラメータ(入力パラメータ)をXで示す。モデルのパラメータの個数は複数であってもよい。したがって、パラメータXは、式(1)のようにベクトルで示されていてもよい。
【0026】
【0027】
式(1)において、nはモデルのパラメータの個数を示す正の整数である。
パラメータXの値の入力に対して、対象事象の発生の有無を示す値(または、対象事象の発生の程度を示す数値)を出力するモデルをF(X)で示す。モデルF(X)が、対象事象の発生の有無を示す値を出力する場合、モデルF(X)は、0または1の何れかの値をとる2値関数である。モデルF(X)の値「0」は、対象事象が発生しないことを示す。モデルF(X)の値「1」は、対象事象が発生することを示す。
【0028】
また、分布決定部191が設定する、モデルに入力されたパラメータ値とモデルの出力との関係性を近似する超曲面を示す関数をエネルギー関数と称し、C(X)で示す。
分布決定部191は、関係性算出部の例に該当する。エネルギー関数は、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値との関係性を示す情報の例に該当する。
また、エネルギー関数は、対象事象が生じる程度を示しているといえる。分布決定部191は、エネルギー関数を算出することで、対象事象が生じる程度を算出しているといえる。
【0029】
図2の例では、モデルF(X)は、線L111にて示されている。エネルギー関数C(X)は、線L112にて示されている。
分布決定部191は、パラメータXの値をモデルF(X)に入力して得られた複数のサンプリング点を超曲面で近似するようにエネルギー関数C(X)を設定する。分布決定部191が、パラメータ値とそのパラメータ値の場合に対象事象が生じている程度を示す数値との、複数のセットに対するエネルギー関数C(X)を求める方法として、例えば最小二乗法を用いるようにしてもよいが、この方法に限定されない。
【0030】
分布決定部191がエネルギー関数C(X)を設定する設定方法も、特定の方法に限定されない。エネルギー関数C(X)が、例えば、放射基底関数(radial basis function)を用いて記述されていてもよい。この場合、エネルギー関数C(X)は、複数の分布関数の各々の重み係数値を調整することで、エネルギー関数C(X)を求めるようにしてもよい。
分布決定部191がエネルギー関数C(X)を求める目的は、
図2の例のように、対象事象が発生する数値の近傍で値が大きく、かつ、対象事象発生の有無の境界を含む裾野を有する確率密度に従いサンプリングを行うことである。
【0031】
図3は、条件取得部192が行う、エネルギー関数に基づくパラメータ値のサンプリングの例を示す図である。
図3に示すグラフの横軸はパラメータ値を示し、縦軸は、モデルF(X)の値(出力値)、および、エネルギー関数C(X)の値(超曲面が示す値)を示す。
図2の場合と同じく、線L111は、モデルF(X)の例を示す。線L112は、エネルギー関数C(X)の例を示す。
【0032】
線L111上のドットは、条件取得部192が線L111のエネルギー関数C(X)に基づいてサンプリングしたパラメータXの値に対するモデルF(X)の出力値の例を示す。
図3の例で、エネルギー関数C(X)は、対象事象が発生するパラメータ値の近傍で値が大きく、かつ、対象事象発生の有無の境界を含む裾野を有している。条件取得部192が、このエネルギー関数C(X)に基づいてサンプリングを行うことで、対象事象が発生する領域および対象事象発生の有無の境界を含む領域で、他の領域と比較して、多数のサンプリングを行うことができる。これによって、以下の2つの効果を得られる。
【0033】
(1) 対象事象が発生する条件の範囲を把握できる。
条件取得部192が、対象事象が発生するか否かを分ける境界付近で比較的多数のサンプリングを行うことで境界の位置を特定できる。したがって、対象事象が発生する条件(状況)を境界の位置に基づき把握できることが期待される。
【0034】
かかる境界の位置の特定、および、対象事象が発生する範囲の把握は、分布決定部191が、適切な広がりを持つエネルギー関数C(X)を設定することで効率的になる。
エネルギー関数C(X)の裾野が狭すぎる場合、境界付近では、エネルギー関数C(X)の値が急激に小さくなる。この結果、境界付近では条件取得部192によるパラメータ値のサンプリング数が少なくなる。この結果、条件取得部192が算出するパラメータ値が、対象事象が発生するパラメータ値に集中し、対象事象が発生する条件の探索が非効率的になってしまう。特に、対象事象が発生する条件と発生しない条件との境界の探索が非効率的になってしまう。
【0035】
一方、エネルギー関数C(X)の裾野が広すぎる場合、対象事象が発生する領域だけでなく、対象事象が発生しない領域でもエネルギー関数C(X)の値が高い。この場合、対象事象発生の有無の境界付近でのサンプリング数が比較的少なくなり、分布決定部191が境界の位置を効率的に特定できないことが考えられる。
分布決定部191が、エネルギー関数C(X)の更新を繰り返すことで、対象事象が発生するパラメータ値の近傍でのサンプリング数が増加し、サンプリングデータに基づいて更新されるエネルギー関数C(X)が、適切な関数に更新されていくことが期待される。
【0036】
(2) 対象事象が発生する条件をさらに検出できる可能性が比較的高い。
対象事象が発生するパラメータ値が検出された場合、そのパラメータ値の近傍のパラメータ値は、対象事象が発生するパラメータ値と比較的類似した条件を示すと考えられる。この点で、検出されたパラメータ値が近傍におけるパラメータ値の場合に、対象事象が発生する可能性が比較的高い。したがって、探索装置100が、対象事象が発生するパラメータ値の近傍を探索することで、対象事象が発生するパラメータ値をさらに検出できる可能性が比較的高い。
【0037】
探索装置100は通常、
図3の線L111で例示されるようなモデルF(X)の出力の分布を直接知ることは難しい。このため、分布決定部191は、適切なエネルギー関数C(X)を探索開始時に設定することは困難である。そこで、分布決定部191は、初期設定にてエネルギー関数C(X)を仮に設定し、
図13~
図15を参照して後述する処理に従い、エネルギー関数C(X)の更新を繰り返す。
【0038】
図4は、モデルF(X)のパラメータが2つである場合の、分布決定部191によるエネルギー関数の初期設定の例を示す図である。
図4では3つのグラフG41、G42、G43が示されている。これらのうち、グラフG41およびG42は、初期設定されたエネルギー関数C(X)の例を示している。グラフG41の横軸は、パラメータx
1の値を示し、縦軸はパラメータx
2の値を示す。グラフG41では、パラメータXの値をx
1およびx
2の2次元の軸で表す場合の例を示しており、エネルギー関数C(X)の値が明るさ(白黒の階調)で示されている。
【0039】
一方、グラフG42の横軸はパラメータXの値を示し、縦軸はエネルギー関数C(X)の値(すなわち、対象事象が生じている程度)を示す。線L211はエネルギー関数C(X)を示す。グラフG42では、説明のために、パラメータXの値を1次元の軸で表している。具体的には、グラフG42では、グラフG41においてx2軸に沿ってx1を射影した図を示している。
エネルギー関数C(X)の初期設定で、分布決定部191が、エネルギー関数C(X)を予め定められた関数に設定するようにしてもよい。
【0040】
グラフG43は、条件取得部192がグラフG42に示されるエネルギー関数C(X)に基づいてサンプリングしたパラメータXの値に対するモデルF(X)の出力値の例を示す。上記のように、モデルF(X)の出力値は、対象事象が発生しているか否かを示す。グラフG43の横軸はパラメータXの値を示し、縦軸は、モデルF(X)の値を示す。線L221は、モデルF(X)を示す。線L221上のドットは、条件取得部192が線L211のエネルギー関数C(X)に基づいてサンプリングしたパラメータXの値と、パラメータXに関するモデルF(X)の出力値との関係性の例を示す。エネルギー関数C(X)のピーク付近と、ピークではない領域とを比較すると、
図4に示された例において、パラメータ値の個数は、ピーク付近の方が多い。一方、対象事象が生じる場合のパラメータ値(F(X)=1におけるドット)は、2つしか生成されていない。しかも、対象事象が生じる場合のパラメータ値は、「F(X)=1」となる領域のうち、パラメータ値が小さい側(
図4に向かって左側)に偏っている。
【0041】
図5は、分布決定部191がエネルギー関数を、
図4に例示される初期設定から更新した例を示す図である。分布決定部191は、初期設定にて選んだパラメータ値の場合に対象事象が生じている程度を示す数値(または、対象事象が生じているか否かを示す情報)に基づき、エネルギー関数を更新する。すなわち、分布決定部191は、複数セットに基づきエネルギー関数を算出することによって、エネルギー関数を更新する。この複数のセットでは、分布決定部191が初期設定にて選んだパラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値とが組み合わされている。
【0042】
図5では3つのグラフG51、G52、G53が示されている。これらのうち、グラフG51およびG52は、初期設定(グラフG41およびG42)から更新されたエネルギー関数C(X)の例を示している。グラフG51の横軸は、パラメータx
1の値を示し、縦軸はパラメータx
2の値を示す。グラフG51では、パラメータXの値をx
1およびx
2の2次元の軸で表す場合の例を示しており、エネルギー関数C(X)の値が明るさ(白黒の階調)で示されている。
【0043】
一方、グラフG52の横軸はパラメータXの値を示し、縦軸はエネルギー関数C(X)の値を示す。線L212はエネルギー関数C(X)を示す。グラフG52では、説明のためにパラメータXの値を1次元の軸で表している。具体的には、グラフG52では、グラフG51においてx
2軸に沿ってx
1を射影した図を示している。
図4のグラフG43で、図に向かって右側に、対象事象が発生するパラメータXの値(すなわち、「F(X)=1」となるXの値)が検出されている。このため、グラフG52の線L212で示されるように、エネルギー関数C(X)のピーク(極大点)が、
図4のグラフG42の線L211で示されるエネルギー関数C(X)のピークよりも図に向かって右側にシフトしている。このことは、分布決定部191が、グラフG51でエネルギー関数C(X)のピークを
図4のグラフG41のピークよりも図の右側にシフトしたエネルギー関数を算出していることに相当する。
このエネルギー関数のピークのシフトは、分布決定部191がグラフG41のエネルギー関数C(X)に基づいて得られた複数のセット(パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値とのセット)にフィットするように、グラフG51のエネルギー関数C(X)を生成し直した結果として生じている。
【0044】
グラフG53は、条件取得部192がグラフG52に示されるエネルギー関数C(X)に基づいてサンプリングしたパラメータXの値に対するモデルF(X)の出力値(すなわち、対象事象が生じているか否かを示す情報)の例を示す。グラフG53の横軸はパラメータXの値を示し、縦軸は、モデルF(X)の値を示す。線L221は、グラフG43の場合と同じモデルF(X)を示す。線L221が、グラフG43の場合と同じモデルによる同じ線となるため、グラフG43の場合と同じ符号(L221)を用いている。線L221上のドットは、条件取得部192が線L211のエネルギー関数C(X)に基づいてサンプリングしたパラメータXの値に対するモデルF(X)の出力値の例を示す。
【0045】
図4のグラフG43では、対象事象が発生するパラメータXの値のサンプリング点の数は2つであった。これに対し、エネルギー関数C(X)のピークが右側でシフトしたことで、グラフG53では、対象事象が発生するパラメータXの値のサンプリング点が4つに増えている。言い換えると、エネルギー関数C(X)に従いパラメータ値を算出することによって、当該パラメータ値の場合に対象事象が発生する頻度が、
図4の場合に比べて増えている。
【0046】
図6は、分布決定部191がエネルギー関数を
図5に示す設定からさらに更新した例を示す図である。
図6では3つのグラフG61、G62、G63が示されている。これらのうち、グラフG61およびG62は、
図5に示す設定(グラフG51およびG52)から更新されたエネルギー関数C(X)の例を示している。グラフG61の横軸は、パラメータx
1の値を示し、縦軸はパラメータx
2の値を示す。グラフG61では、パラメータXの値をx
1およびx
2の2次元の軸で表す場合の例を示しており、エネルギー関数C(X)の値が明るさ(白黒の階調)で示されている。
【0047】
一方、グラフG62の横軸はパラメータXの値を示し、縦軸はエネルギー関数C(X)の値を示す。線L213はエネルギー関数C(X)を示す。グラフG62では、説明のためにパラメータXの値を1次元の軸で表している。具体的には、グラフG62では、グラフG61においてx
2軸に沿ってx
1を射影した図を示している。
上述したように、
図5のグラフG53で、対象事象が発生するパラメータXの値(すなわち、F(X)=1となるXの値)の数がグラフG43の場合よりも増えている。また、グラフG43では、対象事象が発生するパラメータXの値が、「F(X)=1」となる領域のうちパラメータ値が小さい側に偏っている。これに対し、グラフG53では、パラメータ値が大きい側にも、対象事象が発生するパラメータXの値が示されている。このため、分布決定部191は、グラフG62の線L213で示されるように、エネルギー関数C(X)のピークを
図5のグラフG52の線L212で示されるエネルギー関数C(X)のピークよりもさらに、図に向かって右側にシフトしたエネルギー関数C(X)に更新する。また、分布決定部191は、グラフG62の線L213で示されるように、グラフG52の線L212の場合よりも急峻な(裾野の広がりが小さい)エネルギー関数C(X)に更新する。このことは、分布決定部191が、
図5のグラフG53に例示された複数のセット(パラメータ値と、そのパラメータ値の場合における対象事象が生じている程度を示す数値との組み合わせ)に基づき、エネルギー関数C(X)を算出していることを表す。
【0048】
グラフG63は、条件取得部192がグラフG62に示されるエネルギー関数C(X)に基づいてサンプリングしたパラメータXの値に対するモデルF(X)の出力値(すなわち、パラメータ値の場合において対象事象が生じたか否か)の例を示す。グラフG63の横軸はパラメータXの値を示し、縦軸は、モデルF(X)の値を示す。線L221は、グラフG43の場合と同じモデルF(X)を示す。線L221が、グラフG43の場合と同じモデルによる同じ線となるため、グラフG43の場合と同じ符号(L221)を用いている。線L221上のドットは、条件取得部192が線L211のエネルギー関数C(X)に基づいてサンプリングしたパラメータXの値に対するモデルF(X)の出力値の例を示す。
図5のグラフG53では、対象事象が発生するパラメータXの値のサンプリング点の数は4つであった。これに対し、エネルギー関数C(X)のピークが右側でシフトしたことで、グラフG63では、対象事象が発生するパラメータXの値が5つに増えている。
【0049】
図7は、分布決定部191がエネルギー関数を
図6のグラフG61に示す設定からさらに更新した例を示す図である。
図7では2つのグラフG71、G72が示されている。これらのうち、グラフG71は、
図6に示す設定(グラフG61)から更新されたエネルギー関数C(X)の例を示している。グラフG71の横軸は、パラメータx
1の値を示し、縦軸はパラメータx
2の値を示す。グラフG71では、パラメータXの値をx
1およびx
2の2次元の軸で表す場合の例を示しており、エネルギー関数C(X)の値が明るさ(白黒の階調)で示されている。
【0050】
図6のグラフG63で図に向かって右側に、対象事象が発生するパラメータXの値が新たに1つ検出されたように、
図6のグラフG61のエネルギー関数C(X)に基づくサンプリングで、図に向かって右側に、対象事象が発生するパラメータXの値が新たに検出されている。そこで分布決定部191は、エネルギー関数C(X)のピークが
図6のグラフG61に示されるエネルギー関数C(X)のピークから図に向かって右側に移動したエネルギー関数C(X)に更新している。分布決定部191は、特に、エネルギー関数C(X)のピークに対応する裾野が、
図6のグラフG61の場合よりも図に向かって右側に移動した、かつ、より急峻な(裾野の広がりが小さい)エネルギー関数C(X)を生成している。
【0051】
グラフG72は、パラメータXの値をx
1およびx
2の2次元の軸で表す場合のモデルの例を示している。グラフG71に示されるエネルギー関数では、グラフG72に示されるモデルの、対象事象が発生するパラメータ値の領域およびその境界における値が大きくなっており、かつ、対象事象が発生しないパラメータ値の領域では、エネルギー関数C(X)の値は小さくなっている。
このように、
図7の例で、分布決定部191は、エネルギー関数C(X)を適切に設定している。条件取得部192が、グラフG71に示されるエネルギー関数に基づいてパラメータXの値をサンプリングすることで、対象事象が発生する条件および境界条件が明らかになると期待される。
【0052】
図4~
図7を参照して説明したエネルギー関数C(X)の更新方法は例であり、この方法に限定されない。分布決定部191がエネルギー関数を更新する方法として、対象事象が発生するパラメータXの値のサンプリング点またはその近傍にエネルギー関数C(X)のピークをとり、かつ、そのピークからの裾野が、対象事象が発生しないパラメータXの値のサンプリング点を含む領域に広がりすぎない方法を用いることができる。
【0053】
図8は、条件取得部192がエネルギー関数C(X)に基づいて行う、パラメータXの値のサンプリングの例を示す図である。
図8では、エネルギー関数のグラフに加えて、複数セットが示す、対象事象が生じる程度を頻度解析する処理を実行することによって得られる結果(頻度分布、度数分布)が示されている。すなわち、条件取得部192の係数設定部193は、複数セットに含まれている、対象事象が生じる程度を示す値に関して頻度解析する処理を実行し、その結果、係数設定部193は、対象事象が生じる程度に関する区間と、その区間における頻度とを算出する。
ここでいう頻度解析は、解析対象となる値の大きさの分布を解析することであり、具体的には、その値がとり得る範囲を分割した区間について、その値がその区間に含まれる頻度を解析する。係数設定部193の場合、エネルギー関数値がとり得る範囲を分割した区間について、エネルギー関数値がその区間に含まれる頻度を解析する。
【0054】
このように、係数設定部193は、対象事象が生じている程度を示す数値がとり得る範囲を分割した区間毎に、数値がその区間に含まれる頻度を算出する。係数設定部193は、頻度算出部の例に該当する。対象事象が生じている程度を示す数値がとり得る範囲は、対象事象が生じている程度を示す数値の値域(したがって、モデルF(X)の値域、または、エネルギー関数C(X)の値域)であってもよいが、これに限定されない。
【0055】
係数設定部193は、例えば、
図15のステップS314に例示された処理の開始までに受け取った全ての複数セットに関して、頻度解析する処理を実行してもよい。
図8に示すエネルギー関数のグラフの横軸はパラメータXの値を示し、縦軸は、エネルギー関数C(X)の値およびモデルF(X)の値(すなわち、パラメータ値Xの場合において、対象事象が生じるか否かの値)を示す。
【0056】
図2の場合および
図3の場合と同じく、線L111は、モデルF(X)を示す。線L112は、エネルギー関数C(X)を示す。線L112上のドットは、条件取得部192がサンプリングしたパラメータ値に対するエネルギー関数C(X)の出力値を示す。
図8の例で、エネルギー関数C(X)の値の何れの区間にも、ドットが4つ含まれている。これは、条件取得部192が生成したパラメータ値の場合に対象事象が生じる程度が、その程度に関する何れの区間においても等しいことを示している。
図8に示すエネルギー関数が、後述する
図13~
図15に示される1回の反復処理にて入力した複数セットに基づき生成されている場合について説明する。この場合は、複数セットに含まれているパラメータ値は、各区間において等しい個数分だけ生成されていたことが表されている。また、
図8に示すエネルギー関数が、
図13~
図15に示される反復処理において受け取った全てのセットに基づき生成されている場合について説明する。この場合は、
図9を参照しながら後述するような重み係数値を適切に調整する処理によって、各区間において等しい個数分だけパラメータ値が生成されていたことが表されている。
【0057】
図9は、係数設定部193が算出する重み係数値の例を概念的に示す図である。係数設定部193は、上記のように、頻度解析を行って頻度分布を取得する。係数設定部193は、この頻度分布を用いて、サンプリング処理部194が各区間に設定するパラメータ値の数を調整する。
【0058】
図9の例で係数設定部193は、サンプリング処理部194が生成したパラメータ値の頻度(度数)に基づき、頻度が少ない区間におけるパラメータ値の個数と、頻度が多い区間におけるパラメータ値の個数とを揃えるように、区間毎の重み係数値を設定する。言い換えれば、係数設定部193は、パラメータ値の頻度が少ない区間におけるパラメータ値の個数の増減を、パラメータ値の頻度が多い区間におけるパラメータ値の個数の増減よりも、より多く増加させるように、重み係数値を設定する。
あるいは、係数設定部193が、頻度が少ない区間におけるパラメータ値の個数を、頻度が多い区間よりも多く設定するようにしてもよい。すなわち、係数設定部193は、サンプリング処理部194が、頻度が少ない区間に頻度が多い区間よりも多くの個数のパラメータ値を算出するよう、重み係数値を設定するようにしてもよい。
【0059】
係数設定部193が、各区間に関して生成するパラメータ値の個数(または、各区間に関する重み係数値)を、パラメータ値の頻度に基づき算出してもよい。この場合に、係数設定部193が、例えば、複数の区間における頻度を比較し、比較結果に基づき、ある区間に関して生成するパラメータ値の個数を決定してもよい。または、係数設定部193は、例えば、1つの区間における頻度の逆数等を算出する処理によって、その1つの区間に関して生成するパラメータ値の個数を決定してもよい。係数設定部193は、必ずしも全ての区間について重み係数値を算出する必要はなく、一部の区間のみについて重み係数値を算出してもよい。例えば、係数設定部193は、他の区間と比べて、極めて頻度が多い区間について頻度を算出しなくてもよい。係数設定部193が重み係数値(または、パラメータ値の個数)を決定する処理は、上述した処理に限定されない。
【0060】
このように、係数設定部193は、少なくとも一部の区間に対して、上記の頻度を用いて、頻度が少ない区間ほど、数値(対象事象が生じている程度を示す数値)の算出対象となるパラメータ値の個数をより増加させるように、重み係数値を設定する。係数設定部193による重み係数値の設定は、パラメータ値の個数に関する設定の例に該当する。係数設定部193は、個数関連情報設定部の例に該当する。
【0061】
図10は、係数設定部193が算出する重み係数値の例を示す図である。
図10の縦軸は、
図9に示す度数分布の場合と同じ区間を示し、横軸は、重み(重み係数値、または、各区間に関して(条件取得部192が)生成するパラメータ値の個数)を示す。
図9および
図10に例示されるように、係数設定部193は、例えば、
図9に示された区間における度数(頻度)が小さいほど、重み係数値(またはパラメータ値の個数)が大きくなるように、区間毎に重み係数値を算出する。
係数設定部193が、区間R
j(ただし、jは区間の個数を示す)に関して算出する重み係数値をW(R
j)と表記する。
【0062】
サンプリング処理部194は、区間Riにおけるパラメータ値を算出する場合に、あるパラメータXの値に、生成したエネルギー関数C(X)を適用することによって、エネルギー関数C(X)の値を求め、求めた値(エネルギー関数C(X)の値)を含む区間Rjを算出する。サンプリング処理部194は、そのような処理を繰り返すことによって、重み係数値W(Rj)に応じた分だけパラメータ値を生成する。サンプリング処理部194は、あらかじめパラメータ値が格納されているデータベース(不図示)からパラメータ値を選んでもよいし、所定の範囲のパラメータ値を算出してもよい。本発明の各実施形態においては、これら2つの処理を含めて「サンプリング」と表している。
このように、サンプリング処理部194は、係数設定部が設定する重み係数値が示す、パラメータ値の個数に関する設定に基づいて、パラメータ値を設定する。サンプリング処理部194は、パラメータ値設定実行部の例に該当する。
【0063】
例えば、係数設定部193が、式(2)に基づいて重み係数値を算出するようにしてもよい。
【0064】
【0065】
式(2)において、jは、度数分布の区間を識別する識別番号である。式(2)では、係数設定部193が重み係数値を算出する処理対象となっている、いずれか1つの区間を識別する。
Rjは、jによって識別される区間を示す。hjは、区間Rjにおける度数(その区間に含まれるサンプリング数)を示す。
Wjは、jによって識別される区間(区間Rj)における重みを示す。W(Rj)は、区間Rjにおける重みを示す。したがって、式(2)に示されるように「Wj=W(Rj)」である。
h*は、所定の値が定められている、正の整数の定数を示す。「h*-hj>0」となって除数0による除算が生じることを回避できるよう、h*の値は、例えば、係数設定部193が行うサンプリングで想定される度数の最大値よりも大きい値に設定されてもよい。
【0066】
あるいは、係数設定部193が、単純に度数の逆数を重み係数値として算出するようにしてもよい。ある区間におけるサンプリング数がi(iは正の整数)の場合、係数設定部193が、重み係数値を1/iと算出するようにしてもよい。サンプリング数が0の区間については、除数0での除算を避けるために、係数設定部193が、重み係数値を、所定の正の値(例えば、1以上の値)を加えてから逆数を算出するように設定するようにしてもよい。
【0067】
図11は、サンプリング処理部194が仮にサンプリングしたパラメータ値の第1例を示す図である。
図11のグラフの横軸はパラメータXの値を示し、縦軸は、モデルF(X)の値、および、エネルギー関数C(X)の値を示す。
図2の場合と同じく、線L111は、モデルF(X)(すなわち、対象事象が生じているか否かを示す情報)の例を示す。線L112は、エネルギー関数C(X)の例を示す。
【0068】
サンプリング処理部194は、パラメータXの値を仮サンプリングし、仮サンプリングされたパラメータ値を、パラメータ値のサンプリングとして採用するか否かを決定する。サンプリング処理部194が仮サンプリングをサンプリングとして採用する基準として、以下の2つの条件の両方を満たす基準を用いる。
【0069】
(a) 前回のサンプリングにおけるパラメータ値X
i-1(iは、サンプリングの回数を示す正の整数)に対するエネルギー関数値C(X
i-1)との比較で、仮サンプリングされたパラメータ値X’に対するエネルギー関数値C(X’)が大きいほど、仮サンプリングされたパラメータ値X’がサンプリングとして採用され易い。ここでいう前回のサンプリングは、後述する
図14の例のように、係数設定部193が重み係数値を算出する処理を1回行ったときに、サンプリング処理部194が、その重み係数値を用いてパラメータ値を複数算出する処理内での、前回のサンプリング(パラメータ値の設定)である。
図11では、サンプリング処理部194がパラメータ値X
i(ここでは、iは、i≧2の整数)を算出する際の処理の例を示している。この場合、前回のサンプリングにおけるパラメータ値は、パラメータ値X
i-1である。
したがって、サンプリング処理部194は、エネルギー関数を用いてX
i-1とX’とに関するエネルギー関数値を、それぞれ求め、それらの大小を比較する。
この条件により、エネルギー関数C(X)の値が大きい箇所におけるサンプリング数を多くすることができる。
【0070】
(b) 係数設定部193が行ったサンプリングで、サンプリング数が少ない区間(重み係数値が大きい区間)ほど、仮サンプリングされたパラメータ値X’がサンプリングとして採用され易い。
この条件により、
図8を参照して説明したように、エネルギー関数C(X)の値に区間を設定した場合の、パラメータXの値のサンプリング点の数の度数分布の均等化を図ることができる。
【0071】
例えば、係数設定部193は、式(3)を用いて仮サンプリングのスコア(評価値)rを算出する。
【0072】
【0073】
式(3)において、R(C(X))は、エネルギー関数値C(X)が含まれる区間を示す。したがって、R(C(X’))は、仮サンプリングされたパラメータ値X’に対するエネルギー関数値C(X’)が含まれる区間を示す。R(C(Xi-1))は、前回のパラメータ値Xi-1に対するエネルギー関数値C(Xi-1)が含まれる区間を示す。
式(3)によれば、「C(X’)/C(Xi-1)」により、エネルギー関数値C(Xi-1)との比較でエネルギー関数値C(X’)が大きいほど、スコアrの値が大きくなる。また、分子の「W(R(C(X’)))」により、重み係数値W(R(C(X’)))が大きいほど、スコアrの値が大きくなる。
係数設定部193は、式(4)に基づいて、仮サンプリングされたパラメータ値X’をサンプリングとして採用するか否かを決定する。
【0074】
【0075】
式(4)において、Acceptは、仮サンプリングされたパラメータ値X’をサンプリングとして採用することを示す。Rejectは、仮サンプリングされたパラメータ値X’をサンプリングとして採用しない(破棄する)ことを示す。
r0は、係数設定部193が式(4)による判定に用いる閾値であり、式(5)のように示される。
【0076】
【0077】
式(5)において、Uniform[0,1]は、[0,1]の区間から均等な確率分布で値を抽出することを示す。したがって、r0は、0≦r0≦1の乱数である。
係数設定部193は、式(4)による判定を行う毎に、r0の値を設定する。
すなわち、係数設定部193は、式(3)~式(5)を参照しながら上述した処理を実行することによって、エネルギー関数値C(X)(すなわち、パラメータ値に関する対象が生じている程度を示す数値)が基準を満たしているか否かに基づき、そのパラメータ値を生成するか否か(仮パラメータ値を採用するか否か)を決定する。上述した例において、パラメータ値を生成するか否かの基準は、前回のパラメータ値に関するエネルギー関数値(パラメータ値に関する対象が生じている程度を示す数値)と異なる値であってもよい。例えば、この基準は、反復回数が増大するにつれ増える値であってもよい。この基準は、複数反復毎に増える値であってもよい。この基準は、I(Iは2以上の自然数とする)回目の反復において(I-1)回目までに算出されたパラメータ値に関するエネルギー関数の平均であってもよい。すなわち、基準は上述した例に限定されない。
【0078】
図12は、サンプリング処理部194が仮にサンプリングしたパラメータ値の第2例を示す図である。
図12のグラフの横軸はパラメータXの値を示し、縦軸は、モデルF(X)の値、および、エネルギー関数C(X)の値を示す。
図2の場合と同じく、線L111は、モデルF(X)の例を示す。線L112は、エネルギー関数C(X)の例を示す。
図11の場合と同様、
図12でも、サンプリング処理部194がパラメータ値X
i(ここでは、iは、i≧2の整数)を算出する際の処理の例を示しており、前回のサンプリングにおけるパラメータ値は、パラメータ値X
i-1である。
【0079】
図11の例ではエネルギー関数値C(X’)がエネルギー関数値C(X
i-1)よりも大きい。これに対し、
図12の例ではエネルギー関数値C(X’)がエネルギー関数値C(X
i-1)よりも小さい。したがって、上述した条件のうち(a)の点で、
図12の場合の方が、
図11の場合よりも、仮サンプリングされたパラメータ値X’がサンプリングとして採用される確率が低い。
【0080】
条件取得部192が、エネルギー関数C(X)に応じた分布でパラメータ値のサンプリングを行う方法は、
図9~
図12を参照して説明した方法に限定されない。例えば、分布決定部191が、逆関数を取得可能なエネルギー関数C(X)を算出し、条件取得部192が、エネルギー関数値に応じたパラメータ値を、そのエネルギー関数の逆関数を用いて決定するようにしてもよい。
【0081】
次に、
図13~
図15を参照して、探索装置100の動作について説明する。
図13は、探索装置100が対象事象の発生条件を検索する処理手順の例を示すフローチャートである。
図13の処理で、分布決定部191は、エネルギー関数C(X)を初期設定する(ステップS111)。パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値(または、対象事象が生じているか否かを示す情報)とが組み合わされたセットが無い場合に、分布決定部191は、例えば、パラメータ値に対して一定な値であるエネルギー関数を算出する。上記のセットが複数存在している場合には、分布決定部191は、複数のセットにおけるパラメータ値と、数値との関係性を算出する。説明の便宜上、複数セットが存在しているものとして、以降の処理を説明する。
【0082】
図15を参照して後述するように、条件取得部192は、複数セットにおける数値を頻度解析することによって、数値(対象事象が生じている程度を示す数値)の区間毎のパラメータ値の頻度(度数)を算出する(
図15のステップS313参照)。
そして、条件取得部192の係数設定部193は、得られた頻度に基づいて、パラメータ値の個数を調整するための重み係数値を区間毎に算出する(
図15のステップS314参照)。
例えば、係数設定部193は、条件取得部192が算出した頻度に基づき、少なくとも一部の区間に関して算出するパラメータの個数を算出する。上述したように、係数設定部193は、頻度が少ない区間におけるパラメータ値の個数と、頻度が多い区間におけるパラメータ値の個数とを揃えるように、区間毎の重み係数値を設定する。言い換えれば、係数設定部193は、パラメータ値の頻度が少ない区間におけるパラメータ値の個数の増加量を、パラメータ値の頻度が多い区間におけるパラメータ値の個数の増加量よりも、より多くさせるように、重み係数値を設定する。係数設定部193は、式(2)~式(5)等を参照しながら説明した処理に従い、パラメータ値の個数(重み係数値)を算出してもよい。
【0083】
条件取得部192のサンプリング処理部194は、分布決定部191が算出したエネルギー関数(すなわち、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値との関係性)を用いて、重み係数値に応じた個数のパラメータ値を算出する(ステップS112)。
そして、条件取得部192は、サンプリングされたパラメータ値の各々を、例えば、モデルF(X)に入力することによって、対象事象が生じている程度を示す数値(または対象事象が発生するか否かを示す情報)を取得する(ステップS113)。条件取得部192は、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値とが組み合わされたセットを生成する。条件取得部192は、生成したパラメータ値の個数分(すなわち、サンプリング数分)のセットを生成する。
【0084】
上述した処理によって、分布決定部191は、モデルF(X)をサロゲート(surrogate)したモデルを算出(学習)している。モデルF(X)は、例えば、パラメータ値に基づきシミュレーションモデルに従いシミュレーションする処理を表す。または、モデルF(X)は、パラメータ値が示す状況を観測することによって、対象事象が生じているか否かを特定する処理を表していてもよい。
【0085】
分布決定部191は、条件取得部192が生成した複数のセットに基づき、複数のセット各々におけるパラメータ値と、数値との関係性を算出する。すなわち、分布決定部191は、条件取得部192が生成した複数セットに基づき、エネルギー関数C(X)を更新する(ステップS114)。
そして、制御部190は、
図13の処理の終了条件が成立したか否かを判定する(ステップS115)。
【0086】
ステップS115での終了条件として、いろいろな条件を用いることができる。例えば、探索装置100の処理時間が所定時間以上となった場合に、制御部190が、終了条件が成立したと判定するようにしてもよい。あるいは、パラメータXの値のサンプリング数が所定数以上となった場合に、制御部190が、終了条件が成立したと判定するようにしてもよい。
【0087】
終了条件が成立していないと制御部190が判定した場合(ステップS115:NO)、処理がステップS112へ戻る。
一方、終了条件が成立していると制御部190が判定した場合(ステップS115:YES)、探索装置100は、探索結果を出力する(ステップS116)。例えば、ステップS113で、対象事象が発生するパラメータ値(F(X)=1となるX)が検出される毎に、条件取得部192の事象発生パラメータ値抽出部195が、そのパラメータ値を記憶部180に記憶させておく。そして、ステップS116では、条件取得部192が、記憶部180に記憶させておいたパラメータ値を読み出し、読み出したパラメータ値を表示部120に表示させる。
ステップS116の後、探索装置100は
図13の処理を終了する。
【0088】
図14は、条件取得部192が、パラメータXの値をサンプリングする処理手順の例を示すフローチャートである。条件取得部192は、
図13のステップS112で
図14の処理を行う。
図14の処理で、係数設定部193は、頻度解析の結果に基づき、区間毎の重み係数値W(R
j)を算出する(ステップS211)。ここでは、jは区間を識別する整数であり、区間の個数をMとして、1≦j≦Mである。
【0089】
次に、サンプリング処理部194は、パラメータ値X1をランダムにサンプリングする(ステップS212)。ステップS212でサンプリングされたパラメータ値X1は、仮サンプリングではなくサンプリングとして採用される。
サンプリング処理部194は、パラメータ値X1をエネルギー関数C(X)に入力してエネルギー関数値C(X1)を算出する(ステップS213)。
【0090】
そして、サンプリング処理部194は、エネルギー関数値C(X
1)が含まれる区間R(C(X
1))に対応する重み係数値W(R(C(X
1)))を取得する(ステップS214)。
また、サンプリング処理部194は、カウンタiの値を2に設定する(ステップS215)。カウンタiは、
図14の処理でのサンプリング数を示すインデックスとして用いられる。すなわち、iの値が2である場合には、ステップS216~ステップS224に示す処理において、2つめのパラメータ値を算出することを表す。
【0091】
次に、サンプリング処理部194は、パラメータ値X’をランダムに仮サンプリングする(ステップS216)。
サンプリング処理部194は、パラメータ値X’をエネルギー関数C(X)に入力してエネルギー関数値C(X’)を算出する(ステップS217)。
そして、サンプリング処理部194は、エネルギー関数値C(X’)に対応する区間(C(X’)が含まれる区間)R(C(X’))を求め、求めた区間R(C(X’))に関する重み係数値W(R(C(X’)))を取得する(ステップS218)。
【0092】
次に、サンプリング処理部194は、式(3)に基づいて仮サンプリングのスコアrを算出する(ステップS219)。
また、サンプリング処理部194は、式(5)に基づいて閾値r0を設定する(ステップS220)。
そして、サンプリング処理部194は、スコアrの値が閾値r0以上か否かを判定する(ステップS221)。
【0093】
スコアrの値が閾値r0未満であるとサンプリング処理部194が判定した場合(ステップS221:NO)、処理がステップS216へ戻る。
一方、スコアrの値が閾値r0以上であるとサンプリング処理部194が判定した場合(ステップS221:YES)、サンプリング処理部194は、仮サンプリングのパラメータ値X’をサンプリングのパラメータ値Xiとして採用する(ステップS222)。具体的には、サンプリング処理部194は、パラメータ値XiをX’に設定し、「エネルギー関数値C(Xi)=C(X’)、C(Xi)」を含んでいる区間R(C(Xi))、および、重み係数値W(R(C(Xi)))を取得する。
【0094】
このように、サンプリング処理部194は、分布決定部191が算出したエネルギー関数値C(Xi)(i≧2)が、どの区間(Rj)に含まれているかを特定する。サンプリング処理部194は、特定した区間(Rj)に関する重み係数値W(Rj)分(または、個数分)のパラメータ値を算出したか否かを判定する。算出した個数が重み係数値W(Rj)に関する条件を満たしていない場合に、サンプリング処理部194は、算出されたパラメータ値をサンプリングとして採用する。算出した個数が重み係数値W(Rj)に関する条件を満たした場合に、サンプリング処理部194は、算出されたパラメータ値をサンプリングとして採用しない。この場合に、重み係数値に関する条件は、例えば、算出したパラメータ値の個数が、係数設定部193が算出した個数を超えるという条件である。重み係数値に関する条件が、例えば、算出したパラメータ値の個数が、係数設定部193が算出した個数以下であるという条件である場合、サンプリング処理部194は、その条件を満たしているときに、算出されたパラメータ値をサンプリングとして採用する処理を実行してもよい。サンプリング処理部194における処理は上述した例に限定されない。
【0095】
次に、サンプリング処理部194は、サンプリング数が上限に到達したか否かを判定する(ステップS223)。具体的には、サンプリング処理部194は、カウンタiの値が所定の閾値imax以上か否かを判定する。
サンプリング数が上限に到達していないとサンプリング処理部194が判定した場合(ステップS223:NO)、サンプリング処理部194は、カウンタiの値を1増加させる(ステップS224)。
ステップS224の後、処理がステップS216へ戻る。
【0096】
一方、ステップS223でサンプリング数が上限に到達したとサンプリング処理部194が判定した場合(ステップS223:YES)、条件取得部192は、
図14の処理を終了する。
【0097】
図15は、係数設定部193がエネルギー関数C(X)の値の区間R(C(X))毎の重み係数値W(R(C(X)))を算出する処理手順の例を示すフローチャートである。係数設定部193は、
図14のステップS211で
図15の処理を行う。
図15の処理で、係数設定部193は、一様分布に基づいてパラメータXの値をサンプリングする(ステップS311)。
【0098】
次に、係数設定部193は、サンプリングしたパラメータ値毎に、エネルギー関数C(X)の値を算出する(ステップS312)。
そして、係数設定部193は、エネルギー関数C(X)の値の度数毎のサンプリング数の度数分布を算出する(ステップS313)。
係数設定部193は、度数分布の区間毎に、式(2)に基づいて重み係数値W(C(R(X)))の値を算出する(ステップS314)。
ステップS314の後、係数設定部193は、
図15の処理を終了する。
【0099】
モデルF(X)の演算を、探索装置とは別の装置が行うようにしてもよい。
図16は、モデルF(X)の演算を探索装置とは別の装置が行う場合の、探索システムの構成例を示す図である。
図16に示す構成で、探索システム1は、探索装置101と、モデル演算装置200とを備える。探索装置101は、通信部110と、表示部120と、操作入力部130と、記憶部180と、制御部190とを備える。制御部190は、分布決定部191と、条件取得部192とを備える。条件取得部192は、係数設定部193と、サンプリング処理部194と、事象発生パラメータ値抽出部195とを備える。モデル演算装置200は、通信部210と、記憶部280と、制御部290とを備える。記憶部280は、モデル記憶部181を備える。
【0100】
図16の各部のうち、
図1の各部に対応して同様の機能を有する部分には、同一の符号(120、130、180、181、190、191、192、193、194、195)を付して説明を省略する。
探索システム1では、モデルF(X)の演算を、探索装置101の外部のモデル演算装置200が行う。このため、モデル記憶部181を、探索装置101側の記憶部180ではなく、モデル演算装置200側の記憶部280が備えている。
【0101】
また、探索装置101は、通信部110を備えている。通信部110は、モデル演算装置200側の通信部210と通信を行う。特に、通信部110は、モデルF(X)の演算のリクエストを通信部210へ送信し、演算結果(モデルF(X)の値)のレスポンスを受信する。
従って、制御部190は、モデルF(X)の演算を行う必要がない。
それ以外の点については、探索装置101は、探索装置100(
図1)と同様である。
【0102】
モデル演算装置200は、モデルF(X)の演算を行う。例えば、モデル演算装置200が、パラメータ値Xが示す条件(状況)において対象事象が生じる程度(対象事象の発生の有無でもよい)の計算をシミュレーションにて実行するようにしてもよい。
モデル演算装置200は、例えばパソコンまたはワークステーション等のコンピュータを用いて構成される。
【0103】
通信部210は、探索装置101側の通信部110と通信を行う。上記のように、通信部210は、通信部110からの、モデルF(X)の演算のリクエストを受信し、演算結果(モデルF(X)の値)のレスポンスを通信部110へ送信する。
記憶部280は、各種データを記憶する。特に、記憶部280のモデル記憶部181は、上記のようにモデルF(X)を記憶する。記憶部280は、モデル演算装置200が備える記憶デバイスを用いて構成される。
【0104】
制御部290は、モデル演算装置200の各部を制御して各種処理を実行する。特に、モデル演算装置200は、通信部210が受信するリクエストに示されるパラメータ値を、モデル記憶部181が記憶するモデルF(X)に適用し、対象事象が生じる程度(対象事象の発生の有無でもよい)の演算結果を取得する。制御部290は、通信部210を制御して、演算結果をレスポンスとして通信部110へ送信させる。
制御部290は、モデル演算装置200が備えるCPUが記憶部280からプログラムを読み出して実行することで構成される。
このように、モデル演算装置200がモデルF(X)の演算を行うことで、探索装置101は、モデルF(X)の演算を行う必要がない。この点で、探索装置101の負荷が軽くて済む。
【0105】
以上のように、分布決定部191は、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値とが組み合わされた複数のセットに関して、パラメータ値と、数値との間の関係性を算出する。係数設定部193は、数値がとり得る範囲を分割した区間毎に、数値がその区間に含まれる頻度を算出する。また、係数設定部193は、少なくとも一部の区間に対して、算出した頻度を用いて、頻度が少ない区間ほど、数値の算出対象となるパラメータ値の個数をより増加させるように、パラメータ値の個数に関する設定を行う。サンプリング処理部194は、パラメータ値の個数に関する設定に基づいてパラメータ値を設定する。
【0106】
探索装置100によれば、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値との間の関係性(例えば、エネルギー関数)に基づいてパラメータ値の設定を行うことで、上記のように、対象事象が生じる領域およびその周辺に比較的多くのパラメータを設定することができ、対象事象が生じる状況を効率的に探索することができる。
このように、探索装置100によれば、探索の手掛かりとなる情報を予め得られていない場合であっても、対象事象が生じる状況を効率的に探索することができる。
【0107】
また、分布決定部191は、対象事象が生じる程度を算出する。
これにより、分布決定部191は、算出した対象事象が生じる程度を用いて、上記の関係性を算出することができる。
また、分布決定部191が、上述したエネルギー関数のように対象事象が生じる程度を3値以上で、あるいは連続的に算出することで、サンプリング処理部194によるパラメータ値の設定の分布のピークに裾野を持たせることができ、この点で、対象事象が発生する条件の境界を検出し易くなる。
【0108】
また、係数設定部193は、数値が区間に含まれる頻度と所望の頻度との差異を求め、求めた差異に応じてパラメータ値の個数に関する設定(例えば、重み係数値の設定)を行う。
サンプリング処理部194が、この設定に基づいてパラメータ値を設定することで、上記のように、対象事象が生じる領域およびその周辺に比較的多くのパラメータを設定することができ、対象事象が生じる状況を効率的に探索することができる。
このように、探索装置100によれば、探索の手掛かりとなる情報を予め得られていない場合であっても、対象事象が生じる状況を効率的に探索することができる。
【0109】
また、サンプリング処理部194は、パラメータ値を仮設定し、パラメータ値と、数値(そのパラメータ値の場合に対象事象が生じている程度を示す数値)との間の関係性を用いて算出した、そのパラメータ値に関する数値が基準を満たしているか否かに基づき、そのパラメータ値の設定を採用するか否かを決定する。
これにより、サンプリング処理部194が、仮設定したパラメータ値を採用するか否かを決定することで、パラメータ値をランダムに設定するなど、パラメータ値の仮設定を比較的簡易に行うことができる。この点で、サンプリング処理部194の負荷が比較的軽くなる。
【0110】
また、係数設定部193は、数値(そのパラメータ値の場合に対象事象が生じている程度を示す数値)がとり得る範囲を分割した区間毎に、数値がその区間に含まれる頻度に基づき、その区間におけるパラメータ値の個数を調整するための係数値(重み係数値)を算出する。サンプリング処理部194は、係数設定部193が算出した係数値に基づいて、パラメータ値を設定する。
これにより、サンプリング処理部194は、この係数値に基づいて、対象事象が生じる領域およびその周辺に比較的多くのパラメータを設定することができ、探索装置100は、対象事象が生じる状況を効率的に探索することができる。
このように、探索装置100によれば、探索の手掛かりとなる情報を予め得られていない場合であっても、対象事象が生じる状況を効率的に探索することができる。
【0111】
また、係数設定部193は、区間(数値(そのパラメータ値の場合に対象事象が生じている程度を示す数値)がとり得る範囲を分割した区間)に関して頻度の逆数に応じた前記係数値を算出する。係数値の大きさは、その区間についてサンプリング処理部194が設定するパラメータ値の個数の多さの程度を示す。
これにより、係数設定部193は、頻度(度数)の逆数を算出する等の比較的簡単な計算で係数値を算出することができる。この点で、係数設定部193の負荷が比較的軽くなる。
【0112】
次に、
図17を参照して、本発明の実施形態の構成例について説明する。
図17は、実施形態に係る事象発生探索装置の構成の例を示す図である。
図17に示す構成で、探索装置10は、関係性算出部11と、頻度算出部12と、個数関連情報設定部13と、パラメータ値設定実行部14とを備える。
かかる構成にて、関係性算出部11は、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値とが組み合わされた複数のセットに関して、パラメータ値と数値との間の関係性を算出する。頻度算出部12は、数値(対象事象が生じている程度を示す数値)がとり得る範囲を分割した区間毎に、数値がその区間に含まれる頻度を算出する。個数関連情報設定部13は、少なくとも一部の区間に対して、頻度を用いて、頻度が少ない区間ほど、数値の算出対象となる前記パラメータ値の個数をより増加させるように、パラメータ値の個数に関する設定を行う。パラメータ値設定実行部14は、パラメータ値の個数に関する設定に基づいてパラメータ値を設定する。
【0113】
探索装置10によれば、パラメータ値と、そのパラメータ値の場合に対象事象が生じている程度を示す数値との間の関係性(例えば、エネルギー関数)に基づいてパラメータ値の設定を行うことで、上記のように、対象事象が生じる領域およびその周辺に比較的多くのパラメータを設定することができ、対象事象が生じる状況を効率的に探索することができる。
このように、探索装置10によれば、探索の手掛かりとなる情報を予め得られていない場合であっても、対象事象が生じる状況を効率的に探索することができる。
【0114】
また、探索装置10は、例えば、あるたんぱく質に特異的に結合する化合物を特定する特定装置(例えば、ハイスループットスクリーニング(High Throughput Screening;HTS)装置)における動作を制御してもよい。この特定装置は、探索装置10が出力した情報に従い動作することによって、たとえば、数百万個の化合物のうち少数の化合物のみを実験することによって、そのあるたんぱく質に特異的に結合する化合物を効率的に特定することができる。あるいは、特定装置10は、たとえば、非破壊検査を行う検査装置における動作を制御してもよい。この検査装置は、探索装置10が出力した情報に従い動作することによって、たとえば、不具合が生じる状況にて生産された一連の製品の不具合を、製品を解析することなく、低い処理コストにて検知することができる。探索装置10が制御する装置は、上述した例に限定されない。
【0115】
なお、制御部190が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0116】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0117】
この出願は、2019年1月24日に出願された日本国特願2019-010663を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0118】
本発明は、探索装置、探索システム、探索方法および記録媒体に適用してもよい。
【符号の説明】
【0119】
1 探索システム
10、100 探索装置
11 関係性取得部(関係性取得手段)
12 頻度算出部(頻度算出手段)
13 個数関連情報設定部(個数設定手段)
14 パラメータ値設定実行部(パラメータ設定手段)
110、210 通信部(通信手段)
120 表示部(表示手段)
130 操作入力部(操作入力手段)
180、280 記憶部(記憶手段)
181 モデル記憶部(モデル記憶手段)
190、290 制御部(制御手段)
191 分布決定部(分布決定手段)
192 条件取得部(条件取得手段)
193 係数設定部(係数設定手段)
194 サンプリング処理部(サンプリング処理手段)
195 事象発生パラメータ値抽出部(事象発生パラメータ値抽出手段)
200 モデル演算装置