タグ

ブックマーク / heartruptcy.blog.fc2.com (5)

  • Gaussian Processシリーズ 1 概要

    Stan manual(2.2.0)の16章「Gaussian Processes」を使ってみましたので記録を残します。結論から言いますと、Stanでやる場合は回帰はよいですがクラス分類に使おうとすると計算が遅いし収束も悪いです。 まずGaussian Process(以下GPと呼ぶ)とは何ぞやということですがgpml(ぐぷむる?)として有名な次の書籍の1章が分かりやすいです。→Gaussian Processes for Machine Learning これを咀嚼して勝手に補完してまとめたものが以下になります。 GPは教師あり学習の一手法です。教師あり学習では有限のトレーニングデータから関数を作ることになります。関数はありとあらゆる入力の値に対して予測値を返すものです。この関数を決めるにあたり、2つのアプローチがあります。1つめは関数をあるクラス(例えば線形だとか)に限定するものです。

  • [R] 散布図行列 (corrplot, pairs, GGally)

    データが与えられた時にはまず可視化をします。そのデータがどのような仕組み(メカニズム)で作られてそうなったかを考えるために必須のプロセスです。しかしながら、どんな可視化がベストかははじめの段階では分からず、とにかくプロットしまくることになります。そのとっかかりに僕がよく使うのが散布図行列(scatter matrix,scatter plot matrix)です。 今回は3つほど紹介します。 ●1. {corrplot}パッケージの corrplot()関数 5行目で相関係数行列を作ってそれを渡しておしまいです。相関係数行列の作り方は各自の自由です。上記ではSpearmanの順位相関係数を使っていますがMICとかでもいいと思います。 このcorrplotのデメリットとしましては散布図は表示できない点です。散布図行列と言っておきながらすみません。説明変数が100個以上あるときなどは散布図を描

    [R] 散布図行列 (corrplot, pairs, GGally)
  • トピックモデルシリーズ 1 概要

    せっかく区切りがいいところまで勉強したのにoutputしないと忘れそうなので、メモを兼ねてしばらくトピックモデルについて記事を書きます。JAGSで実行したところ、そこそこ速いし収束もしました。しかしほとんど意味をなさないような幅広い推定結果になってしまいましたのでStanを使うことにしました。はじめにStanで実装するメリット・デメリットについて簡単に触れたいと思います。 メリット ・実装がラク。LDAでも30行ぐらい。 ・ややこしい推論部分は一切実装しなくてOK。全部StanのHMCサンプリングにお任せ。 ・モデルの拡張が簡単。 デメリット ・計算が遅い。文書x単語種類が1000x1500・総単語数12000のケースでは トピック数が20, iter=1000で9時間, iter=10000で35時間でした。Stanのmulti-threading対応待ち。 ・データが少ないと収束しない

  • トピックモデルシリーズ 7 DTM (Dynamic Topic Model) の一種

    最後はおまけでLDAに時系列を組み合わせた実装を試してみたので紹介します。 今まで「文書」と呼んできたものを「ユーザー」、「単語」と呼んできたものを「アクセスしたWebページ(≒アクション)」と考えます。ユーザーが1日目~31日目までV種類のWebページにアクセスしたデータがあるとします。そしてユーザーの興味のあるトピックの分布(トピック混合比)が時間によって変化すると考えます。ある人は興味が移りやすく、またある人は移りにくいでしょう。そんな状況をモデリングします。 この記事の表記は以下です。1人あたり1時刻あたり150アクションぐらいというデータです(記事の最後にデータを生成したRコードを載せてあります)。 グラフィカルモデルは以下になります。 トピックごとの単語分布に比べて個々人のトピック混合比の方が移り変わるスピードが速いと考えられますので、今回は単語分布はどのタイムポイントでも同じ

    トピックモデルシリーズ 7 DTM (Dynamic Topic Model) の一種
  • トピックモデルシリーズ 5 PAM (Pachinko Allocation Model)

    LDAの不満点の一つとしましては、トピック間の関係性を全て無視しているところです。例えば、「政治」と「経済」なんかは相関ありそうですよね。そういうトピック間の相関を考慮したモデルとしてはCTM(Correlated Topic Model)があります。実はStanのマニュアルでもCTMは実装されています(githubではここ)が、サンプルデータとサンプルプログラムをそのまま実行しても全く収束する気配がなくて殺意がわきます。またCTMの弱点としては2つのトピックの間の関係しか考慮されていないこと、また推定する分散共分散行列のパラメータ数がトピック数の2乗に比例して大きくなっていくという点が挙げられます。 そこで今回のPAM([Li+ 2006])を少し砕いて紹介して実装したいと思います。まずはこの記事の表記法は以下になります。前回の途中から使った単語の出現数(Frequency)を今回も使い

    トピックモデルシリーズ 5 PAM (Pachinko Allocation Model)
  • 1