『入門 機械学習による異常検知 — Rによる実践ガイド —』（コロナ社、2015）
第3刷正誤表井手剛
https://ide-research.net/jpn/book/
March 11, 2024

Chapter 1

異常検知の基本的な考え方• p.19 2.2.2 最初のパラグラフ（坂内匠様のご教示に感謝いたします）。
– 誤: 単に式(2.3)の対数を計算すると– 正: 単に式(2.3)の対数を計算して符号を変えると

2

Chapter 2

正規分布に従うデータからの異常検知• p.34 式(2.28)の導出に関し、 y2 , . . . , yN の期待値がゼロになるという事実を明示的に書いていなかったので若干わかりにくかったと思います。
下記のように更新します（中西惇様のご指摘に感謝します）。
– 旧: 最後に、定理 2.4 の 3. ですが、定理 2.3 と式 (2.24) により– 新: 最後に、定理 2.4 の 3. ですが、p(Y ) の式によれば yn の期待値が u⊤n u1 に比例していること、 したがって固有ベクトルの直交性から n = 2, . . . , N に対しゼロになることに注意します。 このことと、定理 2.3 と式 (2.24) により• p.43 実行例2.5、4行目。これは間違いではありませんが、実行例のすぐ上の説明と矛盾しているので訂正します。大塚誠様のご教示に感謝いたします。
– 誤: a <- rowSums((Xc %*% solve(Sx)) * Xc) # 異常度– 正: a <- colSums( t(Xc) * solve(Sx,t(Xc)))# 異常度• p.46 式 (2.42) およびその上の式（藤本望夢様のご教示に感謝します）。
– 誤:dz (1) · · · dz (N ) = dv 2−1 |v|−(N −2)/2 dS1,Ndz (1) · · · dz (N ) = dV 2−M |V|−(N −M −1)/2 dSM,N– 正:
dz (1) · · · dz (N ) = dv 2−1 |v|(N −2)/2 dS1,Ndz (1) · · · dz (N ) = dV 2−M |V|(N −M −1)/2 dSM,N• p.47 式(2.44)（藤本望夢様のご教示に感謝します）。
3

CHAPTER 2. 正規分布に従うデータからの異常検知

4– 誤:p(A) = f (A) × 2−M |A|−(N −M −1)/2 ×2M π M N/2
ΓM (N/2)

p(A) = f (A) × 2−M |A|(N −M −1)/2 ×2M π M N/2
ΓM (N/2)– 正• p.55 下から6行目（眞田明様のご教示に感謝します）。
– 誤: µ̂ は式(2.19)で示したとおり、平均 0、分散 σ 2 (N + 1)/N の正規分布に従います。
– 正: x′ − µ̂ は式(2.19)で示したとおり、平均0、分散 σ 2 (N + 1)/N の正規分布に従います。

Chapter 3

非正規データからの異常検知• p.63 実行例3.1、3行目（濱田慧様のご教示に感謝いたします）。
– 誤: si <- sd(Davis$weight)*(N-1)/N #標準偏差– 正: si <- sd(Davis$weight)*sqrt((N-1)/N) #標準偏差• p.69 3.2.3 節の冒頭4行（遠藤秀和様のご教示に感謝いたします）。(3.16)式(n)(n)は(3.18)式の誤り。また、zi ではなくてδ(z , i)の期待値。
– 誤: 最尤推定に使う尤度 L(θ | D) は(3.16)式のようなすっきりした形になっています。問題は仮想的変数が未知だったことですが、今やわれわれは、(3.20)式に基づき数値として計算済みと想定して(n)(n)います。 zi をqi に置き換えた上で素朴に(3.16)式をパラメターで微分すると、次のような式を得ます。
– 正: 最尤推定に使う尤度L(θ | D)は(3.18)式のようなすっきりした形になっています。 問題は仮想的変数が未知だったことですが、今やわれわれは、(3.20)式に基づき数値として計算済みと想定して(n)います。 δ(z (n) , i)をqi に置き換えた上で素朴に(3.18) 式をパラメターで微分すると、次のような式を得ます。
• p.88 式 (3.51)（藤本望夢様のご教示に感謝します）。
– 誤:
L(Θ|D) = ln

NYp(x(n) |Θ) =NX

ln

n=1

i=1

KXπk N (x(n) | µk , Σk )

k=1

– 正:
L(Θ|D) = ln

NYp(x(n) |Θ) =n=1

NX
n=1

ln

KX

πk N (x(n) | µk , Σk )k=1

• p.92、実行例3.8、1行目（山下智輝様のご指摘に感謝いたします）。
5

6

CHAPTER 3. 非正規データからの異常検知– 誤: $ 混合比を取り出す– 正: # 混合比を取り出す

Chapter 4

性能評価の方法
現時点で判明している誤りはありません。

7

Chapter 5

不要な次元を含むデータからの異常検知• p.128 式(5.13)およびその下の式（福永裕子様、 岩田和大様のご教示に感謝いたします）。
– 誤: 正規直交基底u1 , . . . , um を求めるためには
1ui = √ X̃vi
λi(5.13)とすればいいことが直ちにわかります。なぜなら
111u⊤vi⊤ X̃⊤ X̃vj = p
λj vi⊤ vj = pλj δi,j = δi,ji uj = pλi λjλi λjλi λjとなるからです。
– 正: 正規直交基底u1 , . . . , um を求めるためには
1ui = √ X̃vi
νi(5.13)とすればいいことが直ちにわかります。なぜならu⊤i uj = √111v ⊤ X̃⊤ X̃vj = √νj vi⊤ vj = √νj δi,j = δi,jνi νj i
νi νjνi νjとなるからです。
• p.130、下から４行目。池田弘様のご指摘に感謝いたします。
– 誤: 式(5.21)から、ΛM のゼロ対角要素に対応する部分を省略して– 正: 式(5.20)から、ΛM のゼロ対角要素に対応する部分を省略して
8

9• p.132 上から4行目。吉川岳様のご指摘に感謝いたします。
– 誤: N × N の中心化グラム行列の上位r個の規格化された固有ベク
トルv1 , . . . , vm を求め– 正: N × N の中心化グラム行列の上位m個の規格化された固有ベク
トルv1 , . . . , vm を求め• p.143 式(5.45)（藤本望夢様のご教示に感謝します）
。
– 誤:

p(z (n) |x(n) , Θ) = N z (n) M−1 W⊤ (x − x̄), σ 2 M−1– 正:
p(z (n) |x(n) , Θ) = N z (n) M−1 W⊤ (x(n) − x̄), σ 2 M−1となるからです。
• p.154 上から2行目（辻善夫様のご教示に感謝します）。
– 誤: Dにしたのと同一の非線形変換x ← ϕ(x)を施して、– 正: Dにしたのと同一の非線形変換x → ϕ(x)を施して、• p.155 式 (5.69)（眞田明様のご教示に感謝します）。
– 誤:v⊤
r1am=1 (D, D′ ) = 1 − √1 HN BHN ′ √γ1λ1– 正:′am=1 (D, D ) = 1 −rv⊤√1 HN BHN ′ √ 1γ1λ1

2

Chapter 6

入力と出力があるデータからの異常検知• p.167 式(6.20)（平田大貴様のご教示に感謝します）。
– 誤:e(λ) =12diag(IM − H)−1 (IM − H)ỹN
Ne(λ) =

12diag(IN − H)−1 (IN − H)ỹNN– 正:• p.168 1行目（平田大貴様のご教示に感謝します）。
– 誤: また、diag(IM − H)−1 は、第i対角要素が(1 − Hi,i )−1 となる対角行列である。
– 正: また、diag(IN − H)−1 は、第i対角要素が(1 − Hi,i )−1 となる対角行列である。
• p.189の2つ目の式（藤本望夢様のご教示に感謝します）。 なお、 Mϕ の定義は p.185 の式(6.51)の下にあります。
– 誤:σ 2 IN +σ2λ̂Φ⊤ Φ = (σ 2 )N λ̂−M |A|– 正:
σ 2 IN +σ2λ̂Φ⊤ Φ = (σ 2 )N λ̂−Mϕ |A|• p.189 式(6.66)（森川浩司様、藤本望夢様のご教示に感謝します）。
1011– 誤:ln E(σ 2 ) =iN
1 hln(2π) − ln (σ 2 )N λ̂−M |A|22
1 ⊤IMϕ − Φ⊤ A−1 Φ yN− 2 yN
2σ– 正:ln E(σ 2 ) = −iN
1 hln(2π) − ln (σ 2 )N λ̂−Mϕ |A|22
1 ⊤IN − Φ⊤ A−1 Φ yN− 2 yN
2σChapter 7

時系列データの異常検知• p.200 下から4行目（眞田明様のご教示に感謝します）。
(t)(t)

(t)

(t)

(t)

– 誤: ただし、v (t) = [v1 , v2 , . . . , vk ]⊤ です。
(t)– 正: ただし、v (t) = [vk , vk−1 , . . . , v1 ]⊤ です。
• p.202 手順 7.2（眞田明様のご教示に感謝します）
。
– 誤:
(t)

(t)

(t)

(t)

∗ a) 履歴行列とテスト行列 : 式(7.4) と式(7.5)からH1 とH2 を作る。
(t)(t)∗ b) 特異値分解: H1 , H2 を特異値分解し、左特異ベクトルの行(t)(t)列Um , Qm を求める。
– 正:∗ a) 履歴行列とテスト行列 : 式(7.4) と式(7.5)からX1 とX2 を作る。
(t)(t)∗ b) 特異値分解: X1 , X2 を特異値分解し、左特異ベクトルの行(t)(t)列Um , Qm を求める。
• p.203 上から4行目。辻善夫様のご指摘に感謝いたします。
– 誤: 過去側に主部分空間への射影– 正: 過去側の主部分空間への射影• p.208 下から2行目の式（平田大貴様のご教示に感謝します）。
– 誤:∂L= YX⊤ − AXX⊤
∂A
– 正:
∂L= Σ−1 (YX⊤ − AXX⊤ )
∂A
12

13
• p.215 図7.9のキャプション。小野剛様のご指摘に感謝いたします。
– 誤: 図7.9 部分空間同定法の説明。
– 正: 図7.9 部分空間同定法の説明。 本文中の設定だとpとfには一般に多少の重なりが生じます（図7.4 も参照）。
• p.219 上から6行目。辻善夫様のご指摘に感謝いたします。
– 誤: 改めててデータを– 正: 改めてデータを• p.220 手順7.4の 2)（眞田明様のご教示に感謝します）。
′– 誤: 先に状態変数の推定値 Z ′ = {ẑ (1) , . . . , ẑ (T ) } を用意する（T ′ =T −w ）。
′– 正: 先に求めた状態変数の推定値から Z ′ = {ẑ (1) , . . . , ẑ (T ) } を用意する（T ′ = T − w ）。
• p.221。下から3行目（藤本望夢様のご教示に感謝します）。
– 誤: 分子はモデル (7.28) および式(7.29) そのものですが– 正: 分子はモデル (7.27) および式(7.29) そのものですがChapter 8

よくある悩みとその対処法• p.232 式(8.3)の下から (8.4)まで（眞田明様のご教示に感謝します）。
– 誤: 例 え ば 共 分 散 行 列 の 場 合 は、 Σt = (1/t)
x̄t x̄⊤t なので、 第1項について f(t)共分散= x(t) x(t)(t) (t) ⊤−n=1 x x

Pt⊤

とおいて更新式を作り、その後第2項を加えることで次のように計算できます。
Σ̃t+1 = (1 − β)Σ̃t + β f(t+1)

共分散Σt+1 = Σ̃t+1 − x̄t+1 x̄⊤
t+1(8.4)(n) (n) ⊤x−n=1 xPt⊤(t)(t) (t) ⊤x̄t x̄t なので、第1項について f = x x
とおいて Ft = (1/t) n=1 f (n)– 正: 例 え ば 共 分 散 行 列 の 場 合 は、 Σt = (1/t)

Ptに対して更新式を作り、その後第2項を加えることで次のように計算できます。
Ft+1 = (1 − β)Ft + β f (t+1)Σt+1 = Ft+1 − x̄t+1 x̄⊤t+114(8.4)

付録
現時点で判明している誤りはありません。

15

索引
現時点で判明している誤りはありません。

16