タグ

ブックマーク / ksknw.hatenablog.com (5)

  • pythonでNUTSの実装 - やったことの説明

    はじめに 前回 ハミルトニアンモンテカルロ法の実装をやった. 今回は No U-Turn Sampler (NUTS)の実装をやる. 論文を参考にした. コードはここにもある github.com NUTS ハミルトニアンモンテカルロ (HMC)はパラメータの勾配を利用して, 効率的にMCMCサンプリングを行うことができる手法だった. HMCの問題点は2つ. 更新ステップ数 を適切に指定しなければいけない. 更新の大きさ を適切に指定しなければいけない. NUTSは更新ステップ数を自動的に決定する手法である. 論文内でははdual-averaging (Nesterov 2009)を用いて決定するが,今回は決め打ちにする. 更新ステップ数L ハミルトニアンモンテカルロでは,正規分布によって発生させた運動量を与えて, ステップの間,点を動かす. 予め決められたステップの間,点を動かすので,例

    pythonでNUTSの実装 - やったことの説明
  • ハミルトニアンモンテカルロ法の実装 - やったことの説明

    はじめに 今までなんとなくStanなどを使ってMCMCをやっていた。 ギブスサンプリングぐらいなら昔勉強したけど、ハミルトニアンモンテカルロや、ましてやNUTSなどは何をやっているのかあまり理解していなかった。 基礎からのベイズ統計学というを読んで、ハミルトニアンモンテカルロまではなんとなくわかったので、プログラムを書いて理解する。 NUTSはまだわかってないので、 独立MH ランダムウォークMH ハミルトニアンモンテカルロ を実装する。 理論は他の方のブログやを参考にしてほしい。 自分の理解で適当に書いているので、間違ってたらごめんなさい。 データ なんでもいいけど、平均3標準偏差1の1次元の正規分布に従うデータから、その平均と分散を推定することにする。 import numpy as np from numpy import random from copy import deep

    ハミルトニアンモンテカルロ法の実装 - やったことの説明
    Aobei
    Aobei 2017/08/07
  • DTW (動的時間伸縮法)の実装 - やったことの説明

    概要 自分の勉強のために、Dynamic Time Warpingを実装した。 正弦波データでいろいろプロットした後、気温のデータに適用した。 たぶんバグってないと思う。 はじめに 時系列データの類似度(距離)を計算するとき、単純には例えば各時刻での二乗誤差の平均などを求めることを思いつくが、これは以下のようなデータに対して、直感に反する結果になる。 %matplotlib inline import numpy as np import pylab as plt import seaborn as sns T = 150 t = .4 A = np.sin(np.array(range(T))/10) B = np.sin((np.array(range(T))/10 + t*np.pi)) C = np.zeros((T)) plt.plot(A) plt.plot(B) plt.pl

    DTW (動的時間伸縮法)の実装 - やったことの説明
  • 関係データ学習の実装 MovieLensの行列分解 - やったことの説明

    概要 関係データ学習の後半のうち,行列分解を実装した. lossが下がっているので,たぶん合っていると思うが,分解したあとのベクトルを見るとよくわからない. はじめに 以前こんなものをやった. ksknw.hatenablog.com 前半部分は終わったので(SBMのことは置いといて),後半部分の実装をやる. 今回は行列分解を実装する. www.kspub.co.jp MovieLensデータ MovieLens 100K Dataset | GroupLens これといって分解したい行列データもなかったので,に書いてあったデータを使うことにする. MovieLensにはユーザが映画を評価したデータが含まれている. データを作成した時期によってデータのサイズが違うらしいが,今回は一番小さいサイズのデータを使う. このデータには943人のユーザの映画の評価(1から5)が含まれている. 映画

    関係データ学習の実装 MovieLensの行列分解 - やったことの説明
    Aobei
    Aobei 2017/03/06
  • 関係データ学習の実装 ツイッターデータのスペクトルクラスタリングとSBM - やったことの説明

    概要 関係データ学習の学習のために,自分で実装して理解する. ツイッターのフォローフォロワー関係を使って,グラフラプラシアンを求めスペクトルクラスタリングを行った. その結果,なんとなくクラスタリングできた. また,確率的ブロックモデルによる非対称データクラスタリングをStanによって実装しようとした. これはうまくいっていない. はじめに 関係データ学習というを買って読んでいる. www.kspub.co.jp の内容は前半と後半に分かれていて,前半は関係データをスペクトルクラスタリングしたり,確率的ブロックモデルでクラスタリングしたりする話.後半は行列分解やテンソル分解の話になっている. まだ前半の途中までしか読めていないが,予想していたよりも数式が簡単だったこともあり,実際のデータに適用してみたくなった. 数年前に書いたツイッターのフォローフォロワー関係をダウンロードするスクリプ

    関係データ学習の実装 ツイッターデータのスペクトルクラスタリングとSBM - やったことの説明
    Aobei
    Aobei 2016/12/30
  • 1