16
19

More than 5 years have passed since last update.

Coursera Machine Learning 総復習用メモ

Posted at

はじめに

もうすぐCoursera Machine Learningコースを終えることができそうです。
week11 のラストで、この動画で学んだことの一覧が映されてました。

Supervised Learning
    Linear regression
        Hypothesis
        Parameter
        Cost
        GradientDecent
    logistic regression
    neural networks
    SVMs

Unsupervised Learning
    K-means,PCA,Anomaly detection

Special application/special topics
    Recommender systems
    large scale machine learning

Advice on building a machine learning system
    Bias/Variance
    Regularization
    deciding what to work on next
    evaluation of learning algorithms
    learning curves
    error analysis
    ceiling analysis

そこで自分の復習のために、スライドを見直しながらメモを取ったので共有します。
なお、私の理解度に応じてメモの量が変わっているように思います、ご了承ください。

教師あり学習

線形回帰

  • 仮説:hθ(x)=θ0+θ1*x
  • パラメータ
  • コスト:Jθ(x) = 1/2m Σ (hθ(x)-y)^2
  • (バッチ)勾配降下法:(すべてのトレーニングデータで)傾きに学習率αをかけたもので調整
  • 複数のfeature
  • Feature Scaling
  • Mean normalization
  • featureの選び方:x^2、ルートx
  • 正規方程式:勾配降下法を使わずに、iterateせず計算でパラメータを算出

ロジスティック回帰

  • Classification:SpamEmail,OnlineFraud。分類問題は0~1,ロジスティック回帰がよく当てはまる。
  • htheata(x) = g(θ’*x)
  • g(z) = 1/(1 + e^-z)
  • hθ(x) = 1/(1+e^-θ’*x)
  • シグモイド関数、ロジスティック関数と呼ぶ
  • Decision Boundary/Non-linear decision boundaries
  • コスト:y=1の時は-log(hθ(x)),y=0の時は-log(1-hθ(x))。まとめると、J(θ) = -1/m*Σ(y * loghθ(x) + (1-y)log(1-hθ(x)))
  • θ = θ - α*Σ(hθ(x)-y)x
  • 他にConjugate gradient,BFGS,L-BFGSなどの最適化アルゴリズムがある
  • Multiclass classification。それぞれの確率を求め、最大の確率のものと予測

ニューラルネットワーク

  • 例:画像のピクセルから車かどうかを判定する
  • 脳のニューロンからきてる。
  • Input layer,Hidden layer,Output layer
  • bias unit,activation unit
  • matrix of weightsΘ
  • フォワードプロパゲーション
  • OR/XOR/XNOR/AND
  • 手書き文字分類(の動画)
  • Multiple output units/One-vs-all。Pedestrian,car,motorcycle,truck.
  • コスト
  • バックプロパゲーション:最急降下法だと、コスト、傾きを計算する必要。
  • unrolling parameters:複数のΘをベクトルに変換
  • Gradient Checking:実装がうまくできてるかの確認。あるθでの傾きは、(J(θ+ε)-J(θ-ε))/2ε に近いはず。
  • Random initialization: Θはすべてゼロで始めてはいけない。
  • 例:自動運転

SVMs

ロジスティック回帰から考える

  • hθ(x)=1/(1+e^-θ’*x)
  • y=1 に対しては hθ(x)=1が求められ、その場合はθ’*x>>0
  • y=0 に対しては hθ(x)=0が求められ、その場合はθ’*x<<0
  • コストは-y*log(1/(1+e^-θ’x))-(1-y)*log(1-1/(1+e^-θ’x))。y=1の場合と0の場合について考える。(図示)
  • 決定境界はマージンが大きくなるように定まる。
  • Cの値が大きければ、外れ値の影響を大きく受ける

カーネル

  • landmarkを選ぶ
  • C=1/λ
  • Large σ^2:higher bias
  • Small σ^2:higher variance

教師なし学習

例:マーケットセグメンテーション、ソーシャルネットワーク分析、コンピュータクラスタ、銀河データ分析

K-means

  • K個のクラスタに分ける手法。
  1. 重心を適当に決める
  2. データ1つ1つに対し、最も近い重心の番号を振る
  3. 重心をそのデータの平均値に移動する。
  4. 2と3を繰り返す。
  • ランダムイニシャライゼーション
    • ランダムに選んだデータを重心としK-meansを行い、最終的に算出されたコストが最も小さいものを選ぶ
  • クラスタ数の決め方
    • Elbow method(コストが下がりにくくなったKにする)
    • 目的によって決める(例:Tシャツのサイズ)

次元削減

  • 2次元を1次元にしたり。
  • 目的
    • データの圧縮(メモリ/ディスクの削減。学習スピードアップ)
    • 2次元なら図示可能(例:国のGDP等)

PCA(主成分分析)

  • 次元削減する際に、どんなN次平面に投射するのがProjectionErrorを最小化できるか。
  • PCAと線形回帰は異なる
  1. はじめにfeature scaling,mean normalization実施
  2. 共分散行列の計算(covariance matrix): Σ= 1/m * Σ(X*X’)
  3. 固有ベクトルの計算(eigenvector):[U,S,V] = svd(Σ)
  4. Uを用いる:Ureduce=U(:,1:k)
  • 次元削減したものを再構築(reconstruction)

  • 主成分の数 k の決め方

    • Sを使う。分散が99%以上維持される最も小さなkにする
  • 「overfittingを解消するためにfeatureを減らす」ことを目的としてPCAを使わないこと。正規化項を加えよう。

  • PCAを実装する前に、まずはraw dataで実装しよう。

Anomaly detection

  • ノーマルでない確率を求める
  • 例:飛行機エンジンのエラー、Fraud、製造、データセンター

ガウス分布

  • 平均 μ
  • 分散 σ^2
  • その事象が起きる確率p(x)を求め、εより小さい(起きづらい)ければanomaly

データの数

  • normal 10000,anomalous 20 なら
  1. train: normal 6000,cv: normal 2000 anomalous 10,test: normal 2000,anomalous 10
  2. train: normal 6000,cv: normal 4000 anomalous 10,test: normal 4000 anomalous 10

評価方法

  • Precision/Recall
  • F1スコア

  • εはcvで決めても良い。

Anomaly detectionと教師あり学習のどちらを使うべきか

  • positive exampleが少ない場合
  • negative exampleが大き場合
  • anomalなもののパターンが多い場合(これまでのpositiveからどんなものか規則性がわからない。今後起きるanomalが予測できない)

featureの選び方

  • ガウス分布になってない場合
  • 二つのfeatureのp(x)がどちらも大きくてもanomalousな場合
  • CPU load/network traffic

2つのfeatureに相関のようなものがある場合

original model/multivariate gaussian

Special application

レコメンド

  • 例:映画レーティング
  • Userの好みθと映画X
  • romance,actionもあった(がそんなものはそもそもわからない)
  • Xのそれぞれの距離から似ている映画を探す
  • mean normalization:何も見てない人に何を推薦すべきか

大規模データの機械学習

  • It’s not who has the best algorithm that wins. It’s who has the most data.
  • バッチ最急降下法(xすべて)
  • 確率的最急降下法(x 1つ1つ)
  • ミニバッチ最急降下法(x 幾つか)

収束してるかチェック

  • バッチ:Jtrain
  • 確率的:例えば1000個の平均

学習レートαを徐々に減らすやり方

Online learning:データが届いたら即学習、捨てる

Map-reduce:計算を分割できるならコンピュータ、Coreに分担させて、結果を結合

機械学習システムを構築するにあたって

バイアス・バリアンス(underfitting,overfitting)

  • overfittingかunderfittingかを知ることで、何をすべきかを考えます。
    • overfitting:feature多すぎてtrainデータに当てはまりすぎて新たなデータを正しく予測できない

正則化(regularization)

  • パラメータにペナルティを与えてsimpleなhypothesisに。λ。

学習アルゴリズムの評価、次に何をすべきか

選択肢例は下記

  • Get more training examples
  • Try smaller sets of features
  • Try getting additional features
  • Try adding polynomial features
  • Try decreasing λ
  • Try increasing λ

仮設の評価:テストセット

モデルの選定

  • train,validation,test
  • featureはいくつがいいか
  • バイアス/バリアンスの診断
  • underfitting,overfitting
  • 正則化とバイアス/バリアンス
    • λの数値をいくつにするか
  • 学習曲線
    • JtrainとJcvを、横にデータセットの数、縦にerrorで描く。
  • ニューラルネットワークも小さければunderfitting、大きいとoverfittingしたりする

error analysis

  • 例:スパムメールの分類(w4tches,Med1cine)
  • 簡単に実装し、学習曲線でデータを集めるべきか、featureを増やすべきか考える。
  • 分類ミスが起きていたら、ミスしたメールを実際に見て。タイプを見たり、どんなfeatureが正確性をあげるか考える。
  • 実際にやってみて、エラー率が下がるか検証する
  • 歪んだクラス(skewed classes)
    • 例:がん患者の判定率
    • Precision/Recall
    • F1スコア

ceiling analysis(week11未視聴)

終わりに

Andrew Ng 先生ありがとうございました。

16
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
19