概要
この記事ではロジスティック回帰をニュートン法で解を求めるためのヘッセ行列(二階微分)を求めます。
数値計算のためのヘッセ行列導出
ロジスティック回帰で交差エントロピー誤差を定義し、その偏微分が
であることを確認しました。今回は、ニュートン法によって最適解を求めるため、交差エントロピー誤差のヘッセ行列を求めてみます。(参考:ニュートン法(多変数の場合))
の番目の要素の、での偏微分
を考えます。表記がちょっとわかりづらいんですが、は、番目の訓練データの次元目の要素を意味しています。
とすれば、合成関数の微分を使って
です。(参考:シグモイド関数の微分)
の番目の要素のでの偏微分が式(6)になるのですから、が次元ベクトルなら、ベクトルをベクトルで微分の定義
より(参考:ベクトルをベクトルで微分の定義とヘッセ行列)、
です。これがロジスティック回帰における交差エントロピー誤差のヘッセ行列です。
ここで
とすれば、式(8)は
と書くこともできます。は重み付け行列と呼ばれるようです。なお式(8)と式(11)が等しいことは書き出してみれば簡単に確認できます。相変わらずこういうのに慣れなくて、頭の中で計算できません、、、。
さて、ヘッセ行列が求められましたから、次回これを用いてニュートン法によりロジスティック回帰の解を求めてみたいと思います。なお交差エントロピー誤差は凸関数であり唯一の最小値を持ちます。(参考:ロジスティック回帰における交差エントロピー誤差の凸関数性)
(後日追記)
勾配の番目の要素をで偏微分とかまわりくどいことをしなくても、式(1)をもう一度で微分するだけで良いようです。それはまあそうなんですけど。
ヘッセ行列はと表記されるので(参考:ベクトルをベクトルで微分の定義とヘッセ行列、Matrix calculus - Wikipedia)、をで微分すれば式(12)のように計算できますが、、、そういう考え方でいいのかな?何か勘違いしている点があればご指摘ください。