习题3.2
利用例题3.2构造的kd树求出点 x = ( 3 , 4.5 ) T x=(3,4.5)^T x=(3,4.5)T的最近邻点
- 从根节点出发,因为 x ( 1 ) < 7 x^{(1)}<7 x(1)<7, 所以进入左孩子一侧,又因为 x ( 2 ) > 4.5 x^{(2)}>4.5 x(2)>4.5,所以选定叶节点 ( 4 , 7 ) (4,7) (4,7)作为“当前最近点”,开始递归。
- 向上回退到 ( 4 , 7 ) (4,7) (4,7)的父节点 ( 5 , 4 ) (5,4) (5,4),设其为当前节点,因为父节点离 x x x更近一些,所以更新"当前最近点"为 ( 5 , 4 ) (5,4) (5,4)。
- 因为父节点 ( 5 , 4 ) (5,4) (5,4)生成的超平面 x ( 2 ) = 4 x^{(2)}=4 x(2)=4 与以 x = ( 3 , 4.5 ) x=(3,4.5) x=(3,4.5)为圆心,以 17 2 \frac{\sqrt{17}}{2} 217为半径的圆有交点,所以还需要判断当前节点的左孩子 ( 2 , 3 ) (2,3) (2,3)是不是更近。
- 因为左子树中只有一个节点,所以可以直接判断得知,需要更新“当前最近点”为 ( 2 , 3 ) (2,3) (2,3),此时距离为 13 2 \frac{\sqrt{13}}{2} 213,然后回到父节点 ( 5 , 4 ) (5,4) (5,4),把当前节点设为更高一层的 ( 7 , 2 ) (7,2) (7,2)。
- 因为 ( 7 , 2 ) (7,2) (7,2)更远,所以不更新“当前最近点”。
- 因为 ( 7 , 2 ) (7,2) (7,2)形成的超平面 x ( 1 ) = 7 x^{(1)}=7 x(1)=7与以 ( 2 , 3 ) (2,3) (2,3)为圆心,以 13 2 \frac{\sqrt{13}}{2} 213为半径的圆没有交点,所以当前节点的右子树不用进行检测。
- 因为 ( 7 , 2 ) (7,2) (7,2)已经是根节点了,所以结束搜索,得到最近邻点是 ( 2 , 3 ) (2,3) (2,3)。
习题3.3
参照算法3.3,写出输出为x的k近邻的算法
令算法3.3得到的函数为
a
p
p
r
o
x
_
n
o
d
e
=
N
N
(
k
d
_
t
r
e
e
,
n
o
d
e
)
approx\_node = NN(kd\_tree, node)
approx_node=NN(kd_tree,node)
即输入一个kd树以及目标点
x
x
x,就会输出一个最近的节点
a
p
p
r
o
x
_
n
o
d
e
approx\_node
approx_node,此外还需要调用之前的算法3.2来构造kd树,
t
r
e
e
=
k
d
_
t
r
e
e
(
d
a
t
a
s
e
t
)
tree = kd\_tree(dataset)
tree=kd_tree(dataset)
下面就用这两个函数,写出能得到k个最近的节点的函数
K
N
N
KNN
KNN,
#输入:目标点x,最近邻的数量k,数据集T
#输出:k个T中的节点
def KNN(dataset T, int k, node x):
node_list = []
tree = kd_tree(T)
for i in range(1,k+1):
approx_node = NN(tree)
node_list.append(approx_node)
if node.depth != 1:
tree.approx_node.x[1] = inf
else:
tree.approx_node.x[2] = inf
return node_list
这个函数的想法就是重复调用k次 N N NN NN函数,因为重新建立kd树的计算复杂度为 O ( N ) O(N) O(N),而每次查找的平均计算复杂度仅为 O ( log N ) O(\log{N}) O(logN),所以为了不重新建树,需要更改树本身的结构来代替,方法是每次找到的最近邻点加入到一个待输出的列表中,然后更改最近邻点的坐标,使其距离目标点充分远,不会影响下一次最近邻点的选择。
习题4.1
用极大似然估计法,推出朴素贝叶斯法中的概率估计公式 ( 4.8 ) (4.8) (4.8)以及公式 ( 4.9 ) (4.9) (4.9)
证明公式 ( 4.8 ) (4.8) (4.8):
假设先验概率为
p
=
P
(
Y
=
c
k
)
p=P(Y=c_k)
p=P(Y=ck)
一共经抽样得到
n
n
n个样本点,每次抽样的结果是独立同分布的,分别为
y
1
,
y
2
,
⋯
,
y
n
y_1,y_2,\cdots,y_n
y1,y2,⋯,yn其中符合
y
=
c
k
y=c_k
y=ck的样本点有
m
m
m个,那么根据二项分布,可以求得似然概率为
P
(
y
1
,
⋯
,
y
n
)
=
p
m
⋅
(
1
−
p
)
n
−
m
P(y_1,\cdots,y_n)=p^m\cdot (1-p)^{n-m}
P(y1,⋯,yn)=pm⋅(1−p)n−m
为了要让
P
(
y
1
,
⋯
,
y
n
)
P(y_1,\cdots,y_n)
P(y1,⋯,yn)的值最大,需要对
p
p
p求导,得到下式
d
P
d
p
=
m
p
m
−
1
(
1
−
p
)
n
−
m
−
(
n
−
m
)
p
m
(
1
−
p
)
n
−
m
−
1
=
p
m
−
1
(
1
−
p
)
n
−
m
−
1
(
m
−
n
p
)
\frac{dP}{dp}=mp^{m-1}(1-p)^{n-m}-(n-m)p^m (1-p)^{n-m-1}\\ =p^{m-1}(1-p)^{n-m-1}(m-np)
dpdP=mpm−1(1−p)n−m−(n−m)pm(1−p)n−m−1=pm−1(1−p)n−m−1(m−np)
所以当
p
=
m
n
p=\frac{m}{n}
p=nm时,函数取得最大值,因为
m
=
∑
i
=
1
n
I
(
y
i
=
c
k
)
=
p
[
∑
i
=
1
n
I
(
y
i
≠
c
k
)
+
∑
i
=
1
n
I
(
y
i
=
c
k
)
]
=
p
n
m = \sum_{i=1}^{n}I(y_i=c_k)=p[\sum_{i=1}^{n}I(y_i\neq c_k)+\sum_{i=1}^{n}I(y_i = c_k)]=pn
m=i=1∑nI(yi=ck)=p[i=1∑nI(yi=ck)+i=1∑nI(yi=ck)]=pn
所以
P
(
Y
=
c
k
)
=
p
=
∑
i
=
1
n
I
(
y
=
c
k
)
n
P(Y=c_k)=p=\frac{\sum_{i=1}^{n}I(y=c_k)}{n}
P(Y=ck)=p=n∑i=1nI(y=ck)
证明公式 ( 4.9 ) (4.9) (4.9):
假设条件概率为
p
=
P
(
X
(
j
)
=
a
j
l
∣
Y
=
c
k
)
p=P(X^{(j)}=a_{jl}|Y=c_k)
p=P(X(j)=ajl∣Y=ck)
一共经抽样得到
N
N
N个样本点,分别为
x
1
,
x
2
,
⋯
,
x
N
x_1,x_2,\cdots,x_N
x1,x2,⋯,xN,对应的输出分别为
y
1
,
y
2
,
⋯
,
y
N
y_1,y_2,\cdots,y_N
y1,y2,⋯,yN,其中符合条件
Y
=
c
k
Y=c_k
Y=ck的样本点有
n
n
n个,那么
n
n
n可以用如下等式表示
n
=
∑
i
=
1
N
I
(
x
i
)
n=\sum_{i=1}^{N}I(x_i)
n=i=1∑NI(xi)
假设它们第
j
j
j个分量是独立同分布的,上述
n
n
n个样本点中一共有
m
m
m个满足
X
(
j
)
=
a
j
l
X^{(j)}=a_{jl}
X(j)=ajl,那么根据二项分布,可以求得事件
(
X
(
j
)
=
a
j
l
∣
Y
=
c
k
)
(X^{(j)}=a_{jl}|Y=c_k)
(X(j)=ajl∣Y=ck)似然概率为
P
(
y
1
,
⋯
,
y
N
)
=
p
m
⋅
(
1
−
p
)
n
−
m
P(y_1,\cdots,y_N)=p^m\cdot (1-p)^{n-m}
P(y1,⋯,yN)=pm⋅(1−p)n−m
为了要让
P
(
y
1
,
⋯
,
y
n
)
P(y_1,\cdots,y_n)
P(y1,⋯,yn)的值最大,需要对
p
p
p求导,得到下式
d
P
d
p
=
m
p
m
−
1
(
1
−
p
)
n
−
m
−
(
n
−
m
)
p
m
(
1
−
p
)
n
−
m
−
1
=
p
m
−
1
(
1
−
p
)
n
−
m
−
1
(
m
−
n
p
)
\frac{dP}{dp}=mp^{m-1}(1-p)^{n-m}-(n-m)p^m (1-p)^{n-m-1}\\ =p^{m-1}(1-p)^{n-m-1}(m-np)
dpdP=mpm−1(1−p)n−m−(n−m)pm(1−p)n−m−1=pm−1(1−p)n−m−1(m−np)
所以当
p
=
m
n
p=\frac{m}{n}
p=nm时,函数取得最大值,又因为
m
=
∑
i
=
1
N
I
(
y
i
=
c
k
)
=
p
(
∑
i
=
1
N
I
(
y
i
=
c
k
)
+
∑
i
=
1
N
I
(
y
i
≠
c
k
)
)
=
p
N
m = \sum_{i=1}^{N}I(y_i=c_k)=p(\sum_{i=1}^{N}I(y_i=c_k)+\sum_{i=1}^{N}I(y_i\neq c_k))=pN
m=i=1∑NI(yi=ck)=p(i=1∑NI(yi=ck)+i=1∑NI(yi=ck))=pN
所以
P
(
X
(
j
)
=
a
j
l
∣
Y
=
c
k
)
=
p
=
∑
i
=
1
N
I
(
x
i
j
=
a
j
l
,
y
i
=
c
k
)
∑
i
=
1
N
I
(
y
i
=
c
k
)
P(X^{(j)}=a_{jl}|Y=c_k)=p=\frac{\sum_{i=1}^{N}I(x_i^{j}=a_{jl},y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)}
P(X(j)=ajl∣Y=ck)=p=∑i=1NI(yi=ck)∑i=1NI(xij=ajl,yi=ck)
习题5.1
根据表5.1所给的训练数据集,利用信息增益比(C4.5算法)生成决策树
首先分别以 A 1 A_1 A1, A 2 A_2 A2, A 3 A_3 A3, A 4 A_4 A4,表示年龄,有工作,有房子,信贷情况,整个数据集记为 D D D
第一轮
根据定义5.3, 可以计算出数据集
D
D
D关于每个特征
A
A
A的值的熵
H
A
1
(
D
)
=
1.584
H
A
2
(
D
)
=
0.918
H
A
3
(
D
)
=
0.971
H
A
4
(
D
)
=
1.566
H_{A_1}(D) = 1.584 \\ H_{A_2}(D) = 0.918 \\ H_{A_3}(D) = 0.971 \\ H_{A_4}(D) = 1.566
HA1(D)=1.584HA2(D)=0.918HA3(D)=0.971HA4(D)=1.566
然后再根据例5.2得到的如下信息增益,
g
(
D
,
A
1
)
=
0.083
g
(
D
,
A
2
)
=
0.324
g
(
D
,
A
3
)
=
0.420
g
(
D
,
A
4
)
=
0.363
g(D,A_1) = 0.083 \\ g(D,A_2) = 0.324 \\ g(D,A_3) = 0.420 \\ g(D,A_4) = 0.363
g(D,A1)=0.083g(D,A2)=0.324g(D,A3)=0.420g(D,A4)=0.363
从而得到关于每个特征的信息增益比
g
R
(
D
,
A
1
)
=
0.052
g
R
(
D
,
A
2
)
=
0.353
g
R
(
D
,
A
3
)
=
0.433
g
R
(
D
,
A
4
)
=
0.232
g_R(D,A_1) = 0.052 \\ g_R(D,A_2) = 0.353 \\ g_R(D,A_3) = 0.433 \\ g_R(D,A_4) = 0.232
gR(D,A1)=0.052gR(D,A2)=0.353gR(D,A3)=0.433gR(D,A4)=0.232
从而选择
A
3
A_3
A3作为根节点,令所有满足
A
3
=
y
e
s
A_3= yes
A3=yes的数据为
D
1
D_1
D1,令所有满足
A
3
=
n
o
A_3 = no
A3=no的数据为
D
2
D_2
D2,因为
D
1
D_1
D1中所有的数据均属于同一类,所以不用继续递归了,而
D
2
D_2
D2中数据不是同一类,所以需要第二轮递归再进一步分类。
第二轮
再来计算数据集
D
2
D_2
D2关于其余每个特征的
A
A
A的值的熵
H
A
1
(
D
2
)
=
1.530
H
A
2
(
D
2
)
=
0.918
H
A
4
(
D
2
)
=
0.340
H_{A_1}(D_2) = 1.530 \\ H_{A_2}(D_2) = 0.918\\ H_{A_4}(D_2) = 0.340
HA1(D2)=1.530HA2(D2)=0.918HA4(D2)=0.340
再计算信息增益
g
(
D
2
,
A
1
)
=
0.251
g
(
D
2
,
A
2
)
=
0.918
g
(
D
2
,
A
4
)
=
0.474
g(D_2,A_1) = 0.251\\ g(D_2,A_2) = 0.918\\ g(D_2,A_4) = 0.474
g(D2,A1)=0.251g(D2,A2)=0.918g(D2,A4)=0.474
从而得到关于每个特征的信息增益比
g
R
(
D
2
,
A
1
)
=
0.164
g
R
(
D
2
,
A
2
)
=
1.000
g
R
(
D
2
,
A
4
)
=
0.340
g_R(D_2,A_1) = 0.164\\ g_R(D_2,A_2) = 1.000\\ g_R(D_2,A_4) = 0.340
gR(D2,A1)=0.164gR(D2,A2)=1.000gR(D2,A4)=0.340
选择信息增益比最大的特征
A
2
A2
A2作为节点的特征,发现两个分支形成的数据集
D
21
D_{21}
D21和
D
22
D_{22}
D22里的元素都属于同一类别,所以递归结束。
最终结果
习题5.2
已知如下表所示的训练数据,试用平方误差损失准则生成一个二叉回归树
x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3 x 4 x_4 x4 x 5 x_5 x5 x 6 x_6 x6 x 7 x_7 x7 x 8 x_8 x8 x 9 x_9 x9 x 10 x_{10} x10 4.50 4.75 4.91 5.34 5.80 7.05 7.90 8.23 8.70 9.00
因为数据集的输入变量 x i x_i xi是标量,所以直接扫描切分点,把样本点递归分成若干区间,具体的分化情况如下图所示
习题5.3
证明CART剪枝算法中,当 α \alpha α确定时,存在唯一的最小子树 T α T_{\alpha} Tα使损失函数 C α ( T ) C_{\alpha}(T) Cα(T)最小
先证明存在性:
因为给定的数据集通过算法得到的生成树是确定的,所以所有可能的子树数量是有限的,所以一定存在若干子树,使得损失函数 C α ( T ) C_{\alpha}(T) Cα(T)是其中最小的,存在性得证
再证明唯一性:
在
α
\alpha
α确定的情况下,假设存在两棵不同的
T
T
T的子树
P
P
P和
Q
Q
Q,使得损失函数均是最小的,即
C
α
(
P
)
=
C
α
(
Q
)
C_{\alpha}(P)=C_{\alpha}(Q)
Cα(P)=Cα(Q)
首先证明:根据CART剪枝算法的规则,
P
P
P和
Q
Q
Q至少各有一处叶结点互不相同。
假设命题不成立,那么
P
P
P和
Q
Q
Q存在了包含关系,不妨设对于叶结点
t
t
t,有
t
∈
P
t\in P
t∈P但是
t
∉
Q
t \notin Q
t∈/Q,这是不可能的,因为选择剪枝的时候,需要满足
C
α
(
T
t
)
<
C
α
(
t
)
C_{\alpha}(T_t) < C_{\alpha}(t)
Cα(Tt)<Cα(t)
从而不满足损失函数相等的条件,假设不成立。
再来证明:在 P P P和 Q Q Q至少各有一处叶结点互不相同的情况下,两棵子树均不是最优的。
假设
P
P
P中有结点
p
p
p满足
p
∉
Q
p \notin Q
p∈/Q,并且
Q
Q
Q中有结点
q
q
q满足
q
∉
P
q \notin P
q∈/P,那么根据剪枝的规则,可得
C
α
(
T
p
)
>
C
α
(
p
)
C
α
(
T
q
)
>
C
α
(
q
)
C_{\alpha}(T_p) > C_{\alpha}(p) \\ C_{\alpha}(T_q) > C_{\alpha}(q)
Cα(Tp)>Cα(p)Cα(Tq)>Cα(q)
否则剪枝不会发生,所以存在
T
T
T的子树
M
M
M满足
q
∉
M
q\notin M
q∈/M并且其余叶结点与
P
P
P一样,那么
M
M
M比
P
P
P的损失函数更小,从而也比
Q
Q
Q的损失函数更小,假设不成立,从而原命题得证。
习题6.2
写出逻辑斯蒂回归模型学习的梯度下降算法
假设给定的数据集为 X = { x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) } X=\{x^{(1)},x^{(2)},\cdots,x^{(m)}\} X={x(1),x(2),⋯,x(m)},对应的标签为 Y = { y ( 1 ) , y ( 2 ) , ⋯ , y ( m ) } Y=\{y^{(1)},y^{(2)},\cdots,y^{(m)}\} Y={y(1),y(2),⋯,y(m)},
其中
x
(
i
)
=
(
x
1
(
i
)
,
⋯
,
x
n
−
1
(
i
)
,
1
)
∈
R
n
x^{(i)}=(x_1^{(i)},\cdots,x_{n-1}^{(i)},1) \in R^n
x(i)=(x1(i),⋯,xn−1(i),1)∈Rn,
y
(
i
)
∈
{
0
,
1
}
y^{(i)} \in \{0,1\}
y(i)∈{0,1},特别需要说明的是,这里把常数项放到了数据集里,所以最后一个分量都是
1
1
1,需要学习的参数记为
ω
=
(
ω
1
,
ω
2
,
⋯
,
ω
n
)
\omega = (\omega_1,\omega_2,\cdots,\omega_n)
ω=(ω1,ω2,⋯,ωn)。根据书本第93页的推导可知,对数似然函数为
L
(
ω
)
=
∑
i
=
1
m
[
y
(
i
)
(
ω
⋅
x
(
i
)
)
−
log
(
1
+
exp
(
ω
⋅
x
(
i
)
)
)
]
L(\omega) = \sum_{i=1}^{m}[y^{(i)}(\omega \cdot x^{(i)})-\log(1+\exp{(\omega \cdot x^{(i)})})]
L(ω)=i=1∑m[y(i)(ω⋅x(i))−log(1+exp(ω⋅x(i)))]
需要对
L
(
ω
)
L(\omega)
L(ω)求偏导数
∇
L
(
ω
)
=
(
∂
L
∂
ω
1
,
⋯
,
∂
L
∂
ω
n
)
\nabla L(\omega) = (\frac{\partial L}{\partial \omega_1},\cdots,\frac{\partial L}{\partial \omega_n})
∇L(ω)=(∂ω1∂L,⋯,∂ωn∂L)
其中
∂
L
∂
ω
i
=
x
i
(
i
)
y
−
ω
i
exp
{
w
1
x
1
(
i
)
+
⋯
+
w
n
x
n
(
i
)
}
1
+
exp
{
w
1
x
1
(
i
)
+
⋯
+
w
n
x
n
(
i
)
}
\frac{\partial L}{\partial \omega_i}=x^{(i)}_iy-\frac{\omega_i\exp\{w_1x^{(i)}_1+\cdots+w_nx^{(i)}_n\}}{1+\exp\{w_1x^{(i)}_1+\cdots+w_nx^{(i)}_n\}}
∂ωi∂L=xi(i)y−1+exp{w1x1(i)+⋯+wnxn(i)}ωiexp{w1x1(i)+⋯+wnxn(i)}
从而通过设置步长 α \alpha α,终止迭代阈值eps,可以设计如下算法
- 设定迭代起点 x x x初值
- 根据上面写出来的公式,得到对应位置的梯度值 ω \omega ω
- 根据迭代步长算出新的梯度算出下个迭代点 x = x + α ω x = x + \alpha \omega x=x+αω
- 判断 α ∣ ω ∣ < e p s \alpha|\omega|< eps α∣ω∣<eps是否成立,成立则结束,否则返回第二步
习题7.1
比较感知机的对偶形式与线性可分支持向量机的对偶形式。
对于给定的数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)}
其中
x
i
∈
R
n
,
y
i
∈
{
−
1
,
1
}
x_i \in R^n, y_i \in \{-1,1\}
xi∈Rn,yi∈{−1,1},
i
=
1
,
2
,
⋯
,
N
i=1,2,\cdots,N
i=1,2,⋯,N,最后学习到的平面
ω
⋅
x
+
b
=
0
\omega \cdot x+b=0
ω⋅x+b=0
的参数,在两个算法的对偶形式中,有如下不同的计算方法:
感知机的对偶形式
ω
=
∑
i
=
1
N
α
i
y
i
x
i
b
=
∑
i
=
1
N
α
i
y
i
\omega=\sum_{i=1}^{N}\alpha_iy_ix_i \\ b = \sum_{i=1}^{N}\alpha_iy_i
ω=i=1∑Nαiyixib=i=1∑Nαiyi
其中的
α
=
(
α
1
,
⋯
,
α
N
)
\alpha=(\alpha_1,\cdots,\alpha_N)
α=(α1,⋯,αN),对于
∀
i
∈
{
1
,
2
,
⋯
,
N
}
\forall i \in \{1,2,\cdots,N\}
∀i∈{1,2,⋯,N},都有
y
i
(
∑
j
=
1
N
α
i
y
j
x
j
⋅
x
i
+
b
)
≤
0
y_i(\sum_{j=1}^{N}\alpha_iy_jx_j \cdot x_i+b) \leq 0
yi(j=1∑Nαiyjxj⋅xi+b)≤0
线性可分支持向量机的对偶形式
ω
=
∑
i
=
1
N
α
i
y
i
x
i
b
=
y
1
−
∑
i
=
1
N
α
i
y
1
(
x
i
⋅
x
j
)
\omega=\sum_{i=1}^{N}\alpha_iy_ix_i \\ b = y_1 - \sum_{i=1}^{N}\alpha_iy_1(x_i \cdot x_j)
ω=i=1∑Nαiyixib=y1−i=1∑Nαiy1(xi⋅xj)
其中的
α
=
(
α
1
,
⋯
,
α
N
)
\alpha=(\alpha_1,\cdots,\alpha_N)
α=(α1,⋯,αN)是通过求解
arg
min
α
(
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
)
\mathop{\arg\min}\limits_{\alpha} ( \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_i)
αargmin(21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi)
得到的,还要满足额外的约束条件
a
i
≥
0
a_i \geq 0
ai≥0,
∀
i
∈
{
1
,
⋯
,
N
}
\forall i \in \{1,\cdots,N\}
∀i∈{1,⋯,N},并且
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N}\alpha_iy_i = 0 \\
i=1∑Nαiyi=0
习题7.2
已知正例点 x 1 = ( 1 , 2 ) T x_1=(1,2)^T x1=(1,2)T, x 2 = ( 2 , 3 ) T x_2=(2,3)^T x2=(2,3)T, x 3 = ( 3 , 3 ) T x_3=(3,3)^T x3=(3,3)T,负例点 x 4 = ( 2 , 1 ) T x_4=(2,1)^T x4=(2,1)T, x 5 = ( 3 , 2 ) T x_5=(3,2)^T x5=(3,2)T,试求最大间隔分离超平面和分类决策函数,并在图上画出分离超平面,间隔边界及支持向量。
按照最大间隔法,根据训练数据集构造约束最优化问题:
min
ω
,
b
ω
1
2
+
ω
2
2
2
\min_{\omega,b} \frac{\omega_1^2+\omega_2^2}{2}
ω,bmin2ω12+ω22
使得
ω
1
+
2
ω
2
+
b
≥
1
2
ω
1
+
3
ω
2
+
b
≥
1
3
ω
1
+
3
ω
2
+
b
≥
1
−
2
ω
1
−
ω
2
−
b
≥
1
−
3
ω
1
−
2
ω
2
−
b
≥
1
\omega_1+2\omega_2+b\geq 1 \\ 2\omega_1+3\omega_2+b\geq 1 \\ 3\omega_1+3\omega_2+b\geq 1 \\ -2\omega_1 - \omega_2 - b\geq 1 \\ -3\omega_1-2\omega_2-b\geq 1
ω1+2ω2+b≥12ω1+3ω2+b≥13ω1+3ω2+b≥1−2ω1−ω2−b≥1−3ω1−2ω2−b≥1
计算得当
ω
=
(
1
,
−
2
)
\omega=(1,-2)
ω=(1,−2),
b
=
2
b=2
b=2时,目标函数取到最小值,所得的超平面为
x
−
2
y
+
2
=
0
x-2y+2=0
x−2y+2=0
即为下图中的实线,位于边界上的点是支持向量
习题7.3
线性支持向量机还可以定义为以下形式:
min ω , b , ξ ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 N ξ i 2 \min_{\omega,b,\xi}\frac{||\omega||}{2}+C\sum_{i=1}^{N}\xi_i^2 ω,b,ξmin2∣∣ω∣∣+Ci=1∑Nξi2
使得
y i ( ω ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , N ξ i ≥ 0 , i = 1 , 2 , ⋯ , N y_i(\omega \cdot x_i+b)\geq 1-\xi_i,\quad i=1,2,\cdots,N \\ \xi_i\geq0 ,\quad i=1,2,\cdots,N yi(ω⋅xi+b)≥1−ξi,i=1,2,⋯,Nξi≥0,i=1,2,⋯,N
试求其对偶形式。
定义拉格朗日函数
L
(
w
,
b
,
ξ
,
α
,
β
)
=
∥
w
∥
2
2
+
C
∑
i
=
1
N
ξ
i
2
+
∑
i
=
1
N
α
i
(
1
−
ξ
i
−
y
i
(
w
⋅
x
i
+
b
)
)
−
∑
i
=
1
N
β
i
ξ
i
L(w,b,\xi, \alpha, \beta) = \frac{\|w\|^2}{2} + C \sum_{i=1}^N \xi_i^2 + \sum_{i=1}^N \alpha_i (1-\xi_i-y_i (w \cdot x_i + b)) - \sum_{i=1}^N \beta_i \xi_i
L(w,b,ξ,α,β)=2∥w∥2+Ci=1∑Nξi2+i=1∑Nαi(1−ξi−yi(w⋅xi+b))−i=1∑Nβiξi
分别对
w
,
b
,
ξ
w,b,\xi
w,b,ξ求偏导数
{
∇
ξ
L
=
2
C
ξ
i
−
α
i
−
β
i
=
0
∇
w
L
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇
b
L
=
−
∑
i
=
1
N
α
i
y
i
=
0
\left \{ \begin{array}{l} \displaystyle \nabla_{\xi} L = 2C \xi_i - \alpha_i - \beta_i = 0 \\ \displaystyle \nabla_w L = w - \sum_{i=1}^N \alpha_i y_i x_i = 0 \\ \displaystyle \nabla_b L = -\sum_{i=1}^N \alpha_i y_i = 0 \\ \end{array} \right.
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∇ξL=2Cξi−αi−βi=0∇wL=w−i=1∑Nαiyixi=0∇bL=−i=1∑Nαiyi=0
从而可以化简为
{
ξ
i
=
1
2
C
(
α
i
+
β
i
)
∑
i
=
1
N
α
i
y
i
=
0
w
=
∑
i
=
1
N
α
i
y
i
x
i
\left \{ \begin{array}{l} \displaystyle \xi_i = \frac{1}{2C}(\alpha_i + \beta_i) \\ \displaystyle \sum_{i=1}^N \alpha_i y_i = 0 \\ \displaystyle w = \sum_{i=1}^N \alpha_i y_i x_i \end{array} \right.
⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧ξi=2C1(αi+βi)i=1∑Nαiyi=0w=i=1∑Nαiyixi
解得对拉格朗日函数中的
ω
\omega
ω和
ξ
\xi
ξ做变量替换,得到新的形式
L
(
α
,
β
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
+
∑
i
=
1
N
α
i
−
1
4
C
∑
i
=
1
N
(
α
i
+
β
i
)
2
L(\alpha,\beta)=-\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_{j})+\sum_{i=1}^N \alpha_i-\frac{1}{4C}\sum_{i=1}^N(\alpha_i+\beta_i)^2
L(α,β)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi−4C1i=1∑N(αi+βi)2
那么对偶问题就是求解
arg
min
α
,
β
L
(
α
,
β
)
\mathop{\arg\min}\limits_{\alpha,\beta}L(\alpha,\beta)
α,βargminL(α,β)
还要满足额外的约束条件
a
i
≥
0
a_i \geq 0
ai≥0,
∀
i
∈
{
1
,
⋯
,
N
}
\forall i \in \{1,\cdots,N\}
∀i∈{1,⋯,N},并且
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^{N}\alpha_iy_i = 0
i=1∑Nαiyi=0
习题7.4
证明内积的正整数幂函数:
K ( x , z ) = ( x ⋅ z ) p K(x,z)=(x \cdot z)^p K(x,z)=(x⋅z)p
是正定核函数,这里 p p p是正整数, x , z ∈ R n x,z \in \mathbb{R^n} x,z∈Rn
用数学归纳法证明:对于 ∀ α = ( α 1 , ⋯ , α n ) T \forall \alpha=(\alpha_1,\cdots,\alpha_n)^T ∀α=(α1,⋯,αn)T,
当 p = 1 p=1 p=1时,因为 α T ( x ⋅ x ) α ≥ 0 \alpha^T(x \cdot x)\alpha \geq 0 αT(x⋅x)α≥0,当且仅当 α = 0 \alpha=0 α=0取等号,根据定理7.5,结论显然成立,
当
p
=
k
p=k
p=k时,假设结论成立,即存在函数
ϕ
k
\phi_k
ϕk使得
K
(
x
,
z
)
=
ϕ
k
(
x
)
⋅
ϕ
k
(
z
)
K(x,z) = \phi_k(x) \cdot \phi_k(z)
K(x,z)=ϕk(x)⋅ϕk(z)
那么当
p
=
k
+
1
p=k+1
p=k+1时,
K
(
x
,
z
)
=
(
x
⋅
z
)
k
+
1
=
ϕ
k
(
x
)
ϕ
k
(
z
)
(
x
⋅
z
)
K(x,z) = (x\cdot z)^{k+1} = \phi_k(x)\phi_k(z) (x\cdot z)
K(x,z)=(x⋅z)k+1=ϕk(x)ϕk(z)(x⋅z)
令映射函数由以下形式变换得到
ϕ
k
(
x
)
=
(
f
1
(
x
)
,
f
2
(
x
)
,
⋯
,
f
n
(
x
)
)
T
\phi_k(x) = (f_1(x),f_2(x),\cdots,f_n(x))^T
ϕk(x)=(f1(x),f2(x),⋯,fn(x))T
那么构造
ϕ
k
+
1
(
x
)
=
(
x
1
f
1
(
x
)
,
x
2
f
2
(
x
)
,
⋯
,
x
n
f
n
(
x
)
)
T
\phi_{k+1}(x) = (x_1f_1(x),x_2f_2(x),\cdots,x_nf_n(x))^T
ϕk+1(x)=(x1f1(x),x2f2(x),⋯,xnfn(x))T
其中
x
=
(
x
1
,
x
2
,
⋯
,
x
n
)
T
x=(x_1,x_2,\cdots,x_n)^T
x=(x1,x2,⋯,xn)T
于是就有
K
(
x
,
z
)
=
ϕ
k
+
1
(
x
)
⋅
ϕ
k
+
1
(
z
)
K(x,z) = \phi_{k+1}(x)\cdot\phi_{k+1}(z)
K(x,z)=ϕk+1(x)⋅ϕk+1(z)
从而当
p
=
k
+
1
p=k+1
p=k+1时,结论也成立,命题得证
习题8.1
某公司招聘职员考察身体、业务能力、发展潜力这3项。身体分为合格0、不合格1两级,业务能力和发展潜力分为上1、中2、下3三级。分类为合格1、不合格-1两类。已知10个人的数据,如下表所示
1 2 3 4 5 6 7 8 9 10 身体 0 0 1 1 1 0 1 1 1 0 业务能力 1 3 2 1 2 1 1 1 3 2 发展潜力 3 1 2 3 3 2 2 1 1 1 分类 -1 -1 -1 -1 -1 -1 1 1 -1 -1 假设若分类器为决策树桩。用AdaBoost算法学习一个强分类器。
假设身体为
X
∈
{
0
,
1
}
\mathcal{X}\in\{0,1\}
X∈{0,1},业务能力为
Y
∈
{
1
,
2
,
3
}
\mathcal{Y}\in\{1,2,3\}
Y∈{1,2,3},发展潜力为
Z
∈
{
1
,
2
,
3
}
\mathcal{Z}\in\{1,2,3\}
Z∈{1,2,3},输入变量为
t
=
(
t
1
,
t
2
,
t
3
)
∈
(
X
,
Y
,
Z
)
t=(t_1,t_2,t_3) \in (\mathcal{X},\mathcal{Y},\mathcal{Z})
t=(t1,t2,t3)∈(X,Y,Z)
有如下三个决策树桩:
G
1
(
t
)
=
{
1
,
t
1
=
1
−
1
,
t
1
=
0
G
2
(
t
)
=
{
1
,
t
2
=
1
−
1
,
t
2
≠
1
G
3
(
t
)
=
{
1
,
t
3
=
1
−
1
,
t
3
≠
1
G_1(t)=\left\{ \begin{aligned} 1 &, &t_1=1\\ -1 &, &t_1=0 \\ \end{aligned} \\ \right. G_2(t)=\left\{ \begin{aligned} 1 &, &t_2=1\\ -1 &, &t_2\neq1 \\ \end{aligned} \right.\\ G_3(t)=\left\{ \begin{aligned} 1 &, &t_3=1\\ -1 &, &t_3\neq1 \\ \end{aligned} \right.
G1(t)={1−1,,t1=1t1=0G2(t)={1−1,,t2=1t2=1G3(t)={1−1,,t3=1t3=1
从而可以算出对应的分类误差率
e
1
=
0.4
e_1=0.4
e1=0.4,
e
2
=
0.3
e_2=0.3
e2=0.3,
e
3
=
0.3
e_3=0.3
e3=0.3,从而可以算出每个弱分类器的系数
α
1
=
0.585
α
2
=
0.611
α
3
=
0.611
\alpha_1=0.585\\ \alpha_2=0.611\\ \alpha_3=0.611
α1=0.585α2=0.611α3=0.611
那么所得的强分类器为
G
(
t
)
=
0.585
G
1
(
t
)
+
0.611
G
2
(
t
)
+
0.611
G
3
(
t
)
G(t) = 0.585G_1(t)+0.611G_2(t) + 0.611G_3(t)
G(t)=0.585G1(t)+0.611G2(t)+0.611G3(t)
验证可知分类误差率
e
=
0.2
e=0.2
e=0.2。
习题8.2
比较支持向量机、AdaBoost、逻辑斯蒂回归模型的学习策略与算法
-
支持向量机
学习策略:对于线性可分的数据集,求解目标超平面,让此超平面能正确分类所有样本点,并且离最近样本点的距离是所有超平面中最小的;对于线性不可分的数据集,给每一组数据加上一个松弛变量,在这个宽松的意义下,求解超平面让此超平面能正确分类所有样本点,让平面系数向量的模和宽松系数向量的模达到最小值。两个算法都是通过求解拉格朗日对偶问题求解的。学习算法:序列最小最优化算法,对于给定的数据集 T T T、精度 ϵ \epsilon ϵ、核函数 K K K,目标是求对偶问题的解 α \alpha α,算法具体是先将 α \alpha α初始化为 0 0 0,然后只选择两个变量,固定其余变量,求得最优解并更新 α \alpha α,检验停机条件在 ϵ \epsilon ϵ的误差范围内是否成立,不成立重新选两个变量进行循环,成立就结束循环,通过 α \alpha α得到超平面参数 ω \omega ω、 b b b。
-
AdaBoost
学习策略:极小化加法模型指数损失,提高前一轮分类器错误分类的样本权重,同时降低错误率高的分类器权重,进而将所有若分类器乘以对应的权重做线性组合,输出结果。学习算法:前向分步加法算法,对于给定的数据集合 T T T以及基函数集 { b ( γ , x ) } \{b(\gamma,x)\} {b(γ,x)},先初始化一个分类函数,然后通过极小化损失函数得到新的参数,加到之前一轮的函数上,如此循环若干次,把同时求解所有参数转化成逐个求解,每次求出当前意义下最优化的参数。
-
Logistic回归
学习策略:Logistic回归模型是以似然函数为目标的最优化问题,通过迭代算法求解,学习到的最优模型应该是所有可能概率模型中,熵最大的那个。
学习算法:改进的迭代尺度算法,思想是假设最大熵模型当前的参数向量是 ω \omega ω,然后找到一个参数 δ \delta δ,使得模型的对数似然函数增大,持续循环直到找到最大值。
习题14.1
试写出分裂聚类算法,自上而下地对数据进行聚类,并给出其算法复杂度
- 输入:n个样本点组成的样本集合,样本点间的度量
- 输出:对样本集合的一个层次化聚类
(1)把所有的样本点当成一个类,计算中心点坐标 c c c
(2)计算当前各类的中心点 c 1 , ⋯ , c i c_1,\cdots,c_i c1,⋯,ci
(3)找到所有样本点中离自己类中心最远的样本点 s j s_j sj,其对应的类为 T p T_p Tp,中心点为 c p c_p cp
(4)计算离 s j s_j sj最近的中心点 c q c_q cq,如果 p = q p=q p=q,那么 s j s_j sj创建一个新的类,否则归到类 T q T_q Tq
(5)如果现在已经有了n个类,那么结束,否则回到(2)
上面给出的算法复杂度为 O ( n 3 m ) O(n^3m) O(n3m),其中样本点数量为n,维度为m。
习题14.2
证明类或簇的四个定义中,第一个定义可以推出其他三个定义
- 定义14.5 ⟹ \Longrightarrow ⟹定义14.6
假设集合G是满足定义14.5的类,具体来说,对于 ∀ x i , x j ∈ G \forall x_i , x_j \in G ∀xi,xj∈G,有 d ( x i , x j ) ≤ T d(x_i,x_j)\leq T d(xi,xj)≤T成立,从而对于任意给定的 x p x_p xp,一定存在 x q x_q xq,使得 d ( x p , x q ) ≤ T d(x_p,x_q)\leq T d(xp,xq)≤T。
- 定义14.5 ⟹ \Longrightarrow ⟹定义14.7
假设
T
=
max
{
d
(
x
i
,
x
j
)
∣
i
,
j
=
1
,
⋯
,
n
}
T=\max\{d(x_i,x_j)|i,j=1,\cdots,n\}
T=max{d(xi,xj)∣i,j=1,⋯,n},对于集合
G
G
G,如果对于
∀
x
i
,
x
j
∈
G
\forall x_i , x_j \in G
∀xi,xj∈G,有
d
(
x
i
,
x
j
)
≤
T
d(x_i,x_j)\leq T
d(xi,xj)≤T成立,从而对于给定的样本点
x
p
x_p
xp,有
1
n
G
−
1
∑
x
j
∈
G
−
{
x
q
}
d
(
x
p
,
x
j
)
≤
T
\frac{1}{n_G-1}\sum_{x_j\in G-\{x_q\}}d(x_p,x_j) \leq T
nG−11xj∈G−{xq}∑d(xp,xj)≤T
其中
n
G
n_G
nG为
G
G
G中样本的个数。
- 定义14.5 ⟹ \Longrightarrow ⟹定义14.8
对于给定的
T
T
T和
V
V
V,假设
t
=
min
{
T
,
V
}
t = \min\{T,V\}
t=min{T,V},对于集合
G
G
G,如果对于
∀
x
i
,
x
j
∈
G
\forall x_i , x_j \in G
∀xi,xj∈G,有
d
(
x
i
,
x
j
)
≤
t
d(x_i,x_j)\leq t
d(xi,xj)≤t成立,从而有
1
n
G
(
n
G
−
1
)
∑
x
i
∈
G
∑
x
j
∈
G
d
(
x
i
,
x
j
)
≤
T
d
(
x
i
,
x
j
)
≤
V
\frac{1}{n_G(n_G-1)}\sum_{x_i\in G}\sum_{x_j\in G}d(x_i,x_j)\leq T \\ d(x_i,x_j) \leq V
nG(nG−1)1xi∈G∑xj∈G∑d(xi,xj)≤Td(xi,xj)≤V
其中
n
G
n_G
nG为
G
G
G中样本的个数。
习题14.3
i证明n个样本分到k类,所有可能分法的数目是
S ( n , k ) = 1 k ! ∑ l = 1 k ( − 1 ) k − l ( k l ) k n S(n,k)=\frac{1}{k!}\sum_{l=1}^k(-1)^{k-l}\begin{pmatrix} k\\ l\end{pmatrix}k^n S(n,k)=k!1l=1∑k(−1)k−l(kl)kn
即k均值的可能解的个数是指数级的
我觉得这道证明题的结论有问题:
归类最后一个样本点时,有两种情况需要考虑:第一种是已经存在了k个类,所以最后一个可以归到任何类中;第二种是只存在k-1个类,所以最后一个只能单独成一类。从而可以写出递推表达式如下
S
(
n
,
k
)
=
S
(
n
−
1
,
k
−
1
)
+
k
S
(
n
−
1
,
k
)
S(n,k) = S(n-1,k-1)+kS(n-1,k)
S(n,k)=S(n−1,k−1)+kS(n−1,k)
易知递归的终点为
S
(
k
,
k
)
=
1
S(k,k)=1
S(k,k)=1,
S
(
k
,
0
)
=
0
S(k,0)=0
S(k,0)=0,下面说明
S
(
n
,
k
)
=
1
k
!
∑
l
=
1
k
(
−
1
)
k
−
l
C
k
l
l
n
S(n,k)=\frac{1}{k!}\sum_{l=1}^k(-1)^{k-l}C_k^l l^n
S(n,k)=k!1l=1∑k(−1)k−lCklln
是递推关系式的通项。递归终点显然符合结论,根据组合数的性质,我们有
S
(
n
,
k
)
=
1
k
!
∑
l
=
1
k
(
−
1
)
k
−
l
C
k
l
l
n
=
∑
l
=
1
k
(
−
1
)
k
−
l
l
n
(
k
−
l
)
!
l
!
=
∑
l
=
1
k
(
−
1
)
k
−
l
(
k
−
l
)
!
⋅
l
n
l
!
S(n,k)=\frac{1}{k!}\sum_{l=1}^k(-1)^{k-l}C_k^ll^n \\ = \sum_{l=1}^k (-1)^{k-l}\frac{l^n}{(k-l)!l!} \\ = \sum_{l=1}^k \frac{(-1)^{k-l}}{(k-l)!}\cdot\frac{l^n}{l!} \\
S(n,k)=k!1l=1∑k(−1)k−lCklln=l=1∑k(−1)k−l(k−l)!l!ln=l=1∑k(k−l)!(−1)k−l⋅l!ln
把右端项带入上式,可以得到
S
(
n
−
1
,
k
−
1
)
=
∑
l
=
1
k
−
1
(
−
1
)
k
−
1
−
l
(
k
−
1
−
l
)
!
⋅
l
n
−
1
l
!
S(n-1,k-1) = \sum_{l=1}^{k-1} \frac{(-1)^{k-1-l}}{(k-1-l)!}\cdot\frac{l^{n-1}}{l!}
S(n−1,k−1)=l=1∑k−1(k−1−l)!(−1)k−1−l⋅l!ln−1
S ( n − 1 , k ) = ∑ l = 1 k ( − 1 ) k − l ( k − l ) ! ⋅ l n − 1 l ! S(n-1,k) = \sum_{l=1}^{k} \frac{(-1)^{k-l}}{(k-l)!}\cdot\frac{l^{n-1}}{l!} S(n−1,k)=l=1∑k(k−l)!(−1)k−l⋅l!ln−1
从而通过作差得
S
(
n
,
k
)
−
k
S
(
n
−
1
,
k
)
=
∑
l
=
1
k
(
−
1
)
k
−
l
(
k
−
l
)
!
⋅
l
n
−
1
(
l
−
k
)
l
!
=
∑
l
=
1
k
(
−
1
)
k
−
1
−
l
(
k
−
1
−
l
)
!
⋅
l
n
−
1
l
!
=
S
(
n
−
1
,
k
−
1
)
S(n,k)-kS(n-1,k)= \sum_{l=1}^{k} \frac{(-1)^{k-l}}{(k-l)!}\cdot\frac{l^{n-1}(l-k)}{l!}\\ = \sum_{l=1}^{k} \frac{(-1)^{k-1-l}}{(k-1-l)!}\cdot\frac{l^{n-1}}{l!} \\ = S(n-1,k-1)
S(n,k)−kS(n−1,k)=l=1∑k(k−l)!(−1)k−l⋅l!ln−1(l−k)=l=1∑k(k−1−l)!(−1)k−1−l⋅l!ln−1=S(n−1,k−1)
从而假设得证
习题15.2
试求矩阵
A = [ 2 4 1 3 0 0 0 0 ] A=\left[ \begin{matrix} 2 & 4 \\ 1 & 3 \\ 0 & 0 \\ 0 & 0 \\ \end{matrix} \right] A=⎣⎢⎢⎡21004300⎦⎥⎥⎤
的奇异值分解并写出其外积展开式
计算对称矩阵
W
=
A
T
A
=
[
2
1
0
0
4
3
0
0
]
[
2
4
1
3
0
0
0
0
]
=
[
5
11
11
25
]
W=A^TA= \left[ \begin{matrix} 2 & 1 & 0 & 0 \\ 4 & 3 & 0 & 0 \\ \end{matrix} \right] \left[ \begin{matrix} 2 & 4 \\ 1 & 3 \\ 0 & 0 \\ 0 & 0 \\ \end{matrix} \right]= \left[ \begin{matrix} 5 & 11 \\ 11 & 25 \\ \end{matrix} \right]
W=ATA=[24130000]⎣⎢⎢⎡21004300⎦⎥⎥⎤=[5111125]
特征值
λ
\lambda
λ和特征向量
x
x
x满足特征方程
(
W
−
λ
I
)
x
=
0
(W-\lambda I)x=0
(W−λI)x=0
从而得到线性方程组
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \left\{ \begin…
该方程组有非零解的充要条件是
∣
5
−
λ
11
11
25
−
λ
∣
=
0
\left| \begin{matrix} 5-\lambda & 11 \\ 11 & 25-\lambda \end{matrix} \right| =0
∣∣∣∣5−λ111125−λ∣∣∣∣=0
即
λ
2
−
30
λ
+
4
=
0
\lambda^2-30\lambda+4=0
λ2−30λ+4=0,得到特征值
λ
1
=
15
+
221
\lambda_1=15+\sqrt{221}
λ1=15+221,对应特征向量
v
1
=
[
1
10
+
221
11
]
v_1 = \left[ \begin{matrix} 1 \\ \frac{10+\sqrt{221}}{11}\\ \end{matrix} \right]
v1=[11110+221]
特征值
λ
2
=
15
−
221
\lambda_2=15-\sqrt{221}
λ2=15−221,对应特征向量
v
2
=
[
−
10
+
221
11
1
]
v_2 = \left[ \begin{matrix} -\frac{10+\sqrt{221}}{11} \\ 1 \end{matrix} \right]
v2=[−1110+2211]
于是可以构造正交矩阵
V
V
V和对角矩阵
Σ
\Sigma
Σ如下
V
=
[
1
−
10
+
221
11
10
+
221
11
1
]
Σ
=
[
15
+
221
0
0
15
−
221
0
0
0
0
]
V = \left[ \begin{matrix} 1 & -\frac{10+\sqrt{221}}{11} \\ \frac{10+\sqrt{221}}{11} & 1 \end{matrix} \right]\\ \Sigma = \left[ \begin{matrix} \sqrt{15+\sqrt{221}} & 0 \\ 0 & \sqrt{15-\sqrt{221}} \\ 0 & 0 \\ 0 & 0 \\ \end{matrix} \right]\\
V=[11110+221−1110+2211]Σ=⎣⎢⎢⎡15+221000015−22100⎦⎥⎥⎤
因为
u
1
=
1
λ
1
A
v
1
=
[
62
+
4
221
11
15
+
221
41
+
3
221
11
15
+
221
0
0
]
u
2
=
1
λ
2
A
v
2
=
[
24
−
3
221
11
15
−
221
23
−
221
11
15
−
221
0
0
]
u_1=\frac{1}{\sqrt{\lambda_1}}Av_1= \left[ \begin{matrix} \frac{62+4\sqrt{221}}{11\sqrt{15+\sqrt{221}}}\\ \frac{41+3\sqrt{221}}{11\sqrt{15+\sqrt{221}}}\\ 0 \\ 0 \end{matrix} \right] \\ u_2=\frac{1}{\sqrt{\lambda_2}}Av_2= \left[ \begin{matrix} \frac{24-3\sqrt{221}}{11\sqrt{15-\sqrt{221}}}\\ \frac{23-\sqrt{221}}{11\sqrt{15-\sqrt{221}}}\\ 0 \\ 0 \end{matrix} \right]
u1=λ11Av1=⎣⎢⎢⎢⎢⎡1115+22162+42211115+22141+322100⎦⎥⎥⎥⎥⎤u2=λ21Av2=⎣⎢⎢⎢⎢⎡1115−22124−32211115−22123−22100⎦⎥⎥⎥⎥⎤
令列向量
u
3
u_3
u3和
u
4
u_4
u4是
A
T
A^T
AT的零空间
N
(
A
T
)
\mathcal{N}(A^T)
N(AT)上的一组标准正交基,先求解线性方程组
A
T
x
=
[
2
1
0
0
4
3
0
0
]
[
x
1
x
2
x
3
x
4
]
=
0
A^Tx=\left[ \begin{matrix} 2 & 1 & 0 & 0 \\ 4 & 3 & 0 & 0 \\ \end{matrix} \right] \left[ \begin{matrix} x_1\\ x_2\\ x_3\\ x_4\\ \end{matrix} \right]=0
ATx=[24130000]⎣⎢⎢⎡x1x2x3x4⎦⎥⎥⎤=0
令
(
x
3
,
x
4
)
(x_3,x_4)
(x3,x4)分别为
(
1
,
0
)
(1,0)
(1,0)和
(
0
,
1
)
(0,1)
(0,1),那么可得
u
3
=
[
0
0
1
0
]
T
u
4
=
[
0
0
0
1
]
T
u_3=\left[ \begin{matrix} 0 & 0 & 1 &0 \end{matrix} \right]^T \\ u_4=\left[ \begin{matrix} 0 & 0 & 0 & 1 \end{matrix} \right]^T
u3=[0010]Tu4=[0001]T
从而可以构造正交矩阵
U
=
[
62
+
4
221
11
15
+
221
24
−
3
221
11
15
−
221
0
0
41
+
3
221
11
15
+
221
23
−
221
11
15
−
221
0
0
0
0
1
0
0
0
0
1
]
U=\left[ \begin{matrix} \frac{62+4\sqrt{221}}{11\sqrt{15+\sqrt{221}}} &\frac{24-3\sqrt{221}}{11\sqrt{15-\sqrt{221}}} & 0 & 0\\ \frac{41+3\sqrt{221}}{11\sqrt{15+\sqrt{221}}} & \frac{23-\sqrt{221}}{11\sqrt{15-\sqrt{221}}} & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right]
U=⎣⎢⎢⎢⎢⎡1115+22162+42211115+22141+3221001115−22124−32211115−22123−2210000100001⎦⎥⎥⎥⎥⎤
矩阵
A
A
A的外积展开式为
A
=
1
λ
1
u
1
v
1
T
+
1
λ
2
u
2
v
2
T
A =\frac{1}{\sqrt{{\lambda_1}}}u_1v_1^T+ \frac{1}{\sqrt{{\lambda_2}}}u_2v_2^T
A=λ11u1v1T+λ21u2v2T
习题15.3
比较矩阵的奇异值分解与对称矩阵的对角化的异同
- 相似点:
- 都是根据矩阵特征值,得到对角元,然后将一个矩阵分解成三个矩阵乘积的形式。
- 奇异值和对称矩阵对角化后的对角元都是唯一确定的。
- 不同点:
-
奇异值是矩阵自乘之后,得到的特征值的平方根;而对称矩阵的对角化,是根据本身的特征值。
-
如果矩阵不是一个方阵,那么奇异值组成的矩阵不是方阵;而对称矩阵对角化得到的对角矩阵一定是一个方阵。
习题15.4
证明任何一个秩为1的矩阵可写成两个向量的外积形式,并给出实例
对于矩阵
A
n
×
n
A_{n\times n}
An×n,满足
r
(
A
)
=
1
r(A)=1
r(A)=1,那么
∃
P
\exists P
∃P是可逆阵,使得
P
A
=
[
v
1
,
0
,
⋯
,
0
]
PA=[v_1,0,\cdots, 0]
PA=[v1,0,⋯,0]
其中
v
1
v_1
v1是
1
×
n
1\times n
1×n的行向量,令
e
1
=
[
1
,
0
,
⋯
,
0
]
e_1=[1,0,\cdots,0]
e1=[1,0,⋯,0],从而
P
A
=
e
1
T
v
1
A
=
P
−
1
e
1
T
v
1
PA = e_1^Tv_1 \\ A =P^{-1}e_1^Tv_1
PA=e1Tv1A=P−1e1Tv1
再令
u
1
T
=
P
−
1
e
1
T
u_1^T=P^{-1}e_1^T
u1T=P−1e1T,从而有
A
=
u
1
T
v
1
A=u_1^Tv_1
A=u1Tv1得证
习题15.5
搜索中的点击数据记录用户搜索时提交的查询语句,点击的网页URL,以及点击的次数,构成一个二部图,其中一个结点集合 { q i } \{q_i\} {qi}表示查询,另一个结点集合 { u j } \{u_j\} {uj}表示URL,边表示点击关系,边上的权重表示点击次数。下图是一个简化的点击数据例。
点击数据可以由矩阵表示,试对该矩阵进行奇异值分解,并解释得到的三个矩阵所表示的内容。
令
(
q
i
,
u
j
)
(q_i,u_j)
(qi,uj)表示查询
q
i
q_i
qi到结点
u
j
u_j
uj的点击次数,其中
i
∈
{
1
,
2
,
3
,
4
}
,
j
∈
{
1
,
2
,
3
,
4
,
5
}
i\in\{1,2,3,4\},j\in\{1,2,3,4,5\}
i∈{1,2,3,4},j∈{1,2,3,4,5},可以将上图转化成如下矩阵
A
=
[
0
20
5
0
0
10
0
0
3
0
0
0
0
0
1
0
0
1
0
0
]
A= \begin{bmatrix} 0 & 20 & 5 & 0 & 0 \\ 10 & 0 & 0 & 3 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 \\ \end{bmatrix}
A=⎣⎢⎢⎡0100020000500103000010⎦⎥⎥⎤
其中位置
A
i
j
A_{ij}
Aij对应
(
q
i
,
u
j
)
(q_i,u_j)
(qi,uj),如果不存在即为0,可以得到分解结果如下
U
=
[
0.999
0
0
−
0.012
0
1
0
0
0
0
1
0
−
0.012
0
0
0.999
]
Σ
=
[
20.6
0
0
0
0
0
10.4
0
0
0
0
0
1
0
0
0
0
0
0.97
0
]
V
T
=
[
0
0.97
0.243
0
0
0.958
0
0
0.287
0
0
0
0
0
1
0
−
0.243
0.97
0
0
0.287
0
0
−
0.958
0
]
U= \begin{bmatrix} 0.999 & 0 & 0 & -0.012 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ -0.012 & 0 & 0 & 0.999\\ \end{bmatrix} \\ \Sigma= \begin{bmatrix} 20.6 & 0 & 0 & 0 & 0 \\ 0 & 10.4 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0.97 & 0 \\ \end{bmatrix} \\ V^T = \begin{bmatrix} 0 & 0.97 & 0.243 & 0 & 0\\ 0.958 & 0 & 0 & 0.287 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & -0.243 & 0.97 & 0 & 0 \\ 0.287 & 0 & 0 & -0.958 &0 \end{bmatrix}
U=⎣⎢⎢⎡0.99900−0.01201000010−0.012000.999⎦⎥⎥⎤Σ=⎣⎢⎢⎡20.6000010.40000100000.970000⎦⎥⎥⎤VT=⎣⎢⎢⎢⎢⎡00.958000.2870.9700−0.24300.243000.97000.28700−0.95800100⎦⎥⎥⎥⎥⎤
矩阵 U U U表示两个查询之间的相关程度;矩阵 Σ \Sigma Σ对角元对应每个查询的次数占总查询中的比重,查询次数多则对应对角元数值大;矩阵 V T V^T VT表示不同网页结点之间的相关性。
习题16.1
对以下样本数据进行主成分分析:
X = [ 2 3 3 4 5 7 2 4 5 5 6 8 ] X= \begin{bmatrix} 2 & 3 & 3 & 4 & 5 & 7 \\ 2 & 4 & 5 & 5 & 6 & 8 \end{bmatrix} X=[223435455678]
样本均值向量为
x
‾
=
1
6
∑
i
=
1
6
x
i
=
(
4
,
5
)
T
\overline{x} = \frac{1}{6} \sum_{i=1}^6 x_i= (4,5)^T
x=61i=1∑6xi=(4,5)T
从而得到样本协方差矩阵为
S
=
[
16
5
17
5
17
5
4
]
S= \begin{bmatrix} \frac{16}{5} & \frac{17}{5} \\ \frac{17}{5} & 4 \end{bmatrix}
S=[5165175174]
对样本矩阵
X
X
X 进行规范化得到新矩阵
A
=
[
−
5
2
−
5
4
−
5
4
0
5
4
3
5
4
−
3
2
−
1
2
0
0
1
2
3
2
]
A = \begin{bmatrix} -\frac{\sqrt{5}}{2} & -\frac{\sqrt{5}}{4} & -\frac{\sqrt{5}}{4} & 0 & \frac{\sqrt{5}}{4} & \frac{3\sqrt{5}}{4} \\ -\frac{3}{2} & -\frac{1}{2} & 0 & 0 & \frac{1}{2} & \frac{3}{2} \end{bmatrix}
A=[−25−23−45−21−45000452143523]
根据公式计算得到样本相关矩阵
R
=
1
5
A
A
T
=
[
1
17
5
40
17
5
40
1
]
R = \frac{1}{5}AA^T= \begin{bmatrix} 1 & \frac{17\sqrt{5}}{40} \\ \frac{17\sqrt{5}}{40} & 1 \end{bmatrix}
R=51AAT=[140175401751]
求得矩阵
R
R
R 的特征值为
λ
1
=
1
+
17
40
5
\lambda_1 = 1+\frac{17}{40}\sqrt{5}
λ1=1+40175 以及
λ
2
=
1
−
17
40
5
\lambda_2=1-\frac{17}{40}\sqrt{5}
λ2=1−40175 ,对应的单位特征向量为
a
1
=
(
2
2
,
2
2
)
T
a
2
=
(
2
2
,
−
2
2
)
T
a_1 = (\frac{\sqrt{2}}{2},\frac{\sqrt{2}}{2})^T \\ a_2 = (\frac{\sqrt{2}}{2},-\frac{\sqrt{2}}{2})^T
a1=(22,22)Ta2=(22,−22)T
于是样本主成分矩阵为
Y
=
[
2
2
7
2
2
4
2
9
2
2
11
2
2
15
2
2
0
−
2
2
−
2
−
2
2
−
2
2
−
2
2
]
Y= \begin{bmatrix} 2\sqrt{2} & \frac{7\sqrt{2}}{2} & 4\sqrt{2} & \frac{9\sqrt{2}}{2} & \frac{11\sqrt{2}}{2} & \frac{15\sqrt{2}}{2} \\ 0 & -\frac{\sqrt{2}}{2} & -\sqrt{2} & -\frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} \end{bmatrix}
Y=[220272−2242−2292−222112−222152−22]
习题16.2
证明样本协方差矩阵 S S S 是总体协方差矩阵方差 Σ \Sigma Σ 的无偏估计
假设随机变量
X
X
X 有观测序列
X
n
=
{
x
1
,
x
2
,
⋯
,
x
n
}
X_n=\{x_1,x_2,\cdots,x_n\}
Xn={x1,x2,⋯,xn},
Y
Y
Y 有观测序列
Y
n
=
{
y
1
,
y
2
,
⋯
,
y
n
}
Y_n=\{y_1,y_2,\cdots,y_n\}
Yn={y1,y2,⋯,yn},那么根据样本协方差矩阵元素的算法可得
C
o
v
(
X
n
,
Y
n
)
=
E
[
1
n
−
1
∑
i
=
1
n
(
x
i
−
x
‾
)
(
y
i
−
y
‾
)
]
=
1
n
−
1
E
[
∑
i
=
1
n
(
x
i
y
i
−
x
‾
y
i
−
y
‾
x
i
+
x
‾
y
‾
)
]
=
1
n
−
1
E
[
∑
i
=
1
n
x
i
y
i
−
x
‾
∑
i
=
1
n
y
i
−
y
‾
∑
i
=
1
n
x
i
+
n
x
‾
y
‾
]
=
E
[
∑
x
i
y
i
]
n
−
1
−
2
E
[
∑
x
i
∑
y
i
]
n
(
n
−
1
)
+
E
[
∑
x
i
∑
y
i
]
n
(
n
−
1
)
=
E
[
∑
x
i
y
i
]
n
−
1
−
E
[
∑
x
i
∑
y
i
]
n
(
n
−
1
)
=
1
n
E
[
∑
i
=
1
n
x
i
y
i
]
−
1
n
(
n
−
1
)
E
[
∑
i
=
1
n
∑
j
≠
i
n
x
i
y
j
]
=
E
[
∑
i
=
1
n
x
i
y
i
n
]
−
E
[
∑
i
=
1
n
∑
j
≠
i
n
x
i
n
y
j
n
−
1
]
=
E
[
∑
i
=
1
n
x
i
y
i
n
]
−
E
[
∑
i
=
1
n
x
i
n
∑
j
≠
i
n
y
j
n
−
1
]
=
E
[
∑
i
=
1
n
x
i
y
i
n
]
−
E
[
∑
i
=
1
n
x
i
n
E
[
∑
j
≠
i
n
y
j
n
−
1
]
]
=
E
[
∑
i
=
1
n
x
i
y
i
n
]
−
E
[
∑
i
=
1
n
x
i
n
E
[
Y
]
]
=
E
[
∑
i
=
1
n
x
i
y
i
n
]
−
E
[
∑
i
=
1
n
x
i
n
]
E
[
Y
]
=
E
[
X
Y
]
−
E
[
X
]
⋅
E
[
Y
]
=
C
o
v
(
X
,
Y
)
\begin{aligned} Cov(X_n,Y_n) &= E\left[\frac{1}{n-1}\sum_{i=1}^n(x_i-\overline{x})(y_i-\overline{y}) \right] \\ &= \frac{1}{n-1} E\left[\sum_{i=1}^{n} (x_iy_i - \overline{x}y_i - \overline{y}x_i + \overline{x}\overline{y}) \right]\\ &= \frac{1}{n-1} E\left[\sum_{i=1}^nx_iy_i - \overline{x}\sum_{i=1}^ny_i-\overline{y}\sum_{i=1}^nx_i +n\overline{x}\overline{y} \right] \\ &=\frac{E\left[ \sum x_iy_i \right]}{n-1}-\frac{2E\left[\sum x_i \sum y_i \right]}{n(n-1)} + \frac{E\left[\sum x_i \sum y_i \right]}{n(n-1)} \\ &= \frac{E\left[ \sum x_iy_i \right]}{n-1}-\frac{E\left[\sum x_i \sum y_i \right]}{n(n-1)} \\ &= \frac{1}{n}E\left[\sum_{i=1}^n x_iy_i \right] - \frac{1}{n(n-1)}E\left[ \sum_{i=1}^n\sum_{j\neq i}^n x_i y_j \right]\\ &= E\left[\sum_{i=1}^n \frac{x_iy_i}{n} \right] - E\left[\sum_{i=1}^n \sum_{j\neq i}^n\frac{x_i}{n} \frac{y_j}{n-1} \right]\\ &= E\left[\sum_{i=1}^n \frac{x_iy_i}{n} \right] - E\left[\sum_{i=1}^n \frac{x_i}{n}\sum_{j\neq i}^n \frac{y_j}{n-1} \right]\\ &= E\left[\sum_{i=1}^n \frac{x_iy_i}{n} \right] - E\left[\sum_{i=1}^n \frac{x_i}{n} E\left[\sum_{j\neq i}^n\frac{y_j}{n-1} \right]\right]\\ &= E\left[\sum_{i=1}^n \frac{x_iy_i}{n} \right] - E\left[\sum_{i=1}^n \frac{x_i}{n} E\left[Y \right]\right]\\ &= E\left[\sum_{i=1}^n \frac{x_iy_i}{n} \right] - E\left[\sum_{i=1}^n \frac{x_i}{n} \right]E\left[Y \right]\\ &= E[XY] - E[X]\cdot E[Y] \\ &= Cov(X,Y) \end{aligned}
Cov(Xn,Yn)=E[n−11i=1∑n(xi−x)(yi−y)]=n−11E[i=1∑n(xiyi−xyi−yxi+xy)]=n−11E[i=1∑nxiyi−xi=1∑nyi−yi=1∑nxi+nxy]=n−1E[∑xiyi]−n(n−1)2E[∑xi∑yi]+n(n−1)E[∑xi∑yi]=n−1E[∑xiyi]−n(n−1)E[∑xi∑yi]=n1E[i=1∑nxiyi]−n(n−1)1E⎣⎡i=1∑nj=i∑nxiyj⎦⎤=E[i=1∑nnxiyi]−E⎣⎡i=1∑nj=i∑nnxin−1yj⎦⎤=E[i=1∑nnxiyi]−E⎣⎡i=1∑nnxij=i∑nn−1yj⎦⎤=E[i=1∑nnxiyi]−E⎣⎡i=1∑nnxiE⎣⎡j=i∑nn−1yj⎦⎤⎦⎤=E[i=1∑nnxiyi]−E[i=1∑nnxiE[Y]]=E[i=1∑nnxiyi]−E[i=1∑nnxi]E[Y]=E[XY]−E[X]⋅E[Y]=Cov(X,Y)
从而命题得证
习题16.3
设 X X X 为数据规范化样本矩阵,则主成分等价于求解以下最优化问题:
min L ∥ X − L ∥ F s . t . r a n k ( L ) ≤ k \min_L \lVert X-L\rVert_F \\ s.t. \quad rank(L) \leq k Lmin∥X−L∥Fs.t.rank(L)≤k
这里 F F F 是弗罗贝尼乌斯范数, k k k 是主成分个数。试问为什么?
先证明充分性:
根据算法16.1,假设矩阵
X
′
=
1
n
−
1
X
T
X'=\frac{1}{\sqrt{n-1}}X^T
X′=n−11XT 可作如下的截断奇异值分解
X
′
=
U
k
Σ
k
V
k
X' = U_k\Sigma_kV_k
X′=UkΣkVk
从而得到样本主成分矩阵为
Y
=
V
k
T
X
=
n
−
1
V
k
T
(
X
′
)
T
=
n
−
1
Σ
k
U
k
T
Y = V_k^TX=\sqrt{n-1}V_k^T(X')^T=\sqrt{n-1}\Sigma_k U_k^T
Y=VkTX=n−1VkT(X′)T=n−1ΣkUkT
令
K
=
1
n
−
1
V
k
Y
K=\frac{1}{\sqrt{n-1}}V_kY
K=n−11VkY,因为
V
k
V_k
Vk只有
k
k
k行,所以
r
a
n
k
(
L
)
≤
k
rank(L) \leq k
rank(L)≤k,根据定理15.3,得
∥
X
−
K
∥
F
=
min
L
∥
X
−
L
∥
F
\lVert X-K\rVert_F = \min_L\lVert X-L\rVert_F
∥X−K∥F=Lmin∥X−L∥F
从而获得的矩阵
K
K
K就是最优化问题的解,得证
再证明必要性:
假设满足上面最优化问题的矩阵为
L
L
L,并且
r
a
n
k
(
L
)
≤
k
rank(L) \leq k
rank(L)≤k,根据定理15.3,令矩阵
X
X
X 有分解
X
=
U
Σ
V
T
X=U\Sigma V^T
X=UΣVT
那么矩阵
L
=
U
k
Σ
k
V
k
T
L = U_k\Sigma_kV_k^T
L=UkΣkVkT
令
Y
=
L
V
k
=
U
k
Σ
k
Y=LV_k=U_k\Sigma_k
Y=LVk=UkΣk,则
Y
T
Y
=
Σ
k
Σ
k
Y^TY=\Sigma_k\Sigma_k
YTY=ΣkΣk,又因为
X
T
X
=
V
Σ
Σ
V
T
X^TX=V\Sigma\Sigma V^T
XTX=VΣΣVT
从而有
V
T
X
(
V
T
X
)
T
=
Σ
Σ
V
k
T
X
(
V
k
T
X
)
T
=
Σ
k
Σ
k
V^TX(V^TX)^T=\Sigma\Sigma \\ V_k^TX(V_k^TX)^T=\Sigma_k\Sigma_k
VTX(VTX)T=ΣΣVkTX(VkTX)T=ΣkΣk
根据定理16.1可知,
Y
=
V
k
T
X
Y=V_k^TX
Y=VkTX即为主成分矩阵。
习题19.1
用蒙特卡洛积分法
∫ − ∞ + ∞ x 2 exp ( − x 2 2 ) d x \int_{-\infty}^{+\infty}x^2\exp{(-\frac{x^2}{2})} dx ∫−∞+∞x2exp(−2x2)dx
令概率分布函数为
p
(
x
)
=
1
2
π
exp
(
−
x
2
2
)
p(x) = \frac{1}{\sqrt{2\pi}}\exp{(-\frac{x^2}{2})}
p(x)=2π1exp(−2x2)
它的均值为0,方差为1,用蒙特卡洛求
f
(
x
)
g
(
x
)
f(x)g(x)
f(x)g(x)在实数轴上的定积分,其中
f
(
x
)
=
2
π
x
2
f(x)= \sqrt{2\pi}x^2
f(x)=2πx2
程序如下
import numpy as np
import random
import math
x = np.random.normal(0,1,[10000])
rst = math.sqrt(2*np.pi)*np.dot(x,x)/10000
print(rst)
结果输出为 2.5227803197535947 2.5227803197535947 2.5227803197535947。
习题19.4
验证具有以下转移概率矩阵的马尔可夫链是不可约的,但是周期性的。
P = [ 0 1 2 0 0 1 0 1 2 0 0 1 2 0 1 0 0 1 2 0 ] P= \begin{bmatrix} 0 & \frac{1}{2} & 0 & 0\\ 1 & 0 & \frac{1}{2} & 0\\ 0 & \frac{1}{2} & 0 & 1\\ 0 & 0 & \frac{1}{2} & 0\\ \end{bmatrix} P=⎣⎢⎢⎡01002102100210210010⎦⎥⎥⎤
先证明矩阵是不可约的:
经过两次状态转移之后的概率矩阵如下,元素
(
i
,
j
)
(i,j)
(i,j)的值表示
P
{
X
(
t
+
2
)
=
i
∣
X
(
t
)
=
j
}
P\{X(t+2)=i|X(t)=j\}
P{X(t+2)=i∣X(t)=j}
P
2
=
[
1
2
0
1
4
0
0
3
4
0
1
2
1
2
0
3
4
0
0
1
4
0
1
2
]
P^2 = \begin{bmatrix} \frac{1}{2} & 0 & \frac{1}{4} & 0 \\ 0 & \frac{3}{4} & 0 & \frac{1}{2} \\ \frac{1}{2} & 0 & \frac{3}{4} & 0 \\ 0 & \frac{1}{4} & 0 & \frac{1}{2} \\ \end{bmatrix}
P2=⎣⎢⎢⎡210210043041410430021021⎦⎥⎥⎤
经过三次状态转移之后的概率矩阵如下,元素啊
(
i
,
j
)
(i,j)
(i,j)的值表示
P
{
X
(
t
+
3
)
=
i
∣
X
(
t
)
=
j
}
P\{X(t+3)=i|X(t)=j\}
P{X(t+3)=i∣X(t)=j}
P
3
=
[
0
3
8
0
1
4
3
4
0
5
8
0
0
5
8
0
3
4
1
4
0
3
8
0
]
P^3= \begin{bmatrix} 0 & \frac{3}{8} & 0 & \frac{1}{4} \\ \frac{3}{4} & 0 & \frac{5}{8} & 0 \\ 0 & \frac{5}{8} & 0 & \frac{3}{4} \\ \frac{1}{4} & 0 & \frac{3}{8} & 0 \\ \end{bmatrix}
P3=⎣⎢⎢⎡043041830850085083410430⎦⎥⎥⎤
将三种跳转概率矩阵相加得
P
+
P
2
+
P
3
=
[
1
2
7
8
1
4
1
4
7
4
3
4
9
8
1
2
1
2
9
8
3
4
7
4
1
4
1
4
7
8
1
2
]
P + P^2 +P^3 = \begin{bmatrix} \frac{1}{2} & \frac{7}{8} & \frac{1}{4} & \frac{1}{4} \\ \frac{7}{4} & \frac{3}{4} & \frac{9}{8} & \frac{1}{2} \\ \frac{1}{2} & \frac{9}{8} & \frac{3}{4} & \frac{7}{4} \\ \frac{1}{4} & \frac{1}{4} & \frac{7}{8} & \frac{1}{2} \\ \end{bmatrix}
P+P2+P3=⎣⎢⎢⎡21472141874389414189438741214721⎦⎥⎥⎤
发现每一个位置都不为0,所以任意状态下,都可以经过1或者2或者3次跳转,有概率到达指定状态,所以矩阵
P
P
P是不可约的。
再证明矩阵是有周期性的:
因为第二次转跳的概率矩阵 P 2 P^2 P2的对角元都不为0,所以偶数次的转跳都有可能回到原来的状态。又因为矩阵都有一样的形状 P 2 n P^{2n} P2n,即有确定的位置上的值一直是0,其余位置一直不是0,所以 P 2 n + 1 P^{2n+1} P2n+1型的矩阵都与 P 3 P^3 P3有相同形状,从而对角元都是0。综上,概率矩阵是有周期性的,并且周期为2。
习题19.5
证明可逆马尔可夫链一定是不可约的
我觉得这个命题是错的,下面是具体说明
假设马尔可夫链的转移概率矩阵为
P = [ p 11 ⋯ p 1 n ⋮ ⋮ p n 1 ⋯ p n n ] P= \begin{bmatrix} p_{11} & \cdots & p_{1n}\\ \vdots & &\vdots \\ p_{n1} & \cdots & p_{nn} \end{bmatrix} P=⎣⎢⎡p11⋮pn1⋯⋯p1n⋮pnn⎦⎥⎤
可以将其改造成如下形式的两个矩阵
Q = [ Q 1 Q 2 ⋮ Q n ] Q = \begin{bmatrix} Q_1 \\ Q_2 \\ \vdots \\ Q_n \end{bmatrix} Q=⎣⎢⎢⎢⎡Q1Q2⋮Qn⎦⎥⎥⎥⎤
其中 Q i = d i a g ( p i 1 , p i 2 , ⋯ , p i n ) Q_i=diag(p_{i1},p_{i2},\cdots,p_{in}) Qi=diag(pi1,pi2,⋯,pin), i = 1 , 2 , ⋯ , n i=1,2,\cdots,n i=1,2,⋯,n,还有
H = [ H 1 H 2 ⋮ H n ] H = \begin{bmatrix} H_1 \\ H_2 \\ \vdots \\ H_n \end{bmatrix} H=⎣⎢⎢⎢⎡H1H2⋮Hn⎦⎥⎥⎥⎤
其中 H i H_i Hi是第 i i i列为 ( p 1 i , p 2 i , ⋯ , p n i ) T (p_{1i},p_{2i},\cdots,p_{ni})^T (p1i,p2i,⋯,pni)T的 n n n阶方阵,其余位置都是0,从而根据可逆性,则存在一个向量 π = ( π 1 , π 2 , ⋯ , π n ) T \pi=(\pi_1,\pi_2,\cdots,\pi_n)^T π=(π1,π2,⋯,πn)T,使得
Q [ π 1 π 2 ⋮ π n ] = [ p 11 π 1 ⋮ p 1 n π n ⋮ p n 1 π 1 ⋮ p n n π n ] = [ p 11 π 1 ⋮ p n 1 π 1 ⋮ p 1 n π n ⋮ p n n π n ] = H [ π 1 π 2 ⋮ π n ] Q \begin{bmatrix} \pi_1 \\ \pi_2 \\ \vdots \\ \pi_n \end{bmatrix}= \begin{bmatrix} p_{11}\pi_1 \\ \vdots \\ p_{1n}\pi_n\\ \vdots \\ p_{n1}\pi_1 \\ \vdots\\ p_{nn}\pi_n \end{bmatrix}= \begin{bmatrix} p_{11}\pi_1 \\ \vdots \\ p_{n1}\pi_1\\ \vdots \\ p_{1n}\pi_n \\ \vdots\\ p_{nn}\pi_n \end{bmatrix}= H \begin{bmatrix} \pi_1 \\ \pi_2 \\ \vdots \\ \pi_n \end{bmatrix} Q⎣⎢⎢⎢⎡π1π2⋮πn⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡p11π1⋮p1nπn⋮pn1π1⋮pnnπn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡p11π1⋮pn1π1⋮p1nπn⋮pnnπn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=H⎣⎢⎢⎢⎡π1π2⋮πn⎦⎥⎥⎥⎤
因为 H T H = Q t Q = I H^TH=Q^tQ=I HTH=QtQ=I,从而有
Q T H [ π 1 π 2 ⋮ π n ] = [ p 11 2 p 12 p 21 ⋯ p 1 n p n 1 p 21 p 12 p 22 2 ⋯ p 2 n p n 2 ⋮ ⋮ ⋮ p n 1 p 1 n p n 2 p 2 n ⋯ p n n 2 ] [ π 1 π 2 ⋮ π n ] = [ π 1 π 2 ⋮ π n ] Q^TH \begin{bmatrix} \pi_1 \\ \pi_2 \\ \vdots \\ \pi_n \end{bmatrix} = \begin{bmatrix} p_{11}^2 & p_{12}p_{21} & \cdots & p_{1n}p_{n1} \\ p_{21}p_{12} & p_{22}^2 &\cdots & p_{2n}p_{n2}\\ \vdots & \vdots & & \vdots\\ p_{n1}p_{1n} & p_{n2}p_{2n} & \cdots & p_{nn}^2 \end{bmatrix} \begin{bmatrix} \pi_1 \\ \pi_2 \\ \vdots \\ \pi_n \end{bmatrix} =\begin{bmatrix} \pi_1 \\ \pi_2 \\ \vdots \\ \pi_n \end{bmatrix} QTH⎣⎢⎢⎢⎡π1π2⋮πn⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡p112p21p12⋮pn1p1np12p21p222⋮pn2p2n⋯⋯⋯p1npn1p2npn2⋮pnn2⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡π1π2⋮πn⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡π1π2⋮πn⎦⎥⎥⎥⎤
令矩阵 M = Q T H M=Q^TH M=QTH,则M是实对称的,可以相似对角化成
M = U − 1 Λ U M=U^{-1}\Lambda U M=U−1ΛU
其中 Λ \Lambda Λ是一个对角矩阵,对角元为 M M M的特征值且至少有一个为1,又因为
Λ U π = U π \Lambda U\pi=U\pi ΛUπ=Uπ
所以
Λ
=
I
\Lambda=I
Λ=I,即矩阵
M
M
M的所有特征值都为1。根据特征值的计算方法得
∣
M
−
λ
I
∣
=
(
λ
−
1
)
n
|M-\lambda I|=(\lambda-1)^n
∣M−λI∣=(λ−1)n
考察一个简单的情况,当
n
=
2
n=2
n=2时,有
∣
M
−
λ
I
∣
=
λ
2
−
(
p
11
2
+
p
22
2
)
λ
+
(
p
11
2
p
22
2
−
p
12
2
p
21
2
)
=
λ
2
−
2
λ
+
1
|M-\lambda I| =\lambda^2-(p_{11}^2+p_{22}^2)\lambda +(p_{11}^2p_{22}^2-p_{12}^2p_{21}^2)=\lambda^2-2\lambda+1
∣M−λI∣=λ2−(p112+p222)λ+(p112p222−p122p212)=λ2−2λ+1
从而有
P
=
[
1
0
0
1
]
P=\begin{bmatrix} 1 & 0 \\ 0 & 1 \\ \end{bmatrix}
P=[1001]
显然它既是可逆的,又是可约的,是原命题的一个反例。
习题19.7
假设进行伯努利实验,后验概率为 P ( θ ∣ y ) P(\theta |y) P(θ∣y),其中变量 y ∈ { 0 , 1 } y \in \{0,1\} y∈{0,1}表示实验可能的结果,变量 θ \theta θ表示结果为1的概率。假设先验概率 P ( θ ) P(\theta) P(θ)遵循Beta分布 B ( α , β ) B(\alpha, \beta) B(α,β),其中 α = 1 , β = 1 \alpha=1,\beta=1 α=1,β=1。似然函数 P ( y ∣ θ ) P(y|\theta) P(y∣θ)遵循二项分布 B i n ( n , k , θ ) Bin(n,k,\theta) Bin(n,k,θ),其中 n = 10 , k = 4 n=10,k=4 n=10,k=4,即实验进行10次其中结果为1的次数为4。试用Metropolis-Hastings算法求后验概率分布 P ( θ ∣ y ) ∝ P ( θ ) P ( y ∣ θ ) P(\theta|y) \propto P(\theta)P(y|\theta) P(θ∣y)∝P(θ)P(y∣θ)的均值和方差。
∵ \because ∵ P ( θ ) = B ( 1 , 1 ) = 1 P(\theta)= B(1,1) = 1 P(θ)=B(1,1)=1, θ ∈ ( 0 , 1 ) \theta \in (0,1) θ∈(0,1), B i n ( 10 , 4 , θ ) = 210 θ 4 ( 1 − θ ) 6 Bin(10,4,\theta) = 210 \theta^4(1-\theta)^6 Bin(10,4,θ)=210θ4(1−θ)6,
∴ \therefore ∴ 根据算法19.2,可以编写代码如下
import numpy as np
def accept(p):
return lambda x,xp: min(1,p(xp)/p(x))
def p(x):
return 210 * pow(x,4) * pow(1-x,6)
def main(m,n):
alpha = accept(p)
X = [0.5]
for i in range(1,n+1):
x = X[i-1]
xp = np.random.uniform(0,1)
u = np.random.uniform(0,1)
if u <= alpha(x, xp):
X.append(xp)
else:
X.append(x)
stable = np.array(X[m:-1])
return np.mean(stable), np.var(stable)
if __name__ == '__main__':
fmn, var = main(1000,1500)
print(str(fmn) + "\n" + str(var))
运行结果显示均值为 0.4199566270481994 0.4199566270481994 0.4199566270481994,方差为 0.015727345334172083 0.015727345334172083 0.015727345334172083