ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

过拟合、欠拟合问题

2021-12-27 19:33:51  阅读:119  来源: 互联网

标签:SVM 训练 验证 可以 问题 神经网络 拟合 数据


1. SVM分类效果相对于神经网络并不是很差,那它的缺点在哪里?答:SVM通过kernel匹配模型复杂度,用kernel算起来并不容易,SVM很难做到100万等大的数据量;但是对于多层感知机等通过梯度下降很容易做到很大的数据量1000万,一个亿或更多等。

在数据量少的时候,几千个,几万个点SVM还可以,但是太大了就不行了。此外,SVM能调节的东西不多,就是一个很平滑的东西;你可以调一下kernel的宽度,或不同的kernel;但是调来调去基本没什么效果,SVM的可调性不是很好,或者反过来说,想了解SVM的缺点,

你就想想神经网路的优点是什么;神经网络本身可以看作一个语言,不同的layer就是里面的小工具,不同的layer可以连起来;可以是for loop,可以一句一句写出来;通过神经网路这种语言,我们可以通过其编程,来描述对整个物体、世界和对整个要解决问题的理解。神经网络其实是一个比较不那么直观的,但是编程性比较好的一种框架,可以做很灵活的编程,反正自动求导把梯度能求出来就行了。 相对于其他的机器学习模型比如SVM,SVM有很好的数学解释,但是编程性就差了很多。也即SVM可解决的问题就会比神经网络少很多;当然如果

纯从分类角度来说SVM确实也不错,问题不大;除了scale不上去之外,SVM做ImageNet就很难很难,但是神经网路确实可以做到很大的数据集。。另外,神经网络可以通过卷积做比较好的特征的提取SVM可以简单的看成说SVM需要做特征的抽取和SVM本身是个分类器;但

神经网络特征的提取和分类是放在一起做的,也即一起通过神经网络来表达,可以真正的做原始数据集上的end-to-end的训练。

2. 模型剪枝和蒸馏Distillation其实不是真的给你做规约,并不是让你模型精度减少,只是让你得到一个比较小的模型,以方便部署(模型轻量化)。validation dataset可以用来调超参数,但是testing data 则是用一次就没了,泛化误差在testing dataset上测得的。

3. 比如可以选择30%作为测试数据,70%的数据作为训练数据;在70%的数据里面做一个5折的交叉验证,也即每一次只拿70%数据中的20%作为验证数据集,然后做5次,这是最常用的。或者:你的数据多的话,你可以训练和测试数据各取一半,在训练数据集上还是做K折交叉验证;或者对ImageNet这种来说,假如有1000类,每个类有5000张,然后对测试数据集/验证数据集每个类随机挑50张出来,那就得到1000个类加一起的50000个图片的验证数据集,剩下数据集全部作为测试,这也是另外一种做法。另外使用valid dataset来看是否overfitting的。

4. 如果时序的数据,训练集和验证集会有自相关性,这时候怎么处理呢?答:时序序列数据要保证你的测试集是在训练集之后的,不能在中间站做,中间做肯定是不行的,(网友:把时序数据转化为监督学习),可以这样1到100的时序数据集,你用1到90作为训练,91到100作为验证这样的往后推的方法。这是一般的时序序列的做法。

5. 验证数据集和训练数据集的数据清洗(e.g. 异常值处理,特征构建(如标准化))是否需要放在一起处理?两种:1.标准化的话,数据减去其均值然后除以方差,涉及到均值和方差怎么算,有两种算法,一种是把训练和测试数据集等都拿过来放在一起算均值和方差,因为你没有看它的标号,你只看到了他们的值,在实际生产中很可能没问题;第二种方法是只在训练集上算均值和方差,然后把均值和方差作用到验证数据集上去,一般来说后者会保险一些,实际情况下,可以做、看。不过前面一种会好一些,实际的话,看你是否能拿到验证数据集的数据,能拿到的话就可以用第一种方法。

6. 深度学习一般训练集较大,K折交叉验证是不是没什么用?训练成本太高了吧?答:数据集不够大的情况下采用K折交叉验证,传统机器学习用K折较多;深度学习用的不多,因为比较贵。

7. 为什么cross validation就好呢?它也没解决数据来源问题?答:cross validation只是给你选择超参数的,它并不能解决其他问题。数据来源:你怎么采样数据使得它的分布比较好,不要跟训练集、验证集数据分布长的非常不一样这都不是cross validation做的事情,这些

都是data science来解决的;里面有挺大一块,比如怎么处理和爬取数据等。

8. K折交叉验证的K是怎么确定的?答:要在你能承受的计算成本里面。理论上K越大越好,但是你也要考虑计算成本,K大了你的计算成本也线性增长了。。

 

标签:SVM,训练,验证,可以,问题,神经网络,拟合,数据
来源: https://www.cnblogs.com/Li-JT/p/15737541.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有