前回記事の課題について、少し進捗したので記事に。
いやもう、どんだけ間空いてるのかと(笑)
ブログサービス終了しちゃいそうなんですが。まあ気を取り直して。

過去に撮ったL画像のうち、比較的枚数を確保できて滑らかにできたやつを何枚か確保。トーンカーブをいじっただけのものと、いじる前に適宜ノイズ付加したバージョンをペアで準備。0-1の浮動小数点表現でTIFF出力。
それぞれ32x32に分割して35000組ほどを確保。9割を学習用に、1割を評価用に振り分け。

イメージ 1
1~2日教える。古いQuadroだと200エポックで丸一日以上かかる。速いの欲しい。

イメージ 2
上段が本来の画像。中段がノイズ付加したもの。下段は中段に処理を加えて上段に似せたもの。
lossが0.0008を切ったぐらいで、まあまあ見られる雰囲気になってるよう。



さて、本番では画像丸ごと放り込むのでメモリが全然足りず(瞬間的に40GBぐらい使う)、cudaはとても使えない。5層しかない処理なのに16コアのマシンでも分単位で待たされる。重い。


イメージ 3
RELu
イメージ 4
tanh
イメージ 5


イメージ 6
RELu
イメージ 7
tanh
イメージ 8

基本に忠実にReLUでやると、特定の明るさのところの帯状の模様が気になる。あと黒穴が目立つ。
tanhだと学習がとにかく遅いが、同程度のlossでもReLUでやるより自然で、帯状の変な模様も目立たない印象。星が少ないゾーンでは勝手に微光星を増やしちゃう傾向があるが、もっとデータを増やして精度を上げれば改善するかも。

どの処理でもなんか黒穴だけ点々と残りがちですが、ここまで滑らかにしておけば軽くメディアン使うだけで綺麗に消えます。
あと、微妙に解像感が低下しますが、副作用でボケてるのか、ノイズを減らした影響でそう見えるだけなのかが問題かも。