SSブログ

ニューラルネットワークの中身 [データサイエンス、統計モデル]

ニューラルネットワークは良くブラックボックスといわれるが、中身を解体?してみた。

1. まず、SPSS Clementine(クレメンタイン)でモデルを作る。
モデルノードはニューラルネットワーク。

2. パレットにあるダイヤモンドをPMML形式でエクスポートする。

3. XML形式でモデルの中身を見ることができる。

書かれている内容は、各変数からの各中間ノードへの重みとバイアスが書かれている。


Si: 中間ノードi
bi: バイアス
wi: 重み
ui: 変数i

となる。

また、これらの中間ノードから、最終的な出力値は、
ui = f( Si )
で計算できる。

関数 f( x ) としては、

が有名な関数(シグモイド関数)だ。

注意として、入力する変数がたとえば、年齢や年齢の場合、そのまま年齢や年齢の値が変数として使われるのではない。
当然といえば当然で、年齢と年収では、単位が全く異なるため、0~1の範囲に変換している。
正規化っぽいイメージ。

また、予測するものが 0 or 1 ではなく、期待購入金額であった場合は、最初の出力値も、0~1の範囲になっているので、元に戻す作業が必要になる。

一度、自分で PMML のアウトプットから中身を紐解いてみるのも良いと思う。

たくさんの変数を使って、中間ノードとかもたくさん作るとイメージし難いので、少数の変数で簡単なニューラルネットワークを作ってみると、イメージしやすい。

nice!(0) 
共通テーマ:学問

nice! 0