(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-04
(45)【発行日】2022-02-15
(54)【発明の名称】データ処理装置、データ処理方法、データ処理プログラム、及び非一時的記録媒体
(51)【国際特許分類】
G06N 20/00 20190101AFI20220207BHJP
【FI】
G06N20/00 160
(21)【出願番号】P 2020525431
(86)(22)【出願日】2019-05-30
(86)【国際出願番号】 JP2019021542
(87)【国際公開番号】W WO2019244596
(87)【国際公開日】2019-12-26
【審査請求日】2020-12-08
(31)【優先権主張番号】P 2018119116
(32)【優先日】2018-06-22
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】100083116
【氏名又は名称】松浦 憲三
(74)【代理人】
【識別番号】100170069
【氏名又は名称】大原 一樹
(74)【代理人】
【識別番号】100128635
【氏名又は名称】松村 潔
(74)【代理人】
【識別番号】100140992
【氏名又は名称】松浦 憲政
(72)【発明者】
【氏名】中林 淳
(72)【発明者】
【氏名】大平 詩野
(72)【発明者】
【氏名】津村 享佑
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特表2006-504159(JP,A)
【文献】大藪又茂、徳高平蔵、大北正昭、松田充夫,球面SOMの理論とクラスタ分析への応用,知能と情報,日本,日本知能情報ファジィ学会,2007年12月15日,第19巻,第6号(通巻105号),pp.4-12,ISSN 1347-7986
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
複数のデータを入力するデータ入力部と、
複数の格子点を含む格子点空間であって、一の格子点が他の全ての格子点と結合している格子点空間の全ての格子点に対し、前記複数のデータに基づいて参照ベクトルの初期値を設定する初期値設定部と、
前記参照ベクトルの前記初期値に基づいて、指定された距離関数を用いて一の格子点と他の格子点との格子点間距離を算出する距離算出部と、
前記複数のデータの成分で構成される入力ベクトルと前記格子点に対する前記参照ベクトルとの距離を前記距離関数に基づいて算出し、前記入力ベクトルについて前記距離が最も短い格子点である最近格子点を前記算出の結果に基づいて探索する探索部と、
前記探索の結果に基づいて、前記複数のデータのそれぞれを前記最近格子点に対するデータとして配分するデータ配分部と、
前記最近格子点及び前記最近格子点の周囲の格子点に前記複数のデータの情報を反映する反映関数を用いて、前記参照ベクトルに対する修正ベクトルを算出する修正ベクトル算出部と、
前記格子点の前記参照ベクトルに前記修正ベクトルを加えることにより前記参照ベクトルを修正し、前記格子点に配分された前記複数のデータと前記参照ベクトルとを用いて前記格子点間距離を更新する距離更新部と、
指定された終了条件を満たすまで、前記複数のデータの全てについて、かつ前記複数の格子点の全てについて、前記探索部と、前記データ配分部と、前記修正ベクトル算出部と、前記距離更新部と、における処理を繰り返させる繰り返し制御部と、
前記繰り返しにより更新された前記格子点間距離を示す情報を出力する情報出力部と、
を備えるデータ処理装置。
【請求項2】
前記距離算出部では前記一の格子点の前記参照ベクトルと前記他の格子点の前記参照ベクトルとを用いて前記格子点間距離を算出し、
前記探索部では前記入力ベクトルと前記参照ベクトルとを用いて前記距離を算出する請求項1に記載のデータ処理装置。
【請求項3】
前記初期値設定部では、前記
複数のデータの統計学的な特徴に基づいて参照ベクトルの初期値を設定する請求項1または2に記載のデータ処理装置。
【請求項4】
前記距離関数は
データどうしの距離を求める関数である請求項1から3のいずれか1項に記載のデータ処理装置。
【請求項5】
前記修正ベクトル算出部は、前記格子点間距離が遠くなるほど値が小さくなる関数を前記反映関数として前記修正ベクトルを算出する請求項1から4のいずれか1項に記載のデータ処理装置。
【請求項6】
前記初期値設定部では、前記複数のデータの数より少ない数の格子点で構成される前記格子点空間の前記格子点に対して前記参照ベクトルの前記初期値を設定する請求項1から5のいずれか1項に記載のデータ処理装置。
【請求項7】
前記情報出力部では、前記格子点間距離を示す前記情報に基づいて、前記格子点の分布及び前記格子点に配分された前記複数のデータを2次元空間または3次元空間で表した格子点分布図を作成して出力する請求項1から6のいずれか1項に記載のデータ処理装置。
【請求項8】
前記情報出力部では、前記2次元空間または前記3次元空間において前記格子点の初期配置を設定し、前記格子点の配置を調整して指定された評価関数を最小化し、前記調整された前記配置に基づいて前記格子点分布図を作成して出力する請求項7に記載のデータ処理装置。
【請求項9】
前記データ入力部では化合物の局所安定構造と前記局所安定構造のエネルギーとを関連付けて入力し、
前記繰り返し制御部では、前記更新された前記格子点間距離に基づいて前記化合物の前記局所安定構造を抽出する抽出処理と、前記格子点どうしの前記結合を前記格子点間距離に応じて切断する切断処理とを、指定された数の前記局所安定構造が抽出されるまで繰り返す請求項1から6のいずれか1項に記載のデータ処理装置。
【請求項10】
前記繰り返し制御部では、前記抽出処理として、
一の格子点に対し、前記一の格子点に配分された前記局所安定構造の前記エネルギーのうち最小のエネルギーを前記一の格子点の代表エネルギーとして、前記一の格子点と、前記一の格子点に結合している他の全ての格子点との間で前記代表エネルギーを比較し、前記比較の結果に基づき最小の前記代表エネルギーに対応する前記局所安定構造を抽出する処理を行う請求項9に記載のデータ処理装置。
【請求項11】
前記情報出力部では、前記格子点空間を前記格子点の配置及び前記格子点間距離に応じて2次元空間または3次元空間に射影したエネルギー分布図であって、前記格子点と前記格子点の前記代表エネルギーとの対応を示すエネルギー分布図を表示装置に表示させる請求項10に記載のデータ処理装置。
【請求項12】
前記情報出力部では、前記格子点に配分された前記局所安定構造の数に応じた大きさ、かつ前記格子点の前記代表エネルギーに応じた色の記号を用いて前記エネルギー分布図を表示させる請求項11に記載のデータ処理装置。
【請求項13】
データを入力するデータ入力部と、前記入力したデータを処理するデータ処理部と、前記処理したデータについての情報を出力する情報出力部と、を有するデータ処理装置のデータ処理方法であって、
前記データ入力部により複数のデータを入力するデータ入力工程と、
前記データ処理部により、
複数の格子点を含む格子点空間であって、一の格子点が他の全ての格子点と結合している格子点空間の全ての格子点に対し、前記複数のデータに基づいて参照ベクトルの初期値を設定する初期値設定工程と、
前記参照ベクトルの前記初期値に基づいて、指定された距離関数を用いて一の格子点と他の格子点との格子点間距離を算出する距離算出工程と、
前記複数のデータの成分で構成される入力ベクトルと前記格子点に対する前記参照ベクトルとの距離を前記距離関数に基づいて算出し、前記入力ベクトルについて前記距離が最も短い格子点である最近格子点を前記算出の結果に基づいて探索する探索工程と、
前記探索の結果に基づいて、前記複数のデータ
のそれぞれを前記最近格子点に対するデータとして配分するデータ配分工程と、
前記最近格子点及び前記最近格子点の周囲の格子点に前記複数のデータの情報を反映する反映関数を用いて、前記参照ベクトルに対する修正ベクトルを算出する修正ベクトル算出工程と、
前記格子点の前記参照ベクトルに前記修正ベクトルを加えることにより前記参照ベクトルを修正し、前記格子点に配分された前記
複数のデータと前記参照ベクトルとを用いて前記格子点間距離を更新する距離更新工程と、
指定された終了条件を満たすまで、前記複数のデータの全てについて、かつ前記複数の格子点の全てについて、前記探索工程と、前記データ配分工程と、前記修正ベクトル算出工程と、前記距離更新工程と、における処理を繰り返させる繰り返し制御工程と、を行い、
前記情報出力部により、前記繰り返しにより更新された前記格子点間距離を示す情報を出力する情報出力工程を行うデータ処理方法。
【請求項14】
複数のデータを入力するデータ入力工程と、
複数の格子点を含む格子点空間であって、一の格子点が他の全ての格子点と結合している格子点空間の全ての格子点に対し、前記
複数のデータに基づいて参照ベクトルの初期値を設定する初期値設定工程と、
前記参照ベクトルの前記初期値に基づいて、指定された距離関数を用いて一の格子点と他の格子点との格子点間距離を算出する距離算出工程と、
前記複数のデータの成分で構成される入力ベクトルと前記格子点に対する前記参照ベクトルとの距離を前記距離関数に基づいて算出し、前記入力ベクトルについて前記距離が最も短い格子点である最近格子点を前記算出の結果に基づいて探索する探索工程と、
前記探索の結果に基づいて、前記
複数のデータ
のそれぞれを前記最近格子点に対するデータとして配分するデータ配分工程と、
前記最近格子点及び前記最近格子点の周囲の格子点に前記
複数のデータの情報を反映する反映関数を用いて、前記参照ベクトルに対する修正ベクトルを算出する修正ベクトル算出工程と、
前記格子点の前記参照ベクトルに前記修正ベクトルを加えることにより前記参照ベクトルを修正し、前記格子点に配分された前記
複数のデータと前記参照ベクトルとを用いて前記格子点間距離を更新する距離更新工程と、
指定された終了条件を満たすまで、前記複数のデータの全てについて、かつ前記複数の格子点の全てについて、前記探索工程と、前記データ配分工程と、前記修正ベクトル算出工程と、前記距離更新工程と、における処理を繰り返させる繰り返し制御工程と、
前記繰り返しにより更新された前記格子点間距離を示す情報を出力する情報出力工程と、
をコンピュータに実行させるデータ処理プログラム。
【請求項15】
請求項14に記載のデータ処理プログラムのコンピュータ読み取り可能なコードが記録された非一時的記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理装置、データ処理方法、データ処理プログラム、及び非一時的記録媒体に関し、特に入力データを分類する技術に関する。
【背景技術】
【0002】
入力データを類似の性質を持つデータに分類する手法として、「自己組織化マップ(SOM:Self-Organizing Map)」を用いる技術が知られている。自己組織化マップ(以下、“SOM”と記載する場合がある)はT.コホネン氏によって考案された機械学習の一手法により生成されるマップであり、入力データに最も近い参照データを持つ格子点を探し、その格子点の周囲に入力データの情報を染み込ませる(反映する)操作を繰り返すことで自己組織的に生成されるマップである。また、SOMはデータの類似関係を維持しつつ、多数の入力データを高次元空間から低次元空間に写像したマップである。このようなSOMを利用したデータ分類技術として、分子の立体構造を示す構造地図を作成することが知られている(例えば、特許文献1を参照)。なお、データの次元は分子の場合例えば二面角の数で表すことができ、複雑な立体構造の分子ほど高次元のデータになる。
【0003】
上述したSOMの作成においては、マップにおけるデータの配置は学習により変化してゆく。このような変化の様子は、例えば非特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】“勝手に整理整頓 ─ 自動分類アルゴリズム”、[online]、池谷裕二、[2018年5月7日検索]、インターネット(http://gaya.jp/spiking_neuron/som.htm)
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1及び非特許文献1に記載されているSOMを用いる場合、マップ上の離れた場所にほぼ同じ参照データの格子点が現れることがある。例えば非特許文献1におけるシミュレーション(各格子点(セル)におけるデータを(赤(R:Red),緑(G:Green),青(B:Blue))の成分で表される3次元の色ベクトルで表現している)の結果でも、「黄色」のセルがマップ上の離れた場所に現れてしまっている。すなわち、「SOMでは、本来は類似の性質を持つデータであるにも関わらず、特徴が大きく異なるデータとして分類されてしまう場合がある」ということである。
【0007】
このように、従来の技術は複数の高次元データを適切に分類できるものではなかった。
【0008】
本発明はこのような事情に鑑みてなされたもので、複数の高次元データを適切に分類できるデータ処理装置、データ処理方法、データ処理プログラム、及び非一時的記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した目的を達成するため、本発明の第1の態様に係るデータ処理装置は、複数のデータを入力するデータ入力部と、複数の格子点を含む格子点空間であって、一の格子点が他の全ての格子点と結合している格子点空間の全ての格子点に対し、複数のデータに基づいて参照ベクトルの初期値を設定する初期値設定部と、参照ベクトルの初期値に基づいて、指定された距離関数を用いて一の格子点と他の格子点との格子点間距離を算出する距離算出部と、複数のデータの成分で構成される入力ベクトルと格子点に対する参照ベクトルとの距離を距離関数に基づいて算出し、入力ベクトルについて距離が最も短い格子点である最近格子点を算出の結果に基づいて探索する探索部と、探索の結果に基づいて、複数のデータのそれぞれを最近格子点に対するデータとして配分するデータ配分部と、最近格子点及び最近格子点の周囲の格子点に複数のデータの情報を反映する反映関数を用いて、参照ベクトルに対する修正ベクトルを算出する修正ベクトル算出部と、格子点の参照ベクトルに修正ベクトルを加えることにより参照ベクトルを修正し、格子点に配分された複数のデータと参照ベクトルとを用いて格子点間距離を更新する距離更新部と、指定された終了条件を満たすまで、複数のデータの全てについて、かつ複数の格子点の全てについて、探索部と、データ配分部と、修正ベクトル算出部と、距離更新部と、における処理を繰り返させる繰り返し制御部と、繰り返しにより更新された格子点間距離を示す情報を出力する情報出力部と、を備える。
【0010】
本願発明者らは上述した従来技術(SOM)の問題点について鋭意検討を重ね、「類似したデータがマップの離れた場所に出現するのは、格子点空間に特定の形状(非特許文献1では10×10の正方格子)を設定しており、遠距離の格子点には入力データの情報が反映されないことに起因する」との知見を得た。このような知見に基づき、第1の態様に係るデータ処理装置では、格子点空間に特別な形状は仮定せず参照データ(各格子点に配分されたデータ)間の類似度を格子点間距離と見なしている。具体的には、SOMにおいては
図12の(a)部分に示すように格子点801と格子点802,803,804の距離はそれぞれ1,2^(1/2)、2であるのに対し、本発明においては、
図12の(b)部分に示すように格子点A1,A2,A3,A4間の距離は類似度を表す関数「D(i,j)」(i,jは格子点を示す指標)によりD(A1,A2)、D(A1,A4)のように表される(D(i,j)は、例えば参照データ間のEuclid距離を示す関数である)。なお、
図12の(b)部分では格子点空間を便宜上正方格子で描いているが、D(A1,A2)<D(A1,A4)とは限らないので、格子点距離の関係を厳密に描くのは困難である。
【0011】
このように、本発明では一の格子点が他の全ての格子点と(参照データ間の類似度に応じた格子点間距離で)結合しており「形状的に遠距離の格子点」は存在しないので、全ての格子点に入力データの情報を反映することができ、格子点空間の離れた場所にほぼ同じ参照データの格子点が現れることがない。これにより、第1の態様に係るデータ処理装置では複数の高次元データを適切に分類することができる。なお、格子点間の結合は格子点間距離の更新を繰り返す間維持されていればよく、更新が終了し情報(例えば、2次元あるいは3次元のマップ)を出力する段階では切断してもよい。
【0012】
なお第1の態様及び以下の各態様において、「参照ベクトル」は格子点に属するデータの特徴を表すベクトルである。参照ベクトルと距離の近いデータが、その参照ベクトルを有する格子点に格納されることになるが、これは参照ベクトルに特徴が似ているデータがその格子点に集まってくることを意味する。参照ベクトルの初期値はランダムに設定することも可能であるが、ランダムに設定した場合、入力データが同一であっても処理の度に格子点間距離の更新結果が異なる可能性があるので、参照ベクトルの初期値はあらかじめ決められた基準により設定することが好ましい。また、入力するデータの空間分布を反映した初期値であることがさらに好ましい。
【0013】
また、第1の態様及び以下の各態様において、任意の2点(x,y)あるいは2つのデータの集団(X,Y)に対し以下の4つの条件を満たす任意の関数d(x,y)を「距離関数」として用いることができる(関数d(X,Y)についても条件は同様である)。
【0014】
条件(1):d(x,y)は負でない実数
条件(2):d(x,y)=0であればx=y
条件(3):d(x,y)=d(y,x)
条件(4):d(x,z)+d(z,y)≧d(x,y)
【0015】
第2の態様に係るデータ処理装置は第1の態様において、距離算出部では一の格子点の参照ベクトルと他の格子点の参照ベクトルとを用いて格子点間距離を算出し、探索部では入力ベクトルと参照ベクトルとを用いて距離を算出する。第2の態様は、格子点間距離、及び入力ベクトルと参照ベクトルとの距離の算出手法の一態様を規定するものである。
【0016】
第3の態様に係るデータ処理装置は第1または第2の態様において、初期値設定部では、複数のデータの統計学的な特徴に基づいて参照ベクトルの初期値を設定する。第3の態様は初期値設定手法の一態様を規定するもので、「統計学的な特徴」として例えば平均、分散、相関等を用いることができるが、これらの例には限定されない。具体的な手法としては主成分分析、回帰分析、カーネル主成分分析等を用いることができ、主成分分析を用いる場合、初期値設定部は入力したデータの平均ベクトル、分散共分散行列の最大固有値、及び最大固有値に対応する固有ベクトルに基づいて参照ベクトルの初期値を設定することができる。また、最大固有値(第1主成分)に加えて第2,第3主成分をさらに考慮して参照ベクトルの初期値を設定してもよい。
【0017】
第4の態様に係るデータ処理装置は第1から第3の態様のうちいずれか1つにおいて、距離関数はデータどうしの距離を求める関数である。「データどうしの距離」とは任意の2点(x,y)についての距離に加え、2つのデータの集団(X,Y)についての距離をも含む。具体的には例えばWard距離、Euclid距離、Mahalanobis距離、その他クラスター分析で用いられる関数を距離関数とすることができる。これらの関数は第1の態様について上述した条件を満たす距離関数の具体例であるが、本発明のデータ処理装置における距離関数はこれらに限定されるものではない。
【0018】
第5の態様に係るデータ処理装置は第1から第4の態様のうちいずれか1つにおいて、修正ベクトル算出部は、格子点間距離が遠くなるほど値が小さくなる関数を反映関数として修正ベクトルを算出する。第5の態様では、格子点間距離が遠くなるほど情報の反映度合いが低くなる関数を反映関数として修正ベクトルを算出する。具体的には、例えば格子点間距離をdとし、データを反映する範囲をσとした場合にexp(-d/σ)で表される関数を反映関数として修正ベクトルを算出することができるが、このような態様に限定されるものではない。なおこの場合、σは入力データの影響が及ぶ範囲を規定する定数である。
【0019】
第6の態様に係るデータ処理装置は第1から第5の態様のうちいずれか1つにおいて、初期値設定部では、複数のデータの数より少ない数の格子点で構成される格子点空間の格子点に対して参照ベクトルの初期値を設定する。第6の態様では、データをクラスタリングするためにこのような条件を設定している。
【0020】
第7の態様に係るデータ処理装置は第1から第6の態様のうちいずれか1つにおいて、情報出力部では、格子点間距離を示す情報に基づいて、格子点の分布及び格子点に配分された複数のデータを2次元空間または3次元空間で表した格子点分布図を作成して出力する。第7の態様では、格子点の分布を2次元空間または3次元空間(低次元空間)で表した格子点分布図を作成して出力するので、入力データが高次元の場合であっても、ユーザはデータの分布を容易に把握することができる。
【0021】
第8の態様に係るデータ処理装置は第7の態様において、情報出力部では、2次元空間または3次元空間において格子点の初期配置を設定し、格子点の配置を調整して指定された評価関数を最小化し、調整された配置に基づいて格子点分布図を作成して出力する。第8の態様は低次元化された格子点分布図を作成する手法の一態様を規定するもので、例えば多次元尺度法を用いることができるが、これに限定されるものではない。また、評価関数の最小化には例えば最急降下法を採用できるが、これに限定されるものではない。
【0022】
第9の態様に係るデータ処理装置は第1から第6の態様のうちいずれか1つにおいて、データ入力部では化合物の局所安定構造と局所安定構造のエネルギーとを関連付けて入力し、繰り返し制御部では、更新された格子点間距離に基づいて化合物の局所安定構造を抽出する抽出処理と、格子点どうしの結合を格子点間距離に応じて切断する切断処理とを、指定された数の局所安定構造が抽出されるまで繰り返す。第9の態様は化合物の局所安定構造を抽出する場合の処理の一態様を規定するものである。
【0023】
一般的に化合物は環境(温度、pH等)に依存して異なる構造を取り得るが、例えば薬剤の候補となる化合物を探索する場合等、安定的な構造(エネルギーが低い構造)を取得したい場合がある。しかしながら化合物は周囲の環境等により必ずしも最安定構造(エネルギーが最も低い構造)を取るわけではないので、局所安定構造を多数取得し、その中から尤もらしい構造を抽出することが効果的である。本発明に係るデータ処理装置では、第1の態様について上述したように格子点空間の離れた場所にほぼ同じ参照データの格子点が現れることがなく、化合物の場合は「本当は1つの局所安定構造なのに、複数の格子点に分裂して現れる」ことがないため、局所安定構造を正確に抽出することができる。
【0024】
なお、第9の態様において「局所安定構造」とは一の格子点に対応するエネルギーと、その格子点と直接結合している他の格子点のエネルギーとの間で、最も低いエネルギーに対応する構造である。抽出処理及び切断処理の開始時は一の格子点が他の全ての格子点が結合しているので局所安定構造は最安定構造の1つのみであるが、抽出処理及び切断処理を繰り返すと局所安定構造が増えていく。このため、所望の数の局所安定構造を抽出するまで抽出処理及び切断処理を繰り返す。なお抽出処理及び切断処理は、格子点空間を示すマップ(ユーザが視覚的に把握可能なマップ)を作成せずデータ処理装置の処理として行うことができる。
【0025】
なお、第9の態様において、化合物の立体構造に由来するエネルギー(あるいは自由エネルギー)であれば任意の「エネルギー」を用いることができる。例えば量子科学計算の場合には全電子エネルギーを用いることができる。
【0026】
第10の態様に係るデータ処理装置は第9の態様において、繰り返し制御部では、抽出処理として、一の格子点に対し、一の格子点に配分された局所安定構造のエネルギーのうち最小のエネルギーを一の格子点の代表エネルギーとして、一の格子点と、一の格子点に結合している他の全ての格子点との間で代表エネルギーを比較し、比較の結果に基づき最小の代表エネルギーに対応する局所安定構造を抽出する処理を行う。第10の態様は抽出処理の具体的内容を規定するものである。
【0027】
第11の態様に係るデータ処理装置は第10の態様において、情報出力部では、格子点空間を格子点の配置及び格子点間距離に応じて2次元空間または3次元空間に射影したエネルギー分布図であって、格子点と格子点の代表エネルギーとの対応を示すエネルギー分布図を表示装置に表示させる。第11の態様では格子点空間を2次元または3次元(入力データの次元よりも低次元の空間)に射影したエネルギー分布図を表示装置に表示させるので、ユーザはエネルギー分布の様子(局所安定構造になる位置)を視覚的に容易に把握することができる。
【0028】
第12の態様に係るデータ処理装置は第11の態様において、情報出力部では、格子点に配分された局所安定構造の数に応じた大きさ、かつ格子点の代表エネルギーに応じた色の記号を用いてエネルギー分布図を表示させる。第12の態様はエネルギー分布図の具体的な表示態様を規定するもので、ユーザはエネルギー分布の様子を視覚的にいっそう容易に把握することができる。
【0029】
上述した目的を達成するため、本発明の第13の態様に係るデータ処理方法はデータを入力するデータ入力部と、入力したデータを処理するデータ処理部と、処理したデータについての情報を出力する情報出力部と、を有するデータ処理装置のデータ処理方法であって、データ入力部により複数のデータを入力するデータ入力工程と、データ処理部により、複数の格子点を含む格子点空間であって、一の格子点が他の全ての格子点と結合している格子点空間の全ての格子点に対し、複数のデータに基づいて参照ベクトルの初期値を設定する初期値設定工程と、参照ベクトルの初期値に基づいて、指定された距離関数を用いて一の格子点と他の格子点との格子点間距離を算出する距離算出工程と、複数のデータの成分で構成される入力ベクトルと格子点に対する参照ベクトルとの距離を距離関数に基づいて算出し、入力ベクトルについて距離が最も短い格子点である最近格子点を算出の結果に基づいて探索する探索工程と、探索の結果に基づいて、複数のデータのそれぞれを最近格子点に対するデータとして配分するデータ配分工程と、最近格子点及び最近格子点の周囲の格子点に複数のデータの情報を反映する反映関数を用いて、参照ベクトルに対する修正ベクトルを算出する修正ベクトル算出工程と、格子点の参照ベクトルに修正ベクトルを加えることにより参照ベクトルを修正し、格子点に配分された複数のデータと参照ベクトルとを用いて格子点間距離を更新する距離更新工程と、指定された終了条件を満たすまで、複数のデータの全てについて、かつ複数の格子点の全てについて、探索工程と、データ配分工程と、修正ベクトル算出工程と、距離更新工程と、における処理を繰り返させる繰り返し制御工程と、を行い、情報出力部により、繰り返しにより更新された格子点間距離を示す情報を出力する情報出力工程を行う。
【0030】
第13の態様によれば、第1の態様と同様に複数の高次元データを適切に分類することができる。なお、第13の態様に対し第2~第12の態様と同様の構成をさらに含めてもよい。
【0031】
上述した目的を達成するため、本発明の第14の態様に係るデータ処理プログラムは複数のデータを入力するデータ入力工程と、複数の格子点を含む格子点空間であって、一の格子点が他の全ての格子点と結合している格子点空間の全ての格子点に対し、複数のデータに基づいて参照ベクトルの初期値を設定する初期値設定工程と、参照ベクトルの初期値に基づいて、指定された距離関数を用いて一の格子点と他の格子点との格子点間距離を算出する距離算出工程と、複数のデータの成分で構成される入力ベクトルと格子点に対する参照ベクトルとの距離を距離関数に基づいて算出し、入力ベクトルについて距離が最も短い格子点である最近格子点を算出の結果に基づいて探索する探索工程と、探索の結果に基づいて、複数のデータのそれぞれを最近格子点に対するデータとして配分するデータ配分工程と、最近格子点及び最近格子点の周囲の格子点に複数のデータの情報を反映する反映関数を用いて、参照ベクトルに対する修正ベクトルを算出する修正ベクトル算出工程と、格子点の参照ベクトルに修正ベクトルを加えることにより参照ベクトルを修正し、格子点に配分された複数のデータと参照ベクトルとを用いて格子点間距離を更新する距離更新工程と、指定された終了条件を満たすまで、複数のデータの全てについて、かつ複数の格子点の全てについて、探索工程と、データ配分工程と、修正ベクトル算出工程と、距離更新工程と、における処理を繰り返させる繰り返し制御工程と、繰り返しにより更新された格子点間距離を示す情報を出力する情報出力工程と、をコンピュータに実行させる。
【0032】
第14の態様によれば、第1及び第13の態様と同様に複数の高次元データを適切に分類することができる。また、第14の態様に対し第2~第12の態様と同様の構成をさらに含めてもよい。なお、第14の態様における「コンピュータ」は、CPU(Central Processing Unit)等の各種プロセッサを1つ以上用いて実現することができる。
【0033】
上述した目的を達成するため、本発明の第15の態様に係る非一時的記録媒体は、第14の態様に係るデータ処理プログラムのコンピュータ読み取り可能なコードが記録された非一時的記録媒体である。第15の態様に係る非一時的記録媒体において、第14の態様に加えて第2~第12の態様に係る構成をさらに備えたプログラムについてのコードが記録されていてもよい。
【発明の効果】
【0034】
以上説明したように、本発明のデータ処理装置、データ処理方法、データ処理プログラム、及び非一時的記録媒体によれば、複数の高次元データを適切に分類することができる。
【図面の簡単な説明】
【0035】
【
図1】
図1は、第1の実施形態に係るデータ処理装置の構成を示すブロック図である。
【
図2】
図2は、処理部の構成を示すブロック図である。
【
図3】
図3は、記憶部に記憶される情報を示す図である。
【
図4】
図4は、データ処理方法の手順を示すフローチャートである。
【
図6】
図6は、irisデータの分布を示す図である。
【
図7】
図7は、格子点へのデータの配分の様子を示す図である。
【
図8】
図8は、格子点分布図の作成手順を示すフローチャートである。
【
図9】
図9は、分布図の作成の様子を示す図である。
【
図11】
図11は、従来技術及び本発明によるirisデータの分類結果を示す図である。
【
図12】
図12は、従来技術及び本発明における格子点間距離を示す図である。
【
図13】
図13は、処理の繰り返しに伴い分類が進展していく様子を示す図である。
【
図14】
図14は、化合物のエネルギー曲面を示す概念図である。
【
図15】
図15は、局所安定構造の抽出手順を示すフローチャートである。
【
図16】
図16は、局所安定構造の抽出を説明するための図である。
【
図17】
図17は、局所安定構造の抽出を説明するための他の図である。
【
図18】
図18は、C
12の立体構造を本発明の手法で分類した結果を示す図である。
【
図19】
図19は、アラニンジペプチドの構造及びその立体構造の分布を示す図である。
【
図20】
図20は、アラニンジペプチドの自由エネルギー曲面を示す図である。
【
図22】
図22は、本発明の手法による分類結果を示す図である。
【
図23】
図23は、分子安定構造の探索装置の処理部の構成を示す図である。
【
図24】
図24は、分子安定構造の探索装置の記憶部に記憶される情報を示す図である。
【
図25】
図25は、分子安定構造の探索方法の手順を示すフローチャートである。
【発明を実施するための形態】
【0036】
以下、添付図面を参照しつつ、本発明のデータ処理装置、データ処理方法、データ処理プログラム、及び非一時的記録媒体の実施形態について詳細に説明する。なお、以下の説明において本発明に係るデータ処理方法を「SCTM法(SCTM:Self-Constructing Topological Map)」と記載する場合がある。
【0037】
<第1の実施形態>
図1は第1の実施形態に係るデータ処理装置10(データ処理装置)の構成を示すブロック図である。
図1に示すように、データ処理装置10は処理部100、記憶部200、表示部300、及び操作部400を備え、互いに接続されて必要な情報が送受信される。これらの構成要素については各種の設置形態を採用することができ、各構成要素が1箇所(1筐体内、1室内等)に設置されていてもよいし、離れた場所に設置されネットワークを介して接続されていてもよい。また、データ処理装置10はインターネット等のネットワーク1000を介して外部サーバ500及び外部データベース510に接続され、入力データ等の必要な情報を取得することができる。
【0038】
<処理部の構成>
図2は処理部100の構成を示す図である。処理部100はデータ入力部102(データ入力部)、初期値設定部104(初期値設定部)、距離算出部106(距離算出部)、探索部108(探索部)、データ配分部110(データ配分部)、修正ベクトル算出部112(修正ベクトル算出部)、距離更新部114(距離更新部)、繰り返し制御部116(繰り返し制御部)、情報出力部118(情報出力部)、CPU120(CPU:Central Processing Unit)、ROM122(ROM:Read Only Memory)、及びRAM124(RAM:Random Access Memory)を備える。データ入力部102はデータ入力部を構成し、初期値設定部104、距離算出部106、探索部108、データ配分部110、修正ベクトル算出部112、距離更新部114、及び繰り返し制御部116はデータ処理部を構成し、情報出力部118は情報出力部を構成する。これら処理部100の各部を用いたデータ処理の手順については、詳細を後述する。なお、各部での処理はCPU120の制御の下で行われる。
【0039】
上述した処理部100の各部の機能は、各種のプロセッサ(processor)を用いて実現できる。各種のプロセッサには、例えばソフトウェア(プログラム)を実行して各種の機能を実現する汎用的なプロセッサであるCPUが含まれる。また、上述した各種のプロセッサには、画像処理に特化したプロセッサであるGPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)も含まれる。さらに、ASIC(Application Specific Integrated Circuit)などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路なども上述した各種のプロセッサに含まれる。
【0040】
各部の機能は1つのプロセッサにより実現されてもよいし、同種または異種の複数のプロセッサ(例えば、複数のFPGA、あるいはCPUとFPGAの組み合わせ、またはCPUとGPUの組み合わせ)で実現されてもよい。また、複数の機能を1つのプロセッサで実現してもよい。複数の機能を1つのプロセッサで構成する例としては、第1に、クライアント、サーバなどのコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組合せで1つのプロセッサを構成し、このプロセッサが複数の機能として実現する形態がある。第2に、システムオンチップ(System On Chip:SoC)などに代表されるように、システム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の機能は、ハードウェア的な構造として、上述した各種のプロセッサを1つ以上用いて構成される。さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)である。
【0041】
上述したプロセッサあるいは電気回路がソフトウェア(プログラム)を実行する際は、実行するソフトウェアのプロセッサ読み取り可能なコード(コンピュータ読み取り可能なコード)をROM122(
図2を参照)等の非一時的記録媒体に記憶しておき、プロセッサがそのソフトウェアを参照する。非一時的記録媒体に記憶しておくソフトウェアは、本発明に係るデータ処理方法を実行するためのプログラム(データ処理プログラム)を含む。ROM122ではなく各種光磁気記録装置、半導体メモリ等の非一時的記録媒体にコードを記録してもよい。ソフトウェアを用いた処理の際には例えばRAM124が一時的記憶領域として用いられ、また例えば不図示のEEPROM(Electronically Erasable and Programmable Read Only Memory)に記憶されたデータを参照することもできる。
【0042】
<記憶部の構成>
記憶部200はDVD(Digital Versatile Disk)、ハードディスク(Hard Disk)、各種半導体メモリ等の非一時的記録媒体及びその制御部により構成され、例えば
図3に示す情報(入力データ202、参照ベクトル情報204、距離関数情報206、反映関数情報208、格子点間距離情報210、格子点分布
図212、エネルギー分布
図214)を記憶することができる。
【0043】
<表示部及び操作部の構成>
表示部300はモニタ310(表示装置)を備えており、入力した画像、記憶部200に記憶された情報、処理部100による処理の結果等を表示することができる。操作部400は入力デバイス及び/またはポインティングデバイスとしてのキーボード410及びマウス420を含んでおり、ユーザはこれらのデバイス及びモニタ310の画面を介して、本発明に係るデータ処理方法の実行に必要な操作を行うことができる。ユーザが実行できる操作には、例えば参照ベクトルの初期値設定方法、距離関数、反映関数の指定を含めることができる。
【0044】
<データ処理方法の手順>
図4は本発明に係るデータ処理方法の手順を示すフローチャートである。このフローチャートを、具体的な例を用いて説明する。
【0045】
<例1:irisデータの分類>
irisデータとは3種類のアヤメ(Setosa、Versicolor、Virginica)のがく(Sepal)と花弁(Petal)に関する公知のデータであり(例えばhttps://archive.ics.uci.edu/ml/machine-learning-databases/iris/から入手できる)、各種類のアヤメについて50ずつ、全部で150のデータを含む。
図5はirisデータの一部を示す表である。irisデータをプロットすると、例えば
図6のようになる(出典はhttps://commons.wikimedia.org/wiki/File:Iris_dataset_scatterplot.svg)。各データは、がくと花弁の長さと幅、計4つの次元を有するベクトル(高次元データ)と考えることができる。なお、irisデータのプロットにおいて、上述した出典ではSetosaを青、Versicolorを緑、Virginicaを赤でプロットしているが、図面のカラー表示は困難であるため、
図6ではSetosaを黒、Versicolorを濃いグレー、Virginicaを白の円でプロットしている。
【0046】
<データの入力>
データ入力部102は上述したirisデータを入力する(ステップS100:データ入力工程)。irisデータは記憶部200に入力データ202として記憶されているものを入力してもよいし、図示せぬ記録媒体から読み込んでもよい。また、ネットワーク1000を介して外部サーバ500及び外部データベース510から取得してもよい。
【0047】
<参照ベクトルの初期値設定>
初期値設定部104は、複数の格子点を含む格子点空間であって、一の格子点が他の全ての格子点と結合している格子点空間の全ての格子点に対し、複数のデータに基づいて参照ベクトルの初期値を設定する(ステップS110:初期値設定工程)。参照ベクトルは格子点に属するデータの特徴を表すベクトルである。例1では、格子点数を4とする。データを分類(クラスタリング)する観点からは、(格子点数<データ数)であることが好ましい。なお、格子点数が4の場合の格子点空間の様子は
図12の(b)部分(概念図)に示す通りである。
【0048】
初期値設定部104は、例えば入力データの主成分分析の結果に基づいて参照ベクトルの初期値を設定することができる。irisデータの場合、平均ベクトル<x>と分散共分散行列の最大固有値(第1主成分)λ、固有ベクトルXはそれぞれ以下の式(1)~(3)のようになる。なお、主成分分析は入力データの統計学的な特徴に基づく初期値設定手法の一例であり、平均ベクトル、第1主成分、固有ベクトル等は入力データの統計学的な特徴の一例である。
【0049】
【0050】
【0051】
【0052】
これらの式を用いて、格子点1~4に対する参照ベクトルを以下の式(4)のように設定する。式(4)においてN=4であり、iは1から4の整数である。
【0053】
【0054】
格子点1~4に対する参照ベクトルは、具体的にはそれぞれ以下の式(5)~(8)のように表すことができる。
【0055】
【0056】
【0057】
【0058】
【0059】
上述した例では第1主成分のみを考慮しているが、第2,第3主成分を考慮して初期値を設定してもよい。また、初期値の設定に主成分分析以外の手法(例えば回帰分析、カーネル主成分分析等、データの統計学的な特徴に基づく手法)を用いてもよい。初期値の設定に用いる方法及び設定条件をユーザの操作に応じて決定してもよい。なお、初期値の設定手法は入力データの空間分布を反映したものであることが好ましい。
【0060】
<格子点間距離の算出>
距離算出部106は、ステップS110で設定した参照ベクトルの初期値に基づいて、指定された距離関数を用いて一の格子点と他の格子点との格子点間距離を算出する(ステップS120:距離算出工程)。距離関数はデータどうしの距離(任意の2点(x,y)の距離に加え、2つのデータの集団(X,Y)についての距離をも含む)を求める関数であり、例1では距離関数DとしてWard距離を求める関数を考えるが、他にもEuclid距離、Mahalanobis距離を求める関数、その他クラスター分析で用いられる関数を用いてもよい。いずれの距離関数を用いるかをユーザの操作に応じて決定してもよい。
【0061】
格子点iと格子点jが与えられた場合、各格子点に属するデータの数をNi及びNj、格子点に属するデータの質量中心をci及びcjとすると、Ward距離は以下の式(9)で与えられる。式(9)は、格子点i,jに属するデータの集団どうしの距離を求めることを意味する。
【0062】
【0063】
また定義より、ベクトルをデータ数が1の格子点と見なせば、ベクトルaとベクトルbのWard距離は以下の式(10)で与えられる。
【0064】
【0065】
ステップS120の時点では各格子点にはまだ参照ベクトルr1~r4しかデータが配分されていないので、距離算出部106はWard距離を以下の式(11)により計算することができる。なお、式(11)は格子点1と格子点2の距離を示すが、その他の格子点についての距離も同様に計算することができる。
【0066】
【0067】
<最近格子点の探索>
探索部108は、入力データについて、上述した距離(入力データの成分で構成される入力ベクトルと参照ベクトルとの距離)の算出結果に基づいて、距離が最も短い格子点である最近格子点を探索する(ステップS130:探索工程)。例えばirisの1番目のデータの入力ベクトル(x1=(5.1, 3.5, 1.4, 0.2))であれば、各格子点の参照ベクトルとのWard距離は以下の式(12)~(15)のように計算できる。
【0068】
【0069】
【0070】
【0071】
【0072】
式(12)~(15)より、入力ベクトルx1と最も近い参照ベクトルを持つのは格子点4である。即ち、入力ベクトルx1について距離が最も短い格子点である最近格子点は、格子点4である。2番目~150番目のデータ(入力ベクトル)についても同様に格子点1~4との距離を算出し、最近格子点を探索する。
【0073】
<データの配分>
データ配分部110は、ステップS130での探索の結果に基づいて、入力ベクトルx
1(1番目の入力データ)を、最近格子点である格子点4に対するデータとして配分する(ステップS140:データ配分工程)。2番目~150番目のデータについても、最近格子点に対するデータとして配分する。その結果、入力データは
図7の表のように分類される。
【0074】
<修正ベクトルの算出及び格子点間距離の更新>
修正ベクトル算出部112は、最近格子点及び最近格子点の周囲の格子点に入力データ(複数のデータ)の情報を反映する反映関数を用いて、参照ベクトルに対する修正ベクトルを算出する(ステップS150:距離更新工程)。具体的には、修正ベクトル算出部112は以下の式(16)により修正ベクトルを算出する。
【0075】
【0076】
式(16)においてN
Dは全データ数(=150)、C
jは格子点jに格納された入力データの集合(例えば
図7では、格子点3に対して58番目、60番目、…99番目のデータの集合)である。なお、式(16)においてiとjは格子点を示す指標であり、kは入力データを示す指標である。
【0077】
式(16)において、fは最近格子点及び最近格子点の周囲の格子点に入力データ(複数のデータ)の情報を反映する反映関数であり、例1では以下の式(17)により定義される指数関数とするが、この関数に限定されるものではない。
【0078】
【0079】
式(17)の反映関数は、d(格子点間距離)が遠くなるほど値が小さくなる関数である。なお、上述したWard距離はEuclid距離の2乗の次元を持つため、式(17)の定義はEuclid距離に対するGauss関数とみなせる。σは入力データの影響が及ぶ範囲を規定する定数であり、適当な係数rσを用いて以下の式(18)のように与えることができる。したがって係数rσも任意の定数である。以下、例1ではrσ=0.1として説明するが、この値に限定されるものではない。
【0080】
【0081】
なお、反映関数は式(17)に示す指数関数に代えて、(1/d)のように距離に反比例して値が減少する関数を用いることもできる。(1/d)のような関数の場合、式(17)に示す指数関数よりも格子点間距離の増加による値の減少の度合いが少なく、入力データの影響を遠方まで強く及ぼすことができる。
【0082】
<格子点間距離の更新>
距離更新部114は、格子点の参照ベクトルに修正ベクトルを加えることにより、参照ベクトルを修正する(ステップS150:距離更新工程)。例えば、格子点1の参照ベクトルr1は以下の式(19)のように修正される。
【0083】
【0084】
距離更新部114は、同様にして格子点2~4の参照ベクトルr2~r4を修正する(ステップS150:距離更新工程)。
【0085】
距離更新部114は、格子点1~4に配分された入力データ(複数のデータ)と参照ベクトルr
1~r
4とを用いて格子点間距離を更新する(ステップS150:距離更新工程)。例えば、格子点1と2の距離(D(1,2))について説明すると、
図7に示すように入力データは格子点1に46つ、格子点2に45つ配分されているので、N
1=47、N
2=46であり(入力データ数+参照ベクトル数(1つ))、式(9)について上述したように、以下の式(20)のように格子点間距離が更新される。
【0086】
【0087】
距離更新部114は、他の格子点間距離も同様に更新する(ステップS150:距離更新工程)。
【0088】
<繰り返し制御>
繰り返し制御部116は、指定された終了条件を満たすまで(ステップS160でYESになるまで)、入力データ(複数のデータ)の全てについて、かつ複数の格子点の全てについて、探索部108と、データ配分部110と、修正ベクトル算出部112と、距離更新部114と、による処理(探索工程、データ配分工程、修正ベクトル算出工程、距離算出工程)を繰り返させる(ステップS160:繰り返し制御工程)。どのデータがどの格子点に配分されるかは、これらの処理を繰り返すにつれて変化していく(
図13を参照)。なお、終了条件としては繰り返し回数、処理時間、繰り返し前後での格子点間距離の変化量(例えば、変化量がしきい値以下になる)等を用いることができ、ユーザの操作に応じて終了条件を決定してもよい。
【0089】
なお、反映関数が格子点間距離の増加に伴って値が速やかに減少する関数である場合(例えば式(17)の指数関数である場合)、格子点間距離が十分に大きくなった格子点間については結合をいったん切断し、入力データの影響を反映させる処理をスキップしてもよい。ただし、格子点間距離が近づいてきたらまた結合させる必要があるので、格子点間距離自体は毎回全ての組み合わせについて計算する必要がある。このような結合の切断、再結合により計算コストを削減することができる。
【0090】
<格子点間距離の情報の出力>
情報出力部118は、上述した繰り返しにより更新された格子点間距離を示す情報を出力する(ステップS170:情報出力工程)。出力は文字、数字、図形、記号、及び色彩等の組合せにより行うことができ、また記憶部200への記憶(例えば、格子点分布
図212として記憶する;
図3参照)、モニタ310への表示等を行うことができる。なお、例1では格子点分布図を作成及び表示する場合について説明するが、分布図(マップ)の作成及び表示については、不要な場合(例えば、後述する例2において局所安定構造を得ることだけが目的の場合)は省略してもよい。
【0091】
<格子点分布図の作成及び表示>
ステップS170において格子点間距離を示す情報として格子点分布図を作成する場合について説明する。格子点分布図は、上述した格子点間距離を示す情報に基づいて、格子点の分布(配置及び距離)及び格子点に配分された入力データを以下の手法により2次元空間または3次元空間で表した図である。例1では、多次元尺度法により2次元の分布図を作成する場合について説明する。
【0092】
図8は格子点分布図の作成処理(ステップS170における具体的処理の一例)を示すフローチャートである。情報出力部118は、2次元空間において格子点の初期配置を設定する(ステップS172:初期配置設定工程)。具体的には、上述した4つの格子点を、
図9のように格子点間距離の平均値<D>の間隔で円形に並べる。そして、情報出力部118は格子点間に以下の式(21)に示すような二乗誤差の評価関数を設定する。
【0093】
【0094】
式(21)においてd(i,j)は格子点分布図上でのEuclid距離であり、D(i,j)は上述したWard距離である。
【0095】
情報出力部118は、格子点の配置(初期配置)を調整して指定された評価関数を最小化する(ステップS174:最小化工程)。評価関数としては例えば以下の式(22)で示される関数を用いることができる。
【0096】
【0097】
また、評価関数を最小化する手法としては例えば最急降下法を用いることができるが、これに限定されるものではない。他にも最小化問題の解決手法として種々の手法を用いることができる。
【0098】
情報出力部118は、調整された配置に基づいて格子点分布図を作成し(ステップS176:格子点分布図作成工程)、作成した格子点分布図を出力する(ステップS178:格子点分布図出力工程)。ステップS176での格子点分布図の作成では、各格子点を、格子点に配分された入力データの数に応じた大きさの記号(ここでは円とする)で表すことができる。また、格子点には任意の色を着色でき、例えばirisデータの分布図(上述した
図6の出典を参照オリジナル)ではオリジナルは青:Setosa、緑:Versicolor、赤:Virginicaなので、それに対応して着色することができる。具体的には、格子点1~4をそれぞれ赤、緑、黄、青で着色することができる。
【0099】
このようにして作成した格子点分布図を
図10に示す。ただし図面のカラー表示が困難なため、
図10では赤、緑、黄、青を黒、濃いグレー、薄いグレー(ドットによる網掛け)、白でそれぞれ表示している。情報出力部118は、この格子点分布図をモニタ310(表示装置)に表示させることができる。
図10において、1から4の数字は格子点番号を示し、括弧内の数字は各格子点に格納された入力データの数(左から順に青(Setosa)、緑(Versicolor)、赤(Virginica))である。例えば格子点4にはSetosaのデータが50個配分されており、格子点2にはVersicolorのデータが24個とVirginicaのデータが17個配分されている。これは、VersicolorのデータとVirginicaのデータが混ざっていることを意味する。実際、元のirisデータの空間分布(
図6参照)においても、そのような結果となっている。このように、本発明に係るデータ処理装置10、データ処理方法、データ処理プログラム、及び非一時的記録媒体により、実際の空間分布を適切に反映したクラス分類結果が得られた。
【0100】
<SOMとの比較>
本発明による分類結果を従来技術(SOM)と比較した結果について説明する。入力データは上述したirisデータであるが、格子点の数を16とし、従来技術(SOM)及び本発明(SCTM法)により分類した結果を
図11に示す。
図11の(a)部分はSOMによる分類結果であり、Setosa(オリジナルのプロットでは青であるが、黒のひし形で表示)やVirginica(オリジナルのプロットでは赤であるが、白の三角で表示)のデータが離れた格子点に分割されてしまっている。一方、
図11の(b)部分はSCTM法による分類結果であり、実際の空間分布を適切反映したクラス分類が得られた。
【0101】
<クラス分類の進展の様子>
上述したように、本発明に係るデータ処理方法では、指定された終了条件を満たすまで探索、データ配分、修正ベクトル算出、距離更新の処理(
図4のステップS130~ステップS150)を繰り返す。
図11の(b)部分に示すSCTM法の結果について、ステップS130~S150の処理を行った回数と、その時点での分類結果との関係を
図13に示す。
図13では、処理を繰り返すにつれて、クラス分類が進展していく様子が分かる。なお、繰り返し回数571回の時点で分類が収束したので、処理を終了している。すなわち、この例では終了条件を「クラス分類の収束」としているが、他の条件を終了条件としてもよい。
【0102】
以上説明したように、第1の実施形態に係るデータ処理装置10、データ処理方法、データ処理プログラム、及び非一時的記録媒体によれば、複数の高次元データを適切に分類することができる。
【0103】
<例2:化合物の局所安定構造の抽出>
一般的に化合物(分子)は環境(温度、pH等)に依存して異なる構造を取り得るが、例えば薬剤の候補となる化合物を探索する場合等、安定的な構造(エネルギーが低い構造)を取得したい場合がある。しかしながら化合物は周囲の環境等により必ずしも最安定構造(エネルギーが最も低い構造)を取るわけではないので、局所安定構造を多数取得し、その中から尤もらしい構造を抽出することが効果的である。局所安定構造の取得は例えば後述する手法により達成できるので、「取得した局所安定構造の中から、どのようにして尤もらしい構造を抽出するか」が問題となる。
【0104】
図14は化合物の立体構造とエネルギーとの関係を示す概念図である(実際には立体構造は多次元データであり、
図14では便宜上この多次元データを横軸としている)。実際のエネルギー曲面は
図14に示すように複雑に変化しているが、局所安定構造の包絡線の斜面上に存在する立体構造は、熱揺らぎで包絡線(実際には包絡面)上の局所安定構造に落ちていく(変化していく)はずである。したがって、包絡線上の局所安定構造(
図14において矢印で示した個所)を「尤もらしい構造」として抽出すればよいと考えられる。以下、本発明に係るデータ処理装置、データ処理方法、データ処理プログラム、及び非一時的記録媒体により包絡線上の局所安定構造を抽出する手法について説明する。なお、包絡線上の局所安定構造の抽出は上述したデータ処理装置10により行うことができる。また、抽出処理の手順は、入力データの次元数や格子点数等の条件を覗けば
図4のフローチャートについて上述したのと同様に行うことができる。以下では、局所安定構造の抽出に特有な処理を中心に説明する。
【0105】
<データの入力から格子点間距離の更新まで>
データ入力部102は、化合物の局所安定構造と局所安定構造のエネルギーとを関連付けて入力する(ステップS100:データ入力工程)。化合物の局所安定構造及びそのエネルギーは、例えば後述する手法(「化合物の局所安定構造の探索」の項を参照)により求めることができる。入力するデータの次元は化合物(分子)の二面角等の内部座標の数の次元であり、複雑な構造の化合物ほど次元が高くなる。なお、化合物のエネルギーとしては、化合物の立体構造に由来するエネルギー(あるいは自由エネルギー)であれば任意のエネルギーを用いることができる。入力するデータ(局所安定構造)の数は任意であるが、例えば1000から10000程度のデータを入力することができる。N個の局所安定構造を入力した場合、格子点の数はN個よりも少なくすることが好ましく、例えばN=1000の場合格子点の数を100個とすることができるが、このような値に限定されるものではない。
【0106】
ステップS110~S150の処理はデータの次元及びデータ数の違いを除けば上述した例1と同様に行うことができるので、詳細な説明を省略する。
【0107】
<局所安定構造の抽出>
格子点空間(ステップS150までの処理で格子点間距離が更新された状態)における局所安定構造を、(1)ある格子点に配分された構造のうちで最もエネルギーが低く、かつ(2)その格子点と繋がっている他の全ての格子点に属する構造よりもエネルギーが低い構造と定義する。例えば
図16に示す格子点空間の場合、格子点701,705に配分された構造が局所安定構造である。
図16では丸印が格子点を示し、格子点間の線は格子点どうしが結合していることを示す。丸の中の数字はその格子点に配分された局所安定構造のエネルギーのうち最小のエネルギー(以下、その格子点の「代表エネルギー」という)を示す。SCTM法において、局所安定構造の抽出を開始する時点では、
図17の(a)部分に示すように、格子点空間において一の格子点が他の全ての格子点と結合している。この状態では、局所安定構造は格子点705に配分された最安定構造の1つのみである。
【0108】
図15は局所安定構造の抽出処理を示すフローチャートである。繰り返し制御部116は、一の格子点と、一の格子点に結合している他の全ての格子点との間で代表エネルギーを比較し(ステップS162:抽出処理工程)、比較の結果に基づき最小の代表エネルギーに対応する局所安定構造を抽出する(ステップS164:抽出処理工程)。
図17の(a)部分に示す状態では、格子点705に配分された構造のみが抽出される。また、繰り返し制御部116は格子点どうしの結合を格子点間距離に応じて切断する(ステップS166:切断処理工程)。具体的には、格子点間距離の長いもの(格子点間の関係が希薄な状態)から順に切断する。
図17の(b)部分は、
図17の(a)部分に示す状態から格子点701と格子点706、格子点701と格子点708等の結合を切断した状態を示す。なお、
図17は格子点の結合関係を概念的に示したものであり格子点間距離を正確に示したものではないが、説明の便宜上これら格子点間の距離が長いものとする。
【0109】
図17の(b)部分に示す状態で代表エネルギーの比較結果に基づいて局所安定構造を抽出すると(ステップS162、S164)、この状態においても、局所安定構造は格子点705に配分された構造のみである。このような処理を繰り返し、
図17の(c)部分に示す状態で代表エネルギーの比較結果に基づいて局所安定構造を抽出すると(ステップS162、S164)、この状態では格子点701、705に配分された構造(2つ)が抽出される。繰り返し制御部116は、指定された数の局所安定構造が得られるまで(ステップS168でYESになるまで)ステップS162~S166の処理を繰り返す。指定された数の局所安定構造が得られたら、
図4のステップS170へ進んでエネルギー分布図(本発明における「格子点間距離を示す情報」の一態様)を出力する。なお、ステップS162~S168の処理はデータ処理装置10の内部処理として実施することができ、局所安定構造を抽出するためにマップ、分布図等を画像として作成する必要はない。マップ、分布図等の画像は必要な場合(例えば、操作部400を介したユーザの指示があった場合)に作成、表示することができる。
【0110】
<エネルギー分布図の作成及び表示>
情報出力部118は、格子点空間を、格子点の配置及び格子点間距離に応じて2次元空間または3次元空間に射影したエネルギー分布図であって、格子点と格子点の代表エネルギーとの対応を示すエネルギー分布図を作成し、モニタ310に表示させる(ステップS170:情報出力工程)。情報出力部118は、格子点に配分された局所安定構造の数に応じた大きさ、かつ格子点の代表エネルギーに応じた色の記号を用いてエネルギー分布図を作成し、表示させることができる。例えば、格子点に配分された局所安定構造の数が多いほど格子点を示す記号を大きくし、代表エネルギーが高い格子点を赤色、低い格子点は青色として表示させることができる。また、エネルギー分布図上での格子点どうしの距離はステップS150までの処理で更新された格子点間距離とし、結合している格子点は線で結んでもよい。格子点の配置は、上述した例1の場合と同様に、例えば多次元尺度法を用いて決定することができる。
【0111】
<エネルギー分布図の例>
C
12(ドデカン)の立体構造1000個を二面角に基づきSCTM法により分類して作成したエネルギー分布図(格子点空間を2次元空間に射影した場合)の例を
図18に示す。最安定構造(全ての二面角が180度)が分布図のほぼ中央に配置されている。なお、エネルギー分布図は格子点空間を3次元空間に射影して作成してもよい。
【0112】
<分子構造の分類の実施例:アラニンジペプチドについて>
アラニンジペプチド(2つのアラニンが結合してできているペプチド)についての分類の実施例について説明する。
図19の(a)部分はアラニンジペプチドの構造を示す図である(出典はhttps://www.cp2k.org/exercises:2014_ethz_mmm:alanine_dipeptide)。また、
図19の(b)部分は、分子動力学(MD:Molecular Dynamics)計算で得た立体構造を二面角φ、ψに着目してプロットした分布である。
【0113】
<従来技術及び本発明の手法による立体構造の分類>
図20の(a)部分は、アラニンジペプチドの自由エネルギー曲面を示す公知の図である(出典はJ.Phys.ChemB108,19487(2004))。アラニンジペプチドの自由エネルギー曲面については広く検討されており、上述した分子動力学による立体構造の分布(
図19の(b)部分)と比較すると、分子動力学により得られた立体構造はβ/C5、C7
eq、及びC7
axという3つの局所安定点近傍の構造であることが分かる(
図20の(b)部分を参照)。以下、これらの立体構造がどのように分類されるかについて、従来技術(SOM)及び本発明の手法(SCTM法)により確認した結果を説明する。
【0114】
<SOMによる分類結果>
図21の(a)部分に示す立体構造をSOMにより分類した結果を
図21の(b)部分に示す。格子点の数は16個(=4×4)である。SOMではβ/C5の構造がC7
eqの結果と混ざってしまい、3つの構造群を正しく分類できなかった。
【0115】
<SCTM法による分類結果>
図22の(a)部分に示す立体構造(
図21の(a)部分に示すものと同じ)をSCTM法により分類した結果を
図22の(b)部分に示す。SCTM法では3つの構造群(複数の高次元データ)を、位置関係も含めて正しく分類することができており、立体構造の分類に対してもSOMより有効である(複数の高次元データを適切に分類することができる)ことが分かる。
【0116】
<化合物の局所安定構造の探索>
<分子安定構造の探索装置>
上述した例2では化合物の局所安定構造(及びそのエネルギー)を複数入力するが、入力する安定構造を探索する手法の一態様について説明する。具体的には、安定構造は例えば化合物の構造式を取得する構造式取得部と、3次元構造を1つ以上発生させる3次元構造発生部と、3次元構造の内部座標を変更し、エネルギーの低い構造である局所安定構造を得る局所安定構造取得部と、局所安定構造の内部座標と、内部座標における局所安定構造のエネルギーと、を求めるエネルギー取得部と、化合物を構成するそれぞれの原子の内部座標ごとに算出されるエネルギー分布関数であって、局所安定構造の内部座標に対し、局所安定構造のエネルギーの分布を示すエネルギー分布関数を算出するエネルギー分布関数算出部と、エネルギー分布関数から、低エネルギーの内部座標の確率が大きくなる確率分布関数を算出する確率分布関数算出部と、局所安定構造を出力する出力部と、を有し、3次元構造発生部は、取得した化合物の構造式、または、確率分布関数に基づいて3次元構造を発生させる分子安定構造の探索装置を用いて探索することができる。
【0117】
<探索装置の構成>
上述した分子安定構造の探索装置は
図1に示すデータ処理装置10と同様の構成により実現できるが、探索装置において処理部100は、データ処理装置10の一部の構成(
図2において点線で囲んだ部分;データ入力部102から情報出力部118まで)に代えて、またはこれに加えて
図23の点線で囲んだ部分の構成(構造式取得部130から表示制御部146まで)を備える。構造式取得部130は、不図示のDVDドライブ、半導体メモリ用端子等の記録媒体インターフェース及び/またはネットワークを介して化合物の構造式等の情報を取得する。3次元構造発生部132は、構造式取得部130で取得した化合物の構造式から、構造式の内部座標をランダムに設定し、3次元構造を1つ以上発生させる。また、後述する確率分布関数に基づいて、内部座標を決定し、3次元構造を1つ以上発生させる。局所安定構造取得部134は、3次元構造発生部132で発生させた3次元構造の内部座標を変更していき、その構造の局所的な構造変形を行い、エネルギーの低い構造である局所安定構造を取得する。具体的には、エネルギーが低くなるように、構造を変形させていき、構造を変形させてもエネルギーが低くならない構造が局所安定構造である。また、局所安定構造取得部134は、最安定構造取得部136を備え、得られた局所安定構造の中から最もエネルギーの低い最安定構造を取得する。なお、分子安定構造の探索装置及び探索方法において「エネルギー」とは、3次元構造に由来するエネルギーであり、後述する内部座標の1つを変更することに起因するエネルギーを示すものではない。
【0118】
エネルギー取得部138は、局所安定構造取得部134で取得した局所安定構造のエネルギーを取得する。エネルギー分布関数算出部140は、局所安定構造の内部座標のそれぞれに対して、局所安定構造のエネルギー(構造エネルギー)の分布を示すエネルギー分布関数を算出する。エネルギー分布関数は、化合物を構成するそれぞれの内部座標ごとに算出される。確率分布関数算出部142は、エネルギー分布関数から、低エネルギーとなる内部座標の確率が大きくなる確率分布関数を算出する。
【0119】
出力部144は、局所安定構造取得部134で取得した局所安定構造を出力する。また、最安定構造取得部136で得られた最安定構造を出力する。表示制御部146は、取得した情報及び処理結果のモニタ310への表示を制御する。処理部100のこれらの機能を用いた分子安定構造の探索方法の処理については、詳細を後述する。分子安定構造の探索に関する処理部100の各部の機能は、
図2について上述したのと同様に、各種のプロセッサ(processor)を用いて実現することができる。なお、これらの機能による処理はCPU120の制御下で行われる。
【0120】
記憶部200には、
図3に示す情報に代えて、またはこれに加えて、
図24に示す情報が記憶される。構造情報250は化合物の構造式を含む。局所安定構造情報252は、構造情報250から発生させた3次元構造の内部座標を変更することで得られる局所安定構造の3次元構造情報(内部座標情報)及びそのエネルギー値の情報を含む。また、確率分布関数から発生させた3次元構造の内部座標を変更することで得られる局所安定構造の3次元構造情報(内部座標情報)及びそのエネルギー値の情報を含む。最安定構造情報254は、局所安定構造の中で最もエネルギーの低い構造である最安定構造の3次元構造情報(内部座標情報)及びそのエネルギー値の情報を含む。エネルギー分布関数情報256は、局所安定構造の1つ内部座標に対して、内部座標に対する局所安定構造のエネルギー(構造エネルギー)の分布を示すエネルギー分布関数を含む。確率分布関数情報258は、1つの内部座標に対して、低エネルギーの内部座標の確率が大きくなる確率分布関数を含む。エネルギー分布関数情報256及び確率分布関数情報258は、化合物を構成する原子の内部座標のそれぞれについて算出エネルギー分布関数及び確率分布関数が含まれる。また、確率分布関数によって発生させた3次元構造から局所安定構造を取得し、得られる局所安定構造の内部座標及びエネルギーをエネルギー分布関数及び確率分布関数に反映させることで、精度の高いエネルギー分布関数及び確率分布関数が得られる。エネルギー分布関数情報256及び確率分布関数情報258は、これらの局所安定構造の内部座標及びエネルギーが反映されたエネルギー分布関数及び確率分布関数も含む。
【0121】
<表示部及び操作部の構成>
ユーザは、
図1に示すキーボード410及びマウス420により、モニタ310の画面を介して分子安定構造の探索方法の実行に必要な操作を行うことができる。ユーザが実行できる操作には、例えば化合物の構造式の入力、確率分布関数算出時のしきい値の指定、確率分布関数を用いて三次元構造を発生させる際のしきい値の指定等が含まれる。
【0122】
<分子安定構造の探索方法>
上述した構成の装置において、分子安定構造の探索は化合物の構造式を取得する構造式取得工程と、構造式の内部座標をランダムに設定した3次元構造を1つ以上発生させる第1の3次元構造発生工程と、3次元構造の内部座標を変更し、エネルギーの低い構造である局所安定構造を得る局所安定構造取得工程と、局所安定構造の内部座標と、内部座標における局所安定構造のエネルギーと、を求めるエネルギー取得工程と、化合物を構成する1つまたは複数の内部座標ごとに算出される1次元または多次元のエネルギー分布関数であって、局所安定構造の内部座標に対し、局所安定構造のエネルギーの分布を示すエネルギー分布関数を算出するエネルギー分布関数算出工程と、エネルギー分布関数から、低エネルギーの内部座標の確率が大きくなる確率分布関数を算出する確率分布関数算出工程と、確率分布関数に基づいて、1つ以上の内部座標を同時に変更し、決定した内部座標を用いて3次元構造を1つ以上発生させる第2の3次元構造発生工程と、第2の3次元構造発生工程で発生させた3次元構造を用いて、局所安定構造取得工程、エネルギー取得工程、エネルギー分布関数算出工程、確率分布関数算出工程、及び、第2の3次元構造発生工程、を繰り返す繰り返し工程と、局所安定構造取得工程で得られた複数の局所安定構造、及び、複数の局所安定構造から、エネルギーが最も低い構造の少なくともいずれかを出力する出力工程と、を有する分子安定構造の探索方法により行うことができる。
【0123】
上述した探索方法では、まず、構造式から3次元構造を発生させ、内部座標を変更することで局所安定構造を取得し、得られた局所安定構造から、エネルギー分布関数、及び、低エネルギーの内部座標の確率が大きくなる確率分布関数を算出する。そして、この確率分布関数に基づいて3次元構造を発生させ、局所安定構造を取得し、この局所安定構造の内部座標、及び、エネルギーの値を、確率分布関数に反映させていくことで、低エネルギーの構造が得られる内部座標の確率を高くすることができる。したがって、エネルギーの低い局所安定構造を容易に取得することができる。また、繰り返し工程の回数を増やすことで、エネルギーのより低い局所安定構造を得ることができる。したがって、得られた複数の局所安定構造の中から、エネルギーが最も低い構造(最安定構造)の取得を短時間に行うことができる。また、上述した探索方法は、局所的な構造変形による配座探索ではなく、確率分布関数に基づいて、1つ以上の内部座標を同時に変化させながら構造探索を行っているため、多様な局所安定構造を短時間で得ることができる。
【0124】
<探索方法の手順>
図25は、化合物の分子安定構造の探索方法を示すフローチャートである。分子安定構造の探索方法は、まず、化合物の構造式を取得する構造式取得工程(ステップS10)と、構造式の内部座標をランダムに設定した3次元構造を1つ以上発生させる第1の3次元構造発生工程(ステップS12)と、発生させた3次元構造から局所安定構造を得る局所安定構造取得工程(ステップS14)と、局所安定構造のエネルギー(構造エネルギー)の値と、局所安定構造のそれぞれの原子の内部座標と、を求めるエネルギー取得工程(ステップS16)と、目的の構造または目的の数の局所安定構造または最安定構造が得られたか否かを判断する工程(ステップS18)と、を有する。
【0125】
ステップS18で、目的の構造または目的の数の局所安定構造または最安定構造が得られていないと判断した場合、それぞれの内部座標において、局所安定構造の内部座標に対し、局所安定構造のエネルギーの分布を示すエネルギー分布関数を算出するエネルギー分布関数算出工程(ステップS20)と、エネルギー分布関数から低エネルギーの内部座標の確率が大きくなる確率分布関数を算出する確率分布関数算出工程(ステップS22)と、確率分布関数に基づいて、3次元構造を1つ以上発生させる第2の3次元構造発生工程(ステップS24)と、を有する。エネルギー分布関数は、化合物を構成する1つの内部座標ごとに1次元のエネルギー分布関数を算出してもよく、2つの内部座標を用いて2次元のエネルギー分布関数、または、複数の内部座標を用いて多次元のエネルギー分布関数を算出してもよい。また、確率分布関数算出工程においては、計算を加速するための関数を加算することが好ましい。計算を加速する関数としてはホワイトノイズを挙げることができるが、これに限定されない。
【0126】
ステップS24で3次元構造を発生させた後、ステップS14に戻り、この3次元構造から局所安定構造を取得し、局所安定構造の内部座標及びエネルギーの値を取得する。そして、この局所安定構造の内部座標及びエネルギーの値を、今までのエネルギー分布関数及び確率分布関数に反映させる。ステップS14からステップS24を繰り返すことで、ステップS22で得られる確率分布関数を、低いエネルギーが得られる内部座標の確率が大きい確率分布関数とすることができる。そして、この確率分布関数を用いることで、よりエネルギーの低い局所安定構造を得られる確率を高めることができる。
【0127】
ステップS18で、目的の構造または目的の数の局所安定構造または最安定構造が得られたと判断した場合は、得られた複数の局所安定構造、及び、局所安定構造の中からエネルギーの最も低い最安定構造を1つ出力する出力工程(ステップS26)と、を有する。ステップS14からステップS24の工程を繰り返すことで、複数の局所安定構造を得ることができる。また、局所安定構造の中から最もエネルギーの低い構造を選ぶことで、得られた構造の中での最安定構造を得ることができる。特定の化合物を除き、得られた最安定構造が真に最安定であるかどうかを客観的に判断することは不可能だが、ステップS14からステップS24の工程を繰り返す回数が多ければ多いほど、得られた最安定構造が真に最安定である確率は高くなる。また、確率分布関数の収束の状況などからも、得られた最安定構造が真に最安定であるかどうかをある程度推定することが可能である。得られた構造の中での最安定構造を得ることで分子安定構造を決定することができる。また、複数の局所安定構造を出力することで、最安定構造がその化合物の実際の立体構造として採用されない際に、次の立体構造の候補を局所安定構造の中から選択することができる。また、複数の局所安定構造を出力することができる。
【0128】
以上で本発明の実施形態に関して説明してきたが、本発明は上述した態様に限定されず、本発明の精神を逸脱しない範囲で種々の変形が可能である。例えば、例1,例2で説明したirisデータや化合物の立体構造以外の一般のデータについても分類を行うことができる。
【符号の説明】
【0129】
1 格子点
2 格子点
3 格子点
4 格子点
10 データ処理装置
100 処理部
102 データ入力部
104 初期値設定部
106 距離算出部
108 探索部
110 データ配分部
112 修正ベクトル算出部
114 距離更新部
116 繰り返し制御部
118 情報出力部
120 CPU
122 ROM
124 RAM
130 構造式取得部
132 3次元構造発生部
134 局所安定構造取得部
136 最安定構造取得部
138 エネルギー取得部
140 エネルギー分布関数算出部
142 確率分布関数算出部
144 出力部
146 表示制御部
200 記憶部
202 入力データ
204 参照ベクトル情報
206 距離関数情報
208 反映関数情報
210 格子点間距離情報
212 格子点分布図
214 エネルギー分布図
250 構造情報
252 局所安定構造情報
254 最安定構造情報
256 エネルギー分布関数情報
258 確率分布関数情報
300 表示部
310 モニタ
400 操作部
410 キーボード
420 マウス
500 外部サーバ
510 外部データベース
701 格子点
705 格子点
706 格子点
708 格子点
801 格子点
802 格子点
803 格子点
804 格子点
1000 ネットワーク
A1 格子点
A2 格子点
A3 格子点
A4 格子点
D 距離関数
S10~S26 分子安定構造の探索方法の各ステップ
S100~S178 データ処理方法の各ステップ
φ 二面角
ψ 二面角