機械学習のモデルに使われる数式の導出を理解する時に時に思い出せなくて調べた知識をまとめておく。機械学習 はじめよう およびそれと同等の英文が読めるようになる程度のことだけまとめてある。
数学記号
- Σ: 右にある式全ての和
- Π: 右にある式全ての積
- dx/dy: xのyについての微分
- ∂x/∂y: xのyについての偏微分
- { }: ( ) が内側に使われている時の括弧
- [ ]: ( ) が内側に使われている時の括弧
- p(y=1 | x): xにおいてy=1となる確率
- f(x)|x=t: xをtとしたときのf(x)
微分
微分とは
関数を微分すると、その関数のある地点での傾きを表す関数が得られる。積分は面積が求められる。
偏微分とは
変数が複数ある式に大して、一つの変数についてのみ微分すること。他の変数は定数として扱われる。
基本
- 定数を微分すると0
- xを微分すると1
- x^2を微分すると2x
- つまり一般に、X^nを微分するとn・X^(n-1)
logの微分
log(x) を微分すると 1/x になる。参考
log(1-x) = d(1-x)/dx・d(log(1-x))/d(1-x) = -1・1/(1-x) = -1/(1-x)
eのx乗の微分
e^xを微分するとe^xになる。
そのため、 d/dx・e^(-x) = d(-x)/dx・d/d(-x)・e^(-x) = -1・e^(-x) = -e^(-x)
合成関数の微分
f(x)g(x) = f'(x)g(x) + f(x)g'(x) になる。
分数関数の微分
f(x)/g(x) を微分すると (f'(x)g(x) - f(x)g'(x))/g(x)^2 になる。参考
Πの扱い
Σ log(x) = log(Π x) を利用してΣにすることで微分しやすくなる。
微分演算子の変形
何という法則かはわからないが dx/dy = dx/dz・dz/dy と変形していいらしい。
偏微分が全微分に変わる時
δf(x)/δx において、f(x)にx以外の変数がなければ、df(x)/dxとして良い。
英語名
- Gradient: 勾配。微分で得られる、傾きのこと。
- Stochastic: 確率的。Stochastic Gradient Descentでは、入力をランダムに選ぶことを表している。
- Gradient Descent: 勾配降下法。あるグラフを微分して得た勾配に比例して地点をずらし、それが差すグラフの値を最小化する手法。複雑なグラフでは局所解に落ちやすい欠点がある。
- Stochastic Gradient Descent: 確率的勾配降下法。次元がNあるとき、勾配を全てのNに対して求めると計算量が多くなるため、入力ごとにNのうちどれか1つに対してのみ勾配降下法を適用する手法を差す。計算量が下がり実装しやすくなる他、ランダム化によって局所解に落ちるリスクが軽減される。
- Likelihood: 尤度
- Negative log-likelihood: 負の対数尤度関数。関数最適化ではふつう値を最小化する形で計算するが、指定した地点での関数の値を最大化したい時には目的関数を負にすることでふつうの関数最適化問題に変換できる。尤度を直接扱うのではなく尤度の対数を扱うのは、対数化することでΠがΣにできて微分しやすくなるため。
- Sigmoid function: シグモイド関数。一般にはarctanなどSっぽい関数の総称だが、Logistic Regressionの文脈では 1/(1-e^(-t)) を差す。実数全域を取る関数を0~1の空間に変換するのに使われ、累計密度関数を使って変換するのに比べ計算が容易であるというメリットがある。
- Perceptron: パーセプトロン。
- Logistic Regression: ロジスティック回帰。活性化関数にシグモイド関数が使われ、分類の確率値を算出できるところがパーセプトロンとは異なる。
数式の手書き
- σ (シグマ): 反時計周りに回して折り返す
- ∂ (ラウンドディー): 真ん中から反時計周り
- log: lをくるんとさせる
- w: わからんが、左を曲げたωみたいに書いてる