Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シリーズAI入門:10. 機械学習入門

FSCjJh3NeB
February 03, 2021

シリーズAI入門:10. 機械学習入門

機械学習全般について,ざっくりと眺めます。

FSCjJh3NeB

February 03, 2021
Tweet

More Decks by FSCjJh3NeB

Other Decks in Education

Transcript

  1. 機械学習の何が嬉しいのか? n 機械がデータから学習してくれる u 第2次の課題:“知能”を人間が作成していた p 「もし**だったら***」のIf-Thenルールを列挙 • “例外”対応や条件の組み合わせを考えるとバリエーションは膨大 •

    ルールが作成者や,作成者のその時の気分で変化 p 記憶装置自体も高額,元データは紙から書き起こし… u とにかく,大量にデータさえ与えれば何とかしてくれる p データはネットにいくらでもある p 機械が勝手にやるので,恣意性がない p しかも早い 4
  2. こんなところに機械学習 n SPAMメールの判定 n ECサイトの情報推薦 n コピー機や重機の故障事前検知 n ニュースサイトの記事分類 n

    コールセンターへの質問分類 n テロリストの発見 n オンラインゲームのNPC n 株価の予測 n 政策文書の分析 …などなど 7
  3. 機械学習いろいろ n “機械学習”の中にもいろいろな手法 9 教師あり 教師なし 精度重視 説明力重視 量を予測する ex.

    何歳?何人? 分類する 予測する 種類を予測する ex.男性?日本人? ハード 1レコード1グループ ソフト ex. Aが30%,Bが70% ▼ データの種類 ▼ 目的
  4. 深層学習って言うのがないんですけど…? n 深層学習(ディープラーニング)には ニューラルネット,という技術を用いる u 原理的には “教師あり”学習の一手法※ u “教師なし” や

    “強化学習” にもうまく活用可能 u なんにせよ,深層学習等は具体的な手法なので, 前述のスライドにあるレベルより一段下の概念 p 分類や回帰を行うための手法…と考えると良い 11 ※ ここでは主に深層学習の原理として “オートエンコーダ” を想定(後日,深層学習の回で説明)
  5. ニューラルネット,深層学習の位置づけ n 教科書やサイトによって,ニューラルネットや 深層学習の位置づけは意外とフリーダム… u 教師あり・なし,強化学習と同列に並んでいたり… u 教師あり の 手法に位置づけられていたり…

    u 教師なし の 手法に位置づけられていたり… n どう考えると良いか? u まず,深層学習 は ニューラルネット の特殊版 u ニューラルネットの原理を考えると “教師あり” の 手法※ u ただ,応用が進んで 強化学習 や 教師なし にも使える p 特に 深層学習 において,その傾向が顕著で,位置がばらつく 12 ※ 主流ではないが,ボルツマンマシン という “教師なし” の ニューロ や,それを生かした 深層学習 も存在する また 深層学習 の発明者として有名な ヒントン先生も,もともとボルツマンマシンの研究者
  6. 機械学習いろいろ 13 教師あり 教師なし 量を予測する ex. 何歳?何人? 種類を予測する ex.男性?日本人? (クラスタ分析)

    k-means ウォード法 (判別分析) SVM Random Forest 外れ値検出 頻出パタン 回帰分析 Random Forest 異常値検出 まとめる ex.どこまでがグループ? 上記は古典的かつ代表的な手法だけを紹介 強化学習 ニューラルネット 深層学習 ※ 深層学習のあたりで補足説明 上記に記載していない,手法の例
  7. 関連する用語 n 特徴量 u 分類やクラスタリングに使うデータの項目 p 性別の予測に以下のデータを使うなら,髪の長さ や 身長 3

    2 140 4 57 6 6 96 6 n 教師/学習/トレーニング データ u 教師あり学習で,学習時に用いるデータ u 特徴量と正解ラベルのセットで作られる p 上の例では “性別” を予測したいので,“性別”の列が正解ラベル 15
  8. 機械学習の用語 16 n 目的変数・予測変数 u 予測したい項目 p この人は男性?女性?=性別 n 説明変数

    u 予測に使えるデータ項目 p 髪の長さ p 身長,体重 p 今日コンビニで買った物 p 家にある本の一覧 ? もちろん,髪が長くてお化粧品をよく買い, ファッション雑誌をたくさん持っている男性 や, 短髪でプロテインをよく買い筋トレの本を持ってる女性も。 但し,データとしてそれが多数派ではないはず。
  9. 教師なし・ありの目的の違い 18 n 教師なし u データセット全体の特徴を 何となく把握する u 取ってきたデータでOK,楽 u

    計算機の論理(数学)で 処理するので人間にとって 意味ある形にならないことも u 教師あり の前処理として 使用することも n 教師あり u 対応関係からルールを作成 未知データを判断 u 対応データがいる u シンプルなので使いやすい 使用者側で向き・不向きを考えて 適切に使い分けていくことが大事
  10. 本当に雑な,教師なし 使いどころ u もらったデータを可視化してみた u なんか,グループはありそうなんだけど… u こういうときに “教師なし” の

    “クラスタリング” 19 Original Data Clustered Data ※ 3つの正規分布から作成したデータを k-means で k=3 として分類した例
  11. 本当に雑な,教師あり の捉え方 u 目標値(教師データ)と 予測のズレ(誤差)を 最小化 p 誤差=f(データ) を 最小化する

    数理最適化問題 • 最初はとりあえず適当に的を撃ってみる • 目標とのズレを計測して,もう少し下を狙うとか調整する • また撃ってみて,今度はもう少し左を狙うとか調整する • (良い感じに当たるまで繰り返し) 20
  12. ここまでで紹介していなかった他の話題 n 強化学習 u 行動を学習する仕組み u 教師あり学習に似るが,一連の行動の結果を最大化する ように学習するという点で異なる p 例えば最終目的がゴール地点での得点最大化であって,

    それに有効なら途中の経路で一時的に得点を下げることもする 何らかの行動 報酬 何か操作をすると,その結果として報酬が与えられ, それを最大化するように学習をしていく 21
  13. k-NN (Nearest Neighbor) n 単純でわかりやすい 教師あり学習 u “k近傍法”とも呼ばれる p よく似た名前の

    k-means と混同しないように注意 p ここでの NN は Neural Network の略ではない n 近くのデータから,未知データのクラスを推定する u 散布図として表現できる系統のデータに対しては, だいたい適用できると思ってよい 24
  14. SVM : Support Vector Machine n 古典的な 教師あり学習 u 基本的には

    2値分類 のための手法 p Aか,それ以外か,のような2つのグループの判別 n 2つのグループをうまく分割できる境界を探す u 基本的には線形分離しかできない u …が,あるトリックを用いると非線形もいける p 多値分類ができるものなど,派生形もいろいろ 28
  15. k-means n 単純でわかりやすい 教師なし学習 u “k平均法”とも呼ばれる p よく似た名前の k-NN と混同しないように注意

    n データを指定した個数のグループに分ける u 散布図として表現できる系統のデータに対しては, だいたい適用できると思ってよい 34
  16. GMM : Gaussian Mixture Model n 確率モデルに基づく 教師なし学習 u いわゆる“ソフトクラスタリング”の手法

    p AかBか,ではなく,Aの確率80% Bの確率20% のような分類 n データがある確率分布から生成されているとする u グループごとに確率密度関数を持っている u 観測されたデータはそこから出てきたものだとする 43
  17. ここまでのまとめ n 機械学習 は 数値 をうまく分けるか推定する技術 u 分ける系は,基本的に距離や正解データにもとづいて 良い感じの境界線を見つけるようなことをする p

    教師あり は 正解データとの誤差を最小化する p 教師なし は 近くの人同士でグループを作る u 推定する系は,基本的に回帰分析 p 与えられたデータを全部通る・近くを通る関数を探して, 既知の値のセットから,未知の値を推定する 49
  18. 決定木 n 分類や回帰を行うための木構造を学習する PC所持? OS プログラマ 年齢 持ち物 一般人 持ち物

    yes no UNIX/Linux >60 Other Other アーティスト? 一般人 ペンタブ・MIDI スパイ スマホ 大学生 50
  19. ランダムフォレスト n 分類やクラスタリング,回帰を行うための木構造を学習する u 特徴量のうち,いくつかをランダムに選んで(バギング) それら小数の特徴量で決定木(弱学習器)をたくさん作る u 決定木の多数決(アンサンブル学習)で最終の出力を定める 答えはA 答えはB

    答えはC 答えはB 答えはA 答えはA 答えはB 答えはC Aという判定が多いので,Aを採用! 特徴量が増えるほど,全部を生かそうとすると難しい…みたいなことが起きる。 弱学習器を多数用いることで,相互の欠点をうまく打ち消せるため高精度に! 51
  20. XGBoost n 分類やクラスタリング,回帰を行うための木構造を学習する u ランダムフォレストと少し似ているが,入れ子構造 p ブースティング といわれるテクニックを用いる u 2018年くらいから人気の手法で,迷ったらとりあえず使う位の勢い

    うまく分類できない部分に 勾配ブースティング という手法で重みをつけて, 誤差補正用の決定木を作って,その補正用の…を何度か繰り返した後,分類をしていく…というイメージ。 勾配の部分で用いる 勾配降下法 は 別の回で学ぶ,ニューラルネットとも関連 ほしかった結果とのズレから 決定木のルールを見直し ほしかった結果とのズレから 決定木のルールを見直し ほしかった結果とのズレから 決定木のルールを見直し 最終的に,これらを組み合わせてジャッジ! 52
  21. その他 n 線形回帰 u 回帰(数値の予測)につかう.初学者勉強用 p 変数をダミー化してステップワイズ選択などすると説明力は高い n 階層クラスタリング u

    クラスタリング手法,系統図のような形でクラスタを生成する n ナイーブベイズ u ベイズの定理に基づいて分類を行う n LightGBM u XGBoostの弟くらいの認識でOK n CatBoost u LightGBMの弟くらいの認識でOK p 分類尺度の扱いが上手らしい n k-Shape u 波形のクラスタリング n ARIMA u 時系列データの予測 n Prophet u 時系列データの予測 ※ これらはごく一例で他にも様々な手法が存在。目的やデータの種類,手法の長短に照らして適切な手法を選ぶ。 53
  22. 関連する話題 n 次元圧縮 u 特徴量は高次元になりがちで,人間が理解したり, 効率的な学習のためにも低次元に写像できると便利 p 主成分分析,因子分析 (安心・安定の基礎的手法) p

    多次元尺度法(データ数が数百までならこれ) p t-SNE(データ数が数万などでも余裕,だが非推奨) p UMAP(数千万などでも大丈夫。多次元尺度法がダメならこれ) n 異常値検知・変化点抽出 u 外れ値の検出や,時系列データの変化点を見つける n 因果推論 u ベイジアンネットワーク,LinGAM 55
  23. 教師あり学習の評価 n 再現性と予測精度で評価 n 再現性 u 教師データをどのくらい正確に再現できるか? n 予測精度 u

    学習に使っていないデータをどのくらい予測できるか? u わからないから予測するのでは?なにいってるの?? u 再現性が良いってことは,予測が上手なのでは? 56
  24. 予測精度の予測方法 n 正解がなければ,精度は計算できない u 未知データの予測精度をどう算出するか? u 持ってるデータ全部で学習をさせないといけない… というルールはない p もともと持ってるデータも,観測可能な全データの一部

    p 観測可能な全データがあるなら,そもそも予測は不要 u 持ってるデータのうち例えば9割くらいで学習させ, その結果を使って,のこり1割のデータの結果を予測 ホールドアウト という 明日の朝ご飯用に おかずは全部食べずに 少し残しておこう 58
  25. 交差検証:クロスバリデーション n しかしさらなる問題も u 予測用に取り分けた1割が,偶然にも ものすごく偏った 異常値だったりしたらどうしよう… u データの抽出範囲を何度か変えて調べれば, この不安は解消できるはず!

    テスト用 学習用 パタン1 パタン2 パタンn … 各結果の平均値を 最終的な予測精度にする データの分割数を k として k-Fold の 交差検証 ともいう 左は 5 Fold の交差検証 予測精度1 予測精度2 予測精度n 59
  26. 正解の考え方もいろいろ n ここまで予測精度と再現性とざっくり説明 n より正確には以下の4指標に整理できる u 正解率 Accuracy :予測が当たった割合 u

    適合率 Precision :正と予測したうち実際に正の割合 u 再現率 Recall :正であるものを正と予測した割合 u F値 F-measure :適合率と再現率の調和平均 61 正解率はわかるが,他はなにいってるか分からない…
  27. 正解の考え方いろいろ n 正解・不正解を見る場合,上記の4状態が発生 u Aであるモノを正しくAに分類できた (TP) u Aであるモノを誤ってA以外に分類した (FN) u

    Aでないモノを正しくA以外に分類できた (TN) u Aでないモノを誤ってAに分類した (FP) 62 Positive Negative Positive 真陽性 Truth Positive (TP) 偽陰性 False Negative (FN) Negative 偽陽性 False Positive (FP) 真陰性 Truth Negative (TN) 予測値 真値 (実際の値) 統計で学ぶ,第1種の過誤と第2種の過誤
  28. 正解の考え方いろいろ 63 Positive Negative Positive 真陽性 Truth Positive (TP) 偽陰性

    False Negative (FN) Negative 偽陽性 False Positive (FP) 真陰性 Truth Negative (TN) 予測値 真値 (実際の値) 適合率 再現率 正解率 = ( TP + TF ) / ( TP + FP +TN + FN ) 適合率 = TP / ( TP + FP ) 再現率 = TP / ( TP + FN ) F値 = ( 2 * 適合率 * 再現率) / (適合率 + 再現率)
  29. なんでこんなことを考える必要が? n 例えば,なにか危険な伝染病が流行… u ケース1 p 感染していないのに,誤って感染と判定する確率 25% p 感染している場合に,正しく感染と判定する確率

    100% u 正解率:0.875 = 約88% 64 Positive Negative Positive 100% Truth Positive (TP) 100-100% False Negative (FN) Negative 25% False Positive (FP) 100-25% Truth Negative (TN) 予測値 真値 (実際の値)
  30. なんでこんなことを考える必要が? n 例えば,なにか危険な伝染病が流行… u ケース2 p 感染していないのに,誤って感染と判定する確率 5% p 感染している場合に,正しく感染と判定する確率

    90% u 正解率:0.925 = 約93% 65 Positive Negative Positive 90% Truth Positive (TP) 100-90% False Negative (FN) Negative 5% False Positive (FP) 100-5% Truth Negative (TN) 予測値 真値 (実際の値)
  31. なんでこんなことを考える必要が? n 感染症では,感染してる人が出歩くとまずい! u 正解率で見ると ケース2 の方がよい (93%) が, 正解率

    88% でも ケース1 の方がよい n これらは単に正解率を見るのでは不十分なケース u ケース1: p 適合率:80% 再現率:100% u ケース2: p 適合率:95% 再現率: 90% 66 目的に応じて, 適切な指標を選ぶ必要
  32. 距離 n 教師あり・なし を考える上で重要そうな概念 u なんやかんやで,正解との距離を最小・最大化するとか 距離が近いもの同士でまとめていく…といった話題が 多く扱われる n 距離にもいろいろな種類が…

    u L1距離(マンハッタン距離とも。格子上で左に3,上に1のようなもの) u L2距離(ユークリッド距離とも。普通にいうところの最短距離) u チュエビシェフ距離,ミンコフスキー距離,マハラノビス距離 u … ここではこれ以上踏み込まないが, 距離を測る前に,そもそも適切な距離の種類も考える必要 67
  33. これは何の講義だったか… n 人工知能の講義だったはずで,最初は “知能” や, “記号” などをいろいろ見てきた n が,今回の 機械学習

    は 知能 とどう関係するのか? u 機械学習はむしろ 数学とか,統計の問題なのでは?? n そのとおり u 機械学習は必ずしも人工知能だけのテーマではない p 統計数理などの分野の問題でもある u “記号は世界を同値類に分けるもの” であるとか, 知能は “環境との相互作用” という面からは人工知能 69
  34. 立場によって見方が変わる n 機械学習の研究にも複数のアプローチ u 知能の話とは独立に 数理最適化問題 などとして, 研究することもできるし,いろいろなことに使える u 知能を探求する上で必要な要素として,

    機械学習を研究したり使用することもできる データサイエンティスト 人工知能研究者 同じ山を登っているが, 途中の景色を楽しみたい派 と 山ご飯を楽しみたい派 では それぞれ目的が異なる。 ※ 実際には別にどっちかに決めなくても,状況によって好き・便利な立場を取れば良いです。景色と山ご飯,両方もアリ J 70
  35. 使うだけならとっても簡単 n 操作は簡単4ステップ u 1. データを用意する u 2. プログラムにデータを読み込ませる u

    3. 所望の手法にかける u おしまい ※ ライブラリに実装されている,基本的な手法をちょっと試す位の意味で。 ※ 食材を用意 自動調理 食べる このくらいの簡単さ! 71
  36. Pythonを独習するには? n paiza learning というサービスがオススメ u 3分くらいの講義動画と,練習問題で勉強可能 p 基本的なことは無料で勉強できる p

    最悪スマホでも,頑張ればいけなくもない 78 https://paiza.jp/works/ 「講座一覧」→「 Python3入門編」
  37. Pythonを手軽に使うには? n 自分の PC に Python をインストールするのは面倒 u Google の

    オンライン環境 colaboratory がオススメ p データを読み込ませるところだけちょっと面倒 • だがそこさえ頑張れば,とても便利に使える。深層学習もOK! p GMailのアカウントがあれば無料 79 https://colab.research. google.com/ 「google colab」で検索