• 机器学习基石笔记12——机器可以怎样学习(4)


    Lecture 12: Nonlinear Transformation

    12.1 Quadratic Hypothesis

          现在我们碰到一个新的问题,如何来给如图 12-1 所示的线性不可分数据做分类? 我们之前只学过 linear classification 和 linear regression 。没有学过 nonlinear 算法。

       图 12-1  线性不可分数据集

    图 12-1 所示的数据可以用用圆(椭圆也可以)分开, 如图 12-2 所示

              图 12-2 

    $$h_{SEP}(x) = sign(-x_{1}^2 - x_{2}^2 + 0.6 ) $$

    公式 12-1 等于是将线性不可分的数据集映射成一个线性可分的数据集,如图 12-3 所示

                                          图 12-3

      将 feature 映射到 z space, 可以解决 "任何" 形状分类问题。 还是有个问题,我怎么知道有 xn 的阶数?如果不知道 xn 的阶数,后续的计算又该怎么算呢?目前我们只知道在 x space 的数据,但是到 z space 数据以及 z space 的相关参数                                           

    12.2 Nonlinear Transform

                                                      图 12-4 

    线性转换步骤如图 12-5 所示, 但是问题的是如何求出映射函数?

                                  图 12-5

    自从有了 feature transformation, 就等于打开 pandora box。 所有算法都可以和 feature transformation 组合!!!

    在第三讲就使用 feature transformation ,不过当时没有意识它的意义。

    12.3 Price of Nonlinear Transform

    使用 feature transformation 能把 Ein 降的很低,这固然很好。但是 feature transformation 不是没有问题

                                         图 12-6 大的计算和储存代价

                                       图 12-7  很大的自由度

    计算和存储代价变大,自由度变大(回忆之前章节中关于自由度的讨论)。自由度变大就意味可调参数过多,容易过拟合就像图 12-8 所示

                                                    图 12-8  泛化误差

    现在有个问题,我们怎么知道该不该使用 feature transformation ? 对图 12-2 所示的数据集,我们似乎可以用眼睛去判断该不该用 feature transfromatin。但是对于更高维的,就没有好的办法。 

    事实上,我们不能用眼睛去做判断? 因为你用 brain 处理有限的采样数据。这个不能推广到更多的采样数据,这样会踩雷的(没认真听,感觉是应该是这样的)

    12.4 Structured Hypothesis Sets

    本节来讨论一个 hypothesis set 的有趣性质,看图说话 (只对 map 到 z-space 的有效)

                                                          图 12-9 

                                                           图 12-10

                                                               图 12-11   

    最后,放上老朋友图 12-12

                               图 12-12

    将本节理论应用于神经网络会怎么样?

    题外话:

       1. 如何计算 Nonlinear 的 VC Dimension ?

       2. 潜意识中总认为 Nonlinear 的泛化误差要比 Linear 的要大,这个该怎么克服呢?

       3. 你觉得本节 nonlinear transform 给你最大的启示是什么?

    算法有一套数学公式做证明的, 应该是可以将数学公式 linear 部分用 nonlinear 来替换(这只是一种启示,不是真的可以简单、机械地做替换就可以的)。初学算法时,会用简单的线性算法来入门。这是因为线性算法简单,比较好解释(比如可以画图解释,有的还有几何意义解释如 linear regression)。我觉得不该将线性和非线性这两个概念对立起来, 而是不看具体的数学表达式而是关注更加内涵的东西。 不要太关注这些表像,要关注数学上的东西。没法说清楚~~~,希望我自己别忘了那种感觉

       4. x space to  z space 称之为 feature tranformation, 后续 《技法》课程就是围绕着 feature transformation 展开的。 为什么要 map x-space to z-space ?

       5. VC Dimesion 相关章节还算是偏理论,现在这些内容给我的感觉还是偏技法? 是要用这些章节来引出某些重要的概念? 还是有其它的原因?

       6. 在第十四节第二小节有个有关本节的小问题

       7. 用 feature transformation 可以得到非线性的分类边界,有的算法如决策树天然就有非线性分类边界

                                 图 12-13 

       8. 欣赏一下 Adaptive Boosting 分类边界

                           图  12-14         

    9. 欣赏一下 random feature selection 下的 C&RT 树的边界

                    图 12-15

  • 相关阅读:
    Google 的开源技术protobuf 简介与例子(转)
    set 学习笔记
    map 学习笔记
    网络编程-socket学习笔记
    POSIX线程_学习笔记
    shell 脚本练习
    vector 学习笔记
    用archlinux作为日常开发机的感受
    python中获取上一个月一号的方法
    golang在linux下的开发环境部署[未完]
  • 原文地址:https://www.cnblogs.com/tmortred/p/8099385.html
Copyright © 2020-2023  润新知