Basic deep learning and GAN, merging several inputs

Basic deep learning and GAN, merging several inputs

D56734cc97be195e1356167167eb4b44?s=128

KAORU MITSUMORI

October 14, 2020
Tweet

Transcript

  1. AVILEN https://avilen.co.jp 株式会社AVILEN 三森馨 ディープラーニングによる画像⽣成 と特徴量合成によるモデルの統合

  2. AVILEN ⾃⼰紹介 Pythonを使った Deep learning ⽣成モデルGAN pix2pix cGAN 今回の アーキテクチャ

    ソースコードと ⼯夫点 質問タイムと 宣伝 2 今⽇の流れ
  3. AVILEN ⾃⼰紹介 Pythonを使った Deep learning ⽣成モデルGAN pix2pix cGAN 今回の アーキテクチャ

    ソースコードと ⼯夫点 質問タイムと 宣伝 3 今⽇の流れ
  4. AVILEN 4 プロフィール 三森馨(みつもりかおる) Twitter: @kaorumitsumori 株式会社AVILEN データサイエンティスト 自然言語処理や画像処理の法人開発案件や コンサルティングに従事

    鳥取県の山奥生まれ(幼少期の遊びは猿を水鉄砲で追いかけること) 神戸大医学部 新卒でウェブマーケターとしてキャリアをスタート 退職し、貿易せどりで起業するも破綻 ビットコインバブルでひと月で0円を400万円に増やす バブルが崩壊し、ひと月でそれを-200万円に減らす インド、デリーの広告代理店で法人営業に就くがクビで強制帰国 ヒモ(1年くらい) 職業訓練校を経てAIエンジニア
  5. AVILEN ⾃⼰紹介 Pythonを使った Deep learning ⽣成モデルGAN pix2pix cGAN 今回の アーキテクチャ

    ソースコードと ⼯夫点 質問タイムと 宣伝 5 今⽇の流れ
  6. 6

  7. 7

  8. 8 # python def perceptron(x): y = a*x + b

    return y
  9. 9 # python def perceptron(x): y = a*x + b

    return y
  10. 出⼒ ⼊⼒ ものすごい複雑な計算 10

  11. 11 , . . = (, . . ) つまりDeep

    learningは(機械学習は)関数
  12. AVILEN ⾃⼰紹介 Pythonを使った Deep learning ⽣成モデルGAN pix2pix cGAN 今回の アーキテクチャ

    ソースコードと ⼯夫点 質問タイムと 宣伝 12 今⽇の流れ
  13. AVILEN 13 GAN(敵対的生成ネットワーク) 本物 Generator 偽物を⽣成 Discriminator 真偽を判別 どちらかが⼊⼒される

  14. AVILEN 14 pix2pix 画像から新しい画像を⽣成 https://towardsdatascience.com/pix2pix-869c17900998

  15. AVILEN 15 pix2pix https://arxiv.org/pdf/1611.07004.pdf

  16. AVILEN 16 pix2pix https://arxiv.org/pdf/1611.07004.pdf

  17. AVILEN 17 Conditional GAN ⼊⼒としてノイズとテキスト情報から画像を⽣成 https://medium.com/@ma.bagheri/a-tutorial-on-conditional-generative- adversarial-nets-keras-implementation-694dcafa6282

  18. AVILEN 18 Conditional GAN 「9」から画像を⽣成している訓練中

  19. AVILEN ⾃⼰紹介 Pythonを使った Deep learning ⽣成モデルGAN pix2pix cGAN 今回の アーキテクチャ

    ソースコードと ⼯夫点 質問タイムと 宣伝 19 今⽇の流れ
  20. AVILEN 20 pix2pixとConditional GANの合成 ⽬的は、既存の画像から、 テキスト情報に沿った新規画像を⽣成すること 「かわいい」 「クール」

  21. AVILEN 21 pix2pixとConditional GANの合成 Generator 偽物を⽣成 Discriminator 真偽を判別 カラー画像(真) テキスト情報

    カラー画像(偽) ランダムな テキスト情報 ⽩⿊画像にする
  22. AVILEN 22 特徴量の合成 Generator カラー画像(偽) ランダムな テキスト情報 テキスト情報 ⽩⿊画像 (真)

    cGAN pix2pix(Unet) Convert → → Revert
  23. AVILEN ⾃⼰紹介 Pythonを使った Deep learning ⽣成モデルGAN pix2pix cGAN 今回の アーキテクチャ

    ソースコードと ⼯夫点 質問タイムと 宣伝 23 今⽇の流れ
  24. AVILEN 24 Generatorのソースコード class Generator(nn.Module): def __init__(self, input_nc, output_nc, label_nc,

    latent_dim, ngf=64): super(Generator, self).__init__() # Define normalization layer norm_layer = functools.partial(nn.BatchNorm2d, affine=True, track_running_stats=True) # Define layer to combine label features self.label_comb = LabelCombiner(label_nc, latent_dim, (ngf * 8, 1, 1)) # Construct unet structure _net = UnetSkipConnectionBlock(ngf * 8, ngf * 8, submodule=self.label_comb, norm_layer=norm_layer, innermost=True) for i in range(3): _net = UnetSkipConnectionBlock(ngf * 8, ngf * 8, submodule=_net, norm_layer=norm_layer, use_dropout=True) _net = UnetSkipConnectionBlock(ngf * 4, ngf * 8, submodule=_net, norm_layer=norm_layer) _net = UnetSkipConnectionBlock(ngf * 2, ngf * 4, submodule=_net, norm_layer=norm_layer) _net = UnetSkipConnectionBlock(ngf, ngf * 2, submodule=_net, norm_layer=norm_layer) self.model = UnetSkipConnectionBlock(output_nc, ngf, input_nc=input_nc, submodule=_net, outermost=True, norm_layer=norm_layer) def forward(self, images, labels, noise): self.label_comb.set_labels(labels, noise) # Set labels before model forward return self.model(images) """ Args: input_nc (int) : the number of channels in input images output_nc (int) : the number of channels in output images label_nc (int) : the number of classes in labels latent_dim (int) : the number of noise dimensions ngf (int) : the number of filters in the last conv layer """ バッチの均一化 ラベルとランダム情報を加工 3つをインプットして動かすだけ 一番大事。特徴量同⼠が合成
  25. AVILEN 25 工夫したこと DataParallel 初期の学習に50時間くらいかかりそうだったので、GPU並列化 結果、6-7時間くらいになった 平均絶対誤差でGeneratorの学習を助ける Generatorの学習は難しい。学習にヒントを与えた ⽣成画像のラベルを本物と⽐較する 画像→テキストのモデルを使い、Generator単独での損失を計算

  26. AVILEN ⾃⼰紹介 Pythonを使った Deep learning ⽣成モデルGAN pix2pix cGAN 今回の アーキテクチャ

    ソースコードと ⼯夫点 質問タイムと 宣伝 26 今⽇の流れ
  27. AVILEN 筑波大学大学院システム情報工学研究科知能機能 システム専攻博士前期過程修了。日本統計学会ス ポーツデータ分析コンペティション優秀賞受賞や 各種学会にて発表。AI・Web・インフラと幅広く エンジニアチームをリード。 東京大学工学部を卒業。図面読取AI・書類OCRシ ステムなどメイン開発プロジェクトをリードして きた。世界最弱のオセロAIを開発し、多くのメデ ィアにて紹介されている。

    東京工業大学大学院知能情報コース修了。日本語 文書データ・画像データ・医薬データを対象にし たデータ分析・AIモデルの開発・コンサルティン グ経験が豊富。 東京大学生物情報科学にてビッグデータの解析や 生物学における理論のシミュレーション、モデリ ングなどにも精通。東京大学理科二類最高点合格、 日本生物学オリンピック金賞・本選一位、合成生 物学の世界大会iGEM金賞などの受賞歴を持つ。 東京大学大学院では機械学習の研究を行っていた。 金融・製造・製薬などの業界を中心に、人工知能 のビジネス適応を推進し、様々なプロジェクトで コンサルティング・開発に従事。日本ディープラ ーニング協会産業促進委員を務める。 千葉大学大学院デザインコース修了。セールス、 プロダクトデザイン・UI/UXデザイン・映像制 作・WEBサービスの開発ディレクション等の領域 を手がける。 AVILENが関わる全領域のブランデ ィングおよびデザイン制作の責任者を務める。 27 取締役 データサイエンティス ト 高橋 光太郎 代表取締役 データサイエンティス ト 崔一鳴 取締役 ITスペシャリスト 大川 遥平 取締役 ブランド責任者 高橋 香輝 CTO データサイエンティスト 吉田 拓真 執行役員 データサイエンティスト 吉川武文 AVILEN
  28. AVILEN 28 お知らせ 最短突破 ディープラーニングG検定問題集 本を発売しました。 抽選でお1⼈さまにプレゼントします。

  29. AVILEN 29 抽選方法 @AVILEN_AI_Trend @kaorumitsumori

  30. AVILEN 30 よくあるご質問 なんでインドにいったのか︖ マイナーな選択肢で英語圏だったから なんでPythonを始めたのか︖ クビを経験して、⼿に職がないなら不遇に⽢んじるしか ないと思ったから ⽂系でもプログラミングや 機械学習はできるか︖

    できます。 未経験でも︖ できます。コミュ⼒と⾃⾛⼒があると感じさせれば 「未経験 三森 データサイエンティスト」でぐぐ るとぼくの就活体験記がでてくるのでご参考まで 初学者にオススメの本 「東京⼤学のデータサイエンティスト育成講座」 初学からどのくらい勉強が必要︖ 最低600時間くらい 抽選項⽬ @AVILEN_AI_Trend @kaorumitsumori https://forms.gle/RnWL8mywHCfiowKLA 独学︖スクール︖ スクールの⽅が良い派です。ただ公共機関以外 の無料スクールは微妙な気がします。サービス 提供者と受益者間でのインセンティブがずれて いるので