(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024170949
(43)【公開日】2024-12-11
(54)【発明の名称】機械学習プログラム、機械学習方法および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241204BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023087740
(22)【出願日】2023-05-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】ダン タン デュイ
(57)【要約】
【課題】機械学習モデルの予測精度を向上させる。
【解決手段】情報処理装置10は、データサンプル14a,14b,14cそれぞれを機械学習モデル13に入力することで、特徴量15a,15b,15cを機械学習モデル13から抽出する。情報処理装置10は、特徴量15a,15b,15cを正規化特徴量16a,16b,16cに正規化する。情報処理装置10は、正規化特徴量16a,16b,16cに基づいて、データサンプル14a,14b,14cの中から、データサンプル14a,14b,14cの一部である1以上のデータサンプルを選択する。情報処理装置10は、1以上のデータサンプルを用いて、機械学習モデル13を訓練する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のデータサンプルそれぞれを機械学習モデルに入力することで、前記複数のデータサンプルそれぞれに対応する複数の特徴量を前記機械学習モデルから抽出し、
前記複数の特徴量それぞれを、一定の数値範囲に収まる複数の正規化特徴量に正規化し、
前記複数の正規化特徴量に基づいて、前記複数のデータサンプルの中から、前記複数のデータサンプルの一部である1以上のデータサンプルを選択し、
前記1以上のデータサンプルを用いて、前記機械学習モデルを訓練する、
処理をコンピュータに実行させる機械学習プログラム。
【請求項2】
前記機械学習モデルは、グラフデータが示す複数のノードの接続関係に基づいて前記複数のノードそれぞれの特徴量を更新するグラフニューラルネットワークを含み、前記複数の特徴量は、前記グラフニューラルネットワークを通過した後の特徴量である、
請求項1記載の機械学習プログラム。
【請求項3】
前記1以上のデータサンプルの選択は、主成分分析により、前記複数の正規化特徴量それぞれを複数の主成分特徴量に変換し、前記複数の主成分特徴量の間の距離に基づいて、前記1以上のデータサンプルを選択する処理を含む、
請求項1記載の機械学習プログラム。
【請求項4】
前記機械学習モデルは、複数の原子を含む分子を示す分子データから分子エネルギーを予測し、前記複数の特徴量は、前記複数の原子に対して算出される特徴量である、
請求項1から3の何れか一項に記載の機械学習プログラム。
【請求項5】
複数のデータサンプルそれぞれを機械学習モデルに入力することで、前記複数のデータサンプルそれぞれに対応する複数の特徴量を前記機械学習モデルから抽出し、
前記複数の特徴量それぞれを、一定の数値範囲に収まる複数の正規化特徴量に正規化し、
前記複数の正規化特徴量に基づいて、前記複数のデータサンプルの中から、前記複数のデータサンプルの一部である1以上のデータサンプルを選択し、
前記1以上のデータサンプルを用いて、前記機械学習モデルを訓練する、
処理をコンピュータが実行する機械学習方法。
【請求項6】
複数のデータサンプルと機械学習モデルとを記憶する記憶部と、
前記複数のデータサンプルそれぞれを前記機械学習モデルに入力することで、前記複数のデータサンプルそれぞれに対応する複数の特徴量を前記機械学習モデルから抽出し、前記複数の特徴量それぞれを、一定の数値範囲に収まる複数の正規化特徴量に正規化し、前記複数の正規化特徴量に基づいて、前記複数のデータサンプルの中から、前記複数のデータサンプルの一部である1以上のデータサンプルを選択し、前記1以上のデータサンプルを用いて、前記機械学習モデルを訓練する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は機械学習プログラム、機械学習方法および情報処理装置に関する。
【背景技術】
【0002】
コンピュータは、訓練された機械学習モデルを用いて、説明変数に相当する入力データから目的変数に相当する予測データを生成することがある。コンピュータは、説明変数に相当する入力データと目的変数に相当する正解ラベルとをそれぞれ対応付けた複数のデータサンプルを用いて、機械学習によって機械学習モデルを訓練することがある。
【0003】
機械学習モデルは、入力データから、入力データの特徴を表す特徴量を算出することがあり、算出された特徴量を用いて予測データを生成することがある。特徴量の算出には、ニューラルネットワークが用いられることがある。
【0004】
また、機械学習モデルは、計算量が大きいコンピュータシミュレーションのシミュレーション結果を、短時間で予測するために用いられることがある。このような機械学習モデルは、代替モデル(サロゲートモデル)と呼ばれることがある。例えば、グラフ畳み込みニューラルネットワークを用いて、剛性マトリクスと力ベクトルとから変位ベクトルを予測する構造解析シミュレーションが提案されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
データセットに含まれるデータサンプルが多い場合、全てのデータサンプルを用いて機械学習モデルを訓練することは、コンピュータの負荷を増大させて訓練時間を長くするおそれがある。そこで、コンピュータは、データセットから一部のデータサンプルを選択し、選択されたデータサンプルを用いて機械学習モデルを訓練することが考えられる。
【0007】
このとき、どの様に一部のデータサンプルを選択するかが重要である。データサンプル数が同じであっても、何れのデータサンプルを選択するかによって、訓練された機械学習モデルの予測精度が異なることがある。そこで、1つの側面では、本発明は、機械学習モデルの予測精度を向上させることを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、以下の処理をコンピュータに実行させる機械学習プログラムが提供される。複数のデータサンプルそれぞれを機械学習モデルに入力することで、複数のデータサンプルそれぞれに対応する複数の特徴量を機械学習モデルから抽出する。複数の特徴量それぞれを、一定の数値範囲に収まる複数の正規化特徴量に正規化する。複数の正規化特徴量に基づいて、複数のデータサンプルの中から、複数のデータサンプルの一部である1以上のデータサンプルを選択する。1以上のデータサンプルを用いて、機械学習モデルを訓練する。
【0009】
また、1つの態様では、コンピュータが実行する機械学習方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0010】
1つの側面では、機械学習モデルの予測精度が向上する。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図3】量子化学計算の結果を予測する機械学習モデルの使用例を示す図である。
【
図4】グラフ構造に基づく特徴ベクトルの更新例を示す図である。
【
図7】機械学習におけるサンプル選択の例を示す図である。
【
図9】機械学習モデルの平均誤差の例を示すグラフである。
【
図10】情報処理装置の機能例を示すブロック図である。
【
図11】機械学習の手順例を示すフローチャートである。
【
図12】サンプル選択の手順例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0013】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、訓練データを用いて機械学習モデルを訓練する機械学習を行う。機械学習モデルは、量子化学計算の結果を予測する代替モデル(サロゲートモデル)でもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータまたは機械学習装置と呼ばれてもよい。
【0014】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよい。また、記憶部11は、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。
【0015】
処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0016】
記憶部11は、機械学習モデル13を記憶する。機械学習モデル13は、入力データから特徴量を算出し、算出された特徴量から予測データを生成する。機械学習モデル13は、ニューラルネットワークでもよく、グラフニューラルネットワーク(GNN:Graph Neural Network)でもよい。グラフニューラルネットワークは、複数のノードおよび複数のエッジを含むグラフデータが示すノード間の接続関係に基づいて、複数のノードそれぞれがもつ特徴量を更新する。あるノードの特徴量は、そのノードに隣接する隣接ノードの特徴量を用いて更新される。このようなグラフニューラルネットワークが、MPNN(Message Passing Neural Network)と呼ばれることがある。
【0017】
機械学習モデル13は、機械学習を通じてパラメータ値が最適化されるパラメータを含む。パラメータは、例えば、ニューラルネットワークに含まれる重みである。機械学習モデル13がグラフニューラルネットワークを含む場合、あるノードの特徴量を隣接ノードの特徴量を用いて更新する関数が、このようなパラメータを含むことがある。
【0018】
機械学習モデル13は、分子構造を示す分子データから、密度汎関数理論(DFT:Density Functional Theory)などの量子化学計算によって算出される分子エネルギーを予測する代替モデルであってもよい。密度汎関数理論は、分子の基底エネルギーを電子密度から計算する。密度汎関数理論を純粋に実行する量子化学シミュレーションは、計算量が大きい。代替モデルは、量子化学シミュレーションの計算量を削減する。分子構造は、例えば、原子を表すノードと原子間の接続関係を示すエッジとを含むグラフデータによって規定される。代替モデルは、例えば、原子の核電荷量をノードの特徴量の初期値として与え、グラフ構造に従ってノードの特徴量を更新し、特徴量からエネルギーを算出する。
【0019】
また、記憶部11は、データサンプル14a,14b,14cなどの複数のデータサンプルを記憶する。複数のデータサンプルは、機械学習モデル13の入力に相当する入力データをそれぞれ含む。複数のデータサンプルは、機械学習モデル13の出力の正解を示す正解ラベルをそれぞれ含んでもよい。例えば、データサンプル14a,14b,14cは、分子構造と分子エネルギーとをそれぞれ含む。分子構造は、例えば、分子に含まれる原子それぞれの座標および元素によって規定される。
【0020】
処理部12は、複数のデータサンプルのうちの一部のデータサンプルを用いて、機械学習モデル13を訓練する。処理部12は、以下に説明する方法で、機械学習に用いるデータサンプルを選択する。データサンプルの選択は、いわゆる能動学習(アクティブラーニング)の考え方に基づいていてもよい。データサンプルを選択するにあたり、機械学習モデル13は、仮に訓練されている。例えば、機械学習モデル13に含まれるパラメータ値が、少数のデータサンプルに基づいて事前に更新されている。
【0021】
処理部12は、複数のデータサンプルそれぞれを機械学習モデル13に入力することで、複数のデータサンプルに対応する複数の特徴量を機械学習モデル13から抽出する。例えば、処理部12は、データサンプル14a,14b,14cに対応する特徴量15a,15b,15cを機械学習モデル13から抽出する。
【0022】
抽出される特徴量は、例えば、機械学習モデル13の出力側に近い特徴量であって、機械学習モデル13が出力する予測データそのものではない特徴量である。機械学習モデル13がグラフニューラルネットワークを含む場合、抽出される特徴量は、例えば、グラフニューラルネットワークによって更新された各ノードの特徴量であって、これら特徴量を集計して予測データを生成する集計処理の直前における特徴量である。抽出される特徴量は、複数次元の数値を含む数値ベクトルであってもよい。
【0023】
処理部12は、抽出された複数の特徴量を、一定の数値範囲に収まる複数の正規化特徴量に正規化する。例えば、処理部12は、特徴量15a,15b,15cを正規化特徴量16a,16b,16cに正規化する。一定の数値範囲は、例えば、0以上1以下の範囲である。処理部12は、複数の特徴量のうちの最小値を0に対応付け、複数の特徴量のうちの最大値を1に対応付けることで、スケール調整を行ってもよい。特徴量がベクトルである場合、処理部12は、次元単位で正規化を行ってもよい。その場合、次元毎に、正規化前の数値と正規化後の数値との対応関係が決定される。
【0024】
処理部12は、複数の正規化特徴量に基づいて、複数のデータサンプルの中から一部のデータサンプルを選択する。このとき、処理部12は、他のデータサンプルと類似しない正規化特徴量をもつデータサンプルを選択することが好ましい。選択する個数は、ユーザから指定されてもよいし、母集合のデータサンプル数から決定されてもよい。
【0025】
例えば、処理部12は、複数の正規化特徴量に対して主成分分析(PCA:Principal Component Analysis)を実行することで、複数の正規化特徴量を複数の主成分特徴量に変換する。主成分特徴量は、正規化特徴量よりも次元数が小さい。処理部12は、主成分空間における複数の主成分特徴量の分布に基づいて、できる限り主成分特徴量が類似しない一定数のデータサンプルを選択する。
【0026】
処理部12は、複数の正規化特徴量または複数の主成分特徴量の間の距離を算出してもよく、他のデータサンプルからの距離が遠いデータサンプルを優先的に選択してもよい。また、処理部12は、k-means法や階層的クラスタリングなどのクラスタリングアルゴリズムによって複数のデータサンプルをクラスタに分類してもよく、複数のクラスタそれぞれから代表のデータサンプルを選択してもよい。
【0027】
処理部12は、選択されたデータサンプルを用いて、機械学習モデル13を訓練する。選択されなかったデータサンプルは、この機械学習に使用されない。例えば、処理部12は、選択されたデータサンプルを機械学習モデル13に入力し、機械学習モデル13の出力と正解ラベルとの間の誤差を算出する。処理部12は、誤差が小さくなるように、機械学習モデル13に含まれるパラメータ値を更新する。処理部12は、誤差逆伝播法によって、ニューラルネットワークに含まれる重みを更新してもよい。
【0028】
なお、選択されたデータサンプルに正解ラベルが未付与である場合、処理部12は、ユーザに正解ラベルを要求してもよい。また、処理部12は、機械学習モデル13の訓練とデータサンプルの選択とを、複数回繰り返してもよい。処理部12は、訓練された機械学習モデル13を出力する。処理部12は、機械学習モデル13を不揮発性ストレージに保存してもよいし、表示装置に表示してもよいし、他の情報処理装置に送信してもよい。また、処理部12は、訓練された機械学習モデル13を使用して予測処理を行ってもよいし、テストデータを用いて機械学習モデル13の予測精度を測定してもよい。
【0029】
以上説明したように、第1の実施の形態の情報処理装置10は、複数のデータサンプルそれぞれを機械学習モデル13に入力することで、複数のデータサンプルに対応する複数の特徴量を機械学習モデル13から抽出する。情報処理装置10は、複数の特徴量を、一定の数値範囲に収まる複数の正規化特徴量に正規化する。情報処理装置10は、複数の正規化特徴量に基づいて、複数のデータサンプルの中から、複数のデータサンプルの一部である1以上のデータサンプルを選択する。情報処理装置10は、1以上のデータサンプルを用いて、機械学習モデル13を訓練する。
【0030】
これにより、機械学習に使用されるデータサンプルが絞り込まれる。よって、機械学習の負荷が低下して訓練時間が短縮される。また、雑多なデータサンプルの全てを使用する場合よりも、機械学習モデル13の予測精度が向上する。
【0031】
また、機械学習モデル13の中で算出される特徴量を正規化した正規化特徴量を用いて、データサンプルが絞り込まれる。よって、予測精度の向上に寄与する可能性が高いデータサンプルが選択され、機械学習モデル13の予測精度が向上する。特に、機械学習モデル13から抽出される特徴量は、データサンプルそのものよりも予測結果に近いため、機械学習モデル13の予測精度との関連性が高い。また、特徴量を正規化することで、特徴量のスケールが統一され、データサンプルの選別精度が向上する。
【0032】
なお、機械学習モデル13は、グラフデータが示す複数のノードの接続関係に基づいて複数のノードそれぞれの特徴量を更新するグラフニューラルネットワークを含んでもよい。抽出される特徴量は、グラフニューラルネットワークを通過した後の特徴量でもよい。グラフニューラルネットワークは、入力データと出力データとの間の非線形の変換を規定する。よって、グラフニューラルネットワークを通過した後の特徴量は、通過前の特徴量よりも最終的な予測結果との関連性が高く、データサンプルの選別に好適である。その結果、データサンプルの選別精度が向上し、機械学習モデル13の予測精度が向上する。
【0033】
また、情報処理装置10は、主成分分析により、複数の正規化特徴量を複数の主成分特徴量に変換してもよく、複数の主成分特徴量の間の距離に基づいてデータサンプルを選択してもよい。これにより、データサンプルの選別精度が向上する。特に、主成分分析の前に特徴量を正規化することで、特徴量に含まれる一部の次元が支配的となって他の次元が過小評価されるリスクが低下する。
【0034】
また、機械学習モデル13は、複数の原子を含む分子を示す分子データから分子エネルギーを予測してもよく、複数の特徴量は、複数の原子に対して算出される特徴量であってもよい。これにより、機械学習モデル13は、密度汎関数理論などの量子化学シミュレーションの結果を、本来のアルゴリズムを実行せずに高精度に予測することができる。その結果、量子化学シミュレーションの負荷が低下してシミュレーション時間が短縮される。また、分子データに相当するデータサンプルの選別精度が向上する。
【0035】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、訓練データを用いて機械学習モデルを訓練する機械学習を行う。第2の実施の形態の機械学習モデルは、密度汎関数理論を用いた量子化学計算の結果を予測する代替モデルである。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータ、機械学習装置またはシミュレーション装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
【0036】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0037】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
【0038】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0039】
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0040】
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0041】
また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行し得る。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
【0042】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0043】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0044】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0045】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0046】
なお、第2の実施の形態の機械学習や予測処理は、データセンタの専用サーバに実装されてもよく、アプリケーションサービスとして実装されてもよい。また、第2の実施の形態の機械学習や予測処理は、材料開発や触媒選択などの様々な産業分野に応用され得る。
【0047】
次に、第2の実施の形態の機械学習モデルについて説明する。
図3は、量子化学計算の結果を予測する機械学習モデルの使用例を示す図である。
量子化学計算の結果を予測するにあたり、分子構造を示すグラフデータ161が与えられる。グラフデータ161は、複数のノードと複数のエッジとを含む。グラフデータ161に含まれるノードは、原子を表す。グラフデータ161に含まれるエッジは、2つの原子の間の接続を示す。各ノードには、原子が存在する位置の座標と、原子の種類である元素とが指定される。また、各ノードには、特徴ベクトルの初期値を決定するための物理量が付与される。例えば、物理量として、原子の核電荷量が付与される。
【0048】
情報処理装置100は、グラフデータ161を機械学習モデル162に入力する。機械学習モデル162は、グラフニューラルネットワークである。グラフニューラルネットワークは、MPNNと呼ばれることがある。機械学習モデル162は、あるノードの特徴ベクトルを、当該ノードと隣接する隣接ノードの特徴ベクトルと、2つのノードの間のエッジに付与されたエッジベクトルとに基づいて更新する。エッジベクトルは、2つのノードの距離や方向を反映している。特徴ベクトルは、隠れ状態と呼ばれることがある。
【0049】
特徴ベクトルを更新する関数は、機械学習を通じて決定されるパラメータ値を含む。機械学習モデル162は、隣接ノードの特徴ベクトルに基づいて各ノードの特徴ベクトルを更新することを、複数回繰り返す。機械学習モデル162は、全ノードの特徴ベクトルを集計して、スカラ値としての予測結果163を生成して出力する。予測結果163は、グラフデータ161が示す分子の基底状態における分子エネルギーを示す。予測結果163は、密度汎関数理論を用いた量子化学計算の結果の予測値に相当する。機械学習モデル162を用いることで、負荷の高い量子化学計算を実行せずに、その結果が予測される。
【0050】
図4は、グラフ構造に基づく特徴ベクトルの更新例を示す図である。
ノード171,172,173,174は、グラフデータ161に含まれるノードであり、それぞれ原子を表す。ノード171は、特徴ベクトル181をもつ。ノード172は、特徴ベクトル182をもつ。ノード173は、特徴ベクトル183をもつ。ノード174は、特徴ベクトル184をもつ。ノード171の隣接ノードは、ノード172,173,174である。ただし、後述する計算において、ノード171の隣接ノードに、ノード171自身が含まれてもよい。ここでは、特徴ベクトル181を更新することを考える。
【0051】
機械学習モデル162は、特徴ベクトル182と、ノード171,172の間のエッジのエッジベクトルとから、メッセージ関数を用いてメッセージ185を算出する。また、機械学習モデル162は、特徴ベクトル183と、ノード171,173の間のエッジのエッジベクトルとから、メッセージ関数を用いてメッセージ186を算出する。また、機械学習モデル162は、特徴ベクトル184と、ノード171,174の間のエッジのエッジベクトルとから、メッセージ関数を用いてメッセージ187を算出する。メッセージ関数は、機械学習を通じて決定されるパラメータ値を含む。
【0052】
機械学習モデル162は、メッセージ185,186,187を合算したメッセージを算出する。機械学習モデル162は、特徴ベクトル181と合算されたメッセージとから、更新関数を用いて、特徴ベクトル181を特徴ベクトル188に更新する。更新関数は、機械学習を通じて決定されるパラメータ値を含む。機械学習モデル162は、メッセージ伝達と特徴ベクトルの更新とを、全てのノードに対して実行する。また、機械学習モデル162は、全ノードのメッセージ伝達と特徴ベクトルの更新とを、複数回繰り返す。
【0053】
機械学習モデル162は、例えば、分極原子相互作用ニューラルネットワーク(PaiNN:Polarizable Atom Interaction Neural Network)である。PaiNNについては、例えば、次の文献に記載されている。Kristof Schutt, Oliver Unke and Michael Gastegger, "Equivariant Message Passing for the Prediction of Tensorial Properties and Molecular Spectra", Proc. of the 38th International Conference on Machine Learning (ICML 2021), Volume 139, pp. 9377-9388, July 2021。
【0054】
機械学習モデル162は、各ノードに対して特徴ベクトルs,vを割り当てる。特徴ベクトルs,vは、例えば、128次元の数値ベクトルである。特徴ベクトルsiは、i番目のノードの残差スカラを表す。特徴ベクトルviは、i番目のノードの同変表現を表す。特徴ベクトルsiの初期値は、i番目の原子の核電荷量Ziから変換される分散表現(埋め込み表現)である。通常、近い核電荷量は類似する分散表現に変換される。分散表現への変換部分は、事前に訓練されてもよいし、機械学習モデル162の他の部分と合わせて訓練されてもよい。特徴ベクトルviの初期値は、ゼロベクトルである。
【0055】
機械学習モデル162は、数式(1)に従って、ノードiの特徴ベクトルsiを更新する。数式(1)において、Msは、特徴ベクトルsに関するメッセージ関数であり、Usは、特徴ベクトルsに関する更新関数である。sjは、ノードiに隣接するノードjがもつ特徴ベクトルsである。rijは、ノードiの座標からノードjの座標への距離および方向を示すエッジベクトルである。ms,iは、特徴ベクトルsに関してノードiが隣接ノードから受け取るメッセージである。
【0056】
【0057】
メッセージ関数Msは、パラメータとして、特徴ベクトルsjに作用する係数行列を含んでもよく、エッジベクトルrijに作用する係数行列を含んでもよい。また、更新関数Usは、パラメータとして、特徴ベクトルsiに作用する係数行列を含んでもよく、メッセージms,iに作用する係数行列を含んでもよい。エッジベクトルrijやメッセージms,iは、例えば、128次元の数値ベクトルである。
【0058】
また、機械学習モデル162は、数式(2)に従って、ノードiの特徴ベクトルviを更新する。数式(2)において、Mvは、特徴ベクトルvに関するメッセージ関数であり、Uvは、特徴ベクトルvに関する更新関数である。vjは、ノードiに隣接するノードjがもつ特徴ベクトルvである。mv,iは、特徴ベクトルvに関してノードiが隣接ノードから受け取るメッセージである。
【0059】
【0060】
メッセージ関数Mvは、パラメータとして、特徴ベクトルvjに作用する係数行列を含んでもよく、特徴ベクトルsjに作用する係数行列を含んでもよく、エッジベクトルrijに作用する係数行列を含んでもよい。また、更新関数Uvは、パラメータとして、特徴ベクトルviに作用する係数行列を含んでもよく、メッセージmv,iに作用する係数行列を含んでもよい。メッセージmv,iは、例えば、128次元の数値ベクトルである。
【0061】
機械学習モデル162は、数式(1),(2)に従って、各ノードの特徴ベクトルs,vを複数回更新する。その後、機械学習モデル162は、複数のノードそれぞれがもつ特徴ベクトルsを線形変換する。線形変換には、機械学習を通じて決定されるパラメータ値が用いられる。例えば、線形変換には、特徴ベクトルsに作用する係数行列が用いられる。そして、機械学習モデル162は、全てのノードの線形変換後の特徴ベクトルsを合算し、エネルギーを示す予測結果163に変換する。
【0062】
図5は、機械学習モデルの構造例を示す図である。
機械学習モデル162は、埋め込み層140、メッセージ層141,143,145、更新層142,144,146、線形層147,149およびSiLU(Sigmoid Linear Unit)層148を含む。埋め込み層140は、核電荷量Z
iを一定次元数の分散表現ベクトルに変換するニューラルネットワークである。この分散表現ベクトルが、特徴ベクトルs
iの初期値である。特徴ベクトルv
iの初期値は、ゼロベクトルである。
【0063】
メッセージ層141は、特徴ベクトルsiの初期値と、特徴ベクトルviの初期値と、グラフデータ161が示すエッジベクトルrijとを受け付ける。メッセージ層141は、メッセージ関数Ms,Mvに相当する処理を行い、特徴ベクトルsi,viを変換する。ここでの特徴ベクトルsi,viの変換には、隣接ノードの特徴ベクトルが使用される。特徴ベクトルsiに関するメッセージ層141の出力には、メッセージ層141に入力された特徴ベクトルsiが加算される。これにより、メッセージ層141は、特徴ベクトルsiの適切な差分を算出するように訓練される。
【0064】
更新層142は、メッセージ層141の後段に位置し、メッセージ層141を通じて更新された特徴ベクトルsi,viを受け付ける。更新層142は、更新関数Us,Uvに相当する処理を行い、特徴ベクトルsi,viを変換する。ここでの特徴ベクトルsi,viの変換は、ノード単位で行われ、隣接ノードの特徴ベクトルは使用されない。特徴ベクトルsiに関する更新層142の出力には、更新層142に入力された特徴ベクトルsiが加算される。また、特徴ベクトルviに関する更新層142の出力には、更新層142に入力された特徴ベクトルviが加算される。これにより、更新層142は、特徴ベクトルsi,viの適切な差分を算出するように訓練される。
【0065】
メッセージ層143は、更新層142の後段に位置し、更新層142を通じて更新された特徴ベクトルsi,viと、エッジベクトルrijとを受け付ける。メッセージ層143は、メッセージ関数Ms,Mvに相当する処理を行い、特徴ベクトルsi,viを変換する。特徴ベクトルsi,viに関するメッセージ層143の出力には、メッセージ層143に入力された特徴ベクトルsi,viがそれぞれ加算される。
【0066】
更新層144は、メッセージ層143の後段に位置し、メッセージ層143を通じて更新された特徴ベクトルsi,viを受け付ける。更新層144は、更新関数Us,Uvに相当する処理を行い、特徴ベクトルsi,viを変換する。特徴ベクトルsi,viに関する更新層144の出力には、更新層144に入力された特徴ベクトルsi,viがそれぞれ加算される。
【0067】
メッセージ層145は、更新層144の後段に位置し、更新層144を通じて更新された特徴ベクトルsi,viと、エッジベクトルrijとを受け付ける。メッセージ層145は、メッセージ関数Ms,Mvに相当する処理を行い、特徴ベクトルsi,viを変換する。特徴ベクトルsi,viに関するメッセージ層145の出力には、メッセージ層145に入力された特徴ベクトルsi,viがそれぞれ加算される。
【0068】
更新層146は、メッセージ層145の後段に位置し、メッセージ層145を通じて更新された特徴ベクトルsi,viを受け付ける。更新層146は、更新関数Us,Uvに相当する処理を行い、特徴ベクトルsi,viを変換する。特徴ベクトルsiに関する更新層146の出力には、更新層146に入力された特徴ベクトルsiが加算される。
【0069】
なお、メッセージ関数Ms,Mvを使用するメッセージ層141,143,145は、同種のパラメータを含むものの、そのパラメータ値は異なるように訓練されてもよい。また、更新関数Us,Uvを使用する更新層142,144,146は、同種のパラメータを含むものの、そのパラメータ値は異なるように訓練されてもよい。
【0070】
線形層147は、更新層146の後段に位置し、更新層146を通じて更新された特徴ベクトルsiを受け付ける。線形層147は、係数行列を用いて特徴ベクトルsiを線形変換する。ここでの線形変換は、ノード単位で行われる。
【0071】
SiLU層148は、線形層147の後段に位置し、線形層147から特徴ベクトルを受け付ける。SiLU層148は、数式(3)に示すSiLUを用いて、特徴ベクトルに含まれる各次元の数値を変換する。SiLUは、活性化関数の一種であり、スウィッシュ関数と呼ばれることがある。
【0072】
【0073】
線形層149は、SiLU層148の後段に位置し、SiLU層148から特徴ベクトルを受け付ける。線形層149は、係数行列を用いて特徴ベクトルを線形変換する。ここでの線形変換は、ノード単位で行われる。線形層149が出力する複数のノードの特徴ベクトルは合算され、最終的に予測結果163に変換される。
【0074】
次に、機械学習モデル162を訓練する機械学習について説明する。
図6は、分子データセットの構造例を示す図である。
情報処理装置100は、分子データセット131を記憶する。情報処理装置100は、機械学習に使用され得る複数のサンプルを含む。各サンプルは、分子構造およびエネルギーを示す。分子構造は、分子に含まれる複数の原子それぞれの位置座標および元素を示す。原子の核電荷量は、元素から算出される。分子構造は、機械学習モデル162の説明変数や入力データに相当する。エネルギーは、分子の基底状態におけるエネルギーである。エネルギーは、機械学習モデル162の目的変数や正解ラベルに相当する。
【0075】
以下に説明するように、情報処理装置100は、分子データセット131から、機械学習モデル162の予測精度の向上に有用な一部のサンプルを選択し、選択されたサンプルを用いて機械学習モデル162を訓練する。選択されなかったサンプルは、機械学習モデル162の訓練に使用されないことがある。なお、サンプル選択時点で、各サンプルには正解ラベルが既に付与されていてもよいし、正解ラベルがまだ付与されていなくてもよい。後者の場合、情報処理装置100は、選択されたサンプルについて、正解ラベルを付与するようにユーザに要求してもよい。
【0076】
図7は、機械学習におけるサンプル選択の例を示す図である。
情報処理装置100は、複数のサンプルを含む分子データセット151を取得する。分子データセット151は、上記の分子データセット131に対応する。情報処理装置100は、分子データセット151に含まれる複数のサンプルそれぞれのエネルギーを、機械学習モデル152を用いて予測する。機械学習モデル152は、前述の機械学習モデル162に対応する。機械学習モデル152は、事前に仮に訓練されている。例えば、機械学習モデル152は、少数のサンプルを用いて事前に訓練されている。この時点では、機械学習モデル152の予測精度は、あまり高くなくてもよい。
【0077】
情報処理装置100は、サンプル毎に、エネルギーを予測する過程で機械学習モデル152の中で算出された特徴ベクトルを、機械学習モデル152から抽出する。抽出される特徴ベクトルは、グラフニューラルネットワークを通過した後の特徴ベクトルであって、合算される前の複数の原子の特徴ベクトルである。第2の実施の形態では、情報処理装置100は、
図5に示した線形層147に入力される特徴ベクトルを抽出する。
【0078】
情報処理装置100は、サンプル毎に、複数の原子に対応する複数の特徴ベクトルを連結することで、特徴ベクトル153を生成する。分子データセット131が対象とする分子が大規模である場合、特徴ベクトル153の次元数は数万次元のように大きくなる。
【0079】
情報処理装置100は、複数のサンプルの間で、特徴ベクトル153を正規化特徴ベクトル154に正規化する。正規化では、情報処理装置100は、特徴ベクトル153に含まれる次元毎に、その次元の最大値および最小値を特定し、最小値から最大値までの数値範囲を0以上1以下の数値範囲にスケール変換する。この正規化は、数式(4)に従って実行される。xは、ある次元を表す変数である。max(x),min(x)は、複数のサンプルに対応する複数の特徴ベクトルの中での、次元xの最大値および最小値である。
【0080】
【0081】
情報処理装置100は、複数のサンプルに対応する複数の正規化特徴ベクトルに対して主成分分析を行い、正規化特徴ベクトル154を主成分ベクトル155に変換する。これにより、複数のサンプルに対応する複数の主成分ベクトルが生成される。主成分ベクトル155は、正規化特徴ベクトル154よりも次元が少ない数値ベクトルである。
【0082】
主成分分析では、情報処理装置100は、複数のサンプルに対応する複数の正規化特徴ベクトルから分散共分散行列を生成し、分散共分散行列に対して固有値分解を行う。固有値分解は、ある行列Aに対して、Av=λvを満たす固有値λと固有ベクトルvを求める。この固有ベクトルvによって、ベクトル空間の新たな座標軸が決定される。この座標軸は、ベクトル空間内での分散が大きい座標軸であり、サンプルの分布の特徴を表す。
【0083】
情報処理装置100は、異なる2つのサンプルの組毎に、主成分ベクトル155のユークリッド距離156を算出する。ただし、距離指標として、コサイン類似度などの他の距離指標が使用されてもよい。情報処理装置100は、ユークリッド距離156に基づいて、分子データセット151から一部のサンプルを抽出し、抽出された一部のサンプルから形成される分子データサブセット157を生成する。
【0084】
抽出されるサンプルの個数は、ユーザから指定されてもよい。また、抽出されるサンプルの個数は、分子データセット151のサンプル数の10分の1のように、分子データセット151のサンプル数から決定されてもよい。ここで、情報処理装置100は、分子データサブセット157に含まれるサンプルが、できる限り互いに類似しない主成分ベクトル155をもつように、サンプルを選択する。よって、主成分ベクトル155が類似するサンプルは、できる限り、分子データサブセット157に重複して含まれない。
【0085】
例えば、情報処理装置100は、複数のサンプルそれぞれについて、他のサンプルとのユークリッド距離156のうちの最小値(最も近い他のサンプルとのユークリッド距離156)を算出する。情報処理装置100は、複数のサンプルのうち、この最小値が小さいサンプルから優先的に除外する。情報処理装置100は、残ったサンプルの個数が目標サンプル数以下になるまで、サンプルの除外を繰り返す。
【0086】
ただし、情報処理装置100は、小さいユークリッド距離156をもつサンプルのペアを検出し、検出されたペアの一方または両方のサンプルを除外してもよい。また、情報処理装置100は、ユークリッド距離156に基づいて、複数のサンプルに対応する複数の主成分ベクトルをクラスタに分類してもよく、各クラスタから代表のサンプルを選択してもよい。クラスタ数は、目標サンプル数と同じでもよい。k-means法や階層的クラスタリングなどのクラスタリングアルゴリズムが使用されてもよい。
【0087】
情報処理装置100は、分子データサブセット157に含まれるサンプルを用いて、機械学習モデル152を更に訓練する。例えば、情報処理装置100は、サンプルが示す分子構造から入力データを生成し、機械学習モデル152に入力する。情報処理装置100は、機械学習モデル152が予測するエネルギーとサンプルが示す正解ラベルとの誤差を算出し、誤差逆伝播法によって、機械学習モデル152に含まれるパラメータ値を更新する。これにより、機械学習モデル152の予測精度が仮訓練時よりも向上する。
【0088】
なお、情報処理装置100は、
図7に示したサイクルを複数回繰り返してもよい。その場合、情報処理装置100は、分子データサブセット157を用いて訓練された機械学習モデル152に、分子データセット151に含まれる複数のサンプルをそれぞれ入力する。情報処理装置100は、特徴ベクトル153、正規化特徴ベクトル154、主成分ベクトル155およびユークリッド距離156を算出する。情報処理装置100は、分子データセット151から、新たな分子データサブセット157を抽出する。
【0089】
図8は、特徴ベクトルの正規化例を示す図である。
情報処理装置100は、特徴ベクトルテーブル132を生成する。特徴ベクトルテーブル132は、複数のサンプルについて、上記の特徴ベクトル153に相当する複数の特徴ベクトルを列挙したテーブルである。特徴ベクトルテーブル132の1つの行は、1つのサンプルに対応する1つの特徴ベクトルを表す。特徴ベクトルテーブル132の複数の列は、特徴ベクトルに含まれる複数の次元に対応する。1つの特徴ベクトルは、サンプルに含まれる複数の原子に対して算出された複数の特徴ベクトルを連結したものである。連結される特徴ベクトルは、
図5の線形層147の直前から抽出される。
【0090】
情報処理装置100は、特徴ベクトルテーブル132に対して正規化を行うことで、正規化特徴ベクトルテーブル133を生成する。情報処理装置100は、特徴ベクトルテーブル132の列毎に、最大値および最小値を特定し、最小値から最大値までの数値範囲を0以上1以下の数値範囲に変換するためのスケール変換関数を決定する。情報処理装置100は、列毎に、決定したスケール変換関数を用いて正規化を行う。
【0091】
上記のように、情報処理装置100は、グラフニューラルネットワークを通過した後の各原子の特徴ベクトルを機械学習モデルから抽出する。グラフニューラルネットワークのデータ変換は、非線形変換である。このため、非線形変換後の特徴ベクトルからサンプル間の類似度を判定することで、サンプルの入力データから類似度を判定するよりも、予測精度向上への寄与が小さい冗長なサンプルが特定されやすくなる。
【0092】
また、情報処理装置100は、機械学習モデルから抽出された特徴ベクトルを、主成分分析を行う前に正規化する。特徴ベクトルを正規化することで、主成分分析において、元の特徴ベクトルに含まれる特定の次元が支配的になることが抑制され、元の特徴ベクトルに含まれる全ての次元が十分に考慮される。よって、類似度の判定精度が向上する。その結果、予測精度向上に有用なサンプルが選択される。
【0093】
図9は、機械学習モデルの平均誤差の例を示すグラフである。
曲線191,192は、サンプル数と平均誤差との関係を示す。
図9の横軸はサンプル数を表し、
図9の縦軸は平均誤差を表す。サンプル数は、母集合の中から機械学習用に選択されたサンプルの個数であり、
図7の分子データサブセット157のサンプル数に相当する。ここでは、サンプル数はユーザから指定される。平均誤差は、選択されたサンプルを用いて機械学習モデルを訓練した場合の、機械学習モデルによって予測されるエネルギーと正解ラベルとの間の予測誤差の平均である。
【0094】
曲線191は、母集合からサンプルを選択するにあたり、特徴ベクトルを正規化しない場合の平均誤差を示す。曲線192は、母集合からサンプルを選択するにあたり、特徴ベクトルを正規化する場合の平均誤差を示す。曲線191,192が示すように、サンプル数が同じであれば、特徴ベクトルを正規化した方が、特徴ベクトルを正規化しない場合よりも平均誤差が小さい。よって、特徴ベクトルを正規化することで、機械学習モデルの予測精度の向上に寄与する適切なサンプルが選択され、予測精度が向上する。
【0095】
また、特徴ベクトルを正規化した方が、特徴ベクトルを正規化しない場合よりも、少ないサンプルで所望の予測精度が達成される。よって、選択されたサンプルを用いた機械学習の負荷が低下し、機械学習時間が短縮される。
【0096】
次に、情報処理装置100の機能および処理手順について説明する。
図10は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、データセット記憶部121、モデル記憶部122、予測部123、特徴抽出部124、サンプル選択部125および機械学習部126を有する。データセット記憶部121およびモデル記憶部122は、例えば、RAM102、GPUメモリまたはHDD103を用いて実装される。予測部123、特徴抽出部124、サンプル選択部125および機械学習部126は、例えば、CPU101、GPU104およびプログラムを用いて実装される。
【0097】
データセット記憶部121は、母集合としての複数のサンプルを記憶する。例えば、データセット記憶部121は、前述の分子データセット131を記憶する。各サンプルは、分子構造およびエネルギーを含む。エネルギーは、機械学習モデルの出力の正解に相当する正解ラベルである。ただし、正解ラベルは、能動学習のように、機械学習に使用することが決定されてからサンプルに付与されてもよい。
【0098】
モデル記憶部122は、機械学習モデルを記憶する。例えば、モデル記憶部122は、
図5に示した機械学習モデル162を記憶する。機械学習モデルは、事前に仮に訓練されている。この機械学習モデルは、データセット記憶部121に記憶された複数のサンプルのうちの一部のサンプルを用いて更に訓練される。
【0099】
予測部123は、データセット記憶部121に記憶された複数のサンプルそれぞれについて、サンプルに規定された分子構造から、機械学習モデルの入力形式に合った入力データを生成する。予測部123は、複数のサンプルそれぞれについて、生成された入力データを機械学習モデルに入力して、分子のエネルギーを予測する。
【0100】
特徴抽出部124は、複数のサンプルそれぞれについて、予測部123がエネルギーを予測する間に算出された特徴ベクトルを機械学習モデルから抽出する。抽出される特徴ベクトルは、分子に含まれる原子それぞれに対して算出される特徴ベクトルであって、原子間のメッセージ伝搬が十分に行われた後の特徴ベクトルである。機械学習モデルがメッセージ層と更新層とを交互に含む場合、抽出される特徴ベクトルは、例えば、最後の更新層によって更新された特徴ベクトルである。特徴抽出部124は、複数の原子に対応する複数の特徴ベクトルを連結して、サンプル毎に1つの特徴ベクトルを獲得する。
【0101】
サンプル選択部125は、特徴抽出部124によって獲得された特徴ベクトルに基づいて、データセット記憶部121から一部のサンプルを選択する。まず、サンプル選択部125は、複数のサンプルに対応する複数の特徴ベクトルを正規化して、複数のサンプルに対応する複数の正規化特徴ベクトルを生成する。サンプル選択部125は、それら複数の正規化特徴ベクトルに対して主成分分析を行い、複数のサンプルに対応する複数の主成分ベクトルを生成する。サンプル選択部125は、異なる2つのサンプルの間で、主成分ベクトルの類似度を示すユークリッド距離を算出する。
【0102】
サンプル選択部125は、ユークリッド距離に基づいて、データセット記憶部121から一部のサンプルを選択する。当該一部のサンプルは、相互のユークリッド距離ができる限り大きくなるように選択される。例えば、サンプル選択部125は、ユークリッド距離が小さい2つのサンプルのうちの一方または両方を、サンプルの母集合から除外する。よって、主成分ベクトルが類似する冗長なサンプルが除外される。
【0103】
機械学習部126は、サンプル選択部125によって選択されたサンプルを用いて、機械学習モデルを訓練する。サンプル選択部125によって選択されなかったサンプルは、ここでの機械学習に使用されない。例えば、機械学習部126は、サンプルに規定された分子構造から、機械学習モデルの入力形式に合った入力データを生成し、機械学習モデルに入力データを入力する。機械学習部126は、機械学習モデルが出力する予測データと正解ラベルとの間の誤差を算出し、誤差が小さくなるようにパラメータ値を更新する。
【0104】
機械学習部126は、誤差逆伝播法によって、機械学習モデルに含まれるパラメータ値を更新してもよい。また、機械学習部126は、選択された複数のサンプルを複数のミニバッチに分割し、それら複数のミニバッチを用いて、誤差を算出するフォワード処理とパラメータ値を更新するバックワード処理とを繰り返してもよい。
【0105】
なお、情報処理装置100は、選択されたサンプルに関する情報を出力してもよい。情報処理装置100は、選択されたサンプルに関する情報を不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。また、情報処理装置100は、訓練された機械学習モデルを不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0106】
図11は、機械学習の手順例を示すフローチャートである。
(S10)予測部123は、サンプル毎に分子構造から入力データを生成する。
(S11)予測部123は、サンプル毎に、入力データを機械学習モデルに入力し、予測データを生成するフォワード処理を実行する。特徴抽出部124は、サンプル毎に、機械学習モデルから特徴ベクトルを抽出する。抽出される特徴ベクトルは、入力データが予測データに変換される過程の途中で生成される特徴ベクトルである。
【0107】
(S12)サンプル選択部125は、複数のサンプルの特徴ベクトルを正規化する。正規化では、特徴ベクトルの次元毎に、数値が一定範囲に収まるようスケール調整される。
(S13)サンプル選択部125は、複数のサンプルの正規化特徴ベクトルに対して主成分分析を行い、正規化特徴ベクトルを主成分ベクトルに変換する。
【0108】
(S14)サンプル選択部125は、複数のサンプルのうちの異なる2つのサンプルの組毎に、主成分ベクトルのユークリッド距離を算出する。
(S15)サンプル選択部125は、ステップS14で算出されたユークリッド距離に基づいて、母集団であるデータセットから一定数のサンプルを選択する。選択されるサンプルの個数は、例えば、ユーザから指定される。他のサンプルとのユークリッド距離が大きいサンプルが、優先的に選択される。サンプル選択については後述する。
【0109】
(S16)機械学習部126は、ステップS15で選択されたサンプルを用いて、機械学習モデルを訓練する。例えば、機械学習部126は、サンプル毎に入力データを機械学習モデルに入力し、機械学習モデルが出力する予測データと正解ラベルとの誤差を算出する。機械学習部126は、誤差逆伝播法によって、誤差が小さくなるように、機械学習モデルに含まれるパラメータ値を更新する。
【0110】
図12は、サンプル選択の手順例を示すフローチャートである。
このサンプル選択は、前述のステップS15で実行される。
(S20)サンプル選択部125は、閾値を、ステップS14で網羅的に算出されたユークリッド距離のうちの最小値に初期化する。
【0111】
(S21)サンプル選択部125は、選択されたサンプルを示す選択データセットを、母集団としての元の分子データセットに初期化する。よって、初期状態の選択データセットは、全てのサンプルが選択されていることを示す。
【0112】
(S22)サンプル選択部125は、目標サンプル数を設定する。目標サンプル数は、選択されるサンプルの個数の上限である。目標サンプル数は、ユーザから指定されてもよいし、母集団のサンプル数から決定されてもよい。
【0113】
(S23)サンプル選択部125は、選択データセットに含まれるサンプルの個数が、目標サンプル数を超えるか判断する。選択データセットのサンプル数が目標サンプル数を超える場合、ステップS24に処理が進む。選択データセットのサンプル数が目標サンプル数以下である場合、ステップS27に処理が進む。
【0114】
(S24)サンプル選択部125は、選択データセットの中から、ユークリッド距離が閾値以上かつ閾値+α未満であるサンプルを検索する。例えば、α=0.01である。
例えば、サンプル選択部125は、最も近い他のサンプルとのユークリッド距離(他のサンプルとのユークリッド距離の最小値)が、上記範囲を満たすサンプルを検索する。その場合、該当するサンプルが、ステップS25の削除対象になる。また、例えば、サンプル選択部125は、ユークリッド距離が上記範囲を満たすサンプルのペアを検索する。その場合、該当するペアの一方または両方が、ステップS25の削除対象になる。
【0115】
(S25)サンプル選択部125は、ステップS24の条件を満たすサンプルがある場合、該当するサンプルを選択データセットから削除する。
(S26)サンプル選択部125は、閾値を、閾値+αに更新する。例えば、サンプル選択部125は、閾値に0.01を加算する。そして、ステップS23に処理が戻る。
【0116】
(S27)サンプル選択部125は、選択データセットに含まれるサンプルを、機械学習に使用するサンプルとして出力する。
以上説明したように、第2の実施の形態の情報処理装置100は、密度汎関数理論を用いた量子化学計算の代わりに、その結果を機械学習モデルを用いて予測する。これにより、量子化学シミュレーションの負荷が軽減され、シミュレーション時間が短縮される。また、機械学習モデルは、グラフニューラルネットワークを含む。これにより、分子構造を考慮して各原子の特徴ベクトルが算出され、予測精度が向上する。
【0117】
また、母集合に含まれる全てのサンプルではなく、その一部のサンプルが機械学習に使用される。これにより、機械学習の負荷が低下して機械学習時間が短縮される。また、類似する冗長なサンプルを含む雑多なサンプルを全て使用する場合と比べて、サンプルを選別することで、訓練された機械学習モデルの予測精度が向上する。
【0118】
また、情報処理装置100は、機械学習モデルにサンプルを入力したときに内部で算出される特徴ベクトルを用いて、サンプル間の類似度を判定する。そして、情報処理装置100は、できる限り類似しないサンプルを選択する。これにより、冗長なサンプルが除外され、機械学習モデルの予測精度の向上への寄与が大きいサンプルが選択される。よって、選択サンプル数を一定とすると、機械学習モデルの予測精度が向上する。また、少ないサンプル数で目標予測精度が達成され、機械学習時間が短縮される。
【0119】
また、情報処理装置100は、グラフニューラルネットワークによる非線形変換後の特徴ベクトルであって、合算前の各原子の特徴ベクトルを用いて、サンプルの類似度を判定する。これにより、機械学習モデルの予測結果との関連が強い特徴ベクトルから類似度が判定され、サンプル選択の精度が向上する。
【0120】
また、情報処理装置100は、機械学習モデルから抽出された特徴ベクトルを正規化して正規化特徴ベクトルに変換し、更に主成分分析により主成分ベクトルに変換する。正規化により、特徴ベクトルに含まれる複数の次元の間でスケールが統一される。これにより、一部の次元が支配的となって他の次元が過小評価されるリスクが低下し、各サンプルの特徴を適切に表現した主成分ベクトルが生成される。また、主成分分析により、サンプル間の類似度の判定に適した主成分ベクトルが生成される。
【符号の説明】
【0121】
10 情報処理装置
11 記憶部
12 処理部
13 機械学習モデル
14a,14b,14c データサンプル
15a,15b,15c 特徴量
16a,16b,16c 正規化特徴量