廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

AICと一個抜き交差検証法と汎化損失のシミュレーション

AICは汎化損失を近似するもので漸近的には一個抜き交差検証法の結果と一致するという話を聞いてやってみました。

汎化損失

分布の「近さ」を測る尺度として代表的なものが次に定義されるカルバック・ライブラ情報量です。

\displaystyle D_{\mathrm {KL} }(P\|Q)=\int _{-\infty }^{\infty }p(x)\log {\frac {p(x)}{q(x)}}\;dx

これを変形すると

\displaystyle \int _{-\infty }^{\infty }p(x)\log p(x)\;dx -  \int _{-\infty }^{\infty }p(x) \log q(x) \;dx

となります。

p(x) を真の分布、q(x) を予測分布と考えると、第一項は真の分布のみによって決まる量であり、予測分布の作り方に依存しません。第二項が小さいほど予測分布が真の分布をよく近似していると考えられます。

第二項を汎化損失と呼びます。

正規分布の場合

以下では真の分布が標準正規分布、予測分布を正規分布としてシミュレーションを行います。

このとき、汎化損失は以下のようになります。

{\displaystyle \log(2 \pi \sigma^2)/2-(1+\mu^2)/(2\sigma^2)}

\sigma^2\mu は予測分布のパラメータです。

R によるシミュレーション

シミュレーションです。図は一万回シミュレーションした結果の平均と標準偏差です。

f:id:abrahamcow:20171004011418p:plain

点線は真の分布と予測分布が一致した場合の汎化損失です。

AICはサンプルで平均した値を出しています。
GEは汎化損失、LOOは一個抜き交差検証法で出した対数尤度の平均です。

サンプルサイズが100もあれば、LOOでもAICでも十分汎化損失を近似できることがわかります。

サンプルが少ないとき、LOOは汎化損失を大きめにAICは汎化損失を小さめに見積もるようです。

R のコードです。

library(parallel)
library(tidyverse)
simfunc <- function(i,N){
  x <- rnorm(N)
  mean <- mean(x)
  sd <- sd(x)
  ll = mean(dnorm(x,mean,sd,log = TRUE))
  -c(LOO = mean(sapply(1:N,function(i)dnorm(x[i],mean(x[-i]),sd(x[-i]),log = TRUE))),
    AIC = ll-2/N,
    GE=-log(2*pi*(sd^2))/2-(1+mean^2)/(2*(sd^2)))
}
res10 <-mclapply(1:10000,N=10,simfunc,mc.cores = detectCores())
res25 <-mclapply(1:10000,N=25,simfunc,mc.cores = detectCores())
res50 <-mclapply(1:10000,N=50,simfunc,mc.cores = detectCores())
res100 <-mclapply(1:10000,N=100,simfunc,mc.cores = detectCores())

res_df <-do.call("rbind",c(res10,res25,res50,res100)) %>% 
  as_data_frame() %>% 
  mutate(n=rep(c(10,25,50,100),each=10000)) %>% 
  gather(key,value,-n) %>% 
  mutate(n=factor(n))

mean_sd <- function(x){
  mean <- mean(x)
  sd <- sd(x)
  data.frame(y=mean,ymin=mean-sd,ymax=mean+sd)
}

p1 <-ggplot(res_df,aes(x=n,y=value,colour=key))+
  stat_summary(fun.data ="mean_sd",position=position_dodge(0.5))+
  geom_hline(yintercept = log(2*pi)/2+1/2, lty=2)
print(p1)

参考文献

ベイズ統計の理論と方法

ベイズ統計の理論と方法

岩波データサイエンス Vol.5

岩波データサイエンス Vol.5