西瓜书《机器学习》课后答案——chapter11

1. 西瓜书《机器学习》课后答案——chapter11_11.1 Relief特征选择算法

2. 试写出Relief-F的算法描述。
解答:

输入:数据集D
过程
计算每个类别的比例;
所有特征对应的统计量 δj=0
for i=1:m
得到 xi 最近的同类样本 xi,nh ,以及其余类别中的每一个类别的最近样本 xi,l,nm
for j=1:d
δj = δjdiff(xji,xji,nh)2+lyipldiff(xji,xji,l,nm)2
输出
所有特征对应的统计量 δ

3. Relief算法是分别考察每个属性的重要性。设计一个能考虑每一对属性重要性的改进算法。
解答:

输入:数据集D
过程
所有两两特征组合对应的统计量 δjk=0
for i=1:m
得到 xi 最近的同类样本 xi,nh ,不同类别中的最近样本 xi,nm
for j=1:d
for k=1:d
δjk = δjkdiff((xji,xki),(xji,nh,xki,nh))2+diff((xji,xki),(xji,nm,xki,nm))2
输出
所有两两特征对应的统计量矩阵 δ

主要改变在于特征对的统计量的计算,在计算diff()函数上,此时可以把它的输入看做两个向量,计算其欧氏距离来体现样本和其邻居之间在特征对上的距离。

4. 试为LVW设计一个改进算法,即便有运行时间限制,该算法也一定能给出解。
解:
给出一个总的迭代次数约束,当总迭代次数达到约束值时,立即终止算法。

5. 结合图11.2,举例说明 L1 正则化在何种情形下不能产生稀疏解。
解答:
对照图11.2,图中的抛物线和 L0 等值线相交在坐标轴上,除了这条等值线之外,这条抛物线只和这条等值线外面的等值线相交,所以导致在这条抛物线上,坐标轴上的交点上的代价值最小。
如果抛物线和这条等值线里面的等值线相交,那么这条抛物线上代价最小的点就不是坐标轴上的这点了。此时不产生稀疏解。

6. 试析岭回归与支持向量机的联系。
解答:
第130页的(6.35)是支持向量机的优化问题,优化目标是最小化合页损失以及w的 L2 范数平方;而岭回归的优化目标(11.6)是最小化误差平方和以及w的 L2 范数平方。

7. 试述直接求解 L0 范数正则化会遇到的困难。
解答:
||x||0=|{i|xi0}| ,向量 x L0 范数是非零元素的个数。

如果以 L0 作为正则化项,那么很自然地,就是希望w中的非零元素个数最少,即0元素最多。

但是在书中第252页中的边注中提到, L0 范数不连续,导致难以求解优化问题。

8. 给出求解 L1 范数最小化问题中的闭式解(11.14)的详细推导过程。
解答:

xk+1=argminxL2||xz||22+λ||x||1.(11.13)

xik+1=ziλL,0,zi+λL,zi>λL|zi|λLzi<λL.(11.14)

题目意思就是怎么从(11.13)推出(11.14)。
J=L2||xz||22+λ||x||1=L2i=1d(xizi)2+λi=1dsign(xi)xi

J xi=0 处是不可导的;在 x0 处是可导的,这时可以应用梯度法。为了求 J 的最小值,可以计算 J(0) 以及 J x0 时的最小值,然后比较,取较小的那个为最优值,对应的 x 为最优解。

最小化 J 等价于分别最小化

Ji(xi)=L2(xizi)2+λsign(xi)xi.

  • xi=0 时,有 Ji(0)=L2(zi)2

  • xi>0 时,求导

    Jixi=L22(xizi)+λ=L(xizi)+λ=0,

    得到
    (xi)=λL+zi,

    • zi>λL 时, Ji x>0 上的最小值为
      Ji((xi))=λ22L+λzi,
    • ziλL 时, Ji x>0 上的最小值为
      Ji(0).
  • xi<0 时,求导

    Jixi=L22(xizi)λ=L(xizi)λ=0,

    得到
    (xi)=λL+zi,

    • zi<λL 时, Ji x<0 上的最小值为
      Ji((xi))=λ22Lλzi,
    • ziλL 时, Ji x<0 上的最小值为
      Ji(0).

综上,

  • zi>λL 时, Ji x=0 x>0 x<0 上的最小值分别为 Ji(0) λ22L+λzi 以及 Ji(0) ,对应的解为 xi=0 xi=λL+zi 以及 xi=0 ,现在只需要判断是 Ji(0)=L2(zi)2 小还是 λ22L+λzi 小:

    L2(zi)2(λ22L+λzi)=L2(zi)2+λ22λLzi2L=(Lziλ)22L>0,

    所以 Ji 的极小值为 λ22L+λzi ,此时最优解为 xi=λL+zi

  • zi<λL 时, Ji x=0 x>0 x<0 上的最小值分别为 Ji(0) Ji(0) 以及 λ22Lλzi ,对应的解为 xi=0 xi=0 以及 xi=λL+zi ,现在只需要判断是 Ji(0)=L2(zi)2 小还是 λ22Lλzi 小:

    L2(zi)2(λ22Lλzi)=L2(zi)2+λ2+2λLzi2L=(Lzi+λ)22L>0,

    所以 Ji 的极小值为 λ22Lλzi ,此时最优解为 xi=λL+zi

  • λLziλL 时, Ji x=0 x>0 x<0 上的最小值分别为 Ji(0) Ji(0) 以及 Ji(0) ,对应的解为 xi=0 xi=0 以及 xi=0 。所以显然这种情况下的最优值为 Ji(0) ,最优解为 xi=0

用公式表达的话,就是(11.14)。

9. 试述字典学习与压缩感知对稀疏性利用的异同。
解答:
字典学习是通过最小化重构误差学习实例的稀疏表示,以利用稀疏表示在学习任务中的优势。比如,书中提到“线性支持向量机之所以能在文本数据上有很好的性能,恰是由于文本数据在使用字频表示后具有高度的稀疏性,使大多数问题变得线性可分”。

压缩感知是希望利用采样信号重构出稀疏表示,再根据稀疏表示恢复原始信号。压缩感知关注的是利用信号本身所具有的稀疏性,从部分观测样本中恢复原信号。

10. 试改进(11.15),以学习出具有分组稀疏性的字典。
解答:
参考文章:Group Sparse Coding
这篇文章是以图像处理作为例子,讨论了分组稀疏性。假设现在已知字典矩阵(即所有的基向量)了,则图像中每个patch可以由基向量的线性组合表示,并且通过 L1 正则化项可以控制为稀疏表示。但是之前的方法都是单独对每个patch进行稀疏表示的,没有考虑到整个图像的稀疏表示,毕竟patch的稀疏表示只是图像的中间步骤。

作者通过mixed-norm正则化方法解决了这一问题。分组稀疏编码把一张图像中的所有patches看做一个分组,每个patch看做一个实例。通过求解以下优化问题对一张图片中的所有patches进行稀疏编码:

minAQ(A,G,D),

其中
Q(A,G,D)=12iG||xij=1|D|αijdj||2+λj=1|D|||αj||p.

其中 G 为一个分组, D 为字典矩阵, A={αj}|D|j=1 为一个分组中所有patches的系数矩阵, αj=(α1j,α2j,,α|G|j) 表示 dj 基向量对每个实例的贡献。第二项是mixed norm,用于控制图像的稀疏表示。

对一个图像,当得到稀疏矩阵 A 后,对每个 αj 求范数,得到一个 |D| 维的向量,这就是图像的稀疏表示。

对所有分组 G={G1,G2,,Gn} 得到对应的系数矩阵 A={A1,A2,,An} 之后,通过下面的优化问题得到字典表示 D

Q(A,D)=m=1nQ(Am,Gm,D)+γk=1|D|||dk||p,

γ 项可以控制向字典中添加新单词或者移除预测力低的单词。
固定 A ,通过最小化 Q(A,D) 即可得到字典表示。

你可能感兴趣的:(机器学习)