まぃふぇいばりっと

機械学習やってます.Julia大好きです.勉強したことの殴り書きです.

Python

Python αダイバージェンスを小さくするNMF

KLダイバージェンスを最小化するNMFはよく知られていますし,sklearnで'beta_loss=1'にすればすぐに利用できます. 今回はKLダイバージェンスの拡張であるαダイバージェンスを小さくするNMFを実装しました. この論文の更新式をさくっと実装しました. www.s…

Python 確率単体上で凸関数を最小化(SciPy)

多変数関数f(x)を確率単体上のxで最適化したい.(最近,情報幾何をやっているので,こういうタスクばかりやってる気がする) つまり,xは 0 < x[i] < 1 かつ sum(x) = 1 の範囲でf(x)の最小化をしたい. ちまちま自分でソルバー書いてたけど,scipy使う方が…

Python SVDによる低ランク近似

PythonでSVDで入力行列Aのランクをrankに落とすプログラム. ちなみに,C++バージョンはこっち. import numpy as np import scipy as sp def SVD(A, rank): u, s, v = np.linalg.svd(A) ur = u[:, :rank] sr = np.matrix(sp.linalg.diagsvd(s[:rank], rank,…

Python Sinkhorn Knopp アルゴリズムを実装した.

非負行列の行和,列和を揃える操作を行うSinkhorn Knoppアルゴリズムをpythonで実装しました.Julia版はこっち. 入力行列Aのi行目の行和がr[i], j列目の列和がc[j]になるようにするアルゴリズムが以下です. Sinkhorn Knoppアルゴリズムは,エントロピー拘…