20
Week2: Linear Regression with Multiple Variables 2015/08/27 担担 担担

Coursera Machine Learning Week2まとめ 

Embed Size (px)

Citation preview

Page 1: Coursera Machine Learning Week2まとめ 

Week2:Linear Regression with Multiple Variables

2015/08/27担当:古賀

Page 2: Coursera Machine Learning Week2まとめ 

Week2で学習すること• 多変量線形回帰• 多変量線形回帰の最急降下法によるパラメータ推定• 特徴の正規化• 学習率の選定方法• 特徴の選定方法と多項式による回帰• 正規方程式によるパラメータ推定

サマリー + わかりにくかったところを中心に解説します

Page 3: Coursera Machine Learning Week2まとめ 

単変量 vs. 多変量の線形回帰仮説:

目的関数:

パラメータ:

最急降下法によるパラメータ推定法:

多変量単変量

又は、

Page 4: Coursera Machine Learning Week2まとめ 

多変量の線形回帰 : J(Θ)

Page 5: Coursera Machine Learning Week2まとめ 

4 x 5 行列

要素数 5のベクトル

要素数 4のベクトル要素数 4のベクトル

ベクトルの転置 × ベクトル = スカラ

スカラ

多変量の線形回帰 : J(Θ)

Page 6: Coursera Machine Learning Week2まとめ 

多変量の線形回帰 : min J(Θ)

theta = theta – alpha * 1.0/m * X’ * (X*theta - y);

(m x (n+1)) の転置 m ベクトルn+1ベクトル

Page 7: Coursera Machine Learning Week2まとめ 

特徴の正規化

スケールが違いすぎる

すべての特徴をおおよそ にしたい

・平均、標準偏差を使った正規化

例)

少し範囲を出ても良い。

𝑥 𝑗𝑖 ←

𝑥 𝑗𝑖 −𝜇 𝑗

𝜎 𝑗

𝑋 1以外の各要素に対して正規化する

Page 8: Coursera Machine Learning Week2まとめ 

学習率 αの選定方法・ α が小さすぎる: 収束に時間がかかる・ α が大きすぎる: 各繰り返しで J(Θ)が減少し → ない J(Θ)が収束しない

αの決め方

…, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, …..

× 3 × 1/3

Page 9: Coursera Machine Learning Week2まとめ 

多項式回帰多変量線形回帰のモデルを使って、多項式の回帰モデルを作ることができる

Page 10: Coursera Machine Learning Week2まとめ 

正規方程式

Octave実装 : pinv(X ' * X) * X' * y

最急降下法・学習率 αを選ばなければならない・繰り返し処理が必要・特徴数が多くても機能する

Page 11: Coursera Machine Learning Week2まとめ 

%% Load Datadata = load('ex1data2.txt');X = data(:, 1:2);y = data(:, 3);

1. Xを正規化2. →最急降下法でコスト関数最小化 パラメータ推定( J(Θ)の値ををグラフで確認しつつ)2’. 正規方程式による方法でパラメータ推定

11

Assignment(Multiple Variablesのみ )

データの準備

ex1data2.txt

解く順序

:家のサイズ (feet^2)

ベットルーム数 家の価格

問題:学習データを使って、家のサイズとベッドルーム数 から、家の価格を予測する

Page 12: Coursera Machine Learning Week2まとめ 

12

function [X_norm, mu, sigma] = featureNormalize(X)

mu = mean(X); % (1 x 2) sigma = std(X); % (1 x 2)mu_m = ones(length(X), 1) * mu; % (m x 1)*(1 x 2)=(m x 2)sig_m = ones(length(X), 1) * sigma; % (m x 1)*(1 x 2)=(m x 2)

X_norm = (X - mu_m) ./ sig_m; % OK (m x 2)%X_norm = (X - mu_m) / sig_m; % NG (m x m)

end

Feature Normalization

featureNormalize.m

[X mu sigma] = featureNormalize(X);

X = data(:, 1:2); % (m x 2) y = data(:, 3); % (m x 1)

Page 13: Coursera Machine Learning Week2まとめ 

13

正規化前

正規化後

Page 14: Coursera Machine Learning Week2まとめ 

14

% Choose some alpha valuealpha = 0.01;num_iters = 400;

% Init Theta and Run Gradient Descent theta = zeros(3, 1);[theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters);

Gradient Descent

% Add intercept term to XX = [ones(m, 1) X]; % (m x 3)

% Estimate the price of a 1650 sq-ft, 3 br houset = [1650, 3];price = [1, (t-mu)./sigma] * theta; 正規化が必要(1以外)

[X mu sigma] = featureNormalize(X); Xを正規化

Page 15: Coursera Machine Learning Week2まとめ 

15

function [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters)

% Initialize some useful valuesm = length(y); % number of training examplesJ_history = zeros(num_iters, 1);

for iter = 1:num_iters h = X * theta; theta = theta - alpha * 1.0/m * X' * (h-y);

% Save the cost J in every iteration J_history(iter) = computeCostMulti(X, y, theta);

endend

gradientDescentMulti.m

Page 16: Coursera Machine Learning Week2まとめ 

16

computeCostMulti.m

function J = computeCostMulti(X, y, theta)

% number of training examplesm = length(y);

% non-vectorized form%h = X*theta;%J = 1.0/(2.0*m) * sum((h - y).^2);

% vectorized formJ = 1.0/(2.0*m) * (X*theta-y)' *

(X*theta-y);

end

Page 17: Coursera Machine Learning Week2まとめ 

17α=0.01

Page 18: Coursera Machine Learning Week2まとめ 

α=0.01 α=0.03

α=0.1

α=1.4α=1.0

Selecting learning rates

NG!

Page 19: Coursera Machine Learning Week2まとめ 

19

Normal Equations

function [theta] = normalEqn(X, y)

theta = pinv(X'*X) * X' * y;

end

% Calculate the parameters from the normal equationtheta = normalEqn(X, y);

% Estimate the price of a 1650 sq-ft, 3 br houseprice = [1, 1650, 3] * theta;

normalEqn.m

Page 20: Coursera Machine Learning Week2まとめ 

20

最急降下法でパラメータ推定

正規方程式でパラメータ推定

結果