見出し画像

CLIP Text Deprojectorを使って画像生成してみる ~レイヤー数を増やす~

前回まで、LSTMの内部次元数を増やす実験をしてきましたが、今回は内部次元数を一定にして、LSTMを含むネットワークを多層化して比較します。

前回の記事

他のStable Diffusionの関連記事

Layered Diffusion Pipelineを使うためのリンク集


ネットワークの多層化

今回、ネットワークを多層化するにあたっては、LSTMモジュールのみの多層化ではなく、その後の線形変換などを含めた全体を多層化する形を取ります。

2層化したネットワーク

上図は、2層化したネットワークの簡略化した模式図です。入力embeddingは各レイヤーで直接入力されますが、再帰的な入力は2層目以降は前の層の出力を入力として受け取る形になります。

この構成は、encoder-decoder型のtransformerのdecoderのパターンに類似しています。

レイヤーの数は、2層ないし3層で、学習環境の都合上、パラメータ数に上限を設けてレイヤーの数に上限を設けています。

初期LSTMモデルの多層化

最初に試すのは、以下の記事で扱った最初のバージョンの多層化です。

このバージョンは、入力embeddingの情報の減衰を防ぐ変更も、LSTMの内部次元を増やす変更も行う前のものです。

パラメータ数をモデルファイルのサイズ換算で80MB程度を上限とすると、3層が上限となります。それを元に、以下の順に生成画像を並べました。

  1. Deprojectorなし

  2. レイヤー 1層

  3. レイヤー 2層

  4. レイヤー 3層

使用したプロンプトはこれまでと同様、次の通りです。

単一embedding

  • cat maid (猫耳メイド)

  • 1girl red hair blue eye black skirt(赤髪 青目 黒スカート)

  • 1boy 1girl in class room(少年 少女 教室)

複数embeddingの合成

  • cat, maid (猫 メイド)

  • 1girl, red hair, blue eye, black skirt (赤髪 青目 黒スカート)

  • 1boy, 1girl, in class room (少年 少女 教室)

単一embedding
複数embeddingの合成

拡大して細部を比較すると、1層から2層への拡張は画像のノイズがはっきりと減少していますが、2層から3層への拡張における改善はあまり際立っていないようです。

情報減衰を防ぐモデルの多層化

次に、以下の記事の前半で取り扱った、入力embeddingの情報の減衰を防ぐ変更を入れたモデルを多層化しました。

この記事で試したモデルの内、最も生成画像の質が良かった「入力を加算し、残差を出力のみに含む」モデルのみを多層化しています。

前節と同様に、パラメータ数をモデルファイルのサイズ換算で80MB程度を上限とすると3層が上限となり、同様にして以下の順に生成画像を並べました。

  1. Deprojectorなし

  2. レイヤー 1層

  3. レイヤー 2層

  4. レイヤー 3層

単一embedding
複数embedingの合成

このモデルの場合、多層化による生成画像のノイズの改善は見られず、むしろ部分的に悪化しているという結果となりました。

内部次元数を増やすモデルの多層化

最後に試したのは、次の記事の後半で試した内部次元数を増やすモデルの多層化です。

この記事で試したモデルの内、最も結果の良かった「線形変換後に残差接続を繋げる」モデルのみで実験をしています。

このモデルでは、内部次元数を増やすことができるため、パラメータ数上限のモデルファイルのサイズ換算で80MB程度を考え、次の設定のモデルで生成画像を並べました。

  1. Deprojectorなし

  2. 内部次元 1倍。レイヤー 1層

  3. 内部次元 1.25倍。レイヤー 1層

  4. 内部次元 1倍。レイヤー 2層

  5. 内部次元 1.25倍。レイヤー 2層

単一embedding
複数embedddingの合成

レイヤー数が1層から2層に拡大する変更と、内部次元が1倍から1.25倍に拡大する変更の両方が相乗的に生成画像のノイズ低減に効果を与えていることが確認できました。

まとめ

  • LSTMモデルのネットワークの多層化の実験を行いました。

  • モデルのアーキテクチャによって、多層化の恩恵が受けられる場合と受けられない場合がありました。

    • 初期LSTMモデル:2層が最適(3層は変化なし)

    • 情報減衰防止:1層が最適(2層以上は悪化)

    • 内部次元数増加:2層&内部次元1.25倍が最適(3層は確認せず)

この記事が気に入ったらサポートをしてみませんか?