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 では、画像処理に関する話題が取り上げられる。
- 畳み込み
- 画像補正(image inpainting)
- 自己符号化器
- DeepDream, Style Net
- 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 つの画像を ニューラルネットワークに描かせることをした。
kadenze CADL session2 explore.gif #CADL
— tsu-nera@勉強垢 (@tsu_nera_s) 2017 年 4 月 12 日
これをどう解釈すればいいのかいまいち分かってない。 pic.twitter.com/NgzpdTmHyB
session3: Unsupervised And Supervised Learning
教師なし学習として、自己符号化器が紹介される。
また、教師あり学習として、ニューラルネットワークを分類問題に適用する方法が説明される。
課題では、音声データを音楽かスピーチか判定して分類するようなことをする。
session4: Visualizing And Hallucinating Representations
隠れ層の可視化をする。
また、DeepDream という、コンピュータビジョンの手法が説明される。
DeepDream についてはこのブログ記事がとても詳しい。
Google Research Blog の内容を意訳してくれている。
また Neural Style Net というものを学ぶ。
作品集
DeepDream でイルカさんと合体した。kadenze #CADL pic.twitter.com/lW3MXndGUH
— tsu-nera@勉強垢 (@tsu_nera_s) 2017 年 4 月 15 日
京都の金閣寺に嵐山の竹林を DeepDeram で合成。kadenze #CADL pic.twitter.com/jdpSiihG0I
— tsu-nera@勉強垢 (@tsu_nera_s) 2017 年 4 月 15 日
ルノアールを style net で学習させた kadenze #CADL pic.twitter.com/ZDtWiX8pi3
— tsu-nera@勉強垢 (@tsu_nera_s) 2017 年 4 月 15 日
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 を作成
元ネタ
出来上がったもの
Style Transfer, Miro to Chaplin.#kadenze #CADL #deeplearning pic.twitter.com/bbxZ2dv7tp
— tsu-nera@勉強垢 (@tsu_nera_s) 2017 年 4 月 17 日