北京工业大学2025年计算机学院(人工智能)试题及答案_第1页
北京工业大学2025年计算机学院(人工智能)试题及答案_第2页
北京工业大学2025年计算机学院(人工智能)试题及答案_第3页
北京工业大学2025年计算机学院(人工智能)试题及答案_第4页
北京工业大学2025年计算机学院(人工智能)试题及答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

北京工业大学2025年计算机学院(人工智能)试题及答案一、单项选择题(每题2分,共20分)1.在深度学习中,若使用ReLU激活函数,下列关于梯度消失现象的描述正确的是A.ReLU完全消除梯度消失,因其导数恒为1B.ReLU在负区间梯度为0,仍可能出现“神经元死亡”导致的梯度流中断C.ReLU在正区间梯度呈指数衰减,故依然存在梯度消失D.ReLU仅对卷积层有效,对全连接层无影响答案:B解析:ReLU在x<0时导数为0,若某神经元输出长期为负,则其梯度恒为0,权重永不更新,称为“神经元死亡”。虽然正区间梯度恒为1,但若网络层数极深,仍可能因死亡神经元阻断梯度流,间接造成训练困难。2.在Transformer架构中,ScaledDotProductAttention的缩放因子为A.1/d_kB.1/√d_kC.√d_kD.d_k答案:B解析:为防止d_k较大时点积方差过大导致softmax梯度饱和,Transformer引入缩放因子1/√d_k,使注意力分布更平滑,梯度更稳定。3.下列关于Bagging与Boosting的对比,错误的是A.Bagging可并行训练,Boosting需串行B.Bagging主要降低方差,Boosting主要降低偏差C.Bagging对异常值敏感,Boosting对异常值鲁棒D.随机森林属于Bagging,XGBoost属于Boosting答案:C解析:Boosting通过迭代调整样本权重,对异常值敏感;Bagging通过Bootstrap采样平均,对异常值鲁棒。故C项说反。4.在PyTorch中,若模型已调用model.cuda(),而输入张量仍留在CPU,则运行时会A.自动把张量迁移到GPUB.抛出RuntimeError:ExpectedobjectofdevicetypecudaC.静默降级为CPU计算D.触发PyTorch自动混合精度答案:B解析:PyTorch要求设备一致,否则会显式报错,提示期望cuda却得到cpu。5.在A搜索中,若启发函数h(n)满足h(n)≡0,则A退化为A.广度优先搜索B.深度优先搜索C.一致代价搜索(Dijkstra)D.迭代加深搜索答案:C解析:当h(n)=0时,f(n)=g(n),A仅根据已付出代价扩展节点,等价于Dijkstra算法。6.在联邦学习场景下,客户端上传本地模型梯度而非原始数据,主要目的是A.降低服务器内存占用B.提高模型精度C.保护用户隐私D.减少通信轮次答案:C解析:梯度上传避免原始数据泄露,配合安全聚合可进一步防止推理攻击。7.若对图像进行随机旋转增强,旋转角度在[30°,30°]均匀采样,则该变换的雅可比行列式A.恒为1B.恒为0C.与旋转角θ成线性关系D.与图像内容有关答案:A解析:二维刚体旋转的雅可比行列式为1,体积(面积)保持不变,故概率密度无需重归一化。8.在Python中,下列代码输出为importnumpyasnpa=np.array([1,2,3])b=ab+=1print(a)A.[123]B.[234]C.[012]D.抛出ValueError答案:B解析:b与a共享内存,原地加法修改同一数组。9.在BERT预训练中,MaskedLanguageModel任务掩码比例为15%,其中80%用[MASK],10%用随机词,10%不变。如此设计的主要考虑是A.减少预训练与微调阶段的不匹配B.降低计算量C.增加负样本D.缓解过拟合答案:A解析:微调阶段无[MASK]标记,若预训练全部用[MASK],则出现分布偏移。部分保留原词可缓解Mismatch。10.在深度强化学习中,使用ExperienceReplay的主要作用是A.降低环境交互成本B.打破样本间时序相关性C.提高奖励稀疏场景的探索D.实现onpolicy训练答案:B解析:ReplayBuffer随机采样打破序列相关性,使神经网络训练满足独立同分布假设,稳定收敛。二、多项选择题(每题3分,共15分,多选少选均不得分)11.下列技术可用于缓解卷积神经网络过拟合A.DropoutB.BatchNormalizationC.L2权重衰减D.数据增强E.增加通道数答案:ABCD解析:增加通道数会扩大模型容量,反而可能加剧过拟合。12.关于图卷积网络GCN,下列说法正确的是A.频域GCN需对拉普拉斯矩阵做特征分解B.空域GCN可直接聚合邻居特征C.邻接矩阵自环添加可缓解节点特征平滑过快D.GCN无法处理有向图E.GraphSAGE采用采样邻居策略,可归纳式学习答案:ABCE解析:GCN可通过不对称邻接处理有向图,D错误。13.在CUDA编程中,以下操作会导致隐式同步A.cudaMemcpy从设备到主机B.cudaDeviceSynchronize()C.cudaMalloc()D.访问页锁定主机内存E.线程块内__syncthreads()答案:ABC解析:__syncthreads()为块内同步,非主机端隐式同步。14.下列属于无监督学习算法A.kmeansB.PCAC.DBSCAND.AprioriE.CRF答案:ABCD解析:CRF为判别式概率图模型,需标注序列,属于监督学习。15.在模型压缩领域,可获得稀疏权重的方法包括A.magnitudepruningB.variationaldropoutC.lotterytickethypothesis迭代剪枝D.knowledgedistillationE.weightclustering答案:ABC解析:蒸馏与聚类降低位宽或参数量,但不直接产生稀疏掩码。三、填空题(每空2分,共20分)16.若某卷积层输入尺寸为112×112×64,采用128个3×3卷积核,padding=1,stride=2,则输出尺寸为________×________×________。答案:56×56×128解析:O=(I+2P−K)/S+1=(112+2−3)/2+1=56。17.在Python3.10中,表达式(lambdax:xifxelse[0])([])的值为________。答案:[0]解析:空列表为False,触发else分支。18.在Transformer中,若隐藏维度d_model=512,多头注意力头数h=8,则每个头的维度d_k=________。答案:64解析:512/8=64。19.在强化学习中,MDP五元组表示为(S,A,P,R,________)。答案:γ(折扣因子)20.若某算法时间复杂度为O(nlogn),在输入规模扩大4倍时,理论运行时间约增大________倍。答案:4×log₂4=8解析:T(4n)/T(n)=4log(4n)/logn≈4(1+log4/logn),当n较大时log4可忽略,近似8。21.在C++中,声明一个指向常量整数的指针语法为________。答案:constintp;22.在Linux系统调用中,用于创建子进程的函数为________。答案:fork()23.若浮点数采用IEEE754单精度,二进制表示为11000001101000000000000000000000,则其十进制真值为________。答案:−(1.01)₂×2^(131−127)=−1.25×16=−20解析:符号位1,指数131,尾数1.01₂。24.在PyTorch里,将张量x从float32转换为bfloat16的函数为________。答案:x.to(torch.bfloat16)25.在图论中,n个节点的无向完全图边数为________。答案:n(n−1)/2四、判断题(每题1分,共10分,正确写“T”,错误写“F”)26.梯度下降法在凸函数上一定能找到全局最优解。答案:T解析:凸函数无局部极小,步长合适必收敛。27.在卷积神经网络中,空洞卷积可以扩大感受野而不增加参数量。答案:T28.使用ReLU激活的网络一定不会出现梯度爆炸。答案:F解析:权重初始化过大仍可导致前向输出指数增长,引发爆炸。29.在Python中,list的append操作平均时间复杂度为O(1)。答案:T解析:摊还分析,偶尔扩容O(n),均摊O(1)。30.在BERT中,NSP任务用于判断两个句子是否相邻,已被RoBERTa证明对下游任务无益并移除。答案:T31.在CUDA中,warp大小为16。答案:F解析:warp大小为32。32.对于任意随机变量X,有E[X²]≥(E[X])²。答案:T解析:方差非负。33.在kfold交叉验证中,k越大必然导致偏差越小、方差越大。答案:F解析:k增大训练集比例升高,偏差减小,但估计方差取决于数据划分,未必单调增。34.使用混合精度训练时,损失缩放(lossscaling)是为了防止梯度下溢。答案:T35.在图神经网络中,过度深层的网络会导致节点表示趋于相同,称为oversmoothing。答案:T五、简答题(每题8分,共24分)36.描述BatchNormalization在前向传播与反向传播中的数学过程,并解释其如何缓解内部协变量偏移(InternalCovariateShift)。答案:前向:对minibatchB={x₁…x_m},计算μ_B=1/m∑x_i,σ²_B=1/m∑(x_i−μ_B)²,归一化x̂_i=(x_i−μ_B)/√(σ²_B+ε),再线性变换y_i=γx̂_i+β。反向:链式法则,需计算∂L/∂γ=∑∂L/∂y_i·x̂_i,∂L/∂β=∑∂L/∂y_i,以及∂L/∂x_i通过x̂_i、μ_B、σ²_B复合求导。缓解ICS:归一化使每层输入分布保持稳定,γ、β保留表达能力,降低对参数初值与学习率的敏感度,平滑损失曲面,允许更大学习率,加速收敛。37.对比RNN、LSTM、GRU在捕捉长距离依赖时的机制差异,并给出各自主要公式。答案:RNN:h_t=tanh(W_hh_{t−1}+W_xx_t),梯度连乘导致指数衰减或爆炸。LSTM:引入输入门i_t=σ(W_i·[h_{t−1},x_t]+b_i),遗忘门f_t,输出门o_t,候选记忆c̃_t=tanh(W_c·[h_{t−1},x_t]+b_c),记忆细胞c_t=f_t⊙c_{t−1}+i_t⊙c̃_t,隐藏状态h_t=o_t⊙tanh(c_t)。门控机制允许信息长期保存。GRU:合并细胞与隐藏状态,更新门z_t=σ(W_z·[h_{t−1},x_t]),重置门r_t,候选h̃_t=tanh(W·[r_t⊙h_{t−1},x_t]),最终h_t=(1−z_t)⊙h_{t−1}+z_t⊙h̃_t。参数更少,计算量降低,性能与LSTM接近。38.解释什么是“梯度累积”,并给出在GPU显存受限时,如何用梯度累积实现等价于大批次的训练流程与伪代码。答案:梯度累积:将大批次数据拆分为若干小批次,前向反向多次,累加梯度,最后一次性更新参数,等价于大批次。伪代码:```model.zero_grad()accum_steps=4fori,(x,y)inenumerate(loader):loss=model(x,y)/accum_stepsloss.backward()if(i+1)%accum_steps==0:optimizer.step()model.zero_grad()```通过1/accum_steps缩放损失,确保梯度平均,内存峰值降低为原来的1/4。六、编程与计算题(共41分)39.(10分)手写一个NumPy实现的单通道2D卷积前向传播函数,要求支持任意stride、padding,禁止调用np.convolve或外部库。答案:```pythondefconv2d(x,w,b,stride,pad):x_padded=np.pad(x,((pad,pad),(pad,pad)),'constant')H,W=x_padded.shapeKh,Kw=w.shapeSh,Sw=strideifisinstance(stride,tuple)else(stride,stride)Oh=(HKh)//Sh+1Ow=(WKw)//Sw+1out=np.empty((Oh,Ow))foriinrange(Oh):forjinrange(Ow):patch=x_padded[iSh:iSh+Kh,jSw:jSw+Kw]out[i,j]=np.sum(patchw)+breturnout```解析:四重循环最内层用广播乘法累加,复杂度O(Oh·Ow·Kh·Kw)。40.(10分)给定一个无向图,节点数n≤10⁴,边数m≤2×10⁴,边权为正。求1号节点到所有节点的最短距离,若不可达输出−1。请写出完整C++代码,使用优先队列优化的Dijkstra,时间复杂度O(mlogn)。答案:```cppinclude<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constllINF=1e18;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intn,m;cin>>n>>m;vector<vector<pair<int,int>>>g(n+1);for(inti=0;i<m;i++){intu,v,w;cin>>u>>v>>w;g[u].emplace_back(v,w);g[v].emplace_back(u,w);}vector<ll>dist(n+1,INF);priority_queue<pair<ll,int>,vector<pair<ll,int>>,greater<>>pq;dist[1]=0;pq.push({0,1});while(!pq.empty()){auto[d,u]=pq.top();pq.pop();if(d>dist[u])continue;for(auto[v,w]:g[u]){if(dist[v]>d+w){dist[v]=d+w;pq.push({dist[v],v});}}}for(inti=1;i<=n;i++){cout<<(dist[i]==INF?1:dist[i])<<(i==n?'\n':'');}return0;}```41.(10分)在PyTorch中实现自定义autograd函数,完成矩阵的幂运算:Y=X^p(逐元素),要求正确实现前向与反向,支持任意实数p。答案:```pythonimporttorchclassPow(torch.autogr

温馨提示

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

评论

0/150

提交评论