Hatena::ブログ(Diary)

ほくそ笑む このページをアンテナに追加 RSSフィード

2016-12-09

確率論の基礎について発表しました

Watanabe理論勉強会で発表してきました。

前回の発表はこちら

前回は2章だったのですが、2ヶ月半で5章まで進みました。ページ数的には折り返し地点です。

今回の担当は5章前半だったのですが、私の脳みそでは非常に難しく感じたため、5章に入る前に1章で飛ばした確率論基礎について復習させてもらいました。

発表スライドは下記です。

この部分は非常に簡潔に書かれていて、私には分かりやすかったのですが、確率空間は必ずしも距離空間である必要はないとか、可測空間だけでは積分は定義できないとか、詳しい方々からのツッコミが容赦なく入りました。

しかし、この復習で、ある程度は確率空間や確率変数に対するイメージが固まったため、5章を読み進めることができました。

5章の発表スライドは下記です。

タイトル詐欺で経験過程まで行っておらず、法則収束の説明までです。

法則収束は汎化誤差の漸近挙動を研究したいWatanabe理論では重要な概念となります。

この章ではもう一つ、関数に値を取る解析関数についてのセクションも私の担当なので、次回発表する予定です。

関連

2016-09-30

A/Bテストと統計的検定の注意点(その1)

素晴らしい記事が上がっていたので言及したい。

この記事では、A/Bテストにおいて、意味のある差が出たかどうかを統計的検定を用いて判断する方法を説明しています。

Web上にある多くのA/Bテストの記事と異なるのは、単に検定手法にデータを突っ込んでp値を出すのではなく、

  • 意味のある差とは何かを事前に決定する
  • サンプルサイズを事前に決定する

という統計的検定のフレームワークに則ったまともな方法で判断を行っているという点です。

よく言われる統計的検定は無意味だなどという言論の多くは、このフレームワークを使っていないだけに過ぎず、不確実な事象に対する科学的な検証方法として、統計的検定のフレームワークの強力さはいまだ健在です。

さて、統計的検定のフレームワークについては上の記事および記事中で紹介されている参考文献にお任せするとして、ここではA/Bテストと統計的検定における、もう少し実践的な話題を紹介したいと思います。

A/Bテストの等質性

A/Bテストとはどういうものでしょうか?

例えば、Webサイトのランディングページに対して2つのデザイン案が持ち上がり、どちらが良いか判断に困る場合があります。

そこで、訪問者をAグループとBグループにランダムに振り分け、それぞれのグループに別々のデザインを見せ、入会率が良い方のデザイン案を採用する、といったことを行うのがA/Bテストです。

上記の記事ではAとBについて次のように書かれています。

  • A「入会率10%の現ランディングページ」
  • B「入会率(以下CVR)15%を期待する新ランディングページ(以下LP)」

ここにはちょっとした罠があります。

こういう風にA/Bを分けると、新ランディングページのCVRが最初だけ良く、途中から下がるという現象にわりと頻繁に遭遇するはずです。

例えば、下記の記事で言及されているような現象です。

ベースラインに対して新しい実験パターンのコンバージョンの方がずっと優勢なんですが,95%ラインを越えたり越えなかったり,という推移が見て取れます.ごく初期に95%を越えた段階で効果あり,と思って実験をストップしちゃうなんていうのは割とありがちな事態ではないでしょうか.

Optimizelyのstats engineによる逐次A/Bテスト - About connecting the dots.

これはなぜ起こるのでしょうか?

A/Bテストにおいて、訪問者をAとBにランダムに振り分けるのは、各グループにおける訪問者の性質を均質にすることが目的です。

もし、Aは男性、Bは女性というような振り分け方をすると、AとBにおける入会率の差が、性別による差なのか、デザインによる差なのか、判別できなくなります。

デザインによる入会率の差を検証したかったら、デザイン以外の要因(例えば男女比)が同じになるように振り分ける必要があります。

ところで、このランディングページに訪れるのは新規訪問者だけでしょうか?

A/Bテストの対象者の中に、現ランディングページを見たことのある人は含まれないのでしょうか?

今、A/Bテストの対象者の中に、新規訪問者と再訪問者が50%ずついるとしましょう。

新規訪問者とは、現ランディングページを見たことがない人たちと定義します。

すると、再訪問者は現ランディングページを見たことがある人たちであり、言い換えると、現ランディングページでは入会しなかった実績を持つ人たちです。

つまり、Aグループにおける再訪問者は、現ランディングページでは入会しにくいという性質を持っていることになります。

そう考えると、AとBの入会率に差が無かったとしても、Aグループにおける再訪問者の入会率はBグループにおける再訪問者の入会率より低くなることが予想されます。

f:id:hoxo_m:20160929185238p:image:w600

これでは、A/Bテストの前提である「各グループにおける訪問者の性質が均質」を満たしません。

このような場合、どんなに正しく統計的検定のフレームワークを適用ても、正しい結果は得られません。

A/Bテストの評価に統計的検定を使用するならば、グループの等質性についても気を付けなくてならないことがお分かりいただけたかと思います。

(なんか長くなってしまって疲れました。気力があれば続きます。続きが読みたい人はワッフルワッフルと書いて下さい。)

2016-09-26

Watanabe理論勉強会で発表してきました

このブログの読者には AIC (赤池情報量基準) をご存じの方は多いと思います.

AIC は統計モデルの評価指標として世界中で広く使われていますが、これは赤池弘次という日本人統計学者により考案されたものです。

これに対し、近年、ベイズ統計学で利用可能な WAIC という情報量基準が考案され、世界中で爆発的に普及しています。

この WAIC を考案したのも日本人であり、東工大の渡辺澄夫先生です。

WAIC は、算出すること自体は簡単なのですが、その理論的な根拠として非常に高度な数学が使われています。

この理論について、渡辺先生ご自身が書かれた書籍があります。

Watanabe理論勉強会は、この本を熟読し、この偉大な理論を理解することを目的として発足された勉強会です。

今回、私は第二章の前半部分を担当させていただきました。

発表スライドは下記です。

タイトルは煽りですが、特異点とその解消は渡辺理論において非常に重要です。

今回の発表は特異点の定義とその判定法に関する定理の証明までが範囲です。

ご参考になれば幸いです。

参考リンク

こちらは渡辺理論について日本語で書かれた書籍の読書メモです。たいへん勉強になります。

ベイズ統計の理論と方法

ベイズ統計の理論と方法

追記

ちなみにこの本、Amazon 洋書の売れ筋ランキング 3部門で 1位です。すごい。

f:id:hoxo_m:20160928123410p:image

2016-08-26

ベイズ最適化についての入門記事を書きました

ベイズ最適化 (Bayesian Optimization) についての入門記事をマイナビのサイトに寄稿しました。

ベイズ最適化は大域的最適化手法 (Global Optimization) の一種であり、これをグリッドサーチの代わりに使うことで、効率的に機械学習のハイパーパラメータ探索ができる、という内容です。

この記事ではベイズ最適化の基本的な部分についてポイントを絞って説明したつもりです。

R言語にはベイズ最適化のためのパッケージ rBayesianOptimization があり、この使い方については下記の記事が詳しいです。

また、ベイズ最適化についての佐藤一誠先生の講演動画が分かりやすくてステキでした。

ベイズ最適化で使用されるガウス過程については、下記の記事が分かりやすいです。

2016-07-26

「異常検知と変化検知」輪読会で論文紹介しました

去る 7/21(木) に行われた「異常検知と変化検知」輪読会で論文紹介をさせていただきました。

タイトルは「非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出」で、資料は SlideShare に上げています。


本発表で紹介した論文は下記です。


『異常検知と変化検知』「第11章 密度比推定による異常検知」では、密度比推定法として

  • カルバック・ライブラー密度比推定法 KLIEP (Sugiyama+ 2008)
  • 最小2乗密度比推定法 LSIF (Kanamori+ 2009)

が紹介されていますが、LSIF を進化させた uLSIF という手法の紹介です。

uLSIF は本書に載っていない手法として紹介したのですが、本書で LSIF として紹介されているものは実は uLSIF のことらしいというご指摘をいただきました。どうやらその通りのようです。


スライドの最後にも紹介していますが、KLIEP と uLSIF を実装した R パッケージ densratio を CRAN で公開しています。

使い方の詳細は Vignette をご参照下さい。

densratio パッケージはオープンソースで GitHub 上で開発されていますので興味のある方はこちらをご参照下さい。

以上です。

異常検知と変化検知 (機械学習プロフェッショナルシリーズ)

異常検知と変化検知 (機械学習プロフェッショナルシリーズ)