まぃふぇいばりっと

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

テンソル分解

Julia 言語 Ket Augumentation (KA)

行列をreshapeしてテンソルにすることあるじゃないですか.いろいろな reshape が定義できますが,ビジョン系の研究するときは,Ket Augumentation という reshape をすることがよくあるっぽいです. この論文の第五章を読んで,KA実装しました. https://dl…

Julia 言語 タッカーランクが低いランダムテンソルを生成する

ランダムな低ランクテンソルが欲しいときってありますよね. テンソルのランクっていろいろありますが,とりあえずタッカーランクがひくいランダムテンソルを手に入れるコードをかきました. もっとよい方法があったら知りたいです. using LinearAlgebra us…

Julia 言語 TensorToolbox で CP 分解して,再構成する.

Julia の TensorToolbox を使うと気軽に CP 分解ができます. github.com 例えば,ランダムな4×4×4×4テンソルXをCP分解するなら using TensorToolbox X = rand(4,4,4,4) F = cp_als(X, 3) でOKです.ここで,ターゲットランクは3にしました.これで,F.lambd…

Julia言語 Non-Negative Tucker Decomposition の実装 [完全版] LSエラー, KLエラー

昨日の記事の完全版.Nonnegative Tucker Decomposition の Julia 実装. 重要なアルゴリズムと思うけど,Julia版は探しても見つからなかったので,自分で書いた. ieeexplore.ieee.org Python版はすでに実装があるみたい.これはSVDで初期化しているっぽい…

Julia言語 Non-Negative Tucker Decomposition の実装 [LSエラー版]

↓ こっちのほうが役に立つと思う genkaiphd.hatenablog.com ↑ こっちのほうが役に立つと思う 研究に必要なので,非負テンソルのタッカー分解の論文をjuliaで実装した.とりあえず,コスト関数がLSエラーのものを実装した.KLダイバージェンスの場合について…

Julia言語 非負テンソルをKL情報量でCP分解.CP-APRによる低ランク近似の実装

研究に必要だったので,Julia言語でこの論文のアルゴリズム3を実装した.「KL情報量でCP分解しましょう」って話だけど,中身はポアソン分布とかいろいろ書いてあってちゃんと読んでないから分からん.とりあえず非負のテンソルCP分解の手法の一つ. arxiv.or…

Julia言語 L1ノルムでのテンソルランク1近似の解析解

3階のテンソルをL1ノルムの尺度で近似するランク1テンソルを見つけます,という論文を実装した.論文のタイトルにexact solutionがあるけど,L1ノルムの意味での最良1ランク近似をしてるわけではないので注意(かなり混乱した). arxiv.org 最近,L1が流…