まるごと学べる 異常検知の実践知
- 中村謙太 著
- 定価
- 3,960円(本体3,600円+税10%)
- 発売日
- 2025.10.27
- 判型
- B5変形
- 頁数
- 448ページ
- ISBN
- 978-4-297-15226-0
サポート情報
概要
異常検知は製造業における不良品検出や故障の予兆検知、セキュリティ分野での不正アクセス検知、医療における病変検出など、実社会の幅広い場面で不可欠な技術です。本書は、その理論と実装をバランスよく解説した実用的な入門書です。
「異常データが少ない」「データの分布にモデルがうまく当てはまらない」といった実務で頻発する課題を出発点に、教師あり学習、教師なし学習、統計モデリングを用いた異常検知手法を広く紹介し、その使い分け方法を体系的に整理します。
基礎理論の平易な説明と、Pythonやオープンソースライブラリによる実用的なコード実装を通じて、実際のシステム設計や運用に直結する知識を提供します。異常検知の基礎と応用を一冊で身につけたい方に最適な手引きです。
こんな方にオススメ
- 異常検知のしくみを理解して実践したいデータ分析者
- 異常検知をサービスに導入したいエンジニア
- 製造業やセキュリティ、医療など異常検知の有用性が高い分野のエンジニア
目次
1章 異常検知の概要と使いどころ
- 1.1 異常検知とは何か
- 1.1.1 「異常」を「検知」するとは
- 1.1.2 本書のねらい
- 1.1.3 異常検知の主要な活用分野
- 1.1.4 異常検知活用のケーススタディ
- 1.2 異常検知における課題と解決策
- 1.2.1 ドメイン知識に基づく異常検知
- 1.2.2 現実の異常検知は課題だらけ?
- 1.2.3 異常検知の課題をクリアする方法
- 1.2.4 本書における異常検知の定義
- 1.3 異常検知の実施フロー
- 1.3.1 異常検知のステップ分け
- 1.3.2 異常検知を実システムに組み込むフロー
- 1.3.3 学習と推論
- 1.4 本書の構成
- 1.4.1 各章の概要
- 1.4.2 本書で紹介する手法一覧
- 1.4.3 本書で紹介する異常検知アルゴリズムの概要
- 1.5 データとモデルの基礎知識
- 1.5.1 異常検知で用いるデータの構造
- 1.5.2 教師あり学習、教師なし学習、統計モデリングの違い
- 1.5.3 変数の種類の定義
- 1.6 各手法の使い分け
- 1.6.1 評価指標の選択
- 1.6.2 異常検知アルゴリズムの選択
- 1.6.3 しきい値の決定
- 1.6.4 前処理手法・変数の選択
- 1.7 実システムで陥りやすい落とし穴
- 1.7.1 正常データと比べて異常データが極端に少ない
- 1.7.2 異常データを意図して取得できない
- 1.7.3 誤報が頻発する
- 1.7.4 率データにおける分母が小さいデータの誤報の増加
- 1.7.5 変数が多すぎる
- 1.7.6 外れ値の影響で学習が破綻
- 1.7.7 正常範囲が他の変数に応じて変化する
- 1.7.8 正常範囲が時間とともに変化する
- 1.7.9 複雑なデータの構造のためモデルを作成できない
- 1.7.10 学習・テストデータの不適切な分割による過学習の見逃し
- 1.7.11 時間経過にともなう性能劣化―モデルドリフト
- 1.7.12 倫理的な問題を含んだモデル
- 1.8 Pythonの環境構築
- 1.8.1 想定する開発・実行環境
- 1.8.2 Pythonの特徴
- 1.8.3 Visual Studio Code
- 1.8.4 PythonのOSSライブラリとライセンス
- 1.8.5 本書におけるコーディングのルール
2章 データの概要把握と可視化
- 2.1 本章の構成
- 2.2 構造化データの取り扱いとPythonでの読み込み
- 2.2.1 構造化データの取り扱い
- 2.2.2 特徴空間とデータのベクトル・行列表記
- 2.2.3 本章で使用するサンプルデータ
- 2.3 EDA―探索的データ解析
- 2.3.1 各変数の要約統計量の算出
- 2.3.2 各変数の欠測値の数の算出
- 2.3.3 変数同士の相関係数と共分散の算出
- 2.3.4 数値によるEDAの欠点
- 2.4 データの可視化
- 2.4.1 1次元データの可視化
- 2.4.2 2次元データの可視化
- 2.4.3 多次元データの可視化
- 2.5 2〜6章で使用するサンプルデータの作成
3章 教師あり学習を用いた手法
- 3.1 本章の構成
- 3.2 教師あり学習と異常検知
- 3.2.1 分類
- 3.2.2 本章で紹介する教師あり学習の手法
- 3.3 SVM―サポートベクターマシン
- 3.3.1 SVMの概要
- 3.3.2 SVMによる異常検知の実装
- 3.3.3 過学習とハイパーパラメータチューニング
- 3.4 ロジスティック回帰
- 3.4.1 ロジスティック回帰の概要
- 3.4.2 ロジスティック回帰による異常検知の実装
- 3.4.3 log lossと交差エントロピー誤差
- 3.5 教師あり学習による異常検知の問題点
- 3.5.1 不均衡データ
- 3.5.2 異常データがないと学習不可
- 3.5.3 学習データが存在しない領域での性能低下
- 3.5.4 未知の異常タイプの検出が困難
- 3.5.5 異常の度合いの解釈が困難
4章 教師なし学習を用いた手法1 ―1変数データ
- 4.1 本章の構成
- 4.2 教師なし学習による異常検知の概要
- 4.2.1 教師なし学習による異常検知の実施フロー
- 4.2.2 教師なし学習による異常検知のメリット
- 4.3 確率分布と最尤推定
- 4.3.1 確率分布の基礎知識
- 4.3.2 主な確率分布
- 4.3.3 確率分布の選択法
- 4.3.4 Pythonによる確率分布の実装
- 4.3.5 最尤推定
- 4.3.6 最尤推定の誤差とサンプルサイズ
- 4.4 ホテリング理論による異常検知―サンプルサイズNが大きい場合
- 4.4.1 データが正規分布に従うかの判断方法
- 4.4.2 ホテリング理論による異常検知の実施フロー
- 4.4.3 異常度にしきい値を設けるか? 元の変数にしきい値を設けるか?
- 4.4.4 ホテリング理論による異常検知の実装―サンプルサイズNが大きい場合
- 4.4.5 別解:元の変数にしきい値を設ける場合の実装法
- 4.5 ホテリング理論による異常検知―サンプルサイズNが小さい場合
- 4.5.1 ホテリング理論による異常検知の実施フロー―サンプルサイズNが小さい場合
- 4.5.2 別解:元の変数にしきい値を設ける方法の実施フロー
- 4.5.3 ホテリング理論による異常検知の実装―サンプルサイズNが小さい場合
- 4.5.4 別解:元の変数にしきい値を設ける場合の実装法
- 4.5.5 ホテリング理論における近似
- 4.6 1次元非正規分布の最尤推定による異常検知
- 4.6.1 データの分布形状から確率分布の種類を選択する方法
- 4.6.2 1変数非正規分布の最尤推定による異常検知の実施フロー
- 4.6.3 1次元非正規分布の最尤推定による異常検知の実装
5章 教師なし学習を用いた手法2 ―計数データ
- 5.1 本章の構成
- 5.2 計数データの性質
- 5.2.1 二項分布と試行数nの関係
- 5.2.2 ポアソン分布と観測区間tの関係
- 5.2.3 過分散
- 5.3 二項分布の最尤推定による異常検知
- 5.3.1 二項分布の最尤推定
- 5.3.2 二項分布の最尤推定による異常検知の実施フロー
- 5.3.3 二項分布の最尤推定による異常検知の実装
- 5.4 ポアソン分布の最尤推定による異常検知
- 5.4.1 ポアソン分布の最尤推定
- 5.4.2 ポアソン分布の最尤推定による異常検知の実施フロー
- 5.4.3 ポアソン分布の最尤推定による異常検知の実装
6章 教師なし学習を用いた手法3 ―多変数データ
- 6.1 本章の構成
- 6.2 多次元確率分布の性質と最尤推定
- 6.2.1 多次元確率分布の性質
- 6.2.2 共分散と分散共分散行列
- 6.2.3 多次元正規分布
- 6.2.4 多次元正規分布の最尤推定
- 6.3 多変数のホテリング理論による異常検知
- 6.3.1 多変数のホテリング理論による異常検知の実施フロー
- 6.3.2 多変数のホテリング理論による異常検知の実装
- 6.3.3 ホテリング理論による異常検知の課題と対策
- 6.4 マハラノビス・タグチ法による異常検知
- 6.4.1 マハラノビス・タグチ法による異常検知の概要
- 6.4.2 マハラノビス・タグチ法による異常検知の実装
- 6.5 混合正規分布モデルによる異常検知
- 6.5.1 GMMとEMアルゴリズムの概要
- 6.5.2 GMMとEMアルゴリズムよる異常検知の実施フロー
- 6.5.3 GMMとEMアルゴリズムよる異常検知の実装
- 6.6 ノンパラメトリック手法による異常検知
- 6.6.1 異常検知とノンパラメトリック手法
- 6.6.2 k-NNの概要
- 6.6.3 k-NNによる異常検知の実施フロー
- 6.6.4 k-NNによる異常検知の実装
7章 統計モデリングを用いた手法―入出力があるデータ
- 7.1 本章の構成
- 7.2 入出力があるデータと統計モデリング
- 7.2.1 入出力があるデータで生じる課題
- 7.2.2 統計モデリング
- 7.2.3 統計モデリングの学習と推論
- 7.2.4 統計モデリングを用いた異常検知の概要
- 7.2.5 7️〜8章で使用するサンプルデータの作成
- 7.2.6 入出力があるデータの可視化
- 7.3 1変数線形回帰モデルによる異常検知
- 7.3.1 1変数線形回帰モデルの最尤推定
- 7.3.2 1変数線形回帰モデルによる異常検知の実施フロー
- 7.3.3 1変数線形回帰モデルによる異常検知の実装
- 7.4 多変数線形回帰モデルによる異常検知
- 7.4.1 多変数線形回帰モデルの最尤推定
- 7.4.2 多変数線形回帰モデルによる異常検知の実施フロー
- 7.4.3 多変数線形回帰モデルによる異常検知の実装
- 7.5 リッジ回帰モデルによる異常検知
- 7.5.1 リッジ回帰の概要
- 7.5.2 リッジ回帰モデルによる異常検知の実施フロー
- 7.5.3 リッジ回帰モデルによる異常検知の実装
- 7.6 非正規GLMによる異常検知
- 7.6.1 ガンマ回帰モデルによる異常検知の実装
8章 ベイズ統計モデリングを用いた手法―入出力があるデータ
- 8.1 本章の構成
- 8.2 ベイズ推定とベイズ統計モデリング
- 8.2.1 ベイズ推定と最尤推定の比較
- 8.2.2 ベイズの定理
- 8.2.3 統計モデリングとベイズの定理
- 8.2.4 ベイズ推定における予測分布
- 8.2.5 ベイズ推定の効率化テクニック
- 8.2.6 ベイズ統計モデリングの実施フロー
- 8.3 MCMC―マルコフ連鎖モンテカルロ法
- 8.3.1 MCMCの概要
- 8.3.2 メトロポリス・ヘイスティングス法
- 8.3.3 MCMCサンプルの分析と後処理
- 8.3.4 MCMCを実装するためのライブラリ
- 8.4 ベイズ線形回帰による異常検知
- 8.4.1 ベイズ線形回帰による異常検知の実施フロー
- 8.4.2 ベイズ線形回帰による異常検知の実装
- 8.5 二項ロジスティック回帰による異常検知
- 8.5.1 計数データを対象とした統計モデリング手法
- 8.5.2 二項ロジスティック回帰の概要
- 8.5.3 二項ロジスティック回帰による異常検知の実施フロー
- 8.5.4 二項ロジスティック回帰による異常検知の実装
- 8.6 ポアソン回帰による異常検知
- 8.6.1 ポアソン回帰の概要
- 8.6.2 ポアソン回帰による異常検知の実施フロー
- 8.6.3 ポアソン回帰による異常検知の実装
- 8.7 GLMMと階層モデル
- 8.7.1 階層モデルの概要とユースケース
- 8.7.2 GLMMとランダム効果
- 8.7.3 階層ベイズモデル
- 8.8 GLMMによる異常検知―個体差によるランダム効果
- 8.8.1 GLMMによる異常検知の実施フロー
- 8.8.2 GLMMによる異常検知の実装
9章 前処理と性能評価
- 9.1 本章の構成
- 9.2 異常検知における前処理
- 9.2.1 欠測値への対処
- 9.2.2 変数選択
- 9.2.3 カテゴリ変数の数値化
- 9.2.4 標準化と正規化
- 9.2.5 次元削減―主成分分析
- 9.2.6 外れ値検出
- 9.3 性能評価
- 9.3.1 ラベルの予測精度の評価
- 9.3.2 統計モデル選択の妥当性の評価
- 9.3.3 交差検証
- 参考文献
- 索引
- 著者略歴
プロフィール
中村謙太
2011年、東京大学工学部を卒業。2013年、東京大学大学院工学系研究科機械工学専攻にて修士課程を修了。製造業で機械学習を用いた品質保証・異常検知システムの開発に従事しており、研究知識を現場実装につなげるエンジニアリングが強み。
Qiita(アカウント名@c60evaporator)などの技術発信プラットフォームで、Pythonを用いた機械学習、クラウド、IoTの記事を多数公開。複雑な理論を分かりやすく解説することに定評あり。