AI题目整理

news/2025/2/12 7:51:40/

文章目录

  • 1、网络配置时batchsize的大小怎样设置?过小和过大分别有什么特点?
  • 2、设置学习率衰减的原因?
  • 3、有哪些分类算法?
  • 4、分类和回归的区别?
  • 5、请描述一下K-means聚类的过程?
  • 6、训练集、测试集、验证集的作用?
  • 7、请讲解一下k折交叉验证?
  • 8、分类和聚类的区别?
  • 9、讲述一下梯度的概念?
  • 10、有监督学习、无监督学习和半监督学习的区别?
  • 11、带核的SVM为什么能分类非线性问题?
  • 12、请描述常见的梯度下降方法?
    • 1、批量梯度下降(Batch Gradient Descent BGD)
    • 2、随机梯度下降(Stochastic Gradient Descent SGD)
    • 3、小批量梯度下降(Mini-batch Gradient Descent)
  • 13、Momentum、Adagrad、RMSprop、Adam优化算法?
    • 1、Momentum
    • 2、AdaGrad算法
    • 3、RMSProp算法
    • 4、Adam算法
  • 14、什么是过拟合? 怎么解决过拟合问题?
  • 15、怎样解决梯度消失/爆炸问题?

1、网络配置时batchsize的大小怎样设置?过小和过大分别有什么特点?

Batch size是指一次迭代过程中,输入到神经网络的样本数量。
batchsize太小的缺点:
①耗时长,训练效率低。
②训练数据就会非常难收敛,从而导致欠拟合。
batchsize增大的优缺点
①大的batchsize减少训练时间
②大的batchsize所需内存容量增加
③大的batch size梯度的计算更加稳定
④大的batchsize可能导致模型泛化能力下降
一般需要考虑训练速度、泛化误差和模型收敛性等因素,根据模型的复杂度、训练数据集的大小、计算资源的可用性等因素进行调整,并结合实际情况进行优化调整。
在这里插入图片描述
batchsize太小的缺点&随着batchsize逐渐增大的优缺点&如何平衡batchsize的大小

2、设置学习率衰减的原因?

学习率控制了模型在每一次更新权重时所采取的步长大小。如果学习率过高,模型可能会无法收敛,导致训练不稳定;如果学习率过低,损失函数的变化速度很慢,会大大增加网络的收敛复杂度,并且很容易被困在局部最小值。
为了防止学习率过大,在收敛到全局最优点的时候会来回摆荡,所以要让学习率随着训练轮数不断按指数级下降,收敛梯度下降的学习步长。

深度学习——学习率衰减(learning rate decay)

3、有哪些分类算法?

常用的分类算法包括:NBC(Naive Bayesian Classifier,朴素贝叶斯分类)算法、LR(Logistic Regress,逻辑回归)算法、ID3(Iterative Dichotomiser 3 迭代二叉树3 代)决策树算法、C4.5 决策树算法、C5.0 决策树算法、SVM(Support Vector Machine,支持向量机)算法、KNN(K-Nearest Neighbor,K 最近邻)算法、ANN(Artificial Neural Network,人工神经网络)算法等。

数据挖掘算法——常用分类算法总结
【10分钟算法】朴素贝叶斯分类器-带例子/Naive Bayes Classifier
【10分钟算法】层次聚类之最近邻算法-带例子/Nearest Neighbor Algorithm
【五分钟机器学习】机器分类的基石:逻辑回归Logistic Regression
【五分钟机器学习】向量支持机SVM: 学霸中的战斗机

4、分类和回归的区别?

1、输出变量类型:分类问题的输出变量通常是离散的,表示数据点所属的类别或标签,而回归问题的输出是连续的,表示预测的数值
2、目的:分类问题的目的是对数据进行分类或标记,而回归问题的目的是找到最优拟合,通过回归算法得到是一个最优拟合线,这个线条可以最好的接近数据集中的各个点。
3、评估方法:分类问题通常使用准确率或 F1 分数等指标来评估模型的性能。对于回归问题,通常使用均方误差(Mean Squared Error,MSE)或平均绝对误差(Mean Absolute Error,MAE)等指标来评估模型的性能。
4、数据类型:分类问题通常使用分类数据,即离散变量。而在回归问题中,通常使用连续数据

【机器学习小常识】“分类” 与 “回归”的概念及区别详解

5、请描述一下K-means聚类的过程?

步骤
①首先确定要聚类的簇的个数 k,并选取 k 个随机数据点作为 k 个簇的初始中心点
②对于每一个剩余的数据点,计算其与每个簇的中心点之间的距离,并将该数据点分配到离其最近的簇中。

③对每个簇的数据点重新计算平均值(该簇各个点坐标之和/该簇数据点数)(X,Y分别加和),并将其视为新的簇中心点。这个过程一直执行,直到聚类结果不再发生显著改变或达到预设阈值为止。
④将每个数据点划分至距其最近的簇中,分配规则基于计算的距离
⑤重新计算每个簇的中心点,再次划分每个数据点。

重复步骤4和5直到算法收敛(每个簇的数据点个数不变或达到阈值)。

【10分钟算法】K均值聚类算法-带例子/K-Means Clustering Algorithm

6、训练集、测试集、验证集的作用?

训练集(train set):用于模型拟合的数据样本。在训练过程中对训练误差进行梯度下降,进行学习,可通过训练不断优化权重参数
验证集(validation set):是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数(学习率等)、调整模型的架构(层数增减等)和用于对模型的能力进行初步评估。
测试集:用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据。
训练集、验证集、测试集的作用

7、请讲解一下k折交叉验证?

K折交叉验证的作用
当有多个不同的模型(结构不同、超参数不同等)可以选择时,我们通过K折交叉验证来选取对于特定数据集最好的模型。

K折交叉验证的流程
1、将含有N个样本的数据集,分成K份,每份含有N/K个样本。选择其中一份作为验证集,另外K-1份作为训练集,验证集就有K种情况。
2、在每种情况中,用训练集训练模型,用验证集测试模型,计算模型的泛化误差
3、交叉验证重复K次,平均K次的结果作为模型最终的泛化误差。
4、K的取值一般在[ 2 ,10 ]之间。K折交叉验证的优势在于,同时重复运用随机产生的子样本进行训练和验证,10折交叉验证是最常用的。
5、训练集中样本数量要足够多,一般至少大于总样本数的50%。
6、训练集和验证集必须从完整的数据集中均匀采样。均匀采样的目的是希望减少训练集、验证集与原数据集之间的偏差。当样本数量足够多时,通过随机采样,便可以实现均匀采样的效果。
机器学习_K折交叉验证知识详解(深刻理解版)(全网最详细)
k折交叉验证

8、分类和聚类的区别?

聚类(Clustering):将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。
分类(Classification):在已有分类标准下,对新数据进行划分,分类。
在这里插入图片描述
聚类的基本概念-聚类与分类的区别
聚类(clustering)与分类(Classification)的区别

9、讲述一下梯度的概念?

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)
梯度概念

10、有监督学习、无监督学习和半监督学习的区别?

监督学习:在有监督学习中,训练数据集包含输入特征和对应的输出标签。模型的任务是学习输入特征与输出标签之间的关系,从而对新的输入数据进行分类或回归等。
非监督学习:在无监督学习中,训练数据集只包含输入特征,没有对应的输出标签。模型的任务是从数据中学习到一些结构或者规律,可以将数据聚类、降维等。
半监督学习:半监督学习是介于有监督学习和无监督学习之间的一种方法。在半监督学习中,训练数据集同时包含有标签数据和无标签数据。模型的任务是在有标签的数据和无标签的数据中学习结构或规律,并尝试使用这些结构或规律对无标签的数据进行预测分类或回归等任务。

机器学习中的有监督学习,无监督学习,半监督学习的区别

11、带核的SVM为什么能分类非线性问题?

SVM的本质是量化两类数据差异的方法,通过使用核函数,SVM 将数据从低维空间中投影到更高维的空间中,从而使得原本线性不可分的数据在新的高维空间中变得线性可分。而核函数能够提供高维度向量相似度的测量 ,通过选取合适的核公式,我们就可以不用知晓具体的维度转换函数而直接获得数据的高维度差异度,并以此来进行分类判断。
在这里插入图片描述
【数之道】支持向量机SVM是什么,八分钟直觉理解其本质
【数之道26】SVM支持向量机-核技巧Kernel Trick详解

12、请描述常见的梯度下降方法?

1、批量梯度下降(Batch Gradient Descent BGD)

批量梯度下降需要首先计算所有数据上的损失值,然后再进行梯度下降,具体的操作步骤是:遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数,都要把数据集里的所有样本计算一遍,计算量大,计算速度慢,不支持在线学习。

2、随机梯度下降(Stochastic Gradient Descent SGD)

不使用全量的样本来计算梯度,而使用单一样本来近似估计梯度,可以极大地减少计算量,提高计算效率。具体的操作步骤是:每次从训练集中随机选择一个样本,计算其对应的损失和梯度,进行参数更新,反复迭代。
这种方式在数据规模比较大时可以减少计算复杂度,从概率意义上来说的单个样本的梯度是对整个数据集合梯度的无偏估计,但是它存在着一定的不确定性,因此收敛速率比批梯度下降得更慢。

3、小批量梯度下降(Mini-batch Gradient Descent)

为了克服上面两种方法的缺点,采用的一种折中手段:将数据分为若干批次,按批次更新参数,每一批次中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性,另一方面,因为批的样本数比整个数据集少了很多,计算量也不是很大。
每次使用多个样本来估计梯度,这样可以减少不确定性,提高收敛速率,其中每次迭代选取的样本数量称为批大小(batch size)。

史上最详细的梯度下降优化算法介绍(从SGD到Adam至Lookahead)

13、Momentum、Adagrad、RMSprop、Adam优化算法?

1、Momentum

SGD方法的一个缺点是其更新方向完全依赖于当前batch计算出的梯度,因而十分不稳定。Momentum算法借用了物理中的动量概念,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上增加稳定性,从而学习地更快,并且还有一定摆脱局部最优的能力:

2、AdaGrad算法

即adaptive gradient,自适应梯度法。它通过记录每次迭代过程中的前进方向和距离,从而使得针对不同问题,有一套自适应调整学习率的方法,即不同的参数是需要不同的学习率的。具有损失较大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。
AdaGrad旨在应用于凸问题时快速收敛,
优点:解决了SGD中学习率不能自适应调整的问题。
缺点:(1)对于训练深度神经网络模型而言,从训练开始时累积平方梯度值会越来越大,会导致学习率过早和过量的减少,从而导致迭代后期收敛及其缓慢。AdaGrad在某些深度学习模型上效果不错,但不是全部。(2)需要手动设置全局学习率

3、RMSProp算法

是AdaGrad算法的改进,修改AdaGrad以在非凸条件下效果更好,解决了AdaGrad所面临的问题。
RMSProp主要思想:使用指数加权移动平均的方法计算累积梯度,以丢弃遥远的梯度历史信息(让距离当前越远的梯度的缩减学习率的权重越小)。
优点:完全自适应全局学习率,加速效果好。
缺点:后期容易在小范围内产生震荡。

4、Adam算法

的本质其实就是Momentum+RMSProp的结合,然后再修正其偏差。Adam对梯度的一阶和二阶都进行了估计与偏差修正,使用梯度的一阶矩估计和二阶矩估计来动态调整每个参数的学习率(参数更新的幅度)。
Adam对学习率没有那么敏感,建议默认为0.001,实践中,也可以设置为5×10-4 。Adam通常被认为对超参数的选择相当鲁棒,同时相比于Adagrad,不用存储全局所有的梯度,适合处理大规模数据。
Adam每次迭代参数的学习步长都有一个确定的范围,不会因为很大的梯度导致很大的学习步长,参数的值比较稳定,但是它也并非真的是参数不敏感的,学习率在训练的后期可仍然可能不稳定导致无法收敛到足够好的值,泛化能力较差。
优化方法——AdaGrad、RMSProp、Adam

14、什么是过拟合? 怎么解决过拟合问题?

过拟合(over-fitting)指模型在训练样本中表现得过于优越,而在验证数据集以及测试数据集中表现不佳,无法很好地泛化到新的数据。
解决过拟合问题的常见方法:
1、数据增强:可以使用数据增强技术来扩充训练数据集,从而可以更充分地训练模型并提高其泛化能力。
2、正则化:通过在损失函数中添加正则项来控制模型的参数大小。 常用的正则化技术包括L1、L2正则化等。
在这里插入图片描述
在这里插入图片描述
深入理解L1、L2正则化
3、Dropout:Dropout是一种用于防止过拟合的正则化技术。该技术通过在训练过程中随机删除一些神经元来减少模型的复杂度和提高泛化能力。
4、增加训练数据量:增加训练数据集的大小可以降低模型的过拟合风险,通过收集更多的数据并进行训练,可以使模型更容易学习一般性的目标函数。
5、减小模型的复杂度:可以通过减小模型的大小或宽度,或减少模型中的参数数量等方式减少过拟合。这种方法常常被成为模型规约。
6、早期停止:在训练时,可以使用验证集(validation set)来监控模型的性能。 当模型开始过拟合时,停止训练,这种方法可以解决过拟合问题,同时减小模型开始表现得很糟糕的风险。一般是设置一个步长,如果多少步内验证集acc没有上升就停

浅谈深度学习过拟合和解决办法
14. 过拟合(overfitting)与解决办法

15、怎样解决梯度消失/爆炸问题?

在训练神经网络过程中,如果梯度过小或过大,会导致学习收敛缓慢或根本无法收敛,从而影响模型的训练效果。以下是几种常见的解决梯度消失或梯度爆炸问题的方法:
1、使用其他激活函数:sigmoid等激活函数在输入很大或很小的情况下会产生饱和效应,导致梯度接近0。较新的激活函数ReLU和其变体具有解决这个问题的能力。
2、Batch normalization:通过对每个batch在输入层和输出层进行标准化和缩放来扭曲前向传播特征的分布,从而提高模型的稳定性,消除梯度消失的风险。
3、梯度剪切:设置一个梯度的最大阈值,当梯度超过这个阈值时,将它的大小截取到阈值以内,这可以减轻梯度爆炸的影响。
4、预训练:预训练是一种减少梯度消失问题的有效方法。与随机初始化相比,预训练已经学习了较好的特征表示,初始化的参数也比较接近最优解,并且能减少梯度传播的距离,减少梯度消失问题对模型的影响。
5、梯度根据时间反向传播(BPTT)截断:在反向传播时,限制反向传播的长度,这个长度也叫时间截断长度。这可以减轻长周期信号的梯度消失问题。
6、使用长短期记忆网络(LSTM)或门控循环单元(GRU)模型:这两种循环神经网络模型可以学习长期依赖关系,并且使用了门控机制,能够有效减轻梯度消失问题。

梯度消失和梯度爆炸及解决方法


http://www.ppmy.cn/news/69484.html

相关文章

图像分割(Segmentation)

文章目录 图像分割FCNU-NetSegNetDeepLab图像分割常用数据集 图像分割 图像分割是预测图像中每一个像素所属的类别或者物体。基于深度学习的图像分割算法主要分为两类: 语义分割(Semantic Segmentation) 为图像中的每个像素分配一个类别。 …

瑞吉外卖 - 项目介绍(1)

某马瑞吉外卖单体架构项目完整开发文档,基于 Spring Boot 2.7.11 JDK 11。预计 5 月 20 日前更新完成,有需要的胖友记得一键三连,关注主页 “瑞吉外卖” 专栏获取最新文章。 相关资料:https://pan.baidu.com/s/1rO1Vytcp67mcw-PD…

【ROS2知识】用Robot Localization包进行传感器融合

目录 一、说明 二、Robot Localization包概述 2.1 卡尔曼滤波模型 三、Robot Localization包安装配置 3.2 安装Robot Localizat

C++/Qt 小知识记录3

工作中遇到的一些小问题,总结的小知识记录:C/Qt 小知识 QLineEdit限制输入大于0的正整数QLayout内清空已布局的WidgetWindows结束进程直接结束,子进程不响应结束事件正常结束,子进程响应结束事件 CMake关闭控制台Console实体与值对…

Bean基础配置?实例化方式?生命周期?

文章目录 1 bean基础配置1.1 bean基础配置(id与class) 1 bean基础配置1.1 bean基础配置(id与class)1.2 bean的name属性1.2 bean的name属性步骤1:配置别名步骤2: 根据名称容器中获取bean对象步骤3: 运行程序 1.3 bean作用范围scope配置(单例/非单例)1.3.1 验证IOC容器…

低代码让开发变得不再复杂

文章目录 前言低代码 VS 传统开发为什么选择IVX?平台比对总结 前言 在数字化的时代背景下,企业都面临巨大的数字化转型的挑战。为了应对这样的挑战,企业软件开发工具和平台也在不断革新和发展。低代码开发平台随之应运而生,成为了…

Liunx 套接字编程(2)TCP接口通信程序

1.TCP通信程序的编写 面向连接、可靠传输、提供字节流传输服务 客户端向服务器发送一个连接建立的请求流程,上图中服务端第三步详细流程 2.TCP接口 socket--创建套接字 int socket(int domain, int type, int protocol); bind---绑定 intbind(int sockfd, struct s…

【python】keras包:深度学习(序章)

Part 1. 环境配置 keras包 与 tensorflow包 WinR ,输入指令: pip install tensorflow pip install keras 推荐镜像:-i https://pypi.tuna.tsinghua.edu.cn/simple/ 关于包 keras包相当于是 tensflow 包的前端 tensflow包相当于是keras包的…