前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytorch-过拟合与欠拟合(下)

pytorch-过拟合与欠拟合(下)

作者头像
用户6719124
发布2019-11-17 21:59:38
7990
发布2019-11-17 21:59:38
举报

在对一数学分布进行学习时,会优先构建出不同类型的模型,比如为上图中的多项式。

对于不同次方的数学函数,次幂数越高所构建出的图像也越复杂、抖动越大、波浪越多。

那么如何衡量不同模型的学习能力呢,我们将这个能力叫为:model capacity。正常上认为次幂数越高可表达的能力越大。目前随着硬件技术的发展,能构建的神经网络结构也越来越深。从以往数据来看,具有8个神经层的AlexNetd的数据量可以达到60MB,具有19个神经层的VGG网络的数据量大概为250MB左右,而在2015年新研究出的ResNet的152个神经层的数据量要多个GB的数据量,从而具有更高的学习能力,反映出更高维的特征。

那么在进行模型描述时会有以下几种情形出现:

预测函数 < 真实模型时,我们叫这种现象为under-fitting,如下图所示

如该图所示,实际模型曲线为蓝线,而所做出的的模型函数为红线,则这种现象即为发生under-fitting现象,我们将该现象认为是预测函数模型的表达能力不够。

另外在后续要讲解的WGAN网络中,也会有这样的现象发生。

在WGAN的早期版本中会将模型的复杂度约束下来,如上图中预测出的模型均没有实际模型复杂。

那么underfitting是如何判断出来的呢?(1)train loss的效果、accuracy正确率不好,即train loss和accuracy到达某一位置后便不再波动。(2)test accuracy的效果也不好。增加模型复杂度便会解决以上问题。

与上述问题相反的是over fitting(过拟合)。

较圆滑的蓝线为实际模型曲线,而橙线为预测的函数模型曲线,它会将每个点都穿过,甚至在边缘上的点也不放过。这时表明预测模型函数的复杂度过高,从而会趋近于包含每一个点,这样会导致train的效果会非常好,但在test的效果反而不好。

Over fitting的判断方法是:train loss 和 accuracy 表现的非常好,但test accuracy效果却不好。

上图可以更直观的了解他们的模型曲线,由各个曲线的特点可以看出模型区分的好坏。

在我们实际研究中,遇到over fitting的情况会更多一些,因为计算机的性能越来越强,很容易网络的表达能力超过模型的复杂程度。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python pytorch AI机器学习实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档