ニューラルネットワークを使った教師なし学習

多様体学習
合成の二次元多様体を作成する:
多様体のパラメータ化を学習するために,「ボトルネック」層を持つネットを作成する:
入力多様体についての「再構成誤差」に基づいて損失を計算する損失ネットワークを作成する:
多様体で損失ネットワークを訓練し,損失ネットワークからもとのネットを抽出する:
ネットが多様体上に任意の点をどのように投影するかを可視化する:
ネットを「エンコーダ」と「デコーダ」に分ける(エンコーダは単独のスカラー値を使って点をパラメータ化するが,デコーダはこのパラメータ化から点を再構成する):
エンコーダのもとでのパラメータ化によって,もとの多様体の中の各点に色を付ける:
エンコーダを多様体に適用して,パラメータ化の範囲を取得する:
もとの多様体とともに,この範囲での再構成を表示する:
MNISTを使った数字オートエンコーダ
まず訓練データを取得し,数字の0から4にあたる画像を選ぶ:
オートエンコーダはその入出力に対して同じ形状であり,ネットが入力を単純に記憶しないようにネットの中央にボトルネックがある.
次元{1,28,28}の入力を取り,同じ次元{1,28,28}の出力を返すネットを作成する:
前述のネットは入力に784個の実数を取り,これを40個の実数のベクトルに圧縮する(ボトルネック).その後ネットはこの40個の実数から元の画像を再構成する必要がある.
画像を{1,28,28}次元の配列に変換するエンコーダを作成する:
入力が出力と異なることでマイナスの報酬が与えられるオートエンコーダネットに,損失を加える:
再構成誤差でネットワークを訓練する:
再構成だけを実行するサブネットワークを取得する:
いくつかのサンプル画像を再構成する:
コードベクトルを生成するサブネットワークを取得する:
テスト画像すべてに対するコードを計算する:
コードベクトルを三次元に投影し,それをもとのラベル(ネットワークからは見えない)とともに可視化する.数字のクラスはまとまる傾向にある:
コードベクトル上で直接自動クラスタリングを実行し,それぞれのクラスタから取られたサンプルを表示する:
それぞれのクラスからランダムに取ったサンプルの階層的クラスタリングを可視化する: