Algorithm 2: グラフ集合のベクトル化 vectorize
Data: G =
{g
1
, g
2
,
· · · , g
n
} and h
Result: x
1
, x
2
,
· · · , x
n
1
for i
∈ [1, n] do
2
L
i
← ∅;
3
for t
∈ [0, h] do
4
Σ
t
← ∅;
5
for g
i
∈ G do
6
L
i
← L
i
∪ {ℓ(v) | v ∈ V (g
i
)
};
7
Σ
t
← Σ
t
∪ {ℓ(v) | v ∈ V (g
i
)
};
8
g
i
← relabel(g
i
, map);
9
if
∀ℓ ∈ Σ
t
, sup
ℓ
≤ 1 then
10
break;
11
for i
∈ [1, n] do
12
x
i
← 0;
13
for ℓ
∈ L
i
do
14
x
iℓ
← 1;
15
return x
1
, x
2
,
· · · , x
n
;
いて使われた化合物データは多くても数万個程度だが,
文献 [5] によって作られた人工化合物データは 1660 億
個もある.したがって,人工化合物を用いることは数の
点において有利だと言える.このようにして構成された
ニューラルネットワークは変異原性のデータ量が少なく
ても,過学習が起こらず,分類精度が向上すると考えら
れる.提案手法の擬似コードを Algorithm 3 に示す.入
力は人工化合物のグラフデータ G
art
,MUTAG のグラ
フデータ G
mutag
,ニューラルネットワークの各層のユ
ニット数 e
1
,
· · · , e
l
,各グラフのリラベル回数 h である.
l はニューラルネットワークの層数である.まず,2 行目
で人工化合物と MUTAG のグラフデータをニューラル
ネットワークに適用できるようにベクトル形式に変換
する.ベクトル形式に変換された人工化合物と MUTAG
のデータをそれぞれ X
art
と X
mutag
に格納する.5 行目
から 9 行目でオートエンコーダによる事前学習を行う.
ae(e
j
, e
j+1
) は入力層と出力層のユニット数が e
j
で中
間層のユニット数が e
j+1
をであるオートエンコーダを
構築する関数であり,train(AE, X) はオートエンコー
ダ AE をデータ X で学習する関数,getW eight(AE)
はオートエンコーダ AE の入力層と中間層の間の重み
を抽出する関数である.af (W
j
, X
art
) は活性化関数の
関数であり,次のオートエンコーダの入力を計算する.
そして,l
− 1 個のオートエンコーダを学習した後,10
行目の関数 nn(W
1
,
· · · , W
l
−1
) により l 層のニューラル
ネットワークを構築する.ここで,事前学習した l
− 1
個の重み W
j
をこのニューラルネットワークの重みの初
期値とする.最後に,11 行目で,関数 train(N N, X)
Algorithm 3: 提案手法の擬似コード
Data: G
art
=
{g
i
}
n
i=1
1
, G
mutag
=
{(g
i
, t
i
)
}
n
i=1
2
,
(e
1
,
· · · , e
l
) and h
1
G = G
art
∪ {g
i
|(g
i
, t
i
)
∈ G
mutag
};
2
{x
1
,
· · · , x
n
1
, x
n
1
+1
,
· · · , x
n
1
+n
2
}
← vectorize(G, h);
3
X
art
← {x
1
,
· · · , x
n
1
};
4
X
mutag
← {x
n
1
+1
,
· · · , x
n
1
+n
2
};
5
for j
∈ [1, l − 1] do
6
AE
j
← ae(e
j
, e
j+1
);
7
train(AE
j
, X
art
);
8
W
j
← getW eight(AE
j
);
9
X
art
← af(W
j
X
art
);
10
N N
← nn(W
1
,
· · · , W
l
−1
);
11
train(N N, X
mutag
);
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
000000000000000000000000
͙
͙
͙
͙
͙
͙
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
͙
͙
͙
䞉䞉䞉
䞉䞉䞉
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
0000000000000000000
͙
͙
͙
ਕԿυʖν
ʤԱݺΉͲՆʥ
087$*υʖν
ʤԿʥ
ྙ
ྙ
図 4: 提案手法の図説
によりニューラルネットワーク N N をデータ X で学
習する.以上のようにして学習された N N で,変異原
性未知の化合物の目的変量を予測する.
以上のような提案手法の図説を図 4 に示す.まず,人
工化合物データでニューラルネットワークの層の間の
数だけあるオートエンコーダを学習し,それらのオー
トエンコーダの第 1 層と第 2 層の間の重みをニューラル
ネットワークの初期重みとして適用する(
−→).2 つ目
以降のオートエンコーダの入力は一つ前のオートエン
コーダの中間層である(
99K).そして,MUTAG デー
タをニューラルネットワークに入力し,学習を行う.
変異原性のデータの持たない人工化合物による事前
学習は転移学習の考え方から意義がある.転移学習と
は,関連しているデータから,目的の問題にも利用で
きる情報を取り込んでより高い精度の規則を得ること
である.目的の問題である変異原性は化合物であるの
で,自然界に存在しうる化合物の人工化合物と関連が
ある.人工化合物を事前学習することで,化合物とは
どのような特徴をもつのかという情報が得られる可能
性がある.
表 2: 実験パラメータ
活性化関数
ReLU 関数
各層のユニット数 (NN)
1
4
,
1
3
,
1
2
(ずつ減らす)
バッチサイズ bs
N N
(NN)
5, 10, 20, 30
エポック数 ep
N N
(NN)
5, 10, 20, 30
人工化合物の数
49498
バッチサイズ bs
AE
(AE)
100, 200, 300, 400
エポック数 ep
AE
(AE)
5, 10, 20, 30
6
評価実験
6.1
実験設定
ディープラーニングのフレームワークは chainer(3.5.0)
を用いた.また,Python のバーションは 3.5.5 である.事
前学習に用いる人工化合物は GDB-13 (http://gdb.unibe.
ch/downloads/) を用いた.これに含まれる化合物は C
(炭素),N(窒素),O(酸素),Cl(塩素),S(硫黄),
H(水素)からなる.また,最大の原子数は 13(この 13
の中に水素は含まれていない).このデータに含まれ
ていた人工化合物は 303,999,096 個であるが,MUTAG
はニトロベンゼンを含む化合物であるので,約 304 万
化合物からニトロベンゼンを含む 49,498 個の化合物を
選択した.この約 5 万個の化合物から,h = 10 として,
特徴量を抽出した.特徴量の抽出に要した計算時間は
約 10 秒である.
ニューラルネットワークの学習におけるハイパーパ
ラメータの説明をする.ニューラルネットワークの学
習におけるハイパーパラメータは活性化関数,ニュー
ラルネットワークの層数,各層のユニット数,バッチサ
イズ,エポック数,事前学習に用いる人工化合物の数,
オートエンコーダのバッチサイズ,エポック数が挙げ
られる.活性化関数には ReLU 関数を用いた.ニュー
ラルネットワークの層数は 3,4,5 層の場合,各層のユ
ニット数は前の層の
1
4
ずつ,
1
3
ずつ,
1
2
ずつ減らしてい
く場合,バッチサイズは 5,10,20,30 の場合,エポッ
ク数は 5,10,20,30 の場合ですべての組み合わせで
実験を行った.オートエンコーダの数,各層のユニット
数はニューラルネットワークに従う.オートエンコーダ
のバッチサイズは 100,200,300,400,エポック数は
5,10,20,30 の組み合わせで実験を行った.以上の設
定を表 2 にまとめる.NN はニューラルネットワーク,
AE はオートエンコーダの略記である.bs
AE
,ep
AE
は
オートエンコーダのバッチサイズ,エポック数であり,
bs
N N
,ep
N N
はニューラルネットワークのバッチサイ
ズ,エポック数である.
実験で設定したニューラルネットワークとオートエ
ンコーダの図説を図 5 に示す.図 5 はニューラルネッ
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
00000000000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
0000000000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
00000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000
Ϥωρφ਼
ݺ
ݺ
ݺ
ݺ
ݺ
⋮
⋮
⋮
⋮
⋮
⋮
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
0000000000000000000000000000000
図 5: 実験設定の図説
トワーク 5 層,オートエンコーダ 4 つの場合である.
6.2
実験結果
前節で説明した設定で実験した結果を示す.人工化
合物を用いた事前学習を行い,ニューラルネットワー
クの学習をした場合,ニューラルネットワークの層数
は 4,各層のユニット数は
1
4
ずつ減らす場合,バッチ
サイズは 20,エポック数は 5,オートエンコーダの数
や各層のユニット数はニューラルネットワークに従い,
バッチサイズは 400,エポック数は 20 のときに最大の
正答率 86.01%となった.
また,先述の最大の正答率を収めたニューラルネット
ワークの設定で,事前学習を行わない場合での正答率
を調べた.このニューラルネットワークの学習には人工
化合物は用いられていない.その結果は正答率 83.53%
となり,約 2.5%の向上が見られた.
以上の実験結果を表 3 から表 10 に示す.bs はバッチ
サイズ,ep はエポック数の略記である.表 3 は各層数と
きの正答率の表である.表 4 は各層のユニット数の減ら
し方の表である.表 3,4 において,最大正答率,平均
正答率は 4 層,
1
4
ずつ減らすときである.それゆえ,表
5 から表 10 は 4 層,
1
4
ずつ減らすときの正答率である.
例えば,表 5 は層数は 4 層,層のユニット数の減らし方
は
1
4
ずつ減らすとき,オートエンコーダのバッチサイ
ズ bs
AE
= 300,エポック数 ep
AE
= 10 のとき,ニュー
ラルネットワークのバッチサイズ bs
N N
= 5, 10, 20, 30,
エポック数 ep
N N
= 5, 10, 20, 30 のすべての組み合わせ
の正答率の表である.各表で最大の正答率を太字で記
し,すべての中で最大の正答率は下線を引いた.
人工化合物を用いた事前学習を行ったニューラルネッ
トワーク (手法 A) と事前学習を行わずに作ったニュー
ラルネットワーク (手法 B) の正答率を比べると,人工