![見出し画像](https://assets.st-note.com/production/uploads/images/91017944/rectangle_large_type_2_9cd2c1ae45a16a69e4da218a5b80e862.png?width=1200)
ブローアップと機械学習①
ブローアップの例
ベイズ学習では特異点が重要な役割を果たします.
( 詳しくは:https://note.com/kaji_dai/n/n093b9fe2811a)
統計モデルの性能指標の1つである学習係数は統計モデル$${ p(x|w) }$$と真の分布$${ p(x|w_0) }$$( $${w}$$はパラメータ、$${w_0}$$は真の分布を表すパラメータ)に対して決まる平均誤差関数
$$
K(w) = \int p(x|w_0) \log \frac{p(x|w_0)}{p(x|w)}dx\,\,\,\,\,\,\,(1)
$$
の特異点近傍における次の形の正規交差表現
$$
K(w) = w_1^{k_1}w_2^{k_2}\cdots w_d^{k_d}
$$
から得られる$${ k_1,k_2,\cdots,k_d }$$を用いて定められます.そしてこの正規交差表現を得るための1つの方法がブローアップです.ここではブローアップと正規交差表現を具体例を使って説明します.
$${K(w)}$$は(1)式のように統計モデルと真の分布によって定まりますがここでは議論を簡単にするため$${K(w)}$$がすでに$${w=(x,y)}$$により
$$
K(x,y)=y^2-x^3-x^2
$$
で与えられているとします.学習係数は$${K(x,y)}$$を含む次の(学習の)ゼータ関数と呼ばれる積分計算を特異点の周りで計算することで得られ、
$$
\zeta (z) = \int \{K(x,y)\}^z \varphi(x,y) dxdy
$$
($${ \varphi(x)}$$は事前分布 )上記の積分計算を行いやすくするために$${ K(x,y) }$$の正規交差表現が利用されます.この例では$${K(x,y)=0}$$となる点の集合(アフィン多様体、代数的集合)は原点$${O}$$で特異点をもっています(図1).
![](https://assets.st-note.com/img/1668225017436-d0UZtsmEV4.jpg?width=1200)
このままの形では特異点である原点の近傍で積分しにくいので次の変数変換を行います.
$$
\left\{\begin{array}{ll} x=v \\ y=uv \end{array} \right. \,\,\,\,(2)
$$
この変換はブローアップと呼ばれており、原点$${O}$$では1:1にはなりませんがその近傍では同相写像になっています.変換(2)により$${K(x,y)=0}$$で表される曲線が$${(x,y)}$$-平面から$${(s,t)}$$-平面にどのように写されるかを見てみます.$${K(x,y)}$$に(2)を代入することで$${K(x,y)=0}$$の$${ u,v }$$平面での表現
$$
K(s,t) = u^2v^2-v^3-v^2=v^2(u^2-v-1)=0
$$
を得ます(図2).
![](https://assets.st-note.com/img/1668225049999-SzPgDix3cI.jpg?width=1200)
したがってこの変換により$${K(x,y)=0}$$は2つの曲線$${u=0}$$と$${ u^2-v-1=0 }$$に分解されたことになります.直線$${u=0}$$は原点$${O}$$の(2)による変換後の像に対応し例外曲線と呼ばれます.したがって$${ K(x,y)=x^3+x^2-y^3 =0}$$の主な部分(原点以外)は$${ u^2-v-1=0}$$に移され特異点がない曲線になっています.この変換の仕組みをより詳しく理解するにはブローアップという操作を説明する必要があります.
ブローアップ
ここではブローアップの詳細な定義は行わずそのイメージを説明します.ブローアップは$${x,y}$$平面上の原点を通る直線を捩じりながら上に持ち上げる(あるいは下に引っ張り下げる)操作です.最初に$${x}$$軸と平行な直線を$${x,y}$$平面に置いて(図3左の青いと直線)これを$${90}$$度捻りながら持ち上げます.同様に$${x}$$軸と平行な直線を引っ張り上げるときと逆方向に捩じりながら$${90}$$度引っ張り下げます(図3および図5の動画を参照して下さい).すると次の2つのことが分かります.
$${x,y}$$平面の原点を除くすべての点は捻り上げ(下げ)た線で構成される曲面に(同相写像として)写されている.
捻り上げ(下げ)によりできた曲面を構成する一番上と下の直線はいずれも$${y}$$軸に平行な直線であり$${x,y}$$平面上では同じ点に対応する.
![](https://assets.st-note.com/img/1669171762536-3oPy058LcW.jpg?width=1200)
2番目の性質から曲面の一番上と下を貼り合わせる必要があります.貼り合わせて出来た曲面が$${\mathbb{R}^2}$$のブローアップの像になります(原点に対応する像である縦軸はここでは一旦忘れます.また上下にそれぞれ逆にひ捻っているので直線の向きも逆になっていることに注意)(図4).またここまでの考察から図3の縦軸が円と同じ構造、つまり一次元射影空間$${\mathbb{P}^1}$$になっていることが理解できるかと思います.実際にブローアップは射影空間$${\mathbb{P}^n}$$を用いて定義されます).
![](https://assets.st-note.com/img/1669176134107-7MJKfMC7F7.jpg)
ブローアップのイメージが掴めたので(2)で定義した変換が上述のような捩じり上げ(下げ)を本当に構成しているのかを確認します.持ち上げる方向の軸に$${u}$$で座標を与え$${u=0}$$の位置に$${x,y}$$平面があるとします(図3左).
![](https://assets.st-note.com/production/uploads/images/91017907/picture_pc_81805dd62accc1eb2eefcd3da6071a22.gif)
(2)は
$$
\left\{\begin{array}{ll} u=\frac{y}{v}=\frac{y}{x} \\ v=x \end{array} \right.
$$
と書けるので$${u=0}$$の位置に移される点は$${xy}$$平面上では$${\frac{y}{x}=0}$$を満たす点、つまり直線$${y=0}$$になります.次により一般に$${u=u_1}$$の位置に移される集合を考えます.この位置に移されるのは(2)から$${y=u_1x}$$、つまり原点を通る傾き$${u_1}$$の直線になります.このように平面上の原点を通る直線は$${u}$$軸のどこかを通る平行な直線に割り振られます.以上から捩じり上げ(下げ)操作が実際に変換(2)により実現されることが分かりました.
ブローアップについて私は次のようなイメージを持っています.$${\mathbb{R}^2}$$に町があって$${y=ux}$$の線上にある家を$${u}$$町目の住人とします.この町の住民を地上∞階、地下∞階ある超高層マンションに移住させる計画があって「$${u}$$丁目の住人は$${u}$$階に引っ越しててもらう」ことをお願いする(変換(2)).平面上にあった町どうしのご近所関係はそのまま高層マンションの縦の方向のご近所関係として維持さます.ただし平面上ではご近所さんだった∞階と-∞階は最上階と最地下になってしまうので実はこのマンションは一番上まで登ると一番地下に出るという不思議な構造になっています.
最後にこのブローアップにより平面上のアフィン多様体$${y^2+x^3+x^2=0}$$はどのように変換されるか見ていきます.図6は図5で示したブローアップの様子に平面上の図1で表される曲線(赤)を加えたものです。平面上の曲線と原点を通る直線(青)の交点を青い点で表し、青線のブローアップ後の線を緑、青い点に対応するブローアップ後の点を緑の点で示しています.図から分かるように平面上のアフィン多様体(赤線)も平面のブローアップと合わせて曲面に移動し曲面上の曲線となります.このブローアップによって写された曲線を分かり易く描写するために曲面を構成する捩じり上げられた各直線$${y=ux}$$(緑)を横に平行に並べたて平面化したのが図7です.この図から平面上の特異点をもつアフィン多様体$${y^2+x^3+x^2=0}$$はブローアップにより特異点のない曲線に写像されていることが分かります.そしてこの曲線が図2で示した$${ u^2-v-1=0 }$$になっています(軸の向きの取り方の関係で方向が変わっています).
![](https://assets.st-note.com/production/uploads/images/91180531/picture_pc_e451681cf56af940f048bde44bf657d8.gif)
![](https://assets.st-note.com/production/uploads/images/91180598/picture_pc_625347293923adaf6efe68c70c74f71f.gif)
ここまではブローアップの定義を述べずに直観的な議論をしてきました。ブローアップと機械学習②ではこのイメージをもとにブローアップの定義します.
参考:ブローアップの計算は下記が分かり易いです.https://www.youtube.com/watch?v=dGnfONlZwhQ&ab_channel=RichardE.BORCHERDS
この記事が気に入ったらサポートをしてみませんか?