飽きるまでやります。

私の私による私のためのメモ。内容に一切の責任を負えません。

回帰 #1

概要

回帰とは…その謎を解明すべく我々はアマゾンの奥地へと向かった。

お断り

先にニューラルネットワークを学んでるので考えや用語がそっち寄りになっているかもしれません。

知ってる事

入力から適切な出力を求めるための関数を求める?

回帰とは

正確には回帰分析(Regression)。
入力Xを関数y = f(x)に通す事で出力Yを求める手法。
Xは説明変数・独立変数、Yは目的変数・従属変数と呼ぶらしいです。

単回帰分析

Xが1つのものを単回帰分析と呼びます。すなわちY = aX + bという回帰式の線形モデルです。
aとbを求めていくわけですが、適当なaとbの値を用意したf(x)にトレーニングデータのXを代入して出力Yを求めます。これが推定値であり、正解ラベルtとの誤差Eを2乗誤差(MSE:Mean Squared Error)で表します。各入力Xのときの誤差の二乗和を最小にする手法を最小二乗法と呼ぶらしいです。
この誤差Eを最小にする方法ですが、ニューラルネットワークの重み更新でも使った勾配降下法を使うらしいです。誤差Eを重みaとバイアスbについて偏微分してそれぞれ勾配を求め更新していくあれです。

重回帰分析

Xが複数のものを重回帰分析と呼びます。すなわちY = a_1 X_1 + a_2 X_2 + … + a_n X_n + bという回帰式の非線形モデルです。単回帰分析との違いは入力Xが複数になったという点で、よりニューラルネットワークの全結合層の計算に近いものになりました。
なので全結合ニューラルネットワークの重み更新の話と同じです、多分。

ここまでのまとめ?

活性化関数が恒等関数の1層、出力1ユニットの全結合ニューラルネットワークとはすなわち回帰分析、という事なんですかね。
そもそもニューラルネットワークと呼ぶのかは怪しい、単純パーセプトロン

ロジスティック回帰

重回帰分析の出力Yに活性化関数としてシグモイド関数を通したものをロジスティック回帰と呼ぶらしいです。シグモイド関数を通す事で出力が確率になります。回帰分析の目的変数が0 or 1のような二値分類に使うらしいです。
また、Wikipedia先生によると、scikit-learnでは誤差Eを最小にしていく方法として勾配法ではなく座標降下法という手法や準ニュートン法という手法を使うものをこう呼ぶとも書かれています。

単純パーセプトロン

順序が逆な気もしますが。重回帰分析の出力Yに活性化関数としてステップ関数を通したものは単純パーセプトロンと呼びます。これもまた二値分類ですが、出力は確率ではなく閾値を超えたのか超えてないのか(0か1)です。

感想

もう全部ニューラルネットワークって事でええやんと投げ出したくなりました。