• 机器学习基石笔记(三)


    三、How Can Machines Learn?

      第三节首先介绍了linear regression,线性可分的线性规划是有analytic solution的,林老师给我们推了一下,关键就是矩阵化的处理,简化了很多的工作

             

      上面三幅图是整个推导的过程,需要注意的是,最后的X不一定是可逆的,因为我们的数据的数量N一般来说远大于d+1。所以x不可逆的可能性太大的,一般这时候就用伪逆来解决。

      后面是解释为什么可以学习,经过一系列的推导可以得到下图:

      

      这个是相当符合的我们的直观感受的,因为我们是用训练集去估计整个的假设空间,因为N越大,Ein接越接近于Eout。

     

      然而在做classification的时候,我们还有更好的选择,logistic regression,它的输出可以理解为x属于某个label的概率,因为他S型的曲线,在machine learning中,logistic regression出场率相当高,而在优化它的时候我们一般用交叉熵作为误差函数,这个推导有两种方法,我一般是用最大似然函数去理解的。

      

    cross entropy的梯度推导跟deep learning中的BP算法原理是一致的,他们都是基于链式法则来做的,然而有一次面试我还是没推出来,总之,还是要多去自己动手!

    有了梯度以后,在用GD或者SGD就能求出解了。

       接下来介绍了multiclass prediction的问题,大致有这几种:

        1、OVA,每次拿一类和其他的所有跑一个二分类算法,最后用得到的几个分类器去做分类。但会有unbalanced data的问题。

        2、OVO,每次挑选出两类进行计算,相比于OVA算法,效率更高,但是需要更多的space并且预测和训练的时候都会慢一点。

        3、直接用LR或者SVM做多分类,这个应该是比较常见的,因为DL网络中最后的输出通常就是softmax或者muliti svm的loss。

      下面是关于non-linear的一个关键概念,有时候有些数据我们只能用non-linear的函数才能把它们分隔开,这时候最好的理解,不是说在xy空间作出一个圆,而是在x平方和y平方的空间里做linear的classification。

      

      因此大多数nonlinear的分类我们就可以分为两个步骤:1、先做feature transform 2、然后在做linear的分类。

      实际上当然没这么简单...因为在做特征转换的时候你会发现,你不知道该怎么做,这个后期的衍生就是曾经相当火的kernel method(说得不太准确,只能说核方法是其中的方法,特征工程当然是一个很大的问题,各种特征筛选,转换还是有很多东西的)。

      下图将特征转换和vc bound联系起来了,因为总共只有d+1个变量,所以肯定不能shatter d+2的input,所以dv<=d+1.

      

    关于dvc和error的问题,下图说常见的了,简单的解释:模型不是越复杂越好,因为会overfitting。

     

     

  • 相关阅读:
    day20:正则表达式
    day19:os模块&shutil模块&tarfile模块
    zynq之TF卡写入常见问题
    verilog之random
    quartus之ram的IP测试
    verilog之readmemb
    verilog之monitor
    verilog之display
    源自opencore的fifo的IP核解析
    veriog之四位全加器
  • 原文地址:https://www.cnblogs.com/daihengchen/p/5897607.html
Copyright © 2020-2023  润新知