ノイズ除去をやってみるツイートシェアはてブGoogle+Pocket今回は、オートエンコーダによるノイズ除去をやってみます。入力画像の次元圧縮によって特徴量を覚えて、次元復元させると入力画像とそっくりな画像を出力するネットワークです。入力と同じ画像を出力するネットワークなんて意味がないように思われますが、実はこれノイズ除去に使えるんです。オートエンコーダは、ノイズが入った画像を入力されると、ノイズはランダムな要素なので無視し、覚えた特徴量のみに従って画像を復元するので、結果ノイズが除去されるわけです。いうわけで、今回は、オートエンコーダによるノイズ除去をやってみます。いうオートエンコーダがありますが、全結合層(affine)が2層だけなので、ノイズ除去能力はあまり期待できません。今回はオリジナルのネットワークを組んでみます。これが今回のネットワークです。これがパラメータの設定表です。「x」であることに注意して下さい。バッチ64、エポック100で学習開始します。42分で学習が完了です。評価を実行すると、覚えた特徴量に従って、入力画像を復元した結果が現れます。上手く復元できている様です。ついでに、覚えた特徴量がどんなものか可視化してみましょう。ネットワークの中から見たいレイヤーをクリックすると、学習した重みが読み込まれ、可視化することが出来ます(今回のネットワークはCostParameterが大きいので、読み込みにはしばらく掛かります)。表示されているのは、Convolution_3が学習した重みです。言っても、機械が抽出した特徴量を人間が見てもピンと来ませんね(笑)。ノイズが入ったデータセットを作るオートエンコーダのノイズ除去性能を見るためのデータセットを作成します。使うのは、2/17のブログ「画像水増しレイヤーの効果はどれくらいか?」でご紹介した、このネットワーク。「0.5」と設定し、それ以外は画像を変化させない設定にしています。(ダミー)を使います。機能で作ったものです。選び強制的に学習を完了させます。バッチ50で評価ボタンを押せば、ノイズ入り「4」が100個できます。クリックした場所に保管されています。これと同様にして、ノイズ入り「9」も100個作ります。機能でデータセットを作成すれば、ノイズ除去性能を見るための評価ファイルができます。ノイズ除去性能をみてみるさきほど学習・評価を完了したプロジェクトの「評価ファイル」を「ノイズ除去性能を見るための評価ファイル」に入れ替えて、再度評価してみます。評価結果を見てみると、ノイズは除去され、上手く画像が復元が出来ていることが分かると思います。オートエンコーダは地味な存在ですが、こうやって使ってみると結構面白いです。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。半教師あり学習をやってみるRECOMMENDこちらの記事も人気です。一目惚れして、ディープラーニングを始めました。初心者の試行錯誤をブログにしています。