タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

モナドに関するaritekuのブックマーク (3)

  • 確率モナドを使ったMCMCサンプラーをScalaで実装してみる (改) - Qiita

    一度、会社のブログに書いた内容なのですが、直したい部分があったため書き直しました。 ここで書いている内容はとりあえず動けばいいというスタンスで実験的にコードを書いていました。最近、以下のrepositoryで実装し直しています。stanzという名前はもともとstanっていう統計モデリングをDSLで書けるツールがあるので、最後にzをつけた感じです。純粋関数型で実装されたライブラリは最後にzをつけることがあるみたいな? https://github.com/sdual/stanz はじめに 関数型言語において参照透過性が保たれるためには、ある値を代入された関数はいかなる場合でも同じ値を返さなければなりません。しかし、確率的事象を扱いたい場合には確率に従って毎回異なる値を返してしまうため、その性質が壊されてしまいます。離散確率については取りうる値の数が限られているため、それぞれの事象とその確率を

    確率モナドを使ったMCMCサンプラーをScalaで実装してみる (改) - Qiita
    ariteku
    ariteku 2017/12/08
    かっちょええ。
  • 確率モナドでMCMCサンプラーを実装してみる|株式会社CAリワード

    データマイニングエンジニアの白井です。今回は個人的に興味を持っている確率モナドを使った話題について紹介したいと思います。 はじめに 関数型言語において参照透過性が保たれるためには、ある値を代入された関数はいかなる場合でも同じ値を返さなければなりません。しかし、確率的な事象を扱う場合には毎回異なる値を返すため、その性質が壊されてしまいます。その解決策として確率をモナドにして、参照透過な実装とサンプリングの操作を完全に切り離すことが考えられます。今回は連続的な確率においてどのように確率モナドを構築するのかを説明し、統計モデリングで使われる Metropolis-Hastings 法の実装をしてみます。全体を通して scala を使って実装してみたいと思います。 今回扱う内容は確率モナドの有用性を理解することを目的としており、実用性は重視していません。もし、業務で統計モデリングが必要な場合は S

    確率モナドでMCMCサンプラーを実装してみる|株式会社CAリワード
  • QAで学ぶMonad - あどけない話

    この記事は、Monad でつまづいた Haskeller のための Monad 再入門です。 Monadとは何ですか? Monad とは、単なる型クラスの一つです。難しいという風評もありますが、それ以上でもそれ以下でもありません。 この型クラスのメソッドは、return と >>= です。 class Monad m where (>>=) :: m a -> (a -> m b) -> m b return :: a -> m a つまり、以下を満たす型の集合が Monad です。 m a で表現できるように一つの型変数を格納するコンテナ型 >>= と return を実装 return は新しいコンテナを作り、>>= は二つのコンテナを合成します。 Monad のインスタンスは失敗系と状態系に大別できます。以下に代表的なインスタンスを示します。 失敗系: Maybe、[] (リスト)

    QAで学ぶMonad - あどけない話
  • 1