『Attention Is All You Need』
Dot Product Attention
あれ
950世代学習させたが全然良くなってない。学習データに対する適応度は高まっているが、検証データに対する適応度が全然高くなっていない。つまり汎化性能が高くなっていないのだ。過学習してしまった可能性がある。あるいはモデルの性能に対して学習データ量が足りていない。いよいよWikipediaのデータを学習させるときが来た。ということか。
ちょこちょこ触って文章の類似度を出させてみているが、末尾の「だ、である」調と「です、ます」調によって結果が大きく異なってくる。例えば、「今日のご飯は焼肉だ」と「今日のご飯は焼肉です」は類似度が低いと判定される。おい。
いや~~~、再帰的構造でもって文章を先頭から末尾まで読み込む関係上、「文章の末尾」に引きずられてしまうらしい。
つまるところ、下記のような構造になっている。したがって、現時点での文章ベクトルを次の時点の入力としている。
正直、こいつはあまりイケてないっぽい。「再帰的入力のベクトル長を長くする」「Attention的な仕組みを取り入れる(よくわかってない)」「文章の末尾でEOF相当の値を入力する」「畳み込み積分的に計算する」「全tokenAとtokenBの組み合わせからEmbeddingを計算して平均を取る」などが考えられる。
あれ
遺伝的プログラミングで文章の類似度を学習させるの、CPUで一から学習させるには計算量が全然足りない。GPGPUで学習させたいが、再起的な構造と処理によって文章を処理しているために、GPGPUとは相性が悪い。構造から手をつけるべきか。
Transformerを参考にすると良さそうだが、あれを理解するのに手間取っている。さらに言えばAttentionも理解できていない。あり物のモデルを使ったり学習させるだけなら理解は不要だが、遺伝的プログラミングに組み込もうとすると十分に理解する必要がある。
普通の言語モデルも一から学習させると相応に時間がかかるだろうし、一晩で学習が進まないのを嘆くのは気が早すぎるかもしれない。私の投稿を学習データ化した物でさえ、一晩でやっと一巡できる程度だ。Wikipediaも学習データに含み出すととんでもない時間がかかる。