Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
機械学習
第3回 回帰(線形)
白浜 公章
更新情報 2019.10.07第3回で講義できなかった「知識に基づく特徴デザイン」を第4回に移動
前回の復習
• コスト関数のテイラー級数近似• 最適化の1階条件• 凸性• 最適化手法
o 最急勾配法:1階のテイラー級数近似に基づく
o ニュートン法:2階のテイラー級数近似に基づく
今日のポイント
回帰問題事例:(特徴、 ラベル(連続値))
特に、下記の3項目について学ぶ• 線形回帰• 最小2乗コスト関数• 知識に基づく特徴デザイン
今後の講義のベースになるので、頑張って理解すること!
正確な予測ができるモデルを学習する
株価
歳入
企業の歳入から株価を予測
遺伝子マーカーの値から、血圧やグルコースレベルを推定
非雇用率、教育レベル、人口、面積等から、GDPを推定
線形回帰(Linear Regression)とは?(1/2)
事例(特徴(feature)、 ラベル(label、連続値))の定義• 𝑃個の学習データ: 𝒙1, 𝑦1 , 𝒙2, 𝑦2 , ⋯ 𝒙𝑃, 𝑦𝑃• 𝑝番目の学習事例: 𝒙𝑝, 𝑦𝑝
𝑃個の学習データを解析して、 𝒙𝑝から𝑦𝑝を正確に予測可能なモデルを学習する
𝒙𝑝が1次元の場合スカラーなので𝒙𝑝 = 𝑥𝑝
2次元空間(𝑥𝑝 と𝑦𝑝)内でデータを
近似する直線を求める
𝒙𝑝が𝑁次元の場合
𝒙𝑝 = 𝑥1,𝑝 𝑥2,𝑝 ⋯ 𝑥𝑁,𝑝𝑇
𝑁 + 1次元空間(𝒙𝑝 と𝑦𝑝)内でデータを
近似する超平面を求める
• 企業の歳入からの株価予測 • 遺伝子マーカーからのグルコースレベル/血圧予測• 非雇用率、教育レベル、人口、面積等からのGDP予測
線形回帰(Linear Regression)とは?(2/2)
𝒙𝑝が1次元の場合スカラーなので𝒙𝑝 = 𝑥𝑝
2次元空間(𝑥𝑝 と𝑦𝑝)内でデータを
近似する直線を求める
𝒙𝑝が𝑁次元の場合
𝒙𝑝 = 𝑥1,𝑝 𝑥2,𝑝 ⋯ 𝑥𝑁,𝑝𝑇
𝑁 + 1次元空間(𝒙𝑝 と𝑦𝑝)内でデータを
近似する超平面を求める
𝑏 + 𝑥𝑝𝑤 ≈ 𝑦𝑝 𝑏 + 𝒙𝑝𝑇𝒘 ≈ 𝑦𝑝 𝒘 = 𝑤1 𝑤2 ⋯𝑤𝑁
𝑇
学習データに対して、最も正確な予測ができるモデルパラメータを探索する
バイアス(Bias、切片) 重みベクトル(Weight vector、傾き)
パラメータ(𝑏,𝒘)のモデルがあるとき、各学習事例ごとに、予測値𝑏 + 𝒙𝑝𝒘と実際のラベル𝑦𝑝との
2乗誤差を算出し足し合わせる
𝑔 𝑏,𝒘 =
𝑝=1
𝑃
𝑏 + 𝒙𝑝𝑇𝒘− 𝑦𝑝
2
𝑔 𝑏,𝒘 を最小化するパラメータ𝑏∗, 𝒘∗ = argmin 𝑔(𝑏, 𝒘)を求める!
最小2乗コスト関数(Least Squares Cost Function)
どれだけ学習データにフィットしているか
前回の数値最適化手法の出番!特に、 𝑔 𝑏,𝒘 は凸関数
𝑔 𝑏,𝒘 の2階微分は、下記のようになる𝛻2𝑔 𝑏,𝒘 = 2𝑿𝑇𝑿 この形は半正定値
𝑿 =
1 1𝑥1,1 𝑥1,2
⋯1𝑥1,𝑃
⋮ ⋱ ⋮𝑥𝑁,1 𝑥𝑁,2 ⋯ 𝑥𝑁,𝑃
各事例のN次元特徴、プラス1を列方向に並べたもの(次のスライド)
このデータの直線モデル(線形モデル)に対するコスト関数
線形回帰における最小2乗コスト関数の最適化
𝑔 𝑏,𝒘 =
𝑝=1
𝑃
𝑏 + 𝒙𝑝𝒘− 𝑦𝑝2
ここで、
𝒙𝑝 = 𝑥1,𝑝 𝑥2,𝑝 ⋯ 𝑥𝑁,𝑝𝑇
𝒘 = 𝑤1 𝑤2 ⋯𝑤𝑁𝑇
𝑔 𝒘 =
𝑝=1
𝑃
𝒙𝑝𝑇 𝒘 − 𝑦𝑝
2
ここで、
𝒙𝑝 = 1 𝑥1,𝑝 𝑥2,𝑝 ⋯ 𝑥𝑁,𝑝𝑇
𝒘 = 𝑏 𝑤1 𝑤2 ⋯𝑤𝑁𝑇
• 𝒙𝑝の先頭に1• 𝒘の先頭に𝑏を加えて、内積だけで必要な計算が終わるようにする
𝛻𝑔 𝒘 = 2
𝑝=1
𝑃
𝒙𝑝 𝒙𝑝𝑇 𝒘 − 𝑦𝑝 = 2
𝑝=1
𝑃
𝒙𝑝𝒙𝑝𝑇 𝒘 − 2
𝑝=1
𝑃
𝒙𝑝𝑦𝑝
この1階微分を用いて最急勾配法(または、2階微分を用いてニュートン法)コード 3_linear_regression.ipynb参照
(線形回帰においては、下記のような最適化も可能!)• 線型方程式ソルバを用いて、最適化の1階条件𝛻𝑔 𝒘 = 0を直接解く(実際、一番効率的)
𝑝=1
𝑃
𝒙𝑝𝒙𝑝𝑇 𝒘 =
𝑝=1
𝑃
𝒙𝑝𝑦𝑝 ෩𝑿෩𝑿𝑻𝒘 = ෩𝑿𝒚
• 𝛻𝑔 𝒘 = 0に対して、逆行列 もしくは、疑似逆行列 を求めて、以下のように解く
𝒘 =
𝑝=1
𝑃
𝒙𝑝𝒙𝑝𝑇
−1
𝑝=1
𝑃
𝒙𝑝𝑦𝑝
• ෩𝑿は𝒙𝑝を列方向に並べた行列(𝑁 × 𝑃)
• 𝒚は𝑦𝑝を縦に並べた列ベクトル(𝑃 × 1)
学習した線形回帰モデルのテスト
最適パラメータが、𝒘∗ = 𝑏∗ 𝒘∗ 𝑇として求まったとして、モデルの性能を評価したい(ここで、𝒘∗ = 𝑤1
∗ 𝑤2∗ ⋯𝑤𝑁
∗ 𝑇)
代表的な評価尺度として、テスト事例に対する平均2乗誤差(MSE: Mean Squared Error)
• 𝑄個のテストデータ: 𝒙𝑡1, 𝑦𝑡1 , 𝒙𝒕2, 𝑦𝑡2 , ⋯ 𝒙𝑡𝑄 , 𝑦𝑡𝑄
• 𝑞番目の学習事例: 𝒙𝑡𝑞 , 𝑦𝑡𝑞 𝒙𝒕𝒒 = 𝑥1,𝑡𝑞 𝑥2,𝑡𝑞 ⋯ 𝑥𝑁,𝑡𝑞𝑇MSE =
𝑞=1
𝑄
𝑏∗ + 𝒙𝒕𝑞𝑇𝒘∗ − 𝑦𝑡𝑞
2
学習で使用していないテスト事例に対してどれだけにフィットしているか?モデルの汎化性能(Generalisation power) 超重要!
もちろん、学習事例に対してもMSEを計算できる。モデルが学習事例にうまくフィットしていたら、MSEはかなり小さいはず。当たり前だが、(学習事例に対するMSE)<(テスト事例に対するMSE)
この差がいかに小さいかが汎化性能