(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023120790
(43)【公開日】2023-08-30
(54)【発明の名称】生成装置、生成方法、および生成プログラム
(51)【国際特許分類】
G06N 99/00 20190101AFI20230823BHJP
【FI】
G06N99/00 180
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022023849
(22)【出願日】2022-02-18
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】難波 博之
(72)【発明者】
【氏名】濱本 真生
(72)【発明者】
【氏名】恵木 正史
(57)【要約】
【課題】予測規則とユーザの知識との整合性の向上を図ること。
【解決手段】生成装置は、プログラムを実行するプロセッサと、プログラムを記憶する記憶デバイスと、を有し、説明変数の値と目的変数の値との組み合わせである学習データの集合と、物理法則を示す関数および関数の属性のうち少なくとも関数を含む関数系リストと、関数系リストの探索範囲を限定する探索範囲限定情報と、にアクセス可能であり、プロセッサは、関数系リスト内の第1関数に説明変数の第1パラメータを設定することにより第1予測式を生成する第1生成処理と、探索範囲限定情報に基づいて、第1生成処理によって生成された第1予測式に関する第1納得度を算出する第1算出処理と、第1予測式と、第1算出処理によって算出された第1納得度と、を出力する第1出力処理と、を実行する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する生成装置であって、
説明変数の値と目的変数の値との組み合わせである学習データの集合と、物理法則を示す関数および前記関数の属性のうち少なくとも前記関数を含む関数系リストと、前記関数系リストの探索範囲を限定する探索範囲限定情報と、にアクセス可能であり、
前記プロセッサは、
前記関数系リスト内の第1関数に前記説明変数の第1パラメータを設定することにより第1予測式を生成する第1生成処理と、
前記探索範囲限定情報に基づいて、前記第1生成処理によって生成された第1予測式に関する第1納得度を算出する第1算出処理と、
前記第1予測式と、前記第1算出処理によって算出された第1納得度と、を出力する第1出力処理と、
を実行することを特徴とする生成装置。
【請求項2】
請求項1に記載の生成装置であって、
前記探索範囲限定情報は、前記関数系リスト内の特定の関数であり、
前記第1算出処理では、前記プロセッサは、前記特定の関数と、前記第1予測式の前記第1関数と、に基づいて、前記第1納得度を算出する、
ことを特徴とする生成装置。
【請求項3】
請求項1に記載の生成装置であって、
前記関数系リストは、前記関数の属性を含み、
前記探索範囲限定情報は、前記関数系リスト内の特定の属性であり、
前記第1算出処理では、前記プロセッサは、前記特定の属性と、前記第1予測式の前記第1関数の属性と、に基づいて、前記第1納得度を算出する、
ことを特徴とする生成装置。
【請求項4】
請求項3に記載の生成装置であって、
前記第1出力処理では、前記プロセッサは、前記特定の属性を出力する、
ことを特徴とする生成装置。
【請求項5】
請求項1に記載の生成装置であって、
前記探索範囲限定情報は、前記説明変数の値の範囲と、前記範囲で成立する理論式と、であり、
前記第1算出処理では、前記プロセッサは、前記説明変数の値の範囲に該当する特定の学習データを前記学習データの集合から取得し、前記特定の学習データを用いて、前記第1予測式と前記理論式との類似度を前記第1納得度として算出する、
ことを特徴とする生成装置。
【請求項6】
請求項5に記載の生成装置であって、
前記第1算出処理では、前記プロセッサは、前記特定の学習データが入力された前記第1予測式および前記理論式をそれぞれテイラー展開し、前記第1予測式のテイラー展開から得られた係数と、前記理論式のテイラー展開から得られた係数と、の類似度を、前記第1納得度として算出する、
ことを特徴とする生成装置。
【請求項7】
請求項6に記載の生成装置であって、
前記第1出力処理では、前記プロセッサは、前記第1予測式のテイラー展開から得られた係数と、前記理論式のテイラー展開から得られた係数と、を出力する、
ことを特徴とする生成装置。
【請求項8】
請求項1に記載の生成装置であって、
前記プロセッサは、
前記第1予測式に前記説明変数の値を入力することにより算出される予測値と前記目的変数の値とにより得られる前記第1予測式の精度と、前記第1納得度と、に基づいて、前記第1予測式の目的関数を算出し、前記目的関数に基づいて前記第1パラメータを更新する第1最適化処理を実行し、
前記第1生成処理では、前記プロセッサは、前記第1関数に前記第1最適化処理による更新後の第1パラメータを設定することにより前記第1予測式を更新し、
前記第1算出処理では、前記プロセッサは、前記探索範囲限定情報に基づいて、前記第1生成処理によって生成された更新後の第1予測式に関する第1納得度を算出し、
前記第1出力処理では、前記プロセッサは、前記更新後の第1予測式と、前記更新後の第1予測式に関する第1納得度と、を出力する、
ことを特徴とする生成装置。
【請求項9】
請求項8に記載の生成装置であって、
前記プロセッサは、
前記目的関数が所定の条件を満たすまで、前記第1生成処理および前記第1算出処理を繰り返し実行する、
ことを特徴とする生成装置。
【請求項10】
請求項8に記載の生成装置であって、
前記第1出力処理では、前記プロセッサは、前記目的関数が所定の条件を満たした場合、前記更新後の第1予測式と、前記更新後の第1予測式に関する第1納得度と、を出力する、
ことを特徴とする生成装置。
【請求項11】
請求項1に記載の生成装置であって、
前記第1出力処理では、前記プロセッサは、前記第1予測式の複雑さを出力する、
ことを特徴とする生成装置。
【請求項12】
請求項11に記載の生成装置であって、
前記第1予測式の複雑さは、前記第1パラメータの個数である、
ことを特徴とする生成装置。
【請求項13】
請求項1に記載の生成装置であって、
前記プロセッサは、
前記関数系リスト内の第2関数に前記説明変数の第2パラメータを設定することにより、第2予測式を生成する第2生成処理と、
前記探索範囲限定情報に基づいて、前記生成処理によって生成された第2予測式に関する第2納得度を算出する第2算出処理と、
前記第1予測式と前記第2予測式とを含む多項式と、前記第2算出処理によって算出された第2納得度と、を出力する第2出力処理と、
を実行することを特徴とする生成装置。
【請求項14】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する生成装置による生成方法であって、
前記生成装置は、説明変数の値と目的変数の値との組み合わせである学習データの集合と、物理法則を示す関数および前記関数の属性のうち少なくとも前記関数を含む関数系リストと、前記関数系リストの探索範囲を限定する探索範囲限定情報と、にアクセス可能であり、
前記プロセッサは、
前記関数系リスト内の第1関数に前記説明変数の第1パラメータを設定することにより第1予測式を生成する第1生成処理と、
前記探索範囲限定情報に基づいて、前記第1生成処理によって生成された第1予測式に関する第1納得度を算出する第1算出処理と、
前記第1予測式と、前記第1算出処理によって算出された第1納得度と、を出力する第1出力処理と、
を実行することを特徴とする生成方法。
【請求項15】
データを予測する規則の生成をプロセッサに実行させる生成プログラムであって、
前記プロセッサは、説明変数の値と目的変数の値との組み合わせである学習データの集合と、物理法則を示す関数および前記関数の属性のうち少なくとも前記関数を含む関数系リストと、前記関数系リストの探索範囲を限定する探索範囲限定情報と、にアクセス可能であり、
前記プロセッサに、
前記関数系リスト内の第1関数に前記説明変数の第1パラメータを設定することにより第1予測式を生成する第1生成処理と、
前記探索範囲限定情報に基づいて、前記第1生成処理によって生成された第1予測式に関する第1納得度を算出する第1算出処理と、
前記第1予測式と、前記第1算出処理によって算出された第1納得度と、を出力する第1出力処理と、
を実行させることを特徴とする生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを予測する規則を生成する生成装置、生成方法、および生成プログラムに関する。
【背景技術】
【0002】
分類問題または回帰問題において、予測規則を専門家の知識と整合させたいという課題が挙げられる。たとえば、製造条件や製造方法に関するデータにもとづいて製造された製造物の強度を予測するシステムにおいて、予測規則が専門家の知識と整合していないと、システムを信頼して導入することができない。専門家の知識としては、たとえば、特定の説明変数と強度は比例するという物理特性である。この課題に関連する技術として、たとえば、特許文献1および非特許文献1がある。
【0003】
特許文献1の診断支援装置は、識別部、アルゴリズム変更部、及び再識別部を備える。識別部は、医用情報を入力として識別処理を実行することで、第1識別結果と、当該結果に至った第1識別理由とを出力する。アルゴリズム変更部は、前記第1識別理由の拒絶指示に応じ、前記第1識別理由が出力されないように、前記識別処理のアルゴリズムを変更する。再識別部は、前記医用情報を入力としてアルゴリズム変更後の識別処理を実行することで、第2識別結果と、当該結果に至った第2識別理由とを出力する。非特許文献1は、単純で専門家に理解可能な関数の中でデータに最も適合するものを効率的に探す技術である。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【非特許文献1】Crabbe, J., Zhang, Y., Zame, W., & van der Schaar, M. (2020). Learning outside the Black-Box: The pursuit of interpretable models. In Neural Information Processing Systems (NeurIPS’20), volume 33, 17838-17849.
【発明の概要】
【発明が解決しようとする課題】
【0006】
分類問題または回帰問題における学習モデル、すなわち予測規則について、高精度かつ単純であっても、ユーザの知識に整合しないために信頼できない場合がある。
【0007】
本発明は、予測規則とユーザの知識との整合性の向上を図ることを目的とする。
【課題を解決するための手段】
【0008】
本願において開示される発明の一側面となる生成装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する生成装置であって、説明変数の値と目的変数の値との組み合わせである学習データの集合と、物理法則を示す関数および前記関数の属性のうち少なくとも前記関数を含む関数系リストと、前記関数系リストの探索範囲を限定する探索範囲限定情報と、にアクセス可能であり、前記プロセッサは、前記関数系リスト内の第1関数に前記説明変数の第1パラメータを設定することにより第1予測式を生成する第1生成処理と、前記探索範囲限定情報に基づいて、前記第1生成処理によって生成された第1予測式に関する第1納得度を算出する第1算出処理と、前記第1予測式と、前記第1算出処理によって算出された第1納得度と、を出力する第1出力処理と、を実行することを特徴とする。
【発明の効果】
【0009】
本発明の代表的な実施の形態によれば、予測規則とユーザの知識との整合性の向上を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、コンピュータのハードウェア構成例を示すブロック図である。
【
図2】
図2は、実施例1における学習DBの一例を示す説明図である。
【
図3】
図3は、実施例1における関数系リストの一例を示す説明図である。
【
図4】
図4は、実施例1における探索範囲限定情報の一例を示す説明図である。
【
図5】
図5は、実施例1における予測規則生成システムのシステム構成例を示すブロック図である。
【
図6】
図6は、クライアント端末における入力画面の一例を示す説明図である。
【
図7】
図7は、候補式リストの一例を示す説明図である。
【
図8】
図8は、クライアント端末上での表示画面の一例を示す説明図である。
【
図9】
図9は、最適化部および納得度算出部による最適化処理手順例を示すフローチャートである。
【
図10】
図10は、探索範囲限定情報の生成例を示す説明図である。
【
図11】
図11は、探索範囲限定情報の納得度計算処理手順例(ステップS904)を示すフローチャートである。
【発明を実施するための形態】
【実施例0011】
<コンピュータのハードウェア構成例>
図1は、コンピュータのハードウェア構成例を示すブロック図である。コンピュータ100は、プロセッサ101と、記憶デバイス102と、入力デバイス103と、出力デバイス104と、通信インターフェース(通信IF)105と、を有する。プロセッサ101、記憶デバイス102、入力デバイス103、出力デバイス104、および通信IF105は、バス106により接続される。プロセッサ101は、コンピュータ100を制御する。記憶デバイス102は、プロセッサ101の作業エリアとなる。また、記憶デバイス102は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス102としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス103は、データを入力する。入力デバイス103としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス104は、データを出力する。出力デバイス104としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF105は、ネットワークと接続し、データを送受信する。
【0012】
<学習データ>
図2は、実施例1における学習DBの一例を示す説明図である。学習DB200は、1つ以上の説明変数(
図2では、例として、製造日201、水202、セメント203の3つ)と1つの目的変数(
図2では、例として、強度204の1つ)とを含む。たとえば、学習DB200の各エントリは、コンクリートを製造した際の製造条件、製造方法、製造結果として、説明変数X1~X3を表す製造日201、水202、セメント203と、目的変数Yを表す強度204を有する学習データである。
図2では、説明変数を3個としたが、1個以上であればよい。なお、説明変数X1~X3を区別しない場合は、説明変数Xと表記する。
【0013】
製造日201は、コンクリートを製造した年月日である。水202は、製造日201に用いた水量である。セメント203は、製造日201に用いたセメント量である。強度204は、製造日201に製造されたコンクリートの強さを示す数値である。
【0014】
学習DB200のエントリ211~216のうち1行目のエントリ211は、製造日201が「2021年9月1日」で、水202が「100[kg]」、セメント203が「500[kg]」という条件で製造されたコンクリートの強度204が「80[MPa]」であったことを表す。実施例1において、目的変数Yは連続値としたが、たとえば、強度204が十分強いか否かを表す2値(1または0)としてもよい。
【0015】
<関数系リスト>
図3は、実施例1における関数系リストの一例を示す説明図である。関数系リスト300は、関数系301とタグ302とのうち少なくとも関数系301を含む行のリストである。ここで、関数系301とは、物理法則を示す関数の集合である。関数は、たとえば、(Y=)X、(Y=)sinXなど微分可能な1変数関数である。1つの関数系301にタグ302は0個以上ある。タグ302は、関数系301に付与された属性である。
【0016】
タグ302の例としては、その関数系301が電磁波や電気回路に関する方程式の解になりうることを表す「電気」などが挙げられる。たとえば、2行目のエントリでは、「sin X」という関数系301に「電気」というタグ302が付与されていることを示す。関数系リスト300は、あらかじめコンピュータ100に記憶される。また、関数系リスト300は、ユーザの操作入力により設定されてもよい。
【0017】
<探索範囲限定情報>
図4は、実施例1における探索範囲限定情報の一例を示す説明図である。探索範囲限定情報400は、予測式の探索範囲を限定する情報であり、ユーザからの入力情報により生成される。探索範囲限定情報400は、タイプ401と要素402と納得の程度403を含む行のリストである。ここで、タイプ401とは、関数系301、タグ302、理論式のいずれかである。理論式については、実施例2で後述する。
【0018】
要素402は、タイプ401で特定される関数系301およびタグ302の関数系リスト300における値である。1行目のエントリでは、タイプ401が関数系301であり、その要素402は、「X」(関数系リスト300の1行目のエントリにおける関数系301の値)である。また、2行目のエントリでは、タイプ401がタグ302であり、その要素402は、「化学」(関数系リスト300の1行目のエントリにおけるタグ302の値)である。
【0019】
納得の程度403は、タイプ401が要素402であることについてユーザがどのくらい納得しているかを示す実数値である。実数値が大きいほどユーザは納得していることを示す。1行目のエントリは、タイプ401である関数系301の要素402が、「(Y=)X」であることについて、納得の程度403が「1」であることを示している。また、2行目のエントリは、タイプ401であるタグ302の要素402が、「化学」であることについて、納得の程度403が「1」であることを示している。すなわち、
図4の場合は、関数系301が「(Y=)X」であることおよびタグ302が「化学」であることが、同程度に納得できることを表す。
【0020】
なお、納得の程度403は、「1」以外の値でも設定可能である。ユーザは、納得の程度403を自由に設定することができる。なお、いずれのタイプ401および要素402の組み合わせについても納得の程度403を固定値(たとえば、「1」)にする場合は、納得の程度403の列は存在しなくてもよい。ただし、コンピュータ100は、いずれのタイプ401および要素402の組み合わせについても、納得の程度403を固定値として、後述する納得度の計算に用いる。
【0021】
<予測規則>
予測規則とは、たとえば、強度204のようなデータを予測する規則であり、説明変数Xを入力すると目的変数Yの予測値yを計算する下記式(1)で表現される。
【0022】
y=0.1x2+0.14x3+5・・・(1)
【0023】
たとえば、
図2に示す学習DB200の1行目のエントリの説明変数X2(=100)をx2に、X3(=)500をx3に入力したときの目的変数Yの予測値yは、「85」となる。
【0024】
<予測規則生成システム>
図5は、実施例1における予測規則生成システムのシステム構成例を示すブロック図である。予測規則生成システム500は、1以上のクライアント端末501と、DB(データベース)サーバ502と、予測規則生成装置503と、を有する。クライアント端末501、DBサーバ502および予測規則生成装置503とは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などのネットワーク504を介して通信可能に接続される。クライアント端末501、DBサーバ502、および予測規則生成装置503は、
図1に示したコンピュータ100により実現される。
【0025】
DBサーバ502は、学習DB200および関数系リスト300を記憶する。学習DB200および関数系リスト300は、予測規則生成装置503に記憶されていてもよい。
【0026】
予測規則生成装置503は、データ取得部531と、予測規則生成部532と、画面生成部533と、を有する。予測規則生成部532は、最適化部541と納得度算出部542とを有する。データ取得部531、予測規則生成部532、画面生成部533は、具体的には、たとえば、
図1に示した記憶デバイス102に記憶されたプログラムをプロセッサ101に実行させることにより実現される機能である。
【0027】
データ取得部531は、クライアント端末501からの入力を契機として起動するプログラムである。データ取得部531は、DBサーバ502にアクセスして、DBサーバ502から学習DB200および関数系リスト300を取得し、記憶デバイス102に記憶する。また、データ取得部531は、クライアント端末501から画面を通じて入力された情報を取得して探索範囲限定情報400に変換し、記憶デバイス102に記憶する。
【0028】
図6は、クライアント端末501における入力画面の一例を示す説明図である。
図6に示すように、ユーザはクライアント端末501の入力画面600から、どのような予測式が納得できるかを、3通りの方法のうち1つ以上の方法で指定可能である。第1の方法は、関数系301のみを指定する方法である。入力画面600には、
図6の左部分に示すように、関数系リスト300に含まれる関数系一覧601が表示され、ユーザは納得できる関数系301を1つ以上チェックボックスで選択可能である。チェックボックスのかわりに、どれくらい納得できるかを表す実数値を入力するフォームでもよい。
【0029】
第2の方法は、タグ302のみを指定する方法である。入力画面600には、
図6の中央部に示すように、関数系リスト300に含まれるタグ一覧602が表示され、ユーザは納得できるタグ302を1つ以上チェックボックスで入力する。チェックボックスのかわりに、どれくらい納得できるかを表す実数値を入力するフォームでもよい。第3の方法は、関数系301およびタグ302を指定する方法である。この方法では、関数系301およびタグ302のいずれか一方でも予測式に該当すれば、後述する納得度が上昇する。したがって、第1の方法および第2の方法に比べ、納得度の上昇頻度が向上するため、予測式の最適化の高速化を図ることができる。第4の方法は、理論式のみを入力する方法であり、第5の方法は理論式およびタグ302を入力する方法であるが、詳細は実施例2で述べる。
【0030】
実施例1においては、ユーザは理論式を入力せず、先述の2通りの方法のいずれかで納得できる予測式を指定するものとする。ユーザが、1つ以上の方法で納得できる予測式を指定した後、探索開始ボタン610を押すと、データ取得部531が起動する。
【0031】
つぎに、ユーザ入力情報を探索範囲限定情報400に変換する方法の例を述べる。まず、探索範囲限定情報400の初期値は空である。ユーザが納得できる関数系301をチェックボックスで指定した場合、データ取得部531は、{タイプ401:「関数系」、要素402:チェックボックスで指定された関数系301、納得の程度403:1(デフォルト)}というエントリを探索範囲限定情報400に追加する。
【0032】
たとえば、ユーザが関数系一覧601から「X」という関数系301のみをチェックボックスで指定した場合、
図4の1行目のエントリのように、{タイプ401:「関数系」、要素402:X、納得の程度403:1(デフォルト)}が追加される。チェックボックスではなく、どれくらい納得できるかを表す実数値が入力画面600から入力された場合、その実数値が納得の程度403として当該エントリに設定される。
【0033】
ユーザが納得できるタグ302のみをタグ一覧602からチェックボックスで指定した場合、データ取得部531は、{タイプ401:「タグ」、要素402:チェックボックスで指定されたタグ302、納得の程度403:1(デフォルト)}というエントリを探索範囲限定情報400に追加する。
【0034】
たとえば、ユーザが「化学」というタグ302のみを指定した場合、
図4の2行目のエントリように、{タイプ401:「タグ」、要素402:化学、納得の程度403:1(デフォルト)}が追加される。チェックボックスではなく、どれくらい納得できるかを表す実数値が入力された場合、その実数値が納得の程度403として当該エントリに設定される。
【0035】
予測規則生成部532は、学習DB200、関数系リスト300および探索範囲限定情報400に基づいて、候補式リストを生成する。候補式リストは、1つ以上の予測式の候補と、各候補の補助情報と、を含む。
【0036】
図7は、候補式リストの一例を示す説明図である。候補式リスト700は、候補番号701と、予測式702と、精度703と、複雑さ704と、納得度705と、タグ706と、を有する。精度703、複雑さ704、納得度705およびタグ706が、候補番号701で指定された予測式702の補助情報である。
【0037】
精度703とは、予測式702の出力と学習データの目的変数Yがどれくらいズレてるかを表す指標であり、たとえば、二乗誤差が用いられる。すなわち、二乗誤差が小さいほど精度703が良いことを示す。複雑さ704とは、予測式702の複雑さを表す指標であり、たとえば、予測式702のパラメータの個数を用いる。たとえば、2行目のエントリの予測式702には、「255」、「0.00043」、「0.3」、および「28」という4つのパラメータがあるため、複雑さ704は、「4」である。
【0038】
また、納得度705とは、予測式702に関するスコアである。具体的には、たとえば、納得度705とは、ユーザが予測式702をどれくらい納得できるかを評価する指標値であり、探索範囲限定情報400に基づいて計算される。たとえば、ある予測式702の納得度705が他の予測式702の納得度705よりも大きければ、ユーザは、他の予測式702よりも当該ある予測式702のほうが納得することを示す。タグ706は、関数系リスト300から決定されるタグ302である。具体的な予測式702の候補の決定方法と補助情報の計算方法については後述する。
図7では、出力対象となる予測式702の候補数を2としたが、候補数は事前に定数として予測規則生成装置503で決めておいてもよいし、ユーザがクライアント端末501を通じて予測規則生成装置503に指定してもよい。
【0039】
最適化部541は、学習DB200を用いて、精度703と納得度705を考慮し、かつ、目的関数Lを最大にするような予測式702の候補を複数計算して、候補式リスト700を出力する。
【0040】
納得度算出部542は、探索中の予測式702をもとにその納得度705を算出する。探索中の予測式702は、最適化部541より入力される。また、算出した納得度705は、最適化部541の最適化において活用される。納得度705の算出方法の例を述べる。
【0041】
まず、納得度算出部542は、納得度705の初期値を0とする。そして、探索範囲限定情報400の各行Rに対して、以下の処理を行う。行Rのタイプ401が関数系301である場合、探索中の予測式702と探索範囲限定情報400の行Rの要素402が同じ関数系301であるなら、探索範囲限定情報400の行Rの納得の程度403の値を現在の納得度705に加算する。
【0042】
たとえば、探索中の予測式702がy=x1である場合、
図4の探索範囲限定情報400の1行目の要素402であるY=Xに該当する。したがって、納得度算出部542は、納得度705に、納得の程度403の値「1」を加算する。
【0043】
また、行Rのタイプ401がタグ302である場合、納得度算出部542は、行Rの要素402が、探索中の予測式702に対応するタグ706に含まれるかどうかを判定する。含まれる場合、納得度算出部542は、行Rの納得の程度403の値を現在の納得度705に加算する。
【0044】
その際、納得度算出部542は、探索中の予測式702に対応するタグ706を、関数系リスト300から特定する。たとえば、探索中の予測式702がy=x1であり、
図4の探索範囲限定情報400のR=2行目のエントリを処理する状況を考える。この場合、行R=2の要素402である「化学」というタグ302が、関数系リスト300における関数系301の「X」に対応するタグ302に該当する。
【0045】
したがって、納得度算出部542は、探索中の予測式702の納得度705に、行R=2の要素402(化学)の納得の程度403の値「1」を加算する。そして、納得度算出部542は、探索中の予測式702のタグ706に、関数系301の「X」に対応するタグ302である「化学」を設定する。なお、行Rのタイプ401が理論式である場合の処理は実施例2で述べる。
【0046】
画面生成部533は、候補式リスト700をクライアント端末501上の画面で表示できるような形式に変換する。
【0047】
図8は、クライアント端末501上での表示画面の一例を示す説明図である。表示画面800は、候補式リスト700と、候補番号入力フォーム801と、探索終了ボタン802と、精度改善ボタン803と、改善結果804と、を表示する。
【0048】
候補番号入力フォーム801は、候補番号701の入力を受け付ける欄である。探索終了ボタン802は、候補番号入力フォーム801に入力された候補番号701の予測式702の探索を終了させるためのユーザインタフェースである。精度改善ボタン803は、候補番号入力フォーム801に入力された候補番号701のエントリの修正を反映するためのユーザインタフェースである。改善結果804は、精度改善ボタン803の押下を契機として表示される修正後の候補式リスト700である。
【0049】
たとえば、ユーザは、精度703および納得度705ともに満足できる予測式702が候補式リスト700にあれば、その候補番号701を候補番号入力フォーム801に入力して探索終了ボタン802を押下する。
【0050】
また、ユーザは、予測式702には納得できるが精度703が不十分な予測式702が候補式リスト700にあれば、その候補番号701を入力して精度改善ボタン803を押下する。精度改善時の処理方法は後述する。これを契機として、再度、予測規則生成装置503の各処理が実行され、その結果が、新たな候補式リスト700がクライアント端末501上の画面で表示される。
【0051】
<最適化処理手順>
図9は、最適化部541および納得度算出部542による最適化処理手順例を示すフローチャートである。ステップS404、S405のみが納得度算出部542が実行する処理であり、詳細は先述のとおりである。ステップS404、S405以外は最適化部541が実行する処理であり、以下で詳細を述べる。
【0052】
最適化部541は、関数系リスト300から未選択のエントリを選択する(ステップS)。最適化部541は、関数系リスト300からの選択エントリについて、予測式702の初期値を設定する(ステップS902)。最適化部541は、関数系リスト300からの選択エントリについて、誤差関数を計算し、精度703を設定する(ステップS903)。
【0053】
納得度算出部542は、上述したように、関数系リスト300からの選択エントリについて、納得度705を計算する(ステップS904)。納得度算出部542は、上述したように、関数系リスト300からの選択エントリについて、タグ706を設定する(ステップS905)。
【0054】
最適化部541は、終了条件を満たすか否かを判断し(ステップS906)、終了条件を満たさない場合(ステップS906:No)、探索する誤差関数を更新して(ステップS907)、ステップS903に戻る。一方、終了条件を満たす場合(ステップS906:Yes)、最適化部541は、関数系リスト300に未選択のエントリが残存するか否かを判断する(ステップS907)。
【0055】
未選択のエントリが残存する場合は、ステップS901に戻る。未選択のエントリが残存しない場合は、最適化部541は、最適化結果をクライアント端末501に出力する(ステップS909)。これにより、一連の処理が終了する。以下、各ステップについて詳細に説明する。
【0056】
ステップS901~S907の目的は、選択エントリの関数系301に属する関数の中で、精度703および納得度705について最適な関数を計算することである。ここで、選択エントリの関数系301に属する関数とは、選択エントリの関数系301を示す関数F(X)のXに、説明変数Xの1次関数を入力して定数倍したwF(a1x1+a2x2+…+anxn+b)という形で表せる関数のことである。
【0057】
たとえば、選択エントリの関数系301が「sinX」であり、説明変数Xがx1,x2,x3の3つである場合、最適化部541は、wsin(a1x1+a2x2+a3x3+b)という形の関数の中で最適な関数を探索する。
【0058】
ここで、p=(w,a1,a2,…,an,b)は実数であり、最適化の変数である。パラメータpを決めると、予測式702のwF(a1x1+a2x2+…+anxn+b)が決まるため、以下では、パラメータpのことを予測式702と呼ぶ場合がある。関数系リスト300の各関数系301は微分可能であるため、たとえば、勾配法を用いて最適化することができる。
【0059】
具体的には、まず、最適化部541は、ステップS902でパラメータpの初期値を定める。たとえば、最適化部541は、パラメータpの初期値p0をp0=(w,a1,a2,…,an,b)=(1,1,1,…,1,0)に設定する。
【0060】
ステップS903では、最適化部541は、暫定の探索パラメータp0における誤差関数を計算する。誤差関数としては、たとえば、二乗誤差Σ|y(i)-f(x(i))|2が用いられる。
【0061】
ここで、和Σは、学習DB200のエントリiに対して取る。y(i)は目的変数Yに対応し、実施例1では強度204である。また、f(x(i))は、i行目のエントリの説明変数x(i)をもとに算出した予測値である。すなわち、パラメータp0に対応する予測式702のwF(a1x1+a2x2+…+anxn+b)に、i行目のエントリの説明変数x(i)を入力した際の出力値である。
【0062】
ステップS904では、上述したように、納得度算出部542が納得度705を更新し、ステップS905では、上述したように、納得度算出部542が、探索中の予測式702のタグ706に、関数系301に対応するタグ302を設定する。
【0063】
ステップS906では、たとえば、最適化部541は、暫定の予測式702であるパラメータp0における目的関数Lの値を計算し、目的関数Lの値が暫定最適値よりも悪化、すなわち増加している場合は、終了条件を満たすと判定する(ステップS906:Yes)。ここで、目的関数Lとは、たとえば、ステップS903で計算した誤差関数L1の値と、ステップS904で計算した納得度705の値L2をマイナス1倍した-L2と、の重みつき和L=L1-C×L2である。
【0064】
暫定最適値の初期値は、あらかじめ設定された値(または、初回のステップS906:Noとなったときの目的関数Lの値)であり、ステップS906:Noとなった場合に、このときの目的関数Lの値で更新される。
【0065】
目的関数Lの値が小さいほど良い予測式702といえる。具体的には、たとえば、L1が小さいほど、L2が大きいほど、目的関数Lの値が小さくなる。ここで、Cは正の定数であり、精度703と納得度705のどちらを重視するかを制御するパラメータである。Cは事前に定数として予測規則生成装置503で決めておいてもよいし、ユーザがクライアント端末501を通じて予測規則生成装置503に指定してもよい。
【0066】
ステップS906において終了条件を満たす場合(ステップS906:Yes)、最適化部541は、終了条件を満たした時点での最適な予測式702と、ステップS903で計算した誤差関数である精度703と、ステップS904で計算した納得度705と、を記憶デバイス102格納して、ステップS908に移行する。
【0067】
一方、終了条件を満たさない場合(ステップS906:No)、つまり目的関数Lの値が暫定最適値よりも悪化していない場合は、最適化部541は、最新の最適値と当該最適値を達成する予測式702とをパラメータp0によって更新して(ステップS907)、ステップS903に戻る。
【0068】
ステップS907では、最適化部541は、探索する予測式702のパラメータを更新する。たとえば、最適化部541は、現時点での予測式702であるp0=(w,a1,a2,…,an,b)における、目的関数Lに対する勾配ベクトル∇Lを計算し、p0-∇Lを新たな予測式702のp0とする。そして、新たな予測式702のp0について、ステップS903に戻って処理を繰り返す。以上のループが、終了条件が満たされる(ステップS906:Yes)まで実行される。
【0069】
ただし、最適化部541は、N回実行しても終了条件を満たさない場合(ステップS906:No)、最適化部541は、その時点での予測式702をもとに探索を打ち切ってもよい。ここで、Nは探索回数の最大値を指定するパラメータである。Nは事前に定数として予測規則生成装置503で決めておいてもよいし、ユーザがクライアント端末501を通じて予測規則生成装置503に指定してもよい。
【0070】
ステップS909では、最適化部541は、予測規則を出力する。具体的には、たとえば、最適化部541は、ここまでに決定した各関数系301における最適な予測式702をソートしてM個出力する。ソート順としては、具体的には、たとえば、誤差関数L1の昇順、納得度L2の降順、または目的関数Lの昇順などがある。ここで、Mは出力する予測式702の数を指定するパラメータである。Mは事前に定数として予測規則生成装置503で決めておいてもよいし、ユーザがクライアント端末501を通じて予測規則生成装置503に指定してもよい。
【0071】
つぎに、ユーザが、
図8において精度改善ボタン803を押下した場合の処理を述べる。最適化部541は、候補番号入力フォーム801に入力された候補番号701に対応する予測式702であるp0をもとに、再度最適化を実行する。
【0072】
具体的には、最適化部541は、1回目と同様に予測規則生成部532を用いて、p0に基づいて、最適な予測式702としてp0+p1を求める。すなわち、最適化部541は、p0を固定した上で、その予測式702の残差y-p0を正しく予測するようなp1を探索する。
【0073】
予測規則生成部532の処理は、基本的にp0を探索する場合と全く同様であり、p1を探索することになる。ただし、納得度705についてはp1の納得度705が用いられる。すなわち、たとえば、最適化部541は、誤差関数L1をL1=Σ|y(i)-(p0+p1)(x(i))|
2、p1の納得度705をL2として、L=L1-C×L2を最小にするようなp1を探索する。p1の候補を複数探索したら、最適化部541は、画面生成部533を通じて、1回目と同様に
図8に示すような表示画面800をクライアント端末501に再度表示させる。
【0074】
図8では、p0が予測式702として表示されているが、更新後は予測式702として、p0+p1が表示される。たとえば、
図8では、候補番号入力フォーム801に候補番号701として、「2」が入力されている。精度改善ボタン803が押下されると、候補番号701が「2」の予測式702であるp0=255sin(0.00043x_2+0.3x_3+28)の最適化が実行され、改善結果804が表示される。改善結果804では、2つの予測式702が表示される。
【0075】
改善結果804において、候補番号701が「1」の予測式702は、255sin(0.00043x_2+0.3x_3+28)+cos(x_1)である。「255sin(0.00043x_2+0.3x_3+28)」がp0であり、「cos(x_1)」がp1である。
【0076】
同様に、改善結果804において、候補番号701が「2」の予測式702は、255sin(0.00043x_2+0.3x_3+28)+exp(x_2+x_3)である。「255sin(0.00043x_2+0.3x_3+28)」がp0であり、「exp(x_2+x_3)」がp1である。
【0077】
以降、ユーザが探索終了ボタン802を押下するまで、この操作が繰り返される。たとえば、再び精度改善ボタン803が押下された場合、y-p0-p1を正しく予測するようなp2が探索される。
つぎに、実施例2について説明する。実施例2では、学習DB200と探索範囲限定情報400と関数系リスト300とに基づいて、予測規則を計算する例について説明する。実施例2は、納得度算出部542が予測式702と指定された理論式がどの程度似ているかを表す類似度を納得度705として出力するという点で実施例1と異なる。すなわち、実施例2では、ユーザが指定した理論式に似ているほど納得度705が高いとみなし、予測規則生成装置503は、納得度705と精度703が高い式を探索する。
理論式とは、特定の条件のときに成り立つと予想されている目的変数Yの予測式702である。具体的には、条件入力フォーム1001に入力された特定の条件と、理論式入力フォーム1002に入力された目的変数Yを説明変数Xによって予測する予測式702と、の組み合わせで指定される。
たとえば、条件入力フォーム1001に、説明変数Xであるx2およびx3について、条件Dとして、「95<x2<105」および「380<x3<519」が入力され、理論式入力フォーム1002に、理論式qとして、「y=exp{0.1(x2-100)}」が入力されたとする。
データ取得部531は、理論式指定領域1000に入力された情報を、探索範囲限定情報1010に変換する。探索範囲限定情報1010たとえば、タイプ401が「理論式」という文字列であり、要素402が、条件入力フォーム1001に入力された条件Dと理論式入力フォーム1002に入力された理論式qとの組み合わせであり、納得の程度403は空、すなわち、NULLとなる。
つぎに、納得度算出部542は、類似度を計算するための1以上の代表点を決定する(ステップS1102)。たとえば、納得度算出部542は、取得エントリ群Aの各々のエントリを代表点としてもよいし、取得エントリ群Aの平均データ、すなわち、各説明変数Xについて平均を取った値を代表点としてもよい。たとえば、各エントリをそれぞれ代表点とする場合、1行目のエントリ211と6行目のエントリ216がそのまま代表点となり、各説明変数Xについて平均を取った場合は、その平均値のエントリが1つの代表点となる。
つぎに、納得度算出部542は、代表点集合から未選択の代表点を選択する(ステップS1103)。納得度算出部542は、選択代表点Xiについて、ステップS1103、S1104を実行し、ステップS1105に移行する。ステップS1105では、納得度算出部542は、代表点集合に未選択の代表点があるか否かを判断し、未選択の代表点がある場合は、ステップS1103に戻る。一方、未選択の代表点がない場合は、一連の処理が終了する。
ステップS1103において、納得度算出部542は、選択代表点Xi付近で予測式702であるpと理論式qがどの程度似ているかを計算する。具体的には、たとえば、納得度算出部542は、予測式pおよび理論式qを選択代表点XiにおいてK次までテイラー展開し、予測式pの係数を並べたリストを{p1,p2,…,pt}、理論式qの係数を並べたリストを{q1,q2,…,qt}とする。ただし、関数系リスト300の各要素402がK回以上微分可能である必要がある。
ここで、Kは0以上の整数であり、事前に定数として予測規則生成装置503で決めておいてもよいし、ユーザがクライアント端末501を通じて予測規則生成装置503に指定してもよい。
ステップS1104において、納得度算出部542は、ステップS1103のテイラー展開で得られた係数{p1,p2,…,pt}および{q1,q2,…,qt}の類似度を計算する。たとえば、納得度算出部542は、二乗誤差Σ(pj-qj)2のマイナス1倍を算出する。ただし、和Σはj=1からj=tまでで取る。この二乗誤差が大きいほど、予測式702であるpは理論式qから乖離しているため、そのマイナス1倍を類似度とみなせる。納得度算出部542は、この類似度を、納得度705の値L2から減算する。以上が納得度算出部542の処理である。また、予測規則生成装置503は、係数{p1,p2,…,pt}および{q1,q2,…,qt}を出力してもよい。
以上説明したように、上述した実施例1および実施例2によれば、予測規則生成装置503は、あらかじめ、予測規則の候補の集合として単純な関数系リスト300を準備しておき、その中から、高精度かつ専門家が納得できそうな予測規則を探索する。探索の際には、予測規則生成装置503は、どのような予測規則なら専門家が納得できるかを記述した探索範囲限定情報400を活用する。具体的には、予測規則生成装置503は、探索範囲限定情報400をもとに各予測規則について納得度705を計算しながら、精度703と納得度705を最適化する予測規則を生成する。
このように、納得度705を算出することにより、生成された予測規則がユーザの視点からみて納得しうる結果であるか否かの指標をユーザに提示することができる。また、生成された予測規則は多項式で表現されているため、AI(Artificial Intelligence)のような中身がわからないブラックボックスな学習モデルではない。したがって、高精度かつ単純な情報としてユーザに提示することができる。また、複雑さ703やタグ706のような補助情報も付加することにより、予測規則のわかりやすさの向上を図ることができる。以上のことから、高精度、単純かつユーザが納得できるような予測規則を得ることができる。
予測規則生成装置503は、たとえば、以下のようなケースで有用である。たとえば、顧客の説得や品質保証等のために顧客にとって簡単な式なら納得してもらえるというケースでは、関数系301の中でどのような関数なら理解可能かを入力画面600から選択してもらい、その探索範囲限定情報400内で予測規則を提示することができる。たとえば、電磁波に関連する現象であれば、sin関数やBessel関数なら知っているため納得できるというユーザに対しては、関数系301の中からsin関数やBessel関数を選択してもらえばよい。これにより、ユーザが納得できる関数系301をユーザが直接選択したり、ドメインを指定したりすることで、探索する関数系301を間接的に選択することができる。
また、局所的に知っている式Eがあるので予測規則が式Eと整合していると納得するというユーザに対しては、実施例2で示したように、予測規則生成装置503は、局所領域の代表点におけるテイラー展開におけるK次の係数が、式Eの係数に類似すれば提示する。たとえば、ユーザが、式E:y=x1+2x1×x22が、条件x3≧4で成立するはずだと考えている場合、予測規則生成装置503は、ユーザが式Eとその条件を入力することで、探索する関数を間接的に制限することができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。