初学者の統計学習ノート統計学およびR、Pythonでのプログラミングの勉強の過程をメモっていくノート。研究でTransformerを使いたいので(去年ちょっと実際に使いましたが)、基本から勉強しようと思い、先日自分でTransformerに英日翻訳を学習させてみたのですが(エントリ1・エントリ2)、GPUを複数枚並列で動かせる環境を手に入れたので、コーパスとモデルを少し大きくしてみました。対訳ペア数は、128万から175万へ(Wikimatrixという新しいコーパスを追加)。Transformerのブロック数を、両側3層から両側6層へ。Encodingの語彙数を、3万から2万に減らしました。新しい環境では3万でやるとクラッシュして動かなかったためです。Need論文では、確か英独翻訳が数百万、英仏翻訳で数千万の対訳ペアが使われているのに対して、BPEの語彙数は3万ちょい(多言語横断でこのサイズ)だったと思うので、2万でも十分だとは思っています。BPEの語彙数はイメージより少なくて大丈夫だよというのは、よく言われているようです。Transformerブロックを2倍にしたけど語彙数を小さくしたので、パラメータ数はあまり変わりません(前回が6900万、今回が7100万)。50エポックまで学習させました。途中でGPUを4枚から8枚に増やしたら、グラフのとおりなぜか訓練誤差が跳ね上がったのですが、ちょうど2倍なので、どこかで平均か何かをとる操作が間違ってる気がします。検証誤差は下がっているので気にしないことにしましたw以下が、前回と今回の機械翻訳の結果の比較ですが、大差はないという感じです(笑)やはりコーパスをデカくしないとだめなのかも知れません。Jobs)【前回】時間は限られているので、他人の人生を浪費しないでください。【今回】時間が限られているので、他人の人生を無駄にしないでください(スティーブ・ジョブズ)。(拙訳:君たちの時間は限られている。他人の人生を生きるようなことをしてそれを無駄にするな。Jr)【前回】私は4人の小さな子供たちが、いつか、自分の肌の色ではなく、その性格の特徴によって判断されない国家に住む夢を持っています。【今回】わたしには、ある日、わたしの4人の小さな子供が、肌の色ではなく、その性格の色によって判断されるであろう国に住んでいるという夢があります(マーティン・ルーサー・キングジュニア)(拙訳:私には夢がある。私の4人の子供たちがいつの日か、肌の色ではなく彼らの人格によって判断される国に暮らせるようになるという夢が。Trump)【前回】偽のニュースです!【今回】ばかばかしいニュースだ!(ドナルド・トランプ)。Lennon)【前回】夢想家だって言うかもしれないけど、私だけじゃない。いつか、ぼくらと合流してくれるといいんだけど。世界は、ひとつのものになる。【今回】夢想家だと言うかもしれません。私はただ一人ではありません。いつかあなたたちが仲間になるといいですね。世界は1つになるでしょう。(ジョン・レノン)(拙訳:夢想家だと君は言うかもしれないけれど、僕は一人じゃない。いつか君も一緒になれれば。Chesterton)【前回】狂人は理性を失った人間ではない。狂人は、理性以外はすべてを失った男だ。【今回】狂人は理性を失った人間ではない。狂人は理性以外のすべてを失った男である(G.K.チェスタトン)。(安西徹雄訳:狂人とは理性を失った人のことではない。狂人とは、理性以外のあらゆる物を失った人のことである。Whitehead)【前回】ヨーロッパ哲学伝統の最も安全な一般的な特徴は、それがプラトンへの一連の脚注から構成されていることです。【今回】ヨーロッパの哲学的伝統の最も安全な一般的な特徴は、プラトンへの一連の脚注から成り立っていることである(A.N.ホワイトヘッド)。(拙訳:ヨーロッパ哲学の伝統について間違いなく言えるのは、その全てが、プラトン哲学へのひと続きの注釈に過ぎないということである。閉ざされたのかもしれないが、しかし、創造的自立は証明されていない(アインシュタイン)(拙訳:暴力が、問題を手っ取り早く片付けるのに役立つことはある。暴力それ自身が創造的であったことは一度もない。/アインシュタイン)キング牧師の文章を、「肌の色では判断されない」が「人格で判断される」という対比で訳すのがなかなか成功しないのですが、今回その点は出来ています。「性格の色」という訳は変なのですが、前回はこのbutの対比が1度も正しく訳せなかったので、すこしは進歩したのかも知れません。さっき気づいたのですが、英文のJrのところにピリオドが抜けているので補ってJr.としてみたところ、訳文がまたおかしくなったので、これはたまたま訳せただけで、まだまだ安定してないです(笑)まぁそれにしても、訳が正しいかどうかはともかく、この程度の規模の学習でも文法的に整った文がちゃんと生成されるという点で、Transformerはやはりすごいと思えますが。ちなみにDeepLは完璧に訳してくれます。私の4人の小さな子供たちが、いつの日か肌の色で判断されるのではなく、人格の中身で判断されるような国に住むことを夢見ている。(キング牧師)なお、学習途中のモデルの性能を観察してみると、ある程度学習が進んだあとは、「この文はうまく訳せるようになったけど、こっちはむしろだめになった」みたいなことの繰り返しなので、もっと早めに打ち切ってもあまり変わらない気はしますね。今回はどちらかというと、GPUを並列化した学習のテストのつもりだったので、後日、コーパスを400万件ぐらいに増やしてリトライするつもりです。R、Pythonの勉強の過程をメモっていくノートです。初心者なのであまり信用なさらぬよう。間違いについてはコメント等でご指摘頂ければ幸いです。6つぶやき@statsbeginnerさんのツイートはてなブログをはじめよう!midnightseminarさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。