なぜロジスティック回帰最適化にニュートンの方法を使用するのが反復再加重最小二乗と呼ばれるのですか?


18

なぜロジスティック回帰最適化にニュートンの方法を使用するのが反復再加重最小二乗と呼ばれるのですか?

ロジスティック損失と最小二乗損失は完全に異なるため、私には明らかではないようです。


3
同じだとは思いません。IRLSは、観測されたヘッシアンではなく、予想されたヘッシアンを持つニュートンラプソンです。
Dimitriy V. Masterov

@ DimitriyV.Masterovありがとう、予想されるヘッシアン対観測の詳細を教えてください。また、あなたはどう思いますこの説明
ハイタオ・ドゥ

回答:


24

概要:GLMは、Dimitriy V. Masterovが指摘しているように、代わりに予想されるヘッシアンを持つニュートンラプソンであるフィッシャースコアリングによって適合します(つまり、観測情報ではなくフィッシャー情報の推定値を使用します)。正準リンク関数を使用している場合、観測されたヘッシアンが予想ヘッシアンと等しいため、NRとフィッシャーのスコアリングは同じ場合になります。いずれにせよ、フィッシャーのスコアリングは実際に重み付き最小二乗線形モデルに適合しており、これからの係数推定値はロジスティック回帰尤度の最大値に収束します*。ロジスティック回帰をすでに解決済みの問題に当てはめることを減らすことの他に、ロジスティック回帰について学習するために最終的なWLS近似で線形回帰診断を使用できるという利点もあります。

私は、これはロジスティック回帰に焦点を当て続けるつもりですが、GLMSにおける最大尤度のより一般的な視点のために私はのセクション15.3をお勧めします。この章(私はそれがジョン・フォックスのからだと思い、より一般的な設定で、これと派生のIRLSを通過応用回帰分析と一般化線形モデル)。

最後にコメントを見る


尤度およびスコア関数

我々は、フォームの何か繰り返すことによって我々のGLMをフィッティングする ここで、は対数尤度で、は対数尤度の観測されたヘッシアンまたは予想されたヘッシアンです。J M

b(m+1)=b(m)J(m)1(b(m))
Jm

リンク関数は、条件付き平均を線形予測子にマッピングする関数あるため、平均のモデルはです。してみましょう平均に線形予測をマッピング逆リンク関数です。μ iが = E Y iは| xはIをG μ I= X T I β Hgμi=E(yi|xi)g(μi)=xiTβh

ロジスティック回帰の場合、独立した観測値を持つベルヌーイ尤度があるため、 デリバティブを取る、

(b;y)=i=1nyilogh(xiTb)+(1yi)log(1h(xiTb)).
= n i=1xijhx T i b y i
bj=i=1nyih(xiTb)h(xiTb)xij1yi1h(xiTb)h(xiTb)xij
=ixijhx T i b
=i=1nxijh(xiTb)(yih(xiTb)1yi1h(xiTb))
=ixijh(xiTb)h(xiTb)(1h(xiTb))(yih(xiTb)).

正規リンクを使用する

ここで、正規リンク関数を使用していると仮定します。次になので、これは、 したがって さらに、まだを使用して、 g 1 cx = h cx = 1gc=logit H ' C =H、C1-HCgc1(x):=hc(x)=11+exhc=hc(1hc)BY=XTY - YHC2

bj=ixij(yihc(xiTb))
(b;y)=XT(yy^).
hc
2bkbj=ixijbkhc(xiTb)=ixijxik[hc(xiTb)(1hc(xiTb))].

ましょう 次に、 あり、これにれていないことに注意してください。したがって、(これを関数として表示しているため、ランダムなものはのみです) 。したがって、ロジスティック回帰で標準リンクを使用する場合、フィッシャーのスコアリングはニュートンラプソンと同等であることを示しました。また、により、は常に負の定値になりますが、数値的にはが近すぎる場合

W=diag(hc(x1Tb)(1hc(x1Tb)),,hc(xnTb)(1hc(xnTb)))=diag(y^1(1y^1),,y^n(1y^n)).
H=XTWX
yiE(H)=Hbyy^i(0,1) XTWXy^i0または場合、重みを丸めることができますこれにより、半正定になり、計算上特異になります。10H

ここで、作業応答 を作成し、ことに注意してください z=W1(yy^)

=XT(yy^)=XTWz.

これはすべて、反復処理することで対数尤度を最適化できることを意味します。 およびはまさにの加重最小二乗回帰の上の。

b(m+1)=b(m)+(XTW(m)X)1XTW(m)z(m)
(XTW(m)X)1XTW(m)z(m)β^z(m)X

これをチェックインするR

set.seed(123)
p <- 5
n <- 500
x <- matrix(rnorm(n * p), n, p)
betas <- runif(p, -2, 2)
hc <- function(x) 1 /(1 + exp(-x)) # inverse canonical link
p.true <- hc(x %*% betas)
y <- rbinom(n, 1, p.true)

# fitting with our procedure
my_IRLS_canonical <- function(x, y, b.init, hc, tol=1e-8) {
  change <- Inf
  b.old <- b.init
  while(change > tol) {
    eta <- x %*% b.old  # linear predictor
    y.hat <- hc(eta)
    h.prime_eta <- y.hat * (1 - y.hat)
    z <- (y - y.hat) / h.prime_eta

    b.new <- b.old + lm(z ~ x - 1, weights = h.prime_eta)$coef  # WLS regression
    change <- sqrt(sum((b.new - b.old)^2))
    b.old <- b.new
  }
  b.new
}

my_IRLS_canonical(x, y, rep(1,p), hc)
# x1         x2         x3         x4         x5 
# -1.1149687  2.1897992  1.0271298  0.8702975 -1.2074851

glm(y ~ x - 1, family=binomial())$coef
# x1         x2         x3         x4         x5 
# -1.1149687  2.1897992  1.0271298  0.8702975 -1.2074851 

彼らは同意します。


非正規リンク関数

今、私たちはの簡素化取得しない正規のリンク使用していない場合はにので、はるかに複雑になり、私たちはそれゆえ参照フィッシャースコアリングでを使用することによる顕著な違い。hh(1h)=1HE(H)

これがどのように行われるかです:ヘッシアンが主な難題になるように、一般的なをすでに解決しました。我々は必要

2bkbj=ixijbkh(xiTb)(yih(xiTb)1yi1h(xiTb))
=ixijxik[h(xiTb)(yih(xiTb)1yi1h(xiTb))h(xiTb)2(yih(xiTb)2+1yi(1h(xiTb))2)]

期待の線形性を介して、を取得するために必要なことは、各出現をモデルでの平均に置き換えることだけです。したがって、加数の各項には、 しかし、実際に最適化を行うには、各を推定する必要があり、ステップが最良の推測です。これは、これが E(H)yiμi=h(xiTβ)

h(xiTb)(h(xiTβ)h(xiTb)1h(xiTβ)1h(xiTb))h(xiTb)2(h(xiTβ)h(xiTb)2+1h(xiTβ)(1h(xiTb))2).
βm b(m)
h(xiTb)(h(xiTb)h(xiTb)1h(xiTb)1h(xiTb))h(xiTb)2(h(xiTb)h(xiTb)2+1h(xiTb)(1h(xiTb))2)
=h(xiTb)2(1h(xiTb)+11h(xiTb))
=h(xiTb)2h(xiTb)(1h(xiTb)).
これは、を J
Jjk=ixijxikh(xiTb)2h(xiTb)(1h(xiTb)).

さて、 正規リンクの下では、前のセクションからを減らし。これにより、書くことができます。 ただし、これは必ずしもそのものではなくであるため、Newton-Raphsonとは異なる場合があります。すべての、数値の問題は別として、は負定値になります。

W=diag(h(x1Tb)2h(x1Tb)(1h(x1Tb)),,h(xnTb)2h(xnTb)(1h(xnTb)))
hc=hc(1hc)WW
J=XTWX
E^(H)Hi Wii>0J

我々は したがって、新しい作業応答をとし、、ます。

bj=ixijh(xiTb)h(xiTb)(1h(xiTb))(yih(xiTb))
z=D1(yy^)D=diag(h(x1Tb),,h(xnTb))=XTWz

すべて一緒にを繰り返します これは、必ずしもニュートンラプソンである必要はないことを除いて、WLS回帰のシーケンスです。

b(m+1)=b(m)+(XTW(m)X)1XTW(m)z(m)

Newton-Raphsonへの接続を強調するためにこのように書きましたが、多くの場合、人々は更新を考慮して、新しいポイントがそれぞれWLSソリューションではなくWLSソリューションになるようにします。現在の点。これを行うには、次のようにします そのため、この方法で処理すると、実際の応答が表示されます。の形式を取りますが、同じものです。b(m+1)b(m)

b(m+1)=b(m)+(XTW(m)X)1XTW(m)z(m)
=(XTW(m)X)1(XTW(m)Xb(m)+XTW(m)z(m))
=(XTW(m)X)1XTW(m)(Xb(m)+z(m))
η(m)+D(m)1(yy^(m))

これを使用して、以前と同じシミュレートされたデータでプロビット回帰を実行することで機能することを確認しましょう(これは正準リンクではないため、このより一般的な形式のIRLSが必要です)。

my_IRLS_general <- function(x, y, b.init, h, h.prime, tol=1e-8) {
  change <- Inf
  b.old <- b.init
  while(change > tol) {
    eta <- x %*% b.old  # linear predictor
    y.hat <- h(eta)
    h.prime_eta <- h.prime(eta)
    w_star <- h.prime_eta^2 / (y.hat * (1 - y.hat))
    z_star <- (y - y.hat) / h.prime_eta

    b.new <- b.old + lm(z_star ~ x - 1, weights = w_star)$coef  # WLS

    change <- sqrt(sum((b.new - b.old)^2))
    b.old <- b.new
  }
  b.new
}

# probit inverse link and derivative
h_probit <- function(x) pnorm(x, 0, 1)
h.prime_probit <- function(x) dnorm(x, 0, 1)

my_IRLS_general(x, y, rep(0,p), h_probit, h.prime_probit)
# x1         x2         x3         x4         x5 
# -0.6456508  1.2520266  0.5820856  0.4982678 -0.6768585 

glm(y~x-1, family=binomial(link="probit"))$coef
# x1         x2         x3         x4         x5 
# -0.6456490  1.2520241  0.5820835  0.4982663 -0.6768581 

そして再び2人は同意します。


収束に関するコメント

最後に、収束に関するいくつかの簡単なコメント(これは非常に長くなり、最適化の専門家でもないので、この簡潔さを保ちます)。理論的には各は負定値ですが、悪い初期条件により、このアルゴリズムの収束が妨げられる可能性があります。上記のプロビットの例では、初期条件をこれに変更すると、これは疑わしい初期条件のようには見えません。その初期化とこれらのシミュレートされたデータを使用してIRLSプロシージャを実行すると、ループを2回目までに正確に丸められるが存在するため、重みは未定義になります。与えたアルゴリズムで正規リンクを使用している場合、で割ることはありません。J(m)b.init=rep(1,p)y^i1y^i(1y^i)未定義の重みを取得しますが、完全な分離の場合など、いくつかのがまたはに近づいている状況がある場合、勾配が何も到達せずに収束するため、収束しません。y^i01


5
+1。私はあなたの答えがしばしばどれほど詳細であるかが大好きです。
アメーバは、モニカーを復活させる

「これからの係数推定値は、ロジスティック回帰尤度の最大値に収束します」と述べました。それは、初期値から必然的にそうですか?
マークL.ストーン

2
@ MarkL.Stoneああ、私はあまりにもカジュアルされていた、最適化の人々を怒らせるためにそこに意味するものではありませんでした:)私はいくつかの詳細を追加します(と私はときにそれらに自分の考えをいただければ幸いです)
JLD

私が投稿したリンクを見ことがありますか?ビデオは機械学習の観点から話しているようで、Hessainの期待については話さずに、単にロジスティック損失を最適化しますか?
ハイタオドゥ

1
そのPDFの@ hxd1011にリンクされています(再度リンク:sagepub.com/sites/default/files/upm-binaries/…)その24ページで、著者は理論に入り、リンク関数が正確に標準化される理由を説明します。私が最初にこれに出会ったとき、私はそのpdfが非常に役立つことを発見しました(それを通過するのに私はしばらく時間がかかりましたが)。
jld
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.