3. 回帰分析とモデル選択2
4.1 Classical Curve Fitting
4.2 Nonlinear Regression and Gradient
Descent
4.3 Regression and Ax=b: Over- and Under-
Determinant systems
4.4 Optimization as the Cornerstone of
Regression
4.5 The Pareto Front
4.6 Model Selection : Cross-Validation
4.7 Model Selection: Information Criteria
4. 回帰分析とモデル選択2
% 4.1 Classical Curve Fitting
CH04_SEC01_LinearRegression.m
% 4.2 Nonlinear Regression and Gradient Descent
CH04_SEC02_1_GradientDescent.m
% 4.3 Regression and Ax=b
CH04_SEC03_1_OverUnderDetermined.m
CH04_SEC03_1_OverUnderDetermined_production.
m
% 4.4 Optimization as Cornerstone of Regression
CH04_SEC04_1_CompareRegression.m
CH04_SEC04_1_CompareRegression_production.m
% 4.6 Model Selection: Cross-Validation
CH04_SEC06_1_kFoldValidation.m
CH04_SEC06_1_kFoldValidation_production.m
% 4.7 Model Selection: Information Criteria
CH04_SEC07_1_ModelValidation.m
CH04_SEC07_2_RegressAIC_BIC.m
8. 過剰適合(overfit)の問題 その1
n=100; L=4;
x=linspace(0,L,n);
f=(x.^2).'; % parabola with 100 data points
M=20; % polynomical degree
for j=1:M
phi(:,j)=(x.').^(j-1); % build matrix A
end
for j=1:4
fn=(x.^2+0.1*randn(1,n)).';
an=pinv(phi)*fn; fna=phi*an; % least-square fit
En=norm(f-fna)/norm(f);
subplot(4,2,4+j),bar(an,'FaceColor',[.6 .6 .6], ...
'EdgeColor','k’);
end
subplot(2,1,1), plot(x,f,'k'), hold on
CH04_SEC04_1_CompareRegression_production.m
過剰適合の問題1
データに含まれるノイズ成分に引き連れて、データ
ごとに推定されるモデル係数が大きく変動する
25. モデル選択法2:情報量基準の具体例
再び線形回帰モデル
0
ˆ k
i k i
K
k
y a x
=
= ∑K次の線形回帰モデル
( )
2
1
2
ˆˆ
1
i
i
i
n
y y
n
σ
=
= −∑データとモデルの誤差分散
対数尤度(ゆうど) Log
likelihood
( ){ }2
ˆlog log 2 1
2
n
πσ=− +
パラメタの個数 1K +
( ) ( ){ }2
ˆlog 2 1AIC 2 1K n πσ+ + +=
( ) ( ) ( ){ }2
1B gIC 2log 1 ˆlo 2n K n πσ+ +⋅ +=
26. 最尤法と尤度関数 (1/4)
再び線形回帰モデル
0
ˆ k
i i i k i i
K
k
y y a x
=
= + = +∑
モデル 誤差
尤度関数と対数尤度関数
誤差が平均0、分散σ2の正規分布に従うとする
( )2
~ 0,i σ ( )
2
22
1
exp
22
i
ip
σπσ
= −
もしくは
{ }( ) 22
1
2
2 1 1
e, , xp
22
i
K
k
i k
k
i k ip y yx a a xσ
σπσ =
= −
−
∑
線形回帰の式を用いると
27. 最尤法と尤度関数 (2/4)
尤度関数
{ }( ) { }{ }( ) 1
2
2 2
22
1 1
1 1
, , , exp
22
n n
k
k i i k i k i
K
i ki
L pa x a a xy yσ σ
σπσ == =
= = −
− ∑∏ ∏
対数尤度関数
{ }( ) { }( ) ( )
2
2 2 2
2
1 1
1 1
, log log, 2
2 2
K
k
n
k
k k i k i
i
L ya a a xσ σ πσ
σ ==
= = −
−− ∑ ∑
最尤法
尤度関数(対数尤度関数)を最大にするように、パラメタの値を推定する方法。
{ }( ) { }( )
{ }( ) { }( )
{ }( )2 2
2
,
2
,
2
ˆ , arg max , arg max ,ˆ
k k
k k
a
k
a
a aLa
σ σ
σ σ σ==
28. 最尤法と尤度関数 (3/4)
対数尤度関数
{ }( ) ( )
2
2
2
1 1
2 1
log 2
2
,
2
n
k
k i
K
k
k i
i
a a
n
y xσ πσ
σ ==
=− − −
∑ ∑
線形回帰係数に関する最適化
2
1
2
1
1
2
n
k
i k i
i
K
k
a xy
σ ==
−
− ∑∑ を最大化 ⇒ 最小二乗問題
誤差の分散に関する最大化問題
2 42
1 1
2
1 1
0
2 2
K
k
n
k
i k i
i
a x
n
y
σ σ σ = =
∂
=− + = ∂
−∑ ∑
2
2
1 1
1
ˆ ˆ
K
k
n
k
i k i
i
ay
n
xσ
= =
∴
= − ∑∑
29. 最尤法と尤度関数 (4/4)
対数尤度関数の最大値
{ }( ) { }( ) ( ){ }2 2 2
ˆ ˆmax logˆ , , 2 1
2
k ka
n
aσ σ πσ= =− +
2
1
2
1
1
ˆ ˆ
k
n
k
i k
K
i
i
ay
n
xσ
==
=
− ∑∑ここで
( ) ( ) ( ) ( ){ }2
1AIC 2 # parameters 2 log like ˆlihood 2 1 log 2K n πσ= − =+ ++
( ) ( ) ( )
( ) ( ) ( ){ }2
1
BIC 2log # parameters 2 log likelihood
2l g1 ˆlog o 2
n
n K n πσ
=
+ +⋅=
⋅
+
−
30. モデル選択法2:情報量基準の具体例
% Quadratic data + Gaussian noise
N = 100;
x = sort(rand(N,1)*5-2.5);
y = x.^2 + 1*randn(N,1);
% evaluation of mean squared error for polynomial model
likelihoodAll = zeros(10,1);
aicAll = zeros(10,1);
bicAll = zeros(10,1);
for k=1:10
p = polyfit(x,y,k);
mse = sum((y-polyval(p,x)).^2)/N;
likelihoodAll(k) = -N/2*(log(2*pi*mse)+1);
aicAll(k) = 2*(k+1) - 2*likelihoodAll(k);
bicAll(k) = 2*log(N)*(k+1) - 2*likelihoodAll(k);
end
figure(1); clf; hold on
plot(1:10, aicAll, 'k.-');
plot(1:10, bicAll, 'r.-');
xlabel('Polynomial order K');
ylabel('Information criterion');
legend('AIC', 'BIC');
demo_aicbic.m (WebClassにあります)
2
1
2
1
1
ˆ ˆ
k
n
k
i k
K
i
i
ay
n
xσ
==
=
− ∑∑
①
①
②
③
④
②
③
④
{ }( ) ( ){ }2 2
ˆ ˆlog 2 1
2
ˆ ,k
n
a σ πσ=− +
( ) { }( )2
ˆAIC 2 1 2log ˆ ,kK a σ= + −
( ) ( ) { }( )2
ˆBIC 2log 1 2 o ˆ ,l g kn K a σ= ⋅ + −