勾配降下党青年局

万国のグラーディエントよ、降下せよ!

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

Euler vs DDIM

ComfyUI上でDDIMの実装が見たくて探していたのですが、こんな感じでした。あれ・・・Eulerを呼び出してるだけ・・・?というわけで確認していきます。以下の記事を前提とする。 さんぷらーについて - 勾配降下党青年局 DDIMのデフォルト設定()のとき時刻の更…

LyCORISのアルゴリズムまとめ

なんか色々増えてきたのでまとめるよ。りこりこ LoRA LoRAは行列に対して、差分を学習します。このとき、という二つの行列でとすることで、学習対象のパラメータを大幅に削減します。1層目をdown層、2層目をup層と呼びます。学習時は入力に対して、出力をと…

時刻をスキップするときの拡散過程

拡散モデルで定義される、データからノイズを加えていく拡散過程は以下のように定義されています。 ここで時刻の状態を一気にサンプリングできて、 となります。この証明ですが、大抵の場合から始まる帰納法もしくはでごまかすやつを使って証明します。どっ…

さんぷらーについて

各サンプラーの意味とかがなんとなく分かりたくて書いたものです。SDEやODEの導出に関する話はでてきません(分からんし)。 拡散過程の定義 サンプラーによって使われている文字の意味が違うので、ここでは文字をあわせていいきたいと思います。そのため論…

LoRA学習の効率化法?

LoRA学習を効率化できるかもしれない方法を考えたので説明していきます。簡単に言うと従来はLoRAをdown層とup層に分けて二層を順次計算していましたが、down層とup層を合体して、さらに元の重みにマージしてから計算した方が効率が良くなるかもしれませんと…

LoHAでbackwardを定義する理由

LoHAとはアダマール積を使ったLoRAの応用手法です。琥珀青葉(KohakuBlueleaf)さんによってStable-diffusionで実装されました。LoHAの実装ではbackwardが定義されています。Pytorchでは特殊な関数を使わない限りbackwardを定義することはありません。しかしLo…

SD XLの損失関数について確認

SD XLの実装において、損失計算のアルゴリズムが異なり困惑したので、確認してみます。最終的には今までの損失と同値になることが分かりました。 時刻の潜在変数を、ノイズを、UNetをとします。diffusion modelでは、拡散過程tステップは以下のようにあらわ…

Adafactorについて

今回はなぞのおぷてぃまいざーであるAdafactorについて論文の内容を見ていきます。 arxiv.org 概要 AdafactorはAdamを元にした最適化アルゴリズムで、メモリ容量の削減とパラメータスケールに応じた学習率の調整を行う手法です。勾配の二乗指数平均をランク1…

DDSP-SVCについて

こんかいはー、DDSP-SVCがどんな感じか見てみたのでメモしておきます。RVCに対するメリットデメリットなども考察していきます。 実装は以下を参考にしました。 github.com 全体像 DDSP-SVCは拡散モデルベースの音声変換モデルです。HuBERT特徴量・基本周波数…

RVCについて

音声変換手法の一つであるRVC(Retrieval-based-Voice-Conversion)について、色々な情報と実装を流し見して何をやっているか想像してみました。想像なのであっているかどうかはわかりません。RVCの元になっているVITSの元になっているVAEから説明していきます…

LoRAのための特異値分解

特異値分解を解説する記事なんていくらでもありますが、LoRAに関連付けて話す記事なんてないと思うので、ここで書いてみます。まあ自分が特異値分解を理解するためでもあります。行列の右上カッコつき添え字に行数と列数を書きます。 参考記事: yutomiyatak…

noise_predictionモデルとv_predictionモデルの損失

Stable-Diffusionのv1系は画像に加わったノイズを予測するモデルですが、v2の一部はvelocityというものを予測しています。この2つは損失関数が違うのでlossで比べられません。経験的にv_predictionモデルの方が3倍くらいlossが大きくなるイメージですが、数…

ネガティブプロンプトの理論とPerp-Neg

ネガティブプロンプトに関する面白そうな論文を見つけたので、ちょっと読んでみますが、その前にネガティブプロンプトの理論的な背景について自分なりの解釈でまとめてみます。 arxiv.org いきなりですが、拡散モデルはスコアベースモデルと解釈できて、ノイ…

クロネッカー積のランク

LyCORISのlokrで使われる、クロネッカー積とランクの関係が気になったので、検索してみたのですが、 日本語の記事は全く見つからずよく分からない英語の情報だけ見つかったので、その証明を確認してみます。 math.stackexchange.comクロネッカー積とは行列に…

VITS学習メモ

このメモは以下の記事をある程度読んだ上で、自分が戸惑ったところなどを補完するためのものです。私以外が読んで理解の助けになるのかよく分かりません。そもそも間違っているかもしれません。書いてみると理解できていないところがよく分かっていいですね…

ResNet vs Vision Transformer vs MLP-Mixer in おせろ

画像認識系ディープラーニング界隈を盛り上げる三英傑を、オセロで比較してみました。実装は一応貼っておくけど・・・Python3.8が必要です。 GitHub - laksjdjf/DeepReversi: 趣味で作った深層オセロAI モデル構造 全てのモデルがオセロの盤面(白黒の2チャ…

GPT2にアストルフォのdanbooruタグ付けをファインチューニングしてみた

text2imgによる画像生成について、textの方もAI任せにしてーと思っていたのでGPT2にプロンプトを自動生成させるのをやってみます。 以下をぱくっただけです。 github.comnote.com できたモデル furusu/astolfo_prompt_generater · Hugging Face 説明 私が個…