ホーム » AutoEncoder » TensorFlow で AutoEncoder

TensorFlow で AutoEncoder

TensorFlow で AutoEncoder

AutoEncoder

AutoEncoder は普通の多層 NN を用いますが、教師なし学習で、encode/decode 層を用意して入力サンプル・データと同じ出力が得られるように訓練します。言い換えれば、入力サンプル・データと同じパターンが復号(再構築)できれば特徴を上手くつかまえた隠れ層が得られることになります。特徴を上手くつかまえたまま次元削減ができるとも言えますし、その隠れ層(中間層)の出力はデータ表現とも考えられます。

AutoEncoder の実装については以下が十分過ぎるほど詳しいです。1層から始めて多層は deep autoencoder として一応区別されていて、denoising や convolutional autoencoder、更には sequence-to-sequence autoencoder についても説明されています :

 
今回は試していませんが、denoising autoencoder については以下も参考になります :

AutoEncoder for MNIST, using TensorFlow

AutoEncoder は TensorFlow のチュートリアルに含まれていても良いように思いますが、(把握している限りでは)見当たらないので MNIST を題材にして簡単に試しておきました。

といっても基本形を試すだけならやることは簡単で、モデルとしては Encoder / Decoder として FC 層を用意するだけです。1層でも良いのですが、2層ずつ用意してみました。当然、多層になれば再構築の結果も多少良くなります :

入力 (748)
Encoder : FC (256)
Encoder : FC (64)
Decoder : FC (256)
Decoder : FC (784)

 
そして入出力ともに(ラベル Y は使わずに)訓練サンプル X で訓練します。損失グラフは以下のように普通な感じです :
autoencoder_loss2

 
訓練は 10 epochs 程度で十分でした。
以下は validation data を使って適当な epochs 後に再構築を試してみました。特に問題ないように見受けられますが、MNIST だと簡単過ぎるかもしれません。

1 epoch
autoencoder_mnist_gray_1epochs2

5 epochs
autoencoder_mnist_gray_5epochs2b

20 epochs
autoencoder_mnist_gray_20epochs2

 
Autoencoder では denoising が話題になりやすいですが、convolutional autoencoder も(上手く機能するのであれば)実用性がありそうです。

 
以上

AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com