台大林轩田·机器学习技法记要

台大林轩田·机器学习技法 记要


6/1/2016 7:42:34 PM



第一讲 线性SVM













广义的SVM,其实就是二次规划问题

把SVM问题对应到二次规划的系数

这就是线性SVM,如果想变成非线性,只要把x变成phi(x)就可以了,在基石中讲过。

题目:

SVM蕴含正则化

不同于PLA,SVM的VC维变小了

考虑算法的VC维(注意,以前讨论的都是hypothesis的VC维)

非线性SVM可以两全其美

题目:

小结:

下一讲讲求解非线性SVM


第二讲 对偶支持向量机

为了摆脱d(上面一个~)的束缚,想要构造一个等价的SVM

用Lagrange Multiplier解释正则化很经典,但是再次使用它来解决dual SVM时不是和先前正则化那样,预先知道lambda的(正则化相当于是使用拉格朗日乘子法把希望用户告知C转换成希望告知lambda,从而实现正则化,求解无约束的最小化问题),而是当做变量

easy:

题目:

min max >= max min的解释,不错!

强弱对偶关系

归化到只需要找最佳的alpha就可以了

用KKT反解w,b

题目:

变成最小化,发现其实是一个QP问题,所以可以套用二次规划的求解程式

等号约束可以用同时满足大于等于和小于等于来替代

最好使用特殊的为SVM定制的QP求解器

怎样由alpha得到w b呢,利用KKT即可。正是由于互补松弛条件得到了支持向量。

题目:

下图,听林老师的意思,边界上的SV和alpha>0时的SV不一定完全相同

SVM和PLA等算法,w都可以represented by data

似乎还是没哟摆脱d(上面一个~)的维数的影响,因为问题似乎转移到计算qm,n中去了,怎么解决呢,留给下一讲(下一讲会讲到用内积/kernel的思想)

题目:

小结:

下一讲讲kernel


第三讲 kernel SVM

SVM也会过拟合

题目:

linear kernel的cons and pros

polynomial kernel的cons and pros

gaussian kernel的cons and pros

合法核,mercer’s condition

题目:

小结:

下一讲讲怎么避免在kernel中overfitting


第四讲 软间隔SVM

hard margin SVM会过拟合

那就退一步,允许容错

软间隔SVM

下一个视频用拉格朗日乘子法推出对偶问题

题目:

拉格朗日对偶

简化

标准的软间隔SVM对偶问题

题目:

把kernel再加上去,可是,怎么求b呢?

求b,为了避免鸡生蛋,蛋生鸡的问题,找free SV,如果没有free SV,那么只能得到b的range(图片末灰色文字),,这个可以挖一下。。

软间隔SVM是很常用的,但是也会overfit, 所以要好好选参数

下面是关于alpha_n的解释,精辟!! 分成了non SV , free SV , bounded SV。。。

根据上一张图,可以完成下面这个题:

然后可以通过validation来选参数

可以用交叉验证

下面这个是SVM的留一交叉验证的一个结论(Eloocv只和SV的数量和N有关),证明也很有意思。

根据上面的结论所以可以用#SV来做一个safety check

题目:

小结:


第五讲 kernel logistic regression

想把kernel放到logistic regression中去?

回顾

变成无约束的形式

无约束形式似乎和L2正则化有点相似(天啊,突然感觉到正则化确实是一门很深学问啊!!),为什么不从正则化来引入SVM的原因是因为无约束形式不是QP问题(似乎是NP吧。。),不好引入kernel,而且不好求导不好解

SVM as regularized models,之所以用正则化的视角来看SVM,是为了方便将它联系与拓展到其他的模型

题目:

SVM的error又被称为hinge error(因为像一个门页)

SVM近似正则化的L2 logistic regression

正则化的logistic regression相当于解了soft margin SVM, 那么soft margin SVM 是不是也相当于解了logreg呢,也就是说预测值不是label,而是几率。(感觉好像有点道理,毕竟soft margin SVM 可以用距离margin的距离来衡量)

题目:

用SVM做soft二分类(返回的是概率而非0/1),两个朴素的想法, 但是都有不足:

一石二鸟,利用fine tune的思想,

总结出概率SVM,这是由Platt提出来的,实际的模型更加精细(下图灰色字体写出),不过大意类似。从而我们相当于利用kernel SVM间接(记住是间接,不是直接)地在Z空间中做了LogReg。那么,如果我们想真正的直接在Z空间中做LogReg的话,那该怎么做呢,这正是我们后面的问题。

题目:

下面讲真正的直接在Z空间中做LogReg。回忆起SVM之所以可以用到kernel是因为它可以转换成对偶问题的形式,然后发现只需要z空间的内积,然后就可以使用kernel等等。。。而logreg根本不是一个二次规划问题(有对数函数等等)。。。。事实上,在SVM中能够使用kernel trick的关键是,最佳的W可以展成z的线性组合。

那么什么样的w可以展成z的线性组合呢?可以给出一个数学定理representer theorem!证明方法经典且具有代表性(和周志华LDM论文中的证明思想相同,见我的CSDN博客)

结合下图,可以得出一般化的kernelized的思路!不想多说,这两张幻灯片实在经典!!!

换一种视角来看,把kernel的结果当做transform,同样的视角也可以用到SVM上

题目:

小结:

这一讲讲的kernel for logistic regression(讲得太好了!!!)下一讲讲kernel models for regression


第六讲 support vector regression

recap

ridge regression。。就是加了正则化吧。接下来想要看怎么求出解析解的kernelized ridge regression

easy

最小化无约束问题,求梯度。。然后就可以求出解析解了,至此,就可以解决用kernel解决非线性回归问题了,,回想以前解决非线性回归是先进行nonlinear transform然后再当做linear regression来解,而现在可以直接用kernel搞定

linear regression VS kernel ridge regression

题目:

LSSVM,但是它的SV很多,beta不稀疏,使得predition时比较难算,而标准的soft margin SVM的alpha则比较稀疏,那么…我们能不能像标准的SVM一样得到一个稀疏的beta呢?

tube regression

less effected by out liers,而且我们待会会看到,tube regression可以让我们得到sparse的solution

模仿之前SVM的推导

然后再仿照SVM,转换成对偶问题,摆脱对z空间的依赖

题目:

使用lagrange multiplier(从简)

然后就可以用相似的QP solver来求解

利用互补松弛条件就可以得出beta是sparse的

题目:

讲过的线性模型

知识图谱

但是实际中有的不常用

越强大的算法,越是要小心

题目:

小结:

这一讲讲的embedding numerous features:kernel methods,下一讲讲当你手上有许多ML算法时,怎么利用诸多算法,融合好处,调出一杯好的鸡尾酒


第七讲 Blending and bagging

motivation of aggregation

math formulation,最后一种包含前面所有

selection and aggregation的区别

为什么aggregation会更好。下图看出来aggregation似乎能同时做好油门(feature transform)和刹车(regularization)

题目:

先讲blending

uniform blending的理论分析,其实是概率统计中的一个常用的公式

uniform blending就是要减小variance

题目:

linear blending

去除constraint

为了减小VC维,不用Ein来选择g,而是用validation

any blending(不只是linear blending)

too easy

bagging(bootstrap aggregation)

g(上面一个-)是无法实现的

通过bootstrapping的机制(有放回地)从总的数据中每次随机抽取N个,从而得到Dt的一个估计,使virtual aggregation变成了physical aggregation。 给bootstrap aggregation起名为bagging(就好像打包一样),bagging是一种meta algorithm,是建立在base algorithm之上的

bagging pocket

题目:

小结:

next: getting more diverse hypothesis to make G strong


第八讲 adaptive boosting

从小学生认苹果开始,着重训练认错的水果样本,从而引入给数据weight的思想(从简)

引入正题:

太弱智了

把un放进算法也很容易,比如SVM和LR

怎么re-weight来得到尽量不同的g呢,在aggregation中就是希望各种g要尽量diversity

specifically,不错,这里的思想值得学习

题目:

于是,放缩因子

preliminary

linearly on the fly

adaptive boosting 又称 adaboost,皮匠法

下面的超级重要!!!弱学习与强学习 下面的性质成为boosting,adaboost是boosting的一种实现

题目:

下面用decision stump(一个弱学习器)为例来demonstrate

“切”一百刀就可以得到很理想的边界了,这种adaboost的方法是非常efficient的,比kernel还厉害

adaboost搭配decision stump最成功的应用是世界上第一个实时人脸识别系统中

adaboost stump一次只利用一个feature

小结:

已经讲过的bagging是uniform的aggregation,adaboost是linear的aggregation,下一讲讲conditional aggregation


第九讲 决策树

adaboost通过re-weight来获得不同的hypothesis,然后linear on the fly

递归视角看tree

理论保证少(heuristic,巧思多)但是useful

题目:

停止条件:

题目:

通过prun来regularizer

branching on categorical feature

题目:

题目:

小结:

以上把aggregation的基本模型都讲完了,下一讲讲怎么把这些aggregation的模型混起来用,aggregation of aggregation


第十讲 Random forest

关于RF,网上一个blog总结的很好!链接

randomness everywhere

题目:

题目:

feature selection

permutation test 不太懂??

题目:

random forest in action

题目:

小结:

这一讲总结来看:RF其实就是bagging+decision tree,为了制造更多diversifying trees,我们使用了投影的方法来选择只是用一部分feature,然后由于使用了bagging,所以可以由OOB,可以做self validation,再就是可以利用permutation和OOB来做特征选择,从实际应用来看,RF可以取得不错的效果,但是实际中应该使用多少棵树仍然是一个问题。(一般认为越多越好,详见上面第20张ppt)

这一讲主要讲的是bagging和decision tree的结合,下一讲会讲到boosting decision tree,基本上就是adaboost和decision tree的结合,但是我们还会讲一些延伸,不只是classification

PS:Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。Boosting是一种提高任意给定学习算法准确度的方法。它的思想起源于 Valiant提出的 PAC ( Probably Approxi mately Correct)学习模型。


第十一讲 Gradient Boosted Decision Tree

从RF到adaboost decision tree

Adaboost-stump=special case of Adaboost-Dtree

题目:

optimization view of adaboost

题目:

没看太懂。。。

搞懂了,实在是经典!!!总的来说,Adaboost可以看做steepest descent with approximate functional gradient

6/18/2016 8:57:48 AM

Gradient Boosting

GBDT其实就是Adaboost DT的regression版本

Summary of Aggregation Models

至此,所有要讲的aggregation models都讲完了

summary

下一讲讲怎么让我们的机器自动地学习到更多更复杂更不一样的特征转换,不仅是hypothesis类型的特征转换。


第十二讲 Neural Network

Motivation

powerfulness and limitations (XOR)

MLP

bio-inspired

题目:

接下来会讨论regression with squared error

对激活函数的讨论

对neural network的一种解释

题目:

Neural Network Learning

BP算法,实际中常用mini-batch

题目:

Optimization and Regularization

可能不是凸的,所以会陷入局部极值

NN的VC维

regularization 下面的weight-elimination regularizera不太懂。。

题目:

总结:


第十三讲 Deep Learning

Deep Neural Network

shallow v.s. deep

challenges and key techniques for DL

题目:

Autoencoder

题目:

Denoising Autoencoder

加一些regularization

robust autoencoder

题目:

PCA

这种引出很有新意

经典!

题目:

小结:


第十四讲 Radial Basis Function Network

题目:

RBF Network Learning

full RBF network

NN和KNN

下面的theoretical fact怎么证明呢?

可以推出Ein成0了,于是要regularize

另一种regularize的方法(找代表),下一讲会细讲

题目:

k-means algorithm

组合优化问题,迭代求解

于是乎,k-means登场

k-means配合RBF

这种方法未必比gaussian SVM NN 表现要好,但是思想很有教益

题目:

k-means and RBF in action

题目:

小结:


第15讲 Matrix Factorization

Linear Network Hypothesis

题目:

Basic Matrix Factorization

交替优化

题目:

SGD

题目:

Summary of extraction models

利弊

题目:

总结:


第十六讲 Finale

从利用feature的角度来看算法

下面这个很有新意

题目:

从优化的角度来看算法

Overfitting Elimination Techniques

题目:

ML in action

台大队伍取得优势的原因是会融合不同的算法(打果汁机)以及使用人类的domain knowledge

总结:

从三个角度看ML算法


完结!

感悟:林老师的课程给人一种不同于Andrew的视角来看ML,非常有体系而且独特,有些课程自己理解得还很肤浅,将来有机会一定要温故知新。

6/25/2016 18:38:34 PM

你可能感兴趣的:(machine,learning)