今年度は、実践的なデータサイエンス、とくに機械学習の手法をデータの整理に生かすことを想定した内容にした。
データの「分類」(classification)と「回帰」(regression)が機械学習の2大テーマであるが、実験観測データの回帰分析がもっとも使う頻度が高いであろうと考え、それで筋を通した。
線形重回帰
$$y = w_0 +w_1 x_1 + w_2 x_2 + \cdots + w_M x_M$$
なる関係があると想定して係数を推定
非線形回帰
$$y = w_0 + w_1x + w_2x^2 + \cdots + w_M x^M$$
として係数を求める問題は説明変数を$\{x, x^2,\cdots , x^M\}$とすれば線形重回帰と同様である。
過学習
ridge回帰
$$ \tilde{E}({\bf w}) = \frac{1}{2} \sum_{n=1}^N \{y(x_n,{\bf w}) - t_n\}^2 + \frac{\lambda}{2}||{\bf w}||^2 $$
を最小にする$\{w_i,\ i=1,\cdots, M\}$を求める。
べき多項式以外のフィッティングへの一般化
非線形な関係のフィッテングは、$\{\phi_1(x) + \phi_2(x) + \cdots + \phi_M(x)\}$を適当に選び
$$ y(x, {\bf w}) = w_1 \phi_1(x) + w_2 \phi_2(x) + \cdots + w_M \phi_M(x) $$のように一般化できる。
特に、区間$[a,b]$の間のフィッティングを、区間を$M+1$個で割り、そこをピークするガウス関数
$$ \phi_i (x) = \exp \left( - \frac{(x - \mu_i)^2}{2\sigma^2}\right),\quad \mu_i = \frac{b-a}{M}i,\quad i=1,2,\cdots M $$を使うことが多い。これをガウス基底と呼ぶ。
パラメータの事前分布を仮定し、データが追加されるごとに逐次学習してパラメータの確率分布をベイズの定理に従って計算する手法。
(PRMLの図1.16):
ガウシアン基底を用いたベイズ統計回帰モデルの表式から、学習は、基底関数$\phi$の前の係数の確率分布ではなく、基底関数と係数をカーネル関数という形にまとめられることをみた。
$$ y(\boldsymbol{x}_i)=\sum_{k=1} w_k \phi_k (\boldsymbol{x}_i) +b $$例えば、RBF(ガウシアン)カーネル
$$ k(\boldsymbol{x},\boldsymbol{x'}) = \exp ( -\gamma ||\boldsymbol{x}- \boldsymbol{x'}||^2) $$ニューラルネット(パーセプトロン)
決定木のアンサンブル学習(ランダムフォレスト)
データの正規化(reguralization)
from sklearn.preprocessing import StandardScaler
ハイパーパラメータの最適値探索
scikitlearnのGridSearchの利用
import sklearn.model_selection as ms
est = ms.GridSearchCV(svm.LinearSVC(),
{'C': np.logspace(-3., 3., 10)})
自然科学(Natural Science)
⇒ 原理に基づくモデリングと数値実験(Numerical Simulation)
通底するのは数学 (その意味で、数学は自然科学の範疇には入らない)
とはいえ、創薬、大規模加速器実験などなど自然科学ベースの対象物の探索にも用いられるようになり、一言では言い表せない状況も出現している。