Recommender Systems: The Textbookの要点まとめ(随時更新)

はじめに

レコメンド関連の書籍を探していた際に、
Recommender Systems: The Textbook (English Edition)の無料公開されているPDFを見つけたので、それについて読んでは追記するスタイルでメモを残していこうと思います。(すごく長くなる予感)

これまで読んできたレコメンド関連の本の中では、説明が丁寧だったり事例が豊富に思います。数式はあまり出てこないですが、言葉でちゃんと説明しようとしているのが感じられます。『AIアルゴリズムマーケティング 自動化のための機械学習/経済モデル、ベストプラクティス、アーキテクチャ (impress top gear)』のレコメンドの章もわかりやすく幅広いトピックが扱われていますが、それに匹敵する本にも思います。

第1章(An Introduction to Recommender Systems)

Goals of Recommender Systems

  • 1.ユーザーとアイテムの組み合わせの評価値の予測問題
    過去のユーザーのプリファレンスデータを使って学習する。未知のアイテムに関しては行列補完問題とも見なせる。
  • 2.上位k個の推薦問題
    あるアイテムに対して、あるユーザーの上位k個のアイテムを推薦する。

推薦システムの第一の目的はプロダクトの売上向上。

  • 推薦システムの運営上ないし技術的な目的
    1.関連性(Relevance)
    2.新規性(Novelty)
    3.意外性(Serendipity)
    4.推薦の多様性(Diversity)
  • 推薦システムの例
    1.GroupLensの推薦
    2.Amazon.comの推薦
    3.Netflixの映画推薦
    4.Googleニュース推薦
    5.Facebookの友達推薦

Basic Models of Recommender Systems

  • 協調フィルタリング(Collaborative Filtering)
    1.メモリーベース
    ・ユーザーベース協調フィルタリング
    ・アイテムベース協調フィルタリング
    2.モデルベース
  • コンテンツベース(Content-Based)
  • ナレッジベース(Knowledge-Based)
    滅多に買われないようなアイテム(自動車、不動産)の際に考える。評価は使わない。その代わり、ユーザーの要望とアイテムの近さや、ユーザーの制約などを用いる。
    1.制約ベースの推薦システム
    2.条件ベースの推薦システム
  • デモグラフィック(Demographic)
  • ハイブリッド、アンサンブルベース(Hybrid and Ensemble-Based)
  • 評価の種類
  • 明示的な評価と暗黙的な評価
  • 欠損値分析との関係性

Domain-Specific Challenges in Recommender System

  • コンテキストベース(Context-Based)
    時間や場所、ソーシャルデータを使う。季節性を考慮したりする。
  • 時間依存(Time-Sensitive)
    1.時間と共に評価は変わる。流行りすたりがある。
    2.特定の時期だけ、特定のアイテムの評価があがることはある。(レインコート、ダウン)
  • 位置情報(Location-Based)
  • ソーシャル(Social Recommender System)
    ネットワーク構造やソーシャルでの繋がり、タグ、組み合わせに基づいている。

Advanced Topics and Applications

  • コールドスタート問題(Cold-Start Problem)
  • 攻撃耐性(Attack-Resistant)
    アルゴリズムをハックされると情報推薦の効率性が阻害される。本来、上がってくるべきものが上がらないので。
  • 集団への影響(Group)
    推薦アルゴリズムは個々人よりも集団のプリファレンスに影響を与える。
  • 複数の基準(Multi-Criteria)
    ユーザーは単一の基準でアイテムを評価はしない。
  • アクティブラーニング(Active Learning)
    ユーザーが評価をしやすいようにするための取り組み、たくさん過去に評価したユーザーがいた場合は、新しい映画に関して評価をしやすいように予測するとか色々。
  • プライバシー(Privacy)
  • 様々な適用領域
    小売、音楽、コンテンツ、web検索、クエリ、デジタル広告

第2章

TBD

第3章

TBD

第4章

TBD

第5章(Knowledge-Based Recommender Systems)

  • コンテンツベースは新しいアイテムの推薦には良いが、新しいユーザーには推薦できない。協調フィルタリングやコンテンツベースは過去の履歴といったデータをベースに扱うが、ナレッジベースはユーザーが何を求めているのかに基づいている。
  • 不動産や自動車、旅行商品などは滅多に購入しないため、評価のデータは十分に得ることができない。
  • 映画はレコメンドされた際に、その理由が明示されなくとも受け入れるが、不動産や自動車は詳細な情報抜きには、そのレコメンドを受け入れることは難しい。
  • ナレッジベースのレコメンドが有効なケース
    1.ユーザーの要望が明確なケース。協調フィルタリングやコンテンツベースでは満たせない。
    2.選択肢が幅広く商品の複雑さが大きい商品のケース。詳細な評価を得にくい。
    3.商品の評価が時間と共に大きく変わるケース。パソコンとか車はすぐ新しいものが出てきたりして評価が変わってしまう。
  • ナレッジベースのレコメンドにおけるユーザーとのコミュニケーション
    1.対話システム
    対話でのフィードバックループのコンテキストからユーザーのプリファレンスを把握する。
    2.検索ベースシステム
    質問に答えることでプリファレンスを把握していく。
    3.ナビゲーションベース
    ユーザーがアイテムに対して反応をしてしていき、その結果に応じて望んでいるアイテムに到達できる。

Constraint-Based Recommender Systems

  • アイテムの属性に関する強い要望や制約を識別する。
  • 制約ベースのレコメンドシステムにおける3つのインプット
    1.ユーザー固有の情報(デモグラ、リスク嗜好)、必須要件(バストイレ別とか)
    2.ナレッジベースの属性情報。アイテムに応じた属性を顧客の属性にマッピングする。
    直接:都心か郊外か→郊外→近隣のものを推薦
    間接:家族の人数→5人以上→寝室が2つ以上のものを推薦
    3.アイテムに関するデータを全部使う
  • 関連した結果を返す際の3つのアプローチ
    1.ユーザーの回答をもとに条件を類推し、ユーザーの要望に加える。(例えば、家族の人数が5以上と回答された場合に、寝室の数は3以上必要だろうとして要望に加える。)
    2.要望をもとにデータベースのクエリを生成
    3.ユーザーの要望に関連したカタログを抽出する
  • 対話のアプローチ
    1.インターフェースを通してユーザーのプリファレンスの初期値を得る。
    2.マッチさせたアイテムを並べてユーザーに示す。なぜそれを表示したのかの理由も付ける。
    3.条件緩和や追加の要望を受け付ける。レコメンドの件数が多すぎたら要件を増やして、少なすぎたら要件を減らす。
  • マッチしたアイテムの並べ方
    効用関数を使ったりする。
    $$ U( \overline V ) = \sum_{j=1}^{d}w_j \cdot f_j(v_j) $$
    \( w_j \)は評価のウェイト、\( v_j \)はマッチした属性の値。
  • 受け入れられない結果や空集合への対応
  • 制約の追加

Case-Based Recommenders

  • 制約ベースのレコメンドとは違い、強い制約がない。良いレコメンド結果になるまでユーザーの要望を繰り返し修正していくアプローチとなる。
  • ケースベースのレコメンドの場合の重要な要素
    1.類似度の指標

    $$f(\overline{T}, \overline{X}) = \frac{\sum_{i \in S}w_i \cdot Sim(t_i, x_i)}{\sum_{i \in S} w_i} $$

    Sは属性の集合で、属性ごとに重みが違う。tはターゲット。xはあるアイテム。

    ・対称
    $$ Sim(t_i, x_i) = 1 – \frac{|t_i – x_i|}{max_i – min_i} $$
    ・非対称

    $$ Sim(t_i, x_i) = 1 – \frac{|t_i – x_i|}{max_i – min_i} + \alpha_i \cdot I( x_i > t_i ) \cdot \frac{|t_i – x_i|}{max_i – min_i} $$

    ・多様性
    1から類似度を差し引いたものが多様性の尺度となる。
    $$D(\overline{X}, \overline{Y}) = 1 – f(\overline{X}, \overline{Y})$$
    2.批評
    ・推薦結果がユーザーに示されてから、批評を通じてフィードバックを受ける。
    ・単純な批評:特徴の一つを変更してもらう
    ・複合的な批評:複数の特徴量を変更してもらう
    ・動的な批評:データマイニングからフィードバックを掴み取る(アソシエーション分析とか)

Persistent Personalization in Knowledge-Based Systems

  • ナレッジベースのレコメンドでの過去ログの蓄積があれば、効用関数や類似度関数、制約の提案、動的な批評に関してパーソナライズすることが可能。

第6章

TBD

第7章

評価の目標に正確度がよく使われるが、ユーザー体験において重要な指標は目新しさや信頼度やカバー範囲やセレンディピティなど、それ以外の指標によるところが多い。正確度は大事な指標ではあるが、それだけでは良いレコメンドシステムを作ることは難しい。

Evaluation Paradigms

レコメンドシステムの評価方法にはユーザースタディ、オンライン評価、オフライン評価の3つがある。

  • ユーザースタディ
    特定のタスクを行い、レコメンドシステムを触ってもらい質問をするなどして、ユーザーからのフィードバックをもらう。ただし大規模に行うとコストもかかるし、参加する時点でユーザーの性質が違う可能性もあり、バイアスが含まれる可能性がある。
  • オンライン評価
    レコメンドシステムを実装したサイトなどで、ユーザーのグループをAとBに分け、アルゴリズムAとアルゴリズムBをそれぞれ用いて、その結果としてコンバージョンレートなどを比較する。バンディットアルゴリズムを使うのも良い。ただ、オンライン評価は実装含めコストがかかる。
  • オフライン評価
    レコメンドアルゴリズムにおいて最もポピュラーな評価方法で、過去のデータにおける評価を行う。当然、オンライン評価のほうが望ましいが、統計的にロバストであろうと観点で非常によく使われる。ただし、セレンディピティや目新しさを評価することは難しい。

General Goals of Evaluation Design

  • Accuracy
    モデルの訓練にも、評価にも使われる。レコメンドシステムにおいても、機械学習の分類や回帰タスクと同様に、ホールドアウトや交差検証などを行って評価する。
    あるユーザーのあるアイテムに対する評価の誤差を以下の式で表す。
    \(e_{uj} = \hat r_{uj} – r_{}uj \)
    なお、Eは評価対象の集合とする。その際、正確度の評価は以下のようになる。

    $$ MSE = \frac{\sum_{(u, j) \in E} e_{uj}^2 }{|E|} $$

    $$ RMSE = \sqrt{ \frac{\sum_{(u, j) \in E} e_{uj}^2 }{|E|} }$$

    なお、他にもランキングベースの評価方法もある。
    ただ、精度が高くても、ユーザーが絶対に買うであろうアイテムしかレコメンドできない場合は、レコメンドシステムの意味合いとしては薄れる。

  • Coverage
    レコメンドシステムが精度が高すぎる場合、一部のアイテムは一部のユーザーに全く推薦されなくなる。
    k点以上の評価を付けるであろうと予測したユーザーの割合は、ユーザー空間でのカバレッジと呼ばれる。
    一般的に、近傍ベースの手法を考えた際に、近傍を広げた場合、精度は落ちてしまうが、カバレッジは高くなる。ようは、精度とカバレッジはトレードオフの関係にある。
  • Confidence and Trust
    予測した評価の範囲として信頼区間が与えられる。予測した値の誤差が信頼区間にマッチしているかどうかで測る。同じアルゴリズムにおいて、信頼区間が狭いものほど良いと判断する。ただし、予測が正確だとしても、評価をユーザーに信じてもらえないと役に立たない。推薦理由がロジカルかどうかが重要となる。
  • Novelty
    ユーザーがこれまで気づかなかったような推薦ができているかどうかを表す指標。オンライン評価として画面上でユーザーに回答してもらうという方法で測るケースが多いが、いつでもその評価を実行することはできない。
    一方、オフラインであれば、それが可能となる。現時点よりも将来に選びそうなアイテムを推薦できるようになれば、それがノベルティに繋がる。
    過去に評価されているアイテムを、正しく推薦されてしまうとノベルティに関するペナルティが与えられるとする。将来時点で評価されるアイテムを正しく推薦できたらノベルティに関してリワードが与えられると考える。ようは将来と過去の予測の正確度の差分でもってノベルティを測ることとなる。
  • Serendipity
    セレンディピティは幸運な発見を意味する。レコメンドの成功における驚きのレベルを測る。セレンディピティはノベルティよりも強い条件で、セレンディピティがある場合、そのアイテムは目新しいが、逆は真ではない。
    オンライン評価の場合、ユーザーからのフィードバックで意外性があったかどうかを測ればいい。
    オフライン評価の場合、コンテンツベースで選んだものではないアイテムがユーザーに選ばれた場合に、セレンディピティがあると見なすことができる。コンテンツベースのレコメンドとそうでないレコメンドの結果の二つを用意する必要がある。
  • Diversity
    推薦リストの中でのアイテムの多様性を測る。多様性が高まれば、ユーザーのニーズを捉える可能性が高まると考えられる。
    多様性はコンテンツを元にしたアイテム間の類似度で測る。全てのアイテムのペアに対しての平均的な類似度が多様性を表す。
  • Robustness and Stability
    偽の評価や時間とともに急激にデータが変化した際に、レコメンドシステムが影響をあまり受けない場合、そのレコメンドシステムはロバストで安定していると見なすことができる。レコメンドシステムの利用者の中には、ランキングを不正に高めることが自身の利益に繋がることがある。
  • Scalability
    近年、暗黙フィードバックも考慮すれば、レコメンドシステムを構築するためのデータは比較的簡単に入手できるようになった。そこで、データの大きさがもたらす問題に関して注意を払う必要がある。
    1.機械学習モデルの訓練時間
    2.予測(推論)時間
    3.計算の際に要求するメモリの量

Design Issues in Offline Recommender Evaluation

  • レコメンドシステムを開発するに際して、データは3つのパーツに分割される。
    1.訓練データ(モデルの構築)
    2.検証データ(モデル選択・パラメータチューニング)
    3.テストデータ(二度漬け禁止)
  • ※豆知識:Netflix Prizeのデータは学習データとテストデータがかなり違っていたらしい。学習データに古いレーティングが入っていて、テストデータに新しいレーティングがあるという状態だったとのこと。
  • Segmenting the Rating for Training and Testing
    ・Hold-Out
    ・Cross-Validation
  • Comparison with Classification Design
    回帰や分類タスクと同様にサンプルセレクションバイアスの問題がはらんでいる。

Accuracy Metrics in Offline Evaluation

  • レコメンドシステムの評価方法としてはランキング系のものが良いが、わかりやすさを重視するならばRMSEが良い。
  • Measuring the Accuracy of Ratings Prediction
    ・MSE
    ・RMSE
    ・MAE
    ・NRMSE
    ・NMAE
  • RMSE versus MAE
    RMSEは異常の影響を受けやすい。一方でMAEは影響を受けにくい。
  • Impacr of the Long Tail
    主要なアイテムによって評価は影響を受けるが、売り上げの大半はロングテールなアイテムであり、主要なアイテムがロングテールなアイテムに悪影響を与えることがありうる。
  • Evaluating Ranking via Correlation
    レコメンドシステムはユーザーに対しアイテムのランキングを提供し、上位k個のアイテムが推薦されることとなる。
    ランキングのための評価指標について。
    1.スピアマン順位相関係数
    2.ケンドール順位相関係数
  • Evaluating Ranking via Utility
    効用関数ベースのランキング評価指標。
    $$ F(u, j) = \frac{max\{ r_{uj} – C_{u} , 0 \}}{2^{\frac{v_j – 1}{\alpha}}} $$
    ここで、\( C_{u} \)はユーザーの平均的な評価とされる。

    $$ R-score(u) = \sum_{j \in I_{u} F(u, j) } $$

    ・DCG(discounted cumulatiove gain)
    $$ DCG = \frac{1}{m} \sum_{u=1}^{m} \sum_{j \in I_u, v_j \leq L } \frac{g_{uj}}{log_2 (v_j + 1)} $$
    \( v_j \)はアイテムjの順位を表す。
    $$ g_{uj} = 2^{rel_{uj} – 1 } $$
    ここで\( rel_{uj} \)は実際の評価が使われることが多いとのこと。

    ・NDCG(normalized discounted cumulatiove gain)
    $$ NDCG = \frac{DCG}{IDCG} $$

Limitations of Evaluation Measures

第8章

TBD

第9章

TBD

第10章

TBD

第11章

TBD

第12章

TBD

第13章

TBD

[Python]Music×AnalyticsというイベントでLTをやってきましたレポート

今回はゆるめで、あるイベントのLTに参加してきた感想やら、資料やら動画やらソースコードを共有するだけの記事となっております。

ことの成り行き

Tokyo.Rでお世話になっているy__mattuさんから、「Music×Analytics Meetup Vol.4」のイベントのことを教えていただき、せっかくなのでLTをさせてもらえることになりました。

音楽の分析に関して入門レベルなので果たして参加者が盛り上がってくれる何かを提供できるか不安でした。

納期的にも、今の実力的にも過去に書いたブログ([Python]スペクトグラムで楽器の試奏データを比較(プロ奏者とも))の延長線上のことでいいなと思ったんですが、
先行研究は欲しいし、分析対象の音楽もスケール(音階)ではなく何かの曲が良いと思いました。あと、意外な情報も載せたい、分析結果を活かして便益を得たいとも思いました。

なので、LTまでに先行研究を見つけ、意外な情報としてjupyter notebookで録音する機能を見つけ、分析対象の曲にギャツビーのCMのものを採用しました。
そして、この研究から自分の楽器の演奏の腕前を向上させることができました。
これならLTとして発表しても入門レベルでも楽しいのではないかなと思いました。

LT内容

Google Presentationと事前に録音したYoutubeをこちらに載せておきます。

発表音声の文字起こし

LTを7分以内に抑えるリハーサルをした際の音声があったので、それをGoogle Speech To Text APIを使って文字起こしをしておきます。
「それではその音に近づくための研究と練習ということで江口さん自己紹介ですが名前は救えバックグランドは経済学や統計学仕事では同席部のマネージャー兼データ分析さんはこんな感じで趣味はトランペットブログ作成をやってるので良かったみてください結局どうしたんですけどその他データ分析関連のかって言いよったでどうやって勝手の音消したいなって思いますがここまでのホスピスがまずあって写真撮って進度が速い遅いである時と言うとって治ってるということですが音の長さが変わりますなのでお体変わります秘密のピストンだけなので発送の仕方ありませんのでコントロールして40種類ぐらいのレベルからは死んだことに帰って前記処理学会のそれの大会でスペクトルグラムを使ってプロのアクセスをしたのとの比較ではその方向の出来不出来を判定すると犬が行われていました鬼時間に周波数色の濃淡で信号ってなっちゃったから明日グラフとなりますがこの場合は時間が12秒まであって周波数が8000まで行ってあのね精神旺盛な強さが違ってます本当の鳴き声何もとしてるの俺も行ってここだったから体操マット耐熱耐酸プルマンちょっと寄りますよねプレイヤーの力も貸したして自分との違いを明らかにして違いがある場合とならそこによるそれが産めるのかお話していきたいと思ってます結果こんな感じえーとまずはサイトメトロ ffmpeg をインストールしてああいパイソン mrtg をインストールしたギターの音は愛想の良いしらすを呼び出してこういう形で書くことでノートブックので他のところでエロ金ボタンが現れますこれ音声は録音開始でもう一度録音するようになっていますその後に録音したファイルを保存 SMS でまあ16000hz 2のファイルに変換してまた再読み込みという形があってもはい録音環境としてはわからないぞマイクでして何楽器はちょっと古いので今回あったのがという音楽などの分析見ております玄関のために必要なセッティングってのがあるんでは基本的なセッティングで言っても実際に自分のそれかしたら私に出てきますね自分のやってみようと思いますまず聞いてみましょう第4フォルマント信号の強さがえっと Pro は赤いんですけど強いんですけど出してもらうわいえ私なってます遅く音源第4フォルマントの方がやっぱり行けないなっていうのが分かれば鼻が詰まってるから行けないっていましたねと自分ではまあ剛てる所間違いが分かりましたどうしたら強い信号になってるのかその女お腹に力を入れる行きの数量変えるとかありますもうなんかの力を入れて強いわ強い力を込めてもっと明るくならなかったにやと言われるとも出てこなくなったよ沢山入ったとこですねこれで第4子が赤くなるのはこれまで行きの量が足りてなかった自分じゃなかったじゃないかっていうので行ってみましょう早くなりましたねでスタグラムに従ってくると自分の音が帰宅したところ息を吸う量を多くすることで気分良くなることがわかりました待機するのって管楽器重要な今なってどれぐらい剃ったらいいのか分かんなかったり根性論だったりするんでこれは便利だねまあは管楽器にも分からなくなって鳴るんですけど G 計り方とかあると結婚もしないからっても行きたいのでくれてありがとうございました」

ソースコード(LT)

こちらではLTのために使ったスペクトログラムを表示するためのコードを共有します。

ソースコード(文字起こし)

Google Speech To Text APIで文字起こしをする際のコードをここに載せておきます。

GCSのバケットを作っておきます。今回はperry_voiceという名前のバケットを作っておきました。先ほど作ったaudio_only_filtered_441.wavを、このバケットにあげておきます。

APIの認証用のjsonファイルをcloud shellにアップロードしておきます。jsonファイルはGCPのコンソールの認証情報からサービスアカウントキーを作成し、「鍵を追加」の項目からjsonファイルを選択して手に入れることができます。(当然、Google Speech To Text APIのAPIを有効にしておく必要があります。)
1ヶ月につき60分までは無料なので、今回の処理も無料でできます。(GCSは数円かかると思いますが。)

文字起こし結果はGCSのperry_voiceの中にあります。

他の発表から学んだこと

深層学習を用いたJazz音楽の研究や、音楽の理論、DJプレイの自動化の研究、声の変換技術など同じ音という題材ながらも幅広く話を聞くことができました。私だけ入門な内容で申し訳ない気持ちが生じましたが、これからこの分野を深めるのもプレイヤーとして面白いなと思ったので、長く学ばせてもらおうと思います。

懇親会で学んだこと

・NVIDIAのノイズリダクション技術は文字起こしの際にやってみる価値あり
・賃貸の場合、防音の部屋は家賃相場の2~3万円アップ
・口周辺の筋肉の研究をされている方がいる(論文でその分野があるのは知っていたが、実験をやっていた方に会えた)
・みな、条件を揃えるためにマイクや集音の仕方にこだわりがあった。
・いい音の定義にやはり答えはない。

[Python]仕事で使えそうな確率まとめ


本来、正月の企画物としてアイデアを出していたものの、作成する時間がとれなかったのですが、日常的にもっと確率に従って生活できたら面白いなと思って作ってみることにしました。

二項分布

  • やりたいこと
    オフィスにおいて、チームごとにデスク周辺の掃除当番を毎日乱数で決めているとして、1ヶ月で自分がどれくらい掃除をやらなくてはいけないのかを知りたい。あるいは、1回の掃除で済む確率とか、10回掃除する確率とかを知りたい。

    これは、成功確率p(掃除当番になる確率 = 1÷チームの人数 )でのN回の独立なベルヌーイ試行となり、自分が掃除当番になった場合X=1で、そうでない場合はX=0となる。
    N回ベルヌーイ試行した際のXの合計は二項分布従うので、N回試行して、Xがkになる確率は以下のように示される。(チームの人数はHとする。)

    $$ P(Y_N = k ) = {}_N C _k \left (\frac{1}{H} \right )^k \left ( 1- \frac{1}{H} \right )^{N-k} \\
    (0 \leq k \leq N )$$
  • コード


    平均では20営業日で2回は掃除することになりますが、4回以上掃除しないといけない確率が10%以上はあることがわかります。掃除が嫌いな人は、苦しみの上限をイメージできると楽なのではないかと思うので、確率に従い掃除当番を甘んじて受け入れましょう。
  • 参考情報
    scipy.stats.binom
  • matplotlib.pyplot.grid

多項分布

  • やりたいこと
    先ほどのように乱数で掃除当番を割り当て、それをランキングにし、一位を掃除大臣として称号を付与するものとする。10名いるもののうち、上位のメンバーA・メンバーBとで累積の掃除回数がそれぞれ10回、6回としたもとで次の月に掃除大臣が入れ替わる確率を計算したい。
  • コード

    計算したところ、1.2%くらいになった。このケースにおいてAさんがBさんに次の月に掃除大臣の座を奪われる可能性は低いらしい。
  • 参考情報
    scipy.special.comb

誕生日の問題

  • やりたいこと
    あまりにも有名な確率の話で、誕生日のパラドックスとも呼ばれています。誕生日が同じ人が部署内にいる確率が0.5を超える人数は何人か?
  • コード

  • 参考情報
    誕生日のパラドックス
    matplotlib.pyplot.hlines

ファーストサクセス分布

  • やりたいこと
    アルバイトの面接を受けるとして、その合格率が1/30だとして、何回くらい面接しても合格できないものだろうか。苦しみの上限を知りたい。20回、30回面接を受けた時に合格できてない確率はどれくらいだろうか。何回くらい面接を受けたら合格できていない確率を1%未満に下げれるだろうか。
    成功確率がpのベルヌーイ試行を独立に何回も行うとき、初めて成功数までに失敗した回数をXとして、初めて成功した際の試行回数をYとした場合、その確率は\( k \geq 1 \)として、

    $$ P(Y = k) = P(X=k-1)=p(1-p)^{k-1} $$

    と表すことができる。これをパラメータpのファーストサクセス分布と呼ぶ。(幾何分布とも呼ぶ。)

  • コード

    20回面接をしても合格できない確率はおよそ50%。30回面接しても合格できない確率はおよそ36%。合格できない確率が1%を切るのは面接回数が135回になった時。このレベルを追い求めると心が折れる面接回数なのかもしれない。

  • 参考情報
    弱点克服 大学生の確率・統計

負の二項分布

  • やりたいこと
    ある営業がリンゴを売る仕事をしておりタウンページで飲食店に電話をかけているとする、商談の予約が取れる確率(p)が0.05として、商談予約が5(n)回起きるまでに失敗がk回生じる確率について知りたい。いったい、この営業は飲食店にどれくらい商談をお断りをされる覚悟で臨めばいいのか。

    このような事象は負の二項分布に従うので、
    $$ P(X = k) = {}_{n – 1 + k} C _k p^{n-1}(1-p)^k $$
    という確率に従う。
    なお、この分布の期待値は
    $$ E(X) = \frac{n(1-p)}{p} $$
    に従う。

  • コード


    75回くらいの失敗で確率自体のピークがきている。期待値だと95回だが、確率のピークはもっと手前にある。

    累積確率を知りたい場合はこちらのコード


    80%のところで125回なので、5人に一人は期待値の95回を30回くらいは超えてしまってもおかしくないということになる。そして、5人に一人くらいは50〜60回で達成できるラッキーな人もいる。

  • 参考情報
    弱点克服 大学生の確率・統計

ポアソン分布

  • やりたいこと
    先ほど、営業が飲食店に売ったリンゴの中に芋虫が住み付いているケースが500回に1回の頻度で発生し、営業と顧客の間でトラブルに発展するとする。年間に1200の飲食店と取引を行うが、トラブルはどれくらい発生するものなのか。
    顧客とのトラブルが発生する回数がYだとした際に、ポアソン分布に従うとした場合、
    $$P(Y = k) = \frac{\lambda^k}{k!} e^{-\lambda} $$
    となる。ここで、
    $$ \lambda = 1200 \times \frac{1}{500} $$
    とおく。
    なお、期待値と分散はともに
    $$ E(Y) = V(Y) = \lambda $$
    となる。
  • コード


    トラブルが2回の時が確率が一番高い。0回で済む確率も0.1に近いくらいはある。


    5人に一人は4回以上のトラブルに巻き込まれる気の毒な営業がいそうですね。まぁ、リンゴの中は開けてみないとわかりませんから、顧客トラブルがあっても恨みっこなしで頑張りましょう。
  • 参考情報
    弱点克服 大学生の確率・統計

フィギュア集め問題

  • やりたいこと
    現場猫フィギュアのガチャポンに関心があるとする。N回ガチャポンを回した時に、N種類の現場猫フィギュアが全部揃う確率はどれくらいだろうか?(どの現場猫のフィギュアも出現確率は同じものとする。)
    また、N+1回ガチャポンを回したとき、N種類の全部が揃う確率はどれくらいだろうか?あるいは、m回ガチャポンを回してそろったフィギュアの数の期待値は?そして、Y回目のガチャポンではじめてN種類の現場猫の全部揃う、Yの期待値は?

    ・N回ガチャポンを回した時に、N種類の現場猫フィギュアが全部揃う確率:
    $$\frac{N!}{N^N}$$

    ・N+1回ガチャポンを回したとき、N種類の全部が揃う確率:
    $$ N \times \frac{(N+1)!}{2} \times \frac{1}{N^{N+1}} $$

    ・m回ガチャポンを回してそろったフィギュアの種類\( X_m \)の期待値:
    m回ガチャポンを回してそろったフィギュアの種類\( X_m \)を以下のように表す。
    $$X_m = Z_1 + Z_2 + \dots + Z_N$$
    m回ガチャポンを引いて、当たらないということは
    $$ P(Z_i = 0) = \left ( \frac{N – 1}{N} \right )^m $$
    ということになる。
    これをもとに\( Z_i \)の期待値を計算すると

    $$ E(Z_i) = 1 \times \left ( 1 – \left ( \frac{N – 1}{N} \right )^m \right ) + 0 \times \left ( \frac{N – 1}{N} \right )^m \\
    = 1 – \left( \frac{N-1}{N} \right )^m $$
    よって、\( X_m \)の期待値は
    $$ E(X_m) = E( Z_1 + \dots + Z_N) \\
    = N \left ( 1 – \left( \frac{N-1}{N} \right )^m \right )$$

    となる。

    ・Y回目のガチャポンではじめてN種類のフィギュアが揃う際のYの期待値:
    i-1種類からi種類になるまでのガチャポンの回す回数を\( T_i \)として、その階差がファーストサクセス分布に従うとする。
    $$ T_i – T_{i-1} \sim F_s \left ( \frac{N – i + 1}{N} \right ) $$
    その場合、Yの期待値は以下のようになる。

    $$ E(Y) = E( T_N ) \\
    = E( (T_{N} – T_{N-1}) + (T_{N-1} – T_{N-2}) + \dots + (T_{2} – T_{1}) + T_{1} ) \\
    = E \left ( F_s \left ( \frac{1}{N} \right ) + F_s \left ( \frac{2}{N} \right ) \dots + F_s \left ( \frac{N-1}{N} \right ) + 1 \right ) \\
    = N \left ( 1 + \frac{1}{2} + \dots + \frac{1}{N} \right )
    $$
  • コード

    N回ガチャポンを回した時に、N種類の現場猫フィギュアが全部揃う確率:
    0.0384
    N+1回ガチャポンを回した時、N種類の現場猫フィギュア全部が揃う確率:
    0.1152
    m回ガチャポンを回して揃った現場猫フィギュアの種類Xの期待値:
    3.3615
    Y回目のガチャポンではじめてN種類の現場猫フィギュアが揃う際のYの期待値:
    11.4166
  • 参考情報
    弱点克服 大学生の確率・統計

[Python]スペクトグラムで楽器の試奏データを比較(プロ奏者とも)


以前、トランペットのマウスピース選びで音声解析をしてみましたが、今回は楽器選びで行ってみます。
前回の調査でf1値とかでは良い音の判断がつかなかったので、スペクトログラムを出してみたいと思います。
管楽器はそこそこに高い買い物なので、色々と比較見当をしてから意思決定したいですね。


今回の楽器たちはヤマハの800GS(所持品)、Bach 180ML37SP、Bach 180ML37GL、Bach AL190GLです。ヤマハのやつは20万円くらいですが、Bachのは30万円くらいします。ちなみにBachはアメリカの楽器メーカーで、私の感覚値ではあるのですが、音大生はだいたい持っているような気がします。10万円の差は大きいのか小さいのか。そしてプロの演奏家のスペクトグラムとも比較します。

スペクトログラムとは

パワースペクトルの値の高低を画像の濃淡で表現し、縦軸に周波数、横軸に時間を取った座標上にプロットしたものをスペクトグラムと呼びます。スペクトグラムでは、周波数が低いところ(下)から、第1フォルマント、第2フォルマント、第3フォルマント・・・と呼びます。フォルマントは周りの周波数と比べて突出している部分のことを指します。

$$ S(\omega) = \int_{-\infty}^{\infty}s(t) e^{-jft}dt$$

さて、いきなりの数式ですが、フーリエ変換の式となります。\( S(\omega) \)を二乗したものがパワースペクトルとなります。(二乗するは複素平面上で絶対値を取りたいため。)
tは時刻、fは基本周波数(最も低い周波数)、jは虚数単位を表します。ここで登場する\( s(t) \)は定常波と呼ばれ、以下の式で定まります。

$$s(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty}a_n \cos (2 \pi n ft + \theta_n)$$
\( a_n \)は元の信号\( s(t) \)にどの周波数の波がどの程度の強さで含まれているかという情報を表します。
フーリエ変換のモチベーションとしては、周波数の周期関数を周波数の異なる単純な波の重み付き和で表現できることですが、トランペットの音波を色々な周波数に分解できるのは面白いです。良い奏者の周波数がどうなっているのか調べてみるのは面白そう。

Pythonでの計算&比較

音声データはFFMpegで変換とか切り取りをするなどして作成しました。作成方法は簡単で、以前のブログにも記しましたので、試してみたい方はそちらを参考にしてみてください。

まずはヤマハですが、この楽器になれている分、スムーズに吹けています。最初のほうのリップスラーは5つくらいのフォルマントがありそうです。音階が上がるにつれてフォルマントが減っているのがわかります。最後のHigh Bでは細めのフォルマントが3つあります。


次は、Bach 180ML37SPという楽器です。鳴らすのに慣れていないので、ゆっくり吹きました。最初のほうのリップスラーは5つくらいのフォルマントがありそうで、それはヤマハと同じですが、最後のHigh Bで2つくらいしかフォルマントがありません。楽器に十分息が吹き込めておらず、鳴らせていないのだろうと思われます。可視化できるって面白いですね。


次は、Bach 180ML37GLという楽器です。さっきの楽器との違いは銀メッキがなされているかどうかくらいです。最初のリップスラーは同じ感じで5つくらいのフォルマントがありそうですが、リップスラーで戻ったところで5つ目のフォルマントが消えています。ただ、最後のHigh Bで3つほどフォルマントがありそうです。慣れてきたのでしょうか?


次は、Bach AL190GLという高級モデルです。40万円くらいします。より技術力の高い職人が手掛けた楽器だそうです。ベルに一手間加わっていたり、専用パーツがあったりするみたいです。実際、30万円のよりも吹きやすい印象がありました。
最初のリップスラーは同じ感じで5つくらいのフォルマントがありそうですが、最後のHigh Bでフォルマントが2つになっています。やっぱ鳴らすの難しいのでしょうか。


最後に、プロの方の音源です。最初のBで私のグラフと明らかにフォルマントの数が違うことがわかります。楽器を鳴らせているというのはこういうレベルなのかなと思ってしまいました。High Bでフォルマントが4つはありそうです。このレベルになるにはどういう吹き方をすればいいのか、色々研究のしがいがありそう。

参考文献

イラストで学ぶ 音声認識 (KS情報科学専門書)

[Python]データ分析業務で使いそうなコードまとめ(随時更新)

はじめに

仕事で使いそうなPythonのコードを残しておくドキュメントが欲しいなと思ったので、よく使うものをこちらに貯めていこうと思います。まだ16個しかないですが、30個を目標に追記していきます。

フォーマットとしては、
1.やりたい処理
2.コード
3.参考情報のリンク
の3つを1セットにしています。
まずは、自分自身や周りで仕事をしている人が楽をできるドキュメントになればいいなと思って作っていきます。

目次

・重複削除
・階級のデータを作りたい
・再起的にリストをコピーしたい
・ピボットテーブルでアクセスログから特徴量用のデータを作りたい
・データフレームのある列に対して特定の文字列で分割し、その任意のN番目のものを抽出したい
・データフレームの行単位で割り算を行いたい
・列単位で行を足し合わせて文字列を作りたい
・グループのレコードごとにidを割り当てたい
・正規表現で任意の合致した文字列で挟まれた文字列を抽出したい
・複数列の集計値同士で除した値が欲しい
・等間隔の実数の数列を作成したい
・スペース区切りの文字列において、ある単語の前後N個の語を抽出したい
・グループごとに文字列を結合したい
・文字列の置換をdict形式のデータで行いたい
・テキストを形態素解析してBoW形式のデータにして特徴量にしたい
・訓練データとテストデータで特徴量の数が足りない時に不足した変数を追加したい
・アクセスログのユーザーごとのレコードごとの累積和を計算したい
・参考情報

データセット

全体を通じて使うデータセットを生成する関数を用意しておきます。一つ目の
データはkaggleのBoston Housingのデータセットです。

二つ目はアクセスログのデータが欲しかったので、Google Analytics APIを使ってデータを抽出したものとなります。ここではソースコードを載せますが、皆さんは当然見れません。一応、GitHubにデータを上げておきます。

三つ目はテキストデータです。

前処理

重複削除

  • やりたいこと
    重複したデータを除外したい。最初に現れたレコードだけを残したい。
  • コード
  • 参考情報
    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.duplicated.html

階級のデータを作りたい

  • やりたいこと
    任意の範囲に応じたラベルをつけた階級値を作りたい。
  • コード
  • 参考情報
    https://pandas.pydata.org/docs/reference/api/pandas.cut.html

再起的にリストをコピーしたい

  • やりたいこと
    リストをコピーした際に、コピーしたものを変更した際に、もとのものも変更されてしまうので、それを防ぎたい。
  • コード
  • 参考情報
    https://docs.python.org/3/library/copy.html

ピボットテーブルでアクセスログから特徴量用のデータを作りたい

  • やりたいこと
    集計されていないアクセスログをもとに、セッションidごとの触れたページを集計し、Bag of Words形式のデータフレームにしたい。これは機械学習の特徴量に使えるので便利。
  • コード
  • 参考情報
    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html

データフレームのある列に対して特定の文字列で分割し、その任意のN番目のものを抽出したい

  • やりたいこと
    pandasのデータフレームである文字列の列に対して特定のキーワードで分割し、そのN番目のものをデータフレームの列として持たせる。今回はURLのパラメータの後ろについている文字列を抽出している。
  • コード
  • 参考情報

データフレームの行単位で割り算を行いたい

  • やりたいこと
    各行の合計で、各行を割ることでレコード単位で重み付けを行いたい時や確率を計算したいときに良く使います。データはアクセスログをBag of Word形式したものを使います。
  • コード
  • 参考情報
    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.div.html

列単位で行を足し合わせて文字列を作りたい

  • やりたいこと
    データフレームの列の要素をつなぎ合わせて文字列を作成したい。複合キーを作らないとデータを繋げない時などによく使います。
  • コード
  • 参考情報
    https://www.kato-eng.info/entry/pandas-concat-pk

グループのレコードごとにidを割り当てたい

  • やりたいこと
    アクセスログなどで、任意のユーザーの初回に触れたページや、N番目に触れたページなどを抽出しやすいように、ユーザーごとのログにidを付与したい。
  • コード
  • 参考情報
    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.factorize.html

正規表現で任意の合致した文字列で挟まれた文字列を抽出したい

  • やりたいこと
    正規表現を用いて、文字列に対して「指定した文字列と文字列の間にある表現」を抽出するための処理です。URLのデータや規則性のあるテキストデータに対して特徴量を作りたい時に使えます。
  • コード
  • 参考情報
    https://docs.python.org/ja/3/library/re.html

複数列の集計値同士で除した値が欲しい

  • やりたいこと
    複数の列で集計した値同士を用いて、さらにそこから比率のデータを作りたい。ターゲットエンコーディングを行いたい場合に使える。
  • コード
  • 参考情報
    https://stackoverflow.com/questions/45075626/summarize-using-multiple-columns-in-python-pandas-dataframe

等間隔の実数の数列を作成したい

  • やりたいこと
    パラメータチューニングをする際に、各パラメータについて等間隔の実数列を作りたいときがあるので、その時に使うコード。
  • コード
  • 参考情報
    https://www.pythoncentral.io/pythons-range-function-explained/

スペース区切りの文字列において、ある単語の前後N個の単語を抽出したい

  • やりたいこと
    テキストマイニングをする際に、関心のある単語の前後N文字を抽出したい時がある。もちろん、関心のある単語の周辺の単語というものを特徴量にすることも良いと思われる。ここではMeCabによる形態素解析により分かち書きにする関数と共に紹介する。
  • コード
  • 参考情報
    https://stackoverflow.com/questions/17645701/extract-words-surrounding-a-search-word

グループごとに文字列を結合したい

  • やりたいこと
    テキストマイニングなどで、任意のグループごとのテキストデータをスペース区切りで繋ぎたいときがあります。任意のグループごとのテキストを一気に連結できて便利です。これを形態素解析して特徴量にするのも良いと思います。
  • コード
  • 参考情報
    https://stackoverflow.com/questions/17841149/pandas-groupby-how-to-get-a-union-of-strings

文字列の置換をdict形式のデータで行いたい

  • やりたいこと
    事前に用意した置換のリストを使って、文字列の置換を一気に行いたい。
  • コード
  • 参考情報
    http://omoplatta.blogspot.com/2010/10/python_30.html

テキストを形態素解析してBoW形式のデータにして特徴量にしたい

  • やりたいこと
    任意の日本語のテキストとラベルの組み合わせがあるとして、テキストを形態素解析してTF-IDFを計算し、それを特徴量としてラベルを予測するということをやりたい。ここでは以前集めて、GitHubに載せてあるデザイナーズマンションのデータを使い、MeCabで形態素解析をしたあとに、TF-IDFを計算し、それを特徴量にしてsklearnで簡単に予測をし、リフト曲線を描いている。
  • コード
  • 参考情報
    https://scikit-plot.readthedocs.io/en/stable/metrics.html

訓練データとテストデータで特徴量の数が足りない時に不足した変数を追加したい

  • やりたいこと
    訓練データとテストデータの変数の数が違う時に、そのままではモデルを使えないので、補うために使う。
  • コード
  • 参考情報
    なし

アクセスログのユーザーごとのレコードごとの累積和を計算したい

  • やりたいこと
    アクセスログや購買データなどで、レコードごとの累積の値を計算したいときに使う。時系列に従いどんどん足されていく。
  • コード
  • 参考情報
    https://ohke.hateblo.jp/entry/2018/05/05/230000

参考情報

前処理大全[データ分析のためのSQL/R/Python実践テクニック]
はじめてのアナリティクス API: サービス アカウント向け Python クイックスタート
カモノハシペリー
ペリー|フィニアスとファーブ|ディズニーキッズ公式

Uncertainty in Gradient Boosting via Ensembles[A4一枚まで備忘録]

A4用紙1枚にまとめるイメージでメモを残そうという取り組み。

今回は機械学習でとりわけ、回帰の問題を扱うことが仕事であった際に参照できるメモの一つとして残したい。
先日、Catboostのドキュメントに参考文献としてUncertainty in Gradient Boosting via Ensemblesの存在を知った。業務において、価格の予測とか、期間の予測とかマーケティングのデータでも良く扱うものなので、分類だけでなく回帰についてもバランス良く知見を貯めたいところ。

目次

Abstract
Introduction
Background and related work
Generating ensembles of GDBT models
Experiments on Synthetic Data
Experiments on classfication and regression datasets
Conclusion
Broader Impact

Abstract

機械学習のモデルは予測において点推定しかしないが、実務上は不確実性を定量化したいニーズがある。この研究では、予測の不確実性推定値を導出するためのアンサンブルベースの枠組みが紹介されている。予測における不確実性は「データに起因する複雑さとノイズの不確実性」「特徴空間において、情報がないことに起因する不確実性」に分解される。
手法としては確率的勾配ブースティングと確率的勾配ランジュバンブースティング(SGLB)が扱われている。SGLBは一つの勾配ブースティングモデルからのアンサンブルを可能にし、モデルの複雑さを減らすことができる。また、予測性能の向上について様々なデータセットを使って示されている。

Introduction

一般的な勾配ブースティングについて、回帰の際に点推定しか返さないことを挙げている。NGBoostについても言及している。NGBoostなら、勾配ブースト決定木(GBDT)を訓練して平均値を返せるとのこと。ただし、データの不確実性に起因する不確実性しか捕捉できないという問題がある。モデルに関する知識の欠落によって生じる不確実性に関して扱うことはできない。近年ではニューラルネットワークを用いて知識を起因とする不確実性の研究がなされているらしい。今回扱う、アンサンブルアプローチは全体の不確実性を「データの不確実性」と「知識の不確実性」に分解する。扱うモデルは確率的勾配ブースティングと、確率的勾配ランジュバンブースティング(SGLB)となっており、SGLBの利点として、漸近的に真のベイジアン事後分布からサンプリングことが挙げられている。また、SGLBによって1つの勾配ブースティングのみをモデルを使ってアンサンブルをすることができるとされている。これにより計算の複雑さを減らすことができる。結果として、予測性能が高まり、誤りやドメインの外側のデータの入力の検知ができるようになったとされている。

Background and related work

  • ベイジアンのアプローチ
    ベイズ統計学を使っている。予測の多様性について考察することで、知識の不確実性の推定を行うことができるとしている。さらに、確率モデルのアンサンブルを行なっている。アンサンブルモデルの不一致さ、広がりの程度が知識の不確実性につながるとしている。事後分布の近似のための研究が色々となされ、ニューラルネットワークのモデルなども使われた。モデルの事後分布をもとに、予測の事後分布を手に入れる。予測の事後分布のエントロピーが、予測の不確実性を推定する。知識の不確実性は、全ての不確実性からデータの不確実性の期待値を差し引いた相互情報量で表される。確率的な回帰モデルのアンサンブルを考える時、予測事後分布のエントロピーと相互情報量を推定することができない。代わりに総変動の法則に従ってなら推定することができるが、1~2次のモーメントに基づいているだけなので、高次元での不確実性に関する見落としが起きうる。
  • 勾配ブースティング
    弱学習器は浅い決定木によって形成される。ただ、勾配ブースティングの回帰モデルは点での予測しかしない。予測の不確実性に関する研究はほとんどされていない。近年、NGBoost (Natural Gradient Boosting)が登場し、予測の不確かさを推定することができるようになった。NGBoostは入力変数xが与えられたもとでの、出力変数の条件付き事後分布の推定を行ってくれる。

Generating ensembles of GDBT models

NGBoostはデータの不確実性を捉えることができるものの、知識の不確実性については捉えることができない。
知識の不確実性を捉えるための方法としては、事後分布からサンプリングされた予測モデル(GBDT)のアンサンブルが挙げられる。
そもそもGBDT自身が木のアンサンブルであるが、そのGBDTのアンサンブルを考える。

アンサンブルをする方法としては、確率的勾配ブースティングのアプローチで生成された独立なモデルを扱うことがあげられている。
もとのモデルにノイズを注入して、出力をぶれさせることで予測の分布を得ようとしている。ただ、これは事後分布の推定を保証しないらしい。

ただし、確率的勾配ランジュバンブースティング(SGLB)アルゴリズムを用いることで真の事後分布からGBDTモデルをサンプリングすることができるらしい。
非凸の損失関数においての最適化の収束のために、確率的勾配ランジュバン力学が用いられているとのこと。ランジュバン力学ってなんだろうか。

確率的勾配ブースティングとの違いは2つある。

  • 1.ガウシアンノイズが勾配に明示的に加えられている。
    • 正規分布の平均は0で分散に逆拡散温度というものがある。ノイズをコントロールするものであることに間違いはない。確かに物理っぽい。STANのリープフロッグとかを思い出した。このノイズが最適値を見つけるのに役立つらしい。
  • 2.ブースティングモデルの更新式に正則化パラメータを設けている。
    • 定常分布に弱く収束していくマルコフ連鎖にパラメータが従うらしい。

対数尤度に正則化項が残るものの、比例するらしく、真の事後分布に従うと見なせるらしい。

確率的勾配ブースティングや確率的勾配ランジュバンブースティングは計算する上で重大なオーバーヘッドが生じるらしくイタレーションを減らすなど質を下げたり複雑さを増したりする必要があるとのこと。それを避けるために、仮想SGLBアンサンブルというものが提案されている。

SGLBアルゴリズムのイタレーションごとのパラメータは弱く定常に収束するマルコフ連鎖に従うことから、それらをモデルのアンサンブルと見なす。
しかしながらモデル同士が強く相関してしまうので、アンサンブルの質が下がる。ただし、各々のパラメータのK番目の集合のみを使うことで克服できるとある。
K番目のパラメータ集合のみのモデルで構築したアンサンブルを仮想アンサンブルと呼んでいる。

Experiments on Synthetic Data

ここではGBDTモデルのアンサンブルアルゴリズムを合成データを用いて実験している。
合成データとしては、以下の2つの1次元データセットが扱われている。

  • 合成データセット
    • 分散が増加していく絶対値x
    • 分散が減少していく絶対値x
  • 比較するモデル
    • SGLB
    • SGB
    • vSGLB(仮想SGLB):SGLBから生成
  • 結果
    • 分散が減少していく絶対値xのケースだと、データの不確実性に関して、SGBではサンプルの領域外で過剰に不確実性が増してしまう。
    • 分散が増加していく絶対値xのケースだと、知識の不確実性に関して、SGBではサンプルの領域外で不確実性が増してしまう。

サンプルの領域外のほうが、領域内よりも不確実性が大きいはずだが、実験データではそうではないらしい。

Experiments on classfication and regression datasets

GBDTモデルのアンサンブルアルゴリズムを色々なデータのいろいろなタスク(回帰、分類)で予測性能をみている。

  • タスク
    • 回帰タスク
    • 分類タスク
  • データセット
    • 18種類くらいある。(Wineとか、解約のデータとかAmazonのデータとかいろいろ)
  • 比較するモデル
    • SGB:このアンサンブルは10個の独立したモデルで、それぞれ1K本の木を持つ。
    • SGLB:このアンサンブルは10個の独立したモデルで、それぞれ1K本の木を持つ。
    • vSGLB(仮想SGLB):[500, 1000]の区間から50番目のモデルをアンサンブルに追加していっている。
  • どう実装しているか
    • CatBoostライブラリをベース
    • 分類では二値分類のクラスの確率分布を生成
    • 回帰では正規分布の平均と分散を生成
    • 負の対数尤度を最適化している
    • ハイパーパラメータはランダムサーチ
  • 何の指標を見ているか
    • 負の対数尤度
    • 誤分類率
    • RMSE
    • 不確実性の合計、知識の不確実性:Prediction-Rejection Ratio(PPR)というもので測る。どれくらい不確実性が誤差と順番と相関するかを測るらしい。100が最大で、ランダムだと0になる。
    • AUC:領域外のデータに関する評価に用いる。領域外データは合成して生成した。
    • 分類:負の対数尤度(NLL)
      • アンサンブル手法に軍配が上がるが、違いは軽微である。
      • 仮想アンサンブルが勝るときがある。
    • 分類:誤分類率
      • アンサンブル手法に軍配が上がるが、違いは軽微である。
    • 回帰:RMSE
      • アンサンブル手法に軍配が上がるが、違いは軽微である。
    • SGBやSGLBはパフォーマンスが良い。
      • vSGLBはわずかにパフォーマンスが悪い。自己相関があるなかでアンサンブルしているためパフォーマンス悪化が生じていると考えられる。
        • ただ単一モデルのものよりかは良い。
        • コストをかけずに精度を上げたいという観点ではvSGLBはよい選択肢となる。

    Conclusion

    この論文では、GBDTを用いたアンサンブルベースの不確実性推定モデルが扱われた。SGB、SGLB、仮想SGLBについて合成データや、分類や回帰のタスクにおいて比較した結果、アンサンブル手法が精度面で秀でているわけではないことが示された。
    しかし、知識の不確実性(モデルで十分に想定できていない不確実性)を扱う際にアンサンブル手法が役立つことがわかった。
    知識の不確実性を扱う場合に、計算コストの少ない手法として仮想のSGLBが提案され、精度において十分ではないが、低コストで知識の不確実性を扱う観点において有用であることが示された。

    Broader Impact

    • 不確実性の推定は、機械学習モデルをより安全に、より信頼できるものにするという観点で重要。
    • GBDT系の手法はニューラルネットワーク系の手法よりも計算コストが低くて良い。
    • 不確実性の推定が貧弱なものとならないように引き続き研究が求められる。

    追記

    不確実性について扱われた、ソースコードの載っている記事を集める。

    [Python]音声解析でトランペットの録音データを可視化してみる

    はじめに

    私はデータ分析以外の趣味としては、トランペットの演奏があります。個人でプイプイ吹いているだけのしょうもない趣味ですけどね。
    先日、楽器屋に新しいマウスピース(楽器を口に当てる金属部分、振動させる部分)を買いに行ったのですが、吹いているうちによくわからなくなったので、録音した音声波形などを可視化することで、いいなと思う音がどんな波形をしているのかを明らかにしたいと思います。

    進め方

    • 録音データを用意(iPhoneのムービー)
    • FFmpegで動画から音声のみを切り出し、サンプルレートを変え、モノラルにする
    • Pythonで基本周波数(F0)などを可視化

    データの準備

    今回はチューニングB♭(ベー)の音3種類(Yamaha 11C4、Bach 5C、Bach 3C)と、練習曲(ルパン三世のフレーズ)の音2種類(Yamaha 11C4、Bach 5C)の計5つの音源を扱います。

    マウスピースのイメージ

    • Yamaha 11C4:オールマイティー(これまで使っていたやつ)
    • Bach 5C:少し深くて、少し内径が小さい
    • Bach 3C:少し深くて、少し内径が小さい(5Cと3Cの違いは当て心地?)

    指標の説明

    • 音声波形:波動の振動の大きさを表す非負のスカラー量を縦軸に、横軸を時間とした場合のグラフを音声波形と呼ぶ。
    • ピッチマーク:単位波形を抽出する基準点でエポックマーカーと呼ばれる。音が鳴った際に1をとり音がない際は0を取る。
    • 基本周波数:信号を正弦波の合成で表したときの最も低い周波数成分の周波数で、音程に該当する。
    • 相関係数:ピッチマークの検出に使う指標でNCCF(Normalized Cross-Correlation Function)というものを使って計算している。自己相関のようなもので-1から1の間を取る。

    音声ファイルのあるディレクトリで以下のコマンドを実行します。(私の環境はMacです。)

    音声波形などの可視化〜チューニングB♭(ベー)〜

    ここでは単純にチューニングベーの音を比較します。まず音源ですが、以下で実際に聴けるようになっています。(耳を痛めないように、最も小さい音で聴いてから調整してください。)
    しかし、慣れないマウスピースで音程が不安定になっているのが悲しいですね。

    ・Yamaha 11C4のチューニングベー

    ・Bach 5Cのチューニングベー

    ・Bach 3Cのチューニングベー

    以前書いたブログと同様に、pyreaperというREAPERのラッパーとなっているライブラリを用います。REAPERはGoogleが開発していて、C++で書かれています。

    音声波形の比較


    やはり慣れている分、11c4が安定してそうな波形に見えますね。3Cは結構ブレてそうです。実際の音源でもわかりますね。

    ピッチの比較


    発音のあったところで1となる指標です。今回は伸ばしているだけなので、何の面白味もないです。

    基本周波数(F0)の比較


    音程をつかさどるF0に関しては3Cが安定してそうです。聴いたらブレブレなのに。

    相関係数の比較


    いつも使っている11c4がブレにくいようで、5Cが比較的に上下動が多いように見えます。

    音声波形などの可視化〜練習曲〜

    結局、マウスピースは5Cを購入して、その後スタジオで練習曲の音を比較しました。先ほどと同様に音源が以下で実際に聴けるようになっています。(耳を痛めないように、最も小さい音で聴いてから調整してください。)私は、実際に録音して、マウスピースでこんなに変わるんだと驚きを隠せないです。チューニングベーを比較するだけではわかりにくいんですかね。私としては、5Cの音の方が好きです。

    ・Yamaha 11C4での練習曲

    ・Bach 5Cでの練習曲

    音声波形の比較


    5Cのほうが上下の大きさが対称に近いような印象を受けます。いい音を捉える参考になるんですかね?

    ピッチの比較


    おそらく、11c4の音源の息継ぎのタイミングがやや長くなった結果、ピッチに差が出たのではないかと思います。

    基本周波数(F0)の比較


    比較が難しいですが、最後の伸ばしは5Cのほうが安定しているようです。

    相関係数の比較


    5Cのほうが上下動をしているように見えます。いいなと思う音の方が上下動しやすいのでしょうか。気になるところ。

    追記:スペクトログラムの比較

    どうやら音色を考えるうえで、縦軸に周波数、横軸に時間をとったスペクトログラムというものを可視化するのも良いらしいです。参考文献に従って行ってみます。

    5Cよりも11C4が赤い線が1つ多いように見えます。幅広く音が鳴っていてモサっとしてしまっているのでしょうか。私としては5Cの方が音が鋭くて好きです。

    おわりに

    音声波形で音色の比較がうまくできるかどうか試してみたのですが、良いと思われる音とそうでない音で相関係数や音声波形などのデータの可視化において違いが生じやすいのかなという印象でした。そして音色をつかさどるとされるスペクトログラムにおいても、違いがありそうでした。
    もっと音源を集めていっていい音の研究をしていこうと思います。あと、音楽の理論の方も細々と学んでいきます。

    参考文献

    IPythonデータサイエンスクックブック ―対話型コンピューティングと可視化のためのレシピ集
    pyreaperで音声データのピッチを掴むためのメモ書き(F0の抽出)
    Pythonで音声解析 – 音声データの周波数特性を調べる方法
    基本周波数についてのまとめ
    イラストで学ぶ 音声認識 (KS情報科学専門書)

    [数理統計学]統計的検定のまとめ


    通勤電車のなかで私が勉強する用のシリーズ第5弾です。今回は統計的検定についてまとめておこうと思います。

    【これまでのシリーズへのリンク】



    目次

      統計的仮説検定
      検出力
      一様最強力検定
      ネイマン-ピアソンの基本定理
      不偏検定
      尤度比検定
      尤度比検定(1標本のケース)
      尤度比検定(2標本のケース)
      \( \chi^2 \)適合度検定
      分割表の検定

      統計的仮説検定

      確率ベクトル(標本確率変数)である\( X = (X_1, \dots, X_n) \)が標本空間\( \mathfrak X \)上にある分布\( P_{\theta} , \theta \in \Theta \)に従うとして、空集合ではない\( \Theta_0 \)は\( \Theta \)の真部分集合であらかじめ決まっているものとする。その前提のもとで、Xの従う分布が
      帰無仮説
      $$ P_{\theta} , \theta \in \Theta_0 $$
      なのか、対立仮説
      $$ P_{\theta} , \theta \in \Theta $$
      なのかを主張する行為のことを統計的仮説検定と呼ぶ。なお、\( \Theta_0 \)が一つだけの場合は単純仮説、複数ある場合は複合仮説と呼ぶ。

      仮説検定を行う際は、先ほどあげた標本空間\( \mathfrak X \)を、\( \mathfrak X = C \cup C^C \)との二つの領域に分割する。ここで、\( C \)は棄却域を\( C^C \)は受容域を表す。その際、以下のような棄却域の定義関数を考える。

      $$
      \varphi (X) =
      \begin{cases}
      1 \ (x \in C ) \\
      0 \ (x \in C^C )
      \end{cases} \\
      0 \leq \varphi (x) \leq 1
      $$

      この定義関数\( \varphi (X) \)は検定関数と呼び、標本xを得たときに、確率\( \varphi (X) \)で帰無仮説(\( H_0 \))を棄却する際に用いる。先ほどの定義関数の場合、0-1の値しかとらないので、非確率化検定と呼ばれる。他方、0-1でない場合は確率化検定と呼ばれる。

      棄却域を決めると自ずと生じるものが、第一種の誤りと第二種の誤りです。

      第一種の誤り
      帰無仮説(\( H_0 \))が正しいにも関わらず、それを棄却してしまうことによる誤り。

      第二種の誤り
      対立仮説(\( H_1 \))が正しいにも関わらず、帰無仮説(\( H_0 \))を受容したことによる誤り。

      このどちらをも共に小さくすることはできません。
      図にすることで理解が捗ります。

      ここでは2種類の棄却域\( C_1, C2 \)を考えます。
      図からわかるように、
      $$ P(C_2 | H_0) < P(C_1 | H_0) \\
      P(C_2^C | H_1) < P(C_1^C | H_1)
      $$
      となり、\( C_2 \)は第一種の誤りが小さい代わりに、第二種の誤りが大きくなっているのがわかります。

      検出力

      対立仮説\( H_1 \)が正しい時に、\( H_1 \)を受容する確率を検出力と呼ぶ。検定関数\( \varphi (X) \)の良さを表す。

      $$\beta (\theta; \varphi ) = E_{\theta} \left [ \varphi (X) \right ] \ ( \theta \in \Theta_1 ) $$

      以下の\( \alpha \)のことを検定関数\( \varphi (X) \)の大きさと呼ぶ。
      $$ \alpha_0 = \sup_{\theta \in \Theta_0} E_{\theta}(\varphi(X))
      $$
      第一種の誤りをする確率に関しての、帰無仮説のもとに成り立つ\( \Theta_0 \)空間上での上限となる。
      ここで\( \alpha \)を
      $$0 \leq \alpha \leq 1$$
      としたとき、
      $$ \sup_{\theta \in \Theta_0} E_{\theta}(\varphi(X)) \leq \alpha
      $$
      となる検定を有意水準\( \alpha \)の検定と呼ぶ。
      ようは、多くの人が有意差あるとかないとか言っているのは、この第一種の誤りをする確率のことで、社会科学では5%などに置くことが多い。

      一様最強力検定

      \( \alpha : 0 \leq \alpha \leq 1 \)が与えられたとき、水準\( \alpha \)の検定の中で検出力(\( H_1 \)が正しいときに、\( H_1 \)を受容できる確率)を一様に最大にするものが存在する場合、そのような検定を一様最強力検定(Uniformly Most Powerful test:UMP検定)と呼ぶ。

      $$ E_{\theta} \left [ \varphi (X) \right ] \leq E_{\theta} \left [
      \varphi_0 (X) \right ], \ \forall \theta \in \Theta_1 $$

      \( \theta \)の値が大きいときは、それが対立仮説に従うと採択する確率が高まり、帰無仮説の領域だと、値が小さいにも関わらず、対立仮説に従うと言ってしまっているので、検出力が下がる。

      検出力関数の例

      $$ \pi_{\gamma} (\theta) = P \left [ H_0 \ is \ rejected | X_1, \dots, X_n \sim f(x | \theta) \right ] \\
      \pi_{\gamma} (\theta) \in [0, 1]
      $$

      という検出力関数について、Xの従う分布を以下のように仮定する。
      $$ X_1, \dots, X_n \sim N(\theta, 25) $$
      ここで、帰無仮説で
      $$ H_0 : \theta \leq 17 $$
      とする際の検出力について考える。

      標本平均の\(\bar X\)が
      $$ \bar X > 17 + 10 / \sqrt n $$
      に従うとすると、検出力関数は、
      $$ \pi_{\gamma} = P \left [ \bar X > 17 + 10/ \sqrt n | \theta \in \mathbb R \right ] \\
      = P \left [ \frac{\sqrt n (\bar X – \theta)}{5} > \frac{17+ 10/ \sqrt n – \theta}{5 / \sqrt n} \right ] \\
      = 1 – \Phi \left ( \frac{17+ 10/ \sqrt n – \theta}{5 / \sqrt n} \right ) $$
      となる。

      一応、可視化のためのコードも載せておきます。

      ネイマン-ピアソンの基本定理

      確率分布\(P_{\theta}\)の確率密度関数\( f(x; \theta) \)について、以下の統計検定を行う際の最強力検定に関する定理をネイマン-ピアソンの基本定理と呼ぶ。

      $$ H_0 : \theta = \theta_0 \\
      H_1 : \theta = \theta_1 $$

      ここでは有意水準を\( \alpha : 0 \leq \alpha \leq 1 \)とし、検定関数\( \varphi_0 (x) \)は以下の式で与えられる。
      $$ \varphi_0 (x) = \begin{cases}
      1 \ ( f(x ; \theta_1) > k f(x ; \theta_0) ) \\
      \gamma \ ( f(x ; \theta_1) = k f(x ; \theta_0) ) \\
      0 \ ( f(x ; \theta_1) < k f(x ; \theta_0) )
      \end{cases}$$
      ここで定数
      $$ \gamma : 0 \leq \gamma \leq 1 \\
      k : k \geq 0 $$
      は以下の式から定まるものとする。
      $$ E_{\theta_0} \left[ \varphi_0(X) \right ] = \alpha $$

      ネイマン-ピアソンの基本定理の証明について

      任意の統計検定の関数について、ネイマン-ピアソンの基本定理にしたがった統計検定の検出力を上回らないことを示せば良い。

      Xが連続であるとして、
      $$
      C = \{ x \in \mathfrak X | f(x; \theta_1) > k f(x; \theta_0) \} \\
      D = \{ x \in \mathfrak X | f(x; \theta_1) = k f(x; \theta_0) \} \\
      E = \{ x \in \mathfrak X | f(x; \theta_1) < k f(x; \theta_0) \}
      $$
      とおくと、これらは互いに素であるから、
      $$ \mathfrak X = C \cup D \cup E $$
      と表される。

      ここで統計検定の関数\( \varphi (X) \)を
      $$
      H_0 : \theta = \theta_0 \\
      H_1 : \theta = \theta_1
      $$
      の検定問題に対する有意水準\( \alpha \)の任意の検定とする。
      このとき、定義から\( \varphi (X) \)は
      $$ E_{\theta_0} [ \varphi (X)] \leq \alpha $$
      を満たす。
      \( \varphi_0 (X) \)の定義から、

      $$
      E_{\theta_1}[ \varphi_0 (X) ] – E_{\theta_1}[ \varphi (X) ] \\
      = \int_{\mathfrak X} \varphi_0 (X) f(x ; \theta_1) dx – \int_{\mathfrak X} \varphi (X) f(x ; \theta_1) dx \\
      = \int_{\mathfrak X} (\varphi_0 (X) – \varphi (X) ) f(x ; \theta_1) dx \\
      = \int_{C} (1 – \varphi (X) ) f(x ; \theta_1) dx + \int_{D} (\gamma – \varphi (X) ) f(x ; \theta_1) dx + \int_{E} ( – \varphi (X) ) f(x ; \theta_1) dx \\
      \geq \int_{C} (1 – \varphi (X) ) (k f(x;\theta_0))dx + \int_{D} (\gamma – \varphi (X) ) (k f(x;\theta_0))dx + \int_{E} ( – \varphi (X) ) (k f(x;\theta_0))dx \\
      = k \int_{C} (1 – \varphi (X) )f(x;\theta_0)dx + k \int_{D} (\gamma – \varphi (X) )f(x;\theta_0)dx + k \int_{E} ( – \varphi (X) )f(x;\theta_0)dx \\
      = k \int_{\mathfrak X} (\varphi_0 (X) – \varphi (X) ) f(x ; \theta_1) dx \\
      = k \{E_{\theta_0}[ \varphi_0 (X) ] – E_{\theta_0}[ \varphi (X) ]\} \\
      = k \{ \alpha – E_{\theta_0}(\varphi(X))\} \\
      \geq 0$$

      よって、
      $$ E_{\theta_1}[ \varphi_0 (X) ] \geq E_{\theta_1}[ \varphi (X) ] $$
      となり、\( \varphi_0 (X) \)が任意のものよりも大きな検出力を持つことから、有意水準\( \alpha \)の最強力検定であることが示された。

      ネイマン-ピアソンによる最強力検定の例(正規分布)

      平均が未知で分散が既知のケースにおいて、確率変数が\( X_1, \dots , X_n \sim N(\mu, \sigma_0^2) \)に従うとして、以下の検定問題を考え、有意水準\( \alpha \)の最強力検定を求める。
      
      $$
      H_0 : \mu = \mu_0 \\
      H_1 : \mu < \mu_0
      $$
      これは単純仮説と単純対立仮説からなる検定問題なので、以下のように書き換えることができる。
      $$
      H_0 : \mu = \mu_0 \\
      H_1 : \mu = \mu_1 \\
      (\mu_1 < \mu_0)
      $$

      なお、この例は片側検定問題となる。
      \( X_i \)の確率密度関数を\( f(x_i ; \mu) \)として、ネイマン-ピアソンの基本定理に従うと、有意水準\( \alpha \)の最強力検定は以下のようになる。

      $$ \varphi_0 (x) = \begin{cases}
      1 \ ( \prod_{i=1}^n f(x_i ; \mu_1) > k \prod_{i=1}^n f(x_i ; \mu_0) ) \\
      \gamma \ ( \prod_{i=1}^n f(x_i ; \mu_1) = k \prod_{i=1}^n f(x_i ; \mu_0)) \\
      0 \ ( \prod_{i=1}^n f(x_i ; \mu_1) < k \prod_{i=1}^n f(x_i ; \mu_0) )
      \end{cases}$$

      ここで、
      $$
      \gamma \in [0, 1] \\
      k \in [0, \infty ]
      $$

      $$ E_{\mu_0} [ \varphi_0(X) ] = \alpha $$
      を満たす定数で与えられるものとする。

      \( X = (X_1, \dots , X_n ) \)が連続型の場合、

      $$P_{\mu_j} \left \{ \prod_{i=1}^n f(x_i ; \mu_1) = k \prod_{i=1}^n f(x_i ; \mu_0) \right \} = 0 \\
      j = 0, 1$$

      であるから、このケースは無視することができる。
      仮定より、
      $$ \prod_{i=1}^n f(x_i ; \mu) = \prod_{i=1}^n \frac{1}{\sqrt {2\pi} \sigma_0} e^{-\frac{(x_i – \mu)^2}{2\sigma_0^2}} \\
      = \frac{1}{(\sqrt {2\pi})^n \sigma_0^n} e^{-\frac{\sum_{i=1}^n (x_i – \mu)^2 }{2\sigma_0^2}} \\
      = \frac{1}{(\sqrt {2\pi}\sigma_0)^n } e^{-\frac{n(\bar x – \mu)^2 + \sum_{i=1}^n(x_i – \bar x)^2}{2\sigma_0^2}}
      $$
      よって検定関数において、棄却するケースについて以下のように書き表すことができる。
      $$\prod_{i=1}^n f(x_i ; \mu_1) > k \prod_{i=1}^n f(x_i ; \mu_0) \\
      \Leftrightarrow \frac{\prod_{i=1}^n f(x_i ; \mu_1)}{\prod_{i=1}^n f(x_i ; \mu_0)} > k \\
      \Leftrightarrow \frac{\frac{1}{(\sqrt {2\pi}\sigma_0)^n } e^{-\frac{n(\bar x – \mu_1)^2 + \sum_{i=1}^n(x_i – \bar x)^2}{2\sigma_0^2}}}{\frac{1}{(\sqrt {2\pi}\sigma_0)^n } e^{-\frac{n(\bar x – \mu_0)^2 + \sum_{i=1}^n(x_i – \bar x)^2}{2\sigma_0^2}}} \\
      \Leftrightarrow e^{\frac{n}{2\sigma_0^2} ((\bar x – \mu_0)^2 – (\bar x – \mu_1)^2) } > k \\
      \Leftrightarrow (\bar x – \mu_0)^2 – (\bar x – \mu_1)^2 > \frac{2\sigma_0^2}{n} \log k = k’
      $$
      ここで、\( \mu_1 < \mu_0 \)より
      $$(\bar x – \mu_0)^2 – (\bar x – \mu_1)^2 < 0$$
      であるから、
      $$ \bar x < \frac{\mu_1^2 – \mu_0^2}{2(\mu_1 – \mu_0)} = k” $$
      となる。
      一方、\( H_0 \)が真のとき、\( \bar X \)は\( N \left ( \mu_0, \frac{\sigma_0^2}{n} \right ) \)に従うので、
      $$\alpha = E_{\mu_0}[ \varphi_0 (X) ] \\
      = P_{\mu_0} \left \{ \prod_{i=1}^n f(x_i ; \mu_1) > k \prod_{i=1}^n f(x_i ; \mu_0) \right \} \\
      = P_{\mu_0} \left \{ \bar X < k” \right \} \\
      = \int_{-\infty}^{k”}\frac{\sqrt{n}}{\sqrt{2\pi}\sigma_0}e^{-\frac{n(t-\mu_0)^2}{2\sigma_0^2}}dt
      $$
      ここで\( \frac{\sqrt{n}(t-\mu_0)}{\sigma_0} = u \)、\( k_0 = \frac{\sqrt{n}(k” – \mu_0)}{\sigma_0} \)とおいて変数変換を行うと、
      $$ \alpha = \int_{-\infty}^{k_0} \frac{1}{\sqrt{2\pi}}e^{-\frac{u^2}{2}}du \\
      = \Phi (k_0)
      $$
      となる。\(\Phi(\cdot)\)は\( N(0,1) \)の分布関数を表すので、標準正規分布表から\( \Phi (k_0) = \alpha \)をみたす\( k_0 \)の値を読み取ることで、以下のような今回の統計検定の棄却域が得られる。
      $$k^{*} = \mu_0 + \frac{\sigma_0}{\sqrt{n}}k_0 = \mu_0 – \frac{\sigma_0}{\sqrt{n}}z(\alpha) $$
      なお、これは\( \mu_1 \)の水準に無関係に決まる。

      ネイマン-ピアソンによる最強力検定の例(ベルヌーイ分布)

      確率pが未知で確率変数mが既知のケースにおいて、確率変数が\( X_1, \dots , X_n \sim B_N(m, p) \)として、以下の検定問題を考え、有意水準\( \alpha \)の最強力検定を求める。
      $$
      H_0 : p = p_0 \\
      H_1 : p < p_0
      $$
      これは単純仮説と単純対立仮説からなる検定問題なので、以下のように書き換えることができる。
      $$
      H_0 : p = p_0 \\
      H_1 : p = p_1 \\
      ( p_1 < p_0)
      $$

      仮定より、\( X = ( X_1, \dots , X_n ) \)の確率関数は
      $$\prod_{i=1}^n f(x_i ; p) = \prod_{i=1}^n {}_m C _{x_i}p^{x_i}(1-p)^{m-x_i} \\
      = p^{\sum_{i=1}^n x_i}(1-p)^{mn – \sum_{i=1}^n x_i} \prod_{i=1}^n {}_m C _{x_i} $$
      となる。
      対立仮説が正しいのであれば、尤度の比において以下の関係となる。

      $$\frac{\prod_{i=1}^n f(x_i ; p_1)}{ \prod_{i=1}^n f(x_i ; p_0) } > k \\
      \Leftrightarrow \frac{ p_1^{\sum_{i=1}^n x_i}(1-p_1)^{mn – \sum_{i=1}^n x_i} \prod_{i=1}^n {}_m C _{x_i}}{p_0^{\sum_{i=1}^n x_i}(1-p_0)^{mn – \sum_{i=1}^n x_i} \prod_{i=1}^n {}_m C _{x_i}} > k \\
      \Leftrightarrow \left ( \frac{p_1(1-p_0)}{p_0(1-p_1)} \right )^{\sum_{i=1}^nx_i} \times \left ( \frac{1-p_1}{1-p_0} \right )^{mn} > k \\
      \Leftrightarrow \left ( \frac{p_1(1-p_0)}{p_0(1-p_1)} \right ) ^{ \sum_{i=1}^n x_i } > k’ = \left ( \frac{1-p_0}{1-p_1} \right )^{mn}k $$

      \( p_1 < p_0 \)であることから、
      $$\left ( \frac{p_1(1-p_0)}{p_0(1-p_1)} \right ) < 1$$
      となり、1よりも小さな項の指数なので、これを満たす\( \sum_{i=1}^n x_i \)であるために、
      $$\Leftrightarrow \sum_{i=1}^n x_i < k”$$
      が満たされる必要がある。

      よってこの検定問題における有意水準\( \alpha \)の最強力検定はネイマン-ピアソンの基本定理に従うと、
      $$ \varphi_0 (x) = \begin{cases}
      1 \ ( \sum_{i=1}^n < k” ) \\
      \gamma \ ( \sum_{i=1}^n = k” ) \\
      0 \ ( \sum_{i=1}^n > k” )
      \end{cases}
      $$
      によってなされる。
      なお、
      $$ \gamma \in [0, 1] \\
      k” \in [0, \infty ] $$

      $$E_{p_0}[ \varphi_0 (X) ] = \alpha $$
      を満たす定数によって与えられる。

      帰無仮説\( H_0 \)が真のとき\( \sum_{i=1}^n X_i \)は\( B_N(mn, p_0) \)に従うので、\( \gamma, k” \)は以下の式を解くことで求められる。

      $$ E_{p_0} [ \varphi_0 (x)] = 1 \times P_{p_0} \left \{ \sum_{i=1}^n x_i < k” \right \} \\
      + \gamma \times P_{p_0} \left \{ \sum_{i=1}^n x_i = k” \right \} \\
      + 0 \times P_{p_0} \left \{ \sum_{i=1}^n x_i > k” \right \} \\
      = \sum_{j < k”} {}_{mn} C _j p_0^j (1-p_0)^{mn-j} + \gamma {}_{mn} C _{k”} p_0^{k”} (1- p_0)^{mn – k”} \\
      = \alpha $$

      \( B_N(mn, p_0) \)の分布関数を\( F(x ; p_0) \)としたとき、
      $$F(k-1; p_0) \leq \alpha $$
      を満たす最大の整数kを\( k” \)として、
      $$ \gamma = \frac{\alpha – F(k” – 1 ; p_0 )}{F(k”;p_0) – F(k” – 1 ; p_0)} $$
      ただし、\( F(0 ; p_0) \leq \alpha \)とする。\( F(0 ; p_0) \geq \alpha \)の場合は、
      $$k” = 0 \\
      \gamma = \frac{\alpha}{F(0; p_0)}$$
      となる。これらは対立仮説の\(p_1\)に関係なく決まるため、一様最強力検定となる。

      不偏検定

      単純仮説ではなく複合仮説の場合、先ほどのような検定を不偏検定と呼ぶ。
      検定問題は以下のようになる。

      $$ H_0 : \theta \in \Theta_0 \\
      H_1 : \theta \in \Theta_1 \ ( = \Theta – \Theta_0 ) $$

      この検定問題で水準\( \alpha \)の検定\( \varphi (X) \)でその検出力が\( \alpha \)以上、
      $$ \beta (\theta ; \varphi ) := E_{\theta} [ \varphi (X)] \geq \alpha, \forall \theta \in \Theta_1 $$
      を満たす検定\( \varphi (X) \)を水準\( \alpha \)の不偏検定と呼び、水準\( \alpha \)の不偏検定の中で検出力を一様に最大にするものを水準\( \alpha \)の一様最強力不偏検定と呼ぶ。

      不偏検定の際の検出力関数は以下の図のようになる。検出力関数がわかれば、\( \alpha \)(第一種の誤りをする確率)を与えたもとで棄却域が決まる。

      不偏検定に関する定理

      まず前提として、\( \theta \)を母数として、\( X = (X_1, \dots , X_n) \)の確率関数\( f(x, \theta) \)が以下の表現で表されるとする。
      $$ f(x, \theta) = C(\theta)e^{\theta T(x)}h(x) $$

      \( \theta_0, \theta_1, \theta_2 (\theta_1 < \theta_2) \)を与えられたものとして、以下の複合仮説の仮説検定問題を考える。

      (1)
      $$ H_0 : \theta_1 \leq \theta \leq \theta_2 \\
      H_1 : \theta < \theta_1 \ or \ \theta > \theta_2
      $$
      (2)
      $$ H_0 : \theta = \theta_0 \\
      H_1 : \theta \neq \theta_0
      $$
      このような仮説検定問題を両側検定問題と呼ぶ。

      検定問題(1),(2)に対する一様最強力不偏検定\( \varphi_0(X) \)は以下の式で与えられる。

      $$
      \varphi_0 (X) =
      \begin{cases}
      1 \ ( T(x) < k_1 \ or \ T(x) > k_2 ) \\
      \gamma \ ( T(x) = k_i , i=1, 2 ) \\
      0 \ (k_1 < T(x) < k_2)
      \end{cases} \\
      0 \leq \varphi (x) \leq 1
      $$

      ここで、定数\( \gamma_i \in [0,1], k_i \geq 0, (i = 1, 2) \)は検定問題(1)については以下の式により定まる。

      $$E_{\theta_1}[ \varphi_0 (X) ] = E_{\theta_2} [\varphi_0 (X)] = \alpha $$
      一方、検定問題(2)については以下の式により定まる。
      $$ E_{\theta_0}[\varphi_0 (X)] = \alpha \\
      E_{\theta_0}[T(X) \varphi_0 (X)] =E_{\theta_0}[T(X)] \alpha
      $$

      以前のネイマン-ピアソンの基本定理は確率の積和(尤度)があったが、この定理ではより一般的な記述がされており、帰無仮説や対立仮説のパラメータも記されていない。しかしながら、非常に似ている。

      不偏検定の例(正規分布(平均が未知、分散が既知のケース))

      確率変数が以下に従うと仮定する。
      $$X_1, X_2, \dots , X_n \sim N(\mu, \sigma_0^2)$$
      ここで以下の検定問題を考える。
      $$ H_0 : \mu = \mu_0 \\
      H_1 : \mu \neq \mu_0 $$
      この検定問題に対する、一様最強力不偏検定を行う。
      仮定より、\( X = (X_1,\dots , X_n) \)の確率密度関数の積は
      $$ \prod_{i=1}^n f(x_i ; \mu) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma_0}e^{-\frac{(x_i – \mu)^2}{2\sigma_0^2}} \\
      = \frac{1}{(\sqrt{2\pi}\sigma_0)^n}e^{-\frac{(x_i – \mu)^2}{2\sigma_0^2}} \\
      = \frac{1}{(\sqrt{2\pi}\sigma_0)^n} e^{-\frac{n\mu^2}{2\sigma_0^2}}e^{\mu \frac{\sum_{i=1}^n x_i}{\sigma_0^2}}e^{- \frac{\sum_{i=1}^n x_i^2}{2\sigma_0^2}} $$
      ここで、統計量として以下を定義する。
      $$ T(x) = \frac{1}{\sigma_0^2} \sum_{i=1}^n x_i $$
      これを用いると先ほどの尤度は以下のような指数型分布になる。
      $$ \prod_{i=1}^n f(x_i ; \mu) = C(\mu) e^{\mu T(x)}h(x) $$
      不偏検定に関する定理を用いることで、水準\( \alpha \)の一様最強力不偏検定の棄却域は以下で与えられる。

      $$ C = \left \{ x = (x_1, \dots, x_n) \in \mathbb R^n | \frac{1}{\sigma_0^2} \sum_{i=1}^n x_i < nk_1 \ or \ \frac{1}{\sigma_0^2} \sum_{i=1}^n x_i > nk_2 \right \} $$

      ここで、\(k_1, k_2\)は、
      $$ P_{\mu_0} \{ C \} = \alpha $$
      および、

      $$ E_{\mu_0} \left \{ \frac{1}{\sigma_0^2} \sum_{i=1}^n x_i \cdot 1_c(x) \right \} = E_{\mu_0} \left \{ \frac{1}{\sigma_0^2} \sum_{i=1}^n x_i \right \} \cdot \alpha $$

      を満たす定数となる。(\( 1_c(x) \)はインデックス関数。)

      各\( X_i \)が独立に\( N(\mu, \sigma_0^2) \)に従い、\( \bar X = \frac{1}{n} \sum_{i=1}^n \)が\( N(\mu, \frac{\sigma_0^2}{n}) \)に従う。

      ここで水準\( \alpha \)を以下のように書くことができる。

      $$ \alpha = P_{\mu_0} \left \{ \bar X < k_1 \sigma_0^2 \ or \ \bar X > k_2 \sigma_0^2 \right \} $$

      ここで、
      $$ k’_i = \frac{\sqrt {n} (k_i \sigma_0^2) – \mu_0}{\sigma_0}, i =1, 2 $$
      とおくと、

      $$ \alpha = P_{\mu_0} \left \{ \frac{\bar X – \mu_0}{ \sqrt{\frac{\sigma_0^2}{n}}} < k’_1 \right \} + P_{\mu_0} \left \{ \frac{\bar X – \mu_0}{ \sqrt{\frac{\sigma_0^2}{n}}} > k’_2 \right \} \\
      = \Phi (k’_1) + 1 – \Phi (k’_2) $$

      となる。
      他方、不偏検定に関する定理より、
      $$ E_{\mu_0} \left \{ \bar X \cdot 1_C(X) \right \} = E_{\mu_0} \left \{ \bar X \right \}\alpha $$
      ここで、
      $$ z = \frac{\sqrt{n}(\bar X – \mu_0)}{\sigma_0} $$
      とおくと、\( \bar X = \mu_0 + \frac{\sigma_0}{\sqrt{n}}Z \)なので、

      $$ E_{\mu_0} \left \{ \bar X \cdot 1_C(X) \right \} = E_{\mu_0} \left \{ ( \mu_0 + \frac{\sigma_0}{\sqrt{n}}Z ) \cdot 1_C(X) \right \} \\
      = \mu_0 E_{\mu_0} \left \{ 1_C(X) \right \} + \frac{\sigma_0}{\sqrt{n}} E_{\mu_0} \left \{z \cdot 1_C(X) \right \} \\
      = \alpha \mu_0 + \frac{\sigma_0}{\sqrt{n}} E_{\mu_0} \left \{z \cdot 1_C(X) \right \}$$

      よって、
      $$ E_{\mu_0} \left \{ z \cdot 1_C(X) \right \} = 0 $$
      となる。
      \( C = \left \{ z < k’_1 \ or \ z > k’_2 \right \} \)と書けることから、これを書き換えると、
      $$ \int_{-\infty}^{k’_1}z \phi (z) dz + \int_{k’_2}^{+\infty}z \phi (z) dz = 0 $$
      となる。
      すなわち、
      $$ \frac{1}{ \sqrt{2 \pi}} e^{ – \frac{(k’_1)^2}{2}} = \frac{1}{\sqrt{2 \pi}} e^{ – \frac{(k’_2)^2}{2} } $$
      となる。これより、
      $$ | k’_1 | = | k’_2 | $$
      から、
      $$ k’_1 = -k’_2 < 0 $$
      となる。
      以上から、水準\( \alpha \)の一様最強力不偏検定の棄却域は
      $$ \bar X < k_1\sigma_0^2 \\
      \bar X > k_2 \sigma_0^2 $$
      で与えられる。
      ここで、
      $$ k_1 = \left ( \mu_0 + \frac{\sigma_0}{\sqrt{n}}k’_1 \right ) / \sigma_0^2 \\
      k_2 = \left ( \mu_0 – \frac{\sigma_0}{\sqrt{n}}k’_1 \right ) / \sigma_0^2 $$
      となり、\( k’_1 \)は
      $$ \Phi ( k’_1 ) = \frac{\alpha}{2} $$
      を満たす、標準正規分布の値、\( k’_1 = -z \left ( \frac{\alpha}{2} \right ) \)となる。

      不偏検定の例(正規分布(平均が既知、分散が未知のケース))

      確率変数が以下に従うと仮定する。
      $$X_1, X_2, \dots , X_n \sim N(\mu_0, \sigma^2)$$
      ここで以下の検定問題を考える。
      $$ H_0 : \sigma^2 = \sigma_0^2 \\
      H_1 : \sigma^2 \neq \sigma_0^2 $$
      この検定問題に対する、一様最強力不偏検定を行う。
      仮定より、\( X = (X_1,\dots , X_n) \)の確率密度関数の積は
      $$ \prod_{i=1}^n f(x_i ; \sigma^2) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x_i – \mu_0)^2}{2\sigma^2}} \\
      = \frac{1}{(\sqrt{2\pi}\sigma)^n}e^{-\frac{(x_i – \mu_0)^2}{2\sigma^2}} $$
      ここで、統計量として以下を定義する。
      $$ T(x) = \frac{ \sum_{i=1}^n (x_i – \mu_0)^2 }{\sigma_0^2}$$
      さらに、
      $$ \theta = – \frac{\sigma_0^2}{2\sigma_2} $$
      と考えると、先ほどの尤度は以下のような指数型分布になる。
      $$ \prod_{i=1}^n f(x_i ; \sigma^2) = C(\theta) e^{\theta T(x)}h(x) $$
      不偏検定に関する定理を用いることで、水準\( \alpha \)の一様最強力不偏検定の棄却域は以下で与えられる。

      $$ C = \left \{ x = (x_1, \dots, x_n) \in \mathbb R^n | T(x) < k_1 \ or \ T(x) > k_2 \right \} $$

      ここで、\(k_1, k_2\)は、
      $$ P_{\sigma_0^2} \{ C \} = \alpha $$
      および、
      $$ E_{\sigma_0^2} \left \{ T(x) \cdot 1_c(x) \right \} = E_{\sigma_0^2} \left \{ T(x) \right \} \cdot \alpha $$
      を満たす定数となる。(\( 1_c(x) \)はインデックス関数。)
      \(H_0\)が真のとき、\( T(x)= \frac{\sum_{i=1}^n (x_i – \mu_0)^2 }{\sigma_0^2} \)は自由度nの\( \chi ^2 \)分布に従うので、
      $$ P_{\sigma_0^2} \{ C \} = P_{\sigma_0^2} \{ T(x) < k_1 \ or \ T(x) > k_2 \} \\
      = \int_0^{k_1}g_n (x) dx + \int_{k_2}^{\infty}g_n (x) dx = \alpha $$
      となる。

      $$ E_{\sigma_0^2} \{ T(x) \cdot 1_c(x) \} = \int_{0}^{k_1}x g_n(x)dx + \int_{k_2}^{\infty}x g_n(x)dx $$

      ここで、

      $$ \int_{a}^{b}xg_n(x)dx = \int_{a}^{b} \frac{1}{\Gamma \left (
      \frac{n}{2} \right )2^{\frac{n}{2}} }x^{\frac{n}{2}}e^{-\frac{x}{2}} \\
      = \frac{\Gamma \left ( \frac{n+2}{2} \right ) 2^{\frac{n+2}{2}} }{\Gamma \left ( \frac{n}{2} \right ) 2^{\frac{n}{2}}} \int_{a}^{b}\frac{1}{\Gamma \left ( \frac{n+2}{2} \right ) 2^{\frac{n+2}{2}}} x^{\frac{n+2}{2}-1}e^{-\frac{x}{2}}dx \\
      = n \int_{a}^{b} g_{n+2}(x)dx $$

      とすると、先ほどの式は、

      $$ E_{\sigma_0^2} \{ T(x) \cdot 1_c(x) \} = n \int_{0}^{k_1}g_{n+2}(x)dx + n \int_{k_2}^{\infty}g_{n+2}(x)dx \\
      = n \alpha$$

      となる。以上より、一様最強力不偏検定の棄却域\( k_1, k_2 \)は、
      $$\int_{0}^{k_1}g_n(x)dx + \int_{k_2}^{\infty}g_n(x)dx = \alpha \\
      \int_{0}^{k_1}g_{n+2}(x)dx + \int_{k_2}^{\infty}g_{n+2}(x)dx = \alpha$$
      を同時に満たすような\( k_1, k_2 \)を選べば良い。
      実際には簡単にするために、
      $$ \int_{0}^{k_1}g_{n}(x) dx = \int_{k_2}^{\infty}g_{n}(x) dx = \frac{\alpha}{2} $$
      となるような\( k_1, k_2 \)を\( \chi^2 \)分布表から読み取って、
      $$ k_1 = \chi^2 \left ( 1 – \frac{\alpha}{2}; n \right ) \\
      k_2 = \chi^2 \left ( \frac{\alpha}{2}; n \right ) $$
      によって近似的に水準\( \alpha \)の一様最強力不偏検定の棄却域として、
      $$ \frac{\sum_{i=1}^n (x_i – \mu_0)^2 }{\sigma_0^2} < k_1 \\
      \frac{\sum_{i=1}^n (x_i – \mu_0)^2 }{\sigma_0^2} > k_2 $$
      が採用される。

      尤度比検定

      仮説検定論における普遍的な検定方式のこと。帰無仮説に従う際の尤度と、真のパラメータに従う際の尤度の比をもとに検定を行う。

      確率ベクトル(\( X = (X_1, \dots , X_n) \))が確率密度関数(\( f(X_1, \dots , X_n; \theta) \))に従うとして、
      真のパラメータ(\( \theta \in \Theta \))、
      帰無仮説に従うパラメータ(\( \theta_0 \ ( \neq \phi ) \ \in \Theta \))、
      対立仮説に従うパラメータ(\( \theta_1 = \Theta – \Theta_0 \ ( \neq \phi ) \))
      に対して、以下の仮説検定問題を考える。
      $$ H_0 : \theta \in \Theta_0 \\
      H_1 : \theta \in \Theta_1 $$

      ここで、固定された各標本(\( x = (x_1, \dots , x_n) \))に対して、尤度の比を求める。
      $$ \lambda (x) := \frac{ \sup_{\theta \in \Theta_0} f(x_1, \dots ,x_n ; \theta) }{ \sup_{\theta \in \Theta} f(x_1, \dots ,x_n ; \theta) } $$
      適当に定められた定数cに対して、
      $$ \lambda (x) < c $$
      となるとき、仮説\( H_0 \)を棄却し、そうでないとき\( H_0 \)を受容するという検定方式を考える。ここでcは
      $$ \sup_{\theta \in \Theta_0} P_{\theta} \left \{ \lambda (X) < c \right \} = \alpha $$
      を満たすものとする。このような検定方式を水準\( \alpha \)の尤度比検定と呼び、\( \lambda (x) \)を尤度比統計量と呼ぶ。

      尤度比検定は複合仮説からなる検定問題において、\( \Theta_0, \Theta_1 \)をそれぞれ1つの母数で代表させることで、複合仮説検定問題を単純仮説と単純対立仮説からなる検定問題に置き換えることができる。

      他にも尤度比検定は、データが十分に大きい際に、検出力が1に収束するという一致性や、漸近的に最大の検出力を持つという漸近有効性などの性質も持ち合わせている。

      尤度比検定に関する定理

      \( n \to + \infty \)とすると、統計量\( -2 log \lambda (x) \)は仮説\( H_0 \)のもとで自由度qの\( \chi^2 \)分布に収束する。ここでは\( g(t) \)がその確率密度関数となる。
      $$ \theta \in \Theta_0 \\
      \lim_{n \to \infty} P_{\theta} \left \{ -2 \log \lambda (x) \leq z \right \} \\
      = \int_{0}^{z}g(t)dt \\
      \forall z \in (0, \infty) $$

      尤度比検定(1標本のケース)

      ここではデータが1つの標本から独立にそれぞれ\( N(\mu, \sigma^2) \)に従うケースを想定する。
      その上で、
      「\(\mu\)が未知で\(\sigma^2 = \sigma_0^2 \)が既知の場合」
      「\(\mu, \sigma^2\)ともに未知の場合」についての尤度比検定を行う。

      \(\mu\)が未知で\(\sigma^2 = \sigma_0^2 \)が既知の場合

      ここでは以下の検定問題を扱う。
      $$ H_0 : \mu = \mu_0 \\
      H_1 : \mu \neq \mu_0 $$
      仮定から、確率ベクトル(標本確率変数)である\( X = (X_1, \dots, X_n) \)の確率密度関数は
      $$ f(x_1, \dots, x_n ; \theta) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma_0} e^{- \frac{(x_i – \mu)^2}{2\sigma_0^2}} \\
      = \left ( \frac{1}{\sqrt{2\pi} \sigma_0} \right )^n e^{ – \frac{\sum_{i=1}^n(x_i – \bar x)^2 + n(\bar x – \mu)^2 }{2\sigma_0^2} } $$

      \(\mu\)の\( \Theta = \mathbb R^1 \)における最尤解は\( \hat \mu = \bar X \)となるので、尤度比は帰無仮説に従う確率密度関数と真のパラメータの従う確率密度関数であるから、
      $$ \lambda (x) = \frac{f(x_1, \dots, x_n ; \mu_0)}{f(x_1, \dots, x_n ; \hat \mu)} \\
      = \frac{ \left ( \frac{1}{\sqrt{2\pi} \sigma_0} \right )^n e^{ – \frac{ \sum_{i=1}^n(x_i – \bar x)^2 + n(\bar x – \mu_0)^2 }{2\sigma_0^2} }}{ \left ( \frac{1}{\sqrt{2\pi} \sigma_0} \right )^n e^{ – \frac{\sum_{i=1}^n(x_i – \bar x)^2 + n(\bar x – \bar x)^2 }{2\sigma_0^2} }} \\
      = e^{- \frac{n(\bar x – \mu_0)^2}{2\sigma_0^2}} $$

      ここで、水準\(\alpha\)の尤度比検定の棄却域は最後の式の指数部分の
      $$ | \bar x – \mu_0 | > c$$
      で与えられる。
      定数cは
      $$ P_{\mu_0} \{ | \bar X – \mu_0 | > c \} = \alpha $$
      より定まる。

      帰無仮説\( H_0 \)のもとで\(\bar X\)は\( N \left ( \mu_0 , \frac{\sigma_0^2}{n} \right ) \)に従うので、
      $$ \alpha = P_{\mu_0} { \frac{ \sqrt{n} | \bar X – \mu_0 |}{\sigma_0} > \frac{\sqrt{n}c}{\sigma_0} } \\
      = \int_{k}^{\infty} \phi (t)dt + \int_{-\infty}^{-k} \phi (t) dt \\
      = 2 \left ( 1 – \Phi (k) \right ) $$

      したがって、標準正規分布から水準\(\alpha\)を満たすようなkの値を見つければよい。

      \(\mu, \sigma^2\)ともに未知の場合

      ここでは以下の二つの検定問題を扱う。
      「平均に関する検定」
      「分散に関する検定」

      平均に関する検定

      $$ H_0 : \mu = \mu_0 \\
      H_1 : \mu \neq \mu_0 $$

      真のパラメータは以下で表される。
      $$ \theta = \left \{ (\mu, \sigma^2) | \mu \in \mathbb R^1 , \sigma^2 > 0 \right \} $$
      同様に帰無仮説に従う場合のパラメータは、
      $$ \theta_0 = \left \{ (\mu_0, \sigma^2) | \sigma^2 > 0 \right \} $$
      対立仮説に従う場合のパラメータは、
      $$ \theta_1 = \left \{ (\mu, \sigma^2) | \mu (\neq \mu_0) \in \mathbb R^1 , \sigma^2 > 0 \right \} $$
      で表される。

      仮定から、確率ベクトル(標本確率変数)である\( X = (X_1, \dots, X_n) \)の確率密度関数は
      $$ f(x_1, \dots, x_n ; \mu, \sigma^2) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma} e^{- \frac{(x_i – \mu)^2}{2\sigma^2}} \\
      = \left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{\sigma^2} \right )^{\frac{n}{2}} e^{ – \frac{\sum_{i=1}^n(x_i – \bar x)^2 + n(\bar x – \mu)^2 }{2\sigma^2} } $$

      ここで、\( \theta = (\mu, \sigma^2) \)が\( \Theta_0\)上を動くときに、\( \mu = \mu_0\)なので、尤度を最大にする問題において以下のように書くことができる。

      $$ \sup_{\theta \in \Theta_0} f(x_1, \dots, x_n ; \mu, \sigma^2) = \sup_{\sigma^2 > 0} f(x_1, \dots, x_n ; \mu_0, \sigma^2) \\
      = \left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat \sigma^2} \right )^{\frac{n}{2}} e^{ – \frac{\sum_{i=1}^n(x_i – \mu_0)^2}{2 \hat \sigma^2} } $$

      ここで\( \hat \sigma^2 = \frac{1}{n} \sum_{i=1}^n (x_i – \mu_0)^2 \)とすると、
      $$ = \left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat \sigma^2} \right )^{\frac{n}{2}} e^{-\frac{n}{2}} $$
      一方、\( \theta = (\mu, \sigma^2) \)が真のパラメータ\( \Theta\)上を動くときに、最尤解\( (\hat \mu, \hat \sigma^2)\)が、以下で与えられる。
      $$ \hat \mu = \bar x \ \left ( \frac{1}{n} \sum_{i=1}^n \bar x \right ) \\
      \hat \sigma = \frac{1}{n}\sum_{i=1}^n (x_i – \bar x)^2 $$
      よって尤度を最大にする問題において以下のように書くことができる。

      $$ \sup_{\theta \in \Theta} f(x_1, \dots, x_n ; \mu, \sigma^2) = f(x_1, \dots, x_n ; \hat \mu,\hat{\hat{\sigma^2}}) \\
      = \left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat{\hat{\sigma^2}}} \right )^{\frac{n}{2}} e^{ – \frac{\sum_{i=1}^n(x_i – \hat \mu)^2}{2 \hat{\hat{\sigma^2}}} } $$

      ここで、先ほどと同じように\( \hat{\hat{\sigma^2}} = \frac{1}{n} \sum_{i=1}^n (x_i – \hat \mu)^2 \)とすると、
      $$ = \left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat{\hat{\sigma^2}}} \right )^{\frac{n}{2}} e^{-\frac{n}{2}} $$
      よって尤度比は帰無仮説の確率密度関数と真のパラメータの確率密度関数の比であるから、
      $$ \lambda (x) = \frac{f(x_1, \dots , x_n ; \mu_0,\hat{\hat{\sigma^2}} )}{f(x_1, \dots , x_n ; \mu_0,\hat \sigma^2 )} \\
      = \frac{\left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat{\hat{\sigma^2}}} \right )^{\frac{n}{2}} e^{-\frac{n}{2}}}{\left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat \sigma^2} \right )^{\frac{n}{2}} e^{-\frac{n}{2}}} \\
      = \left ( \frac{ \hat{\hat{\sigma^2}} }{\hat \sigma^2} \right )^{-\frac{n}{2}}$$
      となる。

      $$\frac{ \hat{\hat{\sigma^2}} }{\hat \sigma^2}= \frac{\frac{1}{n}\sum_{i=1}^n (x_i – \mu_0)^2}{\frac{1}{n}\sum_{i=1}^n(x_i – \bar x)^2}\\
      = \frac{ \sum_{i=1}^n \left ( (x_i – \bar x) – (\mu_0 – \bar x ) \right )^2 }{\sum_{i=1}^n(x_i – \bar x)^2} \\
      = \frac{ \sum_{i=1}^n (x_i – \bar x)^2 – n(\bar x – \mu_0)^2 }{\sum_{i=1}^n(x_i – \bar x)^2} \\
      = 1 + \frac{n(\bar x – \mu_0)^2}{\sum_{i=1}^n(x_i – \bar x)^2} $$
      ここで、2項目に注目すると、尤度比は

      $$ \lambda (x) < c \\
      \Leftrightarrow \frac{n(\bar x – \mu_0)^2}{ \sum_{i=1}^n (x_i – \bar x)^2 } > c’ \\
      \Leftrightarrow \frac{\sqrt{n} | \bar x – \mu_0 |}{u} > c” \\
      u = \sqrt{ \frac{1}{n-1} \sum_{i=1}^n (x_i – \bar x)^2 }$$
      となる。
      これは、\( H_0 \)が真のとき、
      $$ \frac{\sqrt{n} | \bar x – \mu_0 |}{u} \sim t(n-1) $$
      となるため、t分布表から棄却域を得ることができる。
      実際、t分布の上側\( \frac{\alpha}{2} \times 100% \)点である、\( t \left (
      \frac{\alpha}{2} ; n-1 \right ) \)を求めて、
      $$ c” = t \left ( \frac{\alpha}{2} ; n-1 \right ) $$
      とおくと、水準\( \alpha \)の尤度比検定の棄却域は
      $$ \frac{\sqrt{n} | \bar X – \mu_0 | }{U} > t \left ( \frac{\alpha}{2} ; n-1 \right ) $$
      で与えられる。これは両側のt検定に他ならない。

      このように尤度比検定は何を検定したいかで最終的に用いる分布が異なる。正規分布のときもあれば、t分布のときもある。

      分散に関する検定

      $$ H_0 : \sigma = \sigma_0^2 \\
      H_1 : \sigma \neq \sigma_0^2 $$

      真のパラメータが以下に従うとする。
      $$ \hat \mu = \bar x \\
      \hat \sigma^2 = \frac{1}{n}\sum_{i=1}^n(x_i – \bar x)^2$$

      その際、真のパラメータに従う確率密度関数の最尤解は

      $$ \sup_{ (\mu, \sigma^2) \in \Theta } f(x_1, \dots, x_n ; \mu, \sigma^2) = f(x_1, \dots, x_n ; \hat \mu, \hat \sigma^2)\\
      = \left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat \sigma^2 } \right )^{\frac{n}{2}} e^{-\frac{n}{2}} $$

      他方、帰無仮説に従う確率密度関数の最尤解は

      $$ \sup_{ (\mu, \sigma^2) \in \Theta_0 } f(x_1, \dots, x_n ; \mu, \sigma^2) = f(x_1, \dots, x_n ; \hat \mu, \sigma_0^2)\\
      = \left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \sigma_0^2 } \right )^{\frac{n}{2}} e^{-\frac{n \hat \sigma^2}{2\sigma_0^2}} $$

      となる。

      よって、尤度比は以下のようになる。
      $$ \lambda (x) = \frac{f(x_1, \dots, x_n ; \hat \mu, \sigma_0^2) }{f(x_1, \dots, x_n ; \hat \mu, \hat \sigma^2)} \\
      = \frac{\left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \sigma_0^2 } \right )^{\frac{n}{2}} e^{-\frac{n \hat \sigma^2}{2\sigma_0^2}}}{\left ( \frac{1}{\sqrt{2\pi}} \right )^n \left ( \frac{1}{ \hat \sigma^2 } \right )^{\frac{n}{2}} e^{-\frac{n}{2}}} \\
      = \left ( \frac{\hat \sigma^2}{\sigma_0^2} \right )^{\frac{n}{2}}e^{-\left ( \frac{\hat \sigma^2}{\sigma_0^2} – 1 \right ) \frac{n}{2} }
      $$
      これより、定数cについての不等号を記すと、

      $$ \lambda (x) < c \\
      \Leftrightarrow \log \lambda (x) = – \frac{n}{2} \left \{ \frac{\hat \sigma^2}{\sigma_0^2} – 1 – \log \left ( \frac{\hat \sigma^2}{\sigma_0^2} \right ) \right \} < c’ $$

      となる。これは結局のところ、統計検定の棄却域である\( k_1, k_2 \)を定めるように決まるので、以下のようになる。

      $$ \frac{\hat \sigma^2}{\sigma_0^2} < k_1 \ or \ \frac{\hat \sigma^2}{\sigma_0^2} > k_2 \\
      \frac{1}{\sigma_0^2}\sum_{i=1}^{n}(x_i-\bar x)^2 < k’_1 \ or \ \frac{1}{\sigma_0^2}\sum_{i=1}^{n}(x_i-\bar x)^2 > k’_2
      $$

      これは\( \chi^2 \)分布であるから、
      帰無仮説\( H_0 \)が真のとき、\( \frac{1}{\sigma_0^2}\sum_{i=1}^{n}(x_i-\bar x)^2 \)は\( \chi^2(n-1) \)に従う。
      定数\( k’_1,k’_2 \)を
      $$ \alpha = \int_{0}^{k’_1}g(x)dx + \int_{k’_2}^{\infty}g(x)dx $$
      より求めると、水準\( \alpha \)の尤度比検定の棄却域は

      $$ \frac{1}{\sigma_0^2}\sum_{i=1}^{n}(x_i-\bar x)^2 < k’_1 \ or \ \frac{1}{\sigma_0^2}\sum_{i=1}^{n}(x_i-\bar x)^2 > k’_2 $$

      で与えられる。棄却限界である\( k’_1,k’_2 \)は近似的に数値解を求めることで得られる。

      また、標本数nがある程度大きいとき、尤度比検定に関する定理より、統計量\( -2\log \lambda (x)\)が\( \chi^2 (1) \)に近似的に従うことより、

      $$ -2 \log \lambda (x) = n \left \{ \frac{\hat \sigma^2}{\sigma_0^2} – 1 – \log \left ( \frac{\hat \sigma^2}{\sigma_0^2} \right ) \right \} > \chi^2(\alpha ; 1) $$

      を棄却域とする検定方法を考えることができる。

      尤度比検定(2標本のケース)

      (一部数式の導出の解読中)
      三つのケースについて扱う。
      「A:\( \mu_1, \mu_2 \)は未知、\( \sigma_1^2, \sigma_2^2 \)は既知のケース」
      「B:\( \mu_1, \mu_2 \)は未知、\( \sigma_1^2 = \sigma_2^2 = \sigma^2 \)であるが\( \sigma^2 \)の値は未知のケース」
      「C::\( \mu_1, \mu_2, \sigma_1^2, \sigma_2^2 \)の全てが未知のケース」
      当然、ケースによって尤度比検定で従う分布が違ってくる。

      \( \chi^2 \)適合度検定

      ここではサイコロを複数回繰り返し投げたときの出目の出現回数について扱う。各出目の出現総数は多項分布に従うので、以下の確率密度関数を考える。
      $$ f(n_1, \dots , n_k ; \theta) = \frac{n!}{n_1! \dots n_k!}\theta_1^{n_1} \dots \theta_k^{n_k} $$
      ここでパラメータは以下に従うとする。

      $$ \Theta = \left \{ \theta = (\theta_1, \dots, \theta_k) | \sum_{i=1}^k \theta_i = 1 , 0 < \theta_i < 1, i=1, \dots , k
      \right \} $$

      ここでは以下の検定問題を考える。
      $$ H_0 : \theta_i = \theta_{i0} \ , \ i = 1, \dots ,k \\
      H_1 : \theta_i \neq \theta_{i0} \ (1 \leq \forall i \leq k) $$

      尤度比検定を考える際に、真のパラメータにおける最尤推定量を
      $$ \hat \theta_n = ( \hat \theta_{1n}, \dots, \hat \theta_{kn}) \\
      = \left ( \frac{n_1}{n},\dots , \frac{n_k}{n} \right ) $$
      とする。よって尤度比は
      $$ \lambda (n_1, \dots, n_k) = \frac{f(n_1, \dots , n_k ; \theta_0)}{f(n_1, \dots , n_k ; \hat \theta_n)} \\
      = \frac{\frac{n!}{n_1! \dots n_k!}\theta_{10}^{n_1} \dots \theta_{k0}^{n_k}}{\frac{n!}{n_1! \dots n_k!}\theta_{1n}^{n_1} \dots \theta_{kn}^{n_k}} \\
      = \left ( \frac{\theta_{10}}{\hat \theta_{1n}} \right )^{n_1} \dots \left ( \frac{\theta_{k0}}{\hat \theta_{kn}} \right )^{n_k} $$
      となる。
      両辺で対数をとり-2を掛けると、

      $$ -2 \log \lambda (n_1, \dots , n_k) = 2 \sum_{i=1}^k n_i \{ \log \hat \theta_{in} – \log \theta_{i0} \} $$

      この式より、水準\( \alpha \)の尤度比検定の棄却域は、適当な定数cに対して以下の式により与えられる。

      $$ -2 \log \lambda (n_1, \dots , n_k) = 2 \sum_{i=1}^k n_i \{ \log \hat \theta_{in} – \log \theta_{i0} \} > c $$

      ここで、cは
      $$ P_{\theta_{0}} \{ -2 \log \lambda (n_1, \dots, n_k) > c \} = \alpha $$
      を満たすように決まる。

      $$ -2 \log \lambda (N_1, \dots , N_k) = 2 \sum_{i=1}^k N_i \{ \log \hat \theta_{in} – \log \theta_{i0} \} \\
      = 2 \sum_{i=1}^k N_i \log \left ( \frac{\hat \theta_{in}}{\theta_{i0}} \right ) \\
      = 2 \sum_{i=1}^k N_i \log \left \{ 1+ \left ( \frac{\hat \theta_{in} – \theta_{i0} }{\theta_{i0}} \right ) \right \} $$

      ここでテイラー近似を行うと、

      $$ = 2 \sum_{i=1}^k N_i \left \{ \frac{\hat \theta_{in} – \theta_{i0} }{\theta_{i0}} – \frac{ (\hat \theta_{in} – \theta_{i0})^2 }{2\theta_{i0}^2} + O_{p} \left ( | \hat \theta_{in} – \theta_{i0} |^2 \right ) \right \} \\
      = 2 \sum_{i=1}^k N_i \left \{ \frac{N_{i} – n \theta_{i0} }{n \theta_{i0}} – \frac{ (N_{i} – n \theta_{i0})^2 }{2n^2\theta_{i0}^2} \right \} + O_{p}(1) \\
      = 2 \sum_{i=1}^k N_i \left \{ \frac{ (N_i – n \theta_{i0})^2 + n\theta_{i0}(N_i – n\theta_{i0}) }{n \theta_{i0}} – \frac{(N_i – n\theta_{i0})^3 + n\theta_{i0} (N_i – n \theta_{i0})^2}{2n^2\theta_{i0}^2} \right \} + O_{p}(1) \\
      = \sum_{i=1}^k N_i \frac{ (N_i – n \theta_{i0})^2}{n \theta_{i0}} – \sum_{i=1}^k \frac{(N_i – n\theta_{i0})^3}{n^2\theta_{i0}^2} + O_{p}(1) $$

      となる。ここで2項目に着目すると、

      $$ \sum_{i=1}^{k} \frac{ |N_i – n \theta_{i0}|^3 }{n^2 \theta_{i0}^2} = \sum_{i=1}^{k} \frac{(N_i – n\theta_{i0})^2}{n\theta_{i0}} \cdot \frac{|N_i – n \theta_{i0}|}{n\theta_{i0}} \\
      = \sum_{i=1}^{k} \frac{(N_i – n\theta_{i0})^2}{n\theta_{i0}} \cdot \frac{|\hat \theta_{i0} – \theta_{i0}|}{\theta_{i0}} \\
      \leq \epsilon_n \cdot \sum_{i=1}^{k} \frac{(N_i – n\theta_{i0})^2}{n\theta_{i0}} $$

      となる。ここで、
      $$ \epsilon_n = \max_{1 \leq i \leq k} \left \{ \frac{| \hat \theta_{i0} – \theta_{i0} |}{\theta_{i0}} \right \} $$
      かつ、
      $$ \epsilon_n = O_{p} (1) \ (n \to \infty) $$
      であることから、

      $$ -2 \log \lambda (N_1, \dots , N_k) = \sum_{i=1}^k N_i \frac{ (N_i – n \theta_{i0})^2}{n \theta_{i0}} + O_{p}(1) $$

      が成り立つ。
      これは\( \chi^2 \)分布に従うことから、帰無仮説\( H_0 \)のもとで、
      $$-2 \log \lambda (N_1, \dots , N_k) $$
      は\( n \to \infty \)のとき自由度k-1の\( \chi^2 \)分布に近似的に従う。

      よって、
      $$ \chi^2 = \sum_{i=1}^k N_i \frac{ (N_i – n \theta_{i0})^2}{n \theta_{i0}} > \chi^2 (\alpha ; k-1) $$
      のとき帰無仮説\( H_0 \)を棄却する。このような検定を、水準\( \alpha \times 100% \)の\( \chi^2 \)適合度検定と呼ぶ。これを実際の観測値に置き換えたものを修正\( \chi^2 \)検定と呼び以下のように表す。
      $$ \chi_0^2 = \sum_{i=1}^k \frac{(N_i – n \theta_{i0})^2}{N_i} $$

      分割表の検定

      (更新予定)

    参考情報

    [1]鈴木・山田(1996),『数理統計学―基礎から学ぶデータ解析』,内田老鶴圃

    [数理統計学]統計的推定のまとめ


    通勤電車のなかで私が勉強する用のシリーズ第4弾です。今回は統計的推定についてまとめておこうと思います。統計検定のための勉強のログのようなものです。概要と、簡単な例を可能な限り集めて載せていこうと思います。

    【これまでのシリーズへのリンク】


    目次

    不偏性

    • バイアスがゼロになるときに、その推定量は不偏性を持つという。不偏性のある推定量を不偏推定量(unbiased estimator)と呼ぶ。
    • バイアスは推定量の期待値と真のパラメータの値との差 \(E [\hat \theta] – \theta \)で表される。\( \hat \theta \)はサンプリングした分布の平均を意味しています。
    • 一意性はなく、多くの不偏推定量の中から良いものを選ぶ必要がある。任意の期待値0の確率変数を加えたとしても、不偏推定量になってしまうため、非常に弱い要請とされる。
    • 最尤推定量やモーメント推定量は一般には不偏性を持たない。
    • 一様最小分散不偏推定量(Uniformly Minimum-Variance Unbiased Estimator:UMVUE)は母数\(\theta\)の値によらず、一様に分散を最小化する不偏推定量のこと。
    • 標本平均、\( \bar X = \frac{1}{n} \sum_i X_i \)の期待値は\(E[\bar X] = \frac{1}{n}\sum_{i=1}^n E[X_i] = \frac{1}{n}n\mu = \mu \)となり、不偏推定量となる。
      標本分散、\( E \left[ \frac{1}{n} \sum_{i=1}^n (X_i – \bar X)^2 \right] = \frac{n-1}{n} \sigma^2 \)は\( \frac{\sigma^2}{n} \)だけ過少になるので、不偏推定量ではない。
      他方、\( E \left[ \frac{1}{n-1}\sum_{i=1}^n (X_i – \bar X)^2 \right] = \sigma^2 \)は不偏推定量となる。

    一致性

    • 標本サイズnの推定量\(\hat \theta_n\)がnの増大とともに\( \hat \theta_n \overset{p}{\to} \theta \)のように真のパラメータ\( \theta \)に確率収束することような推定量を一致推定量(consistent estimator)と呼ぶ。
    • 標本平均の場合、\( \hat X_n \overset{p}{\to} \mu \)となり、任意の正の\( \epsilon \)に対して\( \lim_{n \to \infty} P(| \hat X_n – \mu | > \epsilon ) = 0 \)が成り立つ。
    • 標本平均・標本分散などのモーメントの推定量は一致性を持つ。連続変形したモーメント推定量も一致性を持つ。
    • 最尤推定量は適当な正則条件のもと一致性を持ち、標本サイズが大きいとさらにより良い性質を持つ。
    • \( X_1, X_2, \dots , X_n \sim N(\mu, \sigma^2) \)として(ただし独立)、\( T_n (X_1, X_2, \dots, X_n) = \frac{1}{n} \sum_{i=1}^{n}(X_i – \bar X )^2 \)が\(\sigma^2\)の一致推定量であることを示す。
      大数の法則により、\( \bar X = \frac{1}{n} \sum_{i=1}^n X_i \)は\( \mu \)になることから、
      \( \frac{1}{n} \sum_{i=1}^n (X_i – \mu)^2 \\
      = \frac{1}{n}\sum_{i=1}^n X_i^2 – 2 \mu \times \frac{1}{n}\sum_{i=1}^n X_i + \mu^2 \\
      = \frac{1}{n}\sum_{i=1}^n ( (X_i – \mu ) + \mu )^2 – 2\mu \times \mu + \mu^2 \\
      = (\mu^2 + \sigma^2) – 2\mu \times \mu + \mu^2 = \sigma^2 \)
      となり、これは一致推定量となる。

    有効性

      ある不偏推定量\( \hat \theta \)が\( V_{\theta} [\hat \theta] = J_n (\theta)^{-1} \)のようにクラメール-ラオの下限を達成しているときに、有効推定量(efficient estimator)と呼ぶ。有効推定量は一様最小分散不偏推定量となる。

      ・正規分布において、標本平均は平均パラメータの有効推定量となる。
      ・バイアス補正を行った標本分散\( \frac{1}{n-1} \sum_{i=1}^n (X_i – \bar X)^2 \)は分散パラメータの一様最小分散不偏推定量だが、有効推定量ではない。

    推定量の相対効率

    • 2つの不偏推定量の分散の逆数の比のこと。
    • \( e( \hat \theta_1, \hat \theta_2 )= \frac{V_{\theta} [(\hat \theta_2)]}{V_{\theta} [(\hat \theta_1)]} \)
      などとおいて、\( e( \hat \theta_1, \hat \theta_2 ) > 1 \)のとき、\( \hat \theta_1 \)が優れている見なし、\( e( \hat \theta_1, \hat \theta_2 ) < 1 \)のとき、\( \hat \theta_2 \)が優れていると見なす。
    • \( e( \hat \theta_1, \hat \theta_2 )= \frac{E_{\theta}[(\hat \theta_2 – \theta )^2]}{E_{\theta}[(\hat \theta_1 – \theta)^2]} \)
      などとおいて、一般の推定量に拡張することもできる。

    最小分散不偏推定量

    クラメール・ラオの不等式

    • ある推定量が不偏推定量であるかどうかを確かめることができる条件式のこと。
    • 不偏推定量\( \hat \theta \)は適当な正則条件のもとで、
      \( V_{\theta}[\hat \theta] \geq J_n (\theta)^{-1} \)を満たすというもの。\( J_n(\theta) \)は対数尤度のパラメータに関する導関数の分散となっており、フィッシャー情報量と呼ばれる。

    フィッシャー情報量、フィッシャー情報行列

    • フィッシャー情報量は以下の式のことを指す。

      \( J_n(\theta) = E_{\theta} \left [ \left ( \frac{\partial}{\partial \theta} \log f(x;\theta) \right)^2 \right ] = V_{\theta} \left [ \left ( \frac{\partial}{\partial \theta} \log f(x;\theta) \right) \right ] \)

      データを観測したとき、確率密度関数の対数がパラメータが少し変わった際に、どれだけ変化するのかを測るもので、大きければ大きいほど推定量の分散の下限が小さくなる。パラメータがどれだけ効率的にもっともらしい値を捉えにいっているかを指し示していると思えばよい。行列の場合、クラメール-ラオの不等式は分散共分散行列からフィッシャー情報行列を差し引いたものが、非負値定符号であるかどうかを確かめるものとなる。
      \( Cov_{\theta} (T) \geq I^{-1}_{X_1, X_2, \dots, X_n}(\theta) \)
      これは同時に、以下の行列が非負値定符号であることを意味する。
      \( Cov_{\theta} (T) – I^{-1}_{X_1, X_2, \dots, X_n}(\theta) \)

      ここで、j行k列の成分は

      \( E_{\theta} \left [ \frac{ \partial }{ \partial \theta_j} \log \prod_{i=1}^n f(X_i , \theta) \frac{\partial}{\partial \theta_k} \log \prod_{i=1}^n f(X_i , \theta) \right ] \)

      となる。

    十分統計量

    • ある分布のパラメータ\( \theta \)を推定したいときに、分布から得られた標本Xのうち推定に十分な情報を含んだ統計量\( T = T(X) \)を十分統計量と呼ぶ。
    • \( P(X=x | T(x)=t, \theta) = P(X=x | T(x) = t) \)

      のように\( T(x) \)で条件づけたXの分布がパラメータによらないとき\( T(x) \)が十分統計量になる。

    • $$
      \begin{cases}
      X_i = 1 \ if \ ith \ coin \ is \ heads \\
      X_i = 0 \ if \ ith \ coin \ is \ tails
      \end{cases}
      $$
      ここでは\( T(X) = \sum_{i=1}^nX_i \)、つまり、コインの表の数の合計が十分統計量であることを示す。
      コイン投げの表の合計値は二項分布に従うので、表の出る割合\( \mu \)が与えられたもとでのXの条件付き確率は
      $$ P(X=x | \mu) = \prod_{i=1}^n \mu^{x_i}(1-\mu)^{1-x_i} \\
      = \mu^{T(x)}(1-\mu)^{n-T(x)} \\
      = (1 – \mu)^n \left ( \frac{\mu}{1-\mu} \right )^{T(x)}
      $$
      ここで\( T(X) \)に関する確率
      $$ P(T(X)=t | \mu) = \sum P(X=x|\mu) \\
      {}_n C _t (1 – \mu)^n \left ( \frac{\mu}{1-\mu} \right )^{T(x)}
      $$
      \( T(X) \)に関する条件付き確率は
      $$ P(X=x | T(X)=t, \mu) \\
      = \frac{P(X=x, T(X)=t | \mu)}{P(T(X)=t | \mu)} \\
      = \frac{(1 – \mu)^n \left ( \frac{\mu}{1-\mu} \right )^{t} 1(T(X)=t) }{{}_n C _t (1 – \mu)^n \left ( \frac{\mu}{1-\mu} \right )^{t} } \\
      = \frac{1}{{}_n C _t} 1(T(X)=t)
      $$
      となり、分布がパラメータによらず、十分統計量となっていることがわかる。( \( 1(T(X)=t) \) はインデックス関数)

    Newmanの因子分解定理

    • 十分統計量かどうかを簡単に判定するための方法で、\( T(X) \)が\( \theta \)の十分統計量であるとき、またそのときに限り、
      $$f(x; \theta) = h(x)g(T(X),\theta)$$
      となる関数hとgが存在するというもの。密度関数を\( \theta \)によらない関数と、\( \theta \)による関数の積に分解したとき、後者が\( T(X) \)のみを含むような分解が存在する。

    ラオ・ブラックウェルの定理

    • 計算が容易ではない条件付き期待値\( E(S|T) \)の計算を行わずに、不偏推定量を求めることができる定理。
    • \( \delta (X) \)をパラメータ\( \theta \)のある推定量として、Tを\( \theta \)の十分統計量のうちの一つとする。十分統計量で条件付けた推定量の期待値を以下のように定義する。
      $$\delta_1 (T) = E_{\theta} [ \delta (X) | T ] $$
      その場合、ラオ・ブラックウェルの定理は以下を保証する。
      $$E_{\theta} [(\delta_1(T) – \theta )^2] \leq E_{\theta} [(\delta(X) – \theta )^2] $$
      つまり、\( \delta_1 \)の平均二乗誤差は\( \delta \)の平均二乗誤差以下になる。
    • ただし、十分統計量の関数になっている不偏推定量がいつも一様最小分散不偏推定量をもたらすとは限らず、それがラオ・ブラックウェルの定理の弱点とされている。
    • ケンブリッジ大学のラオ・ブラックウェルの定理に関する資料を見つけました。ポアソン分布と一様分布に関する例が載っています。

    順序統計量

    • 標本を昇順に並べ直したもの、もしくはそのうちの特定の順位の標本\( X_{(i)} \)に注目した統計量。
    • 中央値( \( X_{(\frac{n}{2})} \) )、最大値( \( X_{(n)} \) )、最小値( \( X_{(1)} \) )、四分位数などが順序統計量にあたる。
    • n個の標本を昇順に並べ替えた統計量\( (X_{(1)}, \dots, X_{(n)}) \)はフィッシャー・ネイマンの分解定理を用いることで統計量だけからなる関数に分解できることから、母集団の平均や分散の十分統計量になっている。
      $$f(x_1, \dots, x_n |\mu,\sigma) = \prod_{i=1}^n f(x_i | \mu, \sigma) = \prod_{j=1}^n f(x_{(j)}|\mu, \sigma) $$

      最後の項が並べ替えた統計量からなっている。

    最尤推定量

    • 尤度関数\( L(x, \theta) \)を最大化するパラメータ\( \hat \theta = \hat \theta (x) \)のことを最尤推定量と呼ぶ。
    • 最尤推定法は観測についての直感に基づいて定義された推定法とされる。推定の誤差についての記述は定義の中にない。

    尤度関数

    • 確率(密度)関数をxが固定された\(\theta\)の関数と考えたもの。
    • パラメータ\( \theta \)が持っている、観測値\( x_1, x_2, \dots , x_n \)を実現させるもっともらしさを表している。手元にある観測値は起こりにくい状態(パラメータ)から得られたと考えるより、起こるべくして起こったと考えるのが自然。

    対数尤度関数

    • 尤度関数の対数。\( l(\theta) = \log L(\theta) \)
    • 対数にすることで、独立な確率変数の同時確率を加算に直すことができたり、期待値の計算が簡単になったり、大数の法則や中心極限定理などを適用しやすくなる。

    有効スコア関数

    • 対数尤度がパラメータ\( \theta \)で偏微分できるとき、その微分値を\( \theta \)の関数としたもの。
      $$V(\theta) = V(x, \theta) = \frac{\partial}{\partial \theta} l(x, \theta) = \frac{\partial}{\partial \theta} \log f(x;\theta) $$
    • スコア関数の分散はフィッシャー情報量と呼ばれる。
    • 最尤推定値の定義から、任意のxに関してスコア関数は\( V(x, \hat \theta (x)) = 0 \)を満たす。(微分してゼロなので。)
    • \( E_{\theta}\left [ g(X) \right ] \)が\( \theta \)に依存しないような任意の関数\( g(x) \)について、
      $$ E_{\theta}\left [ g(X) V(X, \theta) \right ] \\
      = \int g(x)f(x;\theta)\frac{\partial}{\partial \theta} \log f(x;\theta)dx \\
      = \int g(x)f(x;\theta) \frac{ \frac{\partial}{\partial \theta} f(x;\theta) }{f(x;\theta)}dx \\
      = \frac{\partial}{\partial \theta} \int g(x)f(x ; \theta)dx \\
      = \frac{\partial}{\partial \theta} E_{\theta}\left [ g(X) \right ]=0 $$
      が成り立つ。これらの性質は情報量規準や漸近理論において役に立つ。

    モーメント法

    • モーメントを用いて、パラメータをモーメント関数で表し、それを推定値として用いる推定手法のこと。密度関数の形が複雑なときに、分布のパラメータ推定の手法として有力とされる。
    • m個のパラメータ\( \theta = (\theta_1, \dots, \theta_m) \)をもつ確率密度関数に関して、中心モーメントを以下のように定義する。
      $$ \mu_1 = \int x f(x;\theta)dx \\
      \mu_k = \int (x-\mu_1)^k f(x;\theta)dx \\
      k=2,3,\dots$$
      この場合、\( \mu_1 \)は平均、\( \mu_2 \)は分散となる。
      先ほどの中心モーメントを以下のように、パラメータの関数として表現することもできる。
      $$ \mu_1 = m_1(\theta) \\
      \mu_k = m_k(\theta)
      $$
      これらの式は\( \theta \)の連立方程式であるから、中心モーメントの関数としてパラメータを表すこともできる。
      $$ \theta_j = g_j (\mu_1, \dots, \mu_k) \\
      j = 1, \dots, m $$
      標本平均や標本分散を用いると、
      $$ \hat \theta_j = g_j (\hat \mu_1, \dots, \hat \mu_k) $$
      となり、実際はこれを推定値として使う。
    • 標本モーメントは真のモーメントに確率収束することから、\(g_j\)が連続関数のときに推定量の一致性が保証される。
    • ガンマ分布のパラメータ推定
      $$ f(x;\alpha, \lambda) = \frac{\lambda^\alpha}{\Gamma(\alpha)}x^{\alpha -1}e^{-\lambda x} \\
      (x \geq 0 ) $$
      期待値

      $$ \mu_1 = \frac{\alpha}{\lambda} \Rightarrow \alpha = \frac{\mu_1^2}{\mu_2} \Rightarrow \hat \alpha = \frac{\bar X^2}{\sum (X_i – \bar X)^2/n} $$

      分散

      $$ \mu_2 = \frac{\alpha}{\lambda^2} \Rightarrow \lambda = \frac{\mu_1}{\mu_2} \Rightarrow \hat \lambda = \frac{\bar X}{\sum (X_i – \bar X)^2/n} $$

    最小二乗法

    • 残差の二乗和\( \sum^n ( Y_i – f(X_i) )^2 \)を最小にするような関数fを選ぶ手法。二乗であると計算が簡単になる、あるいは、正規分布の撹乱項が加わっている\( Y_i = f(X_i) + \epsilon_i \)というモデルの最尤法と一致するなどの利便性がある。

    最良線形不偏推定量(BLUE)

    • 線形不偏推定量の中で平均二乗誤差\( E[(\hat \beta – \beta )^2] \)を最小化するような\( \hat \beta \)となる推定量のこと。
    • 各iについて、\( E(\epsilon_i) = 0, V(\epsilon_i)=\sigma^2 < \infty \)が共通で、さらに、\( i \neq j \)のとき、\( E(\epsilon_i \epsilon_j) = 0 \)とするときに、最小二乗推定量\( \hat \beta _{OLS} \)とBLUEは一致するという定理を、ガウス・マルコフの定理と呼ぶ。誤差項の期待値に関する仮定しかないという点でシンプルな定理となっている。
      $$ \hat \beta _{OLS} = \frac{\sum_i x_i Y_i }{ \sum_i x_i^2 } $$
      $$ E[\hat \beta _{OLS}] = E \left [ \frac{ \sum_i x_i(\beta x_i + \epsilon_i)}{\sum_i x_i^2} \right ] \\
      = \beta + \frac{\sum x_i E( \epsilon_i )}{\sum x_i^2} \\
      = \beta $$
    • 平均二乗誤差\( E_{\beta} [ (\hat \beta – \beta)^2 ] \)は未知である、真のパラメータ\( \beta \)を用いているので、実際に計算することはできないので、標本X,Yから計算できる二乗誤差を最小化することとなる。

    区間推定

    • 平均などのパラメータを推定する際に、ある一点ではなく区間でもって推定すること。
    • ある確率分布に従う標本\( X \sim P_{\theta} \)に対して、ある関数L, Uに対して
      $$P_{\theta}( L(X) < \theta < U(X)) \geq 1 – \alpha $$
      が全ての\( \theta \)で成立しているときに、\( (L(X),U(X)) \)を信頼係数\( 1 – \alpha \)の信頼区間と呼びます。これは真のパラメータ\(\theta\)が\( (L(X),U(X)) \)に入る確率ではなく、\( (L(X),U(X)) \)が真のパラメータ\(\theta\)を含む確率と考えます。被覆確率とも呼ばれています。
    • 先ほど、信頼係数というものが出てきましたが、真の値が入る確率ではありません。信頼係数が95%あるということは、10000回標本を集めて、パラメータを推定し区間を求めた際に、500回は母集団平均を含む区間を得られない(9500回は母集団平均を含む範囲を得られる)ということを意味しています。ただ、実際は研究する際に、「標本を集めることはたかだか1回しかできず、その1回の推定が20回に1回は母集団平均を含んでくれないという前提」を知った上で、結果を甘んじて受け入れるだけです。
    • 正規分布に従う標本平均\( \bar X_n \sim N( \mu, \frac{1}{n} ) \)について考える。片側\( \frac{\alpha}{2} \)の点をおくと、以下のようになる。

      $$ – \frac{Z_{\frac{\alpha}{2}}}{\sqrt n } < \bar X – \mu < \frac{Z_{\frac{\alpha}{2}}}{\sqrt n } $$

      これは確率にすると\( \alpha \)を差っ引いた、\( 1 – \alpha \)がこの範囲の取りうる確率となる。これを書き換えると、以下のようになり、信頼区間の上限と下限を計算できる。
      $$ P_{\mu} \left ( \bar X – \frac{Z_{\frac{\alpha}{2}}}{\sqrt n } < \mu < \bar X \frac{Z_{\frac{\alpha}{2}}}{\sqrt n } \right ) = 1 – \alpha $$

    相関係数の区間推定

    • 相関係数の分布は歪んだ形をしているため、正規分布で近似することに問題がある。そこで、Fisherのz変換と呼ばれる手法を用いることで相関係数の分布が正規分布に従うようにする。
    • Fisherのz変換を行った場合、nが十分大きいときに近似的に相関係数は以下の正規分布に従う。
      \( \xi (r) = \frac{1}{2} \log \frac{1+r}{1-r} \)
      平均:\( \xi (\rho_{XY} ) = \frac{1}{2} \log \frac{1+\rho_{XY}}{1-\rho_{XY}} \)
      分散:\( \frac{1}{n-3} \)

      片側\( \frac{\alpha}{2} \)の点をおくと、以下のようになる。
      $$ – \frac{Z_{\frac{\alpha}{2}}}{\sqrt{n-3} } < \xi (r) – \xi (\rho_{XY}) < \frac{Z_{\frac{\alpha}{2}}}{ \sqrt{n-3} } $$
      これは確率にすると𝛼を差っ引いた、1–𝛼がこの範囲の取りうる確率となる。

      $$ P \left ( \xi(r) – \frac{Z_{\frac{\alpha}{2}}}{\sqrt{n-3} } < \xi (\rho_{XY}) < \xi (r) + \frac{Z_{\frac{\alpha}{2}}}{\sqrt{n-3} } \right ) \simeq 1 – \alpha $$

      これを書き換えると、以下のようになり、信頼区間の上限と下限を計算できる。

      $$ \xi^{-1} \left ( \xi(r) – \frac{Z_{\frac{\alpha}{2}}}{\sqrt{n-3} } \right ) < \rho_{XY} < \xi^{-1} \left ( \xi (r) + \frac{Z_{\frac{\alpha}{2}}}{\sqrt{n-3} } \right ) $$

      ここで逆関数は\( \xi^{-1}(x) = \frac{e^x – e^{-x}}{e^x + e^{-x}} \)となっているものとする。

    デルタ法

    • 推定量の漸近正規性を示すことができる方法の一つ。ある変数が正規分布に従う場合、その連続関数も漸近的に正規分布に従うという理論。GreenのAppendixに載っている記述によると、
      \( \sqrt{n}(z_n – \mu ) \overset{d}{\to} N(0, \sigma^2) \)かつ\( g(z_n) \)がnと関係しない連続関数であれば、
      $$ \sqrt{n}[ g(z_n) – g(\mu) ] \overset{d}{\to} N(0, \{g'(\mu)\}^2\sigma^2) $$
      が成り立つと記されています。これはよく見ると、線形のテイラー近似における平均と分散に他なりません。
      $$ g(z_n) \simeq g(\mu) + g'(\mu)(z_n – \mu) $$

    AIC

    • 赤池情報量規準。多項式の中で何次の多項式を用い、さらにどのような係数パラメータを用いれば良い推定を行えるのか(モデル選択の問題)を追究することが目的の指標。対数尤度などからなり、それに負号をかけているため小さければ小さいほど良い指標となる。
      AICは以下の式で表される。

      $$AIC = -2 \sum_{i=1}^n \log f(X_i ; \hat \theta_n^{ML} ) + 2dim(\theta) $$

      第1項は対数尤度、第2項は罰則項。2倍されているのは、モデルが正しいときに、第1項が漸近的にカイ二乗分布に従うため。より小さい値を求めているため、対数尤度は大きい方がいいし、罰則項は小さい方がいい。

    • AICで比較できるモデルは、それぞれが包含関係にあるようなもののみとされているので扱う際は注意が必要。
    • 通っていた大学の教授が、赤池先生は生きていればノーベル経済学賞を受賞できたのではないかと仰っていたのを思い出した。
    • 多項式回帰の場合のAIC
      まず、対数尤度は以下の形を考える。
      $$ \log f(y ; \hat \alpha, \hat \sigma) \\
      = \frac{n}{2} \log (2\pi \hat \sigma^2) – \sum_{i=1}^n (Y_i – f(X_i ; \hat \alpha))^2 \\
      = -\frac{n}{2} \log (2\pi) – \frac{n}{2} \log \hat \sigma^2 – \frac{n}{2} $$
      この場合、AICは以下のようになる。

      $$ AIC = n \log 2\pi + n + n \log \hat \sigma^2 + 2(d+2) $$

      最後の項は次数dの多項式のd、切片、標本分散の数からd+2となる。

    カルバック-ライブラー情報量とAICの導出

    • カルバック=ライブラー情報量(KLダイバージェンス)は二つの分布(例えばF,Gとする)の間の近さを測るための指標で、それぞれの密度関数をf,gとすると、
      $$KL( f \| g ) = \int f(x) \log \frac{f(x)}{g(x)} dx $$
      で定義される。ただし、\( – 0 \log 0 = 0 \)となる。カルバック=ライブラー情報量には対称性はなく数学的な距離を測るものではない。
      カルバック=ライブラー情報量の下限が0であることを示すために、-logの凸性よりイェンセンの不等式を用いると、
      $$KL( f \| g ) = \int f(x) \left ( – \log \frac{g(x)}{f(x)} \right ) dx \\
      \geq – \log \left ( \int f(x) \frac{g(x)}{f(x)}dx \right ) \\
      = – \log 1 = 0 $$
      となる。また、カルバック=ライブラー情報量の最大化は平均対数尤度\( E_f [\log g(X)] \)の最大化と対応している。
    • カルバック=ライブラー情報量はAICの導出において重要な役目を果たす。
      カルバック=ライブラー情報量で真の分布と真の分布に近づけようとする推定量\( \hat \theta \)をもった分布との距離を計算すると、

      $$ KL(f(y;\theta) \| f(y; \hat \theta (X)) )\\
      = \int f(y;\theta)\log f(y ; \theta)dy – \int f(y;\theta) \log f(y;\hat \theta(x))dy $$

      となる。第1項目は推定量\( \hat \theta \)とは無関係に定まるが、第2項には含まれている。カルバック=ライブラー情報量の下限が0であることから、
      $$\int f(y;\theta) \log f(y;\hat \theta(x))dy$$
      を最大化するような\( \hat \theta \)が良い推定量となる。
      実際に計算できる最大対数尤度は、
      $$ \sum_{i=1}^n \log f(X_i ; \hat \theta_n^{ML}(X) ) $$
      であり、ここで、真のパラメータ\( \theta \)を持つ分布から標本\( Y_1, \dots, Y_n \)が無作為抽出で得られたとして、XとYが同じ分布に従うことから、

      $$ \sum_{i=1}^n \log f(X_i ; \hat \theta_n^{ML}(X) ) \sim \sum_{i=1}^n \log f(Y_i ; \hat \theta_n^{ML}(Y) ) $$

      となる。しかしながら、先ほどカルバック=ライブラー情報量にあった推定値は、
      $$\sum_{i=1}^n \log f(Y_i ; \hat \theta_n^{ML}(X) )$$
      であるから、これは最適ではないため以下の不等号となる。

      $$ \sum_{i=1}^n \log f(X_i ; \hat \theta_n^{ML}(X) ) \sim \sum_{i=1}^n \log f(Y_i ; \hat \theta_n^{ML}(Y) ) \\
      \geq \sum_{i=1}^n \log f(Y_i ; \hat \theta_n^{ML}(X) ) $$

      となる。AICの第1項目に現れる最大対数尤度は、真のパラメータに従う分布から得られたYをもとに計算した平均対数尤度よりも大きくなってしまうため、つまり、負号をつけると、不当に小さくなってしまうため、補正するための項が必要になる。それがAICの第2項目となる。
      実際のところ、AICの第2項目は漸近理論において、標本サイズnが十分に大きいときに、補正のための項がパラメータの次元\( dim(\theta) \)で近似されるところに由来している。

    参考文献

    [1]
    [2]日本統計学会(2013), 『日本統計学会公式認定 統計検定1級対応 統計学』, 東京図書
    [3]鈴木・山田(1996),『数理統計学―基礎から学ぶデータ解析』,内田老鶴圃
    [4]William H. Greene (2019),”Econometric Analysis, Global Edition”, Pearson Education

    BLSTMを用いた文書分類でデザイナーズマンション予測に再挑戦

    はじめに

    仕事で深層学習を使うことはないのですが、扱える技術の幅を広げていきたいなと思い、BLSTMを用いた文書分類についてkerasでの簡単なサンプルコードをやってみようと思います。データは以前集めた、某不動産紹介サイトの賃貸マンションの設備に関する文書とそれがデザイナーズマンションかどうかのラベルを使います。そして文書内の単語からその文書がデザイナーズマンションかどうかを予測します。前回はAUCで83%だったので、それを超えれると良いですね。

    目次

    単純なRNNとは

    • モチベーション
      • フィードフォワード型のニューラルネットワークではうまく扱うことができない時系列データをうまく扱えるようにすること。
    •  特徴
      • 入力が互いに関係している(多層パーセプトロンの際は置かれていない仮定)
        • 直訳すると循環するニューラルネットワークとなる。
      • 最初の文の単語が2つ目、3つ目の単語に影響を与える可能性を考慮。
      具体的な関数の形としては、 $$ h_t = \tanh (W h_{t-1} + U x_t) \\\ y_t = softmax(V h_t) $$ で与えられる。
      \( h_t \)は隠れ層の状態を、\( x_t \)は入力変数を、\( y_t \)は出力ベクトルを表している。(他のアルファベットは重み行列)

    LSTMとは

    • モチベーション
      • 単純なRNNの勾配消失問題を解決するために提案された手法。
    • 特徴
      • 単純なRNNに置き換えることで性能が大幅に向上することも珍しくない。
        • 時系列データ、長い文章、録音データからなる長期的なパターンを取り出すことを得意としている手法。
      • 勾配消失問題に強い
      • Long Short-Term Memory:長短期記憶
        • 長期依存性を学習できるRNNの亜種。
        • 入力ゲート、忘却ゲート、出力ゲート、内部隠れ層という4つの層が相互に関わり合う。重要な入力を認識し、それを長期状態に格納すること、必要な限りで記憶を保持すること、必要なときに記憶を取り出すことを学習する。
          • 入力ゲート:内部隠れ層のどの部分を長期状態に加えるかを決める。
          • 忘却ゲート:長期状態のどの部分を消去するか決める。
          • 出力ゲート:各タイムステップで、長期状態のどの部分を読み出し、出力するかを決める。
    $$
    i = \sigma (W_i h_{t-1} + U_i x_t) \\
    f = \sigma (W_f h_{t-1} + U_f x_t) \\
    o = \sigma (W_o h_{t-1} + U_ox_t ) \\
    g = \tanh (W_g h_{t-1} + U_g x_t) \\
    c_t = (c_{t-1} \otimes f ) \otimes ( g \otimes i) \\
    h_t = \tanh (c_t) \otimes o
    $$ i:入力ゲート(input)
    f:忘却ゲート(forget)
    o:出力ゲート(output)
    \( \sigma \):シグモイド関数
    g:内部隠れ層状態
    \(c_t \):時刻tにおけるセル状態
    \(h_t \):時刻tにおける隠れ状態

    Bidirectional LSTMとは

    • モチベーション
      •  従来のRNNの制約を緩和するために導入。
    • 特徴
      • ある特定の時点で過去と将来の利用可能な入力情報を用いて訓練するネットワーク
        • 従来のRNNのニューロンをフォワード(未来)なものとバックワード(過去)なものとの2つに分ける。
          • 2つのLSTMを訓練している。
        • 全体のコンテキストを利用して推定することができるのが良いらしい。
          • 文章で言うと、文章の前(過去)と後(未来)を考慮して分類などを行うイメージ。
        • 人間もコンテキストを先読みしながら解釈することもある。
      • BLSTMは全てのシークエンスの予測問題において有効ではないが、適切に扱えるドメインで良い結果を残す。
      • 1997年とかなり歴史があるものらしい
    出典:Deep Dive into Bidirectional LSTM

    Bidirectional LSTMで文書分類

    今回は、BLSTMを使って、マンションの設備に関するテキスト情報から、そのマンションがデザイナーズマンションかどうかを予測します。全体のソースコードはGoogle Colabを御覧ください。

    データ

    データを確認してみると、
     
    今回のデータがテキストとラベルからなっていることがわかる。なお、データ数は1864件あり、そのうち16%がデザイナーズマンションです。

    前処理

    Google Colab上で形態素解析を行うために、MeCabをインストールする。
     
    これでMaCab NeologdをGoogle ColabのPythonで実行できます。
    テキストデータの前処理を行うために名詞だけを抽出してリスト形式で返す関数を定義します。
     
    ここで、語彙に関するデータを作成します。
     
    続いて、単語とそのインデックスからなるdict形式のデータを作成します。
     
    最後に、これまでに作成した語彙とそのインデックスのデータを用いて、実際に学習に使う入力データと出力データを作成します。
     

    実行

    先程作成したデータを訓練データとテストデータに分けます。
    ここで、AUCを計算するための関数を定義します。(まるまる拝借しました)
    続いて、kerasを用いて、ネットワークを構築し、コンパイルを行います。
      テストデータでの予測精度を確認します。
    実際のラベルとテキストデータを見比べてみます。
    LSTMの場合は、BLSTMに関する記述(1行)をネットワークから除外すれば良いので簡単に試すことができます。 せっかくなので比較してみたところ、AUCは0.841でした。BLSTMは0.844だったので、若干上回る程度のようです。 以前扱った記事ではデザイナーズマンション分類はAUCが0.83程度だったので、LSTMを使ったほうが精度が少しだけ高いようです。

    追記

    TensorBoardの検証のloglossを見てみます。 エポックに対してloglossが非常に荒れています。学習曲線としてはセオリー的にアウトなようです。一方で、検証のAUCはエポックに従って高まるようです。 AUCは良くなっているけどloglossが増え続けている。loglossが下がらないと過学習している可能性が高いので、これは過学習しているだけなのだろう。

    参考文献