機械学習(Machine Learning)の勉強を始めました。第3回
今回は、以下の本を読んでみて、機械学習の概要みたいなものを、少しだけ、まとめてみました。興味のある方は、以下の本の第1章を是非、読んでみてください。Pythonをこれから勉強したいと思われている方にもお勧めです。
「Python Machine Learning: Unlock Deeper Insights into Machine Learning With This Vital Guide to Cutting-edge Predictive Analytics」
Sebastian Raschka (著)
出版社: Packt Publishing (2015/9/23)
言語: 英語
ISBN-10: 1783555130
ISBN-13: 978-1783555130
この本によれば、どうも、機械学習は、大きく以下の3タイプに分類できるようです。
- Supervised Learning
- Unsupervised Learning
- Reinforcement Learning
まず、Supervised Learningというのは、出力データにラベルを付けられるもので、例えば、ウイルスに感染しているか否か、スパムメールかどうか、花の種類といったように、ラベルを付けて分類できるデータを扱うものになります。あらかじめトレーニング・データ(入力データとラベル出力の組合せ)を用意しておき、このトレーニングデータを基に機械学習アルゴリズムを適用することで、「predictive Model」を作成します。そして、新しい入力データに対して、このpredictive Modelにより、ラベルを予想します。これに対して、Unsupervised Learningというのは、出力データにラベルをつけることができないもので、分析してみたら、なんとなくデータの塊(クラスター)に分類できるようなものを指すようです。Reinforcement Learningというのは、「Agent」というのが常に「Environment」の状態を見張っていて、Environmentからの「Reward」が最大になるように「Action」を行う仕組みのようです。例えば、チェスなどのゲームで、「勝つ」というRewardを最大限にするように次の一手(Action)を計算するといったようなものです。
Supervised Learningを例に、以下に機械学習処理の流れを説明します。
- Preprocessing
- Learning
- Evaluation
- Prediction
(1) Preprocessing
どんなに優れた機械学習アルゴリズムを用いても、入力データが適切でないと、十分な能力を発揮することができません。そこで、機械学習では、入力データが機械学習アルゴリズムに良く適合するようにデータの前処理を行う必要があります。この前処理には、以下のようなものがあります。
- Feature Selection ( Sequential Backward Selectionなど)
- Feature Extraction (主成分分析,LDAなど)
- Dimension Reduction(上記以外に、kernel PCAなど)
- Scaling( Standardization, Regulation)
- Sampling
(2) Learning
- Model Selection
- どんなに優れた機械学習アルゴリズムを用いても、たった1つのモデルだけで、全ての入力データに対応することはできません。そこで、入力データの性質に合わせて、ベストなモデルを選択することが重要となります。代表的な機械学習アルゴリズムとして、Perceptron, Adaptive Linear Neuron(Adaline),Logistic regulation, Support Vector Machine(SVM),Radial Basis Function kernel(RBF kernel), Decision tree, Random forests, K-nearest neighbors(KNN)などがあります。
- Cross-Validation
- Performance Metrics
- Hyperparameter Optimization
(3)Evaluation
Rawデータを、そのまま全部、トレーニング・データとして用いるのではなく、Rawデータをトレーニング・データとテスト・データとにランダムに分割します。トレーニング・データとテストデータの比率は、60% : 40%, 70% : 30%,もしくは75% : 25% が一般的です。predictive Modelの作成には、Rawデータの内、このトレーニング・データだけを用いて、作成します。テスト・データはモデルの作成には使用しません。そして、評価の際に、テスト・データを用いて、評価を行います。評価の結果が良くない場合は、(2)Learningに戻って、モデルの選択の変更、各種パラメータのチューニングなどを行い、機械学習の精度を向上させます。
(4)Prediction
最終モデルが確定したら、全く新規の入力データを用いて、出力ラベルの予測を行います。