KerasでAutoEncoder【備忘録】

はじめに

こんにちは、がんがんです。
大学の前期期間中、ノイズ除去に関することをよく学習してました。
Kerasのコーディング力を高めるためにやってました。


今回は、そのときのことを思い出しながら、改めて実験してみます。
以前参考にしたのはこちらです。
Kerasで学ぶAutoencoder


今回はKerasのブログを見ながら改めて実験してみました。
Building Autoencoders in Keras

思い出してやってみると、結構忘れているところもあったのでやってみてよかったです。

追記【2019.04.29】

GitHubのリンクを追加しました。
github.com

追記【2018.12.27】

鹿児島大学生 Advent Calendar 2018の11日目にて掲載させて頂いております。
見て頂きありがとうございます。

参考記事

参考記事を改めてまとめておきます。
elix-tech.github.io

Building Autoencoders in Keras

AutoEncoderは昔からある技術です。AEの理解はこちらを参考にしました。
deepage.net

AutoEncoder

まずはベースのAEを試していきます。

コード

結果

MNISTなのでやはりすぐに結果が出ますね。

f:id:gangannikki:20181206161029p:plain
上段:オリジナル画像 下段:出力画像

Deep AE

こちらは層を少しだけ深くしたAutoEncoderになります。

コード

結果

f:id:gangannikki:20181207181152p:plain
上段:オリジナル画像 下段:出力画像

Convolutional AE

MNISTは28×28の画像です。画像を扱う場合はDense層よりもConvolution層を用いたほうがより特徴を抽出することが可能です。

コード

結果

モデルの構造、結果画像の順に示します。

f:id:gangannikki:20181209235322p:plain
アーキテクチャ

f:id:gangannikki:20181207181235p:plain
上段:オリジナル画像 下段:出力画像

まとめ

今回はAutoEncoderを中心にまとめました。
改めてやり直すと忘れていることが多いですね。

次回はノイズ除去で使用されているDenoising AE(通称、DAE)についてまとめていきます。