AI-Agent 面试题汇总 - 深度学习篇

1. 谈谈深度学习中的归一化问题

深度学习中的归一化,核心目的是让不同层、不同特征的数值分布更稳定,从而加速训练并提高收敛稳定性。常见归一化包括输入归一化(如像素缩放到[0,1])、BatchNorm、LayerNorm、GroupNorm。BatchNorm在mini-batch维度统计均值方差,适合CNN场景;LayerNorm在特征维度统计,常用于NLP和Transformer。归一化可以缓解梯度消失/爆炸、允许更大学习率、降低参数初始化敏感性。

import torch.nn as nn

# CNN里常见 BatchNorm2d
cnn_block = nn.Sequential(
    nn.Conv2d(3, 64, 3, padding=1),
    nn.BatchNorm2d(64),
    nn.ReLU()
)

# Transformer里常见 LayerNorm
ln = nn.LayerNorm(768)

2. LSTM结构推导,为什么比RNN好?

LSTM在RNN基础上引入“门控机制”和“细胞状态”:

  • 遗忘门:控制历史信息保留多少
  • 输入门:控制当前输入写入多少
  • 输出门:控制输出多少状态它通过加法路径维护长期记忆,能显著缓解普通RNN在长序列上的梯度消失问题。因此在长文本、语音等时序任务中,LSTM通常比基础RNN记忆能力更强、训练更稳定。
import torch.nn as nn

rnn = nn.RNN(input_size=128, hidden_size=256, batch_first=True)
lstm = nn.LSTM(input_size=128, hidden_size=256, batch_first=True)

3. Sigmoid、Tanh、ReLU这三个激活函数有什么优点或不足?

  • Sigmoid:输出(0,1),适合概率建模;缺点是两端饱和导致梯度接近0,且输出非零中心。
  • Tanh:输出(-1,1),零中心,通常比sigmoid收敛好;但仍有饱和区梯度消失问题。
  • ReLU:正半轴梯度恒定、计算简单、收敛快;缺点是负半轴梯度为0,可能出现“神经元死亡”。工程上隐藏层多用ReLU族(ReLU/LeakyReLU/GELU),输出层按任务选择sigmoid或softmax。
import torch
import torch.nn.functional as F

x = torch.tensor([-2.0, -0.5, 0.0, 1.0, 3.0])
print(torch.sigmoid(x))
print(torch.tanh(x))
print(F.relu(x))

4. 为什么引入非线性激励函数?

如果网络每层都只做线性变换,多层叠加后仍等价于一层线性变换,模型表达能力有限,无法拟合复杂非线性关系。引入激活函数后,网络可以逼近复杂函数,实现高层语义抽象,这是深度学习有效的核心原因之一。

5. 为什么在神经网络中 ReLU 往往优于 Tanh 和 Sigmoid?

ReLU的正区间梯度不衰减,能减少深层网络训练时的梯度消失;同时计算仅需阈值操作,速度快。相比Sigmoid/Tanh,ReLU在深层网络中通常收敛更快、效果更稳。但ReLU也有“死亡神经元”问题,因此很多场景会用LeakyReLU、PReLU、GELU改进。

import torch.nn as nn

act1 = nn.ReLU()
act2 = nn.LeakyReLU(0.1)
act3 = nn.GELU()

6. 为什么LSTM里既有Sigmoid又有Tanh,而不是统一一种?

Sigmoid输出0~1,天然适合作“门控开关”(保留/过滤信息比例);Tanh输出-1~1,适合作状态候选值,便于表达正负语义。两者分工明确:Sigmoid负责“控制流量”,Tanh负责“表达内容”。统一成一种会削弱门控机制或表达能力。

7. 如何解决RNN梯度爆炸和梯度消失问题?

常见手段:

  1. 使用LSTM/GRU替代基础RNN
  2. 梯度裁剪(gradient clipping)防止爆炸
  3. 合理初始化(如Xavier/He)
  4. 调整学习

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论
这些都是被问到的吗,感觉好细节
点赞 回复 分享
发布于 03-16 21:05 北京
LSTM门控细节
点赞 回复 分享
发布于 03-11 11:15 湖北
LSTM门控细节
点赞 回复 分享
发布于 03-10 23:37 河北
蹲个面经
点赞 回复 分享
发布于 03-10 23:03 河北
这些基本都会问吗
点赞 回复 分享
发布于 03-10 22:17 云南
感谢分享 我发现自学很多没接触过的东西
点赞 回复 分享
发布于 03-10 21:42 黑龙江

相关推荐

04-24 12:05
门头沟学院 Java
攒攒人品!有面试过同岗的朋友欢迎评论区交流1. 项目拷打:深挖实习中的 AI Agent 架构与 Java 后端落地细节。2. Java 线程池如何自定义拒绝策略?(考察 RejectedExecutionHandler 接口实现)3. 场景题:QPS 为 100,平均响应时间(RT)为 100ms 的 IO 密集型场景,你会如何设置线程数?4. 动态调优:在不重启服务的情况下,如何动态调整线程池参数?结合配置中心(如 Nacos)的实现思路是什么?5. 线程池动态刷新时,是直接替换整个线程池对象,还是调用内部 API 修改?两者有何优劣?6. MySQL 分页查询(Deep Pagination)在数据量大时为什么会变慢?7. 子查询优化分页的原理是什么?在联合索引覆盖的情况下,子查询节省的开销是遍历、回表还是 CPU?8. 慢 SQL 排查:除了索引缺失和数据量大,还有哪些因素(如锁、连接池、长事务、系统负载)会导致 SQL 变慢?9. 线上发生 OOM(内存溢出)时的排查路径是什么?如何通过快照定位到具体的代码行?10. 详细描述你项目中的 Multi-Agent 三层架构(Router -> Manager -> Sub-Agent)的设计逻辑。11. 在 Agent 开发中,如何通过 Prompt 实现高效的指代消除和意图识别?12. 提示词工程高阶技巧:什么是思维链(CoT)和思维树(ToT)?它们分别适用什么场景?13. RAG 实战:你的文档切片(Chunking)策略是什么?如何处理 Markdown 等结构化文档?14. 检索优化:为什么在 Embedding 向量检索的基础上还要引入 BM25 关键词检索?15. 评估体系:如何客观评价 RAG 的效果?谈谈你对上下文忠诚度、答案相关度的理解。16. 模型决策:对于 200 组左右的固定 QA 知识库,你会选择 RAG、Lora 微调还是长上下文直接输入?17. 微调难点:在样本量极少的情况下,如何解决 Lora 微调容易出现的过拟合或欠拟合问题?
查看17道真题和解析
点赞 评论 收藏
分享
4/20小厂agent一面复盘1、自我介绍,今天加了句 不知道我的技术栈对不对口 ,面试官就说他们也是go+agent,挺对口的,放松了一点点2、第二个项目2.1 LangGraph和LangChain的区别。LangGraph是状态机,对循环/分支的支持更好,比如我这里的路由会根据用户的问题走不同的分支,blabla面试官问用到循环了吗,我说效果不好的话会循环回去,但我这里比较简单【补充可控性/可观测行的差异】:状态显示、便于trace、调参。3.2 多agent了解吗没在项目里用过,只是了解。比如plan一个agent、执行一个agent、评估一个agent,她们各自分工又互相协作完成复杂的任务。【补充多agent适用场景、代价】适合做任务可分解、子结果可验证的场景,代价是token成本上涨、延迟变慢、调试复杂。3.3 学一下多agent的通信机制。函数调用、RPC。【消息格式】:需要包含role、内容、ctx等(json)【共享状态】:共享全局记忆,任务状态记录、中间过程记录【调度方式】:集中式、去中心【一致性】:冲突解决、投票/评分3.4 GraphRAG的优点传统的RAG只能做向量检索,GraphRAG的话加上实体抽取利用多跳机制,不需要检索全库的向量,而且通过扩展邻域检索更加相近的内容。【多跳关系推理】:不仅是相似度检索,更是 因果/关联链条【可解释性】:给出路径/邻居/证据块3.5 怎么做容错的?没做。只做了证据溯源,相当于肉眼判断吧。答得有点灾难【输入层】:提问非领域---澄清【检索层】:证据不足---换检索策略、调topk;图检索失败--回退向量检索。【生成层】:避免胡编/与证据不一致---触发检查【harness】:记录成样本3、第一个项目3.1 redis的缓存穿透和击穿。击穿用的singleflight、穿透用的空值缓存。别的防穿透方法就是布隆过滤器、加锁、或者也可以做非法请求校验(毕竟穿透解决的是非法请求)【缓存雪崩】:随机ttl抖动3.2 缓存在项目中是怎么用的?一个是用户个人页面的视频列表缓存,一个是姿态分析结果的缓存,通过前端轮询来获取分析数据。【补充key、val】:视频列表缓存,key是userID,val是视频元数据的json。分析结果缓存,key是视频id、val是结构化的建议。3.3 webSocket和SSE了解吗了解一点,但项目里没用到。一个是全双工,一个是流式传输。【如果要改进】可以用SSE试试推送分析进度3.4FFmpeg的瓶颈在cpu还是io答不上,面试官说在IO,可以利用redis的IO多路复用优化并发。【cpu】:top/htop---将分辨率【磁盘】:iostat----分片上传3.5 worker的数量如何确定记不清了,只记得和核有关。负载增加的话可以动态扩容。3.6 goroutine panic了会怎么样?栈展开、defer、recover捕获【补充配合ctx做取消】3.7 追问recover里面做了什么业务处理?没做业务处理,制作了错误输出。3.8 context父context取消,子也会取消。值传递的话http请求链用到了元数据传递以及tracer【加NACK】消息重试/放入死信队列4 aicoding代码质量、review怎么做的?我只回答了测试。面试官说可以借助rules、skill做限制【生成前】prompt/rules 限制技术选型、明确接口定义、必须做单测、必须错误处理【生成中】skill定义业务逻辑等等【生成后】:单测、并发安全
查看16道真题和解析
点赞 评论 收藏
分享
评论
2
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务