前回,ChainerでDeep learning入門 多層パーセプトロンで分類問題を解くという記事を書きました. 今回は,多層パーセプトロンを使った,データの可視化に挑戦したいと思います. アイデアは非常にシンプルです.まず,前回構築した多層パーセプトロンは,式で書くと以下のような形をしています.

これを見ると, 入力は,非線形変換を経て,になり,これに対して線形のロジスティック回帰を適用しているようにも見えます. そうすると,ネットワークの中で,特徴量を学習し,その結果がという特徴ベクトルであると解釈できます. これは教師ありの次元削減とも考えられるのではないでしょうか. というわけで,今回はこのをプロットしてみようと思います. 線形分離可能な状態になっているのでしょうか? 可視化のために,隠れユニット数は2にしておきます.

結果は以下のようになりました.左が元データで,右が,をプロットしたものです. うまく線形分離可能な状態になっていますね. これを使えば,いろんなデータを2次元,あるいは3次元に落として可視化できるのではないでしょうか.

mlp_xor_visualization