logisticregression
NeuralNetwork
perceptron
odd
TensorFlowPlayground

誰でもわかるニューラルネットワーク:ロジスティック回帰をテンソルフロー・プレイグラウンドで試してみた。

英国の統計学者David Coxにより1958年に紹介されたロジスティック回帰をテンソルフロー・プレイグラウンドで試します。

ロジットモデル(ロジスティックモデル)は幅広く使われている統計モデルの1つで、上がる/下がる、裏/表、男/女などの2値の従属変数の特徴をいくつかの独立変数で説明する際に用いられます。その際にロジスティック関数を用いることからロジスティック回帰と呼ばれます。そこで気を付けなくてはいけないのは、これは回帰問題ではなく分類問題だということです。2値の従属変数からなる事象のもっともらしさを示すためにオッズと呼ばれる確率の比率を用います。たとえば、上がる確率をpとすると下がる確率を1-pとして、それは

$$\frac{p}{1-p}$$

で計算されます。これをグラフにしてみると

image.png

となります。p=0.5のときに1、p=0.99のときに99という非常に大きな数値になります。また、p=0.01のときには0.01001になります。これはもっともらしさを表すとしてもどうも使い勝手がよくありません。そこで対数を取ります。そうすると

image.png

となります。こちらのほうが確率0.5を境に左右対称なので事象の起こりやすさをより的確に表しています。この特徴をいくつかの変数を用いてモデル化します。たとえば、性別であれば、その説明変数として体重とか身長を用います。株価の上下動であれば、過去の価格の動きを用います。それは$$ln(\frac{p}{1-p})=w_0+w_1x_1+,...w_nx_n \text{---(1)}$$と書き表せます。wは重みとか説明変数の係数と呼ばれます。これは独立変数の和にほかなりません。線形結合とも言います。この

$$w_0+w_1x_1+,...$$の部分を$z$に置き換えます。そして、pについて解いてみましょう。両辺の指数関数をとって、pについて整理すると

$$\frac{1}{1-exp(-z)}$$

となります。よく見るとこれはシグモイド関数にほかなりません。そして、この係数を、一般的には、線形の最小二乗法で求めることはありません。なるほどそうするとこれはパーセプトロンの活性化関数にシグモイド関数を用いた場合と同じではないかということになります。

つぎの図はテンソルフロー・プレイグラウンドで分類問題を選択して、隠れ層の数を1つ、ニューロンの数を1つにして、入力を$x_1$、$x_2$にして活性化関数をシグモイド関数にした例です。ロジスティック回帰に他なりません。

image.png

最近はやりの人工知能ですが、独学で学んでいると問題が多いです。最初の障害は、人工知能といわれて機械学習を勉強したり、ニューラルネットワークを勉強したりしても今一歩これらの接点がつかめなかったり、人工知能の全体像がつかめないことです。つぎに、統計学の専門用語と人工知能、機械学習の専門用語の使い方に大いに混乱させられてしまうことです。テンソルフロー・プライグラウンドを用いて、統計学、機械学習、ニューラルネットワークの接点を表現しようとしましたがどうでしたでしょうか。

参考:

「シミュレーターでまなぶニューラルネットワーク」(アマゾンkindle出版)

(https://www.amazon.co.jp/gp/product/B07MJ9R2T8?pf_rd_p=7b903293-68b0-4a33-9b7c-65c76866a371&pf_rd_r=4JRRRHRRE1FHXSY1EP5G)

L1正則化をテンソルフロープレイグラウンドで試してみた

(https://qiita.com/innovation1005/items/e6f035d74675d94744c8)

誰でもわかるニューラルネットワーク:ノイズの影響をテンソルフロー・プレイグラウンドで試してみた。

https://qiita.com/innovation1005/items/584e66edb0e08f037a80

「Python機械学習プログラミング」