本文へスキップ

コンピュータのなかの実験室 Web 版 第 5 章

データから「学ぶ」

測ったデータから、コンピュータが規則を見つけます。AI のもとになる機械学習の、いちばん基本の形を、直線1本で追いかけます。

←目次を見る手法:機械学習

第 4 章では、コンピュータが原子のまとまりごとの寄与を足して、エタノールの log P をおよそ 0.00 と見積もりました。 では、こうした寄与の値は、だれが、どうやって決めたのでしょうか。寄与は原子タイプの数だけ、68 個あります。

実は、68 個の寄与は、log P を実験で測った 9,920 個の分子のデータに合うように、計算で決められました。 コンピュータは、どうやってデータから規則を見つけるのでしょうか。

テオ
68 個の寄与を、データに合わせて決める。手で合わせるのは無理だ。
テラ
そこで、コンピュータにデータから学ばせるんだよ!

測ったデータを並べる

log P を1回測るには、分子そのものを用意し、水とオクタノールを振って平衡にし、それぞれの層の濃度を分析する手間がかかります。 それでも、世界中の研究室が長い年月をかけて、いろいろな分子の log P を測ってきました。 1989年に、サングスターは、簡単な有機化合物 611 個について、それまでに報告された log P を集めて表にしました。

メタノールから1-ペンタノールまでの5つのアルコールについて、報告された log P の値が推奨値のまわりに散らばっているようす。
直鎖のアルコール5つについて報告された log P の値(サングスター 1989 の表から)。横の位置は、それぞれの値と推奨値との差です。同じ値の丸は縦に積み、振って分ける実験とは別の測定から求めた値は白抜きの丸にしました。青い縦線が推奨値、淡い青の帯が不確かさの幅です。原典で疑わしいとされた値は除きました。

同じ分子でも、測る人や方法によって、値は少しずつちがいます。 サングスターは、報告された値を比べて、分子ごとにいちばん確からしい値を決め、推奨値としました。 推奨値には、本当の値がこのくらいの幅に入るだろう、という不確かさが付いています。この章では、この推奨値を実測の値として使います。

5つの分子は、どれも炭素が1列につながった鎖の端に、OH が1つついたアルコールです。ちがうのは、鎖の炭素の数だけです。 では、炭素が1個増えるごとに、log P はどう変わるでしょうか。散布図に並べてみます。

炭素の数が1から5のアルコールの log P を並べた散布図。丸は右上がりのほぼ一直線に並び、炭素が1個増えるごとに +0.44 から +0.67 上がる。
直鎖のアルコールの、炭素の数と log P(実測)の散布図。名前の横は骨格構造式で、O–H の O をローズで塗りました。点線の階段の数は、炭素が1個増えたときの log P の増加分です。

炭素が1個増えるごとに、log P はおよそ 0.5 ずつ上がります。CH₂ が1つ増えるたびに、分子は油になじみやすくなるのです。 丸は右上がりのほぼ一直線に並んでいて、炭素の数と log P には強い正の相関があります。

ただし、増加分は +0.44 から +0.67 までばらついていて、丸はぴったり一直線には並びません。 5つの丸にいちばんよく合う直線は、どれでしょうか。 そこで「いちばんよく合う」を数で決めて、コンピュータに線を探させます。

このように、測ったデータの表から、規則を表す数(パラメータ)を、コンピュータに計算で見つけさせることを、機械学習と呼びます。 見つけた規則を使えば、まだ測っていない分子の値も予測できます。

機械学習の流れ。データの表を受けとり、誤差が小さくなるようにパラメータを直して規則を学び、まだ測っていない分子の値を予測し、伏せておいた実測と比べて答え合わせをする。
機械学習の流れ。青の枠がコンピュータのすることです。箱の下の灰色の字は、この章のアルコールの例です。

学習:予測と実測の誤差を小さくしていく

まず、コンピュータに渡すものを決めます。1つはデータの表です。分子の名前はそのままでは計算に使えないので、分子を「炭素の数」という数で表します。 もう1つは規則の形で、ここでは直線にします。

log P = a × 炭素の数 + b

a は直線の傾き、b は切片です。コンピュータの仕事は、5つの丸にいちばんよく合う a と b を探して、返すことです。 分子を炭素の数だけで表したので、鎖の枝分かれや OH の位置、ほかの原子のまとまりは省いています。この規則が使えるのは、OH を1つもつ直鎖のアルコールだけです。

手で1回、直線を動かす

直線がどれだけ丸に合っているかを、数で表します。直線で予測した値から実測の値を引くと、予測の誤差が出ます。 誤差はプラスにもマイナスにもなるので、分散を求めるときと同じように、2乗してから平均します。 この数を平均二乗誤差といいます。直線が丸に合うほど、平均二乗誤差は小さくなります。

傾きも切片も 0 の直線、つまり、どの分子も log P = 0 と予測する直線から始めると、平均二乗誤差は 0.74 です。 切片はそのままで、傾きを 0.2 にすると、0.35 に下がりました。誤差が小さくなったので、この向きに動かしたのはよかったことになります。

傾き0の直線では平均二乗誤差が0.74、傾きを0.2にした直線では0.35に下がることを、丸と直線の誤差を並べて示した図。
手で1回、直線を動かす。丸が実測、紺の線が直線、ローズの点線と数が予測の誤差(予測 − 実測)です。下は平均二乗誤差の計算です。

コンピュータは何千回もくり返す

手でやると、どちらの向きにどれだけ動かすかを、毎回考えなければなりません。コンピュータは、決まった手順でくり返します。 いまの a と b を少し変えたら平均二乗誤差が増えるか減るかを計算し、誤差が下がる向きへ、a と b を少しだけ動かします。 これを 3,000 回くり返すと、平均二乗誤差は、はじめの 0.74 から 0.004 まで下がりました。かかる時間は 0.002 秒ほどです。

予測と実測の誤差を計算しては、誤差が小さくなるようにパラメータを直すことをくり返して、データに合う規則を見つけていく。これを学習と呼びます。 日常の「学習」とちがって、コンピュータは、なぜ炭素が増えると log P が上がるのかを理解しているわけではありません。誤差が小さくなる数を、計算で探しているだけです。

テラ
九九を覚えていても、かけ算の意味が分かっているとは限らないよね。「なぜ」を考えるのは、化学が分かる人の仕事だよ!

誤差の地図を下る

横に a、縦に b をとって、平均二乗誤差の等しいところを線で結ぶと、地図の等高線のような図になります。 コンピュータは、いまいる場所で坂がいちばん急に下る向きを計算し、その向きへ少しずつ進みます。 坂の勾配(急さ)をたよりに下っていくので、この方法を勾配降下法と呼びます。たどり着いた谷の底は、a = +0.564、b = −1.38 でした。

🖐 さわってみよう本の図 5-6・5-8

誤差の地図を下る

ボタンを押すと、右の地図の上を点が坂の下へ進み、左の直線が丸に寄っていきます。地図のほかの場所を押すと、そこから下り直します。

直線と、測った値(丸)
誤差の地図(押すと、そこから下ります)

回数 a b 誤差

どこから始めても、同じ谷の底に着きます。

規則が直線のときは、谷の底を1回の計算で求める式もあります。坂を下る方法は、規則の形がもっと複雑で、そうした式がないときにも使えます。

コンピュータは、規則の形(ここでは直線)を受けとり、予測と実測の誤差が小さくなるように、パラメータを少しずつ直すことを何千回もくり返します。これが学習です。

クリッペン法の式は、炭素の数にかける a が 68 個に増えた形をしています。 68 個の寄与は、9,920 個の分子で、予測と実測の誤差が小さくなるように決められました。直すパラメータも合わせる分子もずっと多くなりますが、考え方は同じです。

伏せておいた分子で答え合わせ

学習で見つかった規則は、log P = 0.564 × 炭素の数 − 1.38 です。炭素が1個増えるごとに、log P はおよそ 0.56 ずつ上がる、という規則です。 サングスターの表には、炭素が 6〜10 個と 12 個の直鎖のアルコールも載っています。答え合わせのために、これらの実測は伏せておき、学習には使いませんでした。

炭素が 10 個の 1-デカノールを、この規則で予測するといくつになるでしょうか。0.564 × 10 − 1.38 で、およそ 4.26 です。伏せておいた実測は 4.57 でした。 差の 0.31 は、実測の不確かさ 0.5 の範囲に収まります。ほかの分子でも、予測と実測の差は、実測の不確かさと同じくらいか、それより小さくなりました。

炭素1〜5個のアルコールで学んだ直線を炭素12個まで延ばし、伏せておいた炭素6〜10個と12個のアルコールの実測と比べた図。1-デカノールは予測4.26、実測4.57。
伏せておいた分子の予測と実測。学習に使った範囲の外では、直線を破線でのばしました。緑の四角の縦の線は、実測の不確かさの幅です。
テオ
答えを先に見てから解いた問題では、本当に解ける力があるかは分からない。伏せておくのは、そのためだ。

規則の形も、予測の当たり外れを左右します。直線の代わりに、5つの丸をすべてぴったり通る4次式の曲線を引くと、学習に使った5つの分子では平均二乗誤差が 0 になります。 ところが、この曲線で 1-デカノールを予測すると、15.16(実測 4.57)と大きく外れます。測った値の小さなばらつきまで写しとるように、曲がってしまったのです。

直線と4次式は学習に使った5つの丸の範囲ではほとんど重なるが、範囲の外では4次式が急に上がり、1-デカノールを実測4.57に対して15.16と予測する。
直線と4次式。左は学習に使った範囲、右は伏せておいた分子(緑の四角)までの範囲です。白抜きの丸は、4次式による 1-デカノールの予測です。

規則を複雑にしすぎて、学習に使ったデータには合うのに、新しいデータを外すことを、過学習と呼びます。過学習に気づくには、一部のデータを伏せておいて答え合わせをします。

もう1つ、「学んだ規則は、どんな分子にも使える」と考えるのは誤りです。ブドウ糖は炭素が6個なので、この規則で予測すると +2.00 になります。 ところが、ブドウ糖は O–H を5つもつので、実測はおよそ −3 です。OH を1つもつアルコールしか学んでいないので、外れたのです。

直鎖のアルコールで学んだ直線は、炭素6個のブドウ糖の log P を +2.00 と予測するが、実測はおよそ −3 で大きく外れることを示す図。
データの外の分子。青い丸が直鎖のアルコールの実測、紺の線が学んだ規則、白抜きの丸が規則によるブドウ糖の予測、ローズの四角がブドウ糖の実測です。右下は、ブドウ糖の構造式で、O–H の O をローズで塗りました。

🖐 さわってみよう本の図 5-6・5-7・5-10・5-11

アルコールの log P から、直線を学ぶ

「学習する」を押すと、直線が少しずつデータに寄っていきます。学んだ直線で、まだ測っていない分子の log P を予測し、答え合わせもできます。

🖐 うごかせます
いまの規則

log P = × 炭素の数

ずれ(誤差)
  • 測った分子(学習に使う)
  • 点と規則のずれ
  • まだ測っていない分子
  • 答え(実測)

データ:直鎖アルコールの log P 実測値(J. Sangster, J. Phys. Chem. Ref. Data 18, 1111 (1989) の推奨値)。

はじめの直線は、学習のようすが見えるように、わざと外してあります。最後の「おまけ:覚えすぎると…」で、5つの点を全部通る4次式(図 5-11)を重ねられます。

化学で使われはじめた AI

人のように判断したり、文章を書いたりするコンピュータのしくみを、人工知能(AI)といいます。質問に答えて文章を書く AI も、たくさんの文章から、次に来る言葉を予測する規則を学んでいます。 AI の規則の形は、直線よりずっと複雑です。よく使われるのは、簡単な計算を何層にも重ねた、パラメータをとても多くもつ規則の形で、ニューラルネットワークと呼びます。 それでも、データを渡し、予測と正解の誤差を小さくするようにパラメータを直していく、という学習の考え方は、直線と同じです。

化学で使われる AI の3つの例。アミノ酸の並びからタンパク質の立体構造を予測する、欲しい性質に合う新しい分子を作り出す、ロボットが実験をして次の実験を選ぶ。
化学で使われる AI の3つの例。上の絵は、それぞれの AI が何を受けとり、何を返すかを簡単に表したものです。真ん中の絵のローズは、変えた数と、新しくできた枝です。

1つ目は、タンパク質の形を予測する AI です。立体構造を実験で1つ得るのに何年もかかることも多く、これまでに実験で決められた立体構造は約 20 万です。 2020年に発表された AlphaFold2 は、アミノ酸の並びだけから、鎖が折りたたまれた形を予測します。答えを伏せた予測の腕比べでは、多くのタンパク質で、実験で決めた構造に近い精度で予測しました。 その予測はおよそ 2 億にのぼります。2024年のノーベル化学賞の半分は、これを作ったハサビスとジャンパーに贈られました。

2つ目は、新しい分子を考える AI です。分子を数の並びに置きかえ、その数を少しずつ変えて、欲しい性質に近い新しい分子の構造を作り出します。 3つ目は、実験を進める AI です。2020年に報告された例では、ロボットが、光を当てると水から水素を作る材料で、はじめの6倍の活性をもつ組み合わせを見つけました。

新しい抗菌薬の候補探しにも使われています。2020年に報告された研究では、分子を実験で試して、大腸菌の増殖を止めるかどうかのデータを集め、分子の構造から増殖を止めるかどうかを予測する規則を学習させて、別の分子の集まりから候補を選びました。 その1つのハリシンは、これまでの抗菌薬とは構造が大きくちがう分子でした。第 3 章ではドッキングの点数で分子をふるいにかけましたが、この研究では、実験のデータから学んだ規則でふるいにかけたのです。それでも、最後に効き目を確かめたのは実験でした。

2,335 個の分子を試した結果で規則を学び、別の 6,111 個を予測して順位を付け、上位から選んだ1つがハリシン。実験で確かめると多くの種類の細菌を殺した。同じ規則で1億700万個を超える分子も予測し、選んだ 23 個のうち 8 個に抗菌作用があった。
学習した規則で抗菌薬の候補を探した流れ。青の枠がコンピュータのすることです。「候補」の箱はハリシンの構造式で、O と N をローズで塗りました。ほかの箱の絵は簡単にしたものです。下の段の丸は試した 23 個で、ローズが抗菌作用のあった 8 個です。

どの AI も、学んだデータの範囲の外では外れることがあり、最後は実験で確かめます。 実は、原子寄与法では CH₂ 1つぶんの寄与が +0.39 でしたが、この章で学んだ規則では +0.56 です。どちらを信じればよいのかは、第 6 章で、計算と実測を並べて確かめます。

山本研究室の化学工学チームは、分子動力学と量子化学計算に機械学習を組み合わせて、ゴムや多孔質材料の性質を予測し、合成する前に計算で当たりをつけることを目指しています。 量子化学の計算結果を学習して、分子動力学に正確な力を渡す使い方もあります。機械学習が研究の中でどう使われているかは、研究内容の「研究手法」の節で紹介しています。

MISSION CLEAR

ミッション・クリア! 答えはタミフルでした

  • ① くぼみにはまる:リレンザと同じ骨組みを残し、①の枝はくぼみの中の油になじむすき間に入りこむので、はさみのくぼみにはまります。
  • ② 体に届く:水になじむ部分を4か所書き換えて、log P を −3.79 から +1.29 に上げました。小腸の細胞膜を通り抜けられます。
  • ※ 書き換え④のエステルは、飲んだあと体の中で外れ、くぼみにはまる形に戻ります(プロドラッグ)。

コンピュータがしたこと

  1. STEP 1 敵を知る:ねらう場所を、はさみ(ノイラミニダーゼ)のくぼみに決めた
  2. STEP 2 探す:くぼみにはまるかを点数にして、たくさんの候補を作る前にふるいにかけた
  3. STEP 3 予測する:作る前に log P を計算して、膜を通れる形に書き換えた
  4. STEP 4 学ぶ:その log P の計算の道具を、実際に測ったデータから作った

3つの問いで読む

機械学習のまとめ

何をモデルにしたか(省いたもの)
規則を直線に、分子を数(炭素の数)にする
何をくり返したか
直線を少し動かして誤差を測るのを、何千回もくり返す
どこまで信じられるか
学んだデータの範囲の外では、外れることがある
Web 版の目次
  1. はじめに 計算化学への招待
  2. 序章 コンピュータのなかの実験室
  3. 第 1 章 分子の動きを「見る」(分子動力学)
  4. 第 2 章 電子を「見る」(量子化学)
  5. 第 3 章 薬の候補を「探す」(ドッキング)
  6. 第 4 章 体に届くかを「予測する」(ケモインフォマティクス)
  7. 第 5 章 データから「学ぶ」(機械学習)
  8. 第 6 章 計算を信じてよいか(実験との答え合わせ)
  9. 終章 計算化学が切り拓く未来(材料の設計)