トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

ニューラルネットワーク

ニューラルネットワークは、神経細胞の仕組みを真似て学習する方法です。

世の中では、 ディープラーニング (深層学習)が注目の技術として脚光を浴びて来ていますが、これはニューラルネットワークの一種です。

ニューラルネットワークによる、複雑なものの表現

シグモイド関数

シグモイド関数

シグモイド関数は、Xの変化に対して、0から1の間に範囲が決まっているYを出力する関数です。 右図が基本形になります。 Xが5以上で、ほぼ1になり、Xが-5以下でほぼ0になっている様子がわかります。

この性質を使うと、 数量化理論 を使って、1と0にしたカテゴリデータを扱ったり、 確率を表現するのに便利です。

シグモイド関数と線形和の組み合わせ

シグモイド関数のXの部分を、複数のXによる 線形和 にすると、いろいろなカーブを表現できる関数として使えます。

ただ、このカーブの曲がり具合には限度があり、単調減少か、単調増加しか表現できません。

シグモイド関数 シグモイド関数

右の2つの例は、シグモイド関数によるいろいろなカーブの例です。

中間層

シグモイド関数とXの線形和で作ったカーブはひとつの関数になります。 この関数の線形和を作ると、 単調減少や単調増加以外の複雑な形状を表現できるようになります。

この「関数の線形和」が、ニューラルネットワークでは中間層になっています。

理論上は、中間層を重ねれば重ねるほど、複雑なものを表現できるようになります。

ニューラルネットワークでは、 「Xの高次の項を入れる」、「特殊な関数を使う」、ということはせずに、 線形和 、シグモイド関数、中間層の3つのアイディアの組み合わせで、非線形の複雑な関数を表現できるようになっています。

シグモイド関数

右の図は、上の2つのカーブを、単純に足し合わせてみたものです。

ニューラルネットワークを利用する難しさ

中間層を入れたモデルを考えることは簡単ですが、 「線形和の係数をどのようにして、計算するか?」、というのが、実際には大変な所になります。 ニューラルネットワークの歴史は、この計算方法の改良の歴史と言えるようです。

計算方法は、誤差逆伝搬法が最初の突破口だったようです。 誤差逆伝搬法では、試行錯誤して作った関数と本当のYの誤差を評価して、 層を逆戻りして修正をかける方法です。

ニューラルネットワークの仲間

自己組織化マップ や、 ディープラーニング はそれぞれが一冊の本になるほどですが、 ニューラルネットワークの仲間と言われています。 ちなみに、自己組織化マップは、 人工知能 の技術というより、 データマイニング の技術と考えた方がしっくりします。

サポートベクターマシン は、多段の中間層を使いませんが、 線形和 を使う点や、場合によっては一層の中間層を使う点は、ニューラルネットワークに近いです。

ニューラルネットワークと、ロジスティック回帰分析の近さ

ニューラルネットワークのひとつのパーツは、Yがひとつで、Xが複数になっています。 YとXをつなぐ計算は、 ロジスティック回帰分析 と同じです。

ロジスティック回帰分析では、1と0の間の確率を表すために、この関数を使っています。 ニューラルネットワークでは、この関数の線形和をさらに考えることで、非線形の複雑な関数を表現できるようにしています。

因果関係の解析に使う

ニューラルネットワークは、 画像認識等の パターン認識 や、予測を目的とした技術としては、大変な威力が知られています。

ニューラルネットワークでは、中間層がブラックボックスになってしまうので、因果関係の解析には向かないのですが、 「このデータから、何かヒントが得らそうなのか?」といった、解析の見通しを調べる目的には使えます。

※ ブラックボックスの部分を、もっと人間が認識しやすい形にできれば、使い道は増えて来るかもしれません。



手法による結果の違い

予測の落とし穴

手法の使い分け

統計モデルによる原因解析

中間層を使った解析

複雑なモデルの難しさ



参考文献

ニューラルネットワーク

データマイニング入門 :Rで学ぶ最新データ解析」 豊田秀樹 編著 東京図書 2008
ニューラルネットワーク、自己組織化マップが、それぞれひとつの章になっています。
サンプルコードや、サンプルデータもあり、Rを使って自分で試せるようにもなっています。


順路 次は ディープラーニング

Tweet