タグ

pythonとPRMLに関するtnalのブックマーク (7)

  • Pythonによるモンテカルロ法入門 - 人工知能に関する断創録

    PRMLの11章で出てくるマルコフ連鎖モンテカルロ法(Markov chain Monte Carlo methods: MCMC)。ベイズでは必須と呼ばれる手法だけれどいまいち理屈もありがたみもよくわからなくて読み飛ばしていました。 最近、ボルツマンマシンを勉強していて、ベイズと関係ないのにマルコフ連鎖やらギブスサンプラーやらが出てきて格的にわからなくなってきたのでここらで気合を入れて勉強し直すことにしました。 参考にした書籍は「Rによるモンテカルロ法入門」です。PRMLと同じく黄色いなので難易度が高そう・・・このはR言語を使って説明がされていますが、それをPythonで実装しなおしてみようかなーと計画中。numpy、scipyの知らなかった機能をたくさん使うので勉強になりそう。 ただRにしかないパッケージを使われると途中で挫折する可能性が高い・・・あと内容が難しすぎて途中で挫折す

    Pythonによるモンテカルロ法入門 - 人工知能に関する断創録
  • 共役勾配法によるロジスティック回帰のパラメータ推定 - 人工知能に関する断創録

    Courseraの機械学習ネタの続き。今回はロジスティック回帰をやってみます。回帰と付くのになぜか分類のアルゴリズム。以前、PRMLの数式をベースにロジスティック回帰(2010/4/30)を書いたけど今回はもっとシンプル。以下の3つの順にやってみたいと思います。 勾配降下法によるパラメータ最適化 共役勾配法(2014/4/14)によるパラメータ最適化(学習率いらない!速い!) 正則化項の導入と非線形分離 ロジスティック回帰は線形分離だけだと思ってたのだけど、データの高次の項を追加することで非線形分離もできるのか・・・ 使用したデータファイルなどはGithubにあります。 https://github.com/sylvan5/PRML/tree/master/ch4 勾配降下法によるパラメータ最適化 2クラスのロジスティック回帰は、y=0(負例)またはy=1(正例)を分類するタスク。ロジステ

    共役勾配法によるロジスティック回帰のパラメータ推定 - 人工知能に関する断創録
  • 多層パーセプトロンで手書き数字認識 - 人工知能に関する断創録

    多層パーセプトロンが収束する様子(2014/1/23)の続き。数字認識は前にニューラルネットによるパターン認識(2005/5/5)をJavaで作りましたが今回はPythonです。 今回は、多層パーセプトロンを用いて手書き数字を認識するタスクを実験します。今回からscikit-learnというPython機械学習ライブラリを活用しています。ただ、scikit-learnには多層パーセプトロンの正式な実装はない*1ため多層パーセプトロンのスクリプトはオリジナルです。今回から比較的大きなデータを扱うためなるべく高速に動作し、かつPRMLと変数名を合わせることで理解しやすいようにしました。 digitsデータ 手書き数字データは、MNISTというデータが有名です。PRMLの付録Aでも紹介されています。今回はいきなりMNISTではなく、scikit-learnのdigitsというより単純なデータセ

    多層パーセプトロンで手書き数字認識 - 人工知能に関する断創録
  • 多層パーセプトロンが収束する様子 - 人工知能に関する断創録

    多層パーセプトロンによる関数近似(2014/1/22)の続きです。 もう少しスクリプトを改造し、実際に各重みと出力がどのように収束するかアニメーションにしてみました。ほとんどの関数は最初に急激に変化したあとだんだん収束していく様子が見てとれます。|x|は最初は誤差が減らずローカルミニマムにはまったかな?と思ったのですが、しばらく待っていたら急激に誤差が減りました。よかった、よかった。 残りは http://www.youtube.com/channel/UC4DmXhmsKZT48cRD6znEXaw このアニメーションを実行するスクリプトです。matplotlibにwxPythonを組み合わせることでアニメーションを実現しています。このアニメーションの書き方は、短時間フーリエ変換(2011/7/16)でも使いました。 次回は、数字の手書きデータを認識するニューラルネットを作りたいと思いま

    多層パーセプトロンが収束する様子 - 人工知能に関する断創録
  • 多層パーセプトロンによる関数近似 - 人工知能に関する断創録

    パターン認識と機械学習(PRML)まとめ(2010/8/29)の続きです。以下、つづくかも?になってましたが、2014年はDeep Learningを勉強しよう(2014/1/4)と思っているので、関連するニューラルネットワーク関係の実験結果をもう少し追記します。 今回は、PRMLの5章ニューラルネットワークの中から図5.3にある多層パーセプトロンによる関数近似をPythonで実装してみました。 上の図にあるようにxを入れたときにsin(x)の近似値を出力するようなニューラルネットワークを学習します。もっと詳しく言うと (x, sin(x)) のたくさんの組(訓練データ)を教師データとして用いて、xを入れたときにsin(x)の近似値を出力するようにニューラルネットワークの重みを更新します。 多層パーセプトロン(Multilayer perceptron) p.228にあるようにバイアスパラ

    多層パーセプトロンによる関数近似 - 人工知能に関する断創録
  • scikit-learn: machine learning in Python

    Simple and efficient tools for predictive data analysis Accessible to everybody, and reusable in various contexts Built on NumPy, SciPy, and matplotlib Open source, commercially usable - BSD license

  • Pythonで分析や機械学習メモ - データサイエンティスト上がりのDX参謀・起業家

    私はRからプログラミングに入って分析もRでやってるわけですが、ちょっと大きめのデータになるとRでは扱うのが難しくなります。そこで前々からPythonに手を出そうとしていたのですが、なかなかインストールがうまく行きませんでした。しかし、ようやくPython環境を整えることが出来たので、メモしておきます(@teikawさんにいろいろ教えてもらいました)。 Pythonのインストールは良く使われるパッケージが入っている、enthoughtやpythonxyで行うのが良いです。自分は前者のアカデミック版をインストールしました。インストールした後、環境変数の設定が必要かもしれません(以前にPython単体でインストールしたときに環境変数は設定していました)。 機械学習を実行するにあたって、今一番アツそうなのがscikits.learnというライブラリです。これはGoogle summer codeが

    Pythonで分析や機械学習メモ - データサイエンティスト上がりのDX参謀・起業家
  • 1