2017-01-01から1年間の記事一覧

JuliaとPythonで擬似コードや数式を動かそうとしたときの比較

この記事はJulia Advent Calendar 2017の17日目の記事です. 普段はpythonばかり書いていて,juliaは最近文法覚えてきたかなレベルなので色々許してください. コードの全体はここにあります. github.com 概要 この記事では擬似コードや数式を可能な限りそ…

pytorchで Canonical Correlation Analysis (正準相関分析)の実装

はじめに pytorchの練習も兼ねて,Canonical Correlation Analysis (正準相関分析)をpytorchを使って実装する. 本当は分散共分散行列からなる行列の一般化固有値問題を解くが,今回は勾配法で解を求める. pytorchのプログラムが間違っていないことを確認す…

EmacsでブラウザのテキストボックスにMarkdownを書く (校正もする)

概要 Atomic ChromeでEmacsからブラウザのテキストボタンを操作しつつ,textlintをflycheckからよんで文章を校正する. flymdでMarkdownのリアルタイムプレビューもする. こんな感じになる. はじめに ブラウザのテキストボックスに文字を打ち込むのが面倒…

CycleGANで普通の木を満開の桜にする

はじめに 定期的に生成系のタスクで遊びたくなる. 今回はCycle GANを使って、普通の木を満開の桜に変換してみることにした。 Cycle GAN 論文はこれ. 中身についてはたくさん解説記事があるので、そちらを参考。 Cycle GANでは2つのドメインの間の写像を学…

pythonでNUTSの実装

はじめに 前回 ハミルトニアンモンテカルロ法の実装をやった. 今回は No U-Turn Sampler (NUTS)の実装をやる. 論文を参考にした. コードはここにもある github.com NUTS ハミルトニアンモンテカルロ (HMC)はパラメータの勾配を利用して, 効率的にMCMCサ…

ハミルトニアンモンテカルロ法の実装

はじめに 今までなんとなくStanなどを使ってMCMCをやっていた。 ギブスサンプリングぐらいなら昔勉強したけど、ハミルトニアンモンテカルロや、ましてやNUTSなどは何をやっているのかあまり理解していなかった。 基礎からのベイズ統計学という本を読んで、ハ…

pytorchでgmmの最尤推定

はじめに 今まではKerasを使っていたけど、最近になってpytorchを覚えようとしている。 “Define by Run"と"Define and Run"の違いとかはよくわかっていないのでそのへんは適当。 普通にtutorialだけやっていると、 “なんとかネットワークは作れるけど、自分…

関係データ学習の実装 PythonでStochastic Block Modelの実装

概要 関係データ学習を見ながらpythonでSBMの実装をした。 Twitterのフォローフォロワー関係データに適用して、それっぽい結果を得た。 はてなの数式がいまいちわからないので、外部でレンダリングをしていて表示が遅い。 はじめに ksknw.hatenablog.com 以…

DTW (動的時間伸縮法)の実装

概要 自分の勉強のために、Dynamic Time Warpingを実装した。 正弦波データでいろいろプロットした後、気温のデータに適用した。 たぶんバグってないと思う。 はじめに 時系列データの類似度(距離)を計算するとき、単純には例えば各時刻での二乗誤差の平均な…

numpyのarrayとmatrixの書き方の違い

はじめに 環境 ベクトルと行列ベクトル トレース,行列式と逆行列 ベクトルの内積 行列とベクトルの積 行列の積 要素ごとの積 (アダマール積) ベクトルから行列 (テンソル積 ?) その他,関係ありそうだけど使ってない関数 おわりに はじめに numpyの行列関連…

関係データ学習の実装 MovieLensの行列分解

概要 関係データ学習の後半のうち,行列分解を実装した. lossが下がっているので,たぶん合っていると思うが,分解したあとのベクトルを見るとよくわからない. はじめに 以前こんなものをやった. ksknw.hatenablog.com 前半部分は終わったので(SBMのこと…

EmacsでPythonとTeXとMarkdownを書いてる動画と使ってるパッケージ

はじめに 今年は頑張ってアウトプットを増やすことを目標にした。 とはいえ、特に書くこともなかったので、Emacsについて書く。 正月やることがなかったので、またEmacsの設定を見なおした。 Emacs Rocksという動画に触発されて、動画で説明することにした。…