Pirika logo
JAVA,HTML5と化学のサイト

Pirika トップ・ページ

Pirikaで化学
 物性化学
 高分子化学
 化学工学
 分子軌道
 情報化学

 その他の化学
 アカデミア
 MOOC講義資料
 プログラミング

ハンセン溶解度パラメータ(HSP):
 HSP基礎
 HSP応用
 ポリマー
 バイオ・化粧品
 環境
 物性推算
 分析
 化粧品の処方設計
 その他
 自分でやってみよう

雑記帳

Ad Space for you

 

Ad Space for you

 

 

 

Last Update

05-Dec-2018

情報化学:ニューラルネットワークはどう学習するか

非常勤講師:山本博志 講義補助資料 (2003年頃)

 

物性推算の目的で使う場合には、私はほとんどの場合、3層型のニューラルネットワークを使います。このニューラルネットワークの学習のメカニズムをn-アルカン化合物の沸点を例に説明します。n-アルカン化合物は2つのCH3基といくつかのCH2基を持ちます。これをプロットすると、

狭い範囲では直線になりますが、炭素数が増えてくるとだんだん寝てきます。直線で近似できる部分では、CH2がひとつ増えるに連れ、沸点は30.494℃増えると分かりやすいです。

これを、以下のC4からC15のn-アルカン化合物に適用してみましょう。

JAVAのアプレットはこちらから

JavaScriptバージョンはこちらから

Formula BP(K) Formula BP(K) Formula BP(K) Formula BP(K)
C4H10 272.7 C5H12 309.2 C6H14 341.9 C7H16 371.6
C8H18 398.8 C9H20 423.9 C10H22 447.3 C11H24 469.1
C12H26 489.4 C13H28 508.6 C14H30 526.7 C15H32 543.8

このCH3の数とCH2の数を入力して、沸点を推算するニューラルネットワークを構築します。このニューラルネットワークは3層構造で、1層目は入力層、2層目は中間層、3層目は出力層と呼ばれています。各層にはニューロン(神経細胞)と呼ばれる部分(図中の黒丸)があり、これは他のニューロンと結びついています。生体系の神経システムではニューロン同士は神経軸索で結びつき、学習が進むとその軸索が太くなったり、細くなったりして学習結果を記憶します。コンピュータで行うときには、Weight Matrixという荷重行列を使って、それを増減させて学習します。学習をする前には この荷重行列には乱数が入っています。

まず、Stepボタンを押してみてください。インプット・ニューロンのところに、CH3=2, CH2=3が現れます。最初の荷重行列は乱数なのでめちゃくちゃな計算結果を返します。この場合は実験値は309.2 ℃なので、計算結果が”低いよ”ということで、Lowボタンを押します。(初期値が乱数なので大きな値を返すこともあります。そのときにはHighのボタンを押す。)

どちらのボタンを押したにせよ、押された値に対して、ニューラルネットワークは答えが少しだけよくなるように、結合荷重行列を変更します。

それが終わったら、またStepボタンを押します。

次は、CH2が11です。やはり計算値が小さいのでLowボタンを押します。何回か手動でやってみてください。結合荷重行列が徐々に変化していくことがわかると思います。

それから、Autoボタンを押してみてください。これを押すと500回自動的に学習を行います。荷重行列を見ながら値が変わらなくなるまでAutoボタンを押してみてください。

最終的には下図のような結合荷重行列になりました。

そこまでできたら、次にはCheckボタンを押してみてください。このボタンを押したときには学習は行いません。

ニューラルネットワークが学習し終わった計算結果を返してくれます。

そして、入力ニューロンの種類を増やしたり、中間層の数を最適化したりしながら、様々な物性を返してくれるニューラルネットワークを構築していきます。沸点に関しては古いJAVAアプレットですがこのようになります。
HTML5を使ったバージョンはこちらから

この技術を使って熱物性を推算する式を構築したものが、Pirikaの熱物化学のページに載せてあります。

 

情報化学のトップへ戻る