再帰型ニューラルネットワーク(Recurrent Neural Networks)によるモデル予測
ASCMO-DYNAMIC V5.1以降では、過渡的モデリングにおいて再帰型ニューラルネットワーク(以下RNN(Recurrent Neural Networks)と記します)を用いることができます。RNNを用いるモデルは、サポートされているすべてのエクスポートフォーマットにエクスポートすることができます。
この新しいタイプのモデルは、オープンソースの機械学習プラットフォームTensorflowを基礎としています。
RNNは、1つの隠れ層を持つネットワーク(ASCMO-MOCAのサンプルプロジェクトにも含まれています)といった単純なフィードフォワードネットワークのような従来のニューラルネットワークとは一線を画しています。従来の「パーセプトロン」と呼ばれるものとは異なり、RNNセルは、トレーニング可能な重みとバイアスに加え「状態」を保持して再利用します。この「状態」は、RNNが1つの入力を処理する際に更新され、次の入力を処理する際に利用することができます。つまり、過去の入力評価の結果が後の入力評価に影響することになるので、そのセルは「記憶を持つ」と見なされます。そのため、RNNは一連のデータからモデルを構築する際に用いる候補として非常に興味深いものであると言えます。
ただしRNNは、その基礎となるメカニズムを非再帰型の相対物と共有します。それらは階層的に体系化され、その各層を形成する「重み」と「バイアス」は、起動関数によって変更されます。図20に2つの関数をご紹介します。
|
|
|
|
|
a) 双曲線正接 |
|
b) シグモイド関数 |
図20: ニューラルネットワーク層は一般的に、高次の数値配列と、その配列の内容を変更して次の層に渡す(=出力する)関数とで構成されます。これらの関数は一般的に起動関数と呼ばれます。図中に、その a) 双曲線正接(tanh)と、b) シグモイド関数(σ)が示されています。シグモイド関数は、tanhを用いて σ(x) = (1 + tanh(x/2))/2 で表されます。
RNNにはいくつかの種類があります。ASCMO-DYNAMICのモデリング機能においてはそれらのサブセットを利用することができます。具体的には、以下の3つの異なるクラスのRNNセルを使用できます。
以下の説明には各セルの構造図が含まれています。各図内の矢印(→)はデータの流れを表し、ノードはデータの操作を表します。ノードはその形状によって区別され、四角形のノードは内部のセル層を表し、円形のノードはそれらに渡されるデータのポイント単位の操作を表します。ただしLSTMセルの内部状態は例外で、これについては別途説明されています。
参照
Model Configurations:Recurrent Neural Network (RNN)
Model Configurations (ASCMO-DYNAMIC)