QA模型选择,欠拟合和过拟合
- 问题1:我感觉svm从理论上讲应该对于分类分体效果不错,和神经网络想比,缺点在哪里?
- 问题2:老师,除了权重衰减,dropout,还可以介绍一些其他技巧吗?比如BN,模型剪枝、蒸馏等等
- 问题3:训练误差是training dataset?泛化误差是testing dataset?
- 问题4:SVM和神经网络相比,各自有什么优缺点?
- 问题5:老师,训练、测试、验证三个数据集的划分比例和标准是什么?如果是比赛的话,不知道测试数据集的分布,怎么设计验证集和测试集?有什么指导原则吗?
- 问题6:不是用trainingset和testingset来看overfitting和underfitting吗?
- 问题7︰老师,如果是时间序列上的数据,训练集和验证集可能会有自相关,这时候应该怎么处理呢?
- 问题8:验证数据集和训练数据集的数据清洗(如异常值处理)和特征构建(如标准化)是否需要放在一起处理?
- 问题9:老师,深度学习一般训练集合比较大,所以K则交叉验证在深度学习中是不是没什么应用?训练成本太高了吧?
- 问题10:为什么cross validation就好呢,他其实也并没有解决数据来源的问题?
- 问题11∶老师,可以理解为共有训练数据集、验证数据集、测试数据集三种数据集吗?
- 问题12∶k则交叉验证中的k怎么确定?有什么方法吗?
- 问题13:老师,模型参数和超参数不一样吗?
- 问题14: cross validation每块训练时获得的最终模型参数可能是不同的这时候要怎么说明道理?应该选哪个模型?
- 问题16:所以是出现了overfitting或者underfitting才需要hyperparametertraining吗?
- 问题17:老师,如何有效设计超参数,是不是只能搜索?最好用的搜索是贝叶斯方法还是网格、随机?老师有推荐吗?
- 问题18:假设我做一个二分类问题,实际情况是1/9的比例,我的训练集两种类型的比例应该是1/1还是1/9?
- 问题19∶k折交叉验证的目的是确定超参数吗?然后还要用这个超参数再训练一遍全数数据吗?
- 问题20∶所以validation出现的误差是什么误差?
- 问题21∶为什么svm一开始打败了多层感知积,后来深度学习cnn又打败了svm呢?
- 问题22:老师,所有的验证集上的loss曲线都是这种先下降后上升的吗?为什么网上大部分的图都是一直下降的?
- 问题23∶模型容量一般指的是什么?
- 问题24∶随机森林在深度学习中有什么常见应用吗?
- 问题25:在做K折交叉验证时,会训练K次,请这K次的训练出来的模型能不能融合起来,会不会比单个模型有更好的表达能力?
- 问题27∶拥有无限VC维的算法是什么?
- 问题30∶K折交叉验证是第一次分完后,就确定分组了是吗?如果每次都随机打乱数据,取出1/n做验证,应该是另一种方式吧。两种方式有没有什么区别,还是一般来说是都差不多呢?
- 问题31∶老师说的神经网络是一种语言,意思是利用神经网络去对万事万物建模吧?就是指的它理论上能拟合所有函数?
- 问题33∶数据集中噪声比例多少最好?还是清除所有的噪声吗?
- 问题34︰如果训练是不平衡的,是否要先考虑测试集是否也是不平衡的,再去决定是否使用一个平衡的验证集?
问题1:我感觉svm从理论上讲应该对于分类分体效果不错,和神经网络想比,缺点在哪里?
- SVM很难做到百万的数据量,但是通过多层感知机很容易做到一百万,一千万的数据量。当数据不大,在百万以下时的问题时,使用SVM是比较容易解决的
- SVM的可调性不大,调整参数对结果改变不大
- 神经网络的优点在于它是一门语言,可以通过对神经网络的编程,来描述我们对整个问题或者整个世界的理解。神经网络是不那么直观,但是编程性很好的框架,例如可以自动求导,求梯度等。能够比SVM解决更多的问题
- 神经网络可以通过卷积做到更好的特征提取
问题2:老师,除了权重衰减,dropout,还可以介绍一些其他技巧吗?比如BN,模型剪枝、蒸馏等等
问题3:训练误差是training dataset?泛化误差是testing dataset?
严格来说,泛化误差是未来存在,但是选择不在手上,只能使用一次的 dataset 的误差
问题4:SVM和神经网络相比,各自有什么优缺点?
同1
问题5:老师,训练、测试、验证三个数据集的划分比例和标准是什么?如果是比赛的话,不知道测试数据集的分布,怎么设计验证集和测试集?有什么指导原则吗?
- 测试数据集和验证数据集的分布很有可能是不一样的
- 在假设数据集是独立同分布的情况下,数据集够大就行了,没有更多的区别。可以将数据集分为两半,一半做测试数据,一半做训练数据,在训练数据上还是做K折交叉验证
问题6:不是用trainingset和testingset来看overfitting和underfitting吗?
问题7︰老师,如果是时间序列上的数据,训练集和验证集可能会有自相关,这时候应该怎么处理呢?
时序序列首先需要保证测试集在训练集之后的,例如股票序列,可以将一个星期的数据作为验证集,这个星期之前的数据将全为训练集。
问题8:验证数据集和训练数据集的数据清洗(如异常值处理)和特征构建(如标准化)是否需要放在一起处理?
- 可以看具体情况而定
- 如果能够拿到训练数据集的数据,那也可以一起处理,在实际应用中这样差别不大。
- 如果拿不到训练数据集的数据,那就算训练数据集上的均值的方差
问题9:老师,深度学习一般训练集合比较大,所以K则交叉验证在深度学习中是不是没什么应用?训练成本太高了吧?
训练成本较高,可以使用在数据量不大的数据集上
问题10:为什么cross validation就好呢,他其实也并没有解决数据来源的问题?
cross validation只是解决超参数的,不能解决数据来源问题
问题11∶老师,可以理解为共有训练数据集、验证数据集、测试数据集三种数据集吗?
数据集其实是一个,但是可以将数据集划分,不同的数据做不同的事情
问题12∶k则交叉验证中的k怎么确定?有什么方法吗?
K越大效果越好,但成本越高,所以选择K应该选择能在你承受成本内最大的K
问题13:老师,模型参数和超参数不一样吗?
不一样,模型参数是指W,B元素的值,超参数是模型参数以外的,人工来选的参数
问题14: cross validation每块训练时获得的最终模型参数可能是不同的这时候要怎么说明道理?应该选哪个模型?
问题16:所以是出现了overfitting或者underfitting才需要hyperparametertraining吗?
调参都是要调的,出现了overfitting或者underfitting只是告诉你参数好不好
问题17:老师,如何有效设计超参数,是不是只能搜索?最好用的搜索是贝叶斯方法还是网格、随机?老师有推荐吗?
网格是遍历,贝叶斯常用在大数据上
问题18:假设我做一个二分类问题,实际情况是1/9的比例,我的训练集两种类型的比例应该是1/1还是1/9?
数据量不大时,验证数据集应该1/1分类,避免模型偏好数据多的那一类。因为如果不平衡,按1/9,那结果直接显示9的类别,那准确度就直接有90%了。
问题19∶k折交叉验证的目的是确定超参数吗?然后还要用这个超参数再训练一遍全数数据吗?
- 一种是k折交叉验证确定超参数,然后用这个超参数在整个数据集上重新训练一遍
- 第二种是不再重新训练,而是取出精度最好的模型拿出来
- 第三种将K个模型全部拿出来,预测时将测试数据集放到K个模型中,每一个预测一次,将预测结果求均值,坏处是预测时代价是K倍,好处是增加模型稳定性
问题20∶所以validation出现的误差是什么误差?
验证误差
问题21∶为什么svm一开始打败了多层感知积,后来深度学习cnn又打败了svm呢?
流行,学术界就是时尚界
问题22:老师,所有的验证集上的loss曲线都是这种先下降后上升的吗?为什么网上大部分的图都是一直下降的?
- 这种大图上每一个点是一个模型,而不是epoch。注意下标是模型容量
- loss函数是右上方的,一个模型通过不断学习减少loss
问题23∶模型容量一般指的是什么?
模型能够拟合函数的能力
问题24∶随机森林在深度学习中有什么常见应用吗?
训练多种模型,包括随机森林的,然后比较好坏。
单纯把随机森林结合深度学习比较少,因为梯度不好传递
问题25:在做K折交叉验证时,会训练K次,请这K次的训练出来的模型能不能融合起来,会不会比单个模型有更好的表达能力?
是的,稳定度更好
问题27∶拥有无限VC维的算法是什么?
正常深度学习的都是无限维
问题30∶K折交叉验证是第一次分完后,就确定分组了是吗?如果每次都随机打乱数据,取出1/n做验证,应该是另一种方式吧。两种方式有没有什么区别,还是一般来说是都差不多呢?
随机打乱一次就不打乱了
问题31∶老师说的神经网络是一种语言,意思是利用神经网络去对万事万物建模吧?就是指的它理论上能拟合所有函数?
- 理论上能拟合所有函数,但实际上不一定能做到。
- 深度神经网络就是尽量通过神经网络来描述各种特性,使更好训练。即用神经网络来描述对问题的理解
问题33∶数据集中噪声比例多少最好?还是清除所有的噪声吗?
噪音越少越好,只是我们现在是人工数据集,为了仿真,所以添加了一些噪音
问题34︰如果训练是不平衡的,是否要先考虑测试集是否也是不平衡的,再去决定是否使用一个平衡的验证集?
- 情况一:实际上真实中数据的分布也是如之前一样1:9,那就做好90%,剩下10%尽量做好
- 情况二:如果只是因为你数据收集没有做好,导致数据分布不平衡。那就要么复制较少的样本,或者对较少样本在loss中进行加权