2025年人工智能与机器学习课程期末考试题及答案_第1页
2025年人工智能与机器学习课程期末考试题及答案_第2页
2025年人工智能与机器学习课程期末考试题及答案_第3页
2025年人工智能与机器学习课程期末考试题及答案_第4页
2025年人工智能与机器学习课程期末考试题及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年人工智能与机器学习课程期末考试题及答案考试时长:120分钟满分:100分考试形式:闭卷(编程题可开参考手册)一、选择题(每题2分,共20分)下列关于人工智能发展历程的说法,错误的是()

A.图灵测试的提出标志着人工智能概念的正式诞生

B.专家系统是早期人工智能的重要应用成果

C.深度学习的兴起得益于大数据和GPU算力的突破

D.强化学习在AlphaGo击败人类围棋选手的过程中得到成功应用

在监督学习中,下列哪种算法属于分类算法()

A.K-MeansB.线性回归C.决策树D.主成分分析(PCA)

关于损失函数的说法,正确的是()

A.交叉熵损失函数常用于回归问题

B.均方误差损失函数适用于分类问题

C.损失函数的值越小,说明模型拟合效果越好(排除过拟合情况)

D.所有机器学习模型都必须使用固定的损失函数

下列哪种技术不属于深度学习的核心组件()

A.卷积层B.全连接层C.支持向量机D.池化层

关于过拟合的说法,错误的是()

A.过拟合是指模型在训练集上表现好,在测试集上表现差

B.增加训练数据量可以有效缓解过拟合

C.正则化(L1、L2)是解决过拟合的常用方法

D.过拟合问题只存在于深度学习模型中

在强化学习中,智能体与环境交互的核心要素不包括()

A.状态(State)B.动作(Action)C.损失(Loss)D.奖励(Reward)下列关于卷积神经网络(CNN)的说法,正确的是()

A.CNN只能处理图像数据,无法处理文本数据

B.卷积操作的核心作用是提取局部特征

C.池化层的主要作用是增加特征图的维度

D.全连接层位于CNN的最前端

关于模型评估指标,下列说法错误的是()

A.准确率(Accuracy)适用于各类不平衡数据集

B.精确率(Precision)关注预测为正类的样本中实际为正类的比例

C.召回率(Recall)关注实际为正类的样本中被正确预测的比例

D.F1分数是精确率和召回率的调和平均数

下列哪种学习方式不需要标注数据()

A.半监督学习B.无监督学习C.监督学习D.弱监督学习

关于Transformer模型的说法,正确的是()

A.Transformer模型的核心是循环神经网络(RNN)

B.自注意力机制是Transformer的核心组件

C.Transformer无法并行计算,训练效率较低

D.Transformer只能用于自然语言处理任务

二、简答题(每题5分,共30分)简述人工智能、机器学习与深度学习三者之间的关系。说明监督学习、无监督学习和强化学习的核心区别,并各举一个典型应用场景。简述梯度下降算法的基本原理,以及随机梯度下降(SGD)与批量梯度下降(BGD)的差异。什么是正则化?L1正则化和L2正则化的区别是什么?它们各自如何缓解过拟合?简述卷积神经网络中卷积层和池化层的作用,为什么CNN在图像识别任务中表现优异?什么是注意力机制?它在自然语言处理或计算机视觉任务中有什么作用?三、分析题(每题10分,共20分)某电商平台计划构建一个用户购买行为预测模型,用于预测用户是否会购买某款商品。请回答以下问题:

(1)该问题属于什么类型的机器学习任务?(2分)

(2)请列举3种适合该任务的算法,并说明选择理由。(4分)

(3)在模型训练过程中,若出现训练集准确率很高但测试集准确率很低的情况,可能是什么原因?如何解决?(4分)

在图像分类任务中,常用的深度学习模型有CNN、ResNet、DenseNet等。请回答以下问题:

(1)传统CNN模型在深度增加时会出现什么问题?(3分)

(2)ResNet模型是如何解决上述问题的?请简述其核心思想和结构。(4分)

(3)与ResNet相比,DenseNet的创新点是什么?(3分)

四、编程题(每题15分,共30分)使用Python实现一个简单的线性回归模型,用于预测房屋价格(已知房屋面积为特征x,房屋价格为标签y)。要求:

(1)手动实现梯度下降优化算法(不使用sklearn等第三方库的线性回归接口);(8分)

(2)计算模型的均方误差(MSE)作为评估指标;(3分)

(3)给出模型训练过程中的损失变化趋势(可文字描述或绘制示意图思路)。(4分)

使用PyTorch或TensorFlow实现一个简单的卷积神经网络(CNN),用于MNIST手写数字分类。要求:

(1)定义CNN模型结构(包含至少2个卷积层、2个池化层和1个全连接层);(6分)

(2)设置合理的损失函数、优化器和训练参数(学习率、迭代次数等);(4分)

(3)实现模型的训练和测试流程,并计算测试集准确率。(5分)

参考答案及评分标准一、选择题(每题2分,共20分)A解析:1956年达特茅斯会议标志着人工智能概念正式诞生,图灵测试是用于判断机器是否具有智能的标准。C解析:K-Means是聚类算法(无监督),线性回归是回归算法(监督),PCA是降维算法(无监督)。C解析:交叉熵损失适用于分类问题,均方误差适用于回归问题;不同模型可根据任务选择不同损失函数。C解析:支持向量机是传统机器学习算法,不属于深度学习核心组件。D解析:过拟合问题存在于所有机器学习模型中,包括传统机器学习和深度学习。C解析:强化学习核心要素包括状态、动作、奖励、策略等,损失是监督学习中的概念。B解析:CNN可处理文本数据(如文本分类的一维卷积);池化层作用是降维、保留关键特征;全连接层位于CNN后端。A解析:准确率在不平衡数据集上有局限性,例如负样本占比极高时,模型仅预测负样本也能获得高准确率。B解析:无监督学习不需要标注数据,通过挖掘数据内在规律学习;半监督学习和弱监督学习需要少量标注数据。B解析:Transformer核心是自注意力机制,而非RNN;Transformer支持并行计算,训练效率高;可应用于NLP、CV等多个领域。二、简答题(每题5分,共30分)参考答案:

(1)人工智能是上位概念,旨在让机器具备人类级别的智能;(1分)

(2)机器学习是实现人工智能的核心技术之一,通过数据训练让模型从经验中学习,无需显式编程;(2分)

(3)深度学习是机器学习的一个分支,基于深度神经网络(多层感知机),擅长处理海量数据,是当前人工智能领域的研究热点。(2分)

关系总结:深度学习⊂机器学习⊂人工智能。

参考答案:

核心区别:数据标注要求不同,学习目标不同。(1分)

(1)监督学习:需要带标注的训练数据,学习输入到输出的映射关系;应用场景:图像分类、垃圾邮件识别、房价预测。(1.5分)

(2)无监督学习:不需要标注数据,学习数据的内在结构和规律;应用场景:用户聚类、异常检测、数据降维(PCA)。(1.5分)

(3)强化学习:通过智能体与环境交互获得奖励信号,学习最优决策策略;应用场景:自动驾驶、机器人控制、游戏AI(AlphaGo)。(1分)

参考答案:

基本原理:梯度下降是一种优化算法,通过沿损失函数的负梯度方向迭代更新模型参数,使损失函数值最小化,找到最优参数解。(2分)

差异:

(1)批量梯度下降(BGD):每次迭代使用全部训练数据计算梯度,优点是梯度估计准确、收敛稳定,缺点是计算量大、训练效率低,不适合大数据集。(1.5分)

(2)随机梯度下降(SGD):每次迭代使用单个训练样本计算梯度,优点是计算量小、训练速度快,适合大数据集,缺点是梯度波动大、收敛不稳定,可能在最优解附近震荡。(1.5分)

参考答案:

正则化:在模型损失函数中加入正则项,限制模型参数的取值范围,降低模型复杂度,从而缓解过拟合。(1分)

区别及缓解过拟合机制:

(1)L1正则化:正则项为参数的绝对值之和,会使部分参数变为0,实现特征选择,将复杂模型简化为稀疏模型,从而缓解过拟合。(2分)

(2)L2正则化:正则项为参数的平方和,会使参数值整体变小但不会为0,降低模型对个别特征的敏感度,使模型更加平滑,从而缓解过拟合。(2分)

参考答案:

(1)卷积层作用:提取图像的局部特征(如边缘、纹理、形状等),通过权值共享减少模型参数,降低计算量。(1.5分)

(2)池化层作用:对卷积提取的特征图进行降维,保留关键特征,减少参数数量和计算量,同时提高模型的平移不变性(对图像微小位移不敏感)。(1.5分)

(3)CNN在图像识别中表现优异的原因:①权值共享大幅减少参数,降低过拟合风险;②局部感受野能够有效捕捉图像局部特征;③池化层增强模型的鲁棒性;④深层结构可逐层提取从低级到高级的特征(如从边缘到物体轮廓再到完整物体),符合人类视觉认知规律。(2分)

参考答案:

注意力机制:模拟人类视觉和认知中的注意力分配机制,在处理输入数据时,自动聚焦于重要的信息,给予其更高的权重,同时忽略不重要的信息。(2分)

作用:

(1)自然语言处理:在机器翻译、文本摘要等任务中,可捕捉文本中词语之间的依赖关系(如长距离依赖),明确上下文语义关联,提升模型对语义的理解能力。(1.5分)

(2)计算机视觉:在图像分类、目标检测等任务中,可聚焦于图像中的关键区域(如目标物体),减少背景噪声干扰,提高模型对目标的识别精度。(1.5分)

三、分析题(每题10分,共20分)参考答案:

(1)该问题属于二分类任务(预测“购买”或“不购买”两个类别)。(2分)

(2)适合的算法及理由:

①逻辑回归:模型简单、训练速度快,可解释性强,能输出概率值,便于判断用户购买的可能性;适合处理线性可分的特征数据。(1.5分)

②决策树:可处理非线性特征关系,无需对数据进行复杂预处理(如归一化),能自动学习特征交互关系,可解释性强,适合电商用户行为数据的复杂特征场景。(1.5分)

③随机森林:基于多个决策树集成,降低了单一决策树的过拟合风险,泛化能力更强,对异常值和噪声数据具有较好的鲁棒性,适合处理海量电商用户数据。(1分)

(3)原因:出现过拟合现象,模型在训练集上过度学习了数据的规律,包括噪声和异常值,导致在未见过的测试集上泛化能力差。(2分)

解决方法:①增加训练数据量,让模型学习更通用的规律;②采用正则化技术(L1、L2)限制模型复杂度;③对模型进行剪枝(如决策树剪枝);④采用集成学习方法(如随机森林、梯度提升树);⑤降低模型复杂度(如减少决策树深度、减少神经网络层数)。(2分,答对4点即可)

参考答案:

(1)传统CNN模型深度增加时会出现梯度消失或梯度爆炸问题,导致模型无法有效训练;同时会出现过拟合和训练效率下降的问题,随着深度增加,模型性能可能达到瓶颈后反而下降。(3分)

(2)ResNet通过引入残差连接(ResidualConnection)解决梯度消失/爆炸问题。(1分)

核心思想:允许网络直接跳过部分卷积层,将浅层特征直接传递到深层,使深层网络可以学习残差映射(即输入与输出的差值),而非直接学习复杂的映射关系。当模型深度增加时,残差连接可让梯度通过“shortcut”直接反向传播到浅层,避免梯度消失。(2分)

结构:基本残差块由两个卷积层、批量归一化(BN)层和ReLU激活函数组成,同时包含一条从输入到输出的shortcut路径(当输入输出维度不同时,通过1×1卷积调整维度)。多个残差块堆叠形成深层ResNet模型。(1分)

(3)DenseNet的创新点是引入密集连接(DenseConnection):每个卷积层的输出都会作为后续所有卷积层的输入,形成“稠密”的连接关系。(1分)

与ResNet的残差连接(仅传递前一层或几层的特征)不同,DenseNet的密集连接可充分复用前面所有层的特征,提升特征传播效率,减少参数冗余;同时通过特征融合增强模型的表达能力,缓解过拟合问题。此外,DenseNet通过1×1卷积实现特征降维,解决了密集连接带来的计算量增大问题。(2分)

四、编程题(每题15分,共30分)参考答案(Python实现):

```python

importnumpyasnp

importmatplotlib.pyplotasplt

#1.生成模拟数据(房屋面积x,房屋价格y)

np.random.seed(42)#固定随机种子,保证结果可复现

x=np.random.rand(100,1)*10#房屋面积:0-10㎡,100个样本

y=2*x+5+np.random.randn(100,1)*0.5#真实模型:y=2x+5+噪声

#2.手动实现线性回归(y=wx+b)与梯度下降

classLinearRegressionGD:

def__init__(self,learning_rate=0.01,n_iterations=1000):

self.lr=learning_rate#学习率

self.n_iters=n_iterations#迭代次数

self.w=None#权重

self.b=None#偏置

self.loss_history=[]#记录损失变化

deffit(self,X,y):

n_samples,n_features=X.shape

#初始化参数

self.w=np.zeros((n_features,1))

self.b=0

#梯度下降迭代

for_inrange(self.n_iters):

#预测值

y_pred=np.dot(X,self.w)+self.b

#计算均方误差(MSE)

mse=np.mean((y_pred-y)**2)

self.loss_history.append(mse)

#计算梯度

dw=(2/n_samples)*np.dot(X.T,(y_pred-y))

db=(2/n_samples)*np.sum(y_pred-y)

#更新参数

self.w-=self.lr*dw

self.b-=self.lr*db

defpredict(self,X):

returnnp.dot(X,self.w)+self.b

#3.模型训练

model=LinearRegressionGD(learning_rate=0.05,n_iterations=500)

model.fit(x,y)

#4.计算测试集MSE(此处用训练集演示,实际应划分训练/测试集)

y_pred=model.predict(x)

test_mse=np.mean((y_pred-y)**2)

print(f"模型参数:w={model.w[0][0]:.4f},b={model.b:.4f}")

print(f"测试集均方误差(MSE):{test_mse:.4f}")

#5.绘制损失变化趋势

plt.plot(range(model.n_iters),model.loss_history)

plt.xlabel("Iteration")

plt.ylabel("MSELoss")

plt.title("LossChangeDuringTraining")

plt.show()

```

评分标准:

(1)梯度下降实现(8分):参数初始化正确(1分)、预测值计算正确(1分)、MSE损失计算正确(1分)、梯度计算正确(2分)、参数更新逻辑正确(2分)、训练流程完整(1分);

(2)MSE计算(3分):正确实现预测值与真实值的均方误差计算,输出结果合理;

(3)损失变化趋势(4分):正确记录训练过程中的损失值(2分),能通过绘图或文字描述损失随迭代次数递减的趋势(2分,文字描述示例:随着迭代次数增加,MSE损失逐渐降低,最终趋于稳定)。

参考答案(PyTorch实现):

```python

importtorch

importtorch.nnasnn

importtorch.optimasoptim

fromtorchvisionimportdatasets,transforms

fromtorch.utils.dataimportDataLoader

#1.数据预处理与加载

transform=transforms.Compose([

transforms.ToTensor(),#转换为Tensor,归一化到[0,1]

transforms.Normalize((0.1307,),(0.3081,))#MNIST数据集均值和标准差

])

#加载MNIST数据集

train_dataset=datasets.MNIST(root='.data',train=True,download=True,transform=transform)

test_dataset=datasets.MNIST(root='./data',train=False,download=True,transform=transform)

#数据加载器

train_loader=DataLoader(train_dataset,batch_size=64,shuffle=True)

test_loader=DataLoader(test_dataset,batch_size=64,shuffle=False)

#2.定义CNN模型结构

classSimpleCNN(nn.Module):

def__init__(self):

super(SimpleCNN,self).__init__()

#卷积层1:输入1通道(灰度图),输出16通道,卷积核3×3,步长1,padding=1

self.conv1=nn.Conv2d(1,16,3,1,1)

#池化层1:最大池化,核2×2,步长2

self.pool1=nn.MaxPool2d(2,2)

#卷积层2:输入16通道,输出32通道,卷积核3×3,步长1,padding=1

self.conv2=nn.Conv2d(16,32,3,1,1)

#池化层2:最大池化,核2×2,步长2

self.pool2=nn.MaxPool2d(2,2)

#全连接层1:输入维度32×7×7(MNIST图像28×28,经过两次池化后变为7×7),输出128

self.fc1=nn.Linear(32*7*7,128)

#全连接层2:输出10个类别(0-9)

self.fc2=nn.Linear(128,10)

#ReLU激活函数

self.relu=nn.ReLU()

defforward(self,x):

x=self.pool1(self.relu(self.conv1(x)))#conv1->ReLU->pool1

x=self.pool2(self.relu(self.conv2(x)))#conv2->ReLU->pool2

x=x.view(-1,32*7*7)#展平特征图

x=self.relu(self.fc1(x))#fc1->ReLU

x=self.fc2(x)#fc2输出

returnx

#3.模型初始化、损失函数与优化器设置

device=torch.device('cuda'iftorch.cuda.is_available()else'cpu')#优先使用GPU

model=SimpleCNN().to(device)

criterion=nn.CrossEntropyLoss()#交叉熵损失函数(适用于分类任务)

optimizer=optim.Adam(model.parameters(),lr=0.001)#Adam优化器,学习率0.001

#4.模型训练

n_epochs=5#迭代次数

model.train()#训练模式

forepochinrange(n_epochs):

running_loss=0.0

forbatch_idx,(data,target)inenumerate(train_loader):

data,target=data.to(device),target.to(device)

#前向传播

outputs=model(data)

loss=criterion(outputs,target)

#反向传播与参数更新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论