読者です 読者をやめる 読者になる 読者になる

xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

FPGAの原理と構成を読んだ

FPGAブームが来ています*1 。最近年を追うごとにFPGAに関する書籍やネット上の情報が多くなり、またC言語ベースでの高位合成技術の進展やLinuxベースのシステムが作られ、FPGAはソフトウェア開発者にとっての敷居が低く使いやすくなってきています。しかし入…

Exhaustive Hamilton Monte Carloの紹介

Stan Advent Calendar12/20の記事です。 Stan version2.10.0で実装されたExhaustive HMC(xHMC)というアルゴリズムについて 論文Identifying the Optimal Integration Time in Hamiltonian Monte Carlo の内容に基づいて説明します。

Recurrent Switching Linear Dynamical Systemsのstanでの再現

Stan Advent Calendar12/11の記事です。時系列の統計モデルに関する論文「Recurrent Switching Linear Dynamical Systems」の紹介とそのstanでの再現です、が現状うまくいっていません。。

stanとRでベイズ統計モデリングをいただきました。

ありがとうございます。 この本は著者の経験に基づくstanを用いた統計モデル構築と分析の方法について解説した他に類を見ない本になっています。StanとRでベイズ統計モデリング (Wonderful R 2)作者: 松浦健太郎,石田基広,市川太祐,高橋康介,高柳慎一,福島真…

stanによるニューケインジアン・フィリップス曲線の推定

経済学においては失業率とインフレ率をプロットすると負の相関関係が見られるというのが知られていてフィリップス曲線と呼ばれるそうです。 https://gist.github.com/xiangze/b2a29f5f4ffb2be835b2#file-data_for_phillips-ipynb その関係は10年程度の長期間…

論文コーパスの次元圧縮とLDAによるトピックの関係の可視化

機械学習の方法として教師なし学習で得られた量を特徴量として教師あり学習で使うという方法があります。 OnlineNewsPopularityの列の中にもLDAで推定されたトピックがあるようです。文書データもOnlineNewsPopularityと同じようにLDAで得られた量を使って機…

KerasとskoptでのBayesian Optimization

使ったアルゴリズム(random forest, neural net, Bayesian Optimization)とデータ(OnlineNewsPopularity)はTJOさんのブログ記事 と全く同じでPythonのライブラリscikit-learnのrandom forestとKeras, bayesianを使っているところが異なります。

stanでODEパラメーター推定を試す(その1)

基本的には http://statmodeling.hatenablog.com/entry/sir-model-ode-1 と同じ内容なのですが、 時間の間隔を指定しなくてもよいのか transformed dataとして指定するx_i,x_tは必要か(stanを呼び出したコードからは見えない) という(個人的な)疑問点に関す…

CVPR2016のひとり論文読み会

CVPR2016の論文読み会が大盛況で参加出来そうになかったので個人的に読んだ複数の論文を紹介します。

Tokyo.stanの感想

stan開発者の一員であるBetancourtさんを招いたTokyo.stanを聴きにいきました。 Michael Betancourt's Stan Lectureを開催しました - StatModeling Memorandum 自分はstanを余り使いこなせていないのですが、主にアルゴリズムと実装に関する感想を書きます。

最近のpymcの進展(ノンパラベイズ)

pymcはpythonの文法の枠内で統計モデルが書けてMCMCを実行することで推定が出来るライブラリです。 最近開発に色々な進展があったので勉強しています。 https://pymc-devs.github.io/pymc3/

「R言語徹底解説」をいただきました

R

「R言語徹底解説」(原題 Adbanced R)を訳者の方からいただきました。ありがとうございます。 最初15章 DSLまで読もうとしましたが挫折したので3章 データ抽出について書きます。

C89であった統計関係の薄い本

コミックマーケット89で見つけた統計関係の同人誌を紹介します。

簡潔データ構造のFPGA実装について

HDLアドベントカレンダー2015の記事です。 FPGAにwavelet treeを用いた簡潔データ構造を実装したという論文を紹介します。PDPTA'15(International Conference on Parallel and Distributed Processing Techniques and Applications)という学会で発表されたよ…

局所的な近似によるMCMCの高速化論文を読んだ

局所的な近似によるMCMCの高速化論文が話題になりました。 http://japan.zdnet.com/article/35073667/論文Accelerating Asymptotically Exact MCMC for Computationally Intensive Models via Local Approximations を読んで理解した範囲の内容を書きます。

RBMのtheanoコード解説

deeplearning.netのRBM(Restricted Boltzmann Machine)のTheanoでの実装面からの説明です。RBMのアルゴリズムについてはsinhrksさんが Theano で Deep Learning <6>: 制約付きボルツマンマシン <前編> - StatsFragments に書かれています。説明の流れはdeepl…

CVPR論文のトピックモデルによる分類と傾向

コンピュータビジョンの国際学会CVPRの最近の論文全文をトピックモデルに基づいて分類、単語分布を可視化できたのでその結果を手短にまとめます。図を見てもらったほうが早いかもしれません。

Theanoのshared変数についてメモ

shared変数(共有変数)の使いどころとscanのloop型構文との使いわけが分からなかったのでメモ

Torch7のCNNのFPGA実装は可能か(絵に描いた餅編)

waifu2xの登場で注目されるTorchですが、様々なアーキテクチャでの実装を標榜しているようです。 http://torch.ch/ ではFPGA backendsと書かれていますが、誰かが実装したという話は聞いたことがありません。ので検討してみました。

emceeを試してみた

pythonのMCMCライブラリとしてemceeというのがあるらしいので試してみました。 Paralell tempering(レプリカ交換モンテカルロ法)が使えるの他のライブラリとの大きな違いになります。http://dan.iel.fm/emcee/current/

theanoでwhileなど

sinhrksさんがtheanoでのloopについてまとめていたので その落ち穂拾いです。Python Theano function / scan の挙動まとめ - StatsFragmentssinhrks.hatenablog.com

Python for Financeという本

ipython notebookを使って出版されたらしいPython for Financeという本を読みました。 numpy, scipy, pandas, PyMC3をはじめとしたPythonの数値計算、解析系のパッケージを使った金融工学の計算事例と自作ライブラリについての紹介になっています。

ニコニコ動画 『スナップショット検索API』によるキャラクター共起性の可視化(東方&艦これ)

ニコニコ動画 『スナップショット検索API』 に触ってみた - 唯物是真 @Scaled_Wurm ニコニコ動画 『スナップショット検索API』 に触ってみた - 唯物是真 @Scaled_Wurmこちらの記事を参考にニコニコ動画における東方プロジェクト(東方)、艦隊これくしょん(艦…

「情報幾何の新展開」のやばさ

「情報幾何の新展開」という本が話題になっています。 http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN4910054700848&YEAR=2014別冊数理科学 情報幾何学の新展開 2014年 08月号 [雑誌]出版社/メーカー: サイエンス社発売日: 2014/08/22メディア: 雑…

RNN-RBMによる旋律の予測と生成と音楽情報処理に関する紹介

かなり以前(2012年)のものになりますが、deeplearning.netでRecurrent Neural Network(の一種)のTheanoによる実装とMIDIデータからの旋律予測に関する論文の実装が公開されていたの紹介します。またその他機械学習による音楽情報の解析に関して少し紹介しま…

Particle Markov chain Monte Carlo methods (PMCMC)について

Particle Markov chain Monte Carlo methods (PMCMC)時系列の推定とモデル(のパラメータ)の推定においてParticle filter(SMC)とMCMCを組み合わせた手法があり、その分かりやすい解説としてParticle Markov chain Monte Carlo methods(pdf)というドキュメント…

Stick breaking process in stan

The BUGS bookの293 pageに書かれていたStick breaking processをstanで実装、コンパイルができましたが、Errorの発生により評価が阻まれています。 82個の銀河の銀河系からの相対速度の分布がテストデータとして使われていますが、入手が難しそうなので手で…

承認欲求.ipynb

主にipython notebookです。

ハミモン、ゲットだぜ!

Hamilton Monte-Carlo法(Hybrid Monte-Carlo法)はMCMCによる分布関数のサンプリングを高速化させる手法の一つであり、近年StanやTheanoなど統計的解析を行うためのプログラミング言語に実装させており、注目を集めています。 今回は混合ガウス分布に対するそ…

pythonでGPUとMCMC(とR)

GPUでモンテカルロ法の計算をしたくなったりした場合には普通CUDA,OpenCLを使うことになります。 C++でプログラミングする必要があるのですが、変数の確保、解放などで記述が長くなりがちです。pythonを用いると記述を簡潔にできるところが多いらしいので関…

IPython Notebookとnbviewerを使ってみた

IPython Notebookが評判になっているので使ってみました。書いたコードをgithub,gistに上げるとnbviewerできれいに表示してくれるそうなので試してみました。

Fisher行列とKL Divergenceの関係とEMアルゴリズム、変分ベイズ推定について少し

Relations between Kullback-Leibler distance and Fisher information に書いてあることそのものです。行列といいながら1次元のときのことしか書いていないのが良くないです(上記ドキュメントではmatrixとは言っていない)。

1行でディープラーニングできなかった(theanoとH2O)。

pip install theanoimport urllib2 exec(urllib2.urlopen("https://gist.githubusercontent.com/xiangze/90c2a215b46dad907329/raw/onelineardA.py").read())data(MNIST)のダウンロードではまったら頑張りましょう。 元ネタ(H2O) BOD Rで一行でディープラー…

コンピュータビジョン最先端ガイド6 第4章ディープラーニングの予習

第4章ディープラーニングの内容に関する個人的ノートです。 詳しくはコンピュータビジョン最先端ガイド6 (CVIMチュートリアルシリーズ)作者: 藤代一成,高橋成雄,竹島由里子,金谷健一,日野英逸,村田昇,岡谷貴之,斎藤真樹,八木康史,斎藤英雄出版社/メーカー: …

Forecasting synchronizability of complex networks from dataを読んだ

Forecasting synchronizability of complex networks from data(PHYSICAL REVIEW E 85, 056220 (2012),PDF)という論文を読んだのでその概略をまとめます。 日本語キーワード 圧縮センシング 力学系 結合振動子 複雑ネットワーク 概略 本論文では同じような方…

n番煎じマンが文法圧縮による完備辞書を写経しました(Python)。

id:echizen_tmさんによる文法圧縮を使った完備辞書(簡潔ビットベクトル)を作ったに感銘を受けたので写経しその理解を試みました。 アルゴリズムは同じくRe-pairでほとんど流れは同じです。Pythonのほうが良いという人は読んでください。

Persistent Homology とRのphom package, その他libraryの紹介

高次元データの大域的な性質に着目した分類、解析の手法にPersistent Homologyという方法があります。 またその手法を実装したRのパッケージ(CRAN phom package)があったので簡単に紹介いたします。その他の色々な言語で使えるライブラリについても最後に紹…

Python,OpenCVでの駄コラ生成

Pythonで駄コラを作ってみよう(としています)が面白そうだったので書いてしまいました。顔の部分を別の画像に入れ替えるだけです。検出は完全ではないです。実写を使う場合は学習データを入れ替えましょう。 Next step サーバー、botにする Reference 【Op…

日本の平均気温偏差の変動データのモデリングと分析

気象庁で 1898年から現在までの全国の平均気温の気温偏差を公開していたのでStanで時系列モデルを作り、その性能の評価を試みました。 ここでの結果には実際の気候変動の原因となっていると考えられている諸現象の効果は含まれておらず、大まかな傾向のみを…

Stanの現状と将来(v2.0.1)

STAN RELEASE NOTESとTo Do Listから個人的に気になる項目をピックアップしました。 DIC, WAIC,multi-threading,疎行列、ragged array、user-defined functionなどがきになります。MATLAB,Julia,Stataなどのインターフェースも提供予定?だそうです。 盛りだ…

あなたとpystan,いますぐapt-get

sudo apt-get update sudo apt-get install python-numpy sudo apt-get install cython sudo pip install pystan #additional libraries sudo apt-get install build-essential python-dev python-setuptools python-scipy libatlas-dev libatlas3-base sudo…

Pystanで自然言語処理 scikit.learnのdatasetで試す

scikit.learnは様々な機械学習のアルゴリズムのみならず、データセットも充実しています。stanのpythonラッパーpystanでこれを利用し、Stan manualのLDAのコードの性能を評価することを行いました。 20 newsgroupsというデータセットは名前の通りUsenetの20…

FPGAで競技プログラミング

ルーターで競技プログラミングという記事をみて、色々なアーキテクチャで競技プログラミングができることを知りました(採点はしてくれませんが)。 紹介されていたTopcoder SRM 596のDiv 1の250点問題をFPGAで解くモジュールを作成してみました。

Stan2.0では離散変数をparameterとできないことについて

Stan2.0で配列のindexとしてCategorical分布から生成したものは使えないためにモデルの記述がわかりにくくなってしまう場合があります。 Stanマニュアルの説明が簡潔すぎて自分にはすぐに理解できなかったためその補足です。

A Brief Survey on Sequence Classification(系列データの分類)の要約

最近時系列データの解析を専門とする人たちのお話をきいたり、ブログを読んだりする機会が多くなっています。工学の枠を超えてビジネスでの応用が盛んになっているようなのですが、今まで制御理論などで得られた理論、知見とは大きな隔たりがあります。 そこ…

RStanのサンプル(soft K-means)の実行

StanのReference Manual(pdf)はサンプルコードが非常に充実していて、書き方の参考になるばかりではなく、そのまま使用することさえ出来ます。 今回は混合ガウス分布の推定をMCMCで行うというサンプルを実行してみました。

redsvdのwrapper RRedSVDとRパッケージ作成、公開についての覚え書き

疎行列に対する特異値分解の高速な近似実装 redsvdのR wrapperである RRedSVDを作成、公開しました。 https://github.com/xiangze/RRedsvd ライセンスはBSDです。 TokyoRでは特異値分解とは何か、どんな手法があるかなどの基本的説明、RとC++を橋渡しするRcp…

Python, Sympyを用いたVanishing Component Analysisの実装(と動作)

未だ挙動が怪しいですが、Pythonの数式処理ライブラリSympyを用いて Vanishing Component Analysis(論文pdf)を実装しました。 Sympyは可読性が高いのが利点ですが、速度を考慮した実装ではないため特に次数の高い多項式まで求めようとした場合にどんどん動作…

CVPRの論文タイトルの頻出単語と可視化

NLP cv R

コンピュータビジョン分野の査読つき国際会議であるCVPR(Conference on Computer Vision and Pattern Recognition)の論文題名を http://www.cvpapers.com/ から取得し、その変遷をRのtmモジュールを使い分析、可視化してみました。 CVPR2007からCVPR2013まで…

QsysとverilogのTIPS

Altera社のツールQSysについての細かい事項メモ generate文の2重ループが使える。 ただしgenerate文にはラベルが必要 例: genvar i,j; generate for(i=0;i<16;i=i+1)begin :rep_tmpx assign tmpx[i]=(idx==i)?(i<<1):0; end for(j=0;j<16;j=j+1)begin :rep_…