継続力

IT系サラリーマンが、書籍や講座から学んだこと、効果があった勉強方法を紹介します。

【Coursera】「Machine Learning(機械学習) Week 8」〜教師なし学習を学びたい〜

前回までは、教師あり学習アルゴリズムについて学んできました。

今回はついに、教師なし学習アルゴリズムについて学びます。
また、データ圧縮の仕組みについても学べます。

<過去の記事>

【Coursera】「Machine Learning(機械学習) Week 1」〜機械学習の種類を学びたい〜 - 継続力 
【Coursera】「Machine Learning(機械学習) Week 2」〜複雑なケースでの回帰分析を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 3」〜分類の具体的なアルゴリズムを学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 4」〜ニューラルネットワークの概要を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 5」〜ニューラルネットワークの実装方法を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 6」〜機械学習アルゴリズムの評価方法を学びたい〜 - 継続力
【Coursera】「Machine Learning(機械学習) Week 7」〜サポートベクターマシン(SVM)を学びたい〜 - 継続力


講師

アンドリュー・エン(Andrew Ng)氏です。
人工知能研究の第一人者であり、Google Brainの共同設立者、 Baiduの元副社長兼チーフサイエンティスト、スタンフォード大学の教授という凄い経歴の持ち主です。 

 

講義の概要

「Week 8」では、以下の内容が、約5時間程度で学べます。

ja.coursera.org


講義の内訳

講義の内訳は以下の通りです。

 

<K-Means法によるクラスタリング
■Unsupervised Learning: Introduction


■K-Means Algorithm


■Optimization Objective

  • K-means法の目的関数を説明。

 

■Random Initialization

  • K-means法のクラスター重心点の初期化方法を説明。
  • ローカルミニマムへの収束を回避する方法を説明。


■Choosing the Number of Clusters

  • クラスター数Kの選び方を説明
  • クラスター数Kを決めるための、Elbow methodについて説明。
  • クラスター数Kを増やせば、目的関数はどんどん小さくなるはずだが、ローカルミニマムに陥っていると、クラスター数Kを増やした場合に目的関数が大きくなることがある。
    この場合は、再度クラスターの重心点を初期化し、再計算すべき。

 

<PCA(Principal Component Analysis)アルゴリズムによる次元削除>
■Motivation I: Data Compression

  • データ圧縮の手法として、次元削除の方法を説明。


■Motivation II: Visualization

  • 高次元のデータを低次元(二次元、三次元)のデータに変換し、視覚化する方法を説明。


■Principal Component Analysis Problem Formulation

  • PCA(Principal Component Analysis)でできること、アルゴリズムを説明。
  • PCAでは、すべてのデータセットに対する距離の合計が最小になるようなベクトルを算出する。


■Principal Component Analysis Algorithm

  • 共分散行列を算出→共分散行列の固有ベクトルを算出→k次元に削減したい場合、元のデータセットに「固有ベクトルの先頭からk個のベクトルを抽出した行列」を掛けて、次元削減を行う。


■Reconstruction from Compressed Representation

  • 圧縮データから元のデータを復元する方法を説明。


■Choosing the Number of Principal Components

  • データを何次元まで圧縮していいかの目安を説明。
    圧縮したことによるデータの欠損率が1%(=99%の情報が残っている)を目安とする。
  • svd関数のアウトプット(S:正方行列)を使うと、欠損率を簡単に計算できる。


■Advice for Applying PCA

  • 教師あり学習のインプットデータの次元数をPCAで削減することで、教師あり学習をスピードアップできる。
  • PCAで次元削減することで、データ圧縮によりデータ量を減らしたり、機械学習をスピードアップできる。
    また、高次元データの視覚化ができる。
  • PCAを使うべきではない例を紹介。

 

どういう人におすすめか

教師なし学習はどうやってやるのだろうか?」、「データ圧縮ってどうやってるのだろうか?」という疑問を抱えた人が、具体的なアルゴリズムを学べる良い授業だと思います。
「Andrew Ng」氏の説明はとても分かりやすいため、是非動画を見てみてください。

ja.coursera.org