常见问题整理1

news2024/9/28 19:23:26

目录

偏差和方差

欠拟合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.5+0.5*p),这样得话就改变了性别特征得分布,最后测试阶段再通过乘以(1-p)并不能恢复原始数据分布;这个得解决方法是:上面这个例子应该从编码得角度解决,比如{男->1,女->2,未知->0}。

5.提前终止训练

6.减少网络层数,使用简单得模型

梯度消失和梯度爆炸

原理:

梯度消失:当网络层数很深时,如果梯度小于1,则会使得经过多层后向反馈时得梯度累乘远远小于1;

梯度爆炸:与梯度消失相反,当网络层数很深时,如果梯度大于1,则会使得经过多层后向反馈后得梯度累乘远远大于1;

解决措施:

1.激活函数得选择(使用Relu代替sigmoid,tanh等)

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归一化问题,什么情况下可以不归一化,什么情况下必须归一化,为什么?

当数据分布比较集中时,可以不归一化

当数据分布比较分散时,需要归一化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

万字长文带你走进MySql优化(系统层面优化、软件层面优化、SQL层面优化)

文章目录系统层面优化采用分布式架构使用缓存使用搜索引擎软件层面优化调整 MySQL 参数配置定期清理无用数据创建索引创建索引普通索引唯一索引全文索引组合索引空间索引主键索引外键索引索引前缀适合创建索引的场景不适合创建索引的场景优化表结构分库分表SQL优化explain执行计…

Python3-File(文件) 方法

Python3 File(文件) 方法 open() 方法 Python open() 方法用于打开一个文件,并返回文件对象。 在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。 注意:使用 open() 方法一定要保证关闭文件对…

Nowcoder .链表分割

文章目录哨兵位节点哨兵位节点 链表分割 小于X 尾插到一个新链表 大于等于X 尾插到另一个链表 最后将两个链表链接起来 需要注意的细节:将第一个链表的尾与第二个链表的头相连接,再返回连接后的整个链表的头(哨兵位头节点的下一个&#xff0…

ECharts 环形图组件封装

一、ECharts引入1.安装echarts包npm install echarts --save2.引入echarts这里就演示全局引入了,挂载到vue全局,后面使用时,直接使用 $echartsimport * as echarts from echarts Vue.prototype.$echarts echarts二、写echarts组件这里演示环…

【蓝桥杯嵌入式】PWM的设置,原理图解析与代码实现(第十一届省赛为例)——STM32

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - 蓝…

Lombok 常用注解

文章目录简介MAVEN 依赖常用的注解1. Data 注解 :2. Setter 注解:3.Getter 注解:4.Log4j or Slf4j 注解5.NoArgsConstructor注解:6.AllArgsConstructor注解:7.RequiredArgsConstructor注解:8.Builder注解:9.Cleanup注解…

全国青少年软件编程(Scratch)等级考试一级真题——2019.12

青少年软件编程(Scratch)等级考试试卷(一级)分数:100 题数:37一、单选题(共25题,每题2分,共50分)1.下列关于舞台的描述,不正确的是?( &#xff09…

DMHS搭建DMDSC 2节点集群同步到单库

DMHS搭建DMDSC 2节点集群同步到单库环境介绍1 安装DMOCI1.1 关闭数据库实例服务1.2 将DMOCI 复制到源端与目的端的数据库bin目录1.3 对数据库bin 执行目录文件更改用户属组和权限2 启动源数据库服务并配置数据库实例参数2.1 使用DMCSSM启动集群实例2.2 DMDSC源其中一个节点执行…

为何英格兰与苏格兰同属英国,却争端不断?

英国作为世界上的强国其组成部分是由大不列颠岛上的英格兰、威尔士和苏格兰以及爱尔兰岛东北部的北爱尔兰以及一系列附属岛屿。英国作为西欧的一个岛国,地理位置十分优越,位于欧洲大陆西北面的不列颠群岛。英国作为西欧的一颗不容忽视的“明星”&#xf…

【Unity风格化草地】概述风格化草地的实现方法

写在前面 最近本专业开始多很多事情了,要开始建模写论文了(不然研究生毕不了业),TA方面的学习进度更慢了,,so sad。 废话不多说,这篇文章其实是个小总结,毕竟学习新东西就是先要当…

序列索引序列切片

六个标准数据类型中是序列的有:字符串(String)、列表(List)、元组(Tuple)。 通过索引和切片的方式可以访问序列中的元素。 一、序列索引 序列中的每一个元素都有一个属于自己的编号&#xff0c…

演唱会的火车票没了?Python实现12306查票以及zidong购票....

嗨害大家好!我是小熊猫~ 不知道大家抢到演唱会的门票没有呢? 不管抢到没有,火车票也是很重要的哇 24小时抢票不间断的那种喔~ ~ ~ 不然可就要走路去了喔~ 准备工作 环境 Python 3.8Pycharm 插件 谷歌浏览器驱动 模块 需要安装的第三方模块&am…

1/4车、1/2车、整车悬架LQR仿真合集

目录 前言 1. 1/4悬架系统 1.1数学模型 1.2 LQR求解反馈阵阵(负反馈) 1.3仿真分析 2. 1/2悬架系统 2.1数学模型 2.2 LQR求解反馈阵阵(负反馈) 2.3仿真分析 3. 整车悬架系统 3.1数学模型 整车7自由度主动悬架数学模型 3.2 LQR求解反馈阵阵(负反馈) 3.3仿真分析 4…

MySQL(四)视图、存储过程、触发器

视图、存储过程、触发器视图检查选项视图的更新存储过程存储过程基本语法变量系统变量用户自定义变量局部变量if判断参数casewhile循环repeat循环loop循环cursor游标handler条件处理程序存储函数触发器视图 视图(View)是一种虚拟存在的表。视图中的数据…

ERP原理与应用教程(作业2)

1. 简答题 ERP是一个高度集成的信息系统,从管理信息集成的角度来看,从MRP到MRPII到ERP,是企业管理信息继承的不断扩展和深化。 所有成为ERP的软件都把MRPII作为其生产和控制模块,以MRPII为基础的计划功能在整个供应链的业务处理…

Composer最小稳定性问题

Composer最小稳定性问题主要指的是,在使用Composer安装某个特定的依赖包时,可能会出现一些不稳定的情况,比如依赖包的版本号发生变化,或者依赖包的某些功能发生变化,这样就会导致应用程序出现问题。为了解决这个问题&a…

【数据结构】栈和队列 (栈 栈的概念结构 栈的实现 队列 队列的概念及结构 队列的实现 栈和队列面试题)

文章目录前言一、栈1.1 栈的概念结构1.2栈的实现二、队列2.1队列的概念及结构2.2队列的实现三、栈和队列面试题总结前言 一、栈 1.1 栈的概念结构 栈也是一种线性表,数据在逻辑上挨着存储。只允许在固定的一端进行插入和删除元素。进行插入和删除操作的一端叫栈顶…

记录 UE5 完全重新构建 UE C++项目

不知道搞了什么,C项目的实时代码编译罢工了,搞了半天都修不好,只能又重建了 UE5 版本为 v5.1.1 删除以下文件夹 /Binaries /Intermediate /SavedBinaries 文件夹是编译后的模块 Intermediate 文件夹里是中间层的C代码,完全由ue…

腾讯乐固加固+app签名+多渠道打包

一、腾讯乐固-基础版免费加固-上传未加固的app-下载加固包(加固成功会清除原apk的签名信息和多渠道信息)https://console.cloud.tencent.com/ms/reinforce/list/basic二、使用AndroidStudio自带工具apksigner对apk重新签名找到apksigner.bat文件 路径D:\…

CentOS7环境下Docker入门到dockerfile(一)CentOS7安装Docker、容器构建、文件复制与挂载

文章目录准备CentOS7虚拟机准备SecureCRT远程连接虚拟机Centos7环境下安装Docker安装Docker镜像Docker容器的基本操作Docker容器的文件复制与挂载可能遇到的问题准备CentOS7虚拟机 关于网络连接三种模式可以参看这篇博客 准备SecureCRT远程连接虚拟机 可以自行搜索相关安装博…