見出し画像

CLIP Text Deprojectorを使って画像生成してみる ~再帰的な入力でLSTMを学習する~

前回、LSTMモデルを導入しましたが、学習手法はTransformerベースのVTモデルと同様でした。今回は、LSTMの特性を利用し、再帰的な入力を用いた学習を試してみます。

前回の記事

他のStable Diffusionの関連記事

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


LSTMモデルの再帰的入力

前回のLSTMモデルの学習時、系列入力(x)の値を学習データから得ていました。これは、Transformerベースのモデルの学習手法と同じものですが、LSTMの場合はAttention機構がなく、各位置の計算が分離しているため、直前の位置の結果を次の位置の計算に渡すことが容易です。

再帰的入力

上図はLSTMモデルの模式図ですが、前回の学習では[1]の部分で学習データからの系列データを渡していました。今回の学習では、代わりに直前の位置の実際の出力を渡すようにします。

区別のため、この記事では、前者の方式を「一括入力」、後者の方式を「再帰的入力」と呼ぶことにします。

再帰的入力を用いた学習のメリットは、これが実際の推論時の計算方法と同じ方法なので、学習時と推論時の差がなくなるという点にあります。

実験方法

実験には、2種類の手法を試します。1つ目は、前回、一括入力で学習したモデルに対して、再帰的入力を用いて追加学習を行うという方法、2つ目は、最初から再帰的入力で学習をやり直すという方法です。

生成画像は上から

  1. Deprojectorなし

  2. 一括入力(前回の学習結果)

  3. 追加学習 2エポック

  4. 追加学習 4エポック

  5. 再帰的入力でやり直し

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

単一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の合成

線形変換を用いたモデル

これは、前回の線形変換を用いたモデルをそのまま利用しました。

単一embedding
複数embeddingの合成

観察結果

今回生成した画像の範囲では、一括入力と再帰的入力の間で、決め手となるほどの差は観察されませんでした。

まとめ

LSTMモデルで再帰的入力を用いた学習を試しました。しかし、今回の実験の範囲では、学習結果に大きな差は生まれませんでした。

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