遺伝的プログラミング(とその他黒魔術)で最高にえっちでエシカルな画像生成モデルを作ろう
知っているとは思う某社会実験の二番煎じです。
アベンジャーズエンドゲームを見ながら作りました。
使用技術はPythonです。(迫真)

どうかあなたのエロが見つかりますように。(アンジェラ並感)
モデルの構造
主にはサイトとGithubに書いてある通りですが、まずノードとなる関数をFFTや畳み込み、行列積やアフィン変換、ソートなどをはじめとする線形代数や画像処理の有名なもの167通りに大きく増やしてあります。(通常は四則演算, Sin, Cosなどのみに限られる)
そして遺伝的プログラミングで有名な木構造を進化させる構造は画像処理など高次元のSpatialなタスクにおいてあまり効率的ではなかったので、単純な「過去の自分の出力n番目とm番目を参照する」「その際にl番目の関数を使う」というものの整数(のタプル)の1次元配列にしております。
同時に、その出力を過去の自分の出力n番目と重み付き平均を取る、というものも用意しています。その重みも同様に遺伝子として扱います。
それらの合計4つ組みのタプルを訓練することとなります。
モデルサイズは300000です。なので最大で300000回の関数を使えることになります。
そして投票に基づいたイロレーティングでモデルを淘汰して、上位12体をそれぞれ12*12=144通り交叉して新たなモデルを作り出します。それを繰り返します
また極めて確率の低い突然変異として一部領域を切り出して左右に移動させるやつ・上下に移動させるやつ(整数を足し引き)・差分進化的なやつ(a+b-c)・そのフーリエ版(ifft(fft(a)*fft(b)/fft(c)))などを用意しています。
あと民意に基づいてDiscriminator訓練してGAN的なことやる仕組みも後で用意します。
なぜこのようなモデルなのか
なぜこのようなモデルなのか、説得力はあるのか、という話ですが実はこれ、裏で1ヶ月ほど同じモデルをMNIST、STL-10、ImageNetの縮小版などの分類タスクでぶん回してまして。
どうせこう主張したところでエビデンスがないのでアレですが(論文書きたくない)、それぞれ99%、82.7%、62%以上の分類精度を達成してます。学習済みモデルですが保存し忘れてどっか行きました。また訓練するのめんどいので公開しません
とにかく!!!
私はTransformerが嫌いです。
私は昔からTransformerやAttention機構が大嫌いだったので、MLP-mixerなど他のアプローチを探求したがっていました。
しかしどれもこれも身を結ばず、AttentionはAll You Needとされる一方。
これではどうしようもないのでこのような実験を行う次第です。
以上
ご清覧いただきありがとうございました
アンプル飲め
Discussion