スケジューラを変えることで対策しました。背景が描写されない問題の解決を目指します。背景が単色となったり、あまり詳細に描写されなかったり背景が上手く描写されませんでした。透過画像を貼り付けたほうが良いので、画像生成AIの意味がありません。今回はこれを解消しようと思います。セイルくんが過学習?今まではセイルくんをうまく表示できれば良かったので、セイルくん一枚をとにかく頑張って学習せよ、ということで背景なしのセイルくん画像を学習させていました。あまりにも背景がないセイルくんの絵ばかり学習させるので、「学習する前は背景も書いてたんだけど、とにかくセイルくんだけそっくりに掛けばよいのね」と、判断されてしまい、背景の要素はどんどん埋もれていってしまいました。このような特定の学習のみを繰り返し行い過ぎた結果、同じような絵しか出なくなってしまう状況を「過学習」といいます。overfitting)とは?機械学習を行う際に、必ず登場する用語で、モデルが最適以上の学習を行った場合に「必要以上に」「学習データに」寄ってしまい、「実際に利用とされるシーンでの利用がうまくいかなくなる」事象の事をいいます。モデルが過学習状態になると、学習データの入力時には期待する出力を行う確率が増ええますが、学習していない試験データを入力した際には期待する出力を行なわなくなる率が増えてしまいます。今回の場合は、「背景も出してほしいんだけど、セイルくんしか出ない」という過学習状態になっています。過学習に対する対策はいくつかあります。アンサンブル学習を行うどれも行えば良いというわけではなく、モデルや行いたい学習の方向性などでも変わってきますので、自分の目的にあった対策を行う必要があります。学習の早期打ち切り学習の早期打ち切り、とは、その名前の通り過学習になる前に学習を打ち切って終了することにより、過学習を防ぎます。一般的に同じ訓練データを利用して学習を続ける場合、直接の学習対象となっている訓練データを利用することに対するエラー率はどんどん低くなっていきます。それ以外のデータとして用意されている試験データによる試験では、ある一定以上は学習を進めても試験データに対するエラー率は下がるどころか逆に上がっていってしまいます。この上がっていってしまった状態を「過学習」と呼んでいます。機械学習において訓練回数を増やした場合の訓練データ及び訓練データのエラー率この図で言うと、★のあたりが試験データのエラー率が最低になっているポイントですので、このあたりで学習を打ち切ることで過学習を防ぎます。セイルくん学習の例でいうと、セイルくんはだんだんうまく出力できる状況になってくるけど、背景画像が出力できなくなる前に学習を止める、ということになります。今回の場合、セイルくんがきっちり出力できるようになるまで学習した場合、どうしても過学習、つまり★よりも右の位置まで学習する必要があるため、残念ながらこの方法は使えません。アンサンブル学習を行うアンサンブル学習、とは、別々に学習をおこなったモデルを結合たり、平均をとったりして、モデルの多数決のような形をとることで全体的に良い学習にしよう、という方式です。1つ1つの学習結果はあまり期待通りではなくても、多数決により良さを引き出すイメージでしょうか。セイルくん学習の場合、なにか別のセイルくん学習結果をつくることができればそれを結合したり平均値をとったりできるとおもうのですが、現状は1データしかないのでなかなか難しいところです。正則化により過学習を抑える正則化という用語を調べてみると、難しいシグマを使った計算式のようなものが出てきてしまいます。これらを画像生成AIをちょこっと利用するだけの初学者が完全に理解するのは難しいです。その為、ここでは考え方だけを利用することにします。L1正則化と、L2正則化があり、L1正則化というのは、一言で言えば「余計なパラメータを排除する」ということになります。画像生成AIの機械学習についていえば、1枚の画像から1つの単語に対してしか紐づけないようにすることになります。いうタグを付けていますが、これ以上削るとなるとなかなか厳しそうです。L2正則化は逆に「飛び抜けて大きくなってしまったパラメータを弱くする」ので、セイルくんだけを学習させずに、出したい別のものも同時に学習することによってセイルくんだけが飛び抜けて学習されてしまい、セイルくんしか出力できないという状況を回避します。といつもセットなのね」という学習をしてしまった可能性があります。関係の切り崩しを狙います。画像ではだめなんだろう、ということで、セイルくんがいろいろなところを背景に歩いている絵を合成しました。元絵となる背景は、SDXL標準のモデルから生成したものを使用して、フォトレタッチソフトでひたすら背景として合成して出力しました。行ったようにキャプションとしてタグを付けるのですが、流石に100枚ともなるとタグ付けも大変です。ツールを使ってタグ付けを行いました。タグ付けの機能を利用して行いました。ことなら何でもできる素晴らしいツールです。生成はもちろん、学習に関する機能まであります。streetというタグがつけられました。つのタグに学習が集中することを回避することが目的なので、よほどおかしなタグ以外はそのままにしておきました。160回繰り返し学習するようにしていました。起動して、第1回のときと同様にパラメータを設定してゆきます。パラメータこれで学習を開始します。2枚になっていますのでそこは気にしないようにしてあげてください。セイルくんがちょっと白っぽかったりしますが、問題点だった背景が真っ白だったり、単調だったりする点はバッチリ解消されています。対応について検討しました。過学習となってしまった問題を元絵のバリエーションを付けることで防止しました。次回は、課題3)セイルくんは固定表示の為、わざわざ画像生成する必要がない(セイルくんにバリエーションがない)に取り組んでいこうと思います。それでは今回はこれまで。