はじめに 最適輸送の理論とアルゴリズムを買って読みました。 Computational Optimal Transportも7割ぐらい読んでたのですが、やっぱり日本語でこういう本があるといいですね。 本の内容のなかでtree-sliced Wassersteinが気になったので、理解のために実装…
はじめに この論文を読んでおもしろいなと思ったので実装して試してみる。 ここではイントロは飛ばしてやり方の説明だけ。 論文の基本的なアイディアは1次元の最適輸送問題をSinkhornで解いて、得られた輸送計画からソートの結果を推定するという感じ Prelim…
はじめに 最近,最適輸送を覚えてちょいちょい使っています. 特にSinkhorn iterationを用いることで,行列計算だけで最適輸送距離をだいたい計算でき,さらに自動微分で勾配が求まるため,色々な問題のロス関数として最適輸送を使うことができます. ところ…
はじめに 2つの時系列データを比較し,それらの間の遠さを知る方法として,Dynamic Time Warping (DTW)があります. DTWは,2つの時系列データの各フレームを対応付けることによって定義されます. このとき,対応付けは「対応付けられたフレーム間の距離が…
はじめに たまに,特定のタスクのために変なアノテーターを作りたいときがある. 慣れているので,pythonでやりたい. これまでこういうときは,opencvを使って作っていたが,最近,matplotlibを使っても同じようなことができると知ったので,調べて使ってみ…
はじめに 以前,2つの時系列データの距離的なものを測るアルゴリズムであるDTWについて,以下のようなものを書きました. ksknw.hatenablog.com DTWはいい感じのアルゴリズムですが,時系列データの全体と全体を対応付けるので,短いパターンを長い時系列デ…
はじめに ポイントクラウドデータをいい感じに可視化したい. matplotlibでも3次元データのscatterを描くことができるが,以下のような感じでいまいちな見た目になってしまう. もうちょっといい感じの図が描きたい.たとえはこんな感じのやつ. 調べてみる…
はじめに 研究をやっていると 査読対応のために実験を追加したいが,環境をいじってしまっている 既存手法を実行するために,tensorflowの特定のバージョンを使いたい.それに伴って特定のバージョンのcudaをインストールしなければならない みたいなことが…
はじめに ガウス過程と機械学習を読んだ. この記事では自分の理解のために,ガウス過程を実装する. notebookはこっちにある. github.com 今のところの理解では,$N_1$個の入力と出力のペア$(x_1^{(1)}, y_1^{(1)}),\dots ,(x_{1}^{(N_1)}, y_{1}^{(N_1)})…
はじめに 多変量データは実世界の様々なところで現れる(e.g., 画像、音声、動画).これらの多変量データの多くは、データ自体がもつ次元 (e.g., ピクセル数)よりも小さい次元(自然画像の多様体的なやつ)で表現することができる. データから低次元の構造(低…
はじめに 「情報幾何学の新展開」という本を読んでいる. まだ序盤しか読めてない上に,あまり理解できていないが,自分の理解のために,例として1次元ガウス分布を対象として,以下の導出とプロットをやる. 指数型分布族の標準形および双対座標系 ポテンシ…
機械学習とかやっていると複数のパラメータを,コマンドラインから設定したいことがある. 割といい感じにできるようになった気がするので,備忘録として書いておく. コマンドラインパーサとしてclickを使う. clickについては,こちらが詳しくていい感じだ…
はじめに 統計的因果探索を読んでいる. この中で,独立成分分析が出てくるが,そういえばあんまり理解できていなかったので,実装して理解する. 日本語の本も見たけど,結局 Independent Component Analysis: Algorithms and Applicationsがわかりやすかっ…
概要 リーマン多様体上での最適化のお勉強をしている. 多様体上での最適化では接空間上での勾配を求めたり,多様体上へレトラクションしたりする. 例として球面上で,自明な最適化とレイリー商(対称行列の固有ベクトルを求める)をやる. レイリー商から複…
この記事はJulia Advent Calendar 2017の17日目の記事です. 普段はpythonばかり書いていて,juliaは最近文法覚えてきたかなレベルなので色々許してください. コードの全体はここにあります. github.com 概要 この記事では擬似コードや数式を可能な限りそ…
はじめに pytorchの練習も兼ねて,Canonical Correlation Analysis (正準相関分析)をpytorchを使って実装する. 本当は分散共分散行列からなる行列の一般化固有値問題を解くが,今回は勾配法で解を求める. pytorchのプログラムが間違っていないことを確認す…
概要 Atomic ChromeでEmacsからブラウザのテキストボタンを操作しつつ,textlintをflycheckからよんで文章を校正する. flymdでMarkdownのリアルタイムプレビューもする. こんな感じになる. はじめに ブラウザのテキストボックスに文字を打ち込むのが面倒…
はじめに 定期的に生成系のタスクで遊びたくなる. 今回はCycle GANを使って、普通の木を満開の桜に変換してみることにした。 Cycle GAN 論文はこれ. 中身についてはたくさん解説記事があるので、そちらを参考。 Cycle GANでは2つのドメインの間の写像を学…
はじめに 前回 ハミルトニアンモンテカルロ法の実装をやった. 今回は No U-Turn Sampler (NUTS)の実装をやる. 論文を参考にした. コードはここにもある github.com NUTS ハミルトニアンモンテカルロ (HMC)はパラメータの勾配を利用して, 効率的にMCMCサ…
はじめに 今までなんとなくStanなどを使ってMCMCをやっていた。 ギブスサンプリングぐらいなら昔勉強したけど、ハミルトニアンモンテカルロや、ましてやNUTSなどは何をやっているのかあまり理解していなかった。 基礎からのベイズ統計学という本を読んで、ハ…
はじめに 今まではKerasを使っていたけど、最近になってpytorchを覚えようとしている。 “Define by Run"と"Define and Run"の違いとかはよくわかっていないのでそのへんは適当。 普通にtutorialだけやっていると、 “なんとかネットワークは作れるけど、自分…
概要 関係データ学習を見ながらpythonでSBMの実装をした。 Twitterのフォローフォロワー関係データに適用して、それっぽい結果を得た。 はてなの数式がいまいちわからないので、外部でレンダリングをしていて表示が遅い。 はじめに ksknw.hatenablog.com 以…
概要 自分の勉強のために、Dynamic Time Warpingを実装した。 正弦波データでいろいろプロットした後、気温のデータに適用した。 たぶんバグってないと思う。 はじめに 時系列データの類似度(距離)を計算するとき、単純には例えば各時刻での二乗誤差の平均な…
はじめに 環境 ベクトルと行列ベクトル トレース,行列式と逆行列 ベクトルの内積 行列とベクトルの積 行列の積 要素ごとの積 (アダマール積) ベクトルから行列 (テンソル積 ?) その他,関係ありそうだけど使ってない関数 おわりに はじめに numpyの行列関連…
概要 関係データ学習の後半のうち,行列分解を実装した. lossが下がっているので,たぶん合っていると思うが,分解したあとのベクトルを見るとよくわからない. はじめに 以前こんなものをやった. ksknw.hatenablog.com 前半部分は終わったので(SBMのこと…
はじめに 今年は頑張ってアウトプットを増やすことを目標にした。 とはいえ、特に書くこともなかったので、Emacsについて書く。 正月やることがなかったので、またEmacsの設定を見なおした。 Emacs Rocksという動画に触発されて、動画で説明することにした。…
概要 関係データ学習の学習のために,自分で実装して理解する. ツイッターのフォローフォロワー関係を使って,グラフラプラシアンを求めスペクトルクラスタリングを行った. その結果,なんとなくクラスタリングできた. また,確率的ブロックモデルによる…
はじめに この記事は Stan Advent Calendar 2016のn日目の記事ではありません。 21日目の記事です。 話題のアヒル本(言われるまで何がアヒルなのかわからなかった)を読んだ。 statmodeling.hatenablog.com Stanの文法を知るために買ったけれど、全体的に統計…
回転できる3Dプロット スライドバーつき もっと綺麗なグラフを描く 参考 昔、Emacsから使えないからjupyter notebookは使わないという旨の記事を書いた。 実際まだ、Emacsからは使えていないけど、最近はだいたいのコードをEmacs+pythonで書いて、実行やグラ…
はじめに 日本語配列のキーボードには変換、無変換とかカナとかほぼ使わないキーがいくつかある。 これらのキーは親指のホームポジションあたりにあるので、Altなどのよく使うキーに置き換えて有効活用することにした。 入れ替えたキーは以下 無変換->全角半…