形状を把握することができるかもしれません。ところが、そんなのは幻想であって実際に無限回の観測を行うことはできません。我々が知ることのできない分布なのです。何らかの数式で与えられます。ところで、そのモデルは万能でしょうか。左右対称な形状をしているならば、左右非対称な分布を表現することはできません(例えば、正規分布は平均を中心に左右対称だ)。工夫に富んだ、表現力豊かな分布を使えば良いのでしょうか。それでも、真の分布を知らないのだから、"ざっくりと"作った確率モデルが、真の分布を形状を捉えるに足るかは、やはり知る由もないのです。確率モデルは無力なのでしょうか。確率モデルは、真の分布を表現するには足らないものかもしれません。表現できる範囲の中では真の分布に近いであろう形状に仕立て上げることができる」ということを意味しています。なあんだ、やっぱり真の分布を知ることはできないんじゃないか...と思うかもしれません。当てずっぽうで物事を予想するよりはマシな道具を獲得できる、というのは十分に便利で強力です。それが確率モデルです。確率モデルを作るさて、確率モデルをどのように作れば良いのか、ということが重要になります。今、観測されたデータをヒストグラムで表現してみました。このデータを発生させている真の分布は(私を除いて)この世の誰も知らないという状況です。このデータを見て、どのように確率モデルを作ればよいのでしょうか。偶然かどうか定かではありませんが、形状が左右非対称に見えます。いうことは、正規分布のような左右対称の分布を使うのはミスマッチであると言えるのでしょうか(これは時として批判を受ける事柄である。最小二乗法は誤差を正規分布と仮定したときの最尤推定の結果に等しい。あるから、もしも非対称にバラついているような状況で、最小二乗法を用いるのはおかしいという指摘である)。実際のところは、それは場合によるとしか言えないのです。「左右非対称に見えるデータに対して、左右対称な分布でモデル化を行った場合、どう考えても真の分布にはなりえないじゃないか?」と思うかもしれません。確率モデルを作ろうと思ったその段階で、私達は「真の分布それ自体を知るすべを持ち合わせておらず、真の姿を知ることを諦めている」のです。このデータを集めた理由、すなわちモデル化した末にどのように便利な道具として確率モデルを使いたいかに応じて、あてがう確率モデルは設計者が決めることであると言えます。"ただ1回だけ"採掘命令を送るという意思決定のためであるとするならば、最も可能性の高そうな尖った部分だけに興味があるはずです。いった場合には、極端な話、最頻値だけを調べれば良いことになります(確率モデルの話からそれているようだが、実際、最頻値を得ることは、デルタ分布でモデル化するのと変わり無い)。上記のデータに対してどのようなモデルを設定するのかは、左右非対称であることを上手に表現すべきであるのか、裾の広がり方を十分に把握したいのか、など、自分が知りたいと思う粒度によって決められることなのです。(もちろん、左右非対称なヒストグラムが得られており、その形状に特に興味があるような状況で、正規分布を設定したならば、それは設計ミスであると言えるかもしれません。)言えるのは、確率モデルと統計学が提供してくれるのは、データに対して確率モデルをあてがったときに、「データに対して確率モデルが妥当なものになるように調整する手立て」だと言えます。この手立てをどのように利用するかは設計者に委ねられるということです。複雑なモデルを使うことが最善手であるかさて、自分の知りたい粒度を考慮して確率モデルを作ったとしましょう。今、綿密に、データの形状を考慮して十分に複雑なモデルを仮定したとします。完璧にデータの形状を表現することができたとしましょう。それは、今後の応用を考える上で最高傑作が出来たと言えるのでしょうか。ここで重要になるのは、得られているデータが(我々の知る由もない)真の分布の姿を伝えてくれているかです。真の分布を知ることを諦めたはずだったのに、今更何を言い出すのか?と思うかもしれませんが、これは非常に重要なことです。我々はデータに対してモデル化を実施しました。今後、新たなデータが得られるとき、そのデータはどんな分布から生ずるのでしょうか。今、我々がモデル化した分布から生ずるのでしょうか?当然違います。データは相変わらず真の分布から生成されるのです。手元のデータで綿密に設計された確率モデルは、あくまで手元のデータを再度生成するというシミュレーションを上手に行ってくれるものにすぎません。$$というサンプリングシミュレーションが、高い確率で実現できるように調整されたものになっているのです(最尤推定の場合は...だが)。それ自体を表すのに十分でしょうか?冒頭でも述べました。完全に把握することは有限のデータでは不可能なことです。最高傑作であると言える保証などどこにもないのです。データが少ない中で、やけに複雑なモデルでデータを無理やり表現できるようにしてしまったとすれば、俗に言う過学習という現象が起こってしまいます。下記は100個のデータのヒストグラムです。峰が2つあるように見えます。実はこれはNumpyで生成した標準正規分布からのサンプルなのです。データを見て、多峰の分布によるモデリングをしてしまった場合、それは良いモデリングと言えたでしょうか(...これは極端な例であるかもしれないが、有限データを扱っている限り、こういうことは常に付きまとう)。我々がやるべきことは、手元のデータは真の分布を完全に知るための情報を持ち合わせていないという前提で、自分が行いたい応用に応じて確率モデルを設計するということなのです。モデルの具体的な作り方さて、上記では簡単な例で、真の分布を知ることはできないし、データは真の分布を表現してくれるとも限らないし、そんな中で確立モデリングをしなければなりません。いうことを伝えました。世の中には確率モデルを作る方法としてどのようなものがあるのかというのを簡単に説明します。介して調整を行うという形式になります。$$などと表されます。引数に取る関数の作り方によって、モデルが表現できる範囲が制限されることになります。どのように扱えば良いのかを決めていくという流れになります。決め打ちしてしまうのは少し不安が残りそうです。準備しておいて、これらを混ぜ込んで使うという発想が考えられます。$$としてみるということです。使ったモデルをどれくらい予測モデルに反映するかを決める係数です。$$となるように定められます。自体も確率分布に仕立て上げることが出来ます。$$という形式になります。確率分布になってくれます。アンサンブルモデルは機械学習手法としてよく用いられる方法であり、データ分析コンペ、Kaggleでも常套手段となっています(通常のアンサンブルモデルの場合は、予測が確率分布の形式で得られるかどうかは問題ではない。いう意味では、ここでの予測分布の作り方は、アンサンブルモデルの一種のようなものである)。自体も確率分布の体をなしているということです。そのように混ぜ込むのかを決める重要な部品になります。上手に決めてやる必要があります。$$と書くことにしましょう。求めることが「学習」に相当することになります。この予測モデルのことを通常は、ベイズ予測分布と言います。$$と表すことが出来ました。分布を追加で仮定しなければならないことになりました。これが、実に波紋を呼ぶ場合があるようですが、実はこれは下記で紹介するモデル構築方法の一般的な形式であることを後に説明します。採用する方法も考えられます。これはアンサンブルをする方法を考える必要もなく、素早くモデルを構築する手段として優秀でしょう。方法として最も有名なのが最尤推定です。$$というシミュレーションを実施することが出来ます。$$としてしまう方法です。当然のことながら、手元のデータをシミュレーションできる確率が高くなるようにしているだけなので、手元のデータが偏っていたりした場合には、容易に過学習を行ってしまいます。次に、点推定の手法として制約付き最尤推定を紹介します。手元のデータによって決められてしまうものであるわけです。生成された確率変数の実現値でした。いうのは確率変数であると言えます。選ぼうという戦略が取れます。$$という分解が可能になります。いう確率分布(事前分布)で表現される範囲しか値を取らないという制約を入れて、点推定を行っていることになります。ラプラス分布にしている)。これが最大事後確率推定と呼ばれる理由です。$$と作ることができます。ベイズ予測分布と点推定さて、事後分布を構築するために事前分布なるものが必要になることを垣間見ました。これは結論を述べると、今まで考慮していなかった決め打ちの分布を、ちゃんと考慮し直すことに相当します。上記では、推定というものよりも、それによって構築される予測モデルに着目してきました。ここでベイズ予測分布を出発点にしましょう。これはアンサンブルモデルの一種であることを見ました。得られたケースを考えましょう。抜き出して、それだけを使って予測分布を作ることにしてしまいましょう。得られる予測分布になります。採用する手法であると言えます。利点は、最頻値を探すだけなら、そもそも事後分布を完全に得る必要はなく、推定が楽ということです。いう意味で、事後分布を求める手間を省けるので、それで予測が上手く行くならば積極的に使って良いでしょう。いう事前分布の設計が必要になります。これは仮定しなければならないことが増えて、不確定要素を増やしてしまってるようにも見えます。\theta)$$を最大化する手法でした。呼ばれるものにデルタ分布(ある一点にしか値を持たないような分布)だと決め打ちして最大事後確率推定をしていることに相当します。バラツキを一切考慮しないような事前分布を仮定したときの最大事後確率推定なのです。事前分布と確率モデルを考慮した事後分布を構築し、事後分布を重みに確率モデルのアンサンブルを利用(ベイズ推論)事前分布は設定するが事後分布を求めるのが辛いので、最大確率以外の重みを捨て単独の確率モデルを利用(MAP推定)事前分布をデルタ分布で決め打ちしたときのMAP推定(最尤推定)であると言えます。事前分布を設定することは、むしろ今まで決め打ちでやってきたことをちゃんと考え直すということに相当するのです。事前分布の設定で推定結果は変わります。真の分布を知るすべが無い中で、目的と知りたい粒度に応じて「事前分布含め」確率モデルを構築するのがベイズ統計学なのだと思います。モデリングをやり直すこと、複数のモデルを比較検討すること、これらを念頭においておけば、いろいろな事前分布を検討してみる(そもそもの尤度関数側の方を検討してみる)ということを試すのは何も不自然なことではありません。事前分布としてデルタ分布を選ぶ最尤推定でざっくりとモデリングしてみる。あまりにも過学習が怪しいならば最大事後確率推定でモデルを作ってみる。いうふうに段階を踏んでも構わないのです。ベイズ予測分布を得ることの意義さて、最尤推定と最大事後確率推定の場合は、事後分布に対して最適化問題の形でパラメータを推定することになります。最適化問題では、必ずしも目的関数の大局的な形状を必要としません(逆に大局的な形状を最初から知っているならば問題は解けているも同然だ)。事後分布を扱うと言いつつも、その分布を知っている必要はなく、具体的な値を代入して見てその数値を評価することさえすれば何かしらの最適化手法を使うことが出来ます。一方でベイズ予測分布を構築するためには、事後分布の形状それ自体を知る必要があります。それは単に事後分布に対して最適化問題を解くよりも難しい話になります。そんなことをしてまでもベイズ予測分布を得る意義は何なのでしょうか。今向き合っているデータが、比較的単純な分布でモデル化してしまえそうならば、最尤推定などを用いてしまってもいいでしょう。なく、「特異モデル」と呼ばれるものを使わなければならないほどに複雑なデータであった場合には、ベイズ統計学の手続きに頼る方が良いと言えます。関しても事後分布で推論された程度にバラつくことを想定しています。したがってそれを考慮して得られた予測分布は、原理的に過学習するということはなく、もしもデータが無いような領域に対する予測を迫られた場合には、一応の予測を出しつつも、その予測には自信が無いということを明確に数値化します(もちろん、それらの数値は設計したモデルの元での話だが)。知らないなりに真っ当なモデルを構築したと宣言します。どれほどに有効なのかということが問題になります(そんなことは他の方法でも同じだが)。いう事前分布の2つが必要になります。いう同時分布をどのように設計すると良いのか)ということが問題になります。組を定めて事後分布を推論し、ベイズ予測分布を構築する。それを評価するという一般的な機械学習の試みを回すしかありません。広く使えるベイズ情報量基準(WBIC)があります。「広く使える」というのは、「特異モデルにも使える」という意味があり、例えば普通の赤池情報量基準(AIC)は正則モデルにしか使えないという厳しい制約があったのに対して、WAICはそれを回避した情報量基準になっています。特異モデルと正則モデルここで特異モデルというのは要は、性質がきれいでなく難しいモデルという具合で考えてもらえれば良いです。きれいな方が正則モデルと言うわけです(何が正則かと言うと、フィッシャー情報行列が正則なのである)。最尤推定は、正則モデルを扱っている限りはかなり良い予測モデルを構築できることが期待できます。いうキレイな問題を扱っている限りはベイズ予測分布などというものを持ち出す必要がそもそもなかったのです(事前分布をデルタ分布で決め打ちして、そして最大事後確率推定をするということで十分に良いものが作れた)。近年はニューラルネットワークが訳の分からんパラメータで猛威を奮っている領域もあるように、複雑な特異モデルが優位に働く(言い換えれば、キレイな問題に分割できないデータを扱う)ケースも増えてきました。今から扱うデータを特異モデルで表現しようというときには最尤推定を行って何らかの方法で評価してみるということはあまり意味をなさなくなります。何をいっているのかと言うと、複雑なモデルは尤度関数が多峰性を持っており、勾配法などの最適化手法ではそもそも最適解(最尤推定解)が得られていない(すなわちハナから最尤推定ができていない)ということもありますし、仮に大域的最適化手法によって最尤推定を確かに実施できたとして、特異モデルにおいては最尤推定解が良い解である保証がそもそも無い、あるいは著しく悪化するケースがあるのです。使って予測モデルを構築する手法でした。これは言い換えれば、事後分布が本来持っているバラツキの情報をすべて捨て去るということになります。する際の事前分布をあれこれ工夫したり、超事前分布を敷いてみたりしても、最終的に最大事後確率推定で事後分布の最大となる点以外の情報を捨て去ってしまうならば、話は同じです。ベイズ統計学のまとめベイズ統計学は、事後分布の重み付けによって確率モデルをアンサンブルし予測分布を構築します。事後分布が最大値を取るようなパラメータのみを1つ選んで予測分布を構築する手法であり、ベイズ予測分布の特殊な簡略法です。最尤推定は最大事後確率推定において事前分布をデルタ分布とする、パラメータのバラツキを考慮しない一点突破な推定方法です。事後分布で、パラメータの複雑な振る舞いを考慮し、ベイズ予測分布を構築することで特異モデルに対する真っ向勝負が可能になります。キレイでない分布を使ってでも、なんとしてもデータに対する振る舞いをモデリングしようという試みは、「人間が容易に理解できるような単純な分布でなくとも良し」とする非常に実用的な考え方であると言えるでしょう。闇雲なわけではありません。汎化誤差、真の分布との隔たりをちゃんと評価し、モデルが良い性能を持っているのかを適宜確認すればよいのです。”本来真の分布を知るよしもない”という現実を振り返れば、むしろ現実的データ分析手法です。最後の補足をしますが、あたかもベイズ統計が難しいデータを扱うことができ、最尤推定などは簡単なモデルにしか使えないかのようにも見えてしまったかもしれません。実際のところは「特異モデル」というものに深く触れなくても済むように、そのような表現になってしまったという次第です。ベイズ推測を用いない方法も、難しいデータに立ち向かってきました(その場合には、何らかの方法で特異モデルを正則モデルとして近似して...という具合らしい)。あるときにはガッチリハマって、あるときには理論面も理解しながら多種多様の手法を使いこなさなければならないという点で言うと、「使う」ということに関しては(僕自信の不勉強もさることながら)ベイズ推測を用いない方法は余計に難しく感じます。本記事の意図は、なんだか哲学的であったり、そもそも従来の統計学とは異なる新たな理論かのように見えてしまいがちなベイズ統計が、いやいや実は予測モデルの作り方が違っており、もっと気軽に使ってみて良いものであると思ってもらいたくて書きました。いう意味でいえば、ひとまずは、最初の方で説明を終えている、ベイズ予測分布はアンサンブルモデルであり、アンサンブルの仕方をデータから決めてるのが事後分布の推論なのだというところまで納得すれば良いのではないかと思います。»プロフィール自分が勉強していく上で学んだことなどをまとめていきたいと思います。ML_deepスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。