年末年始いかがお過ごしでしょうか
こんにちは!CTO相澤です。年末年始いかがお過ごしでしょうか?
休暇を使って新しい技術の調査、コーディングをするエンジニアの方も多いのではないでしょうか?
というわけで、相澤も休暇を使ってGAN(敵対的生成ネットワーク; Generative Adversarial Nets)でギャン(GYAN)を生成してみました。
GANでギャン(GYAN)を生成する
ギャンはアニメ「機動戦士ガンダム」に登場する、謀将マ・クベ大佐が乗るおなじみの機体です。菱型の頭部に、西洋の甲冑騎士に似た胴体が特徴的な白兵戦に特化したMSですね。
そして、GANは「この10年の機械学習で最も面白いアイディア」と言われている技術です。現在トレンドということもあり、様々な手法や論文が多く発表されています。
GANにはそれぞれ、ジェネレーター(generator)とディスクリミネイター(discriminator)という2つのネットワークが登場する。ジェネレーターは本物と同じような内容を作り出そうとする一方、ディスクリミネイターはレプリカか本物なのかを識別する役割を担っている。
レプリカを作る方は本物とできるだけ近づけようと努力し、対して識別する方は確実に見分けられるように、互いに競い合う仕組みとなっている。
ディスクリミネイターの識別能力が次第に上がり、本物とレプリカをうまく見分けられるようになったとすると、ジェネレーターは更に本物に近いレプリカを造るようになる。ディスクリミネイターが本物とレプリカを見分けられるようにさらに精度を上げて…と繰り返していくと、最終的には本物と区別が付かないレプリカを製造できるようになるというわけだ。
その中でも、畳み込みニューラルネットワークを使ったDCGAN(Deep Convolutional Generative Adversarial Networks)を使って、ギャンを量産したいと思います。
ひとまず、ギャンの全体像をGANで生成してみた結果、こちらになります。
モビルスーツに見えなくもないですが、学習枚数が足りない、盾(ミサイルが出るんですよ)を持ってる画像とそうでない画像があったりで全体的にごちゃっとした結果になりました。
頭部のみクロップして、学習回数を増やして、もう一度トライします。結果がこちら
赤いモノアイも生成できてる!
代表木村「脚がないな(胴体すらないけど)」
相澤「あんなん飾りです、エライ人にはそれが〜〜〜」
おあとがよろしいようで。
2018年もガンガン行きたいと思います。