广元建设局网站,山西建立网站营销策划,wordpress查询页面id,新公司网络推广目录 偏差和方差
欠拟合underfitting
过拟合overfitting
梯度消失和梯度爆炸
归一化 偏差和方差
偏差#xff1a;算法期望预测和真实预测之间的偏差程度。反应的是模型本身的拟合能力。
方差#xff1a;度量了同等大小的训练集的变动导致学习性能的变化#xff0c;刻画…目录 偏差和方差
欠拟合underfitting
过拟合overfitting
梯度消失和梯度爆炸
归一化 偏差和方差
偏差算法期望预测和真实预测之间的偏差程度。反应的是模型本身的拟合能力。
方差度量了同等大小的训练集的变动导致学习性能的变化刻画了数据扰动导致的影响。
欠拟合underfitting
解决措施:
1.添加其他特征项(增大数据量)
2.添加多项式特征(增加网络层数用更加复杂得模型)
3.减少正则化参数
过拟合overfitting
解决措施:
1.重新清洗数据
2.增大数据的训练量
3.采用正则化方法
4.采用dropout方法 Vanilla dropout:训练时使用概率p丢弃某些神经元测试时让最后输出乘以(1-p)来保证期望一致。 Inverted dropout:训练时使用概率p丢弃某些神经元同时对该层的输出除以(1-p)这样的话就不需要再测试阶段引入了。 dropout有什么优点有什么缺点? 优点:阻止某些特征的协同作用减小方差防止过拟合增强鲁棒性。因为如果模型对某些特征过拟合的话训练的时候通过dropout使得这些容易拟合的特征出现的概率降低减小因这个输入变化带来的对模型的影响 缺点会改变某些特征的分布比如性别特征编码为{男-0,女-1}当以概率p将女随机变为0的话在一定程度上增加了男得概率(0.50.5*p)这样得话就改变了性别特征得分布最后测试阶段再通过乘以(1-p)并不能恢复原始数据分布这个得解决方法是上面这个例子应该从编码得角度解决比如{男-1,女-2,未知-0}。
5.提前终止训练
6.减少网络层数使用简单得模型
梯度消失和梯度爆炸
原理:
梯度消失:当网络层数很深时如果梯度小于1则会使得经过多层后向反馈时得梯度累乘远远小于1
梯度爆炸:与梯度消失相反当网络层数很深时如果梯度大于1则会使得经过多层后向反馈后得梯度累乘远远大于1
解决措施
1.激活函数得选择(使用Relu代替sigmoidtanh等)
2.预训练微调
3.使用batch normalization
公式:normalization(归一化)scale-shift(反归一化) gamma*(x-E[x])/(sqrt(VAR[x]e))beta,其中E[x]为mini-batch mean, VAR[x]为mini-batch variance gamma(初始化为1)和beta(初始化为0)是可学习参数
为什么BN有效果? 1)因为BN主要是将映射后数据进行归一化这样对于sigmoid函数或tanh函数来说能够使得数据分布在梯度较大得区域同时加速收敛。 2)由于BN中计算得是mini-batch mean和mini-batch variance所以引入了一些noise,有一定正则作用 mini-batch mean和mini-batch variance会带来noise那如何缓解呢 训练过程中可以利用指数加权移动平均来累计mean和variance这个得mean和variance接近all-batch
为什么BN归一化后还要有scale-shift操作?
这是利用神经网络自己去学习 归一化有没有效果如果没有效果则使用scale-shift操作来抵消归一化得作用。
BN改变了数据分布为什么效果反而会更好
1)虽然会改变数据分布但是数据之间得关联性是不会变得。
2)由于有目标函数在所以神经网络自己会朝着分布最优得方向去学习。
BN用在什么地方
根据它起到得效果可知一般用在全连接层BN激活函数
对于什么激活函数BN效果更明显?
对于sigmoihe激活函数或者tanh激活函数BN效果会好一些
BN中在训练和测试时怎么用?
训练中使用得是:计算每个mini-batch得数据
测试中使用得是:在训练过程中通过指数加权移动平局来统计均值和方差将这个值用于测试阶段计算。
BN缺点
1)小样本时效果不好均值和方差是有偏得
2)在RNN中效果通常不好--将不同batch得数据进行归一化不符合句子内的语义更强的特点
BN和Dropout
Dropout为了平衡训练和测试的差异会通过随机失活的概率来对神经元进行放缩进而会改变其方差。如果再加一层BN又将方差拉回至(0-1)分布进而产生方差冲突。
处理方法:1.将dropout放在BN后2.使用高斯dropout。
4.使用残差网络结构
5.使用LSTM网络
为什么LSTM比RNN更能解决梯度消失的问题?
因为在RNN中BPTT的梯度是累乘形式而RNN的输出中采用了tanh激活函数所以会出现梯度消失问题而LSTM的梯度除了累乘形式还有累加形式所以不容易出现梯度消失。
LSTM中用sigmoid激活函数而不用ReLU激活函数的原因?
因为在LSTM中忘记门和更新门是起筛选作用所以需要0~1之间的至作为概率来进行筛选。
6.梯度剪切、权重正则
7.Layer normalization
公式:normalization(归一化)scale-shift(反归一化)
gamma*(x-E[x])/(sqrt(VAR[x]e))beta,其中E[x]为mini-batch mean, VAR[x]为mini-batch variance
不需要额外维护一个对训练样本均值方差的统计每次只需要在句子范围内计算即可
gamma(初始化为1)和beta(初始化为0)是可学习参数
归一化
机器学习为什么对数据进行归一化?
归一化的目的:
1.处理不同规模和量纲的数据将其缩放到相同的数据区间和范围以减少规模、特征、分布差异对模型的影响。
2.归一化加速GD求解最优解的速度。比如收敛路径呈Z字型导致收敛太慢
3.归一化可以提高精度。
机器学习什么情况下对数据进行归一化?
1.使用了梯度下降算法如LR,SVM等。
2.计算样本点距离时如KNN、K-Means等。
.....
机器学习什么情况下不需要归一化?
1.概率模型(决策树)不需要归一化
决策树不需要归一化:因为决策树分裂时是通过统计的方式寻找最优分裂点并不是直接对数值进行拟合。
如何应用到训练集、测试集和验证集中
由于测试集是未知的所以测试集的归一化的均值和方差应该来源于训练集。验证集同理。
常用的归一化方法及适用情景
2.max-min法:容易受极端值的影响一定程度上会破坏原有的数据结构
3.z-score法:会改变原有数据的分布不适合对稀疏数据做处理不适合根据变量差异程度的聚类分析 4.非线性归一化:log,exp,tanh,sigmoid等取决于输入数据范围以及期望的输出范围。
5.length-one归一化:x/||x||这种处理用在不考虑向量大小而需要考虑向量方向的问题中比如在一些文本情感的分类中我们可能并不需要知道情感表达的强弱而只要知道情感的类型比如开心生气等等。将特征转换为单位向量形式可以剔除特征的强度的影响。
6.RobustScaler:适用于存在离群点的数据。
上述方法分析在分类中聚类算法数据符合正态分布中需要使用距离来度量相似性或者使用PCA降维时z-score表现得较好。在不涉及距离测量协方差计算数据不太符合正态分布时可以使用第一种方法或其他方法。
LR归一化问题什么情况下可以不归一化什么情况下必须归一化为什么
当数据分布比较集中时可以不归一化
当数据分布比较分散时需要归一化