| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

機械学習

提供: MyMemoWiki
2021年6月6日 (日) 06:33時点におけるPiroto (トーク | 投稿記録)による版 (→‎機械学習)
ナビゲーションに移動 検索に移動

| TensorFlow | Docker | Ubuntu | 数学 | 統計 | ベイズ統計 | データ解析 | R |

機械学習

基礎


  • 未定義の値はパラメータ、説明はモデル
  • 典型的には、学習と推論の2段階でアルゴリズムを調べる
  • 学習段階での目的は、特徴モデルと呼ばれるデータを記述し、モデルに要約すること
  • 特徴ベクトルは、実際のデータを単純化したもの、学習・推論のステップはデータそのものではなく、特徴ベクトルに依存
  • 測定する値とどの測定値を比較すべきかの設計は、特徴量設計と呼ばれる
  • 調べる特徴の数が多すぎるとパフォーマンスが低下する可能性(次元の呪い)
  • 同一性は構成されている特徴に分解される

学習アプローチ


  1. 訓練データ
  2. 特徴ベクトル
  3. 学習アルゴリズム
  4. モデル

推論アプローチ


  1. テストデータ
  2. 特徴ベクトル
  3. モデル
  4. 予測

距離の測定


学習のタイプ


教師あり学習

  • モデルと呼ばれるラベル付きデータを必要とする
  • 訓練データセットと呼ばれる例の集まりを使用する
教師なし学習

  • 対応するラベルなしでデータをモデリングする
  • 十分なデータがあれば、パターンや構造を発見できる
  • クラスタリング次元削減が強力なツールとなる
強化学習

  • 環境が行動によりどう反応するかを観察することで収集される情報を訓練する
  • どのような行動の組み合わせが最も有利な結果をもたらすかを知るため

アルゴリズム

アルゴリズム 用途 備考
線形回帰 トレンドの予測
ロジスティクス回帰 データを2つのカテゴリに分類し、データセットを分割する最善の方法を見つける
多クラスタロジスティクス回帰 データを複数のカテゴリに分類する
隠れマルコフモデル(ビタビ) 最も可能性の高い隠れた理由を見出す
k平均法 固定数のカテゴリにクラスタリングし、自動的に分割
自己組織化マップ 任意のカテゴリにクラスタリングし、高次元データを2次元平面上へ非線形写像する
オートエンコーダ 入力されたデータを一度圧縮し、重要な特徴量だけを残した後、再度もとの次元に復元
Qポリシーニューラルネットワーク ニューラルネットワークを用いた環境での強化学習
パーセプトロン 教師ありニューラルネットワークを用いたデータの分類
畳み込みニューラルネットワーク 教師ありニューラルネットワークを用いた次世界画像の分類
リカレントニューラルネットワーク ニューラルネットワークを使用して観測に一致するパターンを生成
シーエンス変換(Seq2seq)モデル 自然言語の問い合わせに対する自然言語応答の予測
順位付け 効用の学習によって項目を順位付けするための学習

線形回帰

バリアンスとバイアス

  • バイアスとバリアンス(偏りと分散)のトレードオフ(Bias-Variance Tradeoff)とは?
  • バイアス(偏り:Bias)とは、予測値と真の値(=正解値)とのズレ(つまり「偏り誤差:Bias error」)を指す
    • バイアス(偏り誤差)が大きすぎる場合、そのモデルは入力と出力の関係性を正確に表現できていない(=訓練データでさえも正確に予測できない)といえる。いわゆる「学習不足(=過少適合:under-fitting)」の状態
  • バリアンス(分散:Variance)とは、予測値の広がり(つまり「ばらつき誤差:Variance error」)を指す。この予測誤差は、訓練データの揺らぎから生じる
    • バリアンス(ばらつき誤差)が大きすぎる場合、そのモデルは訓練データのノイズまで学習してしまっている(=テストデータなど未知のデータでは正確に予測できない)。いわゆる「過学習(=過剰適合:over-fitting)」の状態

TensorFlow

import matplotlib
matplotlib.use("WebAgg")
import numpy as np
import matplotlib.pyplot as plt

x_train = np.linspace(-1, 1, 101)
y_train = 2 * x_train + np.random.randn(*x_train.shape) * 0.33

plt.scatter(x_train, y_train)
plt.show()

Ml regression.png

TensorFlow