機械学習

機械学習とは

機械学習(Machine Learning)は

蓄積されたデータを解析し有用なルール、規則、判断基準などを抽出する技術、手法

の総称です。

機械学習は目的に応じて大きく2つに分類できます。

  • 教師あり学習: 「入力」と「対応する出力」のデータから入出力関係を求める
  • 教師なし学習: データから背後に潜む構造を抽出する

時々、「教師なし学習の方が教師例がなくても良いので優れている」や「教師あり学習の方が高精度で優れている」といった比較を見かけますが、あくまで解きたい課題に応じて使い分けるものです。

また、「深層学習(Deep Learning)」を「機械学習の進化版」や「深層学習こそがAIであって機械学習はAIではない」といった意見を見かけますが、技術的には

  • 教師あり学習の1手法であるNeural Networkを多層化したものがDeep Neural Network(DNN)
  • DNNの設計、学習手法の総称が深層学習

と捉えるのが自然なので、ここでは「教師あり学習」の一部と捉えます。

教師あり学習の代表的手法

教師あり学習(Supervised Learning)は「入力」と「対応する出力」のデータから入出力関係を求める手法です。一般には[math]N[/math]個の入出力データ

  • 入力: [math]n[/math]次元のベクトル[math]\mathbf{x}_i\in \mathbb{R}^n[/math]
  • 出力: [math]y_i\in \mathbb{R}[/math]

の組[math](\mathbf{x}_i,\ y_i),\ (i=1,2,\dots,N)[/math]から入出力関係をうまく「近似」する関数[math]f[/math]

[math]

y_i \approx f(p; \mathbf{x}_i)\quad i=1,2,\dots,N
[/math]

を求める問題として定式化されます。この関数[math]f[/math]を「機械学習モデル」や単に「モデル」と呼び、関数[math]f[/math]やそのパラメタ[math]p[/math]を求める計算方法を「学習アルゴリズム」と呼びます。

関数[math]f[/math]の候補や「近似」のものさしをどうするかで様々な手法があります。

  • 線形回帰: 入力データ[math]\mathbf{x}[/math]の線形結合で近似
  • 決定木/回帰木: 入力データ[math]\mathbf{x}[/math]のIf-thenルールで近似
  • Neural Network: 入力データ[math]\mathbf{x}[/math]の線形結合と活性化関数の組合せで近似
  • Support Vector Machine: 入力データをカーネル関数で変換し線型結合で近似

最近では決定木/回帰木を多数組合せた「Random Forest」、「eXtreme Gradient Boosting」や複数のモデルを組合せたアンサンブル学習も人気があります。

高精度な機械学習モデルを作るには

  • 手法の前提、動作、計算量や結果の解釈方法
  • 手法の前提や動作に合わせた入力データの加工
  • 未知データに対する精度評価

を理解しておく必要があります。本ブログでも

  • 各手法の考え方と特徴
  • 特徴量エンジニアリング
  • モデル評価方法

として紹介していく予定です。

教師なし学習の代表的手法

教師なし学習(Unsupervised Learning)はデータから背後に潜む構造を抽出する手法です。求めたい「背後に潜む構造」に応じて以下の手法があります。

  • クラスタリング: データ内の「似たグループ」を抽出
    • K平均法: データをK個のグループに分割
    • デンドログラム: データを階層的にグループ化
  • 次元圧縮: 多数の変数で表現されるデータを少数の変数で表現
    • 主成分分析: 少数の主成分ベクトルの線型結合で表現
    • 自己組織化マップ: Neural Networkを使ってデータを低次元に変換

教師なし学習はデータを概観したい場合や教師あり学習の類似する入力データを集約し、学習しやすくする際などに用いられます。

スポンサーリンク