IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7259596予測プログラム、予測方法および予測装置
<>
  • 特許-予測プログラム、予測方法および予測装置 図1
  • 特許-予測プログラム、予測方法および予測装置 図2
  • 特許-予測プログラム、予測方法および予測装置 図3
  • 特許-予測プログラム、予測方法および予測装置 図4
  • 特許-予測プログラム、予測方法および予測装置 図5
  • 特許-予測プログラム、予測方法および予測装置 図6
  • 特許-予測プログラム、予測方法および予測装置 図7
  • 特許-予測プログラム、予測方法および予測装置 図8
  • 特許-予測プログラム、予測方法および予測装置 図9
  • 特許-予測プログラム、予測方法および予測装置 図10
  • 特許-予測プログラム、予測方法および予測装置 図11
  • 特許-予測プログラム、予測方法および予測装置 図12
  • 特許-予測プログラム、予測方法および予測装置 図13
  • 特許-予測プログラム、予測方法および予測装置 図14
  • 特許-予測プログラム、予測方法および予測装置 図15
  • 特許-予測プログラム、予測方法および予測装置 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-10
(45)【発行日】2023-04-18
(54)【発明の名称】予測プログラム、予測方法および予測装置
(51)【国際特許分類】
   G06Q 10/04 20230101AFI20230411BHJP
【FI】
G06Q10/04
【請求項の数】 6
(21)【出願番号】P 2019123218
(22)【出願日】2019-07-01
(65)【公開番号】P2021009572
(43)【公開日】2021-01-28
【審査請求日】2022-03-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】岩下 洋哲
(72)【発明者】
【氏名】▲高▼木 拓也
(72)【発明者】
【氏名】後藤 啓介
(72)【発明者】
【氏名】大堀 耕太郎
【審査官】松野 広一
(56)【参考文献】
【文献】特開2001-229026(JP,A)
【文献】特開平10-275085(JP,A)
【文献】特開2007-157130(JP,A)
【文献】特開2012-099070(JP,A)
【文献】特開2019-040475(JP,A)
【文献】特開2005-222445(JP,A)
【文献】米国特許出願公開第2016/0179751(US,A1)
【文献】Jianhua Chen et al.,A New Method for Learning Pseudo-Boolean Functions with Applications in Terrorists Profiling,Proceedings of the 2004 IEEE Conference on Cybernetics and Intelligent Systems,2004年12月,pp.234-239
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
予測対象の入力データを受け付け、
それぞれに説明変数および目的変数を有する訓練データから、前記説明変数の組み合わせにより構成され、前記訓練データのいずれかを分類し、特定の条件を満たす仮説を列挙した仮説集合と、前記訓練データそれぞれに対する、前記仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習した、前記複数の仮説それぞれの重みを用いて、前記入力データを用いた予測結果を生成する処理をコンピュータに実行させ、
前記生成する処理は、前記学習の結果生成され、前記説明変数に対応する変数を含み、前記特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、前記入力データを用いた予測結果が前記特定の条件を満たす確度が所定の基準を満たすように前記疑似ブール関数に含まれる変数の値を決定する、
ことを特徴とする予測プログラム。
【請求項2】
前記生成する処理は、前記疑似ブール関数に含まれる変数の値の中の所定の変数の値に前記入力データに含まれる値を代入した上で、前記疑似ブール関数に含まれる残りの変数の値を決定する、
ことを特徴とする請求項1に記載の予測プログラム。
【請求項3】
前記生成する処理は、前記疑似ブール関数に含まれる残りの変数の値について、所定の順序で値を設定して前記確度が最大となる組み合わせに決定する、
ことを特徴とする請求項2に記載の予測プログラム。
【請求項4】
前記生成する処理は、前記疑似ブール関数に含まれる残りの変数の値の中の、制御されない項目に対応する変数の値について、前記確度を小さくすると見積もられる値に決定する、
ことを特徴とする請求項3に記載の予測プログラム。
【請求項5】
予測対象の入力データを受け付け、
それぞれに説明変数および目的変数を有する訓練データから、前記説明変数の組み合わせにより構成され、前記訓練データのいずれかを分類し、特定の条件を満たす仮説を列挙した仮説集合と、前記訓練データそれぞれに対する、前記仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習した、前記複数の仮説それぞれの重みを用いて、前記入力データを用いた予測結果を生成する処理をコンピュータが実行し、
前記生成する処理は、前記学習の結果生成され、前記説明変数に対応する変数を含み、前記特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、前記入力データを用いた予測結果が前記特定の条件を満たす確度が所定の基準を満たすように前記疑似ブール関数に含まれる変数の値を決定する、
ことを特徴とする予測方法。
【請求項6】
予測対象の入力データを受け付ける入力部と、
それぞれに説明変数および目的変数を有する訓練データから、前記説明変数の組み合わせにより構成され、前記訓練データのいずれかを分類し、特定の条件を満たす仮説を列挙した仮説集合と、前記訓練データそれぞれに対する、前記仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習した、前記複数の仮説それぞれの重みを用いて、前記入力データを用いた予測結果を生成する予測部と、を有し、
前記予測部は、前記学習の結果生成され、前記説明変数に対応する変数を含み、前記特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、前記入力データを用いた予測結果が前記特定の条件を満たす確度が所定の基準を満たすように前記疑似ブール関数に含まれる変数の値を決定する、
ことを特徴とする予測装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、予測プログラム、予測方法および予測装置に関する。
【背景技術】
【0002】
従来、離散データの非線形分類に用いられる技術として、教師つきの訓練データによってデータを分類するために用いる分類ルール、すなわち決定木を機械学習し、学習した決定木を用いて入力データの分類結果を予測する技術がある。
【先行技術文献】
【非特許文献】
【0003】
【文献】L. Breiman, Machine Learning, vol.45, pp. 5-32 (2001)
【発明の概要】
【発明が解決しようとする課題】
【0004】
入力データに対する予測については、分類ルールを用いて、最適なアクション(例えば、製造工程において次に行う工程の制御をどうするか、マーケティング対象の顧客に対して次に行うべき働きかけをどうするか等)を特定(予測)することが目的の1つとして挙げられる。
【0005】
しかしながら、予測のための分類ルールは複数生成される場合がある。このため、上記の従来技術では、最適なアクションを予測する際に、複数の分類ルールそれぞれに基づくアクションをすべて試行することとなり、処理コストの増大を招くという問題がある。
【0006】
1つの側面では、入力データに対する予測を効率的に行うことを可能とする予測プログラム、予測方法および予測装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、予測プログラムは、受け付ける処理と、生成する処理とをコンピュータに実行させる。受け付ける処理は、予測対象の入力データを受け付ける。生成する処理は、それぞれに説明変数および目的変数を有する訓練データから、説明変数の組み合わせにより構成され、訓練データのいずれかを分類し、特定の条件を満たす仮説を列挙した仮説集合と、訓練データそれぞれに対する、仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習した、複数の仮説それぞれの重みを用いて、入力データを用いた予測結果を生成する。また、生成する処理は、学習の結果生成され、説明変数に対応する変数を含み、特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、入力データを用いた予測結果が特定の条件を満たす確度が所定の基準を満たすように疑似ブール関数に含まれる変数の値を決定する。
【発明の効果】
【0008】
1つの側面では、入力データに対する予測を効率的に行うことができる。
【図面の簡単な説明】
【0009】
図1図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
図2図2は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
図3図3は、訓練データの一例を示す説明図である。
図4図4は、仮説の生成を説明する説明図である。
図5図5は、仮説の生成を説明する説明図である。
図6図6は、仮説の生成を説明する説明図である。
図7図7は、生成された仮説の一例を示す説明図である。
図8図8は、入力データに適合する仮説を説明する説明図である。
図9図9は、ロジスティック回帰による重み付けを説明する説明図である。
図10図10は、仮説の選別を説明する説明図である。
図11図11は、擬似ブール関数を利用する予測処理を例示するフローチャートである。
図12図12は、findMax関数のアルゴリズムを例示する説明図である。
図13図13は、変数の値割り当ての一例を説明する説明図である。
図14図14は、変数の値割り当ての一例を説明する説明図である。
図15図15は、予測処理の適用例を説明する説明図である。
図16図16は、実施形態にかかる情報処理装置のハードウエア構成例を説明する説明図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態にかかる予測プログラム、予測方法および予測装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する予測プログラム、予測方法および予測装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0011】
図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【0012】
図1に示すように、情報処理装置1は、入力部10、記憶部20、仮説生成部30、学習部40、予測部50および出力部60を有する。
【0013】
入力部10は、機械学習に関する訓練データ21や、予測対象となる入力データ22などの各種データの入力を受け付ける処理部である。入力部10は、入力を受け付けた訓練データ21や入力データ22を記憶部20に格納する。
【0014】
記憶部20は、例えば訓練データ21、入力データ22、仮説集合データ23、重みデータ24および結果データ25などの各種データを記憶する。
【0015】
仮説生成部30は、それぞれに説明変数および目的変数を有する訓練データ21から、説明変数の組み合わせにより構成される仮説(目的変数に応じた予測となることを説明するルール(根拠))を網羅的に探索する。
【0016】
次いで、仮説生成部30は、探索した仮説それぞれについて、訓練データ21の説明変数および目的変数をもとに、訓練データ21のいずれかを分類し、特定の条件を満たす仮説を特定する。ここで、特定の条件とは、仮説(説明変数の組み合わせ)が示すルールによって所定のクラスに分類される訓練データ21の数または割合が所定の値以上であることなどである。例えば、仮説生成部30は、探索した仮説について、その仮説により分類される訓練データ21の数または割合が所定の値以上であり、仮説による分類結果があるクラスに属することを一定以上のサンプル数かつ(または)一定以上のサンプル割合で説明しているものを特定する。つまり、仮説生成部30は、訓練データ21の目的変数に応じた予測となることを正しく説明している可能性のある仮説を特定する。
【0017】
次いで、仮説生成部30は、特定した仮説を仮説集合に加える。このようにして、仮説生成部30は、訓練データ21の目的変数に応じた予測となることを正しく説明している可能性のある仮説を仮説集合に列挙する。次いで、仮説生成部30は、仮説を列挙した仮説集合を示す仮説集合データ23を記憶部20に格納する。
【0018】
学習部40は、訓練データ21それぞれに対する、仮説集合データ23の仮説集合に含まれる複数の仮説それぞれの成立有無に基づき、複数の仮説それぞれの重みを算出する学習を行う。学習部40は、学習結果により得られた複数の仮説それぞれの重みを重みデータ24として記憶部20に格納する。このようにして得られた仮説集合データ23および重みデータ24が、予測結果を得るための予測モデルである。
【0019】
予測部50は、仮説集合データ23による仮説集合と、重みデータ24による複数の仮説の重み、すなわち予測モデルを用いて、予測対象である入力データ22に基づき予測結果を生成する処理部である。予測部50は、生成した予測結果を結果データ25として記憶部20に格納する。
【0020】
入力データ22には、例えば既知のアクション(説明変数の一部)と、目標とするラベル(目的変数)とが含まれる。予測部50は、未知のアクション(残りの説明変数)について、予測モデルを用いて、既知のアクションを行ったうえで目標とするラベルとなるような最適な説明変数の値、すなわち最適なアクションを予測する。
【0021】
例えば、製造工程において、良品を製造するために次に行う工程の制御をどうするかを予測する場合、入力データ22に含まれる既知のアクションには、製造工程における観測値や制御の設定値などがある。また、目標とするラベルには、製造工程で製造される製品が良品であることを示すものがある。これにより、予測部50は、良品を製造するために次に行う工程の制御(未知のアクション)をどうするかを予測することができる。
【0022】
また、例えば、マーケティングが成功するために顧客に対して次に行うべき働きかけをどうするかを予測する場合、入力データ22に含まれる既知のアクションには、マーケティングにおけるユーザへの応対内容などがある。また、目標とするラベルには、マーケティングが成功することを示すものがある。これにより、予測部50は、マーケティングが成功するために顧客に対して次に行うべき働きかけ(未知のアクション)をどうするかを予測することができる。
【0023】
具体的には、予測部50は、仮説集合データ23による仮説集合の各仮説と、重みデータ24が示す各仮説における重みによる予測モデルをもとに、入力データ22に含まれる値(説明変数の一部および目的変数)を適用して最適なアクション(未知の説明変数の値)を予測する。
【0024】
ここで、予測モデルについては、特定の条件(ラベル)となる確度(予測スコア)を求めるスコア関数が疑似ブール関数(Pseudo-Boolean function)で表現される。予測部50は、スコア関数が疑似ブール関数で表現されることを用いて、入力データ22に含まれる条件を満たす確度が目的変数に対応する所定の基準を満たす(目的変数に対応するラベルとなる等)ように疑似ブール関数に含まれる変数(未知の変数)を決定する。
【0025】
疑似ブール関数であることを利用すると、等価な状態の判別が可能、下界と上界の計算が容易、疑似ブール関数に関する既存技術(Endre Boros and Peter L. Hammer, “Pseudo-Boolean optimization”, Discrete Applied Mathematics, Vol. 123, Issues 1-3, pp. 155-225, 2002.)を応用できるなどの利点がある。したがって、予測スコア(以下、スコアと表記する場合もある)が疑似ブール関数で表現されることを利用することで、すべてのアクションを一つずつ試行する場合よりも効率的に予測を行うことができる。
【0026】
出力部60は、記憶部20に格納された結果データ25を読み出し、ディスプレイやファイルなどに出力する処理部である。これにより、情報処理装置1は、予測部50が予測した予測結果をディスプレイやファイルなどに出力する。
【0027】
このように、情報処理装置1は、学習装置および予測装置の一例である。なお、本実施形態では学習および予測を一つの情報処理装置1で統合して行う構成を例示するが、学習および予測については、別々の情報処理装置1で実現してもよい。
【0028】
次に、情報処理装置1の動作例を示しながら、上記の各機能部の処理を詳細に説明する。図2は、実施形態にかかる情報処理装置1の動作例を示すフローチャートである。
【0029】
図2に示すように、情報処理装置1の動作は、予測モデルを生成する学習時の動作(S1)と、生成した予測モデルを予測対象の入力データ22に適用して予測結果を得る予測時の動作(S2)とがある。まず、学習時の動作(S1)について説明する。
【0030】
図2に示すように、処理が開始されると、入力部10は、訓練データ21の入力を受け付け(S11)、記憶部20に格納する。
【0031】
図3は、訓練データの一例を示す説明図である。訓練データ21は、複数の事例ごとの教師付きデータであり、データの性質を説明するA~Dの説明変数と、+または-への分類結果(正解情報)である目的変数とを含む。
【0032】
図3に示すように、訓練データ(P~P、N~N)は、データの性質を説明するA~Dの説明変数(予測に用いる情報)と、+または-へのClass(分類)を示す正解情報である目的変数(予測したい情報)とを含む。例えば、訓練データP~Pは、目的変数A~Dそれぞれが0または1であり、+に分類されるデータである。同様に、訓練データN~Nは、目的変数A~Dそれぞれが0または1であり、-に分類されるデータである。
【0033】
例えば、製造工程の分野などにおいて、工程のデータから製造品の結果(良品/不良品)を分類する予測モデルを生成するための訓練データ(P~P、N~N)の場合、A~Dの説明変数は工程ごとの観測値、制御値などに対応する。また、目的変数は、良品/不良品などの製造結果に対応する。
【0034】
なお、説明変数(1/0)については、オーバーライン(以下、「バー」と称する)の有無で表現している。例えばAは、A=1であり、AバーはA=0を示す。また、目的変数(+/-)については、網掛けで表現している。例えば、訓練データP~Pなどの網掛けは、目的変数が+を示す。また、訓練データN~Nなどの網掛けは、目的変数が-を示す。なお、これらの表現は、他の図面でも共通であるものとする。
【0035】
次いで、仮説生成部30は、訓練データ(P~P、N~N)に含まれる説明変数について、それぞれとり得る値(使用しない=*、値=1、値=0)の組み合わせ、すなわち仮説を網羅的に列挙する(S12)。
【0036】
なお、組み合わせる説明変数の数は、所定の数以下とするように制限(条件)を設けてもよい。例えば、A~Dの4説明変数の場合、組み合わせる説明変数の数を2以下とする(4説明変数のうち「使用しない=*」とするものを少なくとも2つ組み合わせる)ように制限してもよい。これにより、組み合わせが増大することを事前に抑止できる。
【0037】
次いで、仮説生成部30は、S12で列挙した組み合わせから所定の組み合わせを選択する(S13)。次いで、仮説生成部30は、訓練データ(P~P、N~N)の説明変数および目的変数をもとに、選択した組み合わせが訓練データ(P~P、N~N)のいずれかを分類し、特定の条件を満たす有効な組み合わせであるか否かを判定する(S14)。
【0038】
図4は、仮説の生成を説明する説明図である。図4では、A~Dの4説明変数の全てが「*」である組み合わせC01からCD(ABは「*」)である組み合わせC09が一例として示されている。
【0039】
図4に示すように、仮説生成部30は、訓練データ(P~P、N~N)の説明変数をもとに、組み合わせC01~C09それぞれの仮説(ルール)に該当する訓練データ(P~P、N~N)を列挙する。
【0040】
例えば、組み合わせC02のDバー(残り3説明変数は「使用しない=*」)のルールには、訓練データP、N、Nが該当する。この組み合わせC02のルール(Dバー)では、目的変数が+である訓練データ(P)と、目的変数が-である訓練データ(N、N)とが混在している。したがって、組み合わせC02は、あるクラスに分類することを正しく説明する仮説としての可能性が低く、有効な組み合わせとは言えない。
【0041】
ここで、組み合わせC04のルール(Cバー)には、目的変数が+である訓練データ(P、P、P)が該当する。すなわち、組み合わせC04は、+のクラスに分類される訓練データ(P、P、P)の数または割合が所定の値以上であり、+のクラスに分類することを正しく説明するルールとしての可能性が高い。よって、仮説生成部30は、組み合わせC04(Cバー)を、+のクラスに分類する有効な組み合わせ(仮説)と判定する。同様に、仮説生成部30は、組み合わせC05、C06についても+のクラスに分類する有効な組み合わせ(仮説)と判定する。
【0042】
また、組み合わせC08のルール(CDバー)には、目的変数が-である訓練データ(N、N)が該当する。すなわち、組み合わせC08は、-のクラスに分類される訓練データ(N、N)の数または割合が所定の値以上であり、-のクラスに分類することを正しく説明するルールとしての可能性が高い。よって、仮説生成部30は、組み合わせC08(CDバー)を、-のクラスに分類する有効な組み合わせ(仮説)と判定する。
【0043】
有効な組み合わせと判定するための条件である、所定のクラスに分類される訓練データ(P~P、N~N)の数または割合は、任意に設定してもよい。例えば、訓練データにはノイズが混じる場合があることから、所定のクラス(例えば+)とは逆のクラス(例えば-)を所定数許容するように設定してもよい。
【0044】
一例として、訓練データ1つ分のノイズを許容する場合、組み合わせC03(D)については、+のクラスに分類する有効な組み合わせ(仮説)と判定される。同様に、組み合わせC07(C)については、-のクラスに分類する有効な組み合わせ(仮説)と判定される。
【0045】
図2に戻り、組み合わせが有効でない場合(S14:NO)、仮説生成部30は、選択した組み合わせを仮説集合に加えることなく、S17へ処理を進める。
【0046】
組み合わせが有効である場合(S14:YES)、仮説生成部30は、選択した組み合わせが仮説集合に含まれる他の仮説の特殊ケースになっているか否かを判定する(S15)。
【0047】
例えば、図4における組み合わせC05のCバーDと、組み合わせC06のCバーDバーとは、組み合わせC04のCバーに新たなリテラルを付加して作られるものである。このような組み合わせC05、C06について、仮説生成部30は、組み合わせC04のCバーの特殊ケースになっているものと判定する。
【0048】
特殊ケースになっている場合(S15:YES)、仮説生成部30は、選択した組み合わせを仮説集合に加えることなく、S17へ処理を進める。
【0049】
図5は、仮説の生成を説明する説明図である。図5に示すように、仮説生成部30は、Cバーの特殊ケースになっている組み合わせ(組み合わせC05、C06)は省略し、Cバーの組み合わせC04aを仮説集合として残すようにする。
【0050】
特殊ケースになっていない場合(S15:NO)、仮説生成部30は、選択した組み合わせを仮説集合データ23の仮説集合に加える(S16)。次いで、仮説生成部30は、S12で列挙した全ての組み合わせを選択済みであるか否かを判定する(S17)。未選択の組み合わせがある場合(S17:NO)、仮説生成部30はS13へ処理を戻す。
【0051】
このS13~S17の処理を繰り返すことで、仮説生成部30は、訓練データ21の目的変数に応じた予測となることを正しく説明している可能性のある仮説をもれなく仮説集合に列挙する。
【0052】
図6は、仮説の生成を説明する説明図であり、具体的には図4、5の内容をカルノー図例で説明する図である。
【0053】
図6に示すように、仮説生成部30は、A(残り3説明変数は「使用しない=*」)の組み合わせ(S31)、Aバー(残り3説明変数は「使用しない=*」)の組み合わせ(S32)…の順に組み合わせを変更して有効な組み合わせを検討する(S31~S35…)。
【0054】
ここで、S33の(Cバー)の組み合わせでは、目的変数が+である訓練データ(P、P、P)が該当する。すなわち、S33では、+のクラスに分類される訓練データ(P、P、P)の数または割合が所定の値以上である。よって、S33の(Cバー)の組み合わせを+のクラスに分類する有効な組み合わせ(仮説)と判定する。なお、以下の処理では、(Cバー)にリテラルを加える組み合わせは除外する。
【0055】
次いで、仮説生成部30は、3説明変数を「使用しない=*」とする全ての組み合わせの検討後に、2説明変数を「使用しない=*」とする組み合わせの検討を開始する(S34)。ここで、S35の(AバーB)の組み合わせでは、目的変数が+である訓練データ(P、P)が該当する。すなわち、S35では、+のクラスに分類される訓練データ(P、P)の数または割合が所定の値以上である。よって、S35の(AバーB)の組み合わせを+のクラスに分類する有効な組み合わせ(仮説)と判定する。
【0056】
図7は、生成された仮説の一例を示す説明図である。図7に示すように、訓練データ(P~P、N~N)からは、分類結果が+または-となる仮説H1~H11の仮説が生成され、仮説集合データ23として記憶部20に格納される。
【0057】
この仮説H1~H11のそれぞれは、訓練データ(P~P、N~N)の分類結果が+または-となることについて正しく説明していることを要件とする独立した仮説である。よって、仮説H2と、仮説H6のように、相互には矛盾した仮説が含まれる場合がある。
【0058】
また、訓練データ(P~P、N~N)に含まれていない入力データ(IN、IN、IN)については、仮説H1~H11の中で適合する仮説から予測結果を得ることができる。
【0059】
図8は、入力データ(IN、IN、IN)に適合する仮説を説明する説明図である。図8に示すように、入力データINについては、仮説H2のCDバー⇒-、仮説H6のBDバー⇒+、仮説H8のAバーB⇒+が適合する仮説である。また、入力データINについては、仮説H4のBバーD⇒+、仮説H5のBバーC⇒-、仮説H7のAバーD⇒+、仮説H9のAバーBバー⇒-が適合する仮説である。また、入力データINについては、仮説H1のCバー⇒+、仮説H7のAバーD⇒+、仮説H8のAバーB⇒+が適合する仮説である。
【0060】
図2に戻り、未選択の組み合わせがない場合(S17:YES)、学習部40は、訓練データ(P~P、N~N)それぞれに対する、仮説集合データ23の仮説集合に含まれる各仮説(H1~H11)の成立有無に基づき、各仮説(H1~H11)の重みを算出する(S18)。次いで、学習部40は、算出結果を重みデータ24として記憶部20に格納する。
【0061】
学習部40における重み算出は、例えば次の3つの手法のいずれであってもよい。
・どのルール(H1~H11)も重み1(ルールの数による多数決)とする。
・ルール(H1~H11)を支持(該当)する訓練データ(P~P、N~N)の数に応じた重みとする。
・訓練データ(P~P、N~N)を適用したロジスティック回帰による重み付けを行う。
【0062】
図9は、ロジスティック回帰による重み付けを説明する説明図である。ロジスティック回帰では、図9に示すように、モデル式に訓練データ(P~P、N~N)適用し、仮説H1~H11に関する重み(β~β11)を求める。このモデル式は、予測スコアを求めるスコア関数に相当し、疑似ブール関数で表現される。
【0063】
ここで、学習部40は、ロジスティック回帰などで得られた各仮説(H1~H11)の重みに応じて、仮説の選別を行ってもよい。
【0064】
図10は、仮説の選別を説明する説明図である。図10に示すように、学習部40は、仮説H1~H11の重み(β~β11)をもとに、重みが所定値以上であり、予測結果に大きな影響を与える主要な仮説を選別する。図示例では、0ではい重みを有する、Cバー、CDバー、BバーDバー、AバーB、ACの5つの仮説H1~3、H8、H11を主要な仮説として選別している。
【0065】
図2に戻り、予測時(S2)の動作について説明する。S2が開始されると、入力部10は、予測対象の入力データ22を受け付けて記憶部20に格納する(S21)。次いで、予測部50は、仮説集合データ23による仮説集合と、重みデータ24による各仮説の重みとによる予測モデルのスコア関数が擬似ブール関数であることを利用して、入力データ22をもとに予測処理を実行する(S22)。予測部50は、予測処理の予測結果を示す結果データ25を記憶部20に格納する。次いで、出力部60は、結果データ25を参照することで、入力データ22に対する予測結果をディスプレイやファイルなどに出力する(S23)。
【0066】
ここで、予測部50における予測処理の詳細を説明する。図11は、疑似ブール関数を利用する予測処理を例示するフローチャートである。なお、図11に示すフローチャートでは、上述したS1に対応する処理(S41、S42)が含まれており、予測部50が行う予測処理はS43~S47が相当する。
【0067】
図11に示すように、処理が開始されると、仮説生成部30は、訓練データ21からスコア関数における積項(重要な仮説)を列挙し、仮説集合を求める(S41)。次いで、学習部40は、良品/不良品などの判定精度の高い予測モデルになるように、スコア関数(疑似ブール関数)の重み、すなわち仮説集合に含まれる各仮説の重みを計算する(S42)。
【0068】
次いで、予測部50は、入力データ22より予測対象の説明変数において既知となっている観測値(既知のアクション)を収集する(S43)。次いで、予測部50は、入力データ22において目標とするラベルのスコアを求める予測モデルのスコア関数に、コントロール不可能な変数の現在値を代入する(S44)。具体的には、予測部50は、予測対象の説明変数の中で既知となっている観測値の値(現在値)をスコア関数に代入する。
【0069】
次いで、予測部50は、スコア関数における予測スコアを最適化するように、残りの変数(説明変数の中で未知の変数)の値割り当てを決定する(S45)。具体的には、予測部50は、残りの各変数について予測スコアを最大化する変数値の割り当て(組み合わせ)を探索するfindMax関数を用いて変数の割り当てを決定する。
【0070】
図12は、findMax関数のアルゴリズムを例示する説明図である。予測部50は、図12に示すようなアルゴリズムのfindMax関数を用いて、findMax(スコア関数,-∞)を実行することで、予測スコアを最大化する残りの各変数の割り当てを探索する。
【0071】
次いで、予測部50は、変数の値割り当てに従ってアクションを実行し(S46)、所定の終了条件を満たすか否かを判定する(S47)。終了条件を満たさない場合(S47:No)、予測部50はS43へ処理を戻す。終了条件を満たす場合(S47:Yes)、予測部50は、処理を終了する。
【0072】
図12図13は、変数の値割り当ての一例を説明する説明図である。なお、図12は、変数A、P、Q、R、Sの中で、変数Aは既知となっている観測値であり、変数P、Q、R、Sが未知であるものとする。図13は、変数P、Q、R、Sが未知であり、かつ、変数Rは制御されない項目に対応する変数であるものとする。
【0073】
未知の説明変数(P、Q、R、S)については、入力データ22において、製造工程における工程順などに対応する順序(例えばP→Q→R→S)や、制御される項目(コントロール可能)または制御されない項目(コントロール不可能)が予め設定されているものとする。なお、制御されない項目については、例えば、製造工程において人により設定される制御値などがある。また、制御されない項目については、工程の状態として観測された観測値などがある。
【0074】
図12に示すように、変数A、P、Q、R、Sと、各変数の重みと、によるスコア関数はS101のとおりであるものとする。ここで、予測部50は、変数Aは既知となっている観測値(A=1)であるので、コントロール不可能の変数Aの観測値をスコア関数に代入する(S102)。これにより、スコア関数はS103のとおりとなる。
【0075】
次いで、予測部50は、設定順(P→Q→R→S)に従って変数を設定し、予測スコアを最大化するように、変数値の割り当てを決定する。
【0076】
例えば、予測部50は、P=0をスコア関数に代入することで、A=1、P=0の状態に関するスコア関数を得る(S104)。次いで、予測部50は、Q=1をスコア関数に代入することで、A=1、P=0、Q=1の状態に関するスコア関数を得る(S105)。
【0077】
次いで、予測部50は、R=1をスコア関数に代入することで、A=1、P=0、Q=1、R=1の状態に関するスコア関数を得る(S106)。ここで、S=0の場合は予測スコアは0であり、S=1の場合は予測スコアは2であることが判明する。
【0078】
S105に戻り、予測部50は、R=0をスコア関数に代入することで、A=1、P=0、Q=1、R=0の状態に関して予測スコアが5であることが判る(S107)。これにより、A=1、P=0、Q=1の状態では、Sの値に関係なく、R=0の状態で予測スコアが最大となることが判る。
【0079】
次いで、予測部50は、S104に戻り、Q=0をスコア関数に代入することで、A=1、P=0、Q=0の状態に関するスコア関数を得る(S108)。ここで、予測部50は、スコア関数の正の項から上界が1であることが判る。よって、A=1、P=0、Q=0の状態については、R、Sの状態を探索することなく、A=1、P=0、Q=1の状態よりもスコア関数が低くなることが判明する。
【0080】
次いで、予測部50は、S103に戻り、P=1をスコア関数に代入することで、A=1、P=1の状態に関するスコア関数を得る(S109)。次いで、予測部50は、Q=0をスコア関数に代入することで、A=1、P=1、Q=0の状態に関するスコア関数を得る。このスコア関数はS108と同じであるため、A=1、P=1、Q=0の状態については、R、Sの状態を探索することなく、A=1、P=0、Q=1の状態よりもスコア関数が低くなることが判明する。
【0081】
次いで、予測部50は、S109に戻り、Q=1をスコア関数に代入することで、A=1、P=1、Q=1の状態に関するスコア関数を得る(S110)。
【0082】
次いで、予測部50は、R=0をスコア関数に代入することで、A=1、P=1、Q=1、R=0の状態に関するスコア関数を得る(S111)。ここで、予測部50は、スコア関数の正の項から上界が3であることが判る。よって、A=1、P=1、Q=1、R=0の状態については、Sの状態を探索することなく、A=1、P=0、Q=1の状態よりもスコア関数が低くなることが判明する。
【0083】
次いで、予測部50は、S110に戻り、R=1をスコア関数に代入することで、A=1、P=1、Q=1、R=1の状態に関して予測スコアが4であることが判る。
【0084】
予測部50では、上記の処理を行うことで、A=1、P=0、Q=1、R=0の状態(Sは任意)となる変数の組み合わせR1で予測スコアが最大となることが判る。
【0085】
なお、予測部50は、制御されない項目に対応する変数については、予測スコアを小さくすると見積もられる値に決定してもよい。これにより、制御されない項目については最悪のケースを想定した上で、他の変数の予測を行うことができる。
【0086】
具体的には、図13に示すように、予測部50は、A=1、P=0、Q=1の状態に関するスコア関数を得た後に(S121)、変数Qの次の変数R(制御されない項目)の値を設定して予測スコアを求める(S122、S123)。
【0087】
ここで、予測部50は、予測スコアを小さくすると見積もられる値を変数Rの値とする。例えば、R=1の場合は、S=1で予測スコアが0または2であり、R=0の場合は、Sに関係なく予測スコアが5である。このため、変数Rは、予測スコアを小さくすると見積もられるR=0とする。なお、変数Sについては、予測スコアを最大化するものを設定することから、S=1となる。
【0088】
同様に、予測部50は、A=1、P=0、Q=0の状態に関するスコア関数を得た後に(S124)、変数Qの次の変数R(制御されない項目)の値を設定して予測スコアを求める(S125、S126)。また、予測部50は、A=1、P=1、Q=1の状態に関するスコア関数を得た後に(S127)、変数Qの次の変数R(制御されない項目)の値を設定して予測スコアを求める(S128、S129)。
【0089】
このようにして、予測部50は、変数Rについては予測スコアを小さくすると見積もられる値に決定した上で、他の変数については予測スコアを最大化するようにして各変数の割り当てを探索する。これにより、予測部50は、A=1、P=1、Q=1、R=0、S=0の状態となる変数の組み合わせR2を得る。
【0090】
なお、予測部50は、制御されない項目に対応する変数について、予測スコアの期待値を高めるように決定してもよい。具体的には、予測部50は、未知でかつコントロール不可能な変数を含む積項の重みを0に固定し、スコア関数の重み付けを再計算する。次いで、予測部50は、新しいスコア関数を最大化するように、未知かつコントロール可能な変数(例えば変数P、Q、S)の値を選択する。次いで、予測部50は、次がコントロール可能な変数(例えば変数P、Q)である間、順にアクションを実行する。また、予測部50は、次がコントロール不可能な変数である間、その値が確定するのを待つ。以下、予測部50は、上記の処理を繰り返すことで、変数の組み合わせを探索する。
【0091】
図15は、予測処理の適用例を説明する説明図である。図15に示すように、データ収集(S201)では、原材料201から製造品202を製造する製造工程において、良品・不良品ができる条件、すなわち訓練データ21を収集する。具体的には、各工程における温度(A)、圧力(B)、電力(C)などのコントロール不可能な項目と、投入量(P)、回転数(Q)などのコントロール可能な項目の条件が収集される。
【0092】
次いで、情報処理装置1は、訓練データ21をもとに、重要な仮説(積項)を列挙した仮説集合を生成する。そして、情報処理装置1は、全ての仮説を使って、良品または不良品を予測する予測モデルを生成する(S202)。
【0093】
次いで、情報処理装置1は、既知のアクション(説明変数の一部)と、目標とするラベル(目的変数)とを含む入力データ22をもとに、既知のアクションを行ったうえで目標とするラベルとなるような最適なアクションの予測(アクション導出)を行う(S203)。
【0094】
例えば、情報処理装置1は、良品ができる場合の予測モデルに対して、予測スコアを最大化するアクションを予測することで、良品ができるアクションを導出することができる。また、情報処理装置1は、不良品ができる場合の予測モデルに対して、予測スコアを最小化するアクションを予測することで、不良品ができる仮説を改善するアクションを導出することができる。
【0095】
以上のように、情報処理装置1は、入力部10と、予測部50とを有する。入力部10は、予測対象の入力データ22を受け付ける。予測部50は、仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習部40により学習した、複数の仮説それぞれの重みを用いて、入力データ22を用いた予測結果を生成する。また、予測部50は、学習の結果生成され、説明変数に対応する変数を含み、特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、入力データ22を用いた予測結果が特定の条件を満たす確度が所定の基準を満たすように疑似ブール関数に含まれる変数を決定する。
【0096】
一般的なブラックボックスの予測モデルでは、すべてのアクションを一つずつ試して予測スコアが最大となるものを探すこととなる。これに対し、情報処理装置1では、予測スコアが擬似ブール関数で表現されることを利用している。このため、情報処理装置1では、等価な状態の判別が可能、下界と上界の計算が容易、疑似ブール関数に関する既存技術を応用できるなどの、擬似ブール関数の利点により予測を効率的に行うことができる。
【0097】
また、予測部50は、疑似ブール関数に含まれる変数の値の中の所定の変数の値に入力データ22に含まれる値を代入した上で、疑似ブール関数に含まれる残りの変数の値を決定する。これにより、情報処理装置1では、入力データ22において観測値が得られている項目についてはその観測値を擬似ブール関数に代入した上で、未定の項目に関する変数の値を順次求めることができる。
【0098】
また、予測部50は、疑似ブール関数に含まれる残りの変数の値について、所定の順序で値を設定して確度が最大となる変数の値の組み合わせに決定する。このように、情報処理装置1では、疑似ブール関数の変数について、順序性をもって確度が最大となる変数の値の組み合わせを探索するので、例えば上界、下界が見積もられた場合には、以降の変数の見積もりを省略することができる。
【0099】
また、予測部50は、疑似ブール関数に含まれる残りの変数の値の中の、制御されない項目に対応する変数の値について、確度を小さくすると見積もられる値に決定する。これにより、情報処理装置1では、制御されない項目については確度が小さくなるような悪化するケースを予め想定した上で、他の変数の予測を行うことができる。
【0100】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0101】
情報処理装置1で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0102】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータ(ハードウエア)の一例を説明する。図16は、実施形態にかかる情報処理装置1のハードウエア構成例を説明する説明図である。
【0103】
図16に示すように、情報処理装置1は、各種演算処理を実行するCPU101と、データ入力を受け付ける入力装置102と、モニタ103と、スピーカ104とを有する。また、情報処理装置1は、記憶媒体からプログラム等を読み取る媒体読取装置105と、各種装置と接続するためのインタフェース装置106と、有線または無線により外部機器と通信接続するための通信装置107とを有する。また、情報処理装置1は、各種情報を一時記憶するRAM108と、ハードディスク装置109とを有する。また、情報処理装置1内の各部(101~109)は、バス110に接続される。
【0104】
ハードディスク装置109には、上記の実施形態で説明した各種の処理を実行するためのプログラム111が記憶される。また、ハードディスク装置109には、プログラム111が参照する各種データ112(例えば訓練データ21、入力データ22、仮説集合データ23、重みデータ24および結果データ25)が記憶される。入力装置102は、例えば、情報処理装置1の操作者から操作情報の入力を受け付ける。モニタ103は、例えば、操作者が操作する各種画面を表示する。インタフェース装置106は、例えば印刷装置等が接続される。通信装置107は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0105】
CPU101は、ハードディスク装置109に記憶されたプログラム111を読み出して、RAM108に展開して実行することで、入力部10、仮説生成部30、学習部40、予測部50および出力部60に関する各種の処理を行う。なお、プログラム111は、ハードディスク装置109に記憶されていなくてもよい。例えば、情報処理装置1が読み取り可能な記憶媒体に記憶されたプログラム111を、情報処理装置1が読み出して実行するようにしてもよい。情報処理装置1が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム111を記憶させておき、情報処理装置1がこれらからプログラムを読み出して実行するようにしてもよい。
【0106】
以上の実施形態に関し、さらに以下の付記を開示する。
【0107】
(付記1)予測対象の入力データを受け付け、
それぞれに説明変数および目的変数を有する訓練データから、前記説明変数の組み合わせにより構成され、前記訓練データのいずれかを分類し、特定の条件を満たす仮説を列挙した仮説集合と、前記訓練データそれぞれに対する、前記仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習した、前記複数の仮説それぞれの重みを用いて、前記入力データを用いた予測結果を生成する処理をコンピュータに実行させ、
前記生成する処理は、前記学習の結果生成され、前記説明変数に対応する変数を含み、前記特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、前記入力データを用いた予測結果が前記特定の条件を満たす確度が所定の基準を満たすように前記疑似ブール関数に含まれる変数の値を決定する、
ことを特徴とする予測プログラム。
【0108】
(付記2)前記生成する処理は、前記疑似ブール関数に含まれる変数の値の中の所定の変数の値に前記入力データに含まれる値を代入した上で、前記疑似ブール関数に含まれる残りの変数の値を決定する、
ことを特徴とする付記1に記載の予測プログラム。
【0109】
(付記3)前記生成する処理は、前記疑似ブール関数に含まれる残りの変数の値について、所定の順序で値を設定して前記確度が最大となる組み合わせに決定する、
ことを特徴とする付記2に記載の予測プログラム。
【0110】
(付記4)前記生成する処理は、前記疑似ブール関数に含まれる残りの変数の値の中の、制御されない項目に対応する変数の値について、前記確度を小さくすると見積もられる値に決定する、
ことを特徴とする付記3に記載の予測プログラム。
【0111】
(付記5)予測対象の入力データを受け付け、
それぞれに説明変数および目的変数を有する訓練データから、前記説明変数の組み合わせにより構成され、前記訓練データのいずれかを分類し、特定の条件を満たす仮説を列挙した仮説集合と、前記訓練データそれぞれに対する、前記仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習した、前記複数の仮説それぞれの重みを用いて、前記入力データを用いた予測結果を生成する処理をコンピュータが実行し、
前記生成する処理は、前記学習の結果生成され、前記説明変数に対応する変数を含み、前記特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、前記入力データを用いた予測結果が前記特定の条件を満たす確度が所定の基準を満たすように前記疑似ブール関数に含まれる変数の値を決定する、
ことを特徴とする予測方法。
【0112】
(付記6)前記生成する処理は、前記疑似ブール関数に含まれる変数の値の中の所定の変数の値に前記入力データに含まれる値を代入した上で、前記疑似ブール関数に含まれる残りの変数の値を決定する、
ことを特徴とする付記5に記載の予測方法。
【0113】
(付記7)前記生成する処理は、前記疑似ブール関数に含まれる残りの変数の値について、所定の順序で値を設定して前記確度が最大となる組み合わせに決定する、
ことを特徴とする付記6に記載の予測方法。
【0114】
(付記8)前記生成する処理は、前記疑似ブール関数に含まれる残りの変数の値の中の、制御されない項目に対応する変数の値について、前記確度を小さくすると見積もられる値に決定する、
ことを特徴とする付記7に記載の予測方法。
【0115】
(付記9)予測対象の入力データを受け付ける入力部と、
それぞれに説明変数および目的変数を有する訓練データから、前記説明変数の組み合わせにより構成され、前記訓練データのいずれかを分類し、特定の条件を満たす仮説を列挙した仮説集合と、前記訓練データそれぞれに対する、前記仮説集合に含まれる複数の仮説それぞれの成立有無に基づき学習した、前記複数の仮説それぞれの重みを用いて、前記入力データを用いた予測結果を生成する予測部と、を有し、
前記予測部は、前記学習の結果生成され、前記説明変数に対応する変数を含み、前記特定の条件を満たす確度の算出に用いられる疑似ブール関数により算出される、前記入力データを用いた予測結果が前記特定の条件を満たす確度が所定の基準を満たすように前記疑似ブール関数に含まれる変数の値を決定する、
ことを特徴とする予測装置。
【0116】
(付記10)前記予測部は、前記疑似ブール関数に含まれる変数の値の中の所定の変数の値に前記入力データに含まれる値を代入した上で、前記疑似ブール関数に含まれる残りの変数の値を決定する、
ことを特徴とする付記9に記載の予測装置。
【0117】
(付記11)前記予測部は、前記疑似ブール関数に含まれる残りの変数の値について、所定の順序で値を設定して前記確度が最大となる組み合わせに決定する、
ことを特徴とする付記10に記載の予測装置。
【0118】
(付記12)前記予測部は、前記疑似ブール関数に含まれる残りの変数の値の中の、制御されない項目に対応する変数の値について、前記確度を小さくすると見積もられる値に決定する、
ことを特徴とする付記11に記載の予測装置。
【符号の説明】
【0119】
1…情報処理装置
10…入力部
20…記憶部
21…訓練データ
22…入力データ
23…仮説集合データ
24…重みデータ
25…結果データ
30…仮説生成部
40…学習部
50…予測部
60…出力部
101…CPU
102…入力装置
103…モニタ
104…スピーカ
105…媒体読取装置
106…インタフェース装置
107…通信装置
108…RAM
109…ハードディスク装置
110…バス
111…プログラム
112…各種データ
201…原材料
202…製造品
C01~C09、R1、R2…組み合わせ
H1~H11…仮説
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16