Can you do some statistical analysis to prove that the characteristics of the 2nd test set is different from others? novavista 发表于 5/1/2020 10:13:56 AM
1. 我不太了解你们的predictors/features这600个维度或者1800个维度是怎么得到的。假如是有可能得到1800维的features,那么一开始是怎么选出的这600维呢?这里面的降维或者人工筛选过程,会不会损失一定的信息?我猜这就是A的建议背后的道理。你的担心的curse of dimensionality也不必要,因为这其实正是deep learning相对传统算法的优势。依照你说的数据量应该够了。
cross-validation本质是什么?不就是解决overfitting,generalize到新数据效果不好的问题吗, which is exactly your problem. 只观察learning curve,那就相当于选择loss越小越好的model,就容易出现overfitting。当然你也可以先试试其他的technique,比如增加dropout layer之类的。good luck!
cross-validation本质是什么?不就是解决overfitting,generalize到新数据效果不好的问题吗, which is exactly your problem. 只观察learning curve,那就相当于选择loss越小越好的model,就容易出现overfitting。 Giovanna 发表于 5/1/2020 10:54:00 AM
我们是个ds组,我是新来的,其它三个比我senior。我组会讲自己的project。我建了一个cnn模型,完全独立的测试数据结果很好。应用到第一组新数据结果也很好,应用到第二组新数据的时候效果变差了。我检查过learning curve,没有overfitting。我提出问题是training data set 不够representative,解决办法是collect more diverse data set,并且提出该怎么collect more diverse data set。进一步分析这是一种data extrapolation的问题。可能发生的现象是:第二组有些需要预测的点落在training data set cover的范围之外导致cnn效果变差。然后我进一步解释说对于high dimensional X (600 个predictors),这种data extrapolation很容易发生,每个维度只有2个可能性,那整个数据空间就是2^600,事实上每个维度远不止2个,那这个空间更大。所以就算我们有3,000,000 training sample,也有可能发生data extrapolation这种问题。
我们组有其它三个ds发表了他们的看法: A: 他说这是我的training data set 不够representative,没有把所有可能的关系包括进去。所以我需要add more predictors (features) into X,我现在的predictors (features) X 是600 个,我需要增加到1800个(注意:数据不变)。。。 我的看法是:add more predictors (features) 根本没有必要,也解决不了问题。如果feature不够,validation error和testing error 就会很差。再说add more features 有个curse of dimensionality的问题,需要的sample size是exponentially的增加。还有对于神经网络这种用gradient descent 找到cost function的极值点的算法。add more features只会增加神经网络的学习难度而导致模型效果变差。关键是解决不了问题。
Keep your expectation low, 职场上技术好人品好的前辈可遇不可求。遇到了就珍惜机会多学点。大多数爬上去当boss得都不是技术最好的。满嘴跑火车不懂装懂的大有人在。 一个问题n种声音太正常了,如果你是做data visualization tool的更崩溃,每个人都有自己的想法。如果你是boss就可以选自己认为对的方案,新人肯定是尽量听取各方意见,然后side by side 把结果呈现出来,让seniors们决定。
这两个问题的表现都是model generalize不好,不过本质是不一样的。overfitting可以通过work on model来解决,比如reduce model complexity。可是extrapolation只能work on data。要么collect more diverse data, 要么data augumentation。
xiaofengxian 发表于 5/1/2020 11:35:48 AM
嗯,你说的对,我只想到了它们overlap的那部分。比如用polynomial,overfitting通常是次数太高,但是扩大数据范围之后也就能避免这个问题。现在的情况是extrapolation效果不好,如果collect more diverse data成本太高的话,也就只能先work on model吧,比如本来用poly的改成用exponential。我只是打个比方。
我们是个ds组,我是新来的,其它三个比我senior。我组会讲自己的project。我建了一个cnn模型,完全独立的测试数据结果很好。应用到第一组新数据结果也很好,应用到第二组新数据的时候效果变差了。我检查过learning curve,没有overfitting。我提出问题是training data set 不够representative,解决办法是collect more diverse data set,并且提出该怎么collect more diverse data set。进一步分析这是一种data extrapolation的问题。可能发生的现象是:第二组有些需要预测的点落在training data set cover的范围之外导致cnn效果变差。然后我进一步解释说对于high dimensional X (600 个predictors),这种data extrapolation很容易发生,每个维度只有2个可能性,那整个数据空间就是2^600,事实上每个维度远不止2个,那这个空间更大。所以就算我们有3,000,000 training sample,也有可能发生data extrapolation这种问题。
我们组有其它三个ds发表了他们的看法: A: 他说这是我的training data set 不够representative,没有把所有可能的关系包括进去。所以我需要add more predictors (features) into X,我现在的predictors (features) X 是600 个,我需要增加到1800个(注意:数据不变)。。。 我的看法是:add more predictors (features) 根本没有必要,也解决不了问题。如果feature不够,validation error和testing error 就会很差。再说add more features 有个curse of dimensionality的问题,需要的sample size是exponentially的增加。还有对于神经网络这种用gradient descent 找到cost function的极值点的算法。add more features只会增加神经网络的学习难度而导致模型效果变差。关键是解决不了问题。
A. 加feature没有什么问题,有可能有些很有用的feature没有加进来,加进来之后做Feature Selection或者Dimension Reduction来减少减少feature数量避免Dimensional Curse. 你既然用了CNN,指定CNN处理后的vector size也算是一种Dimension Reduction的方式,初始的feature数量多一些问题不大。 B. 用Learning Curve问题不大,足够了,只是有问题的话没法定量的看出来。 C. 数据足够大的情况下是对的,数据量不够的话就不好说了,既然他们给了建议,如果有资源的话就run一下,我们做完preprocesing之后要做一下model selection,这个还是比较能说明问题的,如果大部分model的表现都一样,那刚好说明数据量够了,用哪个model都好,如果有哪个model表现好,那选定之后再做grid search来delivery一个最终的model。
嗯,你说的对,我只想到了它们overlap的那部分。比如用polynomial,overfitting通常是次数太高,但是扩大数据范围之后也就能避免这个问题。现在的情况是extrapolation效果不好,如果collect more diverse data成本太高的话,也就只能先work on model吧,比如本来用poly的改成用exponential。我只是打个比方。
A. 加feature没有什么问题,有可能有些很有用的feature没有加进来,加进来之后做Feature Selection或者Dimension Reduction来减少减少feature数量避免Dimensional Curse. 你既然用了CNN,指定CNN处理后的vector size也算是一种Dimension Reduction的方式,初始的feature数量多一些问题不大。 B. 用Learning Curve问题不大,足够了,只是有问题的话没法定量的看出来。 C. 数据足够大的情况下是对的,数据量不够的话就不好说了,既然他们给了建议,如果有资源的话就run一下,我们做完preprocesing之后要做一下model selection,这个还是比较能说明问题的,如果大部分model的表现都一样,那刚好说明数据量够了,用哪个model都好,如果有哪个model表现好,那选定之后再做grid search来delivery一个最终的model。
我有损失啊,浪费了时间,影响了进度,最后是算在我的头上的。
。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。
cross-validation本质是什么?不就是解决overfitting,generalize到新数据效果不好的问题吗, which is exactly your problem. 只观察learning curve,那就相当于选择loss越小越好的model,就容易出现overfitting。当然你也可以先试试其他的technique,比如增加dropout layer之类的。good luck!
。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。
而且站在老板的角度,他宁可让你先exhaust各种方法把模型调好,不会一上来就让你加新数据。因为那个不但costly,你也没办法证明数据量上去了效果就会更好。很多时候其实就是模型还没搞好。
。。。。。。。。。。。。。。。。
谢谢mm的发言!我也希望是,这样的话,问题简单多了!
你同事的意见我也看的云里雾里,可能你得把解决的问题再具体一点说下,比如data是images?text?CNN要加feature是啥操作,不能是hand crafted features吧。。。还有GAN也可以用?你们要generate synthetic data?
。。。。。。。。。。。。。。。。。。。。。
extrapolation后效果差不就是overfitting?increase sample size和ensemble modelling能解决overfitting的前提就是扩大了predictors的取值范围,原本是extrapolation的现在就不是了。
其实数据处理没有一定之规,不要太教条了。特别是你现在并不是100%确定问题出在哪里的时候,多试几个alternative我看不出什么坏处,除了的确花时间。如果你真的确定你的方法更能解决问题,你也不需要求助了吧
re 多好的senior啊
。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
从职场角度来说,人家付钱给你让你干活,你就干啊。而且你也多试试,尤其是在事业早期,看看结果,都是个学习过程。而且如果事实证明你对了,那不就是对你知识能力的有力证明吗?
试试别人的建议,有什么不好。 除非你的项目非常time sensitive。
。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。
Keep your expectation low, 职场上技术好人品好的前辈可遇不可求。遇到了就珍惜机会多学点。大多数爬上去当boss得都不是技术最好的。满嘴跑火车不懂装懂的大有人在。 一个问题n种声音太正常了,如果你是做data visualization tool的更崩溃,每个人都有自己的想法。如果你是boss就可以选自己认为对的方案,新人肯定是尽量听取各方意见,然后side by side 把结果呈现出来,让seniors们决定。
。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。
嗯,你说的对,我只想到了它们overlap的那部分。比如用polynomial,overfitting通常是次数太高,但是扩大数据范围之后也就能避免这个问题。现在的情况是extrapolation效果不好,如果collect more diverse data成本太高的话,也就只能先work on model吧,比如本来用poly的改成用exponential。我只是打个比方。
A. 加feature没有什么问题,有可能有些很有用的feature没有加进来,加进来之后做Feature Selection或者Dimension Reduction来减少减少feature数量避免Dimensional Curse. 你既然用了CNN,指定CNN处理后的vector size也算是一种Dimension Reduction的方式,初始的feature数量多一些问题不大。
B. 用Learning Curve问题不大,足够了,只是有问题的话没法定量的看出来。
C. 数据足够大的情况下是对的,数据量不够的话就不好说了,既然他们给了建议,如果有资源的话就run一下,我们做完preprocesing之后要做一下model selection,这个还是比较能说明问题的,如果大部分model的表现都一样,那刚好说明数据量够了,用哪个model都好,如果有哪个model表现好,那选定之后再做grid search来delivery一个最终的model。
你的问题是你现在有600个samples,600个features,训练出来的模型对第一组数据有效,对第二组数据效果不够好。很显然你这600个features没有很好地represent全部的samples的特征,所以A给你的建议增加feature是对的。你可以增加到1800,但是你只有600个samples,用1800个feature去train model效果必然不好。你需要做一个feature selection,把1800个feature压缩到100-200甚至更少,你训练的模型才有意义。
其次,你总共才600个样本,模型不能太复杂,你能训练一天,可见你的模型参数太多了。建议你先做feature selection,用较少的features和简单的模型做crossvalidation。cross validation 能很好地解决overfitting的问题。所以B的建议也是正确的。C的建议是换个模型,其实也是给你多一个选择。如果你不能证明你的模型是最优的,那就尝试一下其它的选择。
你现在只要600个samples,就算你老板原因给你增加样本量,double或者triple一下,不会对你的模型的提高有质的飞跃。所以还是在feature和model上下功夫比较好。
。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。
小姑娘别急,人家的意见大体也是对的,cross validation最重要的目的就是尽量用所有的data,因为一般的train/test分组会减少数据量,这在数据量小的时候很重要,但是因为大家现在都玩大数据,这样cross validation的作用就不是那么明显了,一般来说train/validation/test分组就够了。
。。。。。。。。。。。。。。。。
明白了。从你举的例子来看你同事的说法不一定完全没道理—听起来是从video里抓出来的图?如果是的话,我的理解是增加feature有用没用主要取决于context是不是有用吧,比如上一帧有猫这一帧很可能也有?当然同时也可能引入更多的noise
你把你的training set, test set,第一组新数据,第二组新数据分别画个分布图,看看他们的分布是不是一致的。
。。。。。。。。。。。。。。。
情况有很多,比如说你现有features已经足够描述第一组数据了,但是不足够描述第二组数据,简单的说把第一组和第二组数据合在一起当作一组数据的时候现有feature数量不够了。
但是video是可以tracking的, 也是可以预测的。
我之前做车牌识别和human pose,
比如人走进了门里面,但房子里面有窗户,当人在窗户出现时,也是可以根据之前的tracking预测
不可见的pose
。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。
你先用最简单的PCA提取出前两维或者前三维的feature画画图试试。
刚才看到你说你的sample有几百万个。那你还要什么新的数据啊,这几百万个足够你训练了。A建议你增加feature到1800更没有什么问题了。
。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。
我为什么觉得lz和其他人对feature和sample的理解和大多数人的理解不一样?samples应该是你的图像数量,features是你用来预测的variables的数量,对于image来说,就是image 的pixel数量。 提个建议供lz参考,lz的模型对第一组有用,对第二组没用,那就是training的时候数据不具备足够的代表性。一种方法是你在一开始就能够保证你的training set包括第二组,第三组。。。第n组数据,但一般这可能一开始达不到。另一种方法是拿到第二组数据一看不行,那就在第一组数据work的那个模型的基础上再用第二组数据re-training原来那个模型,以达到re train之后的模型能兼容预测两组数据。
这说明训练集和第一组数据 与 第二组数据的分布完全不一样,你的模型的输出自然也不一样。你把第二组数据的彩色图转化成灰度图再输入你的模型试试。
。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。