Closed3

多クラス分類における線形レイヤの重みと識別境界の関係について

bilzardbilzard

線形レイヤの出力は、入力をx\in \mathbb{R}^dとおくと、

a_i = \sum_{k=1}^d w_{ik} x_{k} + b_i

と表せる。これをベクトルで表すと
\mathrm{a_i=w_i^{\top}x +b_i}
となる。

モデルの予測するクラスはy_\text{pred}=\argmax_{i}( a_i)で表されるから、クラスi, jの識別境界において、クラスi, jの予測スコアが一致するので、

\mathrm{a_i - a_j = (w_i - w_j)^{\top}x + (b_i - b_j) = 0} \tag{1}
を得る。

(1)式でバイアス項がともに0の時、

\mathrm{(w_{i} - w_{j})^{\top}x}=0 \tag{2}

となる。従って、線形レイヤによるマルチクラス分類の識別境界は、「原点を通り\mathrm{w_{i} - w_{j}}に直交する直線」となる。

バイアスが0でない場合、変数変換\mathrm{x \rightarrow x - c_{ij}}によってクラスi, jの識別境界は「中心\mathrm{c_{ij}}を通り\mathrm{w_{i} - w_{j}}に直交する直線」となる。

\mathrm{(w_{i} - w_{j})^{\top}(x - c_{ij})}=0 \tag{3}

なお、中心は

\mathrm{c_{ij}} = -\frac{b_i - b_j}{d(\mathrm{w_i - w_j})}

である(ベクトルによる割り算は要素ごとの割り算を表す)。

bilzardbilzard

特徴ベクトルが2次元の場合のシミュレーション結果。図では各クラスに対応する線形レイヤの重みベクトルを星印で示した。

bias=False

bias=True

bilzardbilzard

TODO: 二次元の場合に可視化するのは容易いが、3次元以上の場合に「\mathrm{c_{ij}}を通り\mathrm{w_i - w_j}に直交する平面」をうまく可視化する方法はあるか?

-> 2クラスの境界のみだと、判別境界と直交する平面に射影すれば可視化できる。

このスクラップは2022/11/09にクローズされました