LoginSignup
4
5

More than 5 years have passed since last update.

【メモ】代表的な機械学習手法(数式)

Posted at

元ネタ

https://qiita.com/tomomoto/items/b3fd1ec7f9b68ab6dfe2
機械学習を数学で理解したいので頭の整理として,お勉強のメモとして重要な式だけまとめていきます.

手法

回帰

線形回帰

最小二乗法  

当てはめたい関数: $ f(x) = ax+b $
一般形:$ f(x) = \boldsymbol{w}^T\boldsymbol{x} $ ※切片含む
最小化したい評価関数: $ J = \sum_{i=1}^{n}(y_i - f(x_i))^2 $
計算方法:

a = \frac{n\sum_{k=1}^{n}x_ky_k-\sum_{k=1}^{n}x_k\sum_{k=1}^{n}y_k}{n\sum_{k=1}^{n}x^2_k-(\sum_{k=1}^nx_k)^2}
b = \frac{\sum_{k=1}^nx^2_k\sum_{k=1}^ny_k-\sum_{k=1}^{n}x_ky_k\sum_{k=1}^{n}x_k}{n\sum_{k=1}^{n}x^2_k-(\sum_{k=1}^nx_k)^2}

多次元も同様な考え.
参考文献:
https://qiita.com/Ushio/items/0411b0db1ed36d398bbf
https://ja.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%97%E6%B3%95
https://mathtrain.jp/leastsquares

最尤推定

最尤推定とは:$ \frac{\partial}{\partial x} \log {L(\boldsymbol{w})} = 0 $

最大化したい尤度関数:

L(\boldsymbol{w}) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi\sigma^2}} \exp(-\frac{(y_i - f(x_i))^2}{2\sigma^2})

ロジスティック回帰

予測モデルをロジスティック関数を使って作成
ロジスティック関数:

\sigma(t) = \frac{1}{1+\exp^(-t)} 

当てはめたい関数:

f(x) = \frac{1}{1+\exp(-\boldsymbol{w}^T\boldsymbol{x})}

最大化したい尤度関数:

L(\boldsymbol w)  = - \prod_{i=1}^N P(C=t_i|\boldsymbol x_i) \\
where \quad P(C=t_i|\boldsymbol x_i) = f(x_i)^t(1-f(x_i))^{1-t}

更新方法: (tは教師信号)

\boldsymbol w^{t+1} = \boldsymbol w^{t} - \alpha * \frac{\partial L}{\partial \boldsymbol w^{t}} \\
where \quad \frac{\partial L}{\partial \boldsymbol w} = - \sum_{i=1}^{N}(f(x_i)-t_i)\boldsymbol x_i 

参考文献:
https://dev.classmethod.jp/business/business-analytics/alteryx-advent-calendar-11-logistic-regression/
https://dev.classmethod.jp/machine-learning/logistic-regression-impl/

サポートベクターマシーン

分類する線形モデル: $ g(x) = \boldsymbol{w}^T\boldsymbol{x} + b $

分類器: $ f(x) = sgn(g(x)) =$ -1 or 1
最小化したい関数:

\frac{2}{\|\boldsymbol w\|}

決定木

C4.5:
目的関数(と呼ぶのかな?):エントロピーを最大化させるような説明変数を順に親ノードとして選択していく

\Delta I_H(t) = I_H(t_B) - \sum_{i=1}^{b}w_iI_{H_i}(t_{A_i})

CART:
目的関数:ジニ係数を大化する説明変数を順に親ノードとして選択していく

I_G(t) = 1 - \sum_{i=1}^{c}p(i|t)^2

参考文献:https://qiita.com/3000manJPY/items/ef7495960f472ec14377
実装:http://darden.hatenablog.com/entry/2016/12/15/222447

NN

Perceptron

線形な関数を組み合わせて,最小二乗法で最適化している
フィッティングさせたい関数:$ f(x) = \boldsymbol{w}^T\boldsymbol{x} $
最小化させたい関数:$ J = \sum_{i=1}^{n}(y_i - f(x_i))^2 $

MLP (Multi-Layered Perceptron)

各ニューラルをシグモイド関数$g(\boldsymbol{w}^T\boldsymbol{x})=\frac{1}{1+\exp(-\boldsymbol{w}^T\boldsymbol{x})}$で表すことで各点において2値分類が可能に.
全体としてみると,複数の値に分類することが出来る.
つまりは,多次元によるロジスティック回帰としてみなせるのでは?
誤差に二乗を逆伝搬することで最適化しているので最小二乗法やSVMに似ている.

以下特に最適化のような式が出てこないので雑に扱っていきます.

 ベイズ

ベイズ推定を使った分類.確率を勉強していたらわかるでしょう.

時系列

ARIMAモデルなど

クラスタリング (k-means法)

アンサンブル

母集団\theta から n個の集団$\hat{\theta}$を選んできて,それぞれの集団に学習をかける
弱学習機をn個作成して,これらをがっちゃんこ.
判別ならその中で最大のものargmax
回帰の場合は平均値.
ここらへんの設計も工夫次第だと思います.

どれ使うか困っている時.

image.png

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5