【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時間程度で学べます。
講義の内訳
講義の内訳は以下の通りです。
<K-Means法によるクラスタリング>
■Unsupervised Learning: Introduction
■K-Means Algorithm
- K−meansアルゴリズムでは事前に、何個のクラスターに分割するかを決める。
- K個のクラスターに分割する場合、各トレーニングデータから最も近いクラスターの重心点を求めて、各トレーニングデータに1〜Kのラベルをつける。
- 各クラスターの重心点の座標は、各クラスターのラベルがついたトレーニングデータの平均値で算出する。
■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
■Principal Component Analysis Algorithm
■Reconstruction from Compressed Representation
- 圧縮データから元のデータを復元する方法を説明。
■Choosing the Number of Principal Components
- データを何次元まで圧縮していいかの目安を説明。
圧縮したことによるデータの欠損率が1%(=99%の情報が残っている)を目安とする。 - svd関数のアウトプット(S:正方行列)を使うと、欠損率を簡単に計算できる。
■Advice for Applying PCA
- 教師あり学習のインプットデータの次元数をPCAで削減することで、教師あり学習をスピードアップできる。
- PCAで次元削減することで、データ圧縮によりデータ量を減らしたり、機械学習をスピードアップできる。
また、高次元データの視覚化ができる。 - PCAを使うべきではない例を紹介。
どういう人におすすめか
「教師なし学習はどうやってやるのだろうか?」、「データ圧縮ってどうやってるのだろうか?」という疑問を抱えた人が、具体的なアルゴリズムを学べる良い授業だと思います。
「Andrew Ng」氏の説明はとても分かりやすいため、是非動画を見てみてください。