見出し画像

Pythonで機械学習「DeepLearning編スタート シグモイド関数とネイピア数」

DeepLearning編、スタート。
上記リンクの本が大変面白い。DeepLearningに使われるアルゴリズムをちょっとづつ作る、って本。

「ニューラルネットワーク使うなら、データは0〜1に変換しないといけません」ってよく聞いたり読んだりするけど、なぜなのかはあまり言及されていない(たぶん文章量的に無理なんだと思うけど)、そのわけをこの本を読むと理解できる。

今回の記事は、この本にも出てきた、シグモイド関数とネイピア数を学習する。

シグモイド関数

  1. 正確には、標準シグモイド関数という。ニューラルネットワークでは、活性化関数として使われる。(でも最近は、ReLU関数のほうがよく使われるらしい。)

  2. 入力値を0.0~1.0の間の値に変換して出力する。

  3. コンピューターが計算しやすい、バックプロパゲーションに使えるなど利点が多い。

  4. シグモイドは偉い数学者の名前ではない。S字という意味。

  5. 式は、h(x) = 1 / 1 + exp(-x)

このexpが謎、でも調べてみたらそんな怖いものではありませんでした。
expは英語でexponential で、「指数の」という意味。エクスポネンシャルと読む。exp (-x)は、 eの-x乗 のことだそうです。
pythonでは、

1 / (1 + np.exp(-x))

と書ける。

やってみよう。

xが1なら、0.73〜〜で、xが10なら、0.99~~~と出力される。

xが0の時、0.5が出力される。

xがマイナスになると、0.5以下が出力される。
また、-1と1を入力したものを足すと、ちょうど1になる。へー。


じゃあ次は、eって何やねん、って話なんですけど、これがネイピア数。

ネイピア数

ネイピア数は、自然対数の底。2.718281…という小数点が永遠に続く数。numpyで出る。

英語で、オイラー数 (Euler's number)なので、「e」なのかな。
とにかく一旦これ↓
「eがあるおかげで微分方程式が解ける。だからデータ分析で超重要」
あとは全然わかんない。ウィキ参照。
ネイピアは人の苗字。名前は、ジョン。下記記事、めっちゃ面白い。

僕がいま理解できる内容のみ抽出すると、

DeepLearningでは、データを0~1に変換しなくてはならない。変換にシグモイド関数が便利(でも最近はReLU関数が使われる)。シグモイド関数にネイピア数(2.718281…)が使われている。

次に進みます。

この記事が気に入ったらサポートをしてみませんか?