帰納論理プログラミングを用いた化学実験支援
∗
Supporing Chemical Experiment with Inductive Logic Programming
力 規晃
1越村 三幸
2 †西田 光生
3阿部 幸浩
3Noriaki Chikara,
1Miyuki Koshimura,
2Mitsuo Nishida,
3Yukihiro Abe
3藤田 博
2長谷川 隆三
2Hiroshi Fujita,
2Ryuzo Hasegawa
21
徳山工業高等専門学校
2九州大学
3東洋紡株式会社
1
Tokuyama College of Technology
2Kyushu University
3TOYOBO CO., LTD.
Abstract: We developed a software system which supports chemical experiment with Inductive Logic Programming (ILP). The system aims to guide experimental chemists to get good experi-mental results which satisfy their objectives by analyzing experiexperi-mental data obtained so far. This paper shows two methods with ILP: one is for experimental data with positive examples, another is for that without positive examples.
1
はじめに
化学反応を利用して,原料から所望の性能を満たす 化合物を効率よく生成するには,化合物を生成する原 料の濃度,流量,温度,即ち反応条件に関連したパラ メータを適切に設定する必要がある.最適な反応条件 は,実験を繰り返し行うことによって求めるのが普通 であるが,起こりうる全ての場合を実験で網羅するこ とは,現実的に不可能である.最小の実験回数で最適 な条件を求めることが重要である. 実験化学者は専門的知識に基づいて実験を行うが,所 望の結果がすぐに得られるとは限らない.そのような 場合には,試行錯誤が続くことになり,実験コストが 増大してしまう.また,時間経過によってビジネスチャ ンスを逃してしまうかもしれない. 本研究は,次に試す実験パラメータの決定に際し,指 針を与えるシステムを構築し,より早く最適な反応条 件にたどり着くことを目指す.指針は,それまでに行っ た実験データの解析によりなされるが,本研究では,解 析に帰納論理プログラミングを利用する. 帰納論理プログラミングは述語論理に基づく帰納推 論を行うデータマイニングの一手法である.背景知識の 下,正例(positive example)を説明し,負例(negative example)は説明しないルールを作成する.本稿では先 ず,実験データに正例がある場合の解析例を示し,次 に,正例がない場合の対処法を示す. ∗本稿は文献 [4, 5] を合わせてまとめたものである. †連絡先:九州大学大学院システム情報科学研究院 福岡市西区元岡744 E-mail: [email protected]2
帰納論理プログラミング
帰納論理プログラミング (Inductive Logic Program-ming: ILP)[1]とは一階述語論理に基づいた機械学習の 手法である.ILP の一般的な枠組みは,正例 E+ と負 例 E−,背景知識 B が節集合で与えられ, { B̸|= E+ B∪E−̸|= 2 であるとき,つまり,背景知識では正例が説明できず, しかも,背景知識と負例が矛盾しないとき, { H∪B|= E+ H∪B∪E−̸|= 2 を満たす,つまり背景知識に仮説を加えると正例を説 明でき,しかも,背景知識と仮説と負例は矛盾しない 仮説 H を見つけることである.
3
化学実験データ概要
本研究で取り扱うデータは化学反応の条件パラメー タ (説明変数) とその性能を示す値 (目的変数) とがセッ トになっている.条件パラメータには組成項があり,組 成の合計を一定値にするという制約がある場合もある. 与えられるデータ件数についてはデータマイニングの 対象のデータとしては少ない.具体的には 10 例程度 から 50 例程度である.これは,データを得るための化 学実験は人間が行うのである程度時間がかかることと, 人工知能学会研究会資料 SIG-FPAI-B401-02 − 7 −表 1: 化学実験データの例 A B C D E F 0.83 0.25 0.25 0.4 0.59 0.51 0.83 0.25 0.5 0.4 0.59 0.51 0.83 0.5 0.1 0.6 0.55 0.46 コストが高いためである.そのため,少ないデータか らルール抽出を行うというところに挑戦課題がある. 表 1 に化学実験データの一例を示す.ここで,A,B, C,D が反応物,E,F が生成物である.1行が1デー タに対応している.数値は,反応物あるいは生成物の 特性を表す化学的な量を表す.
4
帰納論理プログラミングの適用
実験データの内,目標の性能を満たすデータを正例, 満たさないデータを負例と呼ぶ.本節では先ず,実験 データに正例がある場合の解析例を示し,次に正例が ない場合の対処法と解析例を示す.4.1
正例がある場合
実は,表 1 のデータはある実験データ(データ数 96) からの抜粋である.各数値は対応成分の量を 0 以上 1 以下の実数値に正規化したものである.この実験の目 標は,投入する資源量を最小化しつつ,得られる資源 量(収量)を最大にすることである.これは正規化後 のデータでは,A,B,C,D をいずれもできるだけ小 さくし,E,F の双方をできるだけ大きくする,と言い 換えられる. 4.1.1 データの量子化 実数値のデータを離散的に扱うため量子化を行う. 元の領域を 10 段階のレベルに分けることを目安に区分 し,名前を付ける.反応物 X の値がレベル n であるこ とを’inX n’(n は 0∼9 の整数)と表現する.ただし, 実験に用いたパラメータは元々離散的な値であり,A は 2 通り,B は 3 通り,C は 4 通り,D は 6 通りの値 を取る.そして,それぞれ表 2 (a) ∼ (d) のように名 前を付ける. 収量についても同様に Y の値がレベル n であるこ とを’outY n’(n は 0∼9 の整数)と表現する.実験で は,E は 0.1510 以上 0.6500 以下,F は 0.188167 以上 0.639667 以下の範囲に収まった.それぞれ,表 2 (e) (f)のように 10 等分した.量子化後の表現については 表 3: 本研究で用いる知識表現 知識表現 意味 inputA(J, In) データ J の A は In である. inputB(J, In) データ J の B は In である. inputC(J, In) データ J の C は In である. inputD(J, In) データ J の D は In である. outputE(J, Out) データ J の E は Out である. outputF(J, Out) データ J の F は Out である.表 4: 本研究で用いる知識表現 知識表現 意味 inputAGreaterOrEqual(J,In) データJのAはIn以上 inputALessOrEqual(J,In) データJのAはIn以下 inputBGreaterOrEqual(J,In) データJのBはIn以上 inputBLessOrEqual(J,In) データJのBはIn以下 inputCGreaterOrEqual(J,In) データJのCはIn以上 inputCLessOrEqual(J,In) データJのCはIn以下 inputDGreaterOrEqual(J,In) データJのDはIn以上 inputDLessOrEqual(J,In) データJのDはIn以下 帰納論理プログラミングの枠組みでのアトムとして取 り扱う. 4.1.2 正負例と背景知識 本実験データ数は 96 例である.収量をできるだけ多 くするのが目標であるので,望ましい実験データは,E が outE 9 であり,かつ,F が outF 9 であると考えら れる.このようなデータは 11 例あり,これらを正例と した.そして他の 85 例を負例とした.背景知識は 96 例分の実験データを述語表現したものを与える.本研 究で用いる述語表現を表 3 に示す. 説明変数の値がある値以上,あるいは,ある値以下で あることを扱う表 4 のような知識表現を導入する.例 えば B がレベル 1 以上ならば, inputBLessOrEqual(J,inB 1):-inputB(J,inB 0). inputBLessOrEqual(J,inB 1):-inputB(J,inB 1). のようなルールを背景知識に追加する.このように各々 の条件に関して,必要なルールを背景知識に追加する. 4.1.3 ILPによる解析結果 本実験データを SWI-Prolog 5.6.63[3] 上で稼働する ILPシステム Aleph[2] Version5 を用いて解析した.結 果として得られたルールを図 1 に示す.要した計算時
表 2: 反応物と生成物の化学的な量の量子化 (a) Aの量子化 元の値 0.833333 0.888889 量子化後の表現 inA 0 inA 9 (b) Bの量子化 元の値 0.125 0.25 0.5 量子化後の表現 inB 0 inB 3 inB 9 (c) Cの量子化
元の値 0.1 0.25 0.5 0.7 量子化後の表現 inC 0 inC 2 inC 6 inC 9
(d) Dの量子化
元の値 0.2 0.3 0.4 0.6 0.8 1 量子化後の表現 inD 0 inD 1 inD 2 inD 4 inD 7 inD 9
(e) Eの量子化
元の値 [0.1510,0.2009) [0.2009,0.2508) [0.2508,0.3007) [0.3007,0.3506) [0.3506,0.4005) 量子化後の表現 inE 0 inE 1 inE 2 inE 3 inE 4
元の値 [0.4005,0.4504) [0.4504,0.5003) [0.5003,0.5502) [0.5502,0.6001) [0.6001,0.6500] 量子化後の表現 inE 5 inE 6 inE 7 inE 8 inE 9
(f) Fの量子化
元の値 [0.188167,0.233317) [0.233317,0.278467) [0.278467,0.323617) [0.323617,0.368767) [0.368767,0.413917) 量子化後の表現 inF 0 inF 1 inF 2 inF 3 inF 4
元の値 [0.413917,0.459067) [0.459067,0.504217) [0.504217,0.549367) [0.549367,0.594517) [0.594517,0.639667] 量子化後の表現 inF 5 inF 6 inF 7 inF 8 inF 9
[Rule 1] [Pos cover = 6 Neg cover = 0] example(J) :- inputB(J, inB_3),
inputD(J, inD_7).
[Rule 2] [Pos cover = 4 Neg cover = 0] example(J) :- inputC(J, inC_9),
inputD(J, inD_9), inputBLessOrEqual(J, inB_3).
[Rule 3] [Pos cover = 1 Neg cover = 0] example(ex071).
図 1: 得られたルール
間は数秒程度であった.ここで,Pos cover 値と Neg cover値はそれぞれ,このルールを満たす正例数と負例 数を表す. Rule 1は B のレベルが 3 でかつ D のレベルが 7 の とき望ましい収量が得られていることを意味している. そして,Rule 1 を満たす正例は 6 例ある.また,Rule2 は C のレベルが 9,D のレベルが 9,かつ B のレベル が 3 以下であるときに望ましい収量が得られることを 示している.そして,4 つの正例が Rule 2 を満たして いる.Rule3 は,Rule1 と Rule2 のいずれも満たさな い正例が 1 つあることを示している. 4.1.4 考察 A∼D をいずれもできるだけ小さく,つまりこれら のレベルをできるだけ低くし,E と F の両方をできる だけ大きくするという目標にそって,Rule1 と Rule2 を比較してみよう.Rule1 と Rule2 を満たすデータは, いずれも「望ましい収量」を得ている.この収量を得 るために Rule2 では C と D のレベルを 9 つまり最大 にする必要があるが,Rule1 では D はレベル 7 でよく, Cは無条件となっている.B については,Rule 1 では レベル 3,Rule2 ではレベル 3 以下と,Rule 2 の方が 若干低いレベルとなっている.これらを総合的に考え ると Rule1 の条件がより優れていると考えられる. このように実験データからは,B のレベルが 3 で,D のレベルが 7 の時,望ましい収量が得られる,ことが 導かれる
4.2
正例がない場合
多くの実験では,全ての目標値を満たす実験データ が得られればそれで実験の目的が達せられ,実験をそ れ以上続ける必要がなくなる.そのような実験データ には正例がないので,前節の手法は適用できない.本 節ではそのような場合でも,前節の手法を適用できる − 9 −図 2: 仮想実験データの作り方 ように,目標条件を満たす説明変数の条件,つまり正 例を推定する方法を提案する. そのために,実験データの近傍において,説明変数 の値と目標変数の値との間に線形性を仮定し,仮想的 に実験データを合成する.こうして得られた仮想実験 データには,目標条件を満たすものもあれば,満たさ ないものもある.前者を正例とし,後者を負例として 元々の実験データ(全て負例)に加えたものに前節の 手法を適用する.結果として得られるルールが,実験 化学者によって妥当と判断されれば,化学実験によっ て本当に目標条件を満たすかどうか実証される. 4.2.1 正例の推定方法 図 2 に条件推定の方法を示す.データの右端の値 (目 的変数) が性能を表わすパラメータ属性であり,この値 によって目標値を満たすか否かが判定される.条件推 定は既存データに 2 つのデータの差分を加えて新たな 条件を生成することにより行われている. まず,(b) の部分のように任意の 2 組の実験値の各々 の要素の差を取り,差分値を生成する.そしてある既 存データ (a) に (b) で生成した差分値を加えて,新た なデータ (c) を生成する.これにより既存データでは 存在しない目標値を満たす条件を生成できる. 4.2.2 ILPによる解析 前節の表 1 とは異なる実験データの解析を行った. 解析1 データ数は 47 例,説明変数は 24 個,目的変数 は 5 個ある.また, 説明変数の値の合計に制約 がある.上記推定法により得られた正例は 78 例, 負例は 9674 例あり,これに ILP を適用した. 解析2 データ数は 20 例あり,説明変数は二つのグルー プとそれ以外に分けられ,第一グループには 5 個, 第二グループには 9 個,それ以外の説明変数は 2 個ある.それぞれのグループの説明変数の値の合 計に制約がある.目的変数は 5 個ある.上記推定 法により得られた正例は 17 例,負例は 1103 例 あり,これに ILP を適用した. 4.2.3 考察 各説明変数がそのデータ点近傍では線形性の特性を 持つという仮定のもとでデータを合成して,ILP の適 用を行ったため,仮定や近似の妥当性を考えなければ ならない.本解析で得られたルールは,実験化学者が 経験的に得ている感覚と非常に良く一致しており,今 回対象とした化学反応のデータに関しては本推論方法 は妥当であると考えている.
5
おわりに
説明変数の値を様々に変えて化学実験を行い,得ら れた実験データに ILP を適用し,望ましい収量を得る パラメータの条件をルールとして抽出した.そして,実 際に実験室で実現し得る適切なルールを得ることがで きた.今後,今回扱ったデータ以外の多くのデータで 本研究の手法を試すとともに,他の手法と定量的な比 較が必要だと考えている. 謝辞:本研究の一部は JSPS 科研費 25330085 の助成を 受けたものです.参考文献
[1] 古川 康一,尾崎 知伸,植野 研: 帰納論理プログ ラミング,共立出版 (2001)[2] Ashwin Srinivasan: “ The Aleph Manual, ” http://www.comlab.ox.ac.uk/oucl/research /areas/machlearn/Aleph/ (1999) [3]“ SWI-Prolog’s home ”, http://www.swi-prolog.org/ [4] 力 規晃,越村 三幸,橋本 司,山下 全広,藤田 博,長谷川 隆三:帰納論理プログラミングを用い た化学反応からのルール抽出,第 10 回情報科学技 術フォーラム (FIT2011) (2011) [5] 力 規晃,越村 三幸,橋本 司,西田 光生,阿部 幸浩,藤田 博,長谷川 隆三:帰納論理プログラ ミングを用いた高分子の組成と物性との関係に関 する考察,第 11 回情報科学技術フォーラム (FIT 2012),A-012 (2012) − 10 −