投稿者「admin」のアーカイブ

わたなべいず命題17の証明

命題17に関して若干の修正があります(最終的な結論には影響しません)。
まず、$h(\theta)=\log p(x|\theta)-\log p(x|\theta_*)$, $$\displaystyle d\mu(\theta)=\frac{\displaystyle p(x|\theta)^\alpha p(\theta|x_1,\ldots,x_n)d\theta}{
\displaystyle \int_\Theta p(x|\theta)^\alpha p(\theta|x_1,\ldots,x_n)d\theta}
$$ $$s_k^*(x,\alpha):=\int_\Theta |h(\theta)|^kd\mu(\theta)$$とおきます。また、ヘルダーの不等式(Cauchy-Schwarzの不等式)より、$1\leq k\leq l$について、$$s_l^*(x,\alpha)^{1/l} \leq s_k^*(x,\alpha)^{1/k}$$が成立します。したがって、
$$|s^{(k)}(x,\alpha)|\leq C_k |s_k^*(x,\alpha)|$$が成立します。テキストでは、$s_l(x,\alpha)^{1/l} \leq s_k(x,\alpha)^{1/k}$(偽)を用いて、$s_k(x,\alpha):=\int_\Theta h(\theta)^kd\mu(\theta)$に対して、$|s^{(k)}(x,\alpha)|\leq C_k |s_k(x,\alpha)|$を主張していますが、$|s^{(k)}(x,\alpha)|\leq C_k |s_k^*(x,\alpha)|$が正しいです。

ただ、そのように修正しても7章の結論には影響しません。

トレースクラスの作用素

行列$A\in {\mathbb R}^{m\times n}$を特異値分解して$A=U\Sigma V^\top$と書くものとします。ただし、 $U\in {\mathbb R}^{m\times n}$, $\Sigma \in {\mathbb R}^{n\times n}$, $V\in {\mathbb R}^{n\times n}$とし、$U^\top U=V^\top V=I$が成立し、$\Sigma$は対角行列でその各成分(特異値)は非負の値をとります。このとき、$$A^\top A= V\Sigma^2V^\top=(V \Sigma V^\top)^2$$とできます。また、正方行列$|A|:=V \Sigma V^\top$のトレースは、$\Sigma$の特異値$\lambda_1,\ldots,n$の和で常に非負になります。$|A|$の$(i,j)$成分は、$|A|_{i,j}=\sum_{k=1}^nv_{i,k}\lambda_{k}v_{j,k}$とかけるので、$|A|$のトレース(対角成分の和)は$$\sum_{i=1}^n |A|_{i,i}=\sum_{i=1}^n\sum_{k=1}^nv_{i,k}\lambda_{k}v_{j,i}=\sum_{k=1}^n \lambda_k \sum_{i=1}^n v_{i,k}^2=\sum_{i=1}^n \lambda_k$$となります。トレースというと$m=n$のときの$\sum_{i=1}^nA_{i,i}$をさすことが多いですが、関数解析では、$\sum_{i=1}^n |A|_{i,i}$のことをトレースノルムといいます。両者は非負定値対称のときに一致し、特異値$\lambda_1,\ldots,\lambda_n$は固有値になります。

同様の概念を一般の線型作用素にも適用できます。線型作用素の$T$について、$|T|:=\{T^*T\}^{1/2}$と書いて、$\sum_{i=1}^\infty\langle |T|e_i,e_i\rangle$と書きます。$\{\cdot\}^{1/2}$は作用素の平方根でと呼ばれるものです。トレースノルムがが有限のときその作用素はトレースクラスであるといいます。そして、自己共役のときに$\sum_{i=1}^\infty\langle Te_i,e_i\rangle$をトレースといい、さらに非負定値のときにトレース、トレースクラスは一致します。「機械学習のためのカーネル」の第2章の最後のトレース作用素の箇所では、自己共役かつ非負定値の線型作用素のみを扱っていて、両者は一致します。

サポートベクトルは必ず1個以上存在

「統計的機械学習の数理」の8章(サポートベクトルマシン)3節と同じ議論は、“The Elements of Statistical Learning”やBishop本(“Pattern Recognition and Machine Learning”)でもされていますが、$y_i(\beta_0+x_i\beta)=1$なる$i$が少なくとも1個存在する理由について書かれていません。拙書で記載したのですが、よく検討したら誤っていました。直感的には、「サポートベクトルが存在しないとマージンをもっと大きくできる」が正解ですが、それを数学的にしかも短く書けないかと思っていました。

まず、$y_1,\ldots,y_N$がすべて等しいということはないと仮定します。この仮定は一般的です。すべて等しい場合は、マージンが存在しません。

その上で、$A=\{i|y_i(\beta_0+x_i\beta)>1\}$, $B=\{i|y_i(\beta_0+x_i\beta)<1\}$の和集合が$\{1,\ldots,N\}$であるとして、矛盾を導きます。ただし、$B$が空集合で$A$ばかりの場合は$\beta=0$となり、$y_i\beta_0>1$がすべての$i\in A$で成立することを意味し、仮定と矛盾します。そこで、以下では、$B$が空集合ではないと仮定します。

まず、(8.18), (8.19)がそれぞれ$$\beta=C\sum_{i\in B}y_ix_i^\top$$ $$\sum_{i\in B}y_i=0$$ (8.16)で$i=1,\ldots, N$ に関して和を取ると、$i\in A$について$\alpha_i=0$であるので、$$C\sum_{i\in B}\{ y_i(\beta_0+x_i\beta)-(1-\epsilon_i)\}=0$$であり、上の2式を代入すると、$$\beta^\top \beta=C\sum_{i\in B}(1-\epsilon_i)$$が成立します。それらを(8.3)に代入すると、$$L_P=C\{-\frac{1}{2}\sum_{i\in B}(1-\epsilon_i)+\sum_{i\in A}\epsilon_i+N\}$$となります。ここで、$i\in A$では(8.17)より$\epsilon_i=0$、$i\in B$では(8.14)より$\epsilon_i>0$となります。このことは、集合$A,B$の要素を変えない範囲で、$i\in B$の$\epsilon_i$のどれかを小さくすれば、$L_P$の値をさらに小さくでき、最適性と矛盾します。したがって、$A\cup B\not=\{1,\ldots,N\}$が成立します。

いずれの場合でも、$y_i(\beta_0+x_i\beta)=1$なる$i$が1個は存在します。

正定値カーネル$k_1,k_2$のRKHSが$H_1,H_2$のときの$k_1+k_2$のRKHS

Aronszajnというカーネルの数学者の結果です。「機械学習のためのカーネル 100問」の3.1節に掲載していますが、少しくだいてみました。テキストを最初から読んでいるか、関数解析を勉強したことのある人なら理解できると思います。

$H_1,H_2$をHilbert空間としたときに、その直積
$F:=H_1\times H_2$は、内積
$$
\langle (f_1,f_2),(g_1,g_2)\rangle_F := \langle f_1,g_1\rangle_{H_1}+\langle f_2,g_2\rangle_{H_2}, \hspace{5mm}
f_1,g_1\in H_1,\hspace{5mm} f_2,g_2\in H_2
$$のもとで、Hilbert空間になります。実際、$\|f_{1,n}-f_{1,m}\|_{H_1}$, $\| f_{2,n}- f_{2,m}\|_{H_2}$が
$$\hspace{3mm}\sqrt{\|f_{1,n}-f_{1,m}\|_{H_1}^2+\| f_{2,n}- f_{2,n}\|_{H_2}^2}=\|(f_{1,n},f_{2,n})-(f_{1,m},f_{2,m})\|_{F}
$$以下であることを用いると、以下が成立します。
$\{(f_{1,n},f_{2,n})\}$がCauchy $\Longrightarrow $ $\{f_{1,n}\}$, $\{f_{2,n}\}$がCauchy
$\Longrightarrow $ $\{f_{1,n}\}$, $\{f_{2,n}\}$がある$f_1\in H_1,f_2\in H_2$に収束
$\Longrightarrow $ $\|(f_{1,n},f_{2,n})-(f_{1},f_{2})\|_F= \sqrt{\|f_{1,n}-f_{1}\|^2+\|f_{2,n}-f_{2}\|^2}\rightarrow 0$
$\Longrightarrow $ $\{(f_{1,n},f_{2,n})\}$が$(f_1,f_2)\in F$に収束
すなわち、$H_1$,$H_2$が完備なら、$F$も完備です。

次に、$H_1,H_2$の直和
$H:=H_1 + H_2:=\{f_1+f_2|f_1\in H_1,f_2\in H_2\}$について考えます。$F$を写像$$u: F\ni (f_1,f_2)\mapsto f_1+f_2\in H$$の核$N:=\{(f_1,f_2)\in F|f_1+f_2=0\}$と、その直交補空間$N^\perp:=\{x\in F\mid \langle x,y\rangle=0, y\in N\}$に分解すると、$$N\cap N^\perp=\{(0,0)\}$$が成立します。ここで、$u$を$N^\perp$に制限した$v: N^\perp \rightarrow H$は単射$$v(f_1,f_2)=v(f_1′,f_2′)\Longrightarrow (f_1,f_2)=(f_1′,f_2′)$$になります。実際、$f_1+f_2=f_1’+f_2’$かつ$(f_1,f_2),(f_1′,f_2′)\in N^\perp$であれば、$$(f_1-f_1′,f_2-f_2′)\in N^\perp$$が成立します。他方、$f_1+f_2=v(f_1,f_2)=v(f_1′,f_2′)=f_1’+f_2’$は、$$(f_1-f_1′,f_2-f_2′)\in N$$を意味し、両者より、$(f_1-f_1′,f_2-f_2′)=(0,0)$が成立します。

$H=H_1+H_2$が以下の内積をもつとき、$H$は完備(Hilbert空間)となります。$$\langle f,g\rangle_H:=\langle v^{-1}(f),v^{-1}(g)\rangle_F\ ,\hspace{5mm}f,g\in H$$実際、$F$がHilbert空間で、$N^\perp$はその閉部分空間(テキスト命題20の1)ですから、$N^{\perp}$は完備となり、$\|f_n-f_m\|_H\rightarrow 0 \Longleftrightarrow \|v^{-1}(f_n-f_m)\|_F\rightarrow 0$
$\Longrightarrow$ $\|v^{-1}(f_n)-g\|_F\rightarrow 0$なる$g\in N^\perp$が存在$\Longrightarrow $ $\|f_n-v(g)\|_H\rightarrow 0$が成立します。

$H_1$, $H_2$が再生核$k_1,k_2$をもつとき、上記のように定義されたHilbert空間$H:=H_1 + H_2$は、$k_1+k_2$を核とするRKHSになります。この証明は(難しくありません)、テキストの付録を参照してください。

たたみ込みカーネルは正定値(カーネル1.6節)

$E,E_1,\ldots,E_d$を集合、$R: E_1\times \cdots \times E_d\rightarrow E$とする。各$k_h: E_h\times E_h \rightarrow {\mathbb R}$, $h=1,\ldots,d$が正定値のとき、
$$k(x_i,x_j)=\sum_{R^{-1}(x_i)}\sum_{R^{-1}(x_j)}\prod_{h=1}^dk_h(x_{i,h},x_{j,h})$$
で定義される$k: E\times E\rightarrow {\mathbb R}$は正定値である。ただし、$R^{-1}(x_i)$は$R(x_{i,1},\ldots,x_{i,d})=x_i$なる$x_{i,1},\ldots,x_{i,d}\in E_1\times \cdots \times E_d$の集合とした。このステートメントの証明を、少し丁寧にやってみたい。

証明: \hspace{3mm}$x’=(x_1,\ldots,x_d)$, $y’=(y_1,\ldots,y_d)\in E_1\times \cdots\times E_d$

$k_h'(x’,y’):=k_h(x_h,y_h)$,\hspace{3mm}, $h=1,\ldots,d$\hspace{3mm} が正定値なので、
$$k'(x’,y’)=\prod_{h=1}^dk_h(x_h,y_h)$$
も正定値。したがって、正定値カーネル$k’$の特徴写像を$\varphi$として、
$$k(x,y)=\sum_{x’\in R^{-1}(x)}\sum_{y’\in R^{-1}(y)}k(x’,y’)=
\sum_{x’\in R^{-1}(x)}\sum_{y’\in R^{-1}(y)}
\langle \varphi(x’),\varphi(y’)\rangle_H
$$となり、$$\sum_{i=1}^n\sum_{j=1}^nz_iz_jk(x_i,x_j)=
\langle \sum_{i=1}^n
z_i\sum_{x_i’\in R^{-1}(x_i)}\varphi(x_i’),
\sum_{j=1}^n
z_j\sum_{x_j’\in R^{-1}(x_j)}\varphi(x_j’)\rangle_H
=
\|\sum_{i=1}^n
z_i\sum_{x_i’\in R^{-1}(x_i)}\varphi(x_i’)\|^2_H\geq 0
$$が任意の$n\geq 1$, $x_1,\ldots,x_n\in E$, $z_1,\ldots,z_n\in {\mathbb R}$について成立する。

Bochnerの定理の証明に出てくる積分(カーネル第1章付録)

$$\int_{-\infty}^\infty \frac{1-\cos t}{t^2}dt=\pi$$
の積分は、フーリエ変換に詳しい人はわかると思いますが、学校を卒業して何年も立っている人だとむずかしいかもしれません。

その証明のためには、$f(x)=\sin(x)/x$のフーリエ変換とパーシバルの等式を用います。まず、$F(\omega)=\pi$ ($|\omega|\leq 1$), $=0$ ($|\omega|> 1$)が$f(x)$のフーリエ変換であることに注意します。実際、$F(\omega)$の逆フーリエ変換をすると、$f(x)$が得られます。
$$ \frac{1}{2\pi}\int_{-\infty}^\infty F(\omega)e^{i\omega x}d\omega = \frac{1}{2\pi} \int_{-1}^1 \pi e^{i\omega x}d\omega = \frac{1}{2\pi}\cdot \frac{\pi}{ix}(e^{ix}-e^{-ix})=\frac{e^{ix}-e^{-ix}}{2ix}=\frac{\sin(x)}{x}=f(x)$$
そして、パーシバルの公式
$$\int_{-\infty}^\infty |f(x)|^2dx=\frac{1}{2\pi}\int_{-\infty}^\infty |F(\omega)|^2d\omega$$
を用いると、その積分の値が求まります。
$$\int_{-\infty}^\infty \frac{1-\cos t}{t^2}dt=\frac{1}{2}\int_{-\infty}^\infty \{\frac{\sin(t/2)}{t/2}\}^2dt=\int_{-\infty}^\infty \{\frac{\sin(x)}{x}\}^2dx=\frac{1}{2\pi}\int_{-1}^1 \pi^2d\omega=\pi$$

YouTubeをはじめました。「ぜうちゃねる」にご登録を。いいねも歓迎です。

テキストにそった内容のYouTube動画を作成しています。パワーポイントでスライドを作成し、Goodnoteを用いて書きながら丁寧に説明しています。各節につき1動画になっています。2024年3月の段階ではまだ第1章のみですが、2024年4月中には、統計的機械学習の数理のすべての動画が完成することになっています。ゆっくり話しているので、上級者の方は速度を125%や150%にして見ていただければと思います。

100問の解答を掲載しました。

「解答がほしい」というご要望があることは承知していました。ただ、勤務している学生(学部3年後期)が提出する演習問題にもなっていたこととがネックになっていました。解答がなくても本文を読めばわかる問題ばかりだという意識がありました。

今回、下記に関して、数学とプログラミングに関して、略解と言いながらも詳しい解答を載せてみました。ご活用ください。

2024年中には、シリーズの既刊すべてについて、解答を作成する予定です。ご期待ください。

受賞の言葉(日本行動計量学会会報2023年12月号から抜粋)

このたびは,栄えある出版賞(杉山明子賞)をいただき,大変光栄に思います.日頃から、会員の皆様から励ましていただき、助けていただいているお陰だと思い、感謝しています。

受賞の対象となった「統計的機械学習の数理100問 with R」は、2017年に阪大の基礎工数理に異動になってからはじめた講義(3年後期)の内容を書籍にしたものです。3年間教えて、2020年3月に書籍にしました。線形回帰、分類、CV、ブートストラップ、情報量基準、スパース、決定来、サポートベクトルマシン、主成分分析、クラスタリングなどの項目を含みます。

RやPythonを使ったデータ分析や機械学習の書籍は、無数にあります。しかし、「統計的機械学習の数理100問with R」は、私の教育や研究のポリシーを如実に反映した独自性の強いものとなっています。パッケージにデータを入れて出力結果をみるような、いわゆる使い方に関する書籍が多いように思いますが、そういう勉強方法に強い問題意識を持っていました。

私は、ベイジアンネットワーク(BN)の研究を長くやっていて、BNの有償ソフトやbnlearnの出力結果の解釈について、質問を受けることよくあります。しかし、残念なことに、ほとんどの場合、使っている本人が、BNの動作をわかってなく、間違っていました。それだけならまだしも、(間違った利用方法で)都合のよい結果がでたときだけ、「BNを使って〇〇の結果が出ました」というような論文を書く人がかなりいます。一般のデータサイエンスや機械学習でも同じことが言えます。正直、パッケージにデータを放りこむだけなら、小学生でもできると思っています。

ここで、そうした処理の多くは、プログラムだけでなく、数学で記述できます。「統計的機械学習の数理100問with R」は、数学の各段階をソースコードで正確に書いて、動作を確認しています。このようにすると、自然と数学的なロジックもついてきて、データサイエンスに必要な本質を見る姿勢ができてきます。業務でパッケージを用いることは否定しません。しかし、勉強の段階では、ブラックボックスにしないで、動作を確認すべきです。そして、正しい結論を世の中に提供するという本来の使命を果たすべきだと思っています。

「統計的機械学習の数理100問 with R」は、「機械学習の数理100問シリーズ」という共立出版から出している書籍の1つで、「スパース推定100問 with R」「機械学習のためのカーネル 100問 with R」とそれらのPython版、最近では「渡辺澄夫ベイズ理論 with R」など合計で7冊出しています。定年までの2年数ヶ月であと5冊完成させる予定です。以前は、BNの他に情報理論、代数幾何を用いた暗号などを手掛けていましたが、2017年に現在の職についてから、データサイエンスの種々のテーマを希望する学生が多くいることがわかり、それまでのやり方(守備範囲が狭すぎる)ではやっていけないと思い、自分の勉強のためもあってこのシリーズの執筆を始めました。

今回の受賞で、機械学習の数理100問シリーズを始めてよかったと実感しました。また、先日の行動計量シンポジウム「WAIC/WBICの理論と実装:渡辺澄夫ベイズ理論への招待」に多くの方(約170名)にご出席いただいき、むずかしそうに見える理論をわかりやすく伝えるという貢献をしていく必要があると思いました。さらなる努力を続けていきたいと思っています。皆様、今後ともよろしくお願いします。

鈴木 讓 (すずき・じょう)
大阪大学大学院基礎工学研究科教授
早稲田大学理工学部卒.早稲田大学大学院修了、博士(工学)。早稲田大学助手,青山学院大学助手を経て,1994年に大阪大学講師に着任。理学研究科准教授を経て、2017年より現職.この間,Stanford大学(1995-1997),Yale大学(2001-2002)の客員研究員。日本行動計量学会 理事(2018-)、運営委員会委員長(2018-2021)。BehaviormetrikaのCoordinate Editor。

統計的機械学習の数理100問 with Rが、日本行動計量学会出版賞を受賞

鈴木讓著『統計的機械学習の数理100問 with R』が2023年度日本行動計量学会出版賞(杉山明子賞)を受賞しました。受賞理由は、「本書は、機械学習を実際に行うことを通じて基礎的な仕組みを理解させるもので、行動計量学に携わろうとする研究者が研究をおこなっていく基礎力の修得をさせ、将来的にも理解して活用する研究を進めるのに多大の貢献が期待され,出版賞に十分値する。また、著者は、機械学習の数理について一連のシリーズ本を書いており、そのことの意義も大きい。」ということでした。8月28日から31日まで青山学院大学で開催された日本行動計量学会第51回大会で、狩野裕理事長(大阪大学)から賞状と副賞をいただきました。