kadenze で、Creative Applications of Deep Learning with TensorFlow(CADL) を受けました。

これは、Creative Applications of Deep Learning with TensorFlow という Program (全 3 Course)のうちの一つ。

Program の Part2,3 は有料だけれども、Part1 のみ無料で受けられる。

概要

Deep Learning を 芸術に適用しようという講義。

主に Part1 では、画像処理に関する話題が取り上げられる。

  1. 畳み込み
  2. 画像補正(image inpainting)
  3. 自己符号化器
  4. DeepDream, Style Net
  5. GAN, RNN

詳細

講義ノートと課題(session)は以下のリポジトリにある。

juputer notebook の形式で github に置いてある。

session1: Introduction to TensorFlow

Deep Learning とはなにかからはじまり、画像データの処理方法、 TensorFlow の紹介、さらには Kernel を利用した畳み込み処理が解説される。 CNN までは、行かない。畳み込むだけ。

ちょっとはじめから飛ばしすぎな感があったけど、Lecture ノートが丁寧なので、 理解することができた。

課題は、自分で用意した 100 枚の画像に対して畳み込み処理をするというもの。 不気味な画像が生成された。

session2: Training A Network W/ TensorFlow

lecture では、tensorflow をつかって、サイン曲線付近に散らばったデータから、 サイン曲線を回帰によって求めることをした。

また、画像をニューラルネットワークに学習させることをした。 これは、Karphaty さんのデモサイトを真似たもの。

課題も、レクチャーの延長で、画像をニューラルネットワークに学習させることをした。 はじめは、一つの画像を、次に100枚の画像を、最後の Option 問題で 4 つの画像を ニューラルネットワークに描かせることをした。

session3: Unsupervised And Supervised Learning

教師なし学習として、自己符号化器が紹介される。

また、教師あり学習として、ニューラルネットワークを分類問題に適用する方法が説明される。

課題では、音声データを音楽かスピーチか判定して分類するようなことをする。

session4: Visualizing And Hallucinating Representations

隠れ層の可視化をする。

また、DeepDream という、コンピュータビジョンの手法が説明される。

DeepDream についてはこのブログ記事がとても詳しい。

Google Research Blog の内容を意訳してくれている。

また Neural Style Net というものを学ぶ。

作品集

session5: Generative Models

GAN と RNN を説明。どっちの説明も雑だった。これじゃあなにもわからない。

GAN は用意されたライブラリの説明で、理論の説明はないし、 RNN(LSTM)も、2 分くらいの説明があったあとデモンストレーションがあっただけ。

課題は、GAN は丁寧な解説があった。DCGAN, VAEGAN が説明されて、 CELEB Net の画像を利用して、画像を生成するところまでをやる。

RNN はトランプ大統領のツィートから文を生成しようというものだが、 出来た文章は文字化けしたような意味不明なものだった。深追いはしなかった。

感想

わからなすぎるー──ヾ(*‘∀`*)ノ──

session1,2 までは理解できたけれども、session3,4,5 は理解できなかった。

session1,2 の内容は既に知っている内容だったので、なんとかなった。 session3,4 はほとんど、session5 に至ると、まったく分からない。

こんなにわからないのは、久しぶりだと思うほどに分からない。

説明はまあ丁寧なほう

説明は丁寧、ということは言っておく。わからないのは自分のせい。

講義動画の内容は、話した内容がそのまま jupyter notebook に書き起こされている。

はじめ、講義 ノートの存在をしらなくて、 動画だけかと思ってたので、こんな動画だけじゃわかんねぇよとか思ったけど、 ちゃんと丁寧な講義ノートがあった。

講義でわからなくても、課題が講義をなぞるようにできているので、 課題を通して理解を深めることができる。

数式ほとんどでてこない

なお、数式がほとんどでてこない。 芸術をテーマにしているからか、理論的なところには踏み込んでいかないところが特徴。

たとえば、BackPropagation の説明は、以下のリンクのような感じ。

数式がないとはいえ、自分は session3,4,5 がなにいってるか理解できなかったので、数式なければ簡単とはかぎらない。

課題は簡単, TensorFlow にも慣れる

課題は、実はとても簡単。

課題は講義の応用なので、基本的には講義ノートのどこかに答えがある。

もしくはパラメータチューニングなので、自分で与えられた課題に対して数値をいじって変化を見る。

この講座は w/ TendorFlow というくらいなので、TensorFlow が初めの週からでてくる。

でも難しいことはあまりない。

正直、一から TensorFlow のコードを書いていくのはまだきついけれども、 課題を穴埋めしているうちになんとなく TensorFlow の使い方がわかる。

修了製作

チャップリンの動画に Neural Style Net でミロのスタイルをかぶせたもの。

どうやってつくったかというと、

  • gif を画像に分解
  • この処理 を画像に適応
  • 再び画像から gif を作成

元ネタ

出来上がったもの