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

機械学習理論入門

 機械学習理論入門

2026年度 TopSE「機械学習概論」コースの一部として使用した講義資料です。
https://www.topse.jp/ja/curriculum-lectures.html

Avatar for Etsuji Nakai

Etsuji Nakai

August 09, 2026

More Decks by Etsuji Nakai

Other Decks in Technology

Transcript

  1. Introduction to Machine Learning Theory for Software Engineers 機械学習概論 (機械学習理論入門)

    Etsuji Nakai ver4.6 2025/05/11 1 Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  2. 目次 ▪ ▪ 第1部:データサイエンス入門 ▪ ◦ データサイエンスと機械学習 ◦ k平均法によるクラスタリング ◦

    機械学習アルゴリズムの分類 ◦ 混合分布とEM法によるクラスタリ ング 第2部:回帰分析 ▪ ▪ 第4部:教師なし学習 ◦ 誤差関数(最小二乗法)による回 帰分析 ◦ オーバーフィッティングの検出 ◦ 最尤推定による回帰分析 参考資料 第3部:線形判別法 ◦ パーセプトロン ◦ ロジスティック回帰 ◦ 学習モデルの評価(ROC曲線) 2 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  3. データサイエンスの全体像 データに基づいた ビジネス判断 ビジネスとして意味のある 判断指標への変換 予測/判断ルール 予測/判断ルール 学習アルゴリズムの選定 予測/判断ルール 機械学習

    これらすべてが データサイエンス の対象 分析に意味のある データを選別 過去のデータ 過去のデータ 過去のデータ 5 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  4. データサイエンスの全体像 ビジネス適用と 結果の評価 データに基づいた ビジネス判断 ビジネスとして意味のある 判断指標への変換 予測/判断ルール 予測/判断ルール 学習アルゴリズムの選定

    予測/判断ルール データのモデル化 機械学習 分析に意味のある データを選別 過去のデータ 過去のデータ 過去のデータ データの準備 6 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  5. データサイエンスの全体像 データに基づいた ビジネス判断 ビジネス適用と 結果の評価 ビジネスの理解 ビジネスとして意味のある 判断指標への変換 予測/判断ルール 予測/判断ルール

    学習アルゴリズムの選定 予測/判断ルール データのモデル化 機械学習 分析理論の理解 分析に意味のある データを選別 データの理解 過去のデータ 過去のデータ 過去のデータ データの準備 7 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  6. データサイエンスにおける機械学習の役割 ▪ ▪ 決められたアルゴリズムにしたがって、過去のデータから「判断基準(判断 ルール)」を決定する手法。 ◦ どのようなアルゴリズムを用いるかは、データサイエンティストが判断。 ◦ 得られたルールの妥当性の評価も大切。過去のデータを正しく判断できるからと 言って、将来のデータを正しく判断できるとは限らない。

    ◦ 過去のデータは、「分析のために必要なデータ」として集めているとは限らない。 分析に意味のあるデータを選定するのもデータサイエンティストの役割 機械学習をビジネスに活かすにはデータサイエンティストとしての「知見」 が必要 ◦ 対象ビジネスの理解:ビジネスに役立つ結果がでないと意味がない。 ◦ 分析データの理解:データは単なる数字の集まりではない。 ◦ 分析理論の理解:データとビジネスを結びつける中核となる知識。 本セミナーのテーマ 8 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  7. ビジネスにおけるデータサイエンスの役割 ▪ ▪ データ分析を通して「ビジネス判断の質を向上」すること。 ◦ 「未来のビジネス判断」に役立つ指標を「過去のデータ」から導きだすこと。 ◦ 具体的なビジネス判断を「数値的根拠」を持って提案することが大切。 例:台風が近づいているので、過去の台風の際にコンビニでどのような商品 が売れたか分析したデータサイエンティストはどんな結果を出すべきか?

    ◦ 水が通常よりも2割多く売れた。 • ◦ 「アナ雪」のDVDが爆発的に売れた。 • ◦ その時はたまたま「アナ雪」が人気だったからでしょ。 コロッケが通常の10倍売れて、小さな店舗では品切れが続出した。 • ◦ 水の在庫を増やせばいいの?売り切れてなかったら関係ないよね。 10倍売れても十分なコロッケを確保・・・・万一売れ残ったら廃棄するのか? ビールが通常の3倍売れて、小さな店舗では品切れが続出した。 • ビールの在庫が少ない店舗は、3倍売れても十分な在庫を確保しよう。でもそれで 在庫確保にかけたコスト以上に儲かるの? Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 9
  8. (イケテナイ)機械学習の例 ▪ ▪ 次の例は、データサイエンティストの活動として、どこに問題があるので しょうか? 例:携帯電話の契約更新時に解約しそうなユーザーを判別 ◦ 過去に契約更新を迎えたユーザーのデータを元に、新たに契約更新を迎えるユー ザーが解約しそうかどうかを判定するルールを作る。 ◦

    使用するアルゴリズムは、「決定木(けっていぎ)」を用いる。 発生形態 卵生 胎生 呼吸方法 哺乳類 えら呼吸 肺呼吸 魚類 Python Career College 体温 恒温 変温 鳥類 爬虫類 動物の種類を決定する決定木の例 Copyright (C) 2025 National Institute of Informatics, All rights reserved. 10
  9. (イケテナイ)機械学習の例 ▪ データサイエンティストは、次のようなデータを収集しました。 ◦ Yes: 解約したユーザー ◦ No : 解約しなかったユーザー

    (*) Data Science for Business(Foster Provost, Tom Fawcett)より引用 11 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  10. (イケテナイ)機械学習の例 ▪ ▪ ▪ ▪ 機械学習ライブラリーに先のデータを入力して 計算すると、右図の決定木が得られました。 この結果を「解約の恐れがあるユーザーを判定 するルール」として事業部門に提出しました。 事業部門では、契約更新が近づいたユーザーが

    解約しそうかどうかを判定するアプリケーショ ンを作って、販売店に提供した上で、解約防止 キャンペーンに役立てるように指示しました。 その結果・・・??? (*) Data Science for Business(Foster Provost, Tom Fawcett)より引用 12 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  11. 「教師あり学習」の代表例 ▪ Classification / Class probability estimation(分類) ◦ ▪ 既存データを複数のクラスに分類して、新規データがどのクラスに属するかを予想

    する。特定のクラスを予想する他、各クラスに属する確率を計算する方法もある。 • 携帯の機種変更時に「どの機種を選択するか」を予測する。 • 特別割引キャンペーンのDMを送ったら「申し込む/申し込まない」を予測する。 • 新規メールが「スパムである確率」を計算する。 Regression(回帰分析) ◦ 既存データの背後にある「関数」を推測して、具体的な「数値」を予測する。 • 新規サービスを提供したら「何人のユーザー」が利用するか予測する。 • 広告宣伝費を2倍にしたら売上は「何倍」になるか予測する。 14 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  12. 「教師なし学習」の代表例 ▪ Clustering ◦ 既存データについて、具体的な指標を与えず、自然に分類されるグループを発見す る。一般には、自然なグループを発見した後に、それぞれのグループの特性を他の アルゴリズムで分析する。 • ▪ 既存顧客をグループに分けて、それぞれのグループに提供する製品/サービスを

    決定する。 Reinforcement learning(強化学習) ◦ エージェントが環境との相互作用の中でデータを収集して学習を行う。 • 囲碁プログラムがコンピューター同士の対局から有効な手筋を発見する。 • 自動運転プログラムがランダムな運転を通じて、正しく進む方法を発見する。 15 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  13. データ分析に利用できるオープンソースのツール ▪ Jupyter Notebook ◦ ▪ ブラウザー上で、Pythonのコードを対話的に実行するツール Pythonのデータ解析ライブラリ • NumPy

    : ベクトルや行列を扱うライブラリ • SciPy : 科学計算用ライブラリ • matplotlib : グラフ作成ライブラリ • pandas : Rに類似のデータフレームを提供 • scikit-learn : 機械学習用ライブラリ • TensorFlow:ニューラルネットワークの機械学習ライブラリ 本パートでは、これらを使って直接 にアルゴリズムを実装したコードを 使用します。 ※ 本コースの演習環境は、下記の手順で準備しています。 • Google Colaboratory を用いた演習環境の準備手順 • http://enakai00.hatenablog.com/entry/2018/02/11/151136 16 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  14. 回帰分析の例題 ▪ 学習に使用するデータ(トレーニングセット) トレーニングセット + 「標準偏差 0.3 の正規 ◦ 分布ノイズ(*1)」

    の範囲を等分した10個の観測点 ◦ から、10個の値 を取得 (N = 10)。 (*1) およそ ±0.3 の範囲に散らばる乱数の事 標準偏差 0.3 の正規分布 ▪ 解くべき問題 ◦ トレーニングセット の背後 にある関数を推測して、次に観測点 x から 確率 ±0.3 得られる値を予測する。 19 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  15. 多項式近似と誤差関数による推定 ▪ 背後にある関数は M 次多項式と仮定して、係数 ▪ それぞれの観測データ について、 を決定します。 と

    の二乗誤差を 計算して、その合計(誤差関数)を与えます。 ▪ 誤差関数が最小になるように係数 を決定します。 20 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  16. (参考)勾配ベクトルとグラフの傾きの関係 ▪ Python Career College 多変数関数 h の勾配ベクトル は、グラフの傾きが最大 になる方向に対応しており、

    その大きさはグラフの傾きに 一致します。 21 Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  17. オーバーフィッティングの検出 ▪ 先ほどの M = 9 の例は、観測データは正確に再現していますが、未知のデータ の「予測性能」が高いかどうかは分かりません。 ◦ ▪

    トレーニングセットだけに固有の特徴を拾ってしまい、予測性能の一般性が失われる ことを「オーバーフィッティング」と呼びます。 機械学習を行う際は、学習用のデータ(トレーニングセット)とは別に検証用 のデータ(テストセット)を残しておき、テストセットに対する予測性能を見 て、オーバーフィッティングの発生を検出します。 ◦ 次数 M を増やしていった際の「トレーニングセット」と「テストセット」それぞれの 「平方根平均二乗誤差」の変化の様子を見ます。 トレーニングセット テストセット 全データ Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 25
  18. オーバーフィッティングの検出 ▪ ここでは、トレーニングセットとは独立に取得したテストセット があるものとして、検証します。 ◦ 観測点 は同じですが、正規分布のノイズがあるので、取得値 は 異なります。) ▪

    右図のように、M = 3 を超えると テストセットの誤差は減少しなく なります。 ◦ つまり、M = 4 以上はオーバー フィッティングが発生しています。 26 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  19. クロスバリデーションについて ▪ 機械学習に利用できるデータが与えられた場合、トレーニングセットとテスト セットの分け方は自由です。全データを N 分割して、N 個のそれぞれのパート をテストセットとした学習・検証を繰り返す方法があります。 トレーニング セット

    テストセット 誤差の平均や分散から、 最適なパラメータ数を決定 パート2 パート1 パート1 パート1 パート1 パート3 パート3 パート2 パート2 パート2 パート4 パート1 パート4 パート1 パート4 パート1 パート3 パート1 パート3 パート1 パート5 パート5 パート5 パート5 パート4 学習結果 学習結果 学習結果 学習結果 学習結果 パート1 パート2 パート3 パート4 パート5 誤差 誤差 誤差 誤差 誤差 27 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  20. オーバーフィッティングの発生理由 ▪ ▪ 一般に観測データ量に対して、モデルのパラメータが多すぎるとオーバー フィッティングが発生します。 逆に言うとオーバーフィッティングの発生の仕方は、データ数に依存します。 下記は N = 100

    のデータを用いて学習した結果です。 ◦ M = 3 を超えると誤差はほぼ一定の 0.3 で落ち着きます。もともと標準偏差 0.3 のノ イズを持ったデータなので、0.3 程度の誤差は必ず残ります。 28 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  21. オーバーフィッティングを意図的に抑える手法 ▪ N = 10 の例で実際に計算された係数 ります。 ◦ ▪ の値を見ると下表のようにな

    M = 9 の高次の項は絶対値が突出して大き くなっています。これは、パラメータの過 剰調整であり、オーバーフィッティングの 兆候と考えられます。 そこで、適当な定数 λ を用いて、下記の ように修正した誤差関数を最小にすると いう条件で係数を決めると、次数が高く でもオーバーフィッティングが発生しに くくなります(正則化と言います)。 ◦ 最適な λ の値は、試行錯誤で決める必要があります。 ペナルティターム (罰則項) 29 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  22. 回帰分析の例題 ▪ 学習に使用するデータ(トレーニングセット) トレーニングセット + 「標準偏差 0.3 の正規 ◦ 分布ノイズ(*1)」

    の範囲を等分した10個の観測点 ◦ から、10個の値 を取得 (N = 10)。 (*1) およそ ±0.3 の範囲に散らばる乱数の事 標準偏差 0.3 の正規分布 ▪ 解くべき問題 ◦ トレーニングセット の背後 にある関数を推測して、次に観測点 x から 確率 ±0.3 得られる値を予測する。 32 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  23. 尤度(ゆうど)関数による推定 ▪ 「誤差関数による回帰分析」では、誤差関数を最小とするように係数を決定し ましたが、誤差関数のとり方によって結果は変わります。 ◦ ▪ ここでは誤差関数ではなく「データが得られる確率」から係数を決定します。 ◦ ▪ 「平均二乗誤差」は計算が簡単なのでよく使われるだけで、本質的にこれを採用する

    べき理由はありません。どのような誤差関数がベストかは、問題ごとに試行錯誤する 必要があります。 この方法では、データに含まれる「ノイズ」の大きさも推定できるようになります。 この後の記法として、平均 μ 、分散 σ2 (標準偏差 σ)の正規分布を次の記号で 表します。 ◦ これは、およそ μ ± σ にちらばる乱数です。 確率 ±σ μ Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 33
  24. 前提条件 ▪ 今回使用する観測データ は、「何らかの関数 y(x) に従うが、 未知のノイズが含まれている」と予めわかっているものとします。 ◦ ▪ ▪

    ビジネス上のデータ分析では、一定のデータの性質が予めわかっていることもよくあ ります。(分析するデータの性質を理解することもデータサイエンティストの役割で した。) 何らかの関数 y(x) は、最小二乗法と同様に M 次多項式と仮定します。 さらに、未知のノイズを分散 の正規分布と仮定すると、係数 w が決まった 後、次に観測点 x から値 t が得られる確率は次式になります。(次ページも参 照。) 太文字はベクトル(行列)表記 34 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  25. 尤度関数を最大化するパラメータを決定 ▪ ▪ ▪ 先に求めた確率は、パラメータ (w, β) によって値が変わります。トレーニング セットが得られる確率をパラメータの関数とみなしたものを「尤度関数」と呼 びます。

    考えているモデルが観測データによく適合しているほど、観測データが得られ る確率は高くなると考えられます。 この仮説が正しいものとして、尤度関数が最大になるようにパラメータ (w, β) を決定する手法を「最尤推定」と呼びます。 ◦ 計算上は、次の対数尤度関数を最大するパラメータを求めます。 → 計算式が簡単になると同時に、数値計算をする場合に丸め誤差の影響を 少なくできます。 37 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  26. (参考)対数関数の性質 x 最大 ⇔ y 最大 38 Python Career College

    Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  27. 尤度関数を最大化するパラメータを決定 ▪ 実際に計算してみると、次のことが分かります。 ◦ w についての偏微分係数は、誤差関数の偏微分係数に等しく、パラメータ w は、誤差関数を最小化する w と同じ結果になります。

    ◦ β についての偏微分係数からは、次の結果が得られます。これは、観測デー タの平方根平均二乗誤差を標準偏差の推定値とすることを意味します。 ⇒ ∴ ▪ 最尤推定により、次に得られる観測値について、予測の誤差を含めて推測する ことが可能になります。 39 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  28. 最尤推定の「当てはまり具合」の評価 ▪ 「誤差関数による回帰分析」では、「平方根平均二乗誤差(Root Mean Square Error) 」の値で、フィッティングの「当てはまり具合」を 判別しました。 ◦ ▪

    関数の次数 M を上げるに従って、トレーニングセットに対する けますが、テストセットに対しては一定値で安定しました。 は減少を続 最尤推定で同様のことを行う際は、「最大対数尤度(Maximum Log Likelihood) ◦ 」の変化を観察します。 尤度関数 は、「トレーニングセットが得 られる確率」ですので、これが大きいほど、「ト レーニングセットによく当てはまるモデル」と言 えます。 41 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  29. もう少し簡単な最尤推定の例 ▪ 少し単純化した例として、単一の観測点 x から複数の観測データを取得して、 それを元にその点における正規分布の平均と分散を推定してみます。 ◦ 平均 μ、分散 1/β

    とすると、尤度関数と対数尤度関数は次のようになります。 ◦ 対数尤度関数の μ、β による偏微分係数が 0 になる条件から計算すると下記が得られま す。これは、観測データの平均と分散を未知の正規分布の平均と分散の推定値として 採用することを表します。 42 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  30. 一致推定量と不偏推定量 ▪ 一般に、何らかの理屈に基づいて得られた推定値の計算方法を「推定量」と 呼びます。 ◦ 先ほどの問題では、最尤推定に基づいて次の推定量が得られました。 :標本平均 :標本分散 ▪ 推定量から計算される値(推定値)は、必ずしも真の値(真の母数)に一致

    するわけではありませんが、次の性質を持つ推定量は「よい性質を持つ」と 考えられます。 ◦ 観測データ数 N が大きくなると、推定値は真の値に近づく(一致推定量) ◦ 観測を繰り返して何度も推定値を計算した場合、推定値の平均は真の値に近づく(不 偏推定量) 44 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  31. 不偏性のある推定量とない推定量の比較 不偏性のある推定量 真の母数 データ数 N 真の母数のまわりに、 均等に推定値が得られる 不偏性のない推定量 真の母数 データ数

    N 真の母数に対して、 偏った推定値が得られる Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 45
  32. 線形判別法の例題 ▪ 学習に使用するデータ(トレーニングセット) ◦ (x, y) 平面上の N 個のデータポイント ◦

    データポイントは、2タイプに分かれて おり、 ▪ トレーニングセットと 判別直線の例 にラベル付けされている。 解くべき問題 ◦ 2タイプのデータを分割する直線を求める。 ◦ きれいに分割できない場合は、何らかの意味 で「最善」の分割を与える。 •:t = 1 ×:t = -1 49 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  33. パーセプトロンの考え方 ▪ ▪ この時、この平面は次の2つの領域に分 割されます。 なら正解 ◦ なら正解 ◦ ▪

    •:t = 1 ×:t = -1 分割直線を次の式で表します。 y これより、「正しく判別されていない 点」では、次の関係が成り立ちます。 x ◦ 分割直線から点が離れるほど(誤っ た領域の内部に入り込むほど)、こ の値の絶対値は大きくなります。 50 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  34. 誤差関数の定義 ▪ そこで、次の「誤差関数」を定義して、これをなるべく小さくする係数 w を求 めることにします。 ※ n の和は判定を誤っている点についてのみ取ります。 ▪

    ここで、計算の便宜上、次のような記号で式を表します。 バイアス項 51 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  35. 誤差関数を最小化する手順 ▪ ▪ ある点 w において、EP(w) の値を減らす方向のベクトルは、この関数の「勾 配」で決まります。 これは、「ある w

    において、誤って判定された点 ベクトル があった場合、 の方向に w を修正すると、EP(w) の値を減らすことができる」 と解釈できます。(直感的には。) ▪ 厳密に議論すると、誤って判定された点について、1つずつ順番に次の式で w の値を修正していくことを何度も繰り返すと、(完全な分割が可能な場合は) いつかは正しい分割線が得られることが証明されています。 52 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  36. パーセプトロンによるパラメーター修正手順 すべてのデータをチェックしたら 最初のデータに戻って繰り返す すべてのデータを一列に並べて、 端から順にチェックしていく 判別が誤った点があれば パラメーターを修正 修正の結果、他の点の 判別結果も変化 修正

    ▪ 完全な分割ができない問題だと w の修正はいつまでたっても終わらない(誤って判定さ れる点はなくならない)ので、適当な回数で修正を打ち切って、その時点の w を答えと します。 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 53
  37. (補足)バイアス項の幾何学的理解 ▪ ここで説明したパーセプトロンの計算は、一般に (x, y, z) 空間のサンプル群を 「原点を通る平面 で分割する」 アルゴリズムと考えることができます。

    ◦ その上で、「すべてのデータが z = 1 の平面に乗っている」という特別な場合を考える と、バイアス項を 1 にした先の計算式が得られます。この意味では、バイアス項は任 意の定数にとれます。 56 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  38. アルゴリズムの収束速度について ▪ バイアス項を c にした場合のアルゴリズムは次になります。 修正 ▪ 完全な分割が可能な場合でも、何回ほど繰り返せば正しい分割線に到達するか (収束の速度)は分かりません。特に原点から大きく離れた場所にデータが分 布していると(c

    = 1 の場合)収束が極端に遅くなります。 ◦ は のオーダーで修正されるのに対して、 は でしか修正されな いために起こります。このような場合は「バイアス項 c」を「データ群の座標値の平均 的な大きさ」に近い定数に修正することで収束速度が改善されます。 57 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  39. (補足)特徴量の正規化/標準化について ▪ 機械学習の特徴量として用いるデータには、スケールの任意性があります。 ◦ ▪ 例:身長を cm の単位で入力するのか m の単位で入力するのか。

    トレーニングセットに含まれるデータに一定の変換を施して、値のばらつきを 抑える手法を「特徴量の正規化/標準化(Feature Scaling)」と呼びます。 ◦ 予測処理を行う際は、予測データに対しても同じ変換を行ってから学習済みモデルに 入力します。具体的には、次のような手法があります。 • 正規化:平均 0、分散 1 にそろえる(はずれ値の影響を受けにくい) • 標準化:最大 1、最小 0 にそろえる ※ パーセプトロンの場合、データの正規化を行うとバイアス項の修正は不要になります。 59 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  40. 線形判別法の例題 ▪ 学習に使用するデータ(トレーニングセット) ◦ (x, y) 平面上の N 個のデータポイント ◦

    データポイントは、2タイプに分かれて おり、 ▪ トレーニングセットと 判別直線の例 にラベル付けされている。 解くべき問題 ◦ 2タイプのデータを分割する直線を求める。 ◦ きれいに分割できない場合は、何らかの意味 で「最善」の分割を与える。 •:t = 1 ×:t = 0 ※ パーセプトロンの例題と本質的に同じですが、計算上の都合で t の値が異なります。 62 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  41. ロジスティック回帰の考え方 ▪ ▪ ▪ •:t = 1 ×:t = 0

    ロジスティック回帰では、分割線を次 式で与えます。ここまでは、パーセプ トロンと同じです。 パラメータ w を決定するために「最 尤推定」を用います。 つまり、回帰分析と同様に、あるデー タが得られる「確率」を決めて、ト レーニングセットが得られる確率を最 大にします。 y x 63 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  42. ロジスティック関数による確率 ▪ ▪ ▪ 点 (x, y) で新たに取得したデータが「t = 1」で

    ある確率を P(x, y) とします。 •:t = 1 ×:t = 0 右図において分割線から右上に進むと P は大 きくなり、左下に進むと P は小さくなると考 えられます。 そこでこの確率を次式で定義します。 :ロジスティック関数 ◦ σ(a) は、右図のように 0 から 1 になめらかに増 加する関数です。 ◦ の分割線上では、確率はちょうど 0.5 になります。 Python Career College 64 Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  43. ロジスティック回帰における尤度関数 ▪ 前ページで定義した確率 を元にして、トレーニングセット が得られる確率を計算してみます。 ▪ ◦ 点 から のデータが得られた場合、それが起きる確率は:

    ◦ 点 から のデータが得られた場合、それが起きる確率は: ◦ これら2つは、(技巧的ですが)次のように1つの式にまとめられます。 従って、トレーニングセットが得られる確率(尤度関数)は次式になります。 65 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  44. ロジスティック回帰による確率の推定 ▪ ▪ ロジスティック回帰では、「個々の観測点で 得られるデータが t = 1 に属する確率」が得ら れます。

    これを利用すると、トレーニングセットにつ いて「確率順リスト」が作成できます。 0 1 2 3 4 5 6 7 ... x 25.100600 25.716642 26.328260 20.965230 16.940683 15.384313 -4.292937 19.822191 y 15.215185 10.509214 9.368392 6.646373 7.185182 4.033190 19.269243 -3.042080 type 1 1 1 1 1 0 1 1 •:t = 1 ×:t = 0 この方向に 確率が大きくなる probability 0.972372 0.957894 0.955292 0.906886 0.876261 0.814820 0.776546 0.760062 69 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  45. ロジスティック回帰の現実問題への適用 ▪ ▪ これまでに考えてきた下記の「分割線」は、「t = 1 の確率が 0.5」の境界線に なります。 現実の問題において、観測点

    (x, y) の新たなデータのタイプを推定する際は、 必ずしも「確率 0.5」を堺に判定する必要はありません。 ◦ 例:「あるウィルスに感染しているか」を示すトレーニングセットにロジスティック 回帰を適用して、検査結果の数値 (x, y) から t = 1 である(ウィルスに感染している) 確率 P(x, y) を求められるようになりました。医師であるあなたは、確率 P(x, y) の値が いくら以上の人に精密検査を勧めるでしょうか? 70 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  46. 真陽性率と偽陽性率のトレードオフ ▪ ▪ 一般に、判定のしきい値(t = 1 と判断する最低確率)は、TP rate(True Positive Rate:

    真陽性率)と FP rate(False Positive Rate: 偽陽性率)のト レードオフを考慮して設定します。 ◦ TP Rate : 「真陽性(正しく陽性と判定)の数」÷「陽性の総数」 ◦ FP Rate : 「偽陽性(誤って陽性と判定)の数」÷「陰性の総数」 感染者20名を含む1000人が検査を 受けて、50名が陽性と判定されたと して: ◦ 本当に陽性だったのは15人 ⇒ TP rate = 15/20 = 0.75 ◦ 実際は陰性だったのは35人 ⇒ FP rate = 35/980 ≒ 0.04 71 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  47. 真陽性率と偽陽性率のトレードオフ ▪ 理想の判定は、TP rate = 1(感染者は全部見つける)かつ FP rate = 0(誤っ

    て感染者とは判定しない)ですが、一般には次のトレードオフが発生します。 ◦ しきい値を下げると TP rate が上がる代わりに FP rate も上がる。 ◦ しきい値を上げると FP rate が下がる代わりに TP rate も下がる。 真陽性(TP) しきい値 しきい値を下げると 真陽性(TP)が増えるが 偽陽性(FP)も増える Python Career College x y 0 25.100600 15.215185 1 25.716642 10.509214 2 26.328260 9.368392 3 20.965230 6.646373 4 16.940683 7.185182 5 15.384313 4.033190 6 -4.292937 19.269243 7 19.822191 -3.042080 ----8 12.615442 -4.103175 9 15.223528 -6.948369 10 10.978713 -7.110957 11 26.402198 -21.755863 12 -7.920640 -3.024727 13 -19.024978 6.163114 14 1.152526 -14.663486 15 6.027717 -20.457424 16 -16.228075 -3.017577 17 -28.237444 2.175471 18 -6.533585 -19.910959 ... type 1 1 1 1 1 0 1 1 probability 0.972372 0.957894 0.955292 0.906886 0.876261 0.814820 0.776546 0.760062 0 1 1 0 0 0 1 0 0 0 0 0.591393 0.577949 0.475399 0.450887 0.192805 0.181953 0.140983 0.123408 0.099239 0.058384 0.044175 陰性判定 しきい値を上げると 偽陽性(FP)が減るが 真陽性(TP)も減る 陽性判定 偽陽性(FP) Copyright (C) 2025 National Institute of Informatics, All rights reserved. 72
  48. ROC曲線によるしきい値の決定 ▪ さまざまなしきい値に対する、TP rate と FP rate の値をグラフ上にプロット したものを「ROC曲線」と言います。 ◦

    ▪ ROCグラフから、「最適なしきい値」の検討ができます。 理想は左上(TP=1, FP=0)ですので、 「ROCグラフがどれだけ左上に近づいている か」は、その判定法そのものの評価基準とな ります。 ◦ 理想の判定法 すべてを「陽性」 と判定する ROC曲線の下側の面積(AUC: Area under the curve)が大きいほど優秀な判定法と言えます。 一定確率でランダムに 「陽性」と判定する すべてを「陰性」 と判定する Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 73
  49. その他の性能指標(メトリック) ▪ ROC曲線では、TP rateとFP rateをグラフ化しましたが、次の「Recall」と 「Precision」を性能指標として使用する場合もあります。 ◦ Recall(再現率):陽性のデータをどれだけの割合で正しく検出できたか → TP

    Rate と同じもの ◦ ▪ Precision(適合率):陽性と判断した中でどれだけが本当に陽性だったか 偏りのあるデータ(陰性が圧倒的に多いデータ)の場合、真陰性(TN)の値は 常に大きくなるので、計算式にTNを含む指標(FP rate)はよい指標となりま せん。(モデルの特性を変えても値がほとんど変わりません。) ◦ TP rate (Recall) = TP / (TP+FN) ◦ FP rate = FP / (FP+TN) ◦ Precision = TP / (TP+FP) ◦ Accuracy = (TP+TN) / (P+N):すべてのデータの中で正しく予測したデータの割合 ※ 特に正解率(Accuracy)は、すべてを「陰性」と予測するだけで高い値になります。 75 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  50. 教師なし学習モデル ▪ ▪ パーセプトロンやロジスティック回帰では、事前に分類された「トレーニング セット」を元にして、未知のデータを分類する「ルール」を決定しました。 一方、下図のように、もともと分類されていないデータが与えられたとして、 これを「自然なグループ」に分類することができるでしょうか? ◦ ▪ この例の場合は「心の目」で分類することもできますが、平面にプロットできない(3

    次元以上の)データの場合は、機械的に分類する手法が望まれます。 一般に「分類指標」が事前に与えられ ていないデータを用いた機械学習を 「教師なし学習」と呼びます。 ◦ この例は、教師なし学習の中でも、「ク ラスタリング」と呼ばれる問題です。 80 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  51. k平均法によるクラスタリング ▪ ▪ 比較的シンプルなクラスタリングのアルゴリズムに「k平均法」があります。 事前にグループ数を「k 個」と特定して分類します。 次のようなアルゴリズムです。 ◦ (1) k

    個の「代表点」をランダムに選びます。 ◦ (2) データに含まれる各点を「もっとも近い代表点」のグループに属するものとして、 k個のグループに分類します。 ◦ (3) それぞれのグループの重心(座標の 平均値)を各グループの新たな「代表 点」とします。 ◦ (4) 新たな代表点を用いて、(2) の処理 を行います。 ◦ これを何度も繰り返すと、「代表点」 と「グループの重心」が一致して、代 表点が変化しなくなるので、それを最 終的なグループ分けとします。 81 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  52. k平均法の数学的根拠 ▪ k平均法のアルゴリズムは、次のように理解することができます。 ▪ まず、次の記号を定義します。 ◦ 分類するデータ群をベクトル表記で ◦ 各点が属するグループ とします。

    を次の記号で示します。 がグループ k に属する場合 それ以外 ◦ ▪ グループ k の代表点を とします。 各点について、属するグループの代表点からの距離(の2乗)を合計します。 ◦ 「J の値が小さい方がより適切なグループ分け(および代表点のとり方)である」とし て、J が小さくなるように と を修正していきます。 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 82
  53. k平均法の数学的根拠 ▪ (1) ◦ ▪ 各点 について、 が最も小さいグループを選択するように ます。この操作で、J が大きくなることはあり得ません。

    (2) ◦ の修正 を修正し の修正 J は、 の2次関数で下に凸なので、微係数が 0 という条件で(与えられた の下で)最小化されます。 より、 ◦ ▪ これは、各グループの重心に他なりません。この操作で、J が大きくなることはあり得 ません。 (1) (2)を繰り返すと、有限回の繰り返しの後に、J は極小値に達します。 ◦ 各点をグループ分けする方法は有限通りである事に注意します。J は減少を続けるので 同じ配置に戻ることはありません。 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved. 83
  54. k平均法による「画像の減色処理」の選択 ▪ k平均法を用いて、「画像の減色処理」を行うことができます。 ▪ 画像データに対して、次のように、k平均法を適用します。 ◦ 画像ファイルの各ピクセルの色を (R, G, B)

    表記したものを3次元ベクトルの集合と見 なします。k 個の代表点を選択する処理は、k 個の「代表色」を選択していると考えら れます。 ◦ 代表色が決定された後に、各ピクセルの色をそれが属するグループの代表色に置き換 えることで、画像の減色処理を行います。 84 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  55. 「手書き文字生成器」の最尤推定 ▪ ▪ 次のような架空の「手書き文字生成器」を想定します。 ◦ 図の「Master」は 0, 1(白, 黒)のピクセルからなるビットマップ画像をランダムに 生成します。色の濃い所ほど、「1(黒)」になる確率が高くなります。

    ◦ この生成器から多数のビットマップ画像を生成することで、不規則な手書き風文字を 生成することができます。 一方、多数の手書き文字のトレーニングセットが与えられた際に、これらを生 成する「Master」を逆に計算で求めることができます。 ◦ K 種類の文字がまざっている場合は、K 種類の生成器が背後にあると仮定して、これ らが「トレーニングセットと同じサンプルを発生する確率 P」を考えます。 ◦ さまざまな「生成器のセット」中で、P を最大にするセットを探し出します。つま り、P に対する最尤推定を実施します。 生成されたサンプル Master 手書き文字生成器 89 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  56. EM法による混合分布の最尤推定 ▪ 「生成器のセット」は、次のような考え方で決定します。 ◦ K 個の生成器とそれぞれの生成器を選択する確率 を想定します。 ◦ 新しい文字を生成するときは、確率 生成器から文字を生成します。

    ◦ 「上記の操作を600回繰り返した時に、トレーニングセットと同じ600文字が得られる 確率」を考えて、これを最大にする生成器と確率 を求めます。 に基づいて生成器を1つ選択して、その 600回繰り返す 確率 に応じて 数字を1つ選択 対応する生成器 で画像を生成 90 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  57. トレーニングセットと同じデータが得られる確率 ▪ ドット数 D のビットマップ画像において、各ピクセルが 1(黒)になる確率を 並べたベクトルを 、生成される画像のピクセル(0, 1) を並べたベクトルを

    として、このような画像が得られる 確率は次になります。 ▪ この記法を用いると、K 個の生成器は、K 個の確率ベクトル で表現 されます。同じく、トレーニングセットとなる N 個の画像は、ピクセルを並べ たベクトル で表現されます。 91 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  58. トレーニングセットと同じデータが得られる確率 ▪ それぞれの生成器を選択する確率を とした時、トレーニングセット と同じデータが生成される確率は次式になります。 n 番目の文字が生成される確率 1 個目の生成器が選ばれて、 それから

    n 番目の文字が 生成される確率 ◦ ▪ 2 個目の生成器が選ばれて、 それから n 番目の文字が 生成される確率 数学的には、複数のベルヌーイ分布を混ぜ合わせた「混合ベルヌーイ分布」にあたり ます。 上記の P を最大化する と を決定するアルゴリズムが、次 に説明する EM 法です。 Python Career College 92 Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  59. EM法のアルゴリズム ▪ 画像 が正しく得られたとして「それが生成器 次式になります。(画像 ▪ ランダムに決定した が「生成器 から得られた確率」は に属する割合」と解釈できます)

    を用いて を計算した後、新しい を次式で再計算します。 ▪ 新しい を用いて、再度 返すと、前ページの P を極大化する を計算します。この計算を繰り が得られます。 93 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  60. ハードクラスタリングとソフトクラスタリング ▪ EM 法の は k 平均法の に対応しており、1つのデータが複数のクラス ターにさまざまな割合で所属するようにクラスタリングの考え方を拡張したも のと理解できます。

    k 平均法 EM 法 はさまざまな クラスターに属する はクラスター「3」 だけに属する 94 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.
  61. 手書き文字の学習例 ▪ 先ほどと同じサンプルを K = 4 で学習すると、図の結果が得られます。 ◦ 「真円の0」と「縦長の0」に対応する別々の生成器が得られました。 ◦

    手書きの「0」は、潜在的に「真円の0」と「縦長の0」の2種類に分類されると解釈す ることもできますが、実行ごとに結果が変わる可能性がある点に注意が必要です。 2種類の「0」が 区別されている。 98 Python Career College Copyright (C) 2025 National Institute of Informatics, All rights reserved.