科学の箱

科学・IT・登山の話題

機械学習

Pythonではじめる機械学習 – 多様体学習

投稿日:

多様体学習

次元削減に利用できる手法として主成分分析がある。これは柔軟であり、すぐに実装可能な次元削減アルゴリズムの一つである。しかし一つだけ問題がある。それは主成分分析に適用できるデータは線形のみであり、非線形のデータには利用できない。非線形データの次元削減に利用できるのが多様体学習(Manifold Learning)である。主成分分析と多様体学習の関係はいうなれば線形回帰と非線形回帰の関係である。

ではこの次元圧縮はどのようなイメージになるのだろうか。主成分分析で3次元データを2次元データに圧縮することを考える。この場合3次元空間に平らな紙を一枚置いてすべてのデータをこの平らな紙に移したと考えることができる。紙は平らなだから2次元である。これにより3次元データは2次元に圧縮された。多様体学習もイメージは似ている。しかし多様体学習ではこの紙は丸まったり曲がったりしてより柔軟(非線形)にデータを移すことができる。これが主成分分析と多様体学習の違いである。

主成分分析では軸を回転させることで最も分散が大きい成分を見つけることができた。これはデータが線形であったから可能である。しかしデータが非線形であれば事情は異なる。データを回転させる、引き伸ばす、方向を変えるといった操作では、3次元におけるデータの位置関係は変わらない。これは線形な操作であり、非線形データにとって最も大きな分散となる軸を探すことができない。多様体学習では折り曲げ、ロール、崩すなどといった操作により最も大きな分散となる軸を探すことになる。

距離行列

距離行列とはある要素のベクトルと他の要素のベクトルの距離(あるいは類似度)を行列であらわしたものである。

生成したHello画像同士について距離行列を見てみると以下のようになる。これは同じ画像であるから対角線の軸は当然0(距離が0あるいは完全一致)となる。

次に回転させたHello画像との距離行列をみてみる。全く変わらないことから回転では類似度に変化はない。

MDSによる距離行列からのデータ復元

MDS(Multi Dimensional Scaling)により距離行列からデータを復元する。さてこのデータは生成したデータと同じになるのだろうか。

from sklearn.manifold import MDS
model = MDS(n_components=2, dissimilarity='precomputed', random_state=1)
out = model.fit_transform(D)
plt.scatter(out[:, 0], out[:, 1], **colorize)
plt.axis('equal');

 

復元されたデータは距離行列から取得できる一つの例である。Lが両方とも逆になっているのがわかる。また回転もしている。

多様体学習としてのMDS

MDSは多様体学習のアルゴリズムとして非線形データについて次元削減ができる。これは以下のような手順による

多次元データ→距離行列の作成→距離行列にあった2次元平面の生成

非線形平面への投影にはMDSを用いることはできない。その場合にはLLE(Locally Linear Embedding)を利用する。難しくて理解できないのこちらはパス。

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

irisをナイーブベイズで分類

ナイーブベイズの概要 ナイーブベイズは教師ありの分類アルゴリズムの一つである。 計算アルゴリズムとしてはベイズ定理を用いている。 機械学習における特徴としてはいかがある 実装が簡単であり、複雑なハイパ …

no image

仕事で始める機械学習 – 1. 機械学習プロジェクトの始め方

機械学習プロジェクトの流れ 問題の定式化 機械学習を利用しない方法 システム設計 アルゴリズム選定 特徴量・教師データ・ログの設計 前処理 学習・パラメータチューニング システム統合 問題の定式化 目 …

no image

データ分析について評価する

デザイン コントロールグループはあるか モデル 検定の前提は満たしているか(正規分布) 従属変数の尺度は適切か(名義、順序、間隔、比率) 独立変数の数は適切か モデルについて説明できるか(独立変数の数 …

no image

仕事で始める機械学習 – 2.機械学習で何ができるか – 分類 – ロジスティック回帰

ロジスティック回帰 確率を得るために パーセプトロンの判別式により確率をとることはできない。パーセプトロンのヒンジ損失は正負のみを判断し、間違っている場合だけパラメータの更新をする。つまりぎりぎりで正 …

no image

irisでPCAを実行し可視化

irisデータをPCAで2次元に分類して可視化してみる。 内容 準備及びデータの前処理 PCA プロット   準備及びデータの前処理 irisデータを読み込み、PCAを実行するための前処理を …

2019年11月
月 火 水 木 金 土 日
« 10月   12月 »
 123
45678910
11121314151617
18192021222324
252627282930  

side bar top



アーカイブ

カテゴリー