BREAKING NEWS

2017/06/19

Jubatusを理解する(1) - Regression (回帰)

Jubatasを理解する(1) - Regression (回帰)

この記事のまとめ
  • Jubatusのアルゴリズムのひとつである、Classifier & RegressionのOverviewを解説する
背景

以前も書いた通り、機械学習を学ぶにあたってJubatusを使えるようになることが当面の目標ですが、機械学習の知識もないまま初めてJubatusのホームページを読んだときはいまいち理解ができませんでした。

少しだけですが勉強していく中で理解できるところが出てきましたので、理解できるところまで解説していこうと思います。

ただし、勉強中のみのため間違っていたらごめんなさい。

Classifier & RegressionのOverviewについて

Jubatusのホームページには次のように記載されています。

回帰問題は,入力 に対応する特徴ベクトル に対して,実数値の出力 を当てる問題である. 今回実装したのは,線形回帰モデルである. 線形回帰モデルでは,パラメータ を利用して,入力 に対して で予測する.
学習時には,分類問題同様,正解データセット を利用して,正解データに対して正しく予測できるように重みベクトルを推定する. 典型的には1800年代に,予測値と実測値との自乗和を最小化させる最小二乗法が提案されている. この方法はバッチ処理になるため,今回の調査ではオンライン学習させる方法を利用した.

これを初めて読んたときは、正直いまいちイメージがわからず、ピンとこなかったです。

でも、ここの文章は以前紹介したcouseraのMachine Learningのコースのweek 1と2を聴講すれば理解ができると思います。

表記について

Jubatusのホームページの記載のままだと、うまく表現ができないところがありますので、少し表記を変えたいと思います。データセットのインデックス に対する正解データセットは となっていますが、 のように表記したいと思います。また、データセットの数は 個とします。従って、 です。

また、 のように記載する の表記の意味を確認しておくと、これはベクトルの次元を表しており、この場合は特徴ベクトル 次元、つまり 個の独立な変数であるという意味です。出力 に添え字がついていないため、1次元ということです。

回帰問題とは

回帰問題とは 入力 に対応する特徴ベクトル と出力 に対して、 となる関数のモデル化を行うことであります。

線形回帰モデルとは

回帰問題におけるモデル化において、入力と出力が線形関係となるモデルを用いることを線形回帰モデルと言います。最もシンプルな形で例えると、特徴ベクトルが1次元 ()の単回帰モデルでは、 この問題は のモデルを解くことを言います。

ここでは特徴ベクトルが 次元である重回帰モデルを扱います。特徴ベクトル (ただし、であり、数式の簡単化のために導入する定数項)と重みベクトル を用いてモデル化関数を表すと、となります。

回帰問題の予測

学習時においては、 個の正解データセット に対して、予測値 と実測値 の誤差 が最小となる重みベクトルを推定します。この方法として最小二乗法というものがあり、誤差の2乗を最小化するというものです。これを式で表すためにはまず評価関数 を定義します。

は重みベクトルの関数であり、 を最小化する を求めることが最小二乗法です。

これを求める方法はデータセットの数が少なければ理論的に求めることも可能ですが、これを求めるためには の逆行列を解かなければならないため、データセットの数が多い場合には現実的ではない計算量になります。そういった場合には、近似的に逆行列を解く方法や、最急降下法という推定方法などが使われます。

Jubatusがどのように求めているかわかりませんので、ここではその解説は避けます。もしかすると将来的に行うかもしれません。


今回はここまでです。Overviewを理解するだけでもなかなか一山ありました。。。

その続きが理解できたら解説します。


以上です。 最後まで読んでいただき、ありがとうございます。


ブログランキング・にほんブログ村へ  ← 気に入っていただければ応援ポチをお願いします!

Share this:

 
Copyright © 2014 hassiweb. Designed by OddThemes