【残差网络与正则化理解】

一、残差网络

1. 背景

  • 深层网络学习会得到表达能力更强的特征。越深的网络输出表示能力越强的特征。网络深层至关重要。但是深层网络会使每层输出中可用的特征数量增多(这里参考Inception v3)。

2.深层网络的影响

  • 增加深度会带来梯度爆炸和梯度消散,随着层数的增多,网络反向传播的梯度随着连乘会变得不稳定。或大或小。
  • 解决梯度消散的办法:使用BatchNorm,将激活函数换为Relu。等等(以后在补充)
  • 增加深度的另一个问题是网络的degradation,随着深度的增加,网络的性能越来越差,训练集上的准确率会下降。残差网络 解决了网络衰退问题。

3. 残差网络

上图,redidual模块会明显减少模块中的值从而让网络的参数对反向传导的损失值有更敏感的响应能力,虽然根本上没有解决回传损失小的问题,但是却让参数减少,相对而言增加 了回传损失效果,也产生了一定的正则化作用。
  • 因为前向过程中有恒等映射的存在,因此在反向传播过程中梯度的传导也多了更简便的路径,仅经过Relu就可以把梯度传达给上一个模块。
  • 因此残差模块最重要的作用就是改变了前向和后向信息传递的方式从而很大程度上促进了网络的优化。
    在这里插入图片描述
上图利用Inceptionv3提出的第三个准则,在空间聚合之前先进行降维不会发生信息丢失,加入1*1的卷积核用来增加非线性和减小输出的深度以减小计算成本。

在这里插入图片描述

上图中的(e)。实际上把激活层(relu+BN)放在卷积的前面的操作在VGG等网络中不会产生不同的影响,但是在残差网络中就可以保证输入和输出加和之后在输入下一层之前没有别的操作,让整个信息的前向后向流动没有任何阻碍,从而让模型的优化更加简单和方便。

在这里插入图片描述

上图是文章中实验的4种残差模型,(d)是文章中提出,可以看到相比于基础模块在中间加上了dropout层,这是因为增加了宽度后参数的数量会显著增加,为了防止过拟合使用了卷积层中的dropout,并取得了相比于不用dropout更好的效果。

4. 不同宽度对网络的影响-

  • 1.增大宽度可以增加各种深度的残差模型的性能

  • 2.只要参数的数量可以接受,宽度和深度的增加就可以使性能提升。

  • 3.在相同的参数数量下,更深的模型并不比更宽的模型有更好的性能。

二、正则化

1. 什么是正则化?

  • regularization称为正则化、规则化。就是说给损失函数加上一些限制,通过这种规则去规范他们再接下来的循环迭代中,不要自我膨胀。

2. 为什么要正则化?

  • 让模型不要过于依赖样本数据。
训练过程中要拟合训练集,可以分为过拟合和欠拟合。
  • 欠拟合——泛化能力差,训练样本集准确率低,测试样本集准确率低。
  • 过拟合——泛化能力差,训练样本集准确率高,测试样本集准确率低。
  • 合适的拟合程度:泛化能力强,训练样本集准确率高,测试样本集准确率高
欠拟合原因:训练样本数量少,模拟复杂度过低,参数还未收敛就停止循环。
解决办法:增加样本数量。增加模型参数,提高模型复杂度。增加循环次数。
过拟合原因:数据噪声太大,特征太多,模型太复杂。
解决办法:清洗数据,减少模型参数,降低模型复杂度。 增加惩罚因子(正则化) ,保留所有的特征,但是减少参数的大小。

正则化存在的意义是在训练的过程中防止模型的过拟合。

3. 正则化的方法

正则化主要有参数正则化和经验正则化。参数正则化方法的核心主要是对损失函数Loss Function 添加惩罚项 Penalty。

3.1 参数正则化如下两种

3.1.1 L1正则化

  • L2正则化已经不能满足需求,因为它只是使得模型的参数值趋近于0,而不是等于0,这样就无法丢掉模型里的任何一个特征,因此无法做到稀疏化。
    在这里插入图片描述

  • L1正则化的作用是使得大部分模型参数的值等于0,从而达到稀疏化的目的,节约了存储的空间。

  • L1正则化对于所有权重予以同样的惩罚,不论模型参数的大小,对他们都施加等力度的惩罚,因此,较小的权重在被惩罚后就会变成0。
    L1正则化图

上图中正方形代表L1正则下的参数限制空间,彩色等值线代表参数优化空间,模型优化与训练其实就是在优化空间与限制空间的参数当中,寻找最优参数值的过程。从图中可以看出,优化空间与限制空间有很大的概率相交于坐标轴上,即使扩展到更高的参数维度,L1的参数限制空间始终存在尖锐的凸点,这意味着L1正则可能会将网络中某些参数约束为0,从而导致参数的稀疏化。如果需要做模型压缩,L1正则是一个不错的选择。

3.1.2 L2正则化

在这里插入图片描述

  • L2正则化对于绝对值较大的权重予以很重的惩罚,对于绝对值很小的权重予以非常非常小的惩罚,当权重绝对值趋近于0时,基本不惩罚。这个性质与L2的平方项有关系,即越大的数,其平方越大,越小的数,比如小于1的数,其平方反而越小。
  • 同时,他有另一个优势,在使用正规方程时,解析式中的逆始终存在的。
    在这里插入图片描述
L2正则下的参数限制空间与参数优化空间的交点在参数0点的概率很低。因此L2正则化可以使参数尽可能的小,但不至于为0,这样既保留了模型的拟合能力,同时也增加了泛化能力,

L1正则化和L2正则化在实际应用中的比较

  • L1在稀疏化场景下作用效果远胜于L2。在模型特征个数远大于训练数的情况下,如果我们事先知道模型的特征中只有少量的相关特征(参数值不为0),并且相关特征的个数少于训练样本数,L1的效果远好于L2。然而, 当相关特征数远大于训练样本数时,无论是L1还是L2,都无法取得很好的效果。

3.2 经验正则化(早停、Dropout)

https://howiexue.blog.csdn.net/article/details/104271227
主要原理是丢弃一些网络单元,丢弃越多,正则化效果越明显。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: XGBoost(eXtreme Gradient Boosting)是一种机器学习法,通过集成多个弱学习器的预测结果来构建强学习器。它基于梯度提升框架,使用变种的决策树作为弱学习器,并在训练过程中优化损失函数。 XGBoost的核心思想是迭代地增加决策树的规模,每次新建一个决策树并进行训练,在训练过程中,根据之前决策树的预测结果与真实标签之间的差异,调整模型参数,使得模型能够更好地拟合训练数据。同时,为了防止过拟合,XGBoost采用了正则化方法。 在训练过程中,XGBoost使用了梯度提升技术优化损失函数。梯度提升是通过最小化损失函数的负梯度来逐步优化模型的方法。XGBoost在每次迭代中,计损失函数的一阶导数和二阶导数,以此来训练新建的决策树,并通过梯度提升的方式将新决策树集成到模型中。 XGBoost还引入了一些创新的技术来提高模型性能,例如,使用特定的数据结构(稠密压缩列存储)存储训练数据以优化内存使用;通过按特征值排序的方式加速特征分裂的搜索;使用分布式计框架进行大规模训练等。 总的来说,XGBoost是一种强大且高效的机器学习法,能够处理各种类型的数据,并在许多机器学习竞赛中取得了优异的成绩。它的优点包括可解释性强、鲁棒性好、可扩展性强等,在工业界和学术界都得到了广泛应用。 ### 回答2: XGBoost(eXtreme Gradient Boosting)是一种广泛应用于机器学习领域的集成学习法。它的基本原理是通过多个弱学习器的集成来构建一个更强大的模型。 XGBoost的主要特点包括: 1. 高度灵活:XGBoost可以应用在各种数据和任务上,包括分类、回归和排序等。 2. 高效性能:XGBoost采用了并行计技术,使得模型训练和预测速度都非常快。 3. 可解释性:XGBoost提供了特征重要性排序功能,可以帮助我们理解模型的决策过程。 4. 鲁棒性:XGBoost通过正则化项和剪枝方法,可以有效地减少过拟合的风险。 XGBoost的工作原理如下: 1. 初始化:首先,将一个简单的模型作为初始模型,一般是选择一个常数值作为初始预测。 2. 偏差修正:计初始预测值与实际目标值之间的差异,得到残差。然后,使用回归树来拟合这些残差。 3. 加法模型:将拟合的回归树与初始模型进行加权相加,得到新的预测值。即将之前的预测值与回归树的预测值相加,得到新的预测值。 4. 更新残差:计新的预测值与实际目标值之间的差异,得到新的残差。 5. 迭代:重复上述过程,不断迭代生成新的回归树,并更新预测值和残差,直到模型收敛或达到预设的迭代次数。 在每一轮迭代中,XGBoost通过梯度和近似的海森矩阵对目标函数进行优化,选择最佳的分割点和叶子权重来构建回归树。同时,通过正则化项对树的复杂度进行控制,避免过拟合现象。 总之,XGBoost通过迭代的方式不断优化模型的预测能力,同时考虑了数据结构、特征重要性和模型复杂度等因素,使得其在各种机器学习任务中表现出色。 ### 回答3: XGBoost(eXtreme Gradient Boosting)是一种机器学习法,是基于决策树的集成学习方法。它通过多个弱分类器的集成来构建一个强分类器。 XGBoost的核心思想是通过不断迭代训练,通过添加弱分类器并纠正先前的错误来提高整体模型的准确率。在每轮迭代中,XGBoost会计每个样本的梯度信息,并使用这些信息来训练下一个弱分类器。新的弱分类器将根据梯度信息来修正上一轮分类器的错误。 与传统的Gradient Boosting法相比,XGBoost通过引入一些改进来提高模型的性能。其中一个改进是使用了正则化项,以避免模型过拟合。另一个改进是引入了二阶梯度信息,以更准确地估计每个样本的预测误差。 XGBoost还使用了一种特殊的数据结构,称为"分布式虚拟内存",以在大规模数据集上高效地进行训练。此外,XGBoost还具有并行计能力,可以利用多核处理器和分布式计资源来加速训练过程。 XGBoost在多个机器学习竞赛中取得了显著的成绩,并被广泛应用于实际问题中。它可以用于分类问题和回归问题,还可以处理缺失值和异常值。XGBoost具有较高的预测准确性和鲁棒性,同时也具备良好的解释性,可以帮助我们理解特征的重要性和模型的逻辑。 总之,XGBoost是一种强大的机器学习法,它通过集成多个弱分类器来构建一个准确性较高的分类器。它的优点包括高性能、良好的鲁棒性和解释性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值