タグ

statisticsとalgorithmに関するmanabouのブックマーク (6)

  • 変分ベイズを使って変化点検知をしてみる - 作って遊ぶ機械学習。

    おつかれさまです.今回は簡単なメッセージ受信数のデータを使って,変分ベイズによる変化点検知をやってみたいと思います.なお,今回使うデータやモデルは下記のPyMCの入門書を参考にしています*1. Pythonで体験するベイズ推論-PyMCによるMCMC入門-キャメロン-デビッドソン-ピロン このでは推論にMCMCを使っていますが,今回はモデルはそのまま流用し,同じことを実現する変分ベイズによる近似推論を導いてみます. 一般的には変分ベイズの方が計算が高速なので,MCMCの性能に満足できない場合などは変分ベイズは良い代替手法になり得ます.また,今回紹介する例は,過去に紹介した混合モデルを使った例よりも比較的シンプルですので,変分ベイズの入門題材にはちょうど良いんじゃないかと思っています. MCMCによる変化点検知 ・メッセージ受信データ PyMCでは次のような「ある期間で受信したメール数」

    変分ベイズを使って変化点検知をしてみる - 作って遊ぶ機械学習。
  • 自動微分変分ベイズ法の紹介

    5. ベイズ推定 ベイズ推定は観測データに基づいて確率モデルのパラメータの不確 かさを 推定する⽅法です. p(X|D) = p(D|X)p(X) p(D) • X: 確率モデルのパラメータ • D: 観測データ • p(X): 確率モデルのパラメータ事前分布 • p(D|X): 尤度 • p(X|D): 確率モデルのパラメータ事後分布 事後分布を解析的に計算できるのは限られた場合であり, 複雑な確率モデルでは近似計算が必要です. 5 6. ベイズ推定の近似計算 MCMC 事後分布からサンプリングを⾏う⽅法です. • ⻑所: 複雑な式の導出が不要 (尤度と事前分布を記述すれば良く, 分布に関する仮定が緩い) • 短所: マルコフ連鎖の収束判定が難しい 変分ベイズ法 事後分布を試験分布で近似する⽅法です. • ⻑所: MCMC と⽐べて収束が速い • 短所: 確率モデルごとにパラメータ更新式

    自動微分変分ベイズ法の紹介
  • ソフトウェアのための統計学 – 前編 | POSTD

    ソフトウェア開発の原点は可能性の追求であり、不可能を可能にすることです。ひとたび ソフトウェア が開発されると、エンジニアは次に 程度 という課題に向き合うことになります。企業向けのソフトウェアであれば、「速度はどれくらいか」と頻繁に問われ、「信頼性はどの程度か」という点が重視されます。 ソフトウェアのパフォーマンスに関する質問に答え、さらには正しい内容を語る上で欠かせないのが統計学です。 とはいえ、統計学について多くを語れる開発者はそうはいません。まさに数学と同じで、一般的なプロジェクトで統計学が話題に上ることなどないのです。では、新規にコーディングをしたり、古いコードのメンテナンスをしたりする合間に、手が空くのは誰でしょうか? エンジニアの方は、ぜひ時間を作ってください。近頃は、15分でも貴重な時間と言えるでしょうから、 こちらの記事をブックマークに追加 しておいてもいいでしょう。とに

    ソフトウェアのための統計学 – 前編 | POSTD
  • 【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita

    ハミルトニアンモンテカルロ法(HMC)の動作原理をアニメーションを用いて理解してみようという記事です。 先日の記事、「【統計学】マルコフ連鎖モンテカルロ法(MCMC)によるサンプリングをアニメーションで解説してみる。」の続編にあたります。 豊田先生の書籍「基礎からのベイズ統計学」の例題を使わせていただき、サンプリング対象の分布は今回ガンマ分布とします。記事ではアニメーションに使った部分の理論的な解説しかしませんので、HMCの詳細な解説はこちらの書籍をご参照いただければと思います。 はじめに 推定する対象は$\theta$を変数としたガンマ分布です。ベイズ推定で推定したいパラメーターを$\theta$で表すので、$\theta$の分布として表されます。1 ガンマ分布はこちらです。 $$ f(\theta|\alpha, \lambda) = {\lambda^{\alpha} \over

    【統計学】ハミルトニアンモンテカルロ法をアニメーションで可視化して理解する。 - Qiita
  • 「この中で最初に見つけた3つの単語」は、どうやって作っているのか - Qiita

    こういうのを、TwitterやらFacebookやらで見たことがないでしょうか。 これは私がでっち上げたものですが。検索すれば、いくつか見つかります。 これ、どうやって作ってんの!?って疑問が湧いてきたので、ちょっと考えてみました。 コードは全部、Python3で実装しています。2.xを使っている方は日語を使うことが多いなら乗り換えましょう。入り口と出口でだけ文字コードに注意すれば、unicodeだとかcodecだとかなーんにも気にしなくていいので、とても楽ちんです。 戦略1: 完全にランダムでひらがなを選ぶ import random h, w = 16, 16 USE_HIRAGANAS = ('あいうえおかきくけこさしすせそたちつてと' + 'なにぬねのはひふへほまみむめもやゆよらりるれろわん' + 'がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ') for _ in ran

    「この中で最初に見つけた3つの単語」は、どうやって作っているのか - Qiita
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

  • 1