コンテンツにスキップ

ロジスティック回帰:シグモイドと交差エントロピーを最尤推定から導く

対象読者: 学部 1 年の線形代数と多変数の微分(勾配・ヘッセ行列)、確率の基本(ベルヌーイ分布)を学び、本テーマ第 2 章の線形回帰を読んだ人。最尤推定は本文で導入します。

前提となる記事:線形回帰と最小二乗法:正規方程式を直交射影として読む

生 Markdown

「このメールは迷惑メールか」「この検査結果の人は病気か」のように、答えが「はい」か「いいえ」の問題を、数字から予測するにはどうすればよいでしょうか。この記事では、予測を「はいである確率」として出す方法を、最小二乗法がうまくいかない小さな例から出発して組み立てます。確率の式からどんな損失関数が自然に決まるのか、その損失を小さくする重みがなぜ式変形では求まらず、数値的に探すことになるのかが読み終えると分かります。以下の箇条書きは全体の見取り図なので、知らない用語があっても本文で順に説明します。

  • 分類問題では出力が 00 か 11 のラベルです。ここに最小二乗法をそのまま当てはめると、確率の範囲を外れた予測が出るうえ、判定に無関係なはずの遠くの点が決定境界を動かしてしまいます。
  • 線形なスコア wTx\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x} を確率に変える写像としてシグモイド関数 σ(z)=1/(1+e−z)\sigma(z) = 1/(1+e^{-z}) を使います。これは恣意的な選択ではなく、「対数オッズ(ロジット)が線形である」という仮定と同値です。
  • 損失関数は手で選ぶものではありません。ベルヌーイ分布の最尤推定を書き下すと、負の対数尤度がそのまま交差エントロピー誤差になります。
  • 勾配は ∇L(w)=∑i(μi−yi)xi\nabla L(\boldsymbol{w}) = \sum_i (\mu_i - y_i)\boldsymbol{x}_i という驚くほど簡単な形になります。シグモイドの微分が交差エントロピーの微分と約分するからで、この約分が学習の速さを支えています。
  • ヘッセ行列(2 階の偏微分を並べた行列)は XTSX⪰OX^{\mathsf{T}}SX \succeq O なので LL は凸です。しかし停留条件は超越方程式(指数関数と多項式が混ざった、式変形では解けない形の方程式)で、線形回帰と違って閉じた解がありません。だから微分を使って数値的に探すしかない、というのが次章の勾配降下法につながります。
  • データが線形分離可能なとき最尤推定量は存在せず、重みは発散します。L2L^2 正則化を足すと最小点の存在と一意性が回復し、これはガウス事前分布による MAP 推定(重みについての事前の考えを加味して、事後確率が最大になる値を選ぶ推定)と一致します。

1. 動機:0 と 1 のラベルを直線で当てにいくと何が壊れるか

Section titled “1. 動機:0 と 1 のラベルを直線で当てにいくと何が壊れるか”

線形回帰と最小二乗法 で扱ったのは、身長から体重を予測するような、出力が実数の問題でした。しかし現場で解きたい問題の多くは、そうではありません。

  • このメールは迷惑メールか、そうでないか。
  • この検査値の組を持つ患者は、その病気に罹患しているか、していないか。
  • この画像に写っているのは猫か、猫でないか。

いずれも出力は「はい/いいえ」の 2 択です。こういう問題を 2 値分類問題 といいます。数学的には、特徴ベクトル x∈Rd\boldsymbol{x} \in \mathbb{R}^{d} に対してラベル y∈{0,1}y \in \{0, 1\} を予測する問題として定式化します。

ここで素朴な疑問が湧きます。ラベル yy も所詮は数値なのだから、線形回帰をそのまま使えばよいのではないか。y^=wTx\hat{y} = \boldsymbol{w}^{\mathsf{T}}\boldsymbol{x} を最小二乗法で当てはめ、y^≥0.5\hat{y} \ge 0.5 なら「はい」、そうでなければ「いいえ」と判定すればよさそうに見えます。実際にやってみると、何が起きるかがはっきりします。

1.2. 最小二乗法を 0/10/1 ラベルに当てはめる

Section titled “1.2. 最小二乗法を 0/10/10/1 ラベルに当てはめる”

勉強時間 tt(時間)から試験の合否 yy(11 が合格)を予測する、次の 4 点のデータを考えます。

tt1234
yy0011

y^=at+b\hat{y} = at + b を最小二乗法で当てはめます。tˉ=2.5\bar{t} = 2.5、yˉ=0.5\bar{y} = 0.5、∑i(ti−tˉ)2=2.25+0.25+0.25+2.25=5\sum_i (t_i - \bar{t})^2 = 2.25 + 0.25 + 0.25 + 2.25 = 5、∑i(ti−tˉ)(yi−yˉ)=0.75+0.25+0.25+0.75=2\sum_i (t_i - \bar{t})(y_i - \bar{y}) = 0.75 + 0.25 + 0.25 + 0.75 = 2 ですから、

a=25=0.4,b=0.5−0.4×2.5=−0.5.a = \frac{2}{5} = 0.4, \qquad b = 0.5 - 0.4 \times 2.5 = -0.5 .

判定は y^=0.5\hat{y} = 0.5 すなわち t=2.5t = 2.5 を境界とし、4 点すべてを正しく分類します。一見うまくいっています。しかし予測値そのものを見ると y^(1)=−0.1\hat{y}(1) = -0.1、y^(4)=1.1\hat{y}(4) = 1.1 です。負の確率と、11 を超える確率が出てきました。「合格する確率は −10%-10\% です」と言われても意味が取れません。

これは見た目の問題にとどまりません。ここに「20 時間勉強して合格した」という、常識的にはまったく問題のない 1 点 (t,y)=(20,1)(t, y) = (20, 1) を追加します。tˉ=6\bar{t} = 6、yˉ=0.6\bar{y} = 0.6、∑i(ti−tˉ)2=25+16+9+4+196=250\sum_i (t_i - \bar{t})^2 = 25 + 16 + 9 + 4 + 196 = 250、∑i(ti−tˉ)(yi−yˉ)=3+2.4−1.2−0.8+5.6=9\sum_i (t_i - \bar{t})(y_i - \bar{y}) = 3 + 2.4 - 1.2 - 0.8 + 5.6 = 9 なので

a=9250=0.036,b=0.6−0.036×6=0.384.a = \frac{9}{250} = 0.036, \qquad b = 0.6 - 0.036 \times 6 = 0.384 .

境界は 0.036t+0.384=0.50.036t + 0.384 = 0.5 すなわち t=3.22…t = 3.22\ldots に移動しました。その結果、t=3t = 3 の点は y^(3)=0.492<0.5\hat{y}(3) = 0.492 < 0.5 となり、もともと正しく分類できていた点が誤分類されます。

00.5105101520t(勉強時間)y4 点のみ:ŷ = 0.4t − 0.55 点:ŷ = 0.036t + 0.384ŷ = 0.5(判定の境界)
0/1 ラベルへの最小二乗法。実線は 4 点だけ、破線は 20 時間の点を加えた 5 点への当てはめ。外れ値ではない点を 1 つ足しただけで、境界(予測値 0.5)が t = 2.5 から t = 3.22 に動き、t = 3 の点が境界の左側に取り残される。

なぜこうなるのでしょうか。二乗誤差 (y^i−yi)2(\hat{y}_i - y_i)^2 は、y^i\hat{y}_i が yiy_i から離れるほど罰を与えます。ところが分類の観点では、t=20t = 20 の点について y^=1.1\hat{y} = 1.1 でも y^=5\hat{y} = 5 でも「合格側に十分入っている」という意味では同じく正解です。二乗誤差はこの「正解の側に深く入りすぎた」状態を誤差として数え、それを減らすために直線を寝かせてしまう。分類の目的関数として二乗誤差が不適切だ、ということです。

以上から、必要なものが 2 つはっきりします。

  1. 出力を (0,1)(0,1) に押し込める仕組み。予測値を確率として読めるようにしたい。
  2. 確率モデルから導かれる損失関数。「0.90.9 と答えて正解だった」ことと「0.550.55 と答えて正解だった」ことの差を、恣意的でない基準で測りたい。

この 2 つを与えるのがロジスティック回帰です。1 番目にシグモイド関数(定義 3.1)が、2 番目に最尤推定から出てくる交差エントロピー誤差(定義 4.1)が対応します。そして最後に、その損失関数を最小化する段になって初めて「微分」が本質的に必要になります。線形回帰では正規方程式という連立一次方程式を解けば済んだのに対し、ロジスティック回帰では閉じた解が書けないからです(注意 5.4)。

ロジスティック回帰の全体像。線形スコアを確率に変え、確率から損失を作り、損失の勾配で重みを直す。

以下、データは nn 個の組 (x1,y1),…,(xn,yn)(\boldsymbol{x}_1, y_1), \ldots, (\boldsymbol{x}_n, y_n) で与えられ、xi∈Rd\boldsymbol{x}_i \in \mathbb{R}^{d}、yi∈{0,1}y_i \in \{0,1\} とします。切片(バイアス)は特徴ベクトルに吸収します。すなわち xi\boldsymbol{x}_i の第 1 成分は常に 11 であるとし、対応する重み w1w_1 が切片の役割を果たすものとします。こうしておくと式に切片が現れず、以後の計算がすべて wTx\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x} の形に統一されます。

計画行列 XX を、第 ii 行が xiT\boldsymbol{x}_i^{\mathsf{T}} である n×dn \times d 行列とします(線形回帰と最小二乗法 の 計画行列(定義 2.1)[線形回帰と最小二乗法] と同じ記法です)。ラベルを並べたベクトルを y=(y1,…,yn)T∈Rn\boldsymbol{y} = (y_1, \ldots, y_n)^{\mathsf{T}} \in \mathbb{R}^{n} と書きます。

確率については、各 ii について yiy_i が xi\boldsymbol{x}_i を与えたもとで条件付きに独立であることを仮定します。xi\boldsymbol{x}_i 自体の分布は一切モデル化しません(この点は 例 3.4 で再度触れます)。確率変数と期待値の基本については 確率変数と期待値 を参照してください。

ベクトルによる微分は成分ごとの偏微分を並べたもの、すなわち ∇f(w)=(∂f/∂w1,…,∂f/∂wd)T\nabla f(\boldsymbol{w}) = (\partial f/\partial w_1, \ldots, \partial f/\partial w_d)^{\mathsf{T}} とし、ヘッセ行列は (∇2f)jk=∂2f/∂wj∂wk(\nabla^2 f)_{jk} = \partial^2 f / \partial w_j \partial w_k とします。詳しくは 多変数関数の微分と偏微分 の ヘッセ行列の定義(定義 7.3)[多変数関数の微分と偏微分] を参照してください。対称行列 AA について A⪰OA \succeq O は半正定値、A≻OA \succ O は正定値を表します。

3. 出力を確率にする:シグモイド関数とロジット

Section titled “3. 出力を確率にする:シグモイド関数とロジット”

定義 3.1(シグモイド関数(標準ロジスティック関数))↗

関数 σ:R→R\sigma : \mathbb{R} \to \mathbb{R} を

σ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}}

で定める。これをシグモイド関数、または標準ロジスティック関数という。

名前の由来は、グラフが SS 字(ギリシャ文字シグマの語幹 sigma + eides「〜のような形」)を描くことです。もともとは 1838 年に Verhulst が人口の増加を記述する微分方程式 dpdt=p(1−p)\frac{dp}{dt} = p(1-p) の解として導入したものでした。この微分方程式自体が、次の性質 (3) と同じ形をしていることに注意してください。

10.50-4-2024zsigma(z)
シグモイド関数のグラフ。z = 0 で 0.5 を通り、両端で 0 と 1 に漸近します。

命題 3.2(シグモイド関数の基本性質)✓

定義 3.1 の σ\sigma について、次が成り立つ。

  1. すべての z∈Rz \in \mathbb{R} について 0<σ(z)<10 < \sigma(z) < 1 であり、σ\sigma は R\mathbb{R} 上 C∞C^{\infty} 級かつ狭義単調増加で、lim⁡z→−∞σ(z)=0\lim_{z \to -\infty} \sigma(z) = 0、lim⁡z→+∞σ(z)=1\lim_{z \to +\infty} \sigma(z) = 1。
  2. すべての zz について σ(−z)=1−σ(z)\sigma(-z) = 1 - \sigma(z)。特に σ(0)=1/2\sigma(0) = 1/2。
  3. すべての zz について σ′(z)=σ(z)(1−σ(z))=σ(z) σ(−z)>0\sigma'(z) = \sigma(z)\bigl(1 - \sigma(z)\bigr) = \sigma(z)\,\sigma(-z) > 0。
  4. σ:R→(0,1)\sigma : \mathbb{R} \to (0,1) は全単射であり、その逆関数は σ−1(p)=log⁡p1−p\sigma^{-1}(p) = \log \dfrac{p}{1-p}(0<p<10 < p < 1)で与えられる。
証明(命題 3.2)

(1) すべての zz について e−z>0e^{-z} > 0 なので 1+e−z>1>01 + e^{-z} > 1 > 0 であり、したがって 0<σ(z)=1/(1+e−z)<10 < \sigma(z) = 1/(1+e^{-z}) < 1 です。z↦e−zz \mapsto e^{-z} は C∞C^{\infty} 級で、分母 1+e−z1+e^{-z} は決して 00 にならないので、商として σ\sigma も C∞C^{\infty} 級です。狭義単調増加であることは (3) で示す σ′>0\sigma' > 0 から従います。極限は、z→−∞z \to -\infty のとき e−z→+∞e^{-z} \to +\infty なので σ(z)→0\sigma(z) \to 0、z→+∞z \to +\infty のとき e−z→0e^{-z} \to 0 なので σ(z)→1\sigma(z) \to 1 です。

(2) 定義から σ(−z)=1/(1+ez)\sigma(-z) = 1/(1+e^{z}) です。一方

1−σ(z)=1−11+e−z=(1+e−z)−11+e−z=e−z1+e−z1 - \sigma(z) = 1 - \frac{1}{1+e^{-z}} = \frac{(1+e^{-z}) - 1}{1+e^{-z}} = \frac{e^{-z}}{1+e^{-z}}

であり、分子分母に eze^{z} を掛けると 1ez+1\dfrac{1}{e^{z}+1} となって σ(−z)\sigma(-z) に一致します。z=0z = 0 とすれば σ(0)=1−σ(0)\sigma(0) = 1 - \sigma(0)、すなわち σ(0)=1/2\sigma(0) = 1/2 です。

(3) σ(z)=(1+e−z)−1\sigma(z) = (1+e^{-z})^{-1} に合成関数の微分法を適用します。外側の微分が −(1+e−z)−2-(1+e^{-z})^{-2}、内側 1+e−z1+e^{-z} の微分が −e−z-e^{-z} なので

σ′(z)=−(1+e−z)−2⋅(−e−z)=e−z(1+e−z)2.\sigma'(z) = -(1+e^{-z})^{-2} \cdot (-e^{-z}) = \frac{e^{-z}}{(1+e^{-z})^{2}} .

他方、(2) の途中式より 1−σ(z)=e−z1+e−z1 - \sigma(z) = \dfrac{e^{-z}}{1+e^{-z}} なので

σ(z)(1−σ(z))=11+e−z⋅e−z1+e−z=e−z(1+e−z)2\sigma(z)\bigl(1-\sigma(z)\bigr) = \frac{1}{1+e^{-z}} \cdot \frac{e^{-z}}{1+e^{-z}} = \frac{e^{-z}}{(1+e^{-z})^{2}}

となり、両者は一致します。さらに (2) より 1−σ(z)=σ(−z)1 - \sigma(z) = \sigma(-z) なので σ′(z)=σ(z)σ(−z)\sigma'(z) = \sigma(z)\sigma(-z) です。(1) より σ(z)>0\sigma(z) > 0 かつ σ(−z)>0\sigma(-z) > 0 なので σ′(z)>0\sigma'(z) > 0 です。

(4) (3) より σ\sigma は狭義単調増加なので単射です。(1) より σ\sigma は連続で、値域は (0,1)(0,1) に含まれ、両端の極限が 00 と 11 なので、中間値の定理により (0,1)(0,1) のすべての値を取ります。よって σ:R→(0,1)\sigma : \mathbb{R} \to (0,1) は全単射です。逆関数は p=1/(1+e−z)p = 1/(1+e^{-z}) を zz について解けば求まります。両辺の逆数を取って 1+e−z=1/p1 + e^{-z} = 1/p、すなわち e−z=(1−p)/pe^{-z} = (1-p)/p。両辺の対数を取って −z=log⁡1−pp-z = \log\dfrac{1-p}{p}、したがって z=log⁡p1−pz = \log\dfrac{p}{1-p} です。

性質 (3) は本記事全体で最も使う式です。シグモイドの導関数がシグモイド自身の多項式で書けるという事実が、後で勾配の計算をきれいにします(定理 5.1)。

3.2. なぜこの関数なのか — ロジットとベイズの定理

Section titled “3.2. なぜこの関数なのか — ロジットとベイズの定理”

(0,1)(0,1) に値を取る単調増加な滑らかな関数はいくらでもあります。たとえば標準正規分布の累積分布関数 Φ\Phi でもよく、それを使ったモデルはプロビット回帰と呼ばれます。ではなぜシグモイドなのでしょうか。答えは 命題 3.2 の (4) にあります。

定義 3.3(オッズとロジット)↗

0<p<10 < p < 1 に対し、p1−p\dfrac{p}{1-p} を確率 pp のオッズ(odds)といい、その対数

logit⁡(p)=log⁡p1−p\operatorname{logit}(p) = \log \frac{p}{1-p}

を ロジット(logit)または対数オッズという。命題 3.2 (4) より logit⁡=σ−1\operatorname{logit} = \sigma^{-1} である。

オッズは「起こる場合の数と起こらない場合の数の比」です。競馬の「3 倍」やスポーツの「2 対 1」と同じ言葉づかいで、p=0.75p = 0.75 ならオッズは 33、すなわち「3 対 1」です。確率は [0,1][0,1] という有界区間に閉じ込められていますが、オッズは (0,∞)(0, \infty) を、その対数であるロジットは R\mathbb{R} 全体を動きます。確率を「線形に動かせる量」に変換するのがロジットの役割です。

したがって、μ=σ(wTx)\mu = \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}) と置くことは、両辺にロジットを施した

log⁡μ1−μ=wTx\log \frac{\mu}{1-\mu} = \boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}

と完全に同値です。つまりロジスティック回帰の仮定は「確率が線形」でも「確率がシグモイド形」でもなく、対数オッズが特徴の線形結合であるという一点に尽きます。シグモイドはその仮定を確率について解き直しただけのものです。

この仮定は、次の例が示すように、自然な状況で実際に成り立ちます。

例 3.4(2 つの正規分布からシグモイドが出てくる)

クラス y∈{0,1}y \in \{0,1\} の事前確率を π1=P(y=1)\pi_1 = P(y=1)、π0=1−π1\pi_0 = 1-\pi_1 とし、クラスごとの特徴の分布(クラス条件付き密度)を p(x∣y=k)p(\boldsymbol{x} \mid y=k) とします。ベイズの定理(定理 2.2)[確率論とベイズ統計] より

P(y=1∣x)=p(x∣y=1)π1p(x∣y=1)π1+p(x∣y=0)π0=11+exp⁡(−a),a=log⁡p(x∣y=1)π1p(x∣y=0)π0.P(y=1 \mid \boldsymbol{x}) = \frac{p(\boldsymbol{x}\mid y=1)\pi_1}{p(\boldsymbol{x}\mid y=1)\pi_1 + p(\boldsymbol{x}\mid y=0)\pi_0} = \frac{1}{1 + \exp(-a)}, \qquad a = \log \frac{p(\boldsymbol{x}\mid y=1)\pi_1}{p(\boldsymbol{x}\mid y=0)\pi_0}.

真ん中の変形は、分子分母を p(x∣y=1)π1p(\boldsymbol{x}\mid y=1)\pi_1 で割って p(x∣y=0)π0p(x∣y=1)π1=e−a\dfrac{p(\boldsymbol{x}\mid y=0)\pi_0}{p(\boldsymbol{x}\mid y=1)\pi_1} = e^{-a} を使っただけです。つまりシグモイドは何の仮定も置かずに現れます。aa が対数オッズそのものだからです。

残るのは「aa が x\boldsymbol{x} の 1 次式か」だけです。両クラスの分布が共通の共分散行列 Σ\Sigma(正則)を持つ正規分布 N(μ1,Σ)N(\boldsymbol{\mu}_1, \Sigma)、N(μ0,Σ)N(\boldsymbol{\mu}_0, \Sigma) のとき、正規化定数が約分して

a=log⁡π1π0−12(x−μ1)TΣ−1(x−μ1)+12(x−μ0)TΣ−1(x−μ0)=(μ1−μ0)TΣ−1x  −  12μ1TΣ−1μ1+12μ0TΣ−1μ0+log⁡π1π0\begin{aligned} a &= \log\frac{\pi_1}{\pi_0} - \tfrac12 (\boldsymbol{x}-\boldsymbol{\mu}_1)^{\mathsf{T}}\Sigma^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_1) + \tfrac12 (\boldsymbol{x}-\boldsymbol{\mu}_0)^{\mathsf{T}}\Sigma^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_0) \\[2pt] &= (\boldsymbol{\mu}_1 - \boldsymbol{\mu}_0)^{\mathsf{T}}\Sigma^{-1}\boldsymbol{x} \;-\; \tfrac12 \boldsymbol{\mu}_1^{\mathsf{T}}\Sigma^{-1}\boldsymbol{\mu}_1 + \tfrac12 \boldsymbol{\mu}_0^{\mathsf{T}}\Sigma^{-1}\boldsymbol{\mu}_0 + \log\frac{\pi_1}{\pi_0} \end{aligned}

となります。2 行目では 2 次の項 −12xTΣ−1x-\tfrac12\boldsymbol{x}^{\mathsf{T}}\Sigma^{-1}\boldsymbol{x} が両方の括弧から出て打ち消し合うことを使いました(共分散行列が共通でなければ消えません)。残ったのは x\boldsymbol{x} の 1 次式です。

1 次元で数値を入れてみます。μ0=0\mu_0 = 0、μ1=2\mu_1 = 2、分散 11、π1=π0=1/2\pi_1 = \pi_0 = 1/2 とすると

a=−12(x−2)2+12x2=2x−2,P(y=1∣x)=σ(2x−2).a = -\tfrac12 (x-2)^2 + \tfrac12 x^2 = 2x - 2, \qquad P(y=1\mid x) = \sigma(2x-2).

境界 P=1/2P = 1/2 は x=1x = 1、つまり 2 つの平均の中点です。ロジスティック回帰はこの aa の係数 (−2,2)(-2, 2) を、μk\boldsymbol{\mu}_k や Σ\Sigma を経由せずに直接推定するモデルだと読めます。

注意 3.5

例 3.4 は「正規分布を仮定するとロジスティック回帰になる」と言っていますが、逆は成り立ちません。対数オッズが線形になるクラス条件付き分布は正規分布以外にもたくさんあり(指数型分布族の多くがそうです)、ロジスティック回帰はそれら全部をまとめて含みます。p(x∣y)p(\boldsymbol{x}\mid y) を作らずに P(y∣x)P(y \mid \boldsymbol{x}) だけを直接モデル化するこの立場を識別モデルといいます。生成モデルとの比較は 確率論とベイズ統計の役割 で扱います。

3.3. ロジスティック回帰モデルと係数の読み方

Section titled “3.3. ロジスティック回帰モデルと係数の読み方”

定義 3.6(ロジスティック回帰モデル)↗

パラメータ w∈Rd\boldsymbol{w} \in \mathbb{R}^{d} に対し、特徴 x∈Rd\boldsymbol{x} \in \mathbb{R}^{d} を与えたときのラベル y∈{0,1}y \in \{0,1\} の条件付き分布を

P(y=1∣x;w)=σ(wTx),P(y=0∣x;w)=1−σ(wTx)P(y = 1 \mid \boldsymbol{x};\boldsymbol{w}) = \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}), \qquad P(y = 0 \mid \boldsymbol{x};\boldsymbol{w}) = 1 - \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x})

で定めるモデルをロジスティック回帰モデルという。z=wTxz = \boldsymbol{w}^{\mathsf{T}}\boldsymbol{x} をロジットまたはスコア、μ=σ(z)\mu = \sigma(z) を予測確率と呼ぶ。2 つの式はまとめて

P(y∣x;w)=μy(1−μ)1−y,μ=σ(wTx)P(y \mid \boldsymbol{x};\boldsymbol{w}) = \mu^{y}(1-\mu)^{1-y}, \qquad \mu = \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x})

と書ける(y=1y=1 を代入すれば μ\mu、y=0y=0 を代入すれば 1−μ1-\mu になる)。すなわち yy は成功確率 μ\mu のベルヌーイ分布に従う。

例 3.7(係数はオッズの倍率である)

勉強時間 tt から合格確率を予測するモデルが log⁡μ1−μ=−3+1.2 t\log\dfrac{\mu}{1-\mu} = -3 + 1.2\,t と推定されたとします。係数 1.21.2 はどう読めばよいでしょうか。

tt を 1 増やすと対数オッズが 1.21.2 増える、すなわちオッズが e1.2=3.32…e^{1.2} = 3.32\ldots 倍になる、というのが正確な読み方です。確認します。

  • t=2t = 2:z=−0.6z = -0.6、μ=σ(−0.6)=0.3543\mu = \sigma(-0.6) = 0.3543、オッズ =e−0.6=0.5488= e^{-0.6} = 0.5488。
  • t=3t = 3:z=0.6z = 0.6、μ=σ(0.6)=0.6457\mu = \sigma(0.6) = 0.6457、オッズ =e0.6=1.8221= e^{0.6} = 1.8221。オッズ比は 1.8221/0.5488=3.320=e1.21.8221/0.5488 = 3.320 = e^{1.2}。
  • t=5t = 5:z=3z = 3、μ=0.9526\mu = 0.9526、オッズ =e3=20.09= e^{3} = 20.09。
  • t=6t = 6:z=4.2z = 4.2、μ=0.9852\mu = 0.9852、オッズ =e4.2=66.69= e^{4.2} = 66.69。オッズ比はやはり 66.69/20.09=3.320=e1.266.69/20.09 = 3.320 = e^{1.2}。

オッズ比はどこでも一定ですが、確率の増え方は一定ではありません。 t:2→3t : 2 \to 3 では確率が 0.354→0.6460.354 \to 0.646(+0.29+0.29)と大きく動くのに対し、t:5→6t : 5 \to 6 では 0.953→0.9850.953 \to 0.985(+0.03+0.03)しか動きません。すでに確率が 11 に近いところでは、オッズを 3 倍にしても確率はほとんど増えないからです。「係数 1.21.2 は確率を 1.21.2 増やす」という読み方は誤りです。

4. 損失をどこから持ってくるか:最尤推定と交差エントロピー誤差

Section titled “4. 損失をどこから持ってくるか:最尤推定と交差エントロピー誤差”

定義 3.6 はデータの生成規則を確率で書いたモデルです。こうしたモデルのパラメータを決める標準的な原理が最尤推定、すなわち「手元のデータが最も起こりやすくなるパラメータを選ぶ」という方針です。

μi(w)=σ(wTxi)\mu_i(\boldsymbol{w}) = \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}_i) と書きます。§2 の条件付き独立性の仮定から、観測されたラベル列 y1,…,yny_1, \ldots, y_n の同時確率、すなわち尤度は積になります。

L(w)=∏i=1nP(yi∣xi;w)=∏i=1nμi yi(1−μi)1−yi.\mathcal{L}(\boldsymbol{w}) = \prod_{i=1}^{n} P(y_i \mid \boldsymbol{x}_i;\boldsymbol{w}) = \prod_{i=1}^{n} \mu_i^{\,y_i}(1-\mu_i)^{1-y_i}.

積のままでは扱いにくいので対数を取ります。log⁡\log は狭義単調増加なので、L\mathcal{L} を最大にする w\boldsymbol{w} と log⁡L\log\mathcal{L} を最大にする w\boldsymbol{w} は完全に一致します。さらに最適化の慣習に合わせて符号を反転させると、次の量が現れます。

定義 4.1(交差エントロピー誤差(負の対数尤度))↗

データ (xi,yi)i=1n(\boldsymbol{x}_i, y_i)_{i=1}^{n} と 定義 3.6 に対し、μi=σ(wTxi)\mu_i = \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}_i) として

L(w)=−∑i=1n[ yilog⁡μi+(1−yi)log⁡(1−μi) ]L(\boldsymbol{w}) = -\sum_{i=1}^{n} \Bigl[\, y_i \log \mu_i + (1-y_i)\log(1-\mu_i) \,\Bigr]

を交差エントロピー誤差、または負の対数尤度という。0<μi<10 < \mu_i < 1(命題 3.2 (1))なので対数は常に定義され、L(w)>0L(\boldsymbol{w}) > 0 である。

4.2. 交差エントロピーという名前

Section titled “4.2. 交差エントロピーという名前”

「交差エントロピー」という呼び名は情報理論から来ています。有限集合上の 2 つの確率分布 p,qp, q に対し H(p,q)=−∑kpklog⁡qkH(p,q) = -\sum_{k} p_k \log q_k を交差エントロピーといいます。定義 4.1 の第 ii 項は、ラベルが定める分布 p=(1−yi,  yi)p = (1-y_i,\; y_i)(yiy_i は 00 か 11 なので、これは一点に集中した分布です)とモデルの分布 q=(1−μi,  μi)q = (1-\mu_i,\; \mu_i) の交差エントロピーそのものです。

次の分解は、名前の由来を説明するための補足です。DKLD_{\mathrm{KL}}(KL ダイバージェンス)は 2 つの分布がどれだけずれているかを測る量で、H(p)H(p) は分布 pp 自身のエントロピーです。ここを読み飛ばしても、§4.3 以降はそのまま読めます。

さらに H(p,q)=H(p)+DKL(p ∥ q)H(p,q) = H(p) + D_{\mathrm{KL}}(p \,\|\, q) という分解があり、いまは pp が一点分布なのでそのエントロピーは H(p)=0H(p) = 0 です。したがって

L(w)=∑i=1nDKL( δyi ∥ Ber(μi) )L(\boldsymbol{w}) = \sum_{i=1}^{n} D_{\mathrm{KL}}\bigl(\,\delta_{y_i} \,\big\|\, \mathrm{Ber}(\mu_i)\,\bigr)

となります。交差エントロピー誤差を下げることは、モデルの予測分布を観測されたラベルの分布に近づけることと同じだ、というのが情報理論側からの読み方です。

命題 4.2(最尤推定と交差エントロピー最小化の同値性)✓

L\mathcal{L} を上の尤度、LL を 定義 4.1 の交差エントロピー誤差とする。任意の w∈Rd\boldsymbol{w} \in \mathbb{R}^{d} について L(w)=−log⁡L(w)L(\boldsymbol{w}) = -\log\mathcal{L}(\boldsymbol{w}) が成り立ち、したがって集合として

arg max⁡w∈RdL(w)=arg min⁡w∈RdL(w)\operatorname*{arg\,max}_{\boldsymbol{w}\in\mathbb{R}^{d}} \mathcal{L}(\boldsymbol{w}) = \operatorname*{arg\,min}_{\boldsymbol{w}\in\mathbb{R}^{d}} L(\boldsymbol{w})

である(両辺が空集合になることも含めて等号が成り立つ)。

証明(命題 4.2)

L(w)=∏iμiyi(1−μi)1−yi\mathcal{L}(\boldsymbol{w}) = \prod_i \mu_i^{y_i}(1-\mu_i)^{1-y_i} の各因子は 命題 3.2 (1) より狭義正なので、L(w)>0\mathcal{L}(\boldsymbol{w}) > 0 であり対数が取れます。積の対数は対数の和なので

log⁡L(w)=∑i=1n[ yilog⁡μi+(1−yi)log⁡(1−μi) ]=−L(w).\log \mathcal{L}(\boldsymbol{w}) = \sum_{i=1}^{n}\Bigl[\, y_i \log\mu_i + (1-y_i)\log(1-\mu_i) \,\Bigr] = -L(\boldsymbol{w}).

t↦−tt \mapsto -t は R\mathbb{R} 上の狭義単調減少な全単射なので、L(w)≥L(w′)\mathcal{L}(\boldsymbol{w}) \ge \mathcal{L}(\boldsymbol{w}') と L(w)≤L(w′)L(\boldsymbol{w}) \le L(\boldsymbol{w}') は同値です(log⁡\log の単調増加性と合わせて)。よって L\mathcal{L} の最大点全体と LL の最小点全体は集合として一致します。

つまり 損失関数は設計するものではなく、確率モデルから導かれるものです。§1.2 で二乗誤差がうまくいかなかったのは、二乗誤差が「出力が正規分布に従う」という別のモデルの負の対数尤度だったからだ、と言い換えることもできます(ガウス雑音の下での最尤推定(命題 3.3)[確率論とベイズ統計])。0/10/1 のラベルは正規分布に従いません。

例 4.3(切片だけのモデルは陽に解ける)

特徴を使わず切片だけを持つモデル、すなわち d=1d = 1 で xi=(1)\boldsymbol{x}_i = (1) の場合を考えます。μi=σ(b)\mu_i = \sigma(b) は ii によらない定数です。nn 個のうち kk 個が yi=1y_i = 1 だとすると

L(b)=−[ klog⁡σ(b)+(n−k)log⁡(1−σ(b)) ].L(b) = -\bigl[\, k \log\sigma(b) + (n-k)\log(1-\sigma(b)) \,\bigr].

微分します。命題 3.2 (3) より ddblog⁡σ(b)=σ′(b)σ(b)=1−σ(b)\dfrac{d}{db}\log\sigma(b) = \dfrac{\sigma'(b)}{\sigma(b)} = 1-\sigma(b) であり、同じく ddblog⁡(1−σ(b))=−σ′(b)1−σ(b)=−σ(b)\dfrac{d}{db}\log(1-\sigma(b)) = \dfrac{-\sigma'(b)}{1-\sigma(b)} = -\sigma(b) です。よって

L′(b)=−[ k(1−σ(b))−(n−k)σ(b) ]=n σ(b)−k.L'(b) = -\bigl[\, k(1-\sigma(b)) - (n-k)\sigma(b) \,\bigr] = n\,\sigma(b) - k .

L′(b)=0L'(b) = 0 は σ(b)=k/n\sigma(b) = k/n と同値です。0<k<n0 < k < n なら k/n∈(0,1)k/n \in (0,1) なので 命題 3.2 (4) により解が一意に存在し

b^=logit⁡ ⁣(kn)=log⁡kn−k.\hat{b} = \operatorname{logit}\!\left(\frac{k}{n}\right) = \log\frac{k}{n-k}.

たとえば n=100n = 100、k=30k = 30 なら b^=log⁡(30/70)=log⁡(3/7)=−0.8473\hat{b} = \log(30/70) = \log(3/7) = -0.8473 で、予測確率は σ(−0.8473)=0.30\sigma(-0.8473) = 0.30、すなわち経験的な正例率そのものです。最尤推定が「素直な答え」を返していることが確認できます。

一方 k=0k = 0 または k=nk = n のときは k/nk/n が (0,1)(0,1) の外にあるので L′(b)=0L'(b) = 0 に解はありません。k=nk = n なら L(b)=nlog⁡(1+e−b)L(b) = n\log(1+e^{-b}) は b→+∞b \to +\infty で 00 に近づきますが、決して 00 になりません。最尤推定量が存在しないのです。これは 定理 6.3 の最も簡単な場合です。

5. 微分が要る:勾配とその意味

Section titled “5. 微分が要る:勾配とその意味”

例 4.3 ではパラメータが 1 個だったので微分して解けました。一般の dd ではどうなるでしょうか。まず勾配を計算します。

定理 5.1(交差エントロピー誤差の勾配)✓

x1,…,xn∈Rd\boldsymbol{x}_1,\ldots,\boldsymbol{x}_n \in \mathbb{R}^{d}、y1,…,yn∈{0,1}y_1,\ldots,y_n \in \{0,1\} を任意に固定し、LL を 定義 4.1 の交差エントロピー誤差、μi(w)=σ(wTxi)\mu_i(\boldsymbol{w}) = \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}_i) とする。このとき LL は Rd\mathbb{R}^{d} 上 C∞C^{\infty} 級であり、

∇L(w)=∑i=1n(μi(w)−yi) xi=XT(μ(w)−y)\nabla L(\boldsymbol{w}) = \sum_{i=1}^{n} \bigl(\mu_i(\boldsymbol{w}) - y_i\bigr)\,\boldsymbol{x}_i = X^{\mathsf{T}}\bigl(\boldsymbol{\mu}(\boldsymbol{w}) - \boldsymbol{y}\bigr)

が成り立つ。ここで XX は第 ii 行が xiT\boldsymbol{x}_i^{\mathsf{T}} の n×dn\times d 計画行列、μ(w)=(μ1,…,μn)T\boldsymbol{\mu}(\boldsymbol{w}) = (\mu_1,\ldots,\mu_n)^{\mathsf{T}} である。

証明(定理 5.1)

zi=wTxi=∑j=1dwjxijz_i = \boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}_i = \sum_{j=1}^{d} w_j x_{ij}、μi=σ(zi)\mu_i = \sigma(z_i) と置きます。ziz_i は w\boldsymbol{w} の 1 次式なので C∞C^{\infty} 級、σ\sigma も C∞C^{\infty} 級(命題 3.2 (1))、log⁡\log は (0,∞)(0,\infty) 上 C∞C^{\infty} 級で μi,1−μi∈(0,1)\mu_i, 1-\mu_i \in (0,1) なので、合成と有限和として LL は C∞C^{\infty} 級です。

第 ii 項を ℓi=−[yilog⁡μi+(1−yi)log⁡(1−μi)]\ell_i = -\bigl[y_i\log\mu_i + (1-y_i)\log(1-\mu_i)\bigr] と書き、連鎖律を μi→zi→wj\mu_i \to z_i \to w_j の順に適用します。

第 1 段:μi\mu_i についての微分。

∂ℓi∂μi=−yiμi+1−yi1−μi=−yi(1−μi)+μi(1−yi)μi(1−μi)=−yi+yiμi+μi−μiyiμi(1−μi)=μi−yiμi(1−μi).\frac{\partial \ell_i}{\partial \mu_i} = -\frac{y_i}{\mu_i} + \frac{1-y_i}{1-\mu_i} = \frac{-y_i(1-\mu_i) + \mu_i(1-y_i)}{\mu_i(1-\mu_i)} = \frac{-y_i + y_i\mu_i + \mu_i - \mu_i y_i}{\mu_i(1-\mu_i)} = \frac{\mu_i - y_i}{\mu_i(1-\mu_i)} .

途中で分母を μi(1−μi)\mu_i(1-\mu_i) に通分し、分子の yiμiy_i\mu_i と −μiyi-\mu_i y_i が打ち消し合うことを使いました。

第 2 段:ziz_i についての微分。 命題 3.2 (3) より dμidzi=σ′(zi)=μi(1−μi)\dfrac{d\mu_i}{dz_i} = \sigma'(z_i) = \mu_i(1-\mu_i)。

第 3 段:wjw_j についての微分。 zi=∑jwjxijz_i = \sum_{j} w_j x_{ij} より ∂zi∂wj=xij\dfrac{\partial z_i}{\partial w_j} = x_{ij}。

3 つを掛け合わせると、第 1 段の分母 μi(1−μi)\mu_i(1-\mu_i) と第 2 段の因子 μi(1−μi)\mu_i(1-\mu_i) が約分して

∂ℓi∂wj=μi−yiμi(1−μi)⋅μi(1−μi)⋅xij=(μi−yi) xij.\frac{\partial \ell_i}{\partial w_j} = \frac{\mu_i - y_i}{\mu_i(1-\mu_i)} \cdot \mu_i(1-\mu_i) \cdot x_{ij} = (\mu_i - y_i)\,x_{ij}.

約分が正当なのは μi(1−μi)≠0\mu_i(1-\mu_i) \ne 0 だからで、これは 命題 3.2 (1) の 0<μi<10 < \mu_i < 1 から従います。ii について和を取り、j=1,…,dj = 1,\ldots,d を並べれば

∇L(w)=∑i=1n(μi−yi)xi.\nabla L(\boldsymbol{w}) = \sum_{i=1}^{n}(\mu_i - y_i)\boldsymbol{x}_i .

最後に、xi\boldsymbol{x}_i が XX の第 ii 行であることから ∑i(μi−yi)xi=XT(μ−y)\sum_i (\mu_i - y_i)\boldsymbol{x}_i = X^{\mathsf{T}}(\boldsymbol{\mu}-\boldsymbol{y}) です(XTX^{\mathsf{T}} の列が xi\boldsymbol{x}_i なので、XTX^{\mathsf{T}} とベクトルの積は列の線形結合になります)。

この公式は形が線形回帰と瓜二つです。誤差を 12∥y−Xw∥2\frac12\lVert\boldsymbol{y}-X\boldsymbol{w}\rVert^2 と定めた最小二乗法の勾配は XT(Xw−y)X^{\mathsf{T}}(X\boldsymbol{w} - \boldsymbol{y}) です(係数 12\frac12 を付けない ∥y−Xw∥2\lVert\boldsymbol{y}-X\boldsymbol{w}\rVert^2 の勾配は 22 倍)。違いは予測が XwX\boldsymbol{w} から σ(Xw)\sigma(X\boldsymbol{w}) に変わっただけです。「残差(予測 −- 実測)を特徴で重み付けして足す」という構造は共通しています。

系 5.2(切片を含むモデルの平均較正)✓

モデルが切片を含む、すなわちある j0j_0 についてすべての ii で xij0=1x_{i j_0} = 1 であるとする。このとき ∇L(w∗)=0\nabla L(\boldsymbol{w}^{*}) = \boldsymbol{0} を満たす任意の w∗\boldsymbol{w}^{*} について

1n∑i=1nμi(w∗)=1n∑i=1nyi\frac{1}{n}\sum_{i=1}^{n} \mu_i(\boldsymbol{w}^{*}) = \frac{1}{n}\sum_{i=1}^{n} y_i

が成り立つ。すなわち予測確率の平均は、データ中の正例の割合に一致する。

証明(系 5.2)

定理 5.1 より ∇L\nabla L の第 j0j_0 成分は ∑i(μi−yi)xij0\sum_{i}(\mu_i - y_i)x_{ij_0} です。仮定より xij0=1x_{ij_0} = 1 なので、これは ∑i(μi−yi)\sum_i (\mu_i - y_i) に等しくなります。∇L(w∗)=0\nabla L(\boldsymbol{w}^{*}) = \boldsymbol{0} よりこの成分も 00、すなわち ∑iμi=∑iyi\sum_i \mu_i = \sum_i y_i です。両辺を nn で割れば主張を得ます。

系 5.2 は、最尤推定されたロジスティック回帰が「全体としては当たっている」ことを保証します。100 人について平均 0.30.3 の確率を出したなら、実際に 30 人が正例だったということです。例 4.3 はこの系の d=1d=1 の場合にほかなりません。

5.2. きれいに約分することの意味

Section titled “5.2. きれいに約分することの意味”

定理 5.1 の証明で起きた約分は、偶然ではありません。シグモイドと交差エントロピーは、そう組み合わせるために選ばれた対です。二乗誤差と組み合わせるとどうなるかを見れば、その意味がはっきりします。

例 5.3(二乗誤差だと勾配が消え、しかも凸でなくなる)

同じモデル μi=σ(wTxi)\mu_i = \sigma(\boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}_i) に二乗誤差 E(w)=12∑i(μi−yi)2E(\boldsymbol{w}) = \frac12\sum_i (\mu_i - y_i)^2 を使うと、定理 5.1 の証明の第 1 段だけが変わって ∂E/∂μi=μi−yi\partial E/\partial\mu_i = \mu_i - y_i となり、第 2 段の μi(1−μi)\mu_i(1-\mu_i) は約分されずに残ります。

∂E∂wj=∑i=1n(μi−yi) μi(1−μi) xij.\frac{\partial E}{\partial w_j} = \sum_{i=1}^{n} (\mu_i - y_i)\,\mu_i(1-\mu_i)\,x_{ij}.

余分な因子 μi(1−μi)\mu_i(1-\mu_i) が何をするかを、d=1d = 1、x=1x = 1、y=1y = 1、w=−10w = -10 という「自信を持って間違えている」1 点で見ます。μ=σ(−10)=4.5398×10−5\mu = \sigma(-10) = 4.5398\times 10^{-5} なので

  • 交差エントロピーの勾配:μ−y=−0.99995\mu - y = -0.99995。
  • 二乗誤差の勾配:(μ−y)μ(1−μ)=−4.5394×10−5(\mu-y)\mu(1-\mu) = -4.5394\times 10^{-5}。

その比は約 2202822028 倍です。最も大きく間違えている点で、二乗誤差はほとんど何も学習しません。 シグモイドが飽和して σ′≈0\sigma' \approx 0 になるからで、これが「勾配消失」と呼ばれる現象の最も単純な形です。

さらに悪いことに、この EE は凸でさえありません。同じ 1 点の設定で s=σ(−w)=1−μs = \sigma(-w) = 1-\mu と置くと E(w)=12s2E(w) = \frac12 s^2 であり、dsdw=−σ′(−w)=−s(1−s)\dfrac{ds}{dw} = -\sigma'(-w) = -s(1-s)(命題 3.2 (2),(3))を使って

E′(w)=s⋅dsdw=−s2(1−s),E′′(w)=(−2s+3s2)⋅dsdw=s2(1−s)(2−3s).E'(w) = s\cdot\frac{ds}{dw} = -s^{2}(1-s), \qquad E''(w) = \bigl(-2s + 3s^{2}\bigr)\cdot\frac{ds}{dw} = s^{2}(1-s)(2-3s).

s∈(0,1)s \in (0,1) なので E′′E'' の符号は 2−3s2-3s の符号、すなわち s<2/3s < 2/3 かどうかで決まります。s=1/2s = 1/2(w=0w=0)では E′′=0.0625>0E'' = 0.0625 > 0 ですが、s=0.9s = 0.9(w=−log⁡9=−2.197w = -\log 9 = -2.197)では E′′=−0.0567<0E'' = -0.0567 < 0 です。変曲点 w=−log⁡2w = -\log 2 をまたいで凸性が入れ替わります。

同じ 1 点で交差エントロピーは L(w)=−log⁡σ(w)=log⁡(1+e−w)L(w) = -\log\sigma(w) = \log(1+e^{-w}) であり、L′(w)=−(1−σ(w))L'(w) = -(1-\sigma(w))、L′′(w)=σ(w)(1−σ(w))>0L''(w) = \sigma(w)(1-\sigma(w)) > 0 なので狭義凸です。しかも w→−∞w \to -\infty で L′(w)→−1L'(w) \to -1 と、勾配が消えません。

-6-14-6-14交差エントロピー L(w)二乗誤差 E(w)ww変曲点 w = -log 2
同じ 1 点 (x = 1, y = 1) での損失の比較。左は交差エントロピー L(w) = log(1 + e^(-w))、右は二乗誤差 E(w) = (1/2)σ(-w)^2。w が負(間違っている側)で、左は傾きが一定に近いまま増え、右は平らになる。右の点は変曲点 w = -log 2 で、その左側は凸でない。縦軸の目盛りは左右で異なる。

勾配が求まったので、最尤推定量は停留条件

XT(σ(Xw)−y)=0X^{\mathsf{T}}\bigl(\sigma(X\boldsymbol{w}) - \boldsymbol{y}\bigr) = \boldsymbol{0}

を満たすはずです(σ\sigma は成分ごとに作用させます)。ここが線形回帰との決定的な分かれ目です。

注意 5.4

線形回帰の停留条件は正規方程式 XTXw=XTyX^{\mathsf{T}}X\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y}(正規方程式(定理 3.3)[線形回帰と最小二乗法])で、これは w\boldsymbol{w} について連立一次方程式です。XTXX^{\mathsf{T}}X が正則なら w=(XTX)−1XTy\boldsymbol{w} = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} と、有限回の四則演算で書けます。

一方ロジスティック回帰の停留条件は、指数関数と多項式が混ざった超越方程式です。実際 d=1d=1、xi=(ti)\boldsymbol{x}_i = (t_i) の場合ですら

∑i=1nti1+e−wti=∑i=1nyiti\sum_{i=1}^{n} \frac{t_i}{1+e^{-w t_i}} = \sum_{i=1}^{n} y_i t_i

という形で、左辺は ww の初等関数ですが、これを ww について初等関数で解く一般公式は知られていません(すべての tit_i が等しく 例 4.3 に帰着するような特殊な場合を除きます)。「初等関数で書けないこと」自体の厳密な証明は微分ガロア理論の話題になるのでここでは立ち入りませんが、実務上の帰結は明快です。式変形で解を求めるのを諦め、数値的に探すしかありません。

そして数値的に探すとき、いま立っている点 w\boldsymbol{w} から「どちらへ動けば LL が減るか」を教えてくれる唯一の局所情報が、勾配 ∇L(w)\nabla L(\boldsymbol{w}) です。ここで初めて微分が計算道具ではなく探索の羅針盤になります。この探索を実際に回す方法が 勾配降下法(定義 4.1[勾配降下法])で、多層のモデルに対して勾配を効率よく計算する仕組みが ニューラルネットワークと逆伝播 です。

例 5.5(勾配を 1 ステップ手で回す)

§1.2 のデータ(t=1,2,3,4t = 1,2,3,4、y=0,0,1,1y = 0,0,1,1)に切片付きで当てはめます。xi=(1,ti)T\boldsymbol{x}_i = (1, t_i)^{\mathsf{T}}、w=(b,a)T\boldsymbol{w} = (b, a)^{\mathsf{T}} です。

初期点 w=(0,0)\boldsymbol{w} = (0,0)。 zi=0z_i = 0 なので μi=σ(0)=0.5\mu_i = \sigma(0) = 0.5(命題 3.2 (2))。損失は

L(0)=−∑i=14log⁡0.5=4log⁡2=2.7726.L(\boldsymbol{0}) = -\sum_{i=1}^{4}\log 0.5 = 4\log 2 = 2.7726 .

残差は μ−y=(0.5, 0.5, −0.5, −0.5)\boldsymbol{\mu}-\boldsymbol{y} = (0.5,\, 0.5,\, -0.5,\, -0.5) なので、定理 5.1 より

∇L(0)=(0.5+0.5−0.5−0.50.5⋅1+0.5⋅2−0.5⋅3−0.5⋅4)=(0−2).\nabla L(\boldsymbol{0}) = \begin{pmatrix} 0.5+0.5-0.5-0.5 \\ 0.5\cdot 1 + 0.5\cdot 2 - 0.5\cdot 3 - 0.5\cdot 4\end{pmatrix} = \begin{pmatrix} 0 \\ -2 \end{pmatrix}.

切片方向の成分が 00 なのは 系 5.2 の通りで、μˉ=0.5=yˉ\bar{\mu} = 0.5 = \bar{y} だからです。傾き方向は負なので、aa を増やせば損失が減ります。

1 歩進める。 学習率 η=0.1\eta = 0.1 で w←w−η∇L(w)=(0, 0.2)\boldsymbol{w} \leftarrow \boldsymbol{w} - \eta\nabla L(\boldsymbol{w}) = (0,\, 0.2) とします。zi=0.2,0.4,0.6,0.8z_i = 0.2, 0.4, 0.6, 0.8、μi=0.5498,0.5987,0.6457,0.6900\mu_i = 0.5498, 0.5987, 0.6457, 0.6900 となり

L=−[log⁡0.4502+log⁡0.4013+log⁡0.6457+log⁡0.6900]=0.7981+0.9130+0.4375+0.3711=2.5197.L = -\bigl[\log 0.4502 + \log 0.4013 + \log 0.6457 + \log 0.6900\bigr] = 0.7981+0.9130+0.4375+0.3711 = 2.5197 .

確かに 2.77262.7726 から減りました。新しい勾配は μ−y=(0.5498, 0.5987, −0.3543, −0.3100)\boldsymbol{\mu}-\boldsymbol{y} = (0.5498,\,0.5987,\,-0.3543,\,-0.3100) から

∇L=(0.5498+0.5987−0.3543−0.31000.5498+1.1974−1.0630−1.2401)=(0.4842−0.5559)\nabla L = \begin{pmatrix} 0.5498+0.5987-0.3543-0.3100 \\ 0.5498+1.1974-1.0630-1.2401 \end{pmatrix} = \begin{pmatrix} 0.4842 \\ -0.5559 \end{pmatrix}

です。今度は切片成分が正になりました。傾きだけを上げたせいで全体の予測が押し上げられ、平均較正が崩れたためです。次の歩は切片を下げつつ傾きを上げる方向に進みます。

上の計算を素直にコードにすると次のようになります。§4.2 の注意に従い、損失は log⁡(1+ez)−yz\log(1+e^{z}) - yz の形にまとめ、さらに log⁡(1+ez)=max⁡(z,0)+log⁡(1+e−∣z∣)\log(1+e^{z}) = \max(z,0)+\log(1+e^{-|z|}) と書き換えて桁溢れを避けています。

import numpy as np
def softplus(z): # log(1 + exp(z)) を安全に計算
return np.maximum(z, 0.0) + np.log1p(np.exp(-np.abs(z)))
def loss(w, X, y):
z = X @ w
return float(np.sum(softplus(z) - y * z))
def grad(w, X, y): # 勾配の公式そのもの
mu = 1.0 / (1.0 + np.exp(-(X @ w)))
return X.T @ (mu - y)
X = np.array([[1.0, 1.0], [1.0, 2.0], [1.0, 3.0], [1.0, 4.0]])
y = np.array([0.0, 0.0, 1.0, 1.0])
w = np.zeros(2)
print(loss(w, X, y), grad(w, X, y)) # 2.772588722239781 [ 0. -2.]
for _ in range(3):
w = w - 0.1 * grad(w, X, y)
print(w, loss(w, X, y))

出力される損失は 2.7726→2.5197→2.4706→2.43052.7726 \to 2.5197 \to 2.4706 \to 2.4305 と単調に減っていきます。

6. 凸性:探索がうまくいく理由と、いかない場合

Section titled “6. 凸性:探索がうまくいく理由と、いかない場合”

数値的に探すと決めたなら、次に確かめるべきは「探して見つかるのか」です。一般の関数では、勾配が 00 になる点が局所最小・局所最大・鞍点のどれかは分かりません。しかし交差エントロピー誤差にはよい性質があります。

次の定理のねらいは、「勾配が 00 になった点で止まってよい」と言える根拠を作ることです。方針は 2 段です。まずヘッセ行列を具体的に計算して、どんなベクトル v\boldsymbol{v} に対しても vT∇2L v\boldsymbol{v}^{\mathsf{T}}\nabla^2 L\,\boldsymbol{v} が 00 以上になること(半正定値)を確かめます。次に、2 点 w0,w1\boldsymbol{w}_0, \boldsymbol{w}_1 を結ぶ直線に沿って LL を 1 変数関数 g(t)g(t) として眺めます。このとき gg の 2 階導関数がちょうど hT∇2L h\boldsymbol{h}^{\mathsf{T}}\nabla^2 L\,\boldsymbol{h} になるので、1 変数の「2 階導関数が非負なら凸」に帰着できます。

定理 6.1(交差エントロピー誤差の凸性)✓

定理 5.1 と同じ設定のもとで、S(w)=diag⁡(μ1(1−μ1),…,μn(1−μn))S(\boldsymbol{w}) = \operatorname{diag}\bigl(\mu_1(1-\mu_1), \ldots, \mu_n(1-\mu_n)\bigr) と置くと

∇2L(w)=∑i=1nμi(1−μi) xixiT=XTS(w)X\nabla^{2} L(\boldsymbol{w}) = \sum_{i=1}^{n} \mu_i(1-\mu_i)\,\boldsymbol{x}_i\boldsymbol{x}_i^{\mathsf{T}} = X^{\mathsf{T}}S(\boldsymbol{w})X

が成り立つ。この行列はすべての w\boldsymbol{w} で半正定値であり、したがって LL は Rd\mathbb{R}^{d} 上の凸関数である。さらに rank⁡X=d\operatorname{rank} X = d(XX の列が線形独立)ならば ∇2L(w)≻O\nabla^{2}L(\boldsymbol{w}) \succ O がすべての w\boldsymbol{w} で成り立ち、LL は狭義凸である。

証明(定理 6.1)

ヘッセ行列の計算。 定理 5.1 より ∂L∂wj=∑i(μi−yi)xij\dfrac{\partial L}{\partial w_j} = \sum_i (\mu_i - y_i)x_{ij} です。yiy_i は定数なので、これをさらに wkw_k で微分すると μi\mu_i だけが効いて

∂2L∂wj∂wk=∑i=1n∂μi∂wk xij=∑i=1nσ′(zi) ∂zi∂wk xij=∑i=1nμi(1−μi) xikxij\frac{\partial^{2} L}{\partial w_j \partial w_k} = \sum_{i=1}^{n} \frac{\partial \mu_i}{\partial w_k}\, x_{ij} = \sum_{i=1}^{n} \sigma'(z_i)\,\frac{\partial z_i}{\partial w_k}\, x_{ij} = \sum_{i=1}^{n} \mu_i(1-\mu_i)\, x_{ik} x_{ij}

となります。2 番目の等号で連鎖律、3 番目で 命題 3.2 (3) と ∂zi/∂wk=xik\partial z_i/\partial w_k = x_{ik} を使いました。xijxikx_{ij}x_{ik} は行列 xixiT\boldsymbol{x}_i\boldsymbol{x}_i^{\mathsf{T}} の (j,k)(j,k) 成分なので、行列としてまとめると ∇2L=∑iμi(1−μi)xixiT\nabla^2 L = \sum_i \mu_i(1-\mu_i)\boldsymbol{x}_i\boldsymbol{x}_i^{\mathsf{T}} です。XX の第 ii 行が xiT\boldsymbol{x}_i^{\mathsf{T}} であることから、これは XTSXX^{\mathsf{T}}S X に等しくなります。

半正定値性。 任意の v∈Rd\boldsymbol{v}\in\mathbb{R}^{d} について

vT∇2L(w)v=∑i=1nμi(1−μi) vTxixiTv=∑i=1nμi(1−μi) (xiTv)2  ≥  0\boldsymbol{v}^{\mathsf{T}}\nabla^{2}L(\boldsymbol{w})\boldsymbol{v} = \sum_{i=1}^{n}\mu_i(1-\mu_i)\,\boldsymbol{v}^{\mathsf{T}}\boldsymbol{x}_i\boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v} = \sum_{i=1}^{n}\mu_i(1-\mu_i)\,(\boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v})^{2} \;\ge\; 0

です。各項が非負なのは、命題 3.2 (1) より 0<μi<10 < \mu_i < 1 すなわち μi(1−μi)>0\mu_i(1-\mu_i) > 0 であり、(xiTv)2≥0(\boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v})^2 \ge 0 だからです。

凸性。 w0,w1∈Rd\boldsymbol{w}_0, \boldsymbol{w}_1 \in \mathbb{R}^{d} を任意に取り、h=w1−w0\boldsymbol{h} = \boldsymbol{w}_1 - \boldsymbol{w}_0、g(t)=L(w0+th)g(t) = L(\boldsymbol{w}_0 + t\boldsymbol{h}) と置きます。LL は C∞C^{\infty} 級(定理 5.1)なので gg は R\mathbb{R} 上 C2C^{2} 級で、連鎖律より g′′(t)=hT∇2L(w0+th)h≥0g''(t) = \boldsymbol{h}^{\mathsf{T}}\nabla^{2}L(\boldsymbol{w}_0+t\boldsymbol{h})\boldsymbol{h} \ge 0 です。1 変数関数の 2 階導関数が非負なら凸なので gg は [0,1][0,1] 上凸で、g(t)≤(1−t)g(0)+t g(1)g(t) \le (1-t)g(0) + t\,g(1)、すなわち

L((1−t)w0+tw1)≤(1−t)L(w0)+t L(w1)(0≤t≤1)L\bigl((1-t)\boldsymbol{w}_0 + t\boldsymbol{w}_1\bigr) \le (1-t)L(\boldsymbol{w}_0) + t\,L(\boldsymbol{w}_1) \qquad (0\le t\le 1)

が成り立ちます。w0,w1\boldsymbol{w}_0,\boldsymbol{w}_1 は任意だったので LL は凸です。

狭義凸性。 rank⁡X=d\operatorname{rank}X = d と仮定し、v≠0\boldsymbol{v}\ne\boldsymbol{0} とします。上の等式で vT∇2Lv=0\boldsymbol{v}^{\mathsf{T}}\nabla^{2}L\boldsymbol{v} = 0 が起きるとすると、すべての項が非負なので各項が 00、つまり μi(1−μi)(xiTv)2=0\mu_i(1-\mu_i)(\boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v})^2 = 0 です。μi(1−μi)>0\mu_i(1-\mu_i) > 0 なので xiTv=0\boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v} = 0 がすべての ii で成り立ち、これは Xv=0X\boldsymbol{v} = \boldsymbol{0} を意味します。rank⁡X=d\operatorname{rank}X = d より XX の核は {0}\{\boldsymbol{0}\} なので v=0\boldsymbol{v} = \boldsymbol{0} となり矛盾します。よって v≠0\boldsymbol{v}\ne\boldsymbol{0} ならば vT∇2Lv>0\boldsymbol{v}^{\mathsf{T}}\nabla^{2}L\boldsymbol{v} > 0、すなわち ∇2L≻O\nabla^2 L \succ O です。このとき上の gg について g′′>0g'' > 0 となり、gg は狭義凸、したがって LL も狭義凸です。

系 6.2(停留点は大域最小点)✓

定理 6.1 の設定のもとで、w∗∈Rd\boldsymbol{w}^{*}\in\mathbb{R}^{d} が ∇L(w∗)=0\nabla L(\boldsymbol{w}^{*}) = \boldsymbol{0} を満たすならば、w∗\boldsymbol{w}^{*} は LL の大域最小点である。逆に大域最小点は停留点である。

証明(系 6.2)

任意の w∈Rd\boldsymbol{w}\in\mathbb{R}^{d} を取り、h=w−w∗\boldsymbol{h} = \boldsymbol{w}-\boldsymbol{w}^{*}、g(t)=L(w∗+th)g(t) = L(\boldsymbol{w}^{*}+t\boldsymbol{h}) と置きます。gg は C2C^{2} 級なので、テイラーの定理(1 変数、ラグランジュ剰余)より、ある θ∈(0,1)\theta\in(0,1) が存在して

g(1)=g(0)+g′(0)+12g′′(θ).g(1) = g(0) + g'(0) + \tfrac12 g''(\theta).

ここで g(1)=L(w)g(1) = L(\boldsymbol{w})、g(0)=L(w∗)g(0) = L(\boldsymbol{w}^{*})、g′(0)=∇L(w∗)Th=0g'(0) = \nabla L(\boldsymbol{w}^{*})^{\mathsf{T}}\boldsymbol{h} = 0(仮定)、g′′(θ)=hT∇2L(w∗+θh)h≥0g''(\theta) = \boldsymbol{h}^{\mathsf{T}}\nabla^{2}L(\boldsymbol{w}^{*}+\theta\boldsymbol{h})\boldsymbol{h} \ge 0(定理 6.1 の半正定値性)です。したがって L(w)≥L(w∗)L(\boldsymbol{w}) \ge L(\boldsymbol{w}^{*}) が任意の w\boldsymbol{w} について成り立ちます。逆向きは、LL が微分可能なので大域最小点で勾配が消える(フェルマーの定理)ことから従います。テイラーの定理については 平均値の定理とテイラーの定理 の 定理 5.3[平均値の定理とテイラーの定理] を参照してください。

これが、勾配だけを頼りに探索してよい理由です。局所最小に捕まる心配がなく、勾配が消えた場所が答えです。深層学習の損失関数は一般に凸ではないので、この保証はロジスティック回帰の大きな利点です。

6.2. 線形分離可能なとき最尤推定量は存在しない

Section titled “6.2. 線形分離可能なとき最尤推定量は存在しない”

凸性は「見つかれば大域最適」を保証しますが、「見つかる」ことは保証しません。実際、次のよくある状況で最小点は存在しません。

直感的には、2 つのクラスを 1 本の境界で分けられるなら、重み w\boldsymbol{w} をその分け方の向きに沿って大きくするほど、すべての点の予測確率が正しい側へ 00 か 11 に寄っていき、損失はいくらでも小さくなります。それでも損失はちょうど 00 にはならないので、最小点は存在しません。証明の (a)(b)(c) がここまでの内容にあたります。(d) は「損失が 00 に近づく点列は、有界なら収束する部分列を取れる(ボルツァーノ・ワイエルシュトラスの定理)が、その極限で損失が 00 になってしまい (a) に反する。だから有界ではない」という背理法です。

定理 6.3(線形分離可能なら最尤推定量は存在しない)✓

データ (xi,yi)i=1n(\boldsymbol{x}_i, y_i)_{i=1}^{n}(n≥1n \ge 1)が狭義に線形分離可能であるとする。すなわち、あるベクトル v∈Rd\boldsymbol{v}\in\mathbb{R}^{d} が存在して

yi=1  ⟹  xiTv>0,yi=0  ⟹  xiTv<0y_i = 1 \implies \boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v} > 0, \qquad y_i = 0 \implies \boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v} < 0

がすべての ii で成り立つとする。このとき 定義 4.1 の LL について

inf⁡w∈RdL(w)=0\inf_{\boldsymbol{w}\in\mathbb{R}^{d}} L(\boldsymbol{w}) = 0

であるが、この下限は達成されない。さらに L(wk)→0L(\boldsymbol{w}_k)\to 0 を満たす任意の点列 (wk)(\boldsymbol{w}_k) は ∥wk∥→∞\|\boldsymbol{w}_k\| \to \infty を満たす。

証明(定理 6.3)

(a) L>0L > 0。 命題 3.2 (1) より 0<μi<10 < \mu_i < 1 なので、yi=1y_i = 1 の項 −log⁡μi-\log\mu_i は μi<1\mu_i < 1 より狭義正、yi=0y_i = 0 の項 −log⁡(1−μi)-\log(1-\mu_i) は 1−μi<11-\mu_i < 1 より狭義正です。n≥1n \ge 1 個の狭義正の数の和なので L(w)>0L(\boldsymbol{w}) > 0 がすべての w\boldsymbol{w} で成り立ちます。

(b) L(tv)→0L(t\boldsymbol{v})\to 0。 t>0t > 0 とし、ci=xiTvc_i = \boldsymbol{x}_i^{\mathsf{T}}\boldsymbol{v} と置きます。w=tv\boldsymbol{w} = t\boldsymbol{v} のとき zi=tciz_i = tc_i です。yi=1y_i = 1 の項は 定義 3.1 より log⁡σ(z)=−log⁡(1+e−z)\log\sigma(z) = -\log(1+e^{-z}) なので

−log⁡σ(tci)=log⁡(1+e−tci)→  t→∞  log⁡1=0-\log\sigma(tc_i) = \log\bigl(1+e^{-tc_i}\bigr) \xrightarrow{\;t\to\infty\;} \log 1 = 0

です(仮定より ci>0c_i > 0 なので e−tci→0e^{-tc_i}\to 0)。yi=0y_i = 0 の項は 命題 3.2 (2) より 1−σ(tci)=σ(−tci)1-\sigma(tc_i) = \sigma(-tc_i) なので

−log⁡(1−σ(tci))=−log⁡σ(−tci)=log⁡(1+etci)→  t→∞  0-\log\bigl(1-\sigma(tc_i)\bigr) = -\log\sigma(-tc_i) = \log\bigl(1+e^{tc_i}\bigr) \xrightarrow{\;t\to\infty\;} 0

です(仮定より ci<0c_i < 0 なので etci→0e^{tc_i}\to 0)。有限個の和なので L(tv)→0L(t\boldsymbol{v})\to 0 です。

(c) 下限と非達成。 (a) より L>0L > 0、(b) より 00 にいくらでも近づけるので inf⁡L=0\inf L = 0。しかし (a) より L(w)=0L(\boldsymbol{w}) = 0 となる w\boldsymbol{w} は存在しないので、下限は達成されません。

(d) 発散。 L(wk)→0L(\boldsymbol{w}_k)\to 0 かつ (wk)(\boldsymbol{w}_k) が有界だと仮定します。ボルツァーノ・ワイエルシュトラスの定理より収束する部分列 wkm→w∞\boldsymbol{w}_{k_m}\to\boldsymbol{w}_{\infty} が取れます。LL は連続(定理 5.1 より C∞C^{\infty} 級)なので L(w∞)=lim⁡mL(wkm)=0L(\boldsymbol{w}_{\infty}) = \lim_m L(\boldsymbol{w}_{k_m}) = 0 となり、(a) に矛盾します。よって (wk)(\boldsymbol{w}_k) は有界ではありません。さらに、もし有界な部分列があれば、その部分列も L→0L \to 0 を満たすので同じ議論で矛盾します。有界な部分列が存在しないことは ∥wk∥→∞\|\boldsymbol{w}_k\|\to\infty にほかなりません。

例 6.4(重みが発散する様子)

§1.2 のデータ(t=1,2t=1,2 が y=0y=0、t=3,4t=3,4 が y=1y=1)は t=2.5t = 2.5 で分離できます。定理 6.3 の v\boldsymbol{v} として v=(−2.5, 1)T\boldsymbol{v} = (-2.5,\, 1)^{\mathsf{T}} を取れば ci=ti−2.5=−1.5,−0.5,0.5,1.5c_i = t_i - 2.5 = -1.5, -0.5, 0.5, 1.5 となり、符号条件が満たされます。w=αv\boldsymbol{w} = \alpha\boldsymbol{v} に沿って損失を計算すると次の通りです。

α\alpha1251020
∥w∥\|\boldsymbol{w}\|2.695.3913.4626.9353.85
L(w)L(\boldsymbol{w})1.35100.72370.15890.013430.0000908

α=1\alpha = 1 の値を手で確かめます。zi=−1.5,−0.5,0.5,1.5z_i = -1.5, -0.5, 0.5, 1.5 で、y=0y=0 の 2 点の損失は log⁡(1+ez)\log(1+e^{z})、y=1y=1 の 2 点の損失は log⁡(1+e−z)\log(1+e^{-z}) ですから

L=log⁡(1+e−1.5)+log⁡(1+e−0.5)+log⁡(1+e−0.5)+log⁡(1+e−1.5)=2(0.2014+0.4741)=1.3510.L = \log(1+e^{-1.5}) + \log(1+e^{-0.5}) + \log(1+e^{-0.5}) + \log(1+e^{-1.5}) = 2(0.2014 + 0.4741) = 1.3510 .

損失は単調に 00 へ向かい、それに応じて ∥w∥\|\boldsymbol{w}\| は際限なく大きくなります。例 5.5 の勾配降下法をいつまでも回し続けると、重みが延々と大きくなり続けるのはこのためです。実用上の困り事は、分離できてしまうデータでは予測確率がすべて 00 か 11 に張り付き、「どのくらい確信があるか」という情報が失われることです。特徴の数 dd がデータ数 nn より多いときはほぼ必ず分離できてしまうので、これは例外的な事態ではありません。

次の定理は、λ∥w∥2/2\lambda\|\boldsymbol{w}\|^2/2 という項を足すと、重みが大きくなるほど損失が増えるので、最小点を探す範囲を原点の近くの有界な範囲に絞れる、という話です。証明に出てくる半径 RR は、「その外側では損失が w=0\boldsymbol{w}=\boldsymbol{0} での値 nlog⁡2n\log 2 より必ず大きくなる」ように選んだものです。範囲が有界閉集合に絞れれば、連続関数は最小値を取ります。

定理 6.5(L2 正則化つき最尤推定の存在と一意性)✓

λ>0\lambda > 0 とし、定義 4.1 の LL に対して

Lλ(w)=L(w)+λ2∥w∥2L_{\lambda}(\boldsymbol{w}) = L(\boldsymbol{w}) + \frac{\lambda}{2}\|\boldsymbol{w}\|^{2}

と置く。データ (xi,yi)i=1n(\boldsymbol{x}_i,y_i)_{i=1}^n には何の条件も課さない(分離可能でも、XX が列フルランクでなくてもよい)。このとき LλL_{\lambda} は Rd\mathbb{R}^{d} 上でただ一つの大域最小点 w^λ\hat{\boldsymbol{w}}_{\lambda} を持ち、それは方程式

XT(σ(Xw^λ)−y)+λ w^λ=0X^{\mathsf{T}}\bigl(\sigma(X\hat{\boldsymbol{w}}_{\lambda}) - \boldsymbol{y}\bigr) + \lambda\,\hat{\boldsymbol{w}}_{\lambda} = \boldsymbol{0}

の唯一の解である。

証明(定理 6.5)

存在。 定理 6.3 の (a) より L≥0L \ge 0 なので Lλ(w)≥λ2∥w∥2L_{\lambda}(\boldsymbol{w}) \ge \frac{\lambda}{2}\|\boldsymbol{w}\|^{2} です。一方 w=0\boldsymbol{w} = \boldsymbol{0} では μi=1/2\mu_i = 1/2 なので Lλ(0)=L(0)=nlog⁡2L_{\lambda}(\boldsymbol{0}) = L(\boldsymbol{0}) = n\log 2 です。そこで R=2nlog⁡2/λ+1R = \sqrt{2n\log 2/\lambda} + 1 と取れば、∥w∥>R\|\boldsymbol{w}\| > R のとき

Lλ(w)≥λ2∥w∥2>λ2R2>nlog⁡2=Lλ(0)L_{\lambda}(\boldsymbol{w}) \ge \frac{\lambda}{2}\|\boldsymbol{w}\|^{2} > \frac{\lambda}{2}R^{2} > n\log 2 = L_{\lambda}(\boldsymbol{0})

となります。よって LλL_{\lambda} の Rd\mathbb{R}^{d} 上の下限は、閉球 Bˉ(0,R)={w:∥w∥≤R}\bar{B}(\boldsymbol{0},R) = \{\boldsymbol{w} : \|\boldsymbol{w}\|\le R\} 上の下限と一致します。Bˉ(0,R)\bar{B}(\boldsymbol{0},R) は Rd\mathbb{R}^d の有界閉集合すなわちコンパクトで、LλL_{\lambda} は連続なのでワイエルシュトラスの最大値・最小値定理により最小値を取る点 w^λ\hat{\boldsymbol{w}}_{\lambda} が存在します。これは Rd\mathbb{R}^{d} 全体での大域最小点です。

一意性。 ∥w∥2\|\boldsymbol{w}\|^{2} のヘッセ行列は 2I2I なので ∇2Lλ(w)=XTS(w)X+λI\nabla^{2}L_{\lambda}(\boldsymbol{w}) = X^{\mathsf{T}}S(\boldsymbol{w})X + \lambda I です。任意の v≠0\boldsymbol{v}\ne\boldsymbol{0} について 定理 6.1 の半正定値性より

vT∇2Lλv=vTXTSXv+λ∥v∥2≥λ∥v∥2>0\boldsymbol{v}^{\mathsf{T}}\nabla^{2}L_{\lambda}\boldsymbol{v} = \boldsymbol{v}^{\mathsf{T}}X^{\mathsf{T}}SX\boldsymbol{v} + \lambda\|\boldsymbol{v}\|^{2} \ge \lambda\|\boldsymbol{v}\|^{2} > 0

です。いま w1≠w2\boldsymbol{w}_1 \ne \boldsymbol{w}_2 がともに大域最小点だとすると、どちらも停留点なので ∇Lλ(w1)=0\nabla L_{\lambda}(\boldsymbol{w}_1) = \boldsymbol{0} です。系 6.2 の証明と同じテイラー展開を h=w2−w1≠0\boldsymbol{h} = \boldsymbol{w}_2-\boldsymbol{w}_1 \ne \boldsymbol{0} に対して行うと、ある θ∈(0,1)\theta\in(0,1) について

Lλ(w2)=Lλ(w1)+0+12hT∇2Lλ(w1+θh)h≥Lλ(w1)+λ2∥h∥2>Lλ(w1)L_{\lambda}(\boldsymbol{w}_2) = L_{\lambda}(\boldsymbol{w}_1) + 0 + \tfrac12\boldsymbol{h}^{\mathsf{T}}\nabla^{2}L_{\lambda}(\boldsymbol{w}_1+\theta\boldsymbol{h})\boldsymbol{h} \ge L_{\lambda}(\boldsymbol{w}_1) + \frac{\lambda}{2}\|\boldsymbol{h}\|^{2} > L_{\lambda}(\boldsymbol{w}_1)

となり、w2\boldsymbol{w}_2 が最小点であることに矛盾します。よって最小点は一意です。

方程式。 定理 5.1 と ∇(λ2∥w∥2)=λw\nabla\bigl(\frac{\lambda}{2}\|\boldsymbol{w}\|^{2}\bigr) = \lambda\boldsymbol{w} より ∇Lλ(w)=XT(σ(Xw)−y)+λw\nabla L_{\lambda}(\boldsymbol{w}) = X^{\mathsf{T}}(\sigma(X\boldsymbol{w})-\boldsymbol{y}) + \lambda\boldsymbol{w} です。LλL_{\lambda} は凸(凸関数 LL と凸関数 λ2∥w∥2\frac{\lambda}{2}\|\boldsymbol{w}\|^2 の和)なので 系 6.2 と同じ議論により、停留点であることと大域最小点であることは同値です。最小点が一意だったので、停留方程式の解も一意です。

注意 6.6(正則化はガウス事前分布である)

λ\lambda という項は「大きな重みを罰する」という工学的な工夫に見えますが、確率の言葉では自然な解釈があります。w\boldsymbol{w} 自体を確率変数と見て、事前分布 w∼N(0,τ2I)\boldsymbol{w} \sim N(\boldsymbol{0}, \tau^{2}I) を置きます。ベイズの定理より事後分布は p(w∣data)∝L(w) p(w)p(\boldsymbol{w}\mid \text{data}) \propto \mathcal{L}(\boldsymbol{w})\,p(\boldsymbol{w}) なので、その負の対数は

−log⁡p(w∣data)=L(w)+12τ2∥w∥2+const-\log p(\boldsymbol{w}\mid \text{data}) = L(\boldsymbol{w}) + \frac{1}{2\tau^{2}}\|\boldsymbol{w}\|^{2} + \text{const}

です。これは λ=1/τ2\lambda = 1/\tau^{2} とした LλL_{\lambda} にほかなりません。L2L^2 正則化つきの最小化は、ガウス事前分布のもとでの MAP 推定(事後確率最大化)と同じです。τ\tau を小さくする(重みが 0\boldsymbol{0} の近くにあると強く信じる)ほど λ\lambda が大きくなる、という対応も直感に合います。詳しくは 確率論とベイズ統計の役割 の L2 正則化はガウス事前分布の MAP 推定(定理 5.1)[確率論とベイズ統計] を参照してください。

演習 7.1易

定義 3.1 の σ\sigma について、σ′′(z)=σ′(z)(1−2σ(z))\sigma''(z) = \sigma'(z)\bigl(1-2\sigma(z)\bigr) を示し、σ\sigma が z=0z = 0 に変曲点を持つことを確かめてください。

解答

命題 3.2 (3) より σ′=σ(1−σ)=σ−σ2\sigma' = \sigma(1-\sigma) = \sigma - \sigma^{2} です。これを zz で微分すると、積の微分法(あるいは合成関数の微分法)により

σ′′=σ′−2σσ′=σ′(1−2σ)\sigma'' = \sigma' - 2\sigma\sigma' = \sigma'(1 - 2\sigma)

を得ます。命題 3.2 (3) より σ′>0\sigma' > 0 なので、σ′′\sigma'' の符号は 1−2σ(z)1-2\sigma(z) の符号だけで決まります。σ\sigma は狭義単調増加で σ(0)=1/2\sigma(0) = 1/2(同 (2))ですから

  • z<0z < 0 のとき σ(z)<1/2\sigma(z) < 1/2 なので 1−2σ(z)>01-2\sigma(z) > 0、すなわち σ′′>0\sigma'' > 0(下に凸)、
  • z=0z = 0 のとき σ′′=0\sigma'' = 0、
  • z>0z > 0 のとき σ(z)>1/2\sigma(z) > 1/2 なので σ′′<0\sigma'' < 0(上に凸)

となります。z=0z = 0 の前後で凹凸が入れ替わるので、z=0z = 0 は変曲点です。σ′(0)=12⋅12=14\sigma'(0) = \frac12\cdot\frac12 = \frac14 なので、そこでの接線の傾きは 1/41/4、これがシグモイドの最大傾斜です。

演習 7.2標準

ある病気の罹患確率について log⁡μ1−μ=−4+0.8 x1+1.5 x2\log\dfrac{\mu}{1-\mu} = -4 + 0.8\,x_1 + 1.5\,x_2 というモデルが推定されました。x1x_1 は年齢を 10 歳単位で測った値、x2x_2 は喫煙者なら 11、非喫煙者なら 00 を取る変数です。

  1. 50 歳(x1=5x_1 = 5)の非喫煙者の罹患確率を求めてください。
  2. 他の条件を固定したとき、喫煙者は非喫煙者に比べてオッズが何倍になりますか。
  3. このモデルの上では、喫煙者であることは何歳分の加齢と同じだけオッズを押し上げますか。
解答

1. z=−4+0.8×5+1.5×0=−4+4=0z = -4 + 0.8\times 5 + 1.5\times 0 = -4 + 4 = 0 なので、命題 3.2 (2) より μ=σ(0)=0.5\mu = \sigma(0) = 0.5、すなわち 50%50\% です。

2. x2x_2 を 00 から 11 に変えると対数オッズが 1.51.5 増えるので、オッズは e1.5=4.4817e^{1.5} = 4.4817 倍になります。例 3.7 と同様に、これは x1x_1 の値によらず一定です。ただし確率が何倍になるかは x1x_1 に依存します。実際 x1=5x_1 = 5 では μ\mu が 0.5→σ(1.5)=0.81760.5 \to \sigma(1.5) = 0.8176 と 1.6351.635 倍にしかなりません。

3. 喫煙者 (x1,1)(x_1, 1) と、より年配の非喫煙者 (x1+Δ,0)(x_1 + \Delta, 0) の対数オッズが等しくなる Δ\Delta を求めます。

−4+0.8x1+1.5=−4+0.8(x1+Δ)  ⟺  1.5=0.8 Δ  ⟺  Δ=1.875.-4 + 0.8x_1 + 1.5 = -4 + 0.8(x_1 + \Delta) \iff 1.5 = 0.8\,\Delta \iff \Delta = 1.875 .

x1x_1 の単位が 10 歳なので 18.75 歳分です。数値で確かめます。x1=5x_1 = 5(50 歳)の喫煙者は z=−4+4+1.5=1.5z = -4 + 4 + 1.5 = 1.5、x1=6.875x_1 = 6.875(68.75 歳)の非喫煙者は z=−4+0.8×6.875=−4+5.5=1.5z = -4 + 0.8\times 6.875 = -4 + 5.5 = 1.5 で一致します。両者の罹患確率はともに σ(1.5)=0.8176\sigma(1.5) = 0.8176 です。

この計算が x1x_1 の値に依らないのは、対数オッズが x1x_1 と x2x_2 の線形結合だからです。交互作用項 x1x2x_1x_2 を入れたモデルではこの換算は年齢に依存し、一定の「歳数」では言い表せなくなります。

演習 7.3標準

ラベルを y~i=2yi−1∈{−1,+1}\tilde{y}_i = 2y_i - 1 \in \{-1, +1\} と付け替えます。zi=wTxiz_i = \boldsymbol{w}^{\mathsf{T}}\boldsymbol{x}_i として、定義 4.1 の LL が

L(w)=∑i=1nlog⁡(1+e−y~izi)L(\boldsymbol{w}) = \sum_{i=1}^{n} \log\bigl(1 + e^{-\tilde{y}_i z_i}\bigr)

と書けることを示し、この表示から勾配を計算して 定理 5.1 と一致することを確かめてください。

解答

表示。 第 ii 項を場合分けします。yi=1y_i = 1(y~i=+1\tilde{y}_i = +1)のとき、定義 4.1 の項は −log⁡μi=−log⁡σ(zi)-\log\mu_i = -\log\sigma(z_i) です。定義 3.1 の σ(z)=1/(1+e−z)\sigma(z) = 1/(1+e^{-z}) より −log⁡σ(zi)=log⁡(1+e−zi)=log⁡(1+e−y~izi)-\log\sigma(z_i) = \log(1+e^{-z_i}) = \log(1+e^{-\tilde{y}_i z_i}) です。

yi=0y_i = 0(y~i=−1\tilde{y}_i = -1)のとき、項は −log⁡(1−μi)-\log(1-\mu_i) です。命題 3.2 (2) より 1−σ(zi)=σ(−zi)1-\sigma(z_i) = \sigma(-z_i) なので

−log⁡(1−μi)=−log⁡σ(−zi)=log⁡(1+ezi)=log⁡(1+e−(−1)zi)=log⁡(1+e−y~izi)-\log(1-\mu_i) = -\log\sigma(-z_i) = \log\bigl(1+e^{z_i}\bigr) = \log\bigl(1+e^{-(-1)z_i}\bigr) = \log\bigl(1+e^{-\tilde{y}_i z_i}\bigr)

となり、どちらの場合も同じ式になります。

勾配。 ui=−y~iziu_i = -\tilde{y}_i z_i と置くと第 ii 項は log⁡(1+eui)\log(1+e^{u_i}) で、ddulog⁡(1+eu)=eu1+eu=σ(u)\dfrac{d}{du}\log(1+e^{u}) = \dfrac{e^{u}}{1+e^{u}} = \sigma(u) です(分子分母を eue^{u} で割れば σ\sigma の定義形になります)。連鎖律より ∂ui∂w=−y~ixi\dfrac{\partial u_i}{\partial \boldsymbol{w}} = -\tilde{y}_i\boldsymbol{x}_i なので

∇L(w)=−∑i=1ny~i σ(−y~izi) xi.\nabla L(\boldsymbol{w}) = -\sum_{i=1}^{n} \tilde{y}_i\,\sigma(-\tilde{y}_i z_i)\,\boldsymbol{x}_i .

定理 5.1 と一致することを場合分けで確かめます。yi=1y_i = 1 のとき −y~iσ(−y~izi)=−σ(−zi)=−(1−μi)=μi−1=μi−yi-\tilde{y}_i\sigma(-\tilde{y}_iz_i) = -\sigma(-z_i) = -(1-\mu_i) = \mu_i - 1 = \mu_i - y_i。yi=0y_i = 0 のとき −y~iσ(−y~izi)=+σ(zi)=μi=μi−yi-\tilde{y}_i\sigma(-\tilde{y}_iz_i) = +\sigma(z_i) = \mu_i = \mu_i - y_i。どちらも μi−yi\mu_i - y_i に等しく、一致します。

この表示は「y~izi\tilde{y}_i z_i(マージン)が大きいほど損失が小さい」という構造を露わにしており、サポートベクターマシンのヒンジ損失 max⁡(0,1−y~izi)\max(0, 1-\tilde{y}_iz_i) と直接比較できる形になっています。

演習 7.4難

λ>0\lambda > 0 とし、定理 6.5 の LλL_{\lambda} とその一意の最小点 w^λ\hat{\boldsymbol{w}}_{\lambda} を考えます。任意の w∈Rd\boldsymbol{w}\in\mathbb{R}^{d} について

Lλ(w)  ≥  Lλ(w^λ)+λ2∥w−w^λ∥2L_{\lambda}(\boldsymbol{w}) \;\ge\; L_{\lambda}(\hat{\boldsymbol{w}}_{\lambda}) + \frac{\lambda}{2}\bigl\|\boldsymbol{w}-\hat{\boldsymbol{w}}_{\lambda}\bigr\|^{2}

を示し、これを使って ∥w^λ∥≤2nlog⁡2/λ\|\hat{\boldsymbol{w}}_{\lambda}\| \le \sqrt{2n\log 2/\lambda} を導いてください。

解答

不等式。 h=w−w^λ\boldsymbol{h} = \boldsymbol{w} - \hat{\boldsymbol{w}}_{\lambda}、g(t)=Lλ(w^λ+th)g(t) = L_{\lambda}(\hat{\boldsymbol{w}}_{\lambda} + t\boldsymbol{h}) と置きます。LL は C∞C^{\infty} 級(定理 5.1)、λ2∥w∥2\frac{\lambda}{2}\|\boldsymbol{w}\|^{2} は多項式なので LλL_{\lambda} も C∞C^{\infty} 級で、gg は C2C^{2} 級です。テイラーの定理より、ある θ∈(0,1)\theta\in(0,1) について

Lλ(w)=g(1)=g(0)+g′(0)+12g′′(θ).L_{\lambda}(\boldsymbol{w}) = g(1) = g(0) + g'(0) + \tfrac12 g''(\theta).

w^λ\hat{\boldsymbol{w}}_{\lambda} は最小点なので ∇Lλ(w^λ)=0\nabla L_{\lambda}(\hat{\boldsymbol{w}}_{\lambda}) = \boldsymbol{0}、したがって g′(0)=∇Lλ(w^λ)Th=0g'(0) = \nabla L_{\lambda}(\hat{\boldsymbol{w}}_{\lambda})^{\mathsf{T}}\boldsymbol{h} = 0 です。また 定理 6.5 の証明で示した通り ∇2Lλ=XTSX+λI\nabla^{2}L_{\lambda} = X^{\mathsf{T}}SX + \lambda I で、定理 6.1 より XTSX⪰OX^{\mathsf{T}}SX \succeq O なので

g′′(θ)=hT(XTSX+λI)h≥λ∥h∥2.g''(\theta) = \boldsymbol{h}^{\mathsf{T}}\bigl(X^{\mathsf{T}}S X + \lambda I\bigr)\boldsymbol{h} \ge \lambda\|\boldsymbol{h}\|^{2}.

以上を代入すれば Lλ(w)≥Lλ(w^λ)+λ2∥h∥2L_{\lambda}(\boldsymbol{w}) \ge L_{\lambda}(\hat{\boldsymbol{w}}_{\lambda}) + \frac{\lambda}{2}\|\boldsymbol{h}\|^{2} を得ます。この性質を**λ\lambda-強凸性**といい、狭義凸性より強い「二次関数で下から押さえられる」という主張です。

上からの評価。 不等式で w=0\boldsymbol{w} = \boldsymbol{0} と取ります。定理 6.5 の証明で見たように Lλ(0)=L(0)=nlog⁡2L_{\lambda}(\boldsymbol{0}) = L(\boldsymbol{0}) = n\log 2(μi=1/2\mu_i = 1/2 が nn 個)なので

nlog⁡2  ≥  Lλ(w^λ)+λ2∥w^λ∥2  ≥  λ2∥w^λ∥2n\log 2 \;\ge\; L_{\lambda}(\hat{\boldsymbol{w}}_{\lambda}) + \frac{\lambda}{2}\|\hat{\boldsymbol{w}}_{\lambda}\|^{2} \;\ge\; \frac{\lambda}{2}\|\hat{\boldsymbol{w}}_{\lambda}\|^{2}

です。最後の不等号では 定理 6.3 の (a) と λ2∥w^λ∥2≥0\frac{\lambda}{2}\|\hat{\boldsymbol{w}}_\lambda\|^2 \ge 0 から Lλ(w^λ)≥0L_{\lambda}(\hat{\boldsymbol{w}}_{\lambda}) \ge 0 であることを使いました。整理すると ∥w^λ∥2≤2nlog⁡2/λ\|\hat{\boldsymbol{w}}_{\lambda}\|^{2} \le 2n\log 2/\lambda、すなわち ∥w^λ∥≤2nlog⁡2/λ\|\hat{\boldsymbol{w}}_{\lambda}\| \le \sqrt{2n\log 2/\lambda} です。

データが線形分離可能でも重みがこの範囲に収まることが、定理 6.3 の発散を正則化が確かに止めていることの定量的な証拠になります。λ→0\lambda \to 0 で上界が ∞\infty に発散するのも、正則化なしの状況と整合しています。

  • C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006 — 第 4 章「Linear Models for Classification」。§4.2 に 例 3.4 の生成モデルからの導出、§4.3 にロジスティック回帰と IRLS がある。
  • T. Hastie, R. Tibshirani, J. Friedman, The Elements of Statistical Learning, 2nd ed., Springer, 2009 — 第 4 章「Linear Methods for Classification」。線形分離可能な場合の非有界性や正則化の扱いも含む。著者による公開版。
  • S. Boyd, L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004 — 第 3 章(凸関数と強凸性)、第 7 章(最尤推定を凸最適化として扱う例)。著者による公開版。
  • I. Goodfellow, Y. Bengio, A. Courville, Deep Learning, MIT Press, 2016 — 第 6 章。出力ユニットの選択と交差エントロピー損失の対応、および 例 5.3 の勾配飽和の議論。公開版。
  • J. Berkson, “Application of the Logistic Function to Bio-Assay”, Journal of the American Statistical Association 39 (1944), 357–365 — “logit” という語が導入された論文。
  • J. A. Nelder, R. W. M. Wedderburn, “Generalized Linear Models”, Journal of the Royal Statistical Society, Series A 135 (1972), 370–384 — ロジスティック回帰を一般化線形モデルの一例として位置づけた論文。
  • 久保拓弥『データ解析のための統計モデリング入門』岩波書店、2012 — 一般化線形モデルの枠組みからロジスティック回帰を扱う章。統計モデリングの実践側からの入門として読みやすい。

Appendix: 多クラスへの一般化とニュートン法

Section titled “Appendix: 多クラスへの一般化とニュートン法”

ソフトマックス回帰。 クラスが KK 個ある場合は、クラスごとに重み wk∈Rd\boldsymbol{w}_k \in \mathbb{R}^{d} を用意し

P(y=k∣x)=exp⁡(wkTx)∑l=1Kexp⁡(wlTx)P(y = k \mid \boldsymbol{x}) = \frac{\exp(\boldsymbol{w}_k^{\mathsf{T}}\boldsymbol{x})}{\sum_{l=1}^{K}\exp(\boldsymbol{w}_l^{\mathsf{T}}\boldsymbol{x})}

とします。これをソフトマックス関数といい、K=2K = 2 のとき分子分母を exp⁡(w0Tx)\exp(\boldsymbol{w}_0^{\mathsf{T}}\boldsymbol{x}) で割れば P(y=1∣x)=σ((w1−w0)Tx)P(y=1\mid\boldsymbol{x}) = \sigma\bigl((\boldsymbol{w}_1-\boldsymbol{w}_0)^{\mathsf{T}}\boldsymbol{x}\bigr) となり、シグモイドに戻ります(重みの差だけが意味を持つので、パラメータには K−1K-1 個分の自由度しかありません)。損失はラベルを one-hot ベクトル ti\boldsymbol{t}_i(第 yiy_i 成分だけ 11)として L=−∑i∑ktiklog⁡μikL = -\sum_i \sum_k t_{ik}\log \mu_{ik} で、これも交差エントロピーです。勾配は 定理 5.1 と同じ形の

∂L∂wk=∑i=1n(μik−tik) xi\frac{\partial L}{\partial \boldsymbol{w}_k} = \sum_{i=1}^{n} (\mu_{ik} - t_{ik})\,\boldsymbol{x}_i

になります(ソフトマックス+交差エントロピーの勾配(命題 7.1)[ニューラルネットワークと逆伝播])。約分が起きる構造がそのまま保たれている、というのが要点です。

ニュートン法と IRLS。 定理 6.1 でヘッセ行列まで求めてあるので、勾配だけでなく 2 階情報も使えます。ニュートン法の更新

w←w−(XTSX)−1XT(μ−y)\boldsymbol{w} \leftarrow \boldsymbol{w} - \bigl(X^{\mathsf{T}}SX\bigr)^{-1}X^{\mathsf{T}}(\boldsymbol{\mu}-\boldsymbol{y})

は、右辺を整理すると w←(XTSX)−1XTSz\boldsymbol{w} \leftarrow (X^{\mathsf{T}}SX)^{-1}X^{\mathsf{T}}S\boldsymbol{z}(z=Xw+S−1(y−μ)\boldsymbol{z} = X\boldsymbol{w} + S^{-1}(\boldsymbol{y}-\boldsymbol{\mu}))という重み付き最小二乗法の形に書き換えられます。重み SS が反復ごとに更新されるので、これを IRLS(反復再重み付け最小二乗法)と呼びます。収束が速い一方、各反復で d×dd\times d 行列の逆行列(実際には連立一次方程式)を扱うため dd が大きいと重くなります。深層学習で 1 階の 勾配降下法 が使われるのは、この計算量の差が理由の一つです。

このテーマの 100 本ノック(50 問)

執筆: Claude Code(Sonnet 5.5)・監査 3 回(Claude Code)・最終 2026-10-12

この記事の誤りを報告する ・運営: 夢現技研合同会社 ・料金 ・利用条件 ・特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・コード例は MIT ライセンスです。