写像・次元圧縮としてのニューラルネットワーク

今回は、ニューラルネットワークによる次元圧縮に注目して説明していきたいと思います。この内容はYouTubeでも行っていますので、ぜひ参考にしてみてください。

https://youtu.be/ENGM1aaJMoA

そもそもニューラルネットワークとは

ニューラルネットワークは脳の神経回路網からヒントを得て考案された機械学習モデルです。最近では便利なライブラリが多いため、初心者でも数行でニューラルネットワークを構築することができます。

図1 ニューラルネットワークの例

ニューラルネットワークに入門して始めて実装するときに、MNISTデータのクラス分類を行うことが多いですが、その時のニューラルネットワークの構造の例として、図1のようなものがあります。この何の変哲もないニューラルネットワークって実際何をやっていると思いますか?

ニューラルネットワークの仕事は写像すること

そもそも、機械学習モデルをブラックボックスだと考えると、入力した値に何か変化を加えて出力を行う、いわば関数と考えることができます。関数というより写像といった方がいいでしょう。全結合層(密に結合された層)はアフィン層ともいわれますが、それは\(\boldsymbol{Ax} + \boldsymbol{b}\)という計算がアフィン写像といわれていることに起因します。ですので、ディープニューラルネットワークは、間に活性化関数による非線形変換を挟みながら何度もアフィン写像を繰り返していることになります。つまり、入力データと教師データをマッピング、写像しているんです。図2はMNISTをOneHot表現でクラス分類をするニューラルネットワークモデルを例にとったときの写像を表しています。ここで、写像\(f:\boldsymbol{R}^{784}\Longrightarrow \boldsymbol{R}^{10}\)です。入力は入力画像を平坦化した784次元線形空間、出力はOneHot表現された10次元線形空間と考えることができます。注意点としては、入力空間と出力空間が線形空間でも写像においてベクトルの和とスカラー倍が満たされないため線形写像ではないことです。

図2 ニューラルネットワークの写像例

MNISTによる手書き文字画像を784次元ベクトルと考えると、同じ数字を表していても、データにより、若干ベクトルが異なり、任意の数字を表す理想ベクトルの周囲に雑音が加わる形で雲のようにボヤッと手書き文字画像のベクトルが分布しているとイメージできます(図3)。その雲のような領域には図3のように重なった領域があることが予想され、そこで誤認識が発生していると考えられます。そして、写像先は綺麗なOneHotベクトルではなく、各クラスに属す確率を成分として持つベクトルで、理想状態のOneHotベクトルの周囲に分布していると考えることができます。

図3 ニューラルネットワークの写像例(より正確に)

ここまでは、入力を教師信号に写像するという抽象的な話でしたが、次は広い意味で符号化及び次元圧縮をしているんだということを簡単に説明します。

MNISTの例ですが、教師信号はOneHotによる10次元ベクトルとしました。やってはいけないわけではありませんが、入力次元数の784よりも大きい次元の教師信号を設定する人はまずいません(1000次元の教師信号とか)。つまり大きい次元のデータを小さい次元のデータへマッピングしているのです。ここで、符号化という概念が出てきます。符号化とは、もとの信号または類似の信号を復元できるように変換することで、基本的には情報を圧縮することです。ニューラルネットワークは符号化する写像と解釈できます。

発展

教師あり学習のクラス分類を行うニューラルネットワークは、人間が符号を教師信号として準備する必要があります。人間が符号を用意しなくても自動で符号化してほしくありませんか?この期待に応えてくれるニューラルネットワークが自己符号化器、オートエンコーダです。オートエンコーダは以下のような符号化する(次元圧縮する)ニューラルネットワークと、復号化するニューラルネットワークを合体させたもので、入力データを正しく復元できるように自己学習します。教師信号は入力データですので、教師あり学習の特別な場合と解釈できますが、モデルをブラックボックスと考えると、ボックスの外から人間が準備した教師信号を与える必要がなく、ボックス内で完結しているため、教師なし学習と解釈することも多いようです。以下は、MNISTデータを10次元に圧縮して、再度784次元に復号する写像のイメージです。

図4 オートエンコーダの写像

オートエンコーダで学習されたニューラルネットワークは、復号化の部分を取り除くことで、重要な特徴のみを捉え、符号化された情報を得ることができます。ディープラーニングは、特徴抽出からクラシフィケーション(または回帰)まで全てを一貫して実行できることで万能ですが、勾配消失問題により下位に位置する特徴抽出用のニューラルネットワークの学習が進まないという問題がおこります。しかし、このオートエンコーダによる教師なしの事前学習は、下位のニューラルネットワークで特徴抽出ができる状態にするため、その上にクラス分類または回帰の層を追加して学習を行ったときに上手くいくことが知られています。

まとめ

今回の内容を簡単にまとめると、ニューラルネットワークは教師信号へ写像・次元圧縮をしていることになります。

Follow me!