【初心者向け】ニューラルネットワークの仕組みをわかりやすく解説
ニューラルネットワークは多次元の判断や自動化が得意
熱射病の季節は終わりましたが、日本人は年々熱射病に弱くなっているそうです。
倉庫では直射日光はないものの、温度と湿度が高くなりがちで熱射病のリスクは高いといえます。
かといって、広くて人口密度の低い倉庫をエアコンでキンキンに冷やすことは、電気代がかかりすぎて現実的ではありません。
熱射病にならないギリギリの環境をキープできればベストです。
そのためには熱射病になりやすい各種条件を知ることが必要です。
例えば温度と湿度の条件の組み合わせで、熱射病のなり易さが決まってくるかもしれません。
15日間、温度と湿度を計測して、熱射病患者が出たかどうか統計を取った結果、下表のようになったとしましょう。
これだとよく分からないため、散布図にしてみましょう。
オレンジ色の点が熱射病患者の出た日、青色の点が出なかった日のデータです。
これなら、次のような直線できれいに分けられそうですね。
でも、もっとデータを採っていくと、本当は次の図の赤色の線になるかもしれませんし、青色の線になるかもしれません。
また、温度と湿度の他に、倉庫の中の風速も関係しているかもしれません。
(倉庫の中に大型のファンを置いて「風」を作り出すことで清涼感を出すことがよく行われます)
そうすると、変数が温度、湿度、風速の3つになり、もはやこのように手作業で直線を引くことはできません。
つまり、人手では
- 3変数以上を使っての分類
- 自動化
ができないのです。
そこでニューラルネットワークの出番です。
データさえ得られれば、後は機械学習できますので自動化できます。
また原因となる変数(説明変数)が3個だろうと10個だろうと、熱射病になるならないの判定に使えます。
ニューラルネットワークの仕組み
回帰分析との類似点
ではニューラルネットワークとはどのような仕組みなのでしょうか?
脳の神経細胞であるニューロンを模倣した仕組みというと難しそうですが、重回帰分析に非常によく似ています。
重回帰分析が分からなくても、単回帰分析は聞いたことあると思います。
それも聞いたことないという人でも、考え方自体は知っているはずです。
例えば、倉庫で今日、出荷量が多いと予想されれば、作業員をいつもより多く手配しますね。
通常10人で100くらいの出荷量をこなせると分かっていれば、120の出荷量があると予想される日には12人を手配するというのは皆やっていることです。
これは頭の中で
可能な出荷量=10×人数
という回帰式を持っているからです。
この場合には人数が説明変数で、出荷量が目的変数といいます。
このように説明変数が一つしかない回帰式を単回帰式といいます。
そして説明変数が2つ以上ある回帰式を重回帰式といいます。
例えば、出荷量は単なる頭数だけではなく、フォークリフトの台数も関係してくる場合には
可能な出荷量=8×人数+2×フォークリフトの台数+10
となるかもしれません。
これは説明変数が2つですので、重回帰式です。
最後に+10が付いていますね。
これは、作業員がいなくてもドライバーだけで10くらいはできるといった場合には、このように定数が付きます。
これは
y=ax+b
という式における+bと同じです。
これはy切片といいましたが、ニューラルネットワークではバイアスといいます。
ニューラルネットワークはパーセプトロンで表す
ニューラルネットワークでは、この重回帰式を次のような図で表現します。
この図を式にすると、先ほどの
出荷量=8×人数+2×台数+10
の式になりますね。
このようにニューラルネットワークと重回帰式は非常によく似ているのです。
特にニューラルネットワークの中で最も簡単な「単純パーセプトロン」は重回帰そのものです。
これは、上の図で出てきた4つのニューロンの場合です。
これは1つのニューロンが、3つのニューロンから伝えられる情報を元に1つの判断を行うモデルです。
単純パーセプトロン
一つのニューロンだけで判断を下していることが特徴です。
パーセプトロンとはニューロンの仕組みを模したアルゴリズムのことです。
人工ニューロンといってもいいかもしれません。
単純パーセプトロンとは、入力はいくつあってもいいので、一つのニューロンだけで判断するモデルです。
入力層と出力層しかないモデルともいえます。
多層パーセプトロン
これに対して中間層もあるモデルを多層パーセプトロンといいます。
中間層を作ることによって、より複雑な判断ができるようになります。
こうなると重回帰ではできないことができるようになります。
例えば冒頭の例で、次のようなデータが得られたとします。
すると、もはや直線できれいに分けることはできませんね。
直線で表すことができる数値モデルを線形、曲線の式でしか表せないような数値モデルを非線形といいますが、重回帰では線形のモデルしか扱えません。
ニューラルネットワークの中でも単純パーセプトロンでは線形しか扱えませんが、中間層のある多層パーセプトロンでは非線形の数値モデルを作ることができます。
ここでニューラルネットワークの一つの飛躍があって、少し注目されるようになりました。
ディープラーニング
そして更に注目を集めることになったのが、ディープラーニングです。
これは、多層パーセプトロンの中でも中間層が2層以上あるニューラルネットワークのことです。
更に複雑な判断ができるようになることは知られていましたが、少し前まではうまく計算ができませんでした。
それが新しいアルゴリズムとコンピュータ処理能力の向上により可能になり、一気にブレークしました。
これら単純パーセプトロン、多層パーセプトロン、ディープラーニングを包含した概念がニューラルネットワークです。
勿論、単純パーセプトロンが一番簡単ですので、まずはこれから見ていきます。
冒頭の例で出てきた温度と湿度から熱射病になるかならないかの判断は、単純パーセプトロンでできます。
長くなりましたので、どのように解くかは次回にします。
単純パーセプトロンをExcelに実装して2値分類問題を解いてみた。