Finale-阿里云开发者社区

开发者社区> 人工智能> 正文

Finale

简介: Feature Exploitation Techniques 这几篇博客介绍的第一个feature transform方法就是kernel。kernel先出现是在SVM里面,原因就是为了减少 內积计算的复杂度,把特征转换和內积计算结合到一起。

Feature Exploitation Techniques

这几篇博客介绍的第一个feature transform方法就是kernel。kernel先出现是在SVM里面,原因就是为了减少 內积计算的复杂度,把特征转换和內积计算结合到一起。特征转换其实也是一种特征的提取。介绍过的kernel:polynomial kernel,Gaussion kernel,stump kernel。另外,不同的kernel相加或者是相乘做uniform或者是combination可以提取更加复杂的特征,比如Network。但是使用kernel是需要满足Mercer条件的,对称半正定。不同的kernel可以搭配不同的模型,SVM,SVR,probability SVM,或者是kernel ridge regression等等。之前学过的PCA,kmean这些算法都包括了內积的计算,所以它们各自也有对应的kernel函数,比如之前使用的Kmean是用的高斯距离,那么kernel就是Gaussion kernel了。

img_cd8a08d182820ce2476b532a7305b0ab.png

kernel是使用的第一种特征转换的方法,第二种方法就是aggregation了,之前介绍的所有的hypothesis都可以看做是一种特征转换,比如之前学过的decision tree,RBF Network。如果g是已知的,那我们可以把它们进行uniform的组合,non-uniform和conditional组合。如果g是未知的,那么我们就可以使用bagging或者Adaboost来建立模型。
img_5704af4c373a116a584fd7f26be58d5f.png

其实就是总结了一下aggregation model。特征转换是一种寻找特征的方法,特征提取是另外学习到的,提取出隐藏的特征,hidden feature。一般通过unsupervised learning,从原始数据中提取特征,有点像生成模型,先摸清楚数据的情况分布特点,再进行模型的建立。比如:聚类算法,kmeans,mean shfit等等,PCA都是。
img_9751dfe2869890c6ad8d887b02459190.png

另外还有一种就是维度的压缩了,其实有点像特征提取,因为维度压缩其实就是先看看哪一个特征重要,然后把重要的特征留下了,不重要的去掉,比较有代表性的就是PCA,autoencode,matrix factorization,这种方法可以把数据从高纬度降到低纬度是很有用的。
img_4902ac5719c7e19492d3a41b20ffa72c.png

顺带提一下,decision stump是遍历所有的维度看看哪一个维度分开的purity是最小的,random forest可以进行特征的重要性选择,通常也是随机选择一两个或者是做OOB特征重要性选择得到重要的特征。
总结一下特征处理的方法:
特征转换:可以使用kernel,aggregation
特征提取:matrix factorization,autoencode
降维:PCA,autoencode

Error Optimization Techniques

对于Ein的优化,首先第一个就是梯度下降或者是梯度上升,这两个方法都是比较常用的一次逼近方法,SGD、Steepest Descent和Functional GD都是利用了梯度下降的技巧。

img_63d3e336b7e1627e87e9f49ede1af34c.png

除了梯度下降,还有一些是做不了的,比如SVM的dual problem和α的求解,都是需要数学上的一些推导和技巧来转换成其他形式之后再处理。
img_24e6d58fc3c746894dd36e49001e6df8.png

如果原始问题比较复杂,可以拆分求解,拆分成多个子问题进行求解,比如multi-stage。另外也可以使用交叉迭代,matrix factorization的优化方法就是一种。刚刚拆分子问题的也就是分而治之的方法就是decision tree了。
img_f015b0412109e5980147ae38e618887f.png

最后再来探讨一下梯度下降方法,梯度下降是一次逼近的方法,意味着他只是求了一次导数,也就是Taylor展开一次,它的视野就只能看到一阶的地方,所以他选取的方向就是一阶的方向而已。对于另外一种optimization 方法牛顿法就不太一样。牛顿法的是二次逼近,意味着牛顿法它看的更加远,看的是再二次导数的地方哪个是最远的,当然牛顿法也可以Taylor三次展开,但是一般都是二次了,所以牛顿法比梯度下降迭代的更加快,因为它看的更加远,走的就更加稳。

Overfitting Elimination Techniques

Feature Exploitation Techniques和Error Optimization Techniques都是为了优化复杂模型减小Ein,但是Ein过小就会造成overfitting的问题。因此机器学习中过拟合的处理是非常重要的。
处理过拟合的方法之前介绍过:large margin,regularization,voting。


img_92a47f01f84ec00a1e0e5ffd3cf47cd9.png

除了上面提到的方法,还可以使用validation来处理


img_0768d211998df18a74671fcf25a19b38.png

这个章节的东西比较少,也没有什么代码,是看机器学习技法课程最后一张总结的了,最后贴一下十大data mining算法:
img_66111ae280eb908b2b708a6cf4d105d9.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章