三个知识点回顾 -- 基础知识(2)

1. 什么是梯度爆炸/梯度消失;如何解决这个问题

梯度消失/爆炸问题主要是通过BN和初始化来解决的。

2. L1和L2正则化

L1正则化是指在损失函数中,加入权值向量W的绝对值之和,即各个元素的绝对值的和
L2正则化是在损失函数中加入了权值向量W的平方和。

2.1 L1的优点是使得权重稀疏,那为什么会稀疏呢?

解空间形状来解释
假设W参数是二维的,那么有W = [w1,w2] 所以 对于L1正则化的函数是 λ(|w1| + |w2|) = z(z为某个值)
函数对应的图是一个旋转了90度的矩阵 ,而相应的L2正则化的函数是 λ(x^2 + y^2) = z (z为某个值)
所以对应的图是:请添加图片描述
以上图是损失函数的可视化 回忆一下L1和L2的损失函数即能画出:

所以正则化与圆圈交点的地方就是最优解。对于L1正则化,最优解发生在矩阵的顶点,矩形顶点表示其中一个参数w的值为0 ,表示这个特征我们忽略不计,所以这就是为什么L1会产生稀疏性的原因。

2.2为什么讲 L1正则化相当于对模型参数W引入了拉普拉斯先验,L2正则化相当于引入高斯先验??

首先什么是先验分布
贝叶斯认为 进行观察以获得样本之前,人们对数据θ也会有一些知识。因为是在试验观察之前,故称之为先验知识。
先验的意思是对一种未知的东西的假设,比如说我们看到一个正方体的骰子,那么我们会假设他的各个面朝上的概率都是1/6,这个就是先验。但事实上骰子的材质可能是密度不均的,所以还要从数据集中学习到更接近现实情况的概率。
回忆拉普拉斯概率密度分布,这是类似于正态分布,但是顶点时平的。以看到Laplace分布集中在𝜇附近,而且𝑏越小,数据的分布就越集中。我们知道最大似然估计是假设了参数是均匀分布的。结合两者公式求导得到L1正则化公式。也就是由Laplace导出L1正则化;现在同理也是,从高斯先验导出L2正则化。

2.3 为什么L2能够提高模型的泛化能力??

拟合过程通常倾向于让权值尽可能小,最后构造出一个所有参数w都比较小的模型,因为一般认为参数值小的模型比较简单,能够适应不同的数据集,也在一定程度上避免了过度拟合现象。因为 当某个参数w的值很大,那么只要数据偏移一点,就会对结果造成很大的影响。当w参数足够小,数据偏移得多一点不会对结果造成什么大的影响。所以泛化能力强。
【正则化是将模型参数加入到损失函数中,能避免权值过大,模型过于陡峭,从而降低过拟合】
【L1稀疏,L2平滑】

2.4为什么L1和L2能有防止过拟合的作用??

过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复杂,过分得去拟合训练数据的噪声。正则化则是对模型参数添加先验,使得模型复杂度较小,对于噪声扰动相对较小。
最简单的解释就是加了先验。在数据少的时候,先验知识可以防止过拟合

3. BN的所有理解以及面试题

3.1 解释一下BN,怎么操作的??

BN主要是对数据进行归一化处理,即减去均值再除方差,把数据分布拉回到以0为均值,1为方差的范围内。还有两个参数是scale和shift,用来调整数据,用来避免数据过于线性的表达。
举个例子:
mini-batch和通道这两维,例如四维tensor,分别是[n,c,h,w]
bn是统计每张特征图的期望和方差,而这个期望和方差是n个样本同一张特征图的期望和方差,在NWH范围内计算均值和方差。

3.2 具体细节问:训练阶段如何做BN;训练阶段和测试阶段的区别

请添加图片描述
用CNN为例子,每一层的输入数据为NWHC的四个维度。N表示batch size;WH为特征图大小,长和宽;C是特征数量或者说通道数;
而BN是对每个通道C 对应的【NWH】的数据进行归一化,即对每一张特征图做归一化处理。
假设通道数只有一个的话(即C=1),那么BN就是对这一个batch所有的样本的,即所有照片像素的均值和方差来做归一化处理。

BN层在训练的阶段的时候,对于每一批Mini-Batch 的数据分别求均值和方差。
但是,对于测试集,是将训练的所有批 数据的均值和方差 都取一个移动平均值。作为测试集的均值和方差。

3.3 BN层两个因子的作用

通过scale和shift这两个因子 把数据 从标准正态分布左移或者由移一点并长胖一点或者变瘦一点,每个实例挪动的程度不一样,这样等价于非线性函数的值从正中心周围的线性区往非线性区动了动。核心思想应该是想找到一个线性和非线性的较好平衡点,既能享受非线性的较强表达能力的好处,又避免太靠非线性区两头的饱和区 使得网络收敛速度太慢。

【这里要会回想到 **BN后要经过激活函数的图,比如sigmoid,**如果数据都集中在0附近,则太靠近线性区域,所以加上两个因子,适当地移动】

3.4 为什么BN可以起到控过度拟合的作用

首先,BN是基于Mini-Batch SGD。
第二,假设训练数据和预测数据是满足相同的分布,这是通过训练数据获得模型能够在测试集获得好的效果的一个基本保证。
深度学习中,每层参数一直在变化更新,输入分布也会有变化,所以这就会导致难以学习数据的规律,所以论文是想着让每一层的因层输入 的数据分布能够固定下来

3.5 训练阶段BN的参数解释

请添加图片描述
针对BN过程,里面有四个参数,均值,方差,scale,shift
(1)反向传播,会算出对于均值和方差的梯度,但是不会更新均值和方差,只是对其他的梯度更新需要要用到而已。
那么如果是预测呢,预测是用训练的所有批 数据的均值和方差 都取一个移动平均值。作为测试集的均值和方差
【简单平均法–把每个mini-batch的均值和方差都保存下来,然后训练完了求均值的均值,方差的均值即可】
(2)scale和shift 则初始化为1、0,更新用梯度下降
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jianafeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值