講演者:日野 英逸(筑波大学)
題 目:微分エントロピーのノンパラメトリック推定とその周辺
日 時:2016年6月6日(月) 17:00-
場 所:早稲田大学西早稲田キャンパス63号館 4階 420教室
今倉 第16回ぐらいです.日野先生に来ていただきました.
僕と同じ筑波大学のシステム情報系にいらっしゃって,僕と全く同じタイミングで助教になられました.
京都大学で2005年に修士を取られて,その後日立製作所に入り,2年半ぐらい.その後,この早稲田の理工学部ですか.
博士課程に入って助手とかやりながら東大の協力研究員とかされて,その後早稲田の助教を経て,2013年筑波大学の教員になられました.
ご専門は機械学習とその周辺で,僕もあまり詳しくないですが,すごい広くやられているなという感じは受けます.
今日のお話は,微分エントロピーのノンパラメトリック推定とその応用です.よろしくお願いします.
日野 ご紹介をいただきましてありがとうございます.筑波大の日野です.
自己紹介が一応書いてあるんですけれども,さっき今倉さんが話してくれたとおり,
京大の数理工学というところを卒業しました.卒論のテーマは偏微分方程式の保存量に関するLie-Baeklund変換でソリトン方程式とかの保存量からまた別な保存量が作れますねみたいな話です.その後,修士では大学院数理工学専攻の中の数理物理学講座力学系理論分野研究室というところに入りました.
そこのボスは古典あるいは量子系の多体問題とかをやっている人だったんですけれども,私はミーハーだったのでそのころはやっていた量子計算アルゴリズムの微分幾何学的な解析というテーマで修論を書きました.大学の学部に入った時点から研究者になるつもりでいたのですが,数理物理は厳しそうだと判断し,会社に入りました.ただ,やっぱりアカデミックに未練が出てきまして,いろいろな人に相談した結果,早稲田の村田先生のところにしようと決めて会社を辞めて早稲田に入学しました.
実は博士に入ってからどうやら機械学習という分野があるということを知って.ここで3年間勉強をして,データ解析・機械学習を主に研究分野としています.早稲田で学位を取ってから助手・助教・ポスドクを経験して,2013年から筑波大学で,今倉さんと働いています.専門としては数理工学と,その考え方の下で機械学習をしています.
具体的にはいろいろやっていまして,大きな話としては,やっぱりデータ同士のうまい距離を決めるとかそういう話が好きです.距離とか位置.そのデータというのは,例えば普通のベクトルデータだけではなくて,グラフの形をしているデータ同士のグラフ同士の類似点とかそういうものをやっていますし,あとは時系列同士にどういう距離を入れるとうまく解析ができるかというものも興味があります.あとは,今日お話しするのはエントロピーや密度関数とかそういった情報論的な量の推定とその応用で,あとはカーネル法と呼ばれる機械学習の方法とかです.
では,本題に入ります.
エントロピーを初めとする情報論的ないろんな量,確率密度関数とか情報量とかあるいは微分エントロピーですね.離散的な情報源のエントロピーだとここの積分が足し算になるし,ログもナチュラルじゃなくて普通ビットではかると思うんですけれども,今回のお話は背後にある分布が連続的な場合,いわゆる微分エントロピーと呼ばれる量を推定することを考えます.あとは,Shannonのエントロピーがメインなんですけれども,一応,Renyiエントロピーのような別のエントロピーも大体同じようなやり方でノンパラメトリックス推定ができることが多いです.
エントロピーの関連でクロスエントロピーとかも御存じかと思いますが,あとはKullback-Leiblerダイバージェンスとか相互情報量とか,こういったものももちろんエントロピーあるいは今回のお話の対象になります.ここにいる方たちには特に動機づけをする必要もないかもしれないかもしれないんですが,こういった相互情報量とかスケールダイバージェンスとかエントロピーがわかると,工学的な応用としては例えば独立成分分析ができたりとかクラスタリングができたり次元削減というのが出来ます.独立成分分析は,例えば原信号がn個あって,これがn個のセンサー,一般にnはmより大きいんですね.このn個のセンサーを使って観測したデータからもとの信号を復元する話です.線形なミキシングを考えていて,それのデミキシングをする行列Wを推定するのが目的です.ここでこういう混ざってしまった信号からもとの信号を推定したりするときの基準として,もともとの信号は独立,統計的な意味で独立であるという基準でそのあと原信号を復元するこの行列Wというのを推定するやり方が独立成分分析.このときにやっぱり各信号,Wで戻したYのほうの信号が独立であるという独立性をはかる尺度が必要で,このときに相互情報量を使うということは多いです.こういう混ざった信号の分離は,音声とか脳波のデータとかの解析によく使われています.
あと,クラスタリングにもエントロピーなどが使えます.代表的なクラスタリング手法の一つであるK平均法は言ってみたら混合正規分布を仮定して,混合正規分布の各要素の平均ですね,平均ベクトルを推定している問題と,これは確率モデルとしては等価になっています.その上で,各クラスタの中に入っているデータの分散を最小にするという基準になっています. 分散を最小にするということに着目すると,エントロピーというのはある種分散の一般化のようなもので,データのばらつきを特徴づけるというふうにも考えることができて,あるデータがこのクラスタに属するという情報を与えた条件つきのエントロピーを最小化するという基準でクラスタリングを行えば,凸な分割以外のものも実現できるということで,こういうやり方を情報論的クラスタリングという機械学習の分野では言うんですけれども,かなり複雑な形状のクラスタも条件付きエントロピーとかを最小にするという基準で最適化をする形でクラスタの割り当て決めてやると,うまく分けることが出来たりします.
あとは,さっきと話は似ているんですけれども,教師つきの次元削減方法としてフィッシャーの判別分析とかいうのもよくあります.これは,クラスで条件づけたクラス内の分散です.クラス内の分散はできるだけ小さくして,クラス間の分散はできるだけ大きくなるようにデータを線形変換しましょう.それで線形に分類がやりやすくなるように次元を削減しましょうという方法です.
理論的にはこの密度関数がわかってしまうと,当然エントロピーも相互情報量もKLダイバージェンスもわかるので,統計的な学習というのは何でも大体できてしまうんですが,個別にエントロピーとかを考えるのは,推定する推定量,推定の方法に対する条件が変わってくるわけです.密度を推定するのは結構難しいんです.密度推定の場合には,そのデータの数を増やしたときに正解に近づく近づき方というのが確率収束や分布収束という収束の仕方だったのが,エントロピーというふうに1回対数をとって,期待値をとってやったものを考えて,確率密度関数に条件を幾つか加えると概収束という一番強い収束の仕方で収束するということが示せたりもします.
あと,タイトルにあるエントロピーのノンパラメトリック推定のノンパラメトリックとパラメトリックの話です.統計モデルにはパラメトリックモデルとノンパラメトリックモデルという分類があります.パラメトリックモデルというのはデータが例えば正規分布から出てると思えば,平均と分散という二つのパラメーターで記述できるといった具合に,少数個のパラメタで記述出来るモデルです.背後にそういうモデルを考えて観測したデータからそのモデルのパラメーターを推定することが目的です.パラメトリックなモデルは理論的にもクリアで,あとは推定の対象は少数のパラメーターなので観測するデータが少なくても利用が可能で安定しているという利点があります.モデルは今考えている問題に合っていればものすごい性能はいい.当たり前と言っては当たり前ですけれども.ただ,このデータの生成プロセスはこれですというモデルをこっちで決めてしまうので,当然現実からのバイアスが,モデルを決めたことによって生じてしまう.一方,ノンパラメトリックなモデルというのは,データだけから推論を進めることができて,要するにモデルを仮定しない,特定のモデルは仮定しません.
なので,バイアスがそういう意味で小さくて,一方で不安定さというのがあって,たくさんデータがないと信頼できる解析,推定というのは望めません.
さっき紹介したような独立成分分析とか,次元削減のように,まず次元削減をやってみて,可視化してみましょうとか,そういういろんな方法を試してみてとっかかりを見つけるような解析のことを探索的なデータ解析と言います.これでデータに関して大体感覚がつかめたら,じゃこういうものと仮定してより深く解析したりとかするわけです.私がさっき紹介した方法は大体この探索的データ解析として使われることが多い方法なので,事前に知識がない状況で使う,つまり事前にモデルは仮定しないで済む方法が望ましい.だからノンパラメトリックなアプローチというのが有用です.
大石研究室の人たちには,アナログ情報源に対してユニバーサル符号化をするようなイメージだというので伝わるのでしょうか.
Q,何でしょう,ユニバーサル符号化って.
日野 ユニバーサル符号化というのは,符号化は符号化するときの信号の分布というのはある程度決めてやって,それに従っているということで冗長性を潰してデータを符号化なり圧縮なりするんだけれども,そのデータが従っている分布自体をデータから1回推定して,特にモデルを仮定しないで符号化なり圧縮ができる方法です.すごくいい加減な言い方ですが.
Q,信頼する箇所はどこになるんですか.つまり,何かを言わなきゃいけない,何かを言う際に,今のノンパラメトリックだとデータがたくさんないと信頼度はないようにも聞こえたんですけれども.
日野 そうです.データがたくさんないと性能が上がらないんですね.
Q,そうですよね.かなり難しいですよね.あるんですかそのデータの量はこれだけあれば十分みたいな基準は.
日野 オーダーは出ます.そのあたりの議論をしましょうと.
カーネル密度推定は皆さんはご存じですか.これは,確率密度関数をノンパラメトリックに推定する方法で一番よく知られているものです.
今,簡単のために1次元のデータを使います.観測データが1からnまでxiというのがn個あるとします.これが独立で同一な確率分布から生じたサンプルだと思って,これのデータの背後に生成メカニズムとしてある確率密度関数というのを推定するという問題設定です.もっともプリミティブな方法は,ヒストグラムを書くという方法です.密度関数があって,平均0で分散が1のものと平均が3で分散が1の密度関数が5対3の比率で混ざり合っているもので,確率密度関数を書くとこうなる.これらの分布からデータを生成して,ヒストグラムを書くとこういう形になる.
カーネル密度推定というのは,このヒストグラムをうまく鈍らせてやる方法です.ヒストグラムはこのある幅に落ちたサンプルを数え上げて,このあたりに落ちたサンプルの数が幾つかカウントして密度を近似するものなので,それを連続的に鈍らせましょうということです.鈍らせる方法としては,こういう鈍らせ方をする.このΚというのがカーネル関数と言われるものです.このΚのカーネル関数というのはいろんなものが考えられるんですけれども,もう例えばこういう正規分布の密度関数そのものみたいなものをΚとして持ってくると,さっきのヒストグラムでここに1個落ちました.ここに1個別に上げましょう,ここにもう1個落ちた.これがもう1個落ちたら拾います.こういうものをたくさん積み上げていくと,さっきのヒストグラムが高いところはこれがたくさん積み重なる.1個1個のデータの寄与は滑らかになるので,それの足し合わせたものも滑らかになっていって,こういうふうなものを期待する.
カーネル関数のここの幅というのはパラメーターなんですね.これの幅はバンド幅と今呼んでいるもので,そのカーネル関数の線形結合でヒストグラムを近似しましょうというのがカーネル法です.普通はこのΚというのは対称で単峰性,山が1個のような,さっきの正規分布のようなものが使われます.このカーネル関数は色々あって,どのカーネル関数がいいかという研究もあるんですけれども,カーネル関数の選択よりもこのバンド幅を決めるのがカーネル法の大事な話で,このあたりからぐっと数理的になってくるんですけれども,バンド幅の良さの議論のために密度推定そのものの良さというのをいっぱい決めなきゃいけないんです.
各点,x軸の各点における確率密度関数値の推定結果の良さというのを,mean squared errorというもので評価しましょう.これは一般にパラメーターを何か推定したとして,このときのmean squared errorというのは,これは真のパラメーターだと.それを推定したものだと,それの差の期待値でmean squared errorは定義される.これを展開すると,推定した値の分散と,あと推定した値の期待値が平均が真の値からどれくらい離れているかの二乗というふうに分解できます.これは第1項のことをバリアンスと呼んだりします.ばらつき具合.第2項のことをバイアスと呼ぶ.真のものがθなんですね.真のものから推定値の平均がどれくらい離れているのか.あれのルートをとったものが本当はバイアスなんですけれども.
今やっているこの密度推定の場合には,この密度,カーネル法で推定したこれですね,これの期待値をとりましょうと.何に関する期待値かというと,さっきの,今ここでの確率関数値を評価するんですけれども,こっちはデータです.確率変数としてのこのxiの部分ですね.これは確率変数なのでこれに関して期待値をとってやりましょう.確率変数の密度関数を掛けてその関数を積分してやったものが期待値の定義です.この定義は,畳み込みになっています.この畳み込みの記法を使うとこのカーネル法で推定した密度関数値の期待値と,あと真の密度関数値の差,つまりバイアスというのはこういう形で書けます.分散に関しても同じようにちょっと形は面倒くさいんですけれどもこんな形で書けます.以上より,さっきのmean squared errorというのは分散とあとはバイアスの二乗で掛けるので,それをカーネル密度推定の場合にも適用してやると,カーネル密度推定をしたときの1点xでの推定値のmean squared errorはこういう形で書けます.今,確率密度関数というものを推定したいのに,1点xでの評価しかしていない.そこでxに関しても積分しなければいけない.xの定義域全部で積分したものがintegrated SE,これはまだ期待値をとっていないです.期待値をとらないでこのf(x)の期待値をとったのがさっきのmean squared errorですけれども,積分しただけ,あとでMISEというのを定義して,xに関して積分した上で観測データに関する期待値もとっているということをやるんですけれども,まず積分です.普通これはL2でこの関数としての違いを測っています.このintegrated squared errorは期待値までとらないとたまたま観測したデータに関する良さだけであって,観測データが従う分布に関する期待値までとってやることでやっと推定方法そのものの良さという尺度になります.それを実際データに関しても期待値をとってやったものがMISEと呼ばれる.一応,ここは期待値と,このx,ここに入る引数に関する積分と,あと期待値にかかる積分というのは交換可能であることは仮定して,mean squared errorをxに関して積分したものと書いてもよいとします.これは,定義を計算すると一応こういう形にはなる.畳み込みの記法で少しコンパクトに書けます.
Q,hはnによっては決まらないんですか.
日野 そこが今からやるところです.今,hは与える,決めなきゃいけないパラメーターとしておきます.nはサンプル数です.
このMISEというのを推定量の良さの基準として,これをhに関して最適化しましょうという話になります.バンド幅を決めるときには,テクニカルな仮定が幾つか必要で,この推定対象の密度関数がC2-級,つまり2回微分可能で微分結果も連続とか,あとL2というのはL2可積分の意味なので,そのぐらいは仮定します.あと,バンド幅というのは,直感的な話になってきますが,データが増えれば増えるほどバンド幅は小さくしたほうが良さそうな気がしますよね.このhnというのがバンド幅でこれをだんだん小さくしていくんですけれども,簡単なためにこの添字nは省略させてもらうんですけれども,nが無限大になったときにバンド幅は0に行くようにしましょう.でも,nhは無限にいくぐらいの早さにしましょう,とします.例えばルートn分の1ぐらいの早さで狭くなってくるとかですね.あと,カーネル関数に関しても,原点対称性とか,4次のモーメントまで有界とか,幾つか要請はします.
さて,さっきの確率,カーネル法で密度推定をしたものの期待値の中に出てくるfをhに関してテーラー展開しましょう.テーラー展開をしてから期待値をとるので,これにf(x)を掛けて積分をするということになります.Κ(z)を掛けて積分をすることになるから,カーネル関数が原点対称という要請から1次の項は消えることが保証される.2次が残ってこういう形になるわけです.これから真の値を引いたものがバイアスと呼ばれていたものなので,バイアスというのがバンド幅の2乗のオーダーでこういうふうに評価できる.
この時点でわかることなんですけれども,hというのは今0に収束するはずなので,サンプル数を無限に持っていったときには,このバイアスは0になります.あとは,もう1個わかることは,真の確率密度の2回微分が出てくるので,確率密度推定というのは曲率が大きい確率密度関数の場合では精度が落ちる.バイアスが大きくなる,そういった事実がわかります.
分散に関して同じように計算をします.今,一般に関数の2乗の積分のことをR(g)というふうな書き方をすると,カーネル関数Κに関してもRという記法を使ってやって,この分散の項はこういう形に書けます.さっきの仮定の2番でhは0に行くし,nhは無限大に行くという話と,あとカーネルは有界であるという条件を使うと,nhが無限大にいくので,nh分の1がかかっている.あと,Κやfというのは有界だという仮定があるので,リーディングタームもn→∞で消えてくれるはず.なので,これも分散に関しても漸近的に∞にすれば0になることはわかります.mean squared errorというのは分散とバイアス2乗の和だったので,さっき計算したバイアスの2乗とここに示した分散というのを足して,mean squared errorはこういう形でオーダーではhに関するオーダーがこういう形で入った展開ができます.さらに可積分性の仮定からmean squared errorを積分して,所望のmean integrated squared errorという推定量の良さというのが計算できます.
このバリアンスとバイアスと残りの部分とに分解しておいたので,その大事なバリアンスとバイアスの部分を特にasymptotic MISEと呼んで,これがリーデンィングタームとして残っている部分.これをhに関して微分して0と置くことで,漸近的にnが∞のときに理想的なカーネルバンド幅というのが求まる.なので,nが,さっきnhが無限にいく,hは0にいくと言いましたけれども,その例としてhとしてルートn分の1と言いましたけれども,実際にはルート5分の1とかが出て来る.-5分の1,5分のnか,n乗とかが理論的には良いバンド幅の決め方です.
ただ,バンド幅を決めるときに,真のfの2回微分の情報は必要なので,あくまでnのオーダーでどのくらいかということしかここではわからない.
Q,それだとhが決まらなくなっちゃうんですか.
日野 そうなんですよ.hはだから決まらないです.
Q,最適なものが決まらない.
日野 最適なものが決まらない.そこでよくやられるのは,パラメトリックにfを1回推定しておいて,それの2回微分の情報をここにプラグインする.それを1回やって,あとに得られたカーネル密度推定で推定した関数を改めて2回微分したものをもう一度入れ直すとかというのを繰り返して向上していくみたいな.
Q,今nはどのくらいの数を想定されているんですか.
日野 nは次元とかにも一応もちろん依存するんですけれども,さっき見せたこれは1次元のときに確か3,000とか5,000ぐらい使っていますね.これが100だとちょっとつらい.でも,パラメトリックな場合に例えば正規分布のパラメーター推定は1次元だったら100もあれば普通は十分.アプリケーションによるんですけれども.あとは,次元が増えるとどんどん悪くなっていきますね.ノンパラメトリックの方法は特に.
Q,ノンパラメトリックのほうは,正しい関数が正規分布の和じゃなくても大丈夫なんですか.
日野 もちろん大丈夫です.
Q,それでちゃんとずれが.
日野 真の密度は2回微分可能連続でL2可積分が出来るという仮定が必要ですが,その上で十分にデータが有れば大丈夫です.
Q,L個の関数の和でしか言及していないんですよね.それでもいけてしまうんですか.
日野 これはnが無限にいたときなので.
Q,曲率が大きいと推定が悪い.
日野 それはここですね.
Q,これは,真に推定したい密度関数が鋭いことを推定しにくいということを語っているんでしょうか.
日野 語っているんですね.だからピークは追従しにくいですね.
Q,それくらいhがセンシティブということなんですか.
日野 そういうことですね.
そろそろ,自分が行った研究の話に入ります.
その点での確率密度関数値を推定したい点をzと書いて,検査点と呼びます.n個ある観測データを使って,そこでの確率密度関数値を推定することを考えます.今考えているzという点から観測データでそれぞれ距離を計算します.その距離でソートをするわけです.ソートして,この検査点z,今,確率密度関数値を推定したい点からk番目に近い点までの距離をεkと置きましょう.あとこの検査点というのを中心とする半径εの,今はデータがp次元だと思っているんですけれども,p次元のハイパーボールのことをb(z;ε)と書きましょう.この超球の体積というのは,cp×(εのp乗)でかけて,このcpというのは,p次元単位球の体積,これはγ関数を使って定義されます.もちろん,これはp=2を入れれば,π2乗になる.直感的なイメージなんですけれども,観測データがこの白抜きの丸で書かれていて,zでの確率密度関数値を推定したい点が赤い☓です.半径εのボールというのを考えると,そのボールにεを変えると当然ボールの中に入ってくる点の数は変わるわけですよね.この半径ε,z中心の半径εのボールの中に含まれる確率質量というのを考えましょう.これが定義なんですけれども,このボールの中で確率密度関数を積分しておくんです.確率密度というのは密度なので,全領域で積分して1になりますから,それの割合ですね.
f(x)をzにおいて推定したいんです.そのためにまずこの左辺は,左辺つまりこの確率質量の値というのは,全体分のεボールの中の体積なので,観測したデータの言葉を使うとn個ある,全体でn個あるデータのうちにこのεボールの中に入っているデータの数の比率で近似できるでしょう.このボールの中に入っている赤丸の個数をkと置きます.εでkは決まるのでkεと書いたりもするし,逆にkを指定してやってそれからεを求めるというのでもどちらでも良いです.
さっき,確率質量の値の近似ができました.もう1個別な近似をしましょう.この定義式.この定義のf(x)の部分をテーラー展開します.やっぱりテーラー展開.p次元なので微分はナブラに変わるんですけれども,こう展開されて,f(z)というのはこれは定数です.あとここなんですけれども,(z-x)のx関しては積分をするんですけれど,今積分範囲が点zを中心としたεボールなので原点に持っていくと原点の周りでの積分になる.それは,これは1次関数の積分なので,対称性から0になる.なので,このεの2乗の項が次に残ってくるわけです.同じようにこれは3乗とか奇数時の項は消えて偶数だけ残る.ということで,ここのボールの体積はさっき言ったcp×(εのp乗)なので,こういう形で確率質量が近似できた.2通りの近似ができまた.これをイコールでつないでしまって,f(z)を持ってくるように両辺をεpとcpで割ってやるのがk近傍法と呼ばれるやり方で,今確率密度関数を推定したい点からの観測データの中でk番目に近い点までの距離というのをもとにした密度関数値の推定ができるわけです.
これはさっきのカーネル密度関数と違って,zというふうに1点に決めた上でしか使われないです.さっきのカーネル密度関数なんかは,全領域での密度関数,関数そのものが推定できたんですけれども,ここは評価したい点での関数値の点推定です.そういう意味では欠点はあるんですけれども,その分ちょっと細かい話になるんですけれども,安定していると言いますか,サンプル数が少なかったりあるいはデータが,次元が少し高くなっても精度の劣化が少ない,というのがあります.
さっきのがノンパラメトリックな確率密度関数の推定方法の基本的なもの,カーネル密度推定と,あとk近傍法を見ていて,同じような感じでエントロピーとかダイバージェンスとかも一番ナイーブにはさっき推定した密度関数値をKLダイバージェンスとかエントロピー,相互情報量の定義にそのまま入れてやるという形で推定ができますし,もう少し最初からそのエントロピーを推定するというふうにターゲットを絞って,アイデアとしては似た感じでk近傍を使うとかそういった中で個別の推定量というのはたくさん出ています.
この後から私の仕事なんですけれども,2次の推定の話をして終わりにしましょう.問題設定はさっきのk近傍法,εボールの中に入る話と一緒.やっぱり確率質量関数というのを考えます.さっきは,1回微分して,1回微分すると1次の項は対称性から消えるので2次だけ,2次はオーダーとして無視してしまっていました.
2次の展開をちゃんと計算するとこうなります.さっきも奇数次の項が消えると言ったので,ここですね.このオーダーをε2というふうにごまかしていたところは,ちゃんと計算するとこの形になります.さっきfの2回微分となっていた部分は,これは今多次元のものを最初から考えているのでナブラの二乗がついて,それのトレースという形になっています.さっきまでは,だからここはなかったんですよね.なので,これをn分のkで近似してやって,これとこれで両辺を割ってやるとf(z)というのがぱっと出てきた.でも今回は無視したくない,ここを無視しないというのが今回の話なんです.無視しない,どうやればこの2乗の曲率の情報を入れられるかという話なんですけれども,この左辺をn分のkで近似するという点は一緒です.両辺をcpεp乗で割ってやりましょう,そこまで一緒なんだけれども,ここの部分は捨てないで,ただ記法が煩雑なので,これはp+2乗で,これは両辺をεpで割っているのでεp+2が残る.係数はcとしておいてやっているわけです.それでこう掛けます.εの4乗のほうは捨てましょう.実は捨てなくてもよくて,4乗だろうが6乗だろうが取り込めるんですけれども,実験的に全く性能に変化はなかったので,そこまで高次は考えないです.
この左辺,この部分をYεと置きましょう.εに影響するのは当然Yεで,ε2をXεと置きましょう.そうすると,これはもうY=a+bxという線形な関係になります.この関係というのはεが異なる値をとっていても成り立つわけですよね.
これは線形回帰だと思える.つまり,εをいろいろ変えて,さっきのYと書いていたのがn分のkεがいろいろ変わる.xとなっているx2の部分も変わる.なので,いろんなεをとってきて,各εで決まるxyの組みをデータだと思って,そのデータに対して1次式をフィッティングするわけです.フィッティングした切片がf(z)の推定量.
あとは,エントロピーを推定するという話なのでf(z)のというところのzのところに観測データのi番目を入れて,残りのn-1個のサンプルでf(xi)の値を推定してやる.それの対数をとったものの期待値,経験平均なのでn分の1したものにマイナスをつけたものをそのエントロピーの推定量だとしましょう.これをSimple Regression,単回帰に基づくEntropy EstimatorということでSREと呼んでます.
さっきのは,単回帰に基づいて確率密度関数値を一定にして推定してから,あとはそれを使ってエントロピーを経験平均で求めてあげた.今度は,エントロピーを直接推定しにいきましょう.ここまでさっきと一緒です.この各Yεとかこの係数cというのはxi,i番目のデータを検査点とするとiに依存するので,今後は係数も添字もつけていきます.
これの対数をとってマイナスをつけたものというのを考えましょう.それをさらにサンプルiに関して全部足します.そうすると,左辺にlogをとって全部iでデータに足してやってマイナス2分の1したものというのは右辺になっていて,最後のところでlogの1+xの近似というのがあるじゃないですか.logの1+xのテーラー展開を使うとこういう形になる.これは,もう一度最後の式だけ書き直したものなんですけれども,これのここです,これはエントロピーの推定量にほかならない.なので,この左辺,これをYεだと置き換えてやります.これは全データを使ったものです.さっきは1個1個のデータな関してεを書いて作っていたんですけれども,まずこの全データに関してこういう要件.これは推定したエントロピー,一番最後の項も全部のデータに関して足して記号を整理してやると,結局こういう関係式が出てくる.これもやっぱりεを変えたいろんなεに関して成り立つ式なので,こいつに対して1回だけ線形回帰をやるとその切片として直接エントロピーの推定量は出てくる.さっきはだからf(z)という,f(xi)という一点を線形回帰の切片として求めて,それからエントロピーを推定していますけれども,今度はこういう形にしてやると回帰のフィッティング1回でエントロピーが求められる.こっちはダイレクト,直接エントロピーを当てにいっているからDirect Regression Entropy Estimator なんて呼んだりもしています.これはさっきのSimple Regressionに基づくものと同じ論文で提案しています.
まとめです.回帰式とみなして,εの半径を変えてフィッティングをすることで密度あるいはエントロピーを推定するというアイデアです.二つ考えました.
真のエントロピーがわかるような分布と,あとその分布から生成したデータに対して推定エントロピーの絶対誤差を良さの基準だとして,これを100回データセットをランダムに繰り返し作ってやって計算して評価しました.対象とする分布は今のところ全部1次元のデータなんですけれども,正規分布だとかちょっとひずみがある分布だとか,強くひずんでいる分布だとか,ちょっととんがっているやつとか,いろんな分布です.これに対してこれはエラーなので小さければ小さいほど良い.ちょっと見づらいかもしれないけれど,左からk近傍法で推定した確率密度関数値の経験期待値でエントロピーを推定したものと,あとSREで,これも私の提案法の一つでこれは直接推定するもの.常にどれがいいとか,そういうことは言えないんですけれども,おおむね良いですかね.ちょっと微妙なところはあるんですけれども.
あとは,提案している方法は曲率まで考えているというところが既存のk近傍法と違うところです.コーシー分布でこのγというパラメーターを変えると曲率が変わるので,コーシー分布を使って曲率の影響を見てみます.コーシー分布の密度関数の2次の導関数はこのような形になります.これはγを変えると曲率がいじれる.なので,曲率を振ったときにさっきの精度がどのくらい変わるのか.比較対象としては,1次までしか考慮しないk近傍法で推定したものの誤差からのインプルーブの度合いです.2次まで考慮した場合のインプルーブの度合いで,これは横軸が曲率,ちょっとスケールは変えてあるんですけれども,曲率で縦軸がその向上の幅で,この曲率が小さいところでは負けています.でも曲率が大きくなると勝つようになるという,一応予想した結果にはなっている.
Q,曲率が小さいときに負けるのも予想どおりなんですか.
日野 ある種,与えられたn個のサンプルから得られる情報を曲率の部分の係数の推定にも使ってしまっているわけですね.すごい直感的な言い方なんですけれども.
Q,従来法は0軸近似になりますね.それは,εを変えない一発勝負なんですか.変えて平均をとるみたいなものは使っていない.
日野 εは,実用的には一発勝負なんですけれども,この場合はεを変えていますね.変えて,最良のものを一応とってきてはいるんですけれども.
以上です.後半の話としては,高次の展開までして多項式回帰を使ってエントロピーを推定する方法を提案した.既存の方法と比べて勝ったり負けたり,割と勝っているほうが一応多かったかなという感じなんですけれども,やっぱり漸近特性が不明でnを増やしたときにどのくらいのレートで行うかとか,あとε候補を幾つか選んでいるけれども,それをどうやって選べばいいのかということもちょっと見つけられていない.あとは,応用,工学的な応用というのを実際に,さっきのおもちゃのデータでしか私はやっていなくて,そこはまだこれから先の話かなという感じです.
Q,最後のところで,幾つかのεっていうのはテストしてみて,良かった度合いが問題で,うまくいく特徴というのはあるんですか.
日野 それが難しいですね.見つかっていないです.本当はそこまでがっつり実験して探せられればいいんですけれども,なかなか見つけられていないですね.
Q,εの距離の得られ方は増やせば増やすほどいいというわけでもないんですか.
日野 増やせば増やすほど,さっきバイアスとバリアンスの問題と言いましたけれども,そういう基本的に統計に出てくるエラー,誤差はバイアスに起因するエラーと,あとはバリアンスにエラーと,あとモデルの設定が悪いエラーというのが三つがあるんです.モデルの設定が悪いエラーというのは,ノンパラメトリックの場合には基本的にはなくて,バイアスとバリアンスで,εをふやすとデータがたくさん入ってくるので,使えるデータがふえるということは,バリアンスが減るんですけれども,かわりに遠くのほうのデータまで使うと今εが小さいところで近似をしているので,そこの近似が外れるという意味でバイアスが入ってきます.なので,こうした議論でいいところというのがどのあたりかというのは何となくわかるかもしれないんですけど,そこまでまだできていないです.だから,εが小さいと本当に自分の周りのほんの数点しか使わないことになって,そうなると少数の点から推論をするという意味でのバリアンスが大きくなります.
Q,途中の直接推定と点ごとに推定するのがありましたが,直接推定というか展開を推定するときは,1次関数を全員でそろったものにフィッティングしましょうみたいな視点ですよね.そうすると,個別にやるより精度は落ちるんですか.
日野 その1回で済ませてしまうことで落ちるという効果と,あとは線形のフィッティングのエラーが蓄積しないで済むという効果があります.
司会 ありがとうございました.