機械学習
機械学習とは
人工知能の分類の一つで
効率的かつ効果的にコンピュータが学習を行うための理論体系のこと。
コンピュータに高度な認識能力を持たせるためには
パラメータを与えないといけないが
機械学習は入力されたデータをもとに
もっとも適切なパラメータを自動的に学習することができる
従来の暗記学習は未知のデータが来た時に処理が停止する
単に「データから法則性を抽出する統計的手法」とも言われる
機械学習の定義
1959年アーサーサミュエル
「機械学習とはある学習データEからクラス分けするタスクTがありそのパフォーマンスをPとする。そして、学習データEから学習することによってパフォーマンスPを向上させるコンピュータプログラムのこと」
機械学習の3要素
入力データ
機械にわかる決められたフォーマットにする必要がある
データの重複や誤記を取り除く
こうした前処理をデータクレンジングともいう。
アルゴリズム
入力されたデータをもとにデータの持つ特徴量を抽出する。
出力データ
データ形式として、値、判別、カテゴリ分類がある。
機械学習のパフォーマンス向上
1. 学習データの質と量を増やす
量はもちろんだが質を上げる方が大切
次元削減などがこれに当たる。
2. アルゴリズムを改善する
機械学習の目的
潜在空間を探ること。
すべてのデータを集めることはできない。
限られたデータの中で、その背後に隠れた情報で構成された空間を潜在空間という。
そして、潜在空間を構成する変数を潜在変数と呼ぶ。
機械学習に何ができる?
クラス識別
機械学習で最も利用される。
数ある候補の中から最も確度が高い候補を推定すること。
リスク判定や画像認識に使われる。
アルゴリズムはSVM、ランダムフォレスト、深層学習がある。
値予測
モデルをもとに、対象データから値を予測する。
クラス識別とにているが出力が異なる。
価格予測やコンバージョン予測に使われる。
アルゴリズムは回帰分析や重回帰分析
クラスタリング
似たもの同士を自動的にグルーピングする。
顧客のグルーピングなどに使われ
アルゴリズムは階層化クラスタリングやk平均法、アソシエーション分析がある。
次元削減
考慮すべきパラメータの数を減らす
データ圧縮で使われ
アルゴリズムは主成分分析やオートエンコーダがある
機械学習のプロセス
機械学習ではコンピューターが入力データを受け取り
学習モデルを使って計算結果を出力します。
最初に行うのは、
期待される出力データと学習モデルが計算した結果を比較し学習モデルを修正する作業
修正を繰り返した後に最終的な学習モデルを保持する。
統計と機械学習の違い
機械学習の基礎知識
機械学習のデータの与え方
教師あり学習
問題と答えがセット
教師なし学習
問題だけ
クラスタリング
次元削減
強化学習
問題と報酬あげる
分類と回帰
機械学習のプロセスとコア技術
基本ワークフロー
機械学習システムの開発は通常と比べ試行錯誤が多く出戻りが発生しやすい。
まずは解決したい問題がそもそも機械学習に向いているのかどうかを見極めることが大切。
1. 全体設計
1. 問題の定式化
何を求めているのか、機械学習を利用する目的を明確にする。
2. システム設計
機械学習の詳細を除いた全体のフローを考える。
データをどこから取得して、最終的にどういった形で利用するかをしっかり決める。
3. データの収集
2. 機械学習の設計
1. 機械学習アルゴリズムの選択
適用する問題に合わせて、教師あり、なし、強化学習などの各種アルゴリズムから適切なものを選ぶ
2. データの整形と特徴量エンジニアリング
どのようなデータを入力するか決める。
余分なデータがあると予測性能が低下する恐れがあるため
余分なものの削除や整形、別形式への変換などを行う。
3. モデルの学習
実際にデータを使って学習させる
4. 予測結果の検証と評価
精度の評価基準を事前に決め、評価や検証を行う。
汎化性能
ホールドアウト検証
k-分割交差検証
性能評価
5. ハイパーパラメータのチューニング
性能向上のためにアルゴリズムに指定する値の一種であるハイパーパラメータを調整する。
3. 運用
1. システムの運用
機械学習において重要な事は
データを学習することで未知のデータの予測や分類を行えるようになること。
この未知のデータに対する予測や分類の精度のことを汎化性能と呼ぶ。
未学習と過学習
機械学習のアルゴリズム