【tensorflow2.0教程 常用操作集合系列4】损失函数正则化—tf2.0如何解决模型过拟合问题

在tensorflow2.0建模系列教程中,前三节我们用代码演绎了:
1如何用tf2.0进行自定义层网络的设计(add.weight)
2如何用tf2.0进行自定义模型的设计(Model)
3如何用tf2.0实现loss函数和参数调优(loss gradient optimizer)
本节系列四主要是教大家如何运用tf2.0来解决神经网络模型训练过程中常出现的过拟合问题。我们都知道模型训练出来经常出现两种问题,欠拟合和过拟合。当神经网络设计的过于复杂时,就容易发生过拟合问题。那么如何避免神经网络模型训练中的过拟合呢?像机器学习模型里在最后损失函数中运用L1、L2正则化可以吗?答案是NO。
首先这里我们再简单复习下机器学习的正则化方法:

J(θ)+ λ *R(w)

在损失函数中加入刻画模型复杂程度的指标,假设模型的损失函数为J(θ),那么我们在使用优化算法来优化损失函数的时候,不是直接优化J(θ),而是优化J(θ)+ λ *R(w)。其中R(w)是指模型的复杂程度,λ表示模型复杂损失在总损失中的比例。需要注意的是这里的θ表示的是一个神经网络中的所有参数,它包括权重和偏置。一般来说,模型复杂度只由其权重(w)来决定。而常用的来刻画模型复杂度的函数R(w)有两种,一种是L1正则化,另外是L2正则化,表达如下:

L1正则化:

在这里插入图片描述

L2正则化:

猜你喜欢

转载自blog.csdn.net/weixin_37479258/article/details/100921757