Help us understand the problem. What is going on with this article?

Webアプリケーションエンジニアがディープラーニングに挑戦する際にやったこと(Coursera Week8)

More than 1 year has passed since last update.

Coursera Week8

はじめに

CourseraのWeek8を実施しましたので、私のメモを公開します。
Courseraってなんだ?という方はWeek1から御覧ください。
Week8では実践的な教師なし学習について学びます。

Clustering

K-means algorithm

クラスタリングで最もよく使われているアルゴリズム。
クラスタの重心を求めて調整することで正しくデータを分類するする。
入力パラメータは$K$と$X$。
$K$はクラスタリングの数。
$X$はトレーニングデータ。

K-means optimization

$c^{(i)}$は$x^{(i)}$が現在どのクラスタに割り当てられているかを示すもの。
$\mu_k$はクラスタの重心$K$の場所を表す。
$$
J(c^{(1)},,,,c^{(m)},\mu^{(1)},,,,\mu_K)=\frac{1}{m}\sum_{i=1}^m||x^{(i)} - \mu_{c(i)}||^2
$$

K-means initialization

K-meansの初期化はランダムで$m$を抽出して実施するが、抽出される$m$によっては良い結果にならない場合がある。
なので、ランダムで初期化する際に50~1000回程度K-meansの初期化とコスト関数(ディストーション関数)$J$を求める処理を実施する。
最終的にはループで得られた$J$の最小値を選択する。

Choosing the Number of Clusters

クラスタの数を求める方法としてエルボー法がある。
エルボー法はクラスタの数を増やしながら$J$の値を確認していく。($J$の値はクラスタ数に反比例して減るはず。)
$J$の値の減り幅が急に小さくなったあたりが、適正なクラスタ数と考えられる。
ただし、$J$の値の減り幅が急に小さくならずに緩やかになってしまうケースもあり、その場合エルボー法では判断できない。

Data Compression

データの次元を圧縮することで処理をしやすくすることができる。
2次元を1次元に、3次元を2次元に圧縮する。

主成分分析(PCA)

PCAは2次元にプロットされたデータの射影誤差が一番短い線を求めることができる。
これは二乗射影誤差を最小化するようなもので、各点と射影先の点の位置との距離の二乗を最小化するという条件で実施する。

PCAをする前にデータを平均標準化しておく必要がある。
また、データによっては正規化する必要がある。
やり方はほとんど教師あり学習の時と同じ。

データを$n$次元から$k$次元に削減したいとする。
まず共分散行列を計算する。
共分散行列は$\Sigma$で表すが、sumのシグマとは別物。
以下のようにSigmaを求める。
$$
Sigma = \frac{1}{m}\sum_{i=1}^n(x^{(i)})(x^{(i)})^T
$$

また、Ocataveでは以下のようにする。
Sigmaはn x nの行列。
Uもn x nの行列。
[U,S,V] = svd(Sigma);
Ureduce = U(:,1:k);
z = Ureduce' * x;

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした