- 会員限定
- 2021/04/26 掲載
オートエンコーダ(自己符号化器)とは? ディープラーニングとの関係を図解で解説
ニューラルネットワークの「事前学習」
ニューラルネットワークを構成する技術の1つ、「バックプロパゲーション(誤差逆伝播法)」が抱えていた課題は、ニューラルネットワークの層が多くなると「誤差に関する情報が十分に届かない」というものでした。この問題は層が増えれば増えるほど解決が難しくなります。層を増やさなければ性能を発揮しないニューラルネットワークにとっては致命的な問題でした(詳しくは前回の記事をチェック)。しかし、「事前学習」という手法においては、層を増やす前段階の「まだ小さなニューラルネットワークの状態」で学習をさせます。層が少ない状態であればバックプロパゲーションの技術も使えますし、学習も容易です。
つまり、あらかじめ学習させておいた小さなネットワークを集めて大きなニューラルネットワークを作れば最初の時点で誤差が小さくなり、バックプロパゲーションによる修正が容易になると考えたのです。
これは画期的なアイデアですが、問題は小さなニューラルネットワークに何を学ばせるかという点です。小さなニューラルネットワークを大きなニューラルネットワークに組み込んだ際に、それぞれのネットワークがどのような役割を果たすか分かりません。
安易に事前学習を施しても、役割に合わないことを学ばせれば却って逆効果になるでしょう。そこで、意外なアイデアがディープラーニングの生みの親であるジェフリー・ヒントン氏という研究者によって提案されました。
「オートエンコーダ」とは
オートエンコーダ(自己符号化器)と呼ばれる技術は、入力された記号をエンコード(符号化、圧縮)して別のものに変え、もとの形に戻して出力する手法です。この手法の独特な点は入力と出力が同じ、つまり「問題」と「答え」が同じ問題を学習させる点にあります。一見すると意味がないように思われますが、上図に重要な要素が隠れています。それは入力層(左)と出力層(右)のニューロンに比べて中間層(中央)のニューロンが少ない点です。中央部分でネットワークが集中しているため、ネットワーク上で情報を処理する際には何らかの形で情報を減らさなければなりません。
情報を減らしても同じ答えを出せるようになるためには情報を圧縮させなければなりません。そこで中央部分のネットワークは「どんな情報を落としても大丈夫か」「どんな情報が必要なのか」という「情報の特徴」を学ばなければならなくなります。
これがオートエンコーダのキモです。多層ニューラルネットワークの各層それぞれにおいてオートエンコーダによる事前学習を行うことでバックプロパゲーションによる誤差が減り、多層ニューラルネットワークの学習効率が大幅に改善しました。
【次ページ】「情報を圧縮できる」=「特徴を知っている」
関連コンテンツ
関連コンテンツ
PR
PR
PR