社会人からはじめる機械学習勉強 Week 18 – TheanoでSRCNN実装4

2016/5/2~5/8

SRCNN実装

勉強だけでは実力は身につかないので、実践して見ようという事で、waifu2xで資料があることからSRCNNをTheanoを用いて自分で実装してみることに。

*このプロジェクトはtheanonSRとしてgithubで公開済み。

Padding問題の根本原因を見つけた。→TheanoのConv2dにPadding任せちゃうとダメ。0パディングされちゃう。代わりにnumpy使って自分でPaddingするよう実装変更した。

32x3x3_32x3x3_32x3x3_1x3x3にてチェック中。→なんかただパラメータ値によって誤差関数がランダムにFluctuateしてるだけな感じで、モデルの表現に限界がある気がする。うーむ、どうやったらパフォーマンスもっとよくなるのかなぁ。。。

最近読んでる論文集

SRCNNを良くするためのアイデアソースとするため。

1.OSD
http://ee.caltech.edu/Babak/pubs/conferences/00298572.pdf
https://papers.nips.cc/paper/647-second-order-derivatives-for-network-pruning-optimal-brain-surgeon.pdf
https://papers.nips.cc/paper/749-optimal-brain-surgeon-extensions-and-performance-comparisons.pdf

結局OBDはCNNには必要ない気がしてきた。

CNNにおけるUnitとは、Feature mapのことで、この場合Feature map数はあまり多くないから、それぞれ実際に”Pruning = そのチャンネルにおけるWすべての要素を0にする”して試してみればいいんじゃないかって気がしてきた。計算量的にわざわざHessianを計算する必要はないと思う。

2.ディープネットワークを用いた大域特徴と局所特徴の学習による白黒写真の自動色付け
→ここで紹介されていたLayerのFusion はSRCNNでも是非試してみたい!!!

3.Batch Normalization

ニューラルネットがディープになっていったときに、Gradient descentが機能し続けるように入力データを平均からのずれで整形する方法。
http://jmlr.org/proceedings/papers/v37/ioffe15.pdf

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です