分子の構造活性相関解析のためのニューラルネットワーク シミュレータ:Neco(NEural network simulator for structure-activity COrrelation of molecules)

井須 芳美、長嶋 雲兵、細矢 治夫、青山 智夫

   


Return


1 はじめに

 化学物質の構造活性相関の問題に関しては、従来主に重回帰分析が用いられてきた。しかし ながらもともとこの相関は非線形性が強いので、従来の線形の関連を期待する統計的手段を 適用するには限界がある。
 ニューラルネットワーク法は、脳における神経細胞の信号伝達系をモデルとした情報処理法 である。その動作の特徴として、非線形的な動作をすることが知られている。また、従来の プログラミングと比較して、入力と出力の関係づけを行なう際に、その関係を手続き的に記 述する必要がなく、いくつかの入力とそれに対する出力の例をネットワークに与えると、自 動的にその関係をネットワークに記憶する。つまり、ニューラルネットワークは、入力と出 力の間にある相関をあらかじめ解析しておくことが困難な事象に適用されている。
 本研究では生体の有する高度な情報処理プロセスをシミュレートするニューラルネットワ ークの特徴である非線形的な動作に注目し、その化学物質の構造活性相関への適用を目的と するニューラルネットワークシミュレータを開発した。
 ニューラルネットワークは、複数のニューロンを結合して構成される。個々のニューロンの 動作は、他の複数のニューロンからの信号を入力として受けとり、その総和がある値(閾値) を越えた時1を、それ以外は0を出力するように動作する。このようなニューロンの結合の 仕方の違いにより、様々な種類のネットワークがある。大まかに言えば、すべてのニューロ ンが、他のすべてのニューロンと結合しているホップフィールド型、入力層・中間層・出力 層と呼ばれる層からなる階層型ニューラルネットワーク(この場合、各層のすべてのニュー ロンは、前後の層のすべてのニューロンと結合している)などがあげられる[1]。本研究では、 ある入力に対し、"on"か % "off"かの判断を行なう、階層型ニューラルネットワークシミュレータ Necoを開発した。 もちろん"on"か"off"かの1ビットの情報だけでなく後述のように多ビット情報を出力する よう拡張することは容易である。プログラミング言語はCで書かれ、基本的な命令のみを用 いているので多種類の計算機に移植可能である。尚、本プログラムはコメント行を含めて890 行のプログラムであり、SunOS 4.03上で動いているGNU Cコンパイラを用いてコンパイ ルした実行モジュールのサイズは73728バイトである。
 階層型ニューラルネットワークを用いる場合、入力層・1層の中間層・出力層の3層からな るネットワークを扱う場合が多いが、ここでは、中間層の層数をユーザが何層にでも指定で きるようなシミュレータを作成したので、様々なニューラルネットワークシステムを自由に 構築することができる。また、本シミュレータは、"on" か"off"かの1bitの判断を行なうた め、出力層のニューロン数は1であるが、出力層のニューロン数を増やし、複数の分類を行 なうことができるシミュレータへの拡張法も紹介する。また本シミュレータの応用例として、 ノルボルナン類の^{13}C-NMRケミカルシフト[3]をもとに、その化合物の2位の置換基の立 体配置(endo,exo)を予測する問題を取り上げる。
 また従来のニューラルネットワークを用いた研究は、入力パラメータの出力への依存度の解 析が十分なされているとはいえず、むしろ、相関関係のソルバとしての役割に注目した研究 がなされていた。従って、従来のニューラルネットワークの利用では推論の因果関係が明ら かではなく、特徴抽出のプロセスも不明であった。しかしながら構造活性相関への適用を考 えた場合、構造を表す入力パラメータと出力の因果関係の解析は不可欠なものである。本研 究では入力データの特徴抽出の方法として再構築学習法を取り上げ、それを用いてノルボル ナン類のデータについて解析した結果について説明する。また、この結果について新たに開 発したパラメータスキャン法を用いて確かめたのでそれについても説明する。

2 ニューラルネットワーク法

2.1 ニューラルネットワークの構造
 ニューラルネットワークは、上述したように0か1かを出力するニューロンが複数結合して 構成される。階層型ニューラルネットワークの場合、入力層・中間層・出力層の各層のニュ ーロンが、前後の層のニューロンと結合している。

2.2 ニューラルネットワークにおける学習
 階層型ニューラルネットでは、学習によって望ましい出力結果が得られるようになる。学習 の方法は大別すると、教師あり学習と教師なし学習の2つがある。教師あり学習とは、入出 力関係の学習をいくつかの教師データをもとに事前に行なうことである。代表的な学習方法 として、バックプロパゲーション法[2]がある。これを簡単に説明すると、出力データと教師 データとの誤差を、出力層から入力層に向かって逆向きに流すことにより、誤差が小さくな るように結合を変えていく。
 階層型ニューラルネットワークにおいて、第n層のj番目のニューロンの出力をOjとする と、Ojは第(n-1)層のi番目のニューロンの出力xiに結合荷重Wijをかけたものの総和yj に動作関数fを施したものとして表される。

動作関数として微分可能なシグモイド関数が通常用いられる。

今、ある入力ベクトルに対し出力ベクトルO = (O1, O2, …)が得られたとする。ここで教師 ベクトルをt = (t1, t2, …)とし、学習を評価するための評価関数Eを式(4)で定義する。

式(4)よりEはOjの関数で、Ojはニューロン間の結合荷重Wijの関数となる。従って、E はWijの空間内の超曲面とみなすことができ、この曲面の極小値に達するためには、Eの Wijについての偏微分(∂E/∂Wij)に比例した量(δWij)だけ(Wij)を変化させる。これは、 誤差が曲面上を最も急な傾斜方向へ進むことを意味し、このような学習を一般に最急降下法 という。δWijはεを比例定数として式(5)のように表すことができる。

式(1)〜(5)より式(6)を得る。

式(6)によって与えられる学習則をデルタルールという。
 バックプロパゲーション法は出力の誤差を順に前の層へ伝えていく学習法であり、この考え 方にデルタルールを適用して式(7)〜(9)を得る。

ここでNは層数を表す。上添字は層間を表す。式(8)は出力層と中間層の間の結合の修正に、 また式(9)はそれ以外の結合の修正に用いる。
 本研究では結合の変化量を決める際に、式(7)の右辺に前回の変化量の定数倍の項を付け加え た式(10)を用いた。

ここでパラメータεはどれだけ極小解の方向に進ませるかを指示する定数で、この値は学習 の速さに関係する。学習にバックプロパゲーション法を用いた場合は、この値を0.75にし た。また、パラメータηは安定化定数で学習時の振動を抑える効果がある。この値は0.8に した。
階層型ニューラルネットワークは、この教師あり学習方式をとる。ちなみに、教師なし学習 とは自己組織化である。自己組織化においては、入力信号の統計的性質をネットワーク内部 に取り込み、自己の構造を変えていく。教師なし学習方式はすべてのニューロンが互いに結 合しているホップフィールド型ニューラルネットワークで用いられている。いずれの場合も、 学習によって得られた情報は、ニューロンとニューロンの結合の強さを表す結合荷重行列に 蓄えられる。
 本プログラムでは、階層型ニューラルネットワークの学習法として広く用いられているバッ クプロパゲーション法に加え、青山らの再構築学習法[1,2,4]も実装した。それは、学習過程 において、通常のバックプロパゲーション操作の他に消去過程を入れるものである。ここで いう消去過程とは、結合荷重行列要素を部分的に消去することである。

3 ニューラルネットワークシミュレータの構成と入力データ

3.1 Necoの構成
 図1 に示すように構築したニューラルネットワークシミュレータは大まかに6つの部分よ り構成される。各部分の概要を以下に説明する。


図1.シミュレータの概要

1. user_input
 ここでは、まず、本シミュレータを用いて、学習と予測の両方を行なうのか、学習のみを 行なうのか、予測のみを行なうのかを決定する。次に学習方法を決定する。ここでは、通常 のバックプロパゲーション法と再構築学習法の2通りの学習が可能である。さらにここで、 ネットワークの構造を決定する。すなわち、層数と中間層のニューロン数を決定する。入力 層のニューロン数は入力データの要素数によって自動的に決定される。また出力層は1であ る。次に最大何回学習を行なうかを決定する。これは学習が収束しなかった場合に、何回で 学習を打ち切るかを決定する。詳しくは後述の入力と入力データの節で説明する。

2. scale_data
 ニューロンは0から1の範囲で動作するので、各層のニューロンに入力される値は、0 から1の範囲にある必要がある。中間層と出力層に入力される値は、シグモイド関数によっ て自動的に0から1の範囲になるが、入力層の各ニューロンに入力される値は、0から1の 範囲にスケールしておく必要がある。そのため本ステップでは、学習に用いる入力データの 各要素の最小値を0.1に、最大値を0.9にスケールする。ここで0と1にスケールしない理 由は、予測に用いるデータの中に、学習に用いたデータの最小値より小さいデータ、あるい は最大値を越えるデータがある場合を考慮したためである。

3. test_data_scale
 scale_dataとほぼ同様であるが、予測に用いるデータの場合、学習に使われたデータの 最大値、最小値をそれぞれ、0.1, 0.9として、予測に用いるデータをスケールする。

4. initialize
 結合荷重行列の初期設定を行なう。ここでは、-0.6から0.6の範囲で、一様乱数を発生さ せる。それを結合荷重行列の初期値とする。

5. study
 学習過程は、主に、forward_propagationと、back_propagationからなる。 forward_propagationでは、入力層に入力されたデータは、結合の重みに比例しながら出力 層に向かって伝達される。back_propagationは、学習アルゴリズムバックプロパゲーショ ン法を実装したものである。学習は、出力と教師データの誤差の二乗和が、ある値以下にな るまで続ける。ここでは0.1に設定してある。ただし、学習が最初に設定した回数行われた ら学習を終了する。

6. prediction
 学習によって得られたネットワークの入力層に、未知データの入力データを入力して得ら れた出力結果が、ネットワークが出した予測結果となる。

3.2 入力と入力データ
 学習予測過程を通じて必要なファイルは、学習に用いるデータのファイル、予測に用いるデ ータのファイル、学習によって得られた情報(結合荷重行列等)を保存するデータの3種類 である。これら3つのファイルを総合して、1つのファイルグループと呼ぶ。3つのファイ ルは同じファイルグループ名に識別子をつけて区別する。学習に用いるデータのファイル名 は(ファイルグループ名).DFS、予測に用いるデータのファイル名は(ファイルグループ 名).DFP、保存のためのデータのファイル名は(ファイルグループ名).NETとする。ファイル グループ名のみを入力すると、3つのファイルに必要に応じてアクセスすることができるよ うになっている。
 Necoの実行手順としてはまず、本シミュレータを用いて、学習と予測の両方を行なうのか、 学習のみを行なうのか、予測のみを行なうのかを決定する。学習終了後、未知データに対す る予測を行なう場合はコンソールより'b'を、学習のみを行なう場合は'l'を、すでに学習終了 後のネットワークを用いて、予測のみを行なう場合は'p'を入力する。'p'の場合は、.NETと いうファイル識別子の付いたファイルがすでに存在していなければならない。このとき、プ ログラムは以前学習を行なった際に得られた結合荷重行列値等を保存したファイル(.NET の付いたファイル)に書かれたデータを読み込む。
 さらに、ネットワークの構造を決定する。すなわち、層数と中間層のニューロン数を入力す る。入力層のニューロン数は入力データの要素数によって自動的に決定される。また出力層 は1である。次に最大何回学習を行なうかを決定する。これは、学習が収束しなかった場合 に何回で学習を打ち切るか、その回数を入力する。
 次に必要なファイルの内容について説明する。

3.2.1 学習に用いる入力データ
 まず一般的なルールとして、学習に用いるデータが入っているファイルは、ファイル名に識 別子.DFSが付いていなければならない。またファイルの内容については、先頭に#がついて いる行は、コメント行とみなす。また、データは必ず>>studyで始まり、>>endで終らなけ ればならない。学習に用いる入力データの形式は、データの各要素の意味を表すパラメータ 指定部とデータ部からなる。
 パラメータ指定部は1から3の数字からなる。それぞれの意味は、

1: 入力層に入力されるデータを表す。
2: データの番号を表す。ネットワークには直接関係ないデータ。
3: 教師データ

である。例を下に示す。
(例)

 入力データには上記の3つの要素が含まれていなければならない。
データ部では、パラメータ指定部の指定にしたがって値が並べられる。1行に書かれたデー タは、1組のデータセットである。
 次に学習に用いる入力データの例を示す(表1) 。
 表1 のデータは、図2に示すノルボルナンの基本骨格に様々な置換基のついた誘導体(ノル ボルナン誘導体)の^{13}C-NMRケミカルシフトとその立体配置[3]である。入力データは7つ のケミカルシフト値、そして教師データはそれぞれの分子の立体配置(exo,endo)である。こ こで入力層のデータであるケミカルシフトは、C1,C2,C3,C4,C5,C6,C7の順に並んでおり、 教師データの0はexoを、1はendoを表している。この例の場合、教師データはこのよう に0または1の数字で表す。1行に書かれたデータは1つの化合物に関するデータで、7つ の炭素原子のケミカルシフト値とその立体配置からなる。図3に入力データに対応するノル ボルナン誘導体の構造を示した。図3でexo= , endo= で与えられる数字は、表1及び表2 の化合物の番号を表している。


図2:ノルボルナンの基本骨格


図3:入力データに対応するノルボルナン誘導体の構造
exo= ,endo= で与えられる数字は表1及び表2の化合物の番号を表している。

表1:ノルボルナン類の^{13}C-NMRケミカルシフトとその立体配置(学習用)
注1:^{13}C-NMRのケミカルシフト値は、左側からC1,C2, … ,C7となっている。
注2:教師データの0はexo、1はendoを表す。

#data for study
>>study
2     1      1      1      1      1      1      1    3   パラメータ指定部
1    6.7    6.7   10.1    0.5    0.2   -1.1   -3.7   0   データ部
2    8.9   25.3   12.4   -0.4   -1.2   -3.1   -4.4   0
3    7.7   44.3   12.3   -1.0   -1.3   -5.2   -4.4   0
4    4.6   16.7    4.4   -0.2   -0.3   -1.0   -1.8   0
5    1.8   15.1    4.4   -0.2    0.2   -0.7   -3.3   0
6    5.7    3.0    2.6   -0.5   -0.4    0.7   -3.5   0
7    6.1    5.9   10.6    0.6    0.2    0.2   -3.7   0
8    6.5    6.3   10.4    0.3   -0.8   -0.1   -3.5   0
9    6.5    7.5    9.5    0.5    1.7    0.7   -3.8   0
10   7.8   47.0   11.7   -1.3    3.9   -2.7   -3.2   0
11   6.9    6.9   10.1    0.7   -1.2    0.1   -3.9   0
12   5.6    4.9    7.0    0.2   -1.1    0.2   -3.9   0
13   2.5   42.5   11.9   -0.8   -1.1   -2.4    1.4   0
14   5.4    4.5   10.6    1.4    0.5   -7.7    0.2   1
15   6.8   23.3   10.5    1.2    0.6   -9.5    0.3   1
16   6.3   42.4    9.5    0.9    0.2   -9.7   -0.9   1
17   4.2   16.2    2.1    0.9   -0.6   -4.8    1.9   1
18   1.7   12.8    4.0    0.4    0.2   -7.2    1.4   1
19   4.7    3.1    2.2    0.3    1.3   -6.5   -0.6   1
20   4.7    5.3    9.2    1.3   -0.4   -6.5    1.4   1
21   4.6   11.5    8.9   -0.1    0.8    0.4    1.8   1
22   5.6    7.5    8.7    1.4    1.7   -3.0    1.7   1
23   7.1   47.8   13.3    2.2    3.6   -3.4    0.3   1
24   4.1    4.2    7.0    0.7    0.5   -7.4    0.0   1
25   3.2   40.2   10.4   -0.5    0.0  -10.3    3.1   1
>>end

3.2.2 予測に用いるデータ
 予測に用いるデータは、.DFPという識別子の付いたファイルに作られなければならない。 学習に用いるデータとほぼ同じ形式であるが、入力データは必ず>>predictionで始まらなけ ればならない。また学習に用いるデータと同様に、パラメータ指定部とデータ部からなる。 パラメータ指定部は、.DFSファイルと全く同じものでなければならない。表2に例を示す。 表2では、参考のために、予測に用いるデータに各化合物の立体配置を含めているが、この 部分はネットワークが予測する部分なのでデータになくても構わない。

表2: ノルボルナン類の^{13}C-NMRケミカルシフトとその立体配置(予測用)
注:^{13}C-NMRのケミカルシフト値は、左側からC1,C2, …,C7となっている。

#data for prediction
>>prediction
2     1      1      1      1      1      1      1    3   パラメータ指定部
26   5.5    1.0    6.3   -0.3   -1.5   -1.6   -1.3   0   データ部
27   3.4    0.1    5.5    0.2   -0.7   -4.9    0.0   1
28   5.1   16.4    4.2   -0.4   -1.1   -1.4   -2.1   0
29   4.0   15.9    2.2    0.7   -0.7   -5.0    1.7   1
30   6.6    7.0   10.1    0.2   -1.2    0.5   -3.7   0
31   6.0    8.4   11.2   -0.1    0.7   -1.5   -1.6   1
32   6.3    7.2    9.8    0.7   -0.1    0.8   -3.5   0
33   5.1    4.8    8.4    1.1   -0.1   -7.3    1.6   1
34   1.9   17.1    5.2   -0.1    0.9    0.9   -3.4   0
35   2.3   18.3    5.0    0.3    1.3   -2.9    1.4   1
36   5.1    4.0    8.4    1.1    0.2   -7.7    1.6   1
37   2.9   30.3   13.4   -0.5   -2.1   -0.7    2.0   0
38   3.7   29.8   10.8   -1.6   -1.1   -9.0    2.2   1
>>end


4 応用例

 本シミュレータをノルボルナン誘導体の^{13}C-NMRケミカルシフトとそれらの誘導体の2 種の立体配置(endo,exo)の関係を学習し、未学習の誘導体の立体配置を予測する問題に適用 した例を示す。この例の学習法は、バックプロパゲーション法である。

4.1 ノルボルナン類の^{13}C-NMRケミカルシフトと立体配置との関係
 図2に示した基本骨格に様々な置換基がついた誘導体(ノルボルナン誘導体)の^{13}C-NMR ケミカルシフトのデータから、その誘導体の2位の置換基の立体配置とケミカルシフトの関 係を学習させ、未知誘導体の立体配置を予測させる問題に本シミュレータを適用した。

4.2 入力データ
 学習に用いた入力データファイル名はdata_in.DFS、予測に用いたデータファイル名は data_in.DFPである。それぞれのファイルの内容は表1および表2に示したものと同様であ る。これは誘導体のノルボルナン骨格の各炭素原子(C1〜C7)の^{13}C-NMRケミカルシフト のデータである。ここに示された数値は、対応する誘導体の置換基のない基本骨格の化合物 からのケミカルシフト差である。学習に用いたデータ数は25、予測に用いたデータ数は13 である。また、教師データの0はexoを、1はendoを表す。

4.3 実行結果
 実行例を以下に示す。下線部がコンソールからの入力である。

%neco
Please input 'b' or 'l' or 'p'
 'b': learning and prediction
 'l': only learning
 'p': only prediction
 i
Please input the name of the data file.(<= 20characters)
 data_in
Please input 'b' or 'r'
 'b': back propagation
 'r': reconstruction
 b
Please input the number of layers. ( >= 3, <= 10)
 3
Please input the number of neurons ( <= 20)(in #layer:2)
 14
Please input the maximum number of learning cycles
 100000

 以上がユーザがコンソールから入力する事柄である。上の実行例では、ニューラルネットワ ークの構造は層数3、すなわち中間層の層数1で、中間層のユニット数14とした。表1 に 示したdata_in.DFSのデータを用いて学習終了後、表2 に示したdata_in.DFPのデータの 立体配置を予測した実行結果を表3 に示す。また、参考までに学習によって得られた結合荷 重行列を表4 (1,2層間)と表5 (2,3層間)に示す。この実行例では学習が収束する(誤差の二乗 和が0.0001以下になる)までに5667回の学習を必要とした。

表3: 未学習化合物に対する立体配置予測結果

####  Data For Study  ####
Item          1    ネットワークの予測結果   実際の立体配置
------------------------------------------------------------
 26       0.146828         exo                   exo 
 27       0.965283        endo                  endo
 28       0.028038         exo                   exo
 29       0.989916        endo                  endo
 30       0.004862         exo                   exo
 31       0.233150         exo                  endo
------------------------------------------------------------
 32       0.016931         exo                   exo
 33       0.995785        endo                  endo
 34       0.013144         exo                   exo
 35       0.982763        endo                  endo
 36       0.996343        endo                  endo
 37       0.138986         exo                   exo
 38       0.945562        endo                  endo

表4: 学習後の結合荷重行列(1,2層間)

****FINAL WEIGHT MATRICES****
Weight mtx. between layer1(row) and layer2(column)
        1       2       3       4       5       6       7
-----------------------------------------------------------------
  1   -0.30   -1.51   -0.61    1.91    1.90   -2.67    3.73
  2   -0.70   -0.40   -0.74   -0.36   -0.14   -1.00    0.11
  3    0.23    0.33    0.13   -1.10   -0.72    1.23   -1.89
  4   -0.51   -0.11   -0.43   -0.79   -0.19    0.13   -1.03
  5   -0.34   -0.12   -0.19   -0.64   -0.33    0.17   -1.00
  6   -0.55   -0.51   -0.67   -0.28    0.13   -1.03    0.24
  7   -0.08   -1.49   -0.70    2.03    1.68   -2.49    3.62
  8   -0.30   -0.09   -0.76   -0.71   -0.22   -0.44   -0.63
  9    0.02    1.64    0.50   -2.41   -1.73    3.11   -3.96
 10   -0.48   -0.09   -0.40   -0.67   -0.59    0.19   -1.02
 11   -0.37   -0.49   -0.66   -0.13   -0.31   -1.17    0.31
 12    0.22    0.18    0.08   -0.88   -0.94    1.19   -2.13
 13   -0.67   -0.52   -0.33   -0.73   -0.20   -0.63   -0.27
 14   -0.51   -0.21   -0.82   -0.30   -0.04   -0.55   -0.42

表5: 学習後の結合荷重行列(2,3層間)

Weight mtx. between layer2(row) and layer3(column)
         1
-----------------
  1    3.51
  2    0.46
  3   -1.94
  4   -0.89
  5   -0.90
  6    0.61
  7    3.42
  8   -0.38
  9   -4.00
 10   -0.97
 11    0.64
 12   -2.03
 13   -0.04
 14   -0.02

 この例では、表3で下線を引いた31番目が間違った予測となっているが、青山らがFortran で作成したプログラムでも同様に間違った結果を出している。全く独立にコードされたプロ グラムが全く同様に間違っている答を出していることは、31番目のデータに何らかの誤差 が大きく入り込んでいることを示唆していると考えられる。  ニューラルネットワークシミュレータによる予測では、入力データとそれの出力データの因 果関係が明らかではない。そのため本入力データの特徴を抽出するために、再構築学習法と パラメータスキャン法を用いて解析を行なったので次に説明する。

4.4 特徴抽出の方法
 次に、入力データのどの要素が出力に大きく関与しているか、入力データの役割を解析する 方法について述べる。このような特徴抽出の方法について、青山らは再構築学習法を提案し た[1]。本研究ではこれに加えパラメータスキャン法と名付けた方法により特徴抽出を試みた。 ここでは、ノルボルナン類の^{13}C-NMRの7つのケミカルシフト値の特徴抽出を再構築学習 法とパラメータスキャン法を用いて行なった結果を示す。

4.4.1 再構築学習法
 再構築学習法とはバックプロパゲーションを用いた学習過程の他に消去過程を取り入れた ものである。消去過程とは結合荷重行列を式(11)にもとづいて部分的に消去することである。
式(11)でζはWijを急激に変化させないためのパラメータであり、εの1/10に設定した。ま た、望ましい結合荷重行列の結果が得られるためには、十分な消去過程が必要であり、その ため学習を非常にゆっくりと収束に向かわせる必要がある。従って、学習の収束速度に影響 のあるεの値をバックプロパゲーション法のみを用いた場合の1/10に設定した。{ }内は、 Wijの絶対値が0に近い時に消去によってその符合が変化しないように付け加えられた項で ある。
 式(11)により同じ種類の情報に関与している複数のニューロンが1つのニューロンに集約さ れて不必要なニューロンの孤立が起こる。つまり不必要なニューロンの結合はほぼ0になる。 このことにより、再構築学習法によって得られた結合荷重行列をたどれば入力層のどのニュ ーロンが出力に関係しているかがわかる。
 表1のデータを用いて再構築学習を行なった。再構築学習法を用いた場合300000回の学習 を行なっても誤差の二乗和が0.001以下にならなかった。学習によって得られた結合荷重行 列を表6, 表7に示す。

表6: 再構築学習法により得られた結合荷重行列(1,2層間)

****FINAL WEIGHT MATRICES****
Weight mtx. between layer1(row) and layer2(column)
         1       2       3       4       5       6       7
----------------------------------------------------------------
  1    0.00    0.01    0.00    0.00    0.00    0.01    0.00
  2    0.00    0.01    0.01    0.00    0.00    0.01    0.00
  3    0.00    0.01    0.00    0.00    0.00    0.00    0.00
  4    0.00    0.01    0.00    0.00    0.00    0.00    0.00
  5    0.00    0.00    0.00    0.00    0.00    0.01    0.00
  6    0.01    0.00    0.00    0.01    0.00   -0.00    0.00
  7    0.00    0.01    0.01    0.01    0.00   -0.00    2.07
  8    0.00    0.00    0.00    0.01    0.00    0.00    0.00
  9   -0.01    2.93    0.00   -2.27   -3.28    4.32   -4.82
 10    0.01    0.00    0.00    0.01    0.01    0.00    0.00
 11    0.00    0.01    0.01    0.00    0.01    0.00    0.01
 12    0.00    0.00    0.01    0.00    0.01    0.01    0.00
 13    0.00    0.00    0.00    0.01    0.00    0.01    0.00
 14    0.00    0.01    0.01    0.01    0.00    0.00    0.01

表7: 再構築学習法により得られた結合荷重行列(2,3層間)

Weight mtx. between layer2(row) and layer3(column)
         1
---------------
  1     0.01
  2     0.01
  3     0.00
  4     0.01
  5     0.00
  6     0.00
  7     6.77
  8     0.01
  9   -15.53
 10     0.01
 11     0.01
 12     0.01
 13     0.00
 14     0.00

 表4, 表5に示した結合荷重行列ではすべてのニューロンとニューロンの間に結合が存在し ているのに対して、表6, 表7に示した結合荷重行列では入力層の1,3番目のニューロンは 中間層のニューロンと全く結合していない。これに対して、中間層のニューロンに強く結合 しているのは6,7番目のニューロンである。入力層の6,7番目のニューロンにはC6とC7 が対応しているので、以上の結果によりC6とC7のケミカルシフト値が立体配置の決定に 大きく関与していることがわかる。この解析の妥当性を見るために、パラメータスキャン法 を同じ問題に適用したので次にその結果を述べる。

4.5 パラメータスキャン法
 パラメータスキャン法とは入力データのある要素の出力への役割を調べるのにその要素の 値をその要素のとり得る範囲で0.1づつ変化させ、それぞれの値についてニューラルネット ワークに出力を予測させ、そのパラメータに関するニューラルネットワークの感受性を調べ る方法である。例えばノルボルナン類のC1のケミカルシフト値の出力への役割を調べるた めに、表2に示した化合物26〜38の未知データについてC1の値を1.7〜8.9の範囲で変 化させ、それぞれの値について立体配置をネットワークに予測させる。C2〜C7についても 同様のことを行なう。この方法によるとニューラルネットワークがそれぞれの要素に対して どのような分類を行なっているかがわかる。パラメータスキャン法によって得られた結果を 図4-1図4-7に示す。


図4-1 C1をスキャンさせた場合     図4-2 C2をスキャンさせた場合


図4-3 C3をスキャンさせた場合     図4-4 C4をスキャンさせた場合


図4-5 C5をスキャンさせた場合     図4-6 C6をスキャンさせた場合


図4-7 C7をスキャンさせた場合

 図4-1を見ると、1.7〜8.9の範囲でのC1のケミカルシフトの変化に対してはすべての分子 に対して立体配置の判断の変化は見られず、C1は立体配置の決定に関与していないことを 示している。図4-2図4-3によりC2,C3のケミカルシフトについても感受性は弱いことが わかる。図4-6図4-7を見るとほとんどの化合物についてC6とC7のケミカルシフトの 変化に敏感であることを示しており、C6とC7が立体配置の決定に大きく関与していること を示している。これは再構築法で示唆された傾向と同じ傾向を示している。
 そこで次にC6とC7の2つのケミカルシフト値を入力データとし、誤差の二乗和が0.0001 以下になるまでバックプロバゲーションによる学習を行ない、未学習データに対してその立 体配置を予測した。ここで用いた学習データと未学習データは、表1,表2に示したものと同 様である。未学習データに対する予測結果を表8に示す。
 表8に示した結果は、C1〜C7の7つ全てのケミカルシフト値を用いた結果と完全に一致し ており、未学習化合物に対する予測では31番目の化合物以外は正しく立体配置を予測する ことができた。このことはC6とC7のみで立体配置を決定することができることを示して いる。
 次にC6とC7の値をもとにニューラルネットワークがどのような分類を行なったかを調べ るためにC6とC7を同時に変化させるパラメータスキャンを行なった。その結果を図5に 示す。図5の黒い部分がendoの部分であり、これからはニューラルネットワークの最大の 特徴である非線形分類がなされていることがわかる。またこの図が正しいとすると、ニュー ラルネットが間違った答を出した31番目の化合物のC6のケミカルシフトの実験値の絶対 値が小さいために、31番目のデータは間違った結果となったことがわかる。
 図6は教師データに31番目のデータを組み込んだ時のC6とC7のパラメータスキャンの 結果である。この学習には31番目のデータを組み込まない場合の約1.5倍の時間を必要と した。図5と比較すると、31を取り込むようにendoの領域が広がっている。このため1 つの化合物の構造の予測に誤りを生じさせている。ここに示すように階層型ニューラルネッ トワークによる予測は、当然のことながら学習させるデータの質に強く依存することに注意 が払われなければならない。
 以上の結果により、C6とC7のケミカルシフトが分子の構造の決定に重要であることがわか ったが、なぜそれらがexoおよびendoの決定に重要であるかは、量子化学的な意味からは 明らかではない。これについてはさらに詳細な量子化学的な解析が必要である。

表8: 未学習化合物に対する立体配置予測結果(2)

#### Data For Study  ####
Item           1     ネットワークの予測結果   実際の立体配置
---------------------------------------------------------------
 26       0.000058            exo                   exo
 27       0.999969           endo                  endo
 28       0.000000            exo                   exo
 29       0.999973           endo                  endo
 30       0.000070            exo                   exo
 31       0.000012            exo                  endo
---------------------------------------------------------------
 32       0.000098            exo                   exo
 33       0.999973           endo                  endo
 34       0.000108            exo                   exo
 35       0.927694           endo                  endo
 36       0.999973           endo                  endo
 37       0.342037            exo                   exo
 38       0.999973           endo                  endo


図5: C6,C7を入力データとするニューラルネットワークの分類結果(1)


図6: C6,C7を入力データとするニューラルネットワークの分類結果(2)

5 Necoの拡張法

 本ニューラルネットワークシミュレータは、入力データをもとに"on"'か"off"かのみを予測す る。つまり結果を2つに分類するシミュレータである。しかし実際には3つ以上に分類を行 ないたいことも多い。そのような場合本シミュレータを若干修正して3つ以上に分類するこ とも可能である。本シミュレータでは出力層のユニット数を1に設定しているが、出力層の ユニット数の設定を増やすことによりより多くの分類が可能になる。次にNecoの拡張法に ついて述べる。

#include <STDIO.H>
#include <MATH.H>
#include <STRING.H>
#define  Max_NHidden  24
#define  Max_NHidden  24
#define  NOut          1
#define  Max_NIPdata  15
#define  Max_NSFD     25
#define  Max_NPFD     13
#define  Max_NLayers  10
#define  NHLayers    (NLayers-2)
#define  Class         2

図7: プログラムの先頭部分

図7に示すプログラムの先頭部分で、

#define NOut 1

となっているが、ここで1の代わりにn ≦ 2と設定すれば、出力層のユニット数がnのシ ミュレータに拡張することができる。例えば出力層のユニット数を2に設定したとする。す ると結果を4つのパターンに分類することが可能になる。但しここで、教師データのパター ン数をプログラムの先頭部分で、

#define Class 2

と定義してあるので、この設定を必要なパターン数に定義し直す必要がある。( n=2の場合 Classは最大4となる。)

(例) #define NOut 2 #define Class 4

 例えば上のように定義した場合、結果を4つに分類することが可能である。この場合教師デ ータは0から3の数字で表す。教師パターンは0,1のビット列で表されるので、教師データ をスケールして0,1のビット列にする必要がある。上の例では教師パターンは、2ビットで ある。各々の教師データにどのような教師パターンを与えるかは、ユーザが設定しなければ ならない。(出力層のユニット数が1の場合は、教師データは0,1で表されるので、そのま ま教師パターンになる。)

6 おわりに

 本研究では分子の構造活性相関解析のための階層型ニューラルネットワークシミュレータ をC言語を用いて開発した。特別な命令は使用していないので、さまざまな計算機に移植可 能である。ユーザは、中間層の層数と中間層のユニット数を自由に設定でき、また学習の方 法も通常のバックプロパゲーション法と青山らが提唱した再構築学習法の2通りを選択で きるようにした。
 本シミュレータの応用例として、ノルボルナン類の^{13}C-NMRケミカルシフトとその立体配 置の関係を学習し、未学習誘導体の立体配置を予測する問題に適用した。ネットワークの構 造は、層数3・中間層のユニット数14とし、学習法はバックプロパゲーション法を用いた。 この例では25個の化合物を用いて学習を行ない、学習終了後13個の化合物の立体配置を 予測した結果、1つの化合物についてのみ間違っていたが、これは青山らがFortranのプロ グラムを用いて行なった結果と一致するものでこの化合物のデータ中に何らかの間違いが あるものと思われる。
 次にニューラルネットワークによる特徴抽出の方法として再構築学習法とパラメータスキ ャン法を取り上げ、ノルボルナン類の^{13}C-NMRケミカルシフトと立体配置の決定に関与し ているパラメータの抽出を行なった。その結果どちらの方法を用いた場合もC6とC7が立 体配置の決定に重要であるという結果が得られた。そこで入力データをC6とC7の2つの ケミカルシフト値にして学習を行なった結果、7つのケミカルシフト値を用いた場合と全く 同様の分類・予測結果が得られた。このことは立体配置の予測に本質的に必要なパラメータ はC6とC7であることを示唆している。またパラメータスキャン法において、C6とC7 を同時にスキャンさせた結果、ニューラルネットワークの特徴である非線形分類がなされて いることがわかった。
 本シミュレータは"on","off"の判断を行なう、つまり結果を2つに分類するシミュレータであ るが、プログラムに若干の修正を加えれば3つ以上に分類することも可能であり、ここでは その拡張法も紹介した。

参考文献

[1] 青山 智夫, ニューラルネットワークによる薬物の構造活性相関に関する研究, 東北大学 博士論文, (1992)
[2] 市川 紘, 階層型ニューラルネットワーク 非線形問題解析への応用, 共立出版株式会社, (1993)
[3] S.Sasaki, H.Abe, Y.Takahashi, T.Takayama, and Y.Miyashita, ``Introduction to Pattern Recognition for Chemists'', Tokyo Kagaku Dojin, Tokyo, Japan, Chap. 1(1984)
[4] T.Aoyama and H.Ichikawa, Chem. Pharm. Bull., 39, 372(1991)


Return