どうも、とがみんです。
以前に、「主成分分析」による次元圧縮について紹介しました。
この記事では、ニューラルネットワークを用い、次元圧縮を行う「自己符号化器(Auto encoder:オートエンコーダー)」について紹介していきます。
TensorFlowによるオートエンコーダーの実装に関しては、以下の記事を参考にしてください。
自己符号化機(Auto encoder:オートエンコーダー)とは?
自己符号化器とは、機械学習において、ニューラルネットワークを使用した次元圧縮のためのアルゴリズムで、主にデータをよく表す「特徴」を獲得すること、深いニューラルネットワークの事前学習として用いられます。
「次元圧縮」とは、多次元のデータから、意味のある特徴を維持したまま、より少ない変数で、そのデータを再現することです。
自己符号化器の具体例について紹介していきます。
自己符号化器の例
自己符号化器(オートエンコーダー)の簡単な例を以下に示します。
上図のように、入力の次元が3次元であるものを2次元に落としてから、これをもう一度3次元に復元し、ほとんど同じ値を得ることができるなら、
2次元に落としても元々の情報の重要な情報は維持できているということになります。
そうなるように、ニューラルネットワークの各パラメータを学習させていきます。
そのモデルの3→2の部分を取り出すと、次元を3次元から2次元に圧縮するシステムが出来上がります。
学習にはデータだけあれば良いので、分類的には、教師なし学習になります。
>オートエンコーダ:抽象的な特徴を自己学習するディープラーニングの人気者
次元圧縮をするメリットデメリット
次元圧縮は、意味のある特徴を維持したまま、より少ない変数で再現できるようにすることと書きましたが、
なぜ、より少ない変数でデータを再現できると良いのか、そのメリット・デメリットについて考えていきます。
メリット
与えられたデータの特徴をより上手く説明することができるようになる。視覚的にわかりやすく情報を提示することができるようになる。
データを圧縮することデータ量を抑え、計算資源の有効活用をすることができる。
デメリット
データを圧縮することにより、情報の損失が起きてしまう。より低い次元に圧縮するほど、情報の損失は大きくなる。
>オートエンコーダ:抽象的な特徴を自己学習するディープラーニングの人気者
まとめ
自己符号化機(Auto encoda:オートエンコーダ)についてと、次元圧縮に対するメリット・デメリットについて紹介しました。
また、以下の記事で、TensorFlowによるオートエンコーダの実装について紹介しているので、参考にしてください。
参考文献
>オートエンコーダ:抽象的な特徴を自己学習するディープラーニングの人気者