機械学習には3つの種類がある。 解きたい問題に合わせた手法を選択する。
◆教師あり学習には、特徴量と教師データのペアが必要であることを理解する
◆教師あり学習における、分析対象に応じた問題の種類を列挙・説明できる
◆代表的な教師あり学習モデルの基本概念を理解する
◆目的やデータの特性・量に応じて、適切な教師あり学習モデルを選択できる
◆ビジネスにおける教師あり学習の応用例を説明できる
・迷惑メール判別
・過去の売上から将来の売上を予測する
・動物の画像が、何の動物化を識別
・翻訳
特徴量と正解ラベルが与えられたデータをもとにルールやパターンを学習するモデル
予測する。 分類問題、回帰問題を解くときに使用する
【分類問題】:データが属するカテゴリ(離散値)を予測する問題
(迷惑メールかどうか、画像が犬か猫か、文章を事前に決めたカテゴリーに分類)
【回帰問題】:連続値(体重・温度など)を予測する問題
(温度・気温からビールの売上を予測、駅からの距離や床面積から家賃を予測)
【線形回帰】:線形回帰は回帰問題に用いる
目的変数を1つ以上の説明変数を使って予測する手法(y=ax+b)
正則化項を加えたラッソ回帰、リッジ回帰がある。
【重回帰分析】:目的変数を複数の説明変数を使って予測する手法(y=a1x2+a2x2+a3x3+b)
【ロジスティック回帰】:ロジスティック回帰は分類問題に用いる(2値分類)
出力が2種類ならシグモイド関数(多クラス分類)を、
3つ以上ならソフトマックス関数を使う(多クラス分類)
【決定木 (dicision tree)】:樹形図によってデータ分析を行う手法。
特徴量に基づいてグループを分割する。
またはデータから決定木を作る機械学習の手法のこと
【ブートストラップサンプリング】:各決定木に対してランダムにデータを取り出して学習すること
【アンサンブル学習】:複数モデルを学習させること。
ランダムフォレスト、バギング、ブースティングなどがある
【ランダムフォレスト】:複数の決定木を作成し、各決定木で用いる特徴量をランダムに抽出。
各決定木の結果の多数決で分析・予測の結果をまとめる
1つの決定木の精度が悪くても全体的には集合知として良い精度が得られる
【バギング (bagging)】:全体から一部のサンプルデータを取り、複数モデルを並列的に学習する
各モデルの出力の平均もしくは多数決で決める手法
ランダムフォレストはバギングの中で決定木を用いる方法である。
【ブースティング】:バギング同様に複数のモデルを学習させるが、モデルを直列に作成
バギングは複数モデルを並列に作成
【AdaBoost】:ブースティングの中でも一般的な手法。直列につないだモデルを順番に学習し、
直前のモデルが誤認識してしまったデータの重みを大きくし、
優先的にそのモデルを学習する。最終的に複数モデルを1つに統合する
【勾配ブースティング】:重みづけする代わりに直前のモデルの誤差を関数として捉え、
それを最小化するよう逐次的にモデルの学習を進める
XGBoostアルゴリズムを用いて高速に学習可能
【サポートベクターマシン (SVM)】:分類で使用するアルゴリズム
異なるクラスの各データ点との距離が最大(マージン最大化)
となるような境界線を求めることでどちらのクラスに属するかの
パターン分類を行う。 マージンはヘッセの公式で求める
2クラス分類の他、多クラス分類や回帰問題でも使用される
【カーネル】:SVMで扱うデータが高次元で線形分類できない場合、あえて高次元に
写像することで線形分類できるようにする手法
【カーネルトリック】:カーネル関数を用いる際、計算が複雑にならないようにするテクニック
【時系列分析】:時間的な順序で収集されたデータを分析し、特徴を抽出する手法
人間の神経回路を模した数理モデル。
1958年 単純パーセプトロン 入力層と出力層からなる
他のニューロンから信号を受け取り、一定の信号を受け取ると次のニューロンに信号を送る
入力値の重要度・貢献度を数値化したものを重みという。W1,W2,W3
正しい予測ができるように重みを調整することを学習という。
モデルの自由度を挙げるためにバイアスを使用する b
意図的に偏りを作ることで求める結果を出力しやすくする。
次の層に受け渡すときの調整役が活性化関数
<活性化関数の種類>
・シグモイド関数 ・ソフトマックス関数 ・ReLU関数 ・Leaky ReLU関数
多層パーセプトロン は、入力層・隠れ層・出力層にわかれている。
非線形分類が可能になった。
層が増えることで重みも増える。
誤差逆伝播法:出力層から入力層にかけて重みを調整していく手法
時間的な順序で収集されたデータを分析し、特徴を抽出する手法
具体的な手法
<自己回帰モデル (ARモデル)>:過去のデータを用いて予測する
t-1、t-2と過去に遡る
x:時系列データ
w:重みづけパラメータ、
c:データの偏りを調整する定数、
ε:データに含まれるノイズ(モデル化できないもの)
<ベクトル自己回帰モデル (VARモデル)>:
自己回帰モデルを多変量に拡張したもの。
説明変数が複数になったモデル。
複数の場合、Xt-iはベクトルとなる。そのときこう呼ぶ
<移動平均モデル(MAモデル)>: 移動平均を用いて予測するモデル
<自己回帰移動平均モデル(ARMAモデル)>: ARモデルとMAモデルを組合せたもの
<自己回帰和分移動平均モデル(ARIMAモデル)>:
差分を取った時系列データにARMAモデルを適用したもの
◆教師なし学習には、特徴量のみが必要であることを理解する
◆教師なし学習における、分析対象に応じた問題の種類を列挙・説明できる
◆代表的な教師なし学習モデルの基本概念を理解する
◆目的やデータの特性・量に応じて、適切な教師なし学習モデルを選択できる
◆ビジネスにおける教師なし学習の応用例を説明できる
・ECサイトの売上データから、どういった顧客層があるのかを識別する
・データの各項目間の関係性を把握する
【クラスタリング】:類似度でデータをグルーピングする手法。正解ラベル不要。
【k-means 法】:データをk個のグループに分ける。kは人が設定する。並列に分類
最初は適当にk個のクラスタに分ける。それぞれの重心を求める。
重心とデータとの距離が最小となる位置に重心を移動し、重心を再計算する。
重心が移動しなくなるまでこれを繰り返す。
【ウォード法】:各データの平方和が小さい順位にクラスタを作る。階層構造に分類。
【デンドログラム】:樹形図のこと。クラスタリングの各クラスタをデンドログラムで表す。
【主成分分析 (PCA)】:特徴量間の相関を分析しデータ構造をつかむ方法。次元削減する
相関をもつ多数の特徴量から相関のない少数の特徴量へ。
【特異値分解 (SVD)】:こちらも次元削減する手法。文章データに用いる。
【多次元尺度構成法】:2次元への次元削減・可視化手法の一種
【 t-SNE】:2次元・3次元への次元削減・可視化手法の一種
【協調フィルタリング】:レコメンドシステムに用いる手法。
ユーザ間の類似度を定義し、類似度の高いユーザが購入済みの商品を推奨。
【コールドスタート問題】:協調フィルタリングは事前に参考となるデータがないと
推奨を行うことができないという問題。
【コンテンツベースフィルタリング】:コールドスタート問題を回避するため、
ユーザではなく商品側に何かしらの特徴量を付与し、
特徴が似ている商品を推奨する方法。
【トピックモデル】:クラスタリング手法だが、k-means法やウォード法と異なる点は、
複数のクラスタにデータを分類する。潜在的ディリクレ配分法 (LDA)
【次元削減】:特徴量を少なくすること。データ分析がしやすくなり、計算量を減らせる。
教師なし学習:特徴量と正解が与えられていないデータをもとにルールやパターンを学習する手法
【クラスタリング】:データを類似度に基づいてクラスタに分類、事前にカテゴリ不要
購入データから顧客を分類、記事の文章を分類
【次元削減】:データを要約し、扱うデータを減らす
数学・理科を理系、国語・社会を文系にまとめるなど
データの意味を保ったまま要約し、特徴量を減らすことを計算量を減らす
データを類似度に基づいてクラスタに分類、事前にカテゴリ不要
データの類似度に基づいてクラスタ分けする手法のこと
→大量のデータをコンピュータが自動的に分類してくれる
クラスタ分けされたものは人間が見て解釈する必要がある
(購入データから顧客を分類、記事の文章を分類)
<種類>
・ソフトクラスタリング 各データが1つ以上のクラスタに属するクラスタリング
・ハードクラスタリング 各データが1つのクラスタに属するクラスタリング
・階層クラスタリング 階層を作りながらクラスタに分けていく手法のこと
・非階層クラスタリング 階層を作らずにクラスタに分けていく手法のこと
<具体的な手法>
■ k-means法(階層なし、ハードクラスタリング)
データをあらかじめ設定したクラスタの数(k個)に分類する
最初は適当にk個のクラスタに分ける。それぞれの重心を求める。
重心とデータとの距離が最小となる位置に重心を移動し、重心を再計算する。
重心が移動しなくなるまでこれを繰り返す。
■ ウォード法(階層あり、ハードクラスタリング)
各データの平方和が小さい順位にクラスタを作る。階層構造に分類。
分散が最小になるようにデータをクラスタに分ける
デンドログラムで表すことができる。
■ 群平均法(階層あり、ハードクラスタリング)
データをまとめる時距離の平均を使用する
主成分分析もデータを分類する手法だが、クラスタリングとは考え方が異なる。
特徴量をまとめてより少ない特徴量に要約していく手法(次元削減)
特徴量を主成分と呼ぶ。
少量の正解ラベル付きデータで学習した後に
大量の正解ラベルなしのデータで学習する手法
教師あり学習より精度は落ちるがコストが安い。
与えられた環境下で、報酬が最大となるように行動を学習していく手法
報酬とはエージェントの行動を評価するスコア
これを繰り返し、累積報酬Rtを最大化するような状態stと行動atの対応関係を求める
◆強化学習の基本概念を理解する
◆強化学習と教師あり学習および教師なし学習との差異を説明できる
◆価値関数の学習と、方策の学習の2つの代表的なアプローチを理解する
◆各アプローチに属する代表的な強化学習手法について概要を理解する
◆ビジネスにおける強化学習の応用例を説明できる
【バンディットアルゴリズム】:強化学習は報酬最大化のため、行動の選択肢を
どこまで考慮すべきかが課題。そこで必要になる概念が
(活用):知っている情報の中から報酬最大となる行動を選択
(探索):知らない情報を獲得する行動を選択。もっと報酬が高い行動はないか?
活用と探索はトレードオフの関係にありバランスが重要。
そこで本アルゴリズムが用いられる。下記の手法がある
(ℇ-greedy方策):基本的に活用で一定確率ℇで探索する
(UCB方策):期待値の高い選択肢を選ぶのを基本とし、試した回数が
少ない行動は優先的に選択
【マルコフ決定過程】:状態遷移にマルコフ性を仮定したモデルのこと
(マルコフ性):状態Stから状態St+1に遷移する確率は、状態Stのみに依存し、
それより過去の状態St-1などには依存しないという性質。
強化学習では環境に対してマルコフ性を仮定することで計算量を軽減している。
【行動価値関数】:最適な方策を求める代わりに、状態や行動の価値を設定し、
その価値を最大化するよう学習するアプローチ。
具体的には状態価値関数と行動価値関数を導入する。
(行動価値関数):単に価値関数というとこちらを指す。Q値とも呼ぶ。
Q値を最適化できれば最適な行動が選択できる。
Q値を最適化する手法は、Q学習やSARSAがある
Q学習:行動価値関数を最適化するよう学習する手法
価値反復法ベースの手法で方策オフ型の学習方法
【方策勾配法】:直接 最適な方策を見つけようとするアプローチ
方策をあるパラメータで表される関数とし、そのパラメータを学習する。
ロボット制御など行動の選択肢が大量にある場合に用いる。
方策勾配法の具体的な手法
(REINFORCE):AlphaGoにも活用されている
(Actor-Critic):価値関数と方策勾配法の考え方を組み合わせた手法。
行動を決めるActorと方策を評価するCriticから成る。
◆基本的なモデルの選択基準、評価方法並びに評価指標を理解する
◆訓練誤差と汎化誤差の違いを説明できる
◆データの量や目的に応じて、汎化性能を推定する検証方法を適切に選択できる
◆汎化性能の悪化につながる代表的な現象を列挙・説明できる
◆モデルの適用環境、ビジネス課題、並びに目的に応じて、適切な評価指標・モデルを選択できる
◆モデルの複雑さを上げることによるメリット・デメリットを理解した上で、
モデル選択の指針を説明できる
【ホールドアウト検証】:データを「訓練データ」と「テストデータ」に1回だけ分け、
訓練と評価を行う。7対3などに分けることが多い。
データの偏りにより精度が落ちることがある。シンプル・短期間
【k- 分割交差検証】:データをk個に分け、そのうち1個をテストデータ、
その他を訓練データとする。テストデータと訓練データを
入れ替えてk回 学習と評価を行う。データが少なくても有効。
データの偏りがない。
【交差検証】:データを分割して評価すること。分割して訓練データとテストデータを交換する。
予測値 | ||||
Positive | Negative | |||
正 解 値
|
Positive |
真陽性 TP(True Positive) |
偽陰性 FN(False Negative) 第二種過誤 |
|
Negative |
偽陽性 FP(False Positive) 第一種過誤 |
真陰性 TN(True Negative) |
真陽性、偽陽性、偽陰性、真陰性の数で評価する。
代表的な指標として、「正解率」「適合率」「再現率」「F値」がある
すべて%で答えがでる
正解率 =(真陽性+真陰性)ナナメ ÷ 全データ
全データ中、どれだけ予測が当たったかの割合
※データ数のバランスが取れている場合に有効
※クラスの重要性が異なる場合やデータ数が極端な場合は向かない
(不良品評価など少ないもの)
適合率 = 真陽性 ÷(真陽性 + 偽陽性)タテ
陽性判断の正確性を評価
予測が正の中で、実際に正であったものの割合
適合率を高めようとするとあいまいなものは陰性と判断され偽陰性が多くなる
偽陰性を発生させたくない場合は適合率を重要視しない
(病気の診断などは再現率を重視する方がよい)
(スパムメールの判断は誤ってスパムと判断したくないので適合率がよい)
再現率 = 真陽性 ÷(真陽性 + 偽陰性)ヨコ
陽性判断の網羅性を評価
実際に正であるものの中で、正だと予測できた割合
再現率を高めようとするとあいまいなものは陽性と判断され偽陽性が多くなる
(不良品評価に向く)
F値 =(2 × 適合率 × 再現率)÷(適合率 + 再現率)
適合率と再現率の調和平均。予測の偏りを正しく評価する
適合率と再現率はトレードオフの関係であるが
両方をまとめて評価したいときに使用する。
目的にあった指標を選択する。
いずれの場合もテストデータお用いて評価する。
予測性能を表す
分類問題にも回帰問題にも使えるが分類問題は数学的処理が必要。
計算方法は下記3つ
【MSE(mean squared error)】:平均二乗誤差。予測値と実際の値の誤差の二乗和。
【RMSE(root mean sqared error)】:二乗平均平方根誤差。MSEの平方根。
【MAE(mean absolute error)】:平均絶対値誤差。二乗の代わりに絶対値を用いたもの
※二乗するものは外れ値の影響を大きく受ける
【決定係数】:相関係数の二乗 相関係数:-1~1 決定係数:0~1
寄与率ともいう
訓練データに過度に適応しすぎた結果、訓練データ以外のデータに対して
予測精度が悪くなること。
<主な原因>
・モデルが複雑すぎる ⇒ 正則化を行いモデルを単純化する
・訓練データに対して特徴量が多すぎる ⇒ 訓練データの量を増やす
⇒ 特徴量を少なくする
<過学習の見極め方>
訓練誤差が小さくなっているのに汎化誤差が大きい
【訓練誤差】:訓練データに対する予測と正解の誤差
【汎化誤差】:未知データに対する予測と正解の誤差
<汎化誤差の3要素>
【バイアス】:モデルが単純すぎるために発生する誤差
【バリアンス】:モデルが複雑すぎるために発生する誤差
【ノイズ】:減らすことができない誤差
※バイアスとバリアンスはトレードオフの関係
バイアスとバリアンスの和が最小になるようモデルを調整する
過学習はバイアスが小さくバリアンスが大きい状態
【汎化性能】:未知のデータに対する精度
【スパース化】:モデルに使用する特徴量(説明変数)の数を減らす方法
特徴量が多いと過学習になりやすい
【データ拡張】:データの水増しともいう。
既存データを加工(回転・色の調整)をしてバリエーションを増やす
【正則化】:パラメータに制限をかけて過学習を防ぐ
モデルに正則化項(ペナルティ項)という余計な項を付け、
誤差関数と正則化項の和を最小化するよう学習させることで
過度な適応を防ぐ。
※ディープラーニングの章で詳しく
正則化を行いすぎると未学習になってしまうので注意
真陽性率(TPR)と偽陽性率(FPR)の関係を表した曲線
しきい値を0~1へと変化させていった場合に予測精度がどのように変化するかを表す
視覚的にモデルの性能を示す
予測値 | ||||
Positive | Negative | |||
正 解 値 |
Positive |
TP |
FN |
|
Negative |
FP |
TN |
真陽性率(TPR) = TP ÷(TP + FN)上段ヨコ 再現率と同じ
偽陽性率(FPR) = FP ÷(FP + TN)下段ヨコ
縦軸に真陽性率、横軸に偽陽性率を取った曲線がROC曲線
【AUC】:ROC曲線より下の面積のこと。1に近いほどモデルの性能が高い。
モデルを予測に使用するにあたっては、予測の根拠が重要である。
モデルが複雑になるほど根拠はわかりにくい。
そこでモデルの局所的な解釈をする手法がある(LIME、SHAP)
【LIME】:複雑なモデルに近似する単純な線形回帰を作成し、
どの特徴量が推論に影響を与えたのかを算出する手法
【SHAP】:ゲーム理論におけるShapley値を利用して、
各特徴量が予測にどの程度影響を与えたかを算出する手法
【オッカムの剃刀】:ある事柄を説明するために、必要以上に多くの仮定をするべきではない
という考え方。
予測精度が同程度ならば簡単なモデルを選択するべき。
【情報量基準】:モデルをどれくらい複雑にすればよいかの指標。下記の2つがある。
どちらもモデルのパラメータ数が大きすぎる場合にペナルティが課される
・赤池情報量基準 (AIC):
・ベイズ情報量規準 (BIC):ペナルティがより大きい
モデル選択の指標。モデルの複雑さとデータの適合度をみる
モデルが複雑すぎると過学習が起きやすく学習コストも高い
モデルが簡単すぎると予測精度が低い