AIの「機械学習」の手法いろいろ①

AIでいう「機械学習」、様々な手法があります。

目次

機械学習のカテゴリー

AIでいう「機械学習」、様々な手法があります。

  1. 教師あり学習
  2. 教師なし学習
  3. 強化学習
機械学習のカテゴリー概要
教師あり学習与えられた入力データをもとに、そのデータがどのような出力になるのか識別・予測する。

・「回帰問題」(数字を予測する場合=連続する値)
・「分類問題」(カテゴリーなどを予測する場合=連続しない離散値)
教師なし学習入力データそのものが持つ構造・特徴を対象にする。

・顧客層、関係性など。
強化学習行動を学習する仕組み(目的とする報酬を最大化するためにどのような行動を取ればよいかを学習していく)。

・エージェント:環境→状態→フィードバック→判断→行動
※”行動”のよさを報酬(スコア)としてフィードバックしていく

それぞれの強化学習のカテゴリーは、優劣があるわけではなく、対象とする課題の種類が異なるのみ。

「教師あり学習」の手法

  1. 線形回帰
  2. ロジスティック回帰
  3. ランダムフォレスト
  4. ブースティング
  5. サポートベクターマシン
  6. 自己回帰モデル

線形回帰

  • データの分布があったとき、そのデータに最も当てはまる直線を考えるというもの(回帰問題)
  • 「単回帰分析」:1種類の入力だけで行う
  • 「重回帰分析」:複数種類の入力だけで行う
  • 「ラッソ回帰」「リッジ回帰」(線形回帰に”正則化項”を加えた手法)

ロジスティック回帰

  • 分類問題に用いる手法
  • 「シグモイド関数」(2クラス分類問題)
    ・与えられたデータが正例(+1)になるか、負例(0)になるかの確率が算出される
    ・基本的には、0.5を閾値として、正例・負例を分類したり(0.7や0.3にすることもできる)、分類の調整を行ったりすることができる
    例)迷惑メール識別でロジスティック回帰を用いる場合、閾値を高めに設定しておく(=迷ったものは無難に正常メールに分類されるよう設定)
  • 「ソフトマックス関数」(多クラス分類問題)
    ・より多くの種類の分類を行うもの
    ・各種類の出力値を0から1の間、出力値の合計を1になるような出力を行う関数(出力が確率分布になっている)

ランダムフォレスト

  • 「決定木」(分岐路)を用いる手法
  • 複数の特徴量(入力)をもとに予測結果を出力するため、その特徴量がどんな値になっているかを順々に考えていき、それに基づいて分岐路をを作り、1つのパターンを予測する
  • 複数の決定木を作成、各決定木で用いる特徴量をランダムに抽出することで特徴量の組合せ問題に対応する
  • ひとつの決定木ですべての特徴量を用いるのではなく、複数の決定木それぞれでランダムに一部の特徴量を抽出し、抽出された特徴量を用いて具体的な分岐路を作る
  • それぞの決定木に対してランダムに一部データを取り出して学習に用いる(ブートストラップサンプリング)
  • ランダムに抽出した特徴量とデータを用いて決定木を複数作成する=ランダムフォレスト
  • 複数の決定木を作成して、予測結果はそれぞれの決定木で異なるという場合、多数決を取って最終出力を決定する
    (それが1つの決定木の精度が悪くとも、全体的には集合知という形で良い精度が得られるはずという考え方)
  • 「アンサンブル学習」(複数モデルで学習させること)
  • 「バギング」(全体から一部のデータを用いて複数モデルを用いて学習する方法)
    →ランダムフォレストは、バギングの中でも、決定木を用いている手法

ブースティング

  • 複数モデルを学習させるアプローチを取る
  • 複数モデルを直列に(逐次的に)作成(⇔バギング:複数モデルを並列に作成)
  • 「AdaBoost」:直列につないだモデルを順番に学習する際、直前モデルが誤認識したデータの重みを大きくし、正しく認識したデータの重みを小さくしていくことで、誤認識したデータを優先的に正しく分類できるようモデル学習して、最終的に複数モデル(弱識別器)を1つのモデル(強識別器)として統合する
  • 「勾配ブースティング」:データに重み付けをする代わりに、前モデルの予測誤差を関数として捉え、それを最小化するように逐次的にモデル学習を進める(勾配効果法、ニュートン法など既存手法を適用できる)
  • 「XGBoost」というアルゴリズムによって高速に学習計算できる
  • 逐次的に学習を進めていくため、時間がかかるのが通常
  • 誤認識を減らすような学習を進めるため、予測精度が高くなる傾向

サポートベクターマシン

  • 「SVM」:異なるクラスの各データ点との距離が最大となるような境界線を求めることで、パターン分類を行う
  • 「マージン最大化」:上記の距離を最大化する
  • 扱うデータが高次元、データが線形分類できない(直線分類できない)という問題がある
  • 「カーネル関数」:データをあえて高次元に写像し、写像後の空間で線形分類できるようにするための関数
  • 「カーネルトリック」:計算が複雑にならないようにするテクニック

自己回帰モデル

  • 「ARモデル(autoregressive model)」
  • 「時系列データ」を対象とする
  • 「時系列分析」ともいわれる
  • 実現したいことを数式で表すということを素直に行ったモデル
  • 「ベクトル自己回帰モデル」(VARモデル)

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次