Tensorflow2.x框架-缓解过拟合

                                                                缓解过拟合

 

博主微信公众号(左)、Python+智能大数据+AI学习交流群(右):欢迎关注和加群,大家一起学习交流,共同进步!

一、欠拟合与过拟合

    

    1、欠拟合:模型不能有效拟合数据集,是对现有数据集学习得不够彻底。

    2、过拟合:模型对当前数据拟合的太好了,但对从未见过的新数据,却难以做出正确判断,模型缺乏泛化力。

    上面三张图可以让我们直观的理解欠拟合、正确拟合和过拟合。从图上看,欠拟合这条曲线没能有效表征这些数据点;正确拟合这条曲线表达了这些点的分布;过拟合这条曲线虽然表达出了每一个数据点,但模型泛化性弱。

二、欠拟合的解决方法

    1、增加输入特征项

        增加输入特征项,给网络更多维度的输入特征。

    2、增加网络参数

        扩展网络规模,增加网络深度,提升模型表达力。

    3、减少正则化参数

三、过拟合的解决方法

    1、数据清洗

        对数据进行清洗,减少数据集中的噪声,使数据集更纯净。

    2、增大训练集

        增大训练集,让模型见到更多的数据。

    3、采用正则化

    4、增大正则化参数

四、正则化缓解过拟合

    正则化在损失函数中引入模型复杂度指标,利用给w加权值,弱化了训练数据的噪声(一般不正则化b)。

    

    loss_{L1}(w)=\sum _{i}\left | w_{i} \right |                loss_{L2}(w)=\sum _{i}\left | w_{i}^{2} \right |

    1、正则化的选择:

        L1正则化大概率会使很多参数变为零,因此该方法可通过稀疏参数,即减少参数的数量,降低复杂度。

        L2正则化会使参数很接近零但不为零,因此该方法可通过减小参数值的大小降低复杂度,可以有效缓解数据集中因噪声引起的过拟合。

    2、实战示例:

        现有如下数据集文件:

        

        ......

        -0.380472    -0.21714    ?

        这个文件有3列数据:x1、x2 和 y_c。其中 x1、x2 是输入特征,y_c 是它们对应的标签。我们先观察一下这些数据,如果再给我们一组 x1、x2,我们能否判断出对应的标签应该标1还是标0?

        我们要让神经网络拟合输入特征x1、x2与标签的关系,模型训练好之后,再由数据送入神经网络,神经网络会经过前向传播,输出预测值,自动判断是1的可能性大还是0的可能性大。

        把x1、x2分别作为横纵坐标把数据可视化出来,所有标签位1的点标记为红色,所有标签为0的点标记为蓝色,让神经网络画出一条线区分红色点和蓝色点。思路:

            

            a、先用神经网络拟合出输入特征x1、x2与标签的函数关系;

            b、生成网格,覆盖这些点;

            c、把这些网格的交点(横纵坐标)作为输入送入训练好的神经网络;

            d、神经网络会为每个坐标输出一个预测值,我们要区分输出偏向1还是偏向0,可以把神经网络输出的预测值为0.5的线标出颜色,这条线就是1和0(红点和蓝点)的区分线。

        (1) 未使用正则化:

            

            图像轮廓不够平滑,存在过拟合现象。

            

            

            

            

            

            

            

            

            

        (2) 使用L2正则化缓解过拟合

            

            加入了L2正则化的曲线更为平缓,有效的缓解了过拟合。

            只需要在训练过程中加入L2正则化即可:

            

        

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值