机器学习基石笔记(三)

三、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。

 

 

 

 

 

posted @ 2016-09-22 19:23  亦轩Dhc  阅读(435)  评论(0编辑  收藏  举报