
1. 这份A卷到底在考什么——先看清DeeCamp笔试的筛选逻辑先说结论如果你拿到的是一套创新工场DeeCamp 2018年人工智能训练营在线笔试第一套A卷那你手里的东西远不止是一张试卷它是一个典型的“AI算法岗入门级能力画像”。我见过不少同学把这种卷子当成普通期末考试来准备狂背公式和名词解释结果考完觉得“都会做”最终却没有收到面试通知。原因很简单这份卷子考的不是你“知道什么”而是你在有限时间里“能推导什么、能实现什么、能不能用最直白的方式讲清楚一个复杂模型”。先交代一下背景。DeeCamp是创新工场面向全球高校学生发起的人工智能训练营2018年是第二届。那年报名人数相比第一届有了明显增长筛选压力集中在前置的在线笔试环节。A卷是当时使用的多套笔试卷之一覆盖数学基础、机器学习理论、深度学习、编程实现、开放问答几大模块整体风格非常贴近“工业界面试笔试题”而非“学校期末题”。它不要求你背住某个框架的API也不考你读过多少篇论文它要求的是给你一个具体问题你能从数学定义出发推导到可实现的算法再落地到可运行的代码回答完整链路。这和很多同学熟悉的考试完全不同。学校考试是“知识点覆盖型”老师划重点、你背熟就能拿分DeeCamp这套卷子更像“能力验证型”题目数量不算夸张但每一道都需要推导过程和结构化表达。如果你只写一个最终答案、不展示推导分数大概率是不完整的。换句话说阅卷人看的不只是答案对不对而是你的思考过程能不能复现。这也是工业界考察候选人的通用标准——毕竟训练营最终要面对的是真实项目不是标准答案题库。那它具体考了哪几块我整理了一下大致可以分成四块数学基础线性代数、概率论与最优化、机器学习与深度学习理论、编程实现与算法题、开放题与综合问答。下面我一块一块拆开讲每一块都会告诉你它考察的是什么能力、为什么考这个、以及怎么准备才是有效的。2. 数学基础模块——真正拉开差距的是“会用”而不是“会背”2.1 线性代数不是考计算是考你对矩阵运算的直觉A卷里线性代数相关的题目表面上看起来是特征值、特征向量、矩阵分解这些老生常谈但实际考察的深度比大多数学校的期末卷要狠。举个例子它不会直接问你“什么是SVD”而是会给你一个具体的数据场景比如让你用SVD做降维并要求你解释为什么保留最大的若干个奇异值就能近似原矩阵而且近似误差的界是什么。这种题考的就是一个核心能力你懂不懂SVD的本质是一种“低秩近似”。我当时复习线代时踩过一个坑把大量时间花在手工计算行列式、逆矩阵上结果笔试时根本不考这些。真正用得上的反而是一些看起来很“基础”的东西矩阵乘法怎么从行向量视角理解、特征值分解的几何意义、向量内积与投影的关系。我建议复习时抓住几个关键点特征值与特征向量的计算与几何含义、SVD与PCA的关系、矩阵求导法则尤其是对向量和矩阵求导的链式法则、二次型的正定性判断。这些不是孤立的知识点它们是后面理解神经网络反向传播、正则化项、损失函数设计的地基。顺带一提矩阵求导在A卷里几乎必考。深度学习的反向传播本质就是链式法则在矩阵形式上的反复应用。如果你对“损失函数对权重矩阵的导数”这个概念没有直觉光靠死记梯度公式是走不远的。一个可行的复习方式是把最简单的线性回归用矩阵形式写出来然后手动推导一遍梯度公式 dL/dW推完再对照反向传播的代码很多疑问会迎刃而解。2.2 概率统计贝叶斯和极大似然估计是两条主线概率统计是A卷的重头戏考察方向非常聚焦几乎没有出现“掷骰子算概率”这类低阶题重点集中在两件事贝叶斯公式的应用和极大似然估计的推导。贝叶斯公式之所以被反复考察是因为整个机器学习体系的底层逻辑都是贝叶斯的先验、似然、后验。A卷里会经常出现“给定某类疾病检测的准确率和假阳性率求检测为阳性时真正患病的概率”这类题表面上是朴素贝叶斯实际上是在考察你能否区分P(A|B)和P(B|A)。这个区分能力在后续学习朴素贝叶斯分类器、正则化项的贝叶斯解释、生成模型与判别模型的对比时都会反复用到。极大似然估计则是另一个重头戏。你需要掌握完整的推导链条写出似然函数、取对数、求导、令导数为零、解出参数。我印象比较深的是A卷里给了高斯分布的一组样本要求你推导均值和方差的MLE估计并且要说明为什么方差估计是有偏的。这道题的区分度在于很多人会背均值的MLE是样本均值但方差估计的“有偏性”讲解往往含糊。如果你能自己推导一遍再顺带提一下修正的无偏估计量是除以n-1而不是n这道题的分数基本就稳了。除了以上两点常见分布的期望和方差伯努利、二项、泊松、均匀、正态、条件概率与独立事件、大数定律与中心极限定理的直观理解也会偶尔出现。复习时可以提前把所有常见分布的期望方差整理成一张表笔试前过一遍。2.3 最优化梯度下降和拉格朗日乘子法A卷的数学题里最优化通常会以两种形式出现一是直接要求比较批量梯度下降、随机梯度下降、小批量梯度下降的异同和适用场景二是给一个带约束的优化问题要求用拉格朗日乘子法求解或者解释对偶问题的含义。梯度下降这道题重点不在于背出三种方法的定义而在于说清楚它们背后的权衡批量梯度下降每次迭代利用全部数据方向稳定但计算量大随机梯度下降每次只用一个样本计算快但噪声大小批量梯度下降则是两者的折中配合学习率衰减在工业界最常用。一个比较加分的答法是提一下“为什么小批量梯度下降在GPU上效果好”因为GPU的并行能力正好能同时计算一个小批量的矩阵运算这种细节能体现出你真的跑过实验而不是只读过书。拉格朗日乘子法通常会联系到SVM的对偶问题。如果你能在推导形式化写法时顺带说清楚原问题和对偶问题之间的关系以及KKT条件在什么情况下生效这道题就远超平均水平了。我当时复习时采用的方法是找3道带约束优化题分别用拉格朗日乘子法完整推导一遍再对比几何直觉约束曲面上的切平面与目标函数梯度的关系。只有亲手推过考场上才不会手忙脚乱。3. 机器学习理论题——既考模型推导也考你讲清楚的能力3.1 经典模型的核心考察点A卷里机器学习理论题覆盖面比较广线性回归、逻辑回归、决策树、SVM、K-Means、KNN、朴素贝叶斯基本都考到了但每一类模型的出题角度都有套路可循。线性回归的核心考察点是目标函数怎么写、正则化怎么加、L1和L2的区别在哪里、闭式解怎么推导。尤以L1与L2的区别为高频考点你可以从“L1产生稀疏解、L2产生小权重”这一结论出发再补一段说明为什么L1能产生稀疏解——因为L1约束在坐标轴上有尖角最优解更容易落在坐标轴上。能把这个几何直觉画出来再加上数学表达这道题就拿分很稳了。逻辑回归和SVM的对比是另一个高频方向。出题形式往往是“请比较逻辑回归和SVM的异同”这时候不能只答“一个是概率模型一个是最大间隔模型”要补充细节逻辑回归的输出可以解释为概率SVM的输出是距离间隔逻辑回归天然处理多分类softmaxSVM通常用OvR或OvO策略逻辑回归对数据分布敏感SVM在小样本高维场景下表现更稳。能这样答说明你对模型的适用边界有真正的判断力。决策树的核心考点围绕信息增益、增益率、基尼指数展开。你需要能写出信息熵公式并解释含义同时能说明ID3、C4.5、CART三者的区别。我当时整理了一张对照表复习效率很高也分享给你参考算法特征选择标准适用问题特点ID3信息增益分类对取值数目多的特征有偏好C4.5增益率分类可处理连续值和缺失值CART基尼指数分类/回归二叉树剪枝后性能稳定聚类方面K-Means几乎必考。除了能写出算法步骤初始化质心、分配样本、更新质心、重复迭代还要能回答“K-Means的目标函数是什么”“K-Means有哪些局限性”“如何选择K”。目标函数是所有样本到所属质心距离的平方和这个公式要会写局限性要从初始化敏感、对非凸簇无效、对异常值敏感几个角度展开选择K的方法可以提肘部法则但最好能补充说明它的主观性较强这也是面试官常问的。3.2 深度学习网络结构、反向传播、防止过拟合三条线A卷里的深度学习题数量不多但分值很高考察重点非常经典。网络结构这块CNN至少要知道卷积层、池化层、全连接层各有什么作用并且会计算卷积输出尺寸输出尺寸 (输入尺寸 - 卷积核尺寸 2 * padding) / stride 1。这个公式看起来很基础但每年都能卡住不少人尤其是padding和stride同时存在时容易算错。反向传播是深度学习理论题里最核心的一道A卷通常会给一个两层网络或者一个带sigmoid和MSE损失的小网络结构要求你用链式法则逐步计算梯度。这里特别提醒一下不要只背公式一定要有手推的能力。我当时练的时候每道题都写到“把每个中间变量的值代入、算出具体数值”为止笔试时遇到类似的题就非常顺手。还有一个经验是sigmoid函数的导数可以写成 σ(x) σ(x)(1 - σ(x))这个形式在计算时能节省很多时间记得优先使用。防止过拟合这块常见手段包括L1/L2正则化、Dropout、早停、数据增强、批归一化BN答题时最好分成“为什么有效”和“适用场景”两层来写。例如Dropout之所以有效是因为它强迫网络不依赖某一个特定神经元相当于训练了多个共享参数的子网络的集成但它的副作用是训练和推理阶段的尺度变化所以测试时权重要乘以保留概率或者用Inverted Dropout这个细节很能区分“真正用过”和“只读过”的人。3.3 模型评估与调参精确率、召回率、F1、偏差方差模型评估这部分的出题形式通常是给一个分类器在某测试集上的混淆矩阵要求计算精确率、召回率、F1值并讨论类别不平衡场景下哪一指标更有参考价值。精确率 TP / (TP FP)召回率 TP / (TP FN)F1是两者的调和平均。这个调和平均的设计思路很有考究F1对精确率和召回率中的较小值更敏感因此只有在两者都较高时F1才会高。如果题目问“在医疗诊断中更看重哪个指标”答案是召回率因为漏诊的代价远高于误诊。偏差和方差的区分也是一道经典题高偏差对应欠拟合高方差对应过拟合增加训练数据对高方差有效对高偏差无效正则化强度的提升会增加偏差但降低方差。这类题目回答时最好画一个简略的偏差方差曲线图同时配合说明模型复杂度与泛化误差的关系既直观又能体现出分析框架的完整度。4. 编程与算法题——考场不认“我思路是对的”只认“跑不跑得过”4.1 笔试环境与语言选择的策略编程题是这场笔试里最直接拉开实战与理论差距的模块。先说一个战略层面的建议除非你C有绝对优势否则优先使用Python。原因有三一是Python的库很全算法题里常用的排序、堆、队列都有现成实现省去手写数据结构的时间二是Python写代码量更少在限时环境下就是硬优势三是机器学习相关的字符串处理、矩阵操作题用Python几乎不会出错。但这不意味着Python没有坑。有一类同学会在笔试里花大量时间处理输入输出导致题目逻辑还没写完就被迫交卷。我的建议是提前准备几套常用的输入处理模板比如从标准输入读取多行数字、按空格分割转换成整数列表、处理不定行数的输入流。这些代码在考试前就写好并记住考场上直接默写能省出10分钟到15分钟的时间。4.2 高频算法模板二分、双指针、动规、DFS/BFS从DeeCamp以及同类AI营的笔试来看算法题难度整体在校招笔试里属于中等偏上但高频题型非常明确二分查找及其变体查找目标值、查找左右边界、在旋转数组中查找目标值。双指针法两数之和、有序数组去重、滑动窗口最大值。动态规划背包问题、最长公共子序列、最长上升子序列、编辑距离。图或树的遍历二叉树的层级遍历、岛屿数量、连通分量。排序与堆Top K问题、合并K个有序数组。这些模板需要达到“闭眼默写”的程度。笔试时没有时间现场推导状态转移方程尤其是动态规划题你得在3分钟内判断出这是背包还是区间DP然后直接从记忆里调出模板。我当年准备时每个模板至少手写了三遍写到第3遍的时候速度已经能稳定在5分钟内这个熟练度在考试时特别重要。4.3 手写实现题K-Means、PCA、Softmax交叉熵A卷里还有一类非常有意思的题目直接要求你用Python手写某个机器学习算法的核心步骤。这类题既考算法基础也考代码实现能力是纯面试笔试里的高频题。以手写K-Means为例核心代码量其实不长但有几个细节值得注意初始化质心时要用np.random.choice随机选择样本点分配样本时计算的是欧氏距离用广播机制避免显式循环更新质心时用簇内样本的均值。一个容易出错的细节是当某个簇为空时质心如何更新——正确的做法是保留上一次的质心或重新随机初始化如果直接除零就会崩溃。笔试时能把这种边角条件处理好阅卷观感会好很多。手写PCA的考察点是先对数据中心化减去均值再计算协方差矩阵然后用特征值分解或SVD得到特征向量最后投影到前k个主成分。这里有一个常见误区是忘记中心化导致第一主成分实际上是均值方向而不是最大方差方向。此外主成分方向是特征向量而不是特征值很多同学一紧张就写反了需要特别注意。4.4 时间不够时的得分策略暴力解也能拿一半分编程题通常不只一道难度从简单到困难递增。我的建议是先把所有题目都看一遍然后严格按照“易到难”的顺序做题不要在一道题上卡超过20分钟。如果一道题暂时没有好的解法先写一个暴力版本保证样例能过再在暴力基础上优化。很多同学觉得暴力解丢人但笔试的得分规则是部分正确也计分暴力解的得分率往往比空着高得多。另外复杂度估算的能力很重要。如果你看到n的最大值是10^5那么O(n^2)的算法很可能超时这时候就要优先思考O(n log n)或O(n)的解法如果n只有100暴力枚举可能是最稳妥的策略。这种基于数据规模判断算法取舍的能力是平时刷题时最容易积累的也是笔试时的护身符。5. 开放题与综合问答——拉开差距的地方不在代码5.1 开放题的核心是什么向真实世界要问题A卷的最后部分通常是一两道开放题从“AI教育如何落地”“如何用AI技术改进传统行业”到“设计一个智能客服系统”不等。这类题没有标准答案但阅卷人会从几个维度打分问题定义是否清晰、数据方案是否可行、模型选型是否有依据、评估指标是否合理、有没有考虑风险和失败案例。开放题最大的陷阱是“答得很宽、但没有任何落地感”。例如回答“用AI改进医疗”时如果只写“用深度学习做病灶识别”就太空了。一个高分回答应该拆解为先限定一个具体场景比如肺结节CT影像的辅助筛查再说明数据来源和标注方式收集医院历史影像由放射科医生标注模型选型2D/3D CNN或者检测网络评估指标敏感度和特异度平衡因为漏诊和误诊的代价不同以及落地难点数据隐私合规、模型可解释性、医生接受度。能够按这个结构作答已经比绝大多数“AI改变世界”式的空话强太多。5.2 结构化的回答框架问题定义、数据、模型、评估、风险如果你想在开放题上拿高分建议掌握这个通用框架问题定义 → 数据方案 → 模型设计 → 评估指标 → 风险与边界。问题定义要求你明确具体解决谁的什么问题输入是什么、输出是什么。数据方案要回答数据从哪里来、如何清洗、正负样本比例是否失衡、隐私和标注成本怎么处理。模型设计要结合问题的特性和数据量说明为什么选这个模型数据量小选线性模型或SVM数据量大且是图像类选CNN语言类选RNN或Transformer2018年时更常见的是LSTM。评估指标要有针对性回归用RMSE/MAE分类用准确率/精确率/召回率/F1。风险与边界是很多同学会漏掉的部分但恰恰是体现成熟度的关键数据漂移、对抗样本、模型偏见、算力成本写出来就是加分项。这个框架平时准备两三道题考场上套用起来会非常顺。我当时的做法是提前准备了三个方向的应用场景——医疗、金融、教育每个方向都用一个具体的子问题练过这个框架后来考试时遇到“AI教育”的开放题基本是默写加微调节省了大量思考时间。5.3 结合2018年的技术背景那一年什么最火如果你拿到的是2018年的A卷开放题的背景通常与当年的技术热点相关。那年AlphaGo带来的关注热潮尚未消退人脸识别、自动驾驶、智能语音助手、AI医疗影像都已经成为创业和学术的热点。回答开放题时如果能结合当年的热点技术背景会更容易踩中出题人的预期。例如谈到计算机视觉落地时提到“基于深度卷积神经网络的目标检测模型在工业质检中的应用”就比泛泛而谈“AI很厉害”更有说服力。但这不意味着你要去追热点。“热点”只是背景板最终分数取决于你方案本身的完整度和逻辑性。我当时考场上的策略是从自己最熟悉的应用领域切入宁可做一个“小而完整”的方案也不做一个“大而空”的展望。这其实是DeeCamp选拔的目标导向——训练营培养的是能动手解决实际问题的工程师不是评论家。6. 备考路线图与临场细节——把我踩过的坑提前告诉你6.1 两周冲刺计划数学推导、模型综述、编程手感三轮走如果你拿到这套卷子时还有大约两周时间我建议按三轮安排复习效率和效果比较均衡。第一轮第1到3天集中过数学基础。线性代数重点复习特征值分解、SVD、矩阵求导概率统计重点复习贝叶斯公式、极大似然估计、常见分布最优化重点复习梯度下降变体、拉格朗日乘子法。这一轮的输出物是每块内容能不看笔记写出核心公式和推导关键步骤。第二轮第4到8天集中刷机器学习与深度学习理论。把常用模型线性回归、逻辑回归、决策树、SVM、K-Means、朴素贝叶斯、CNN、RNN的推导和面试常见问题全部过一遍同时整理表格对比相似模型的异同。这一轮的输出物是每个模型能不看资料说出目标函数、优化方法、适用场景、优缺点四个维度。第三轮第9到14天编程题和模拟测试为主。每天2道高频算法题1道手写机器学习模型实现最后2天各安排一次完整的模拟笔试严格限时。模拟测试非常重要它能帮你发现“知识点会但时间不够用”的致命问题提前调整做题策略。6.2 三个我亲历过的备考坑第一个坑是“只看不推导”。我第一遍复习时习惯仔细看书上的推导过程觉得看懂了就等于掌握了。结果一合上书连逻辑回归的损失函数对参数的梯度都写不利索。后来的教训是所有的公式推导必须亲手在纸上过一遍直到能独立默写完整链条才算真正掌握。第二个坑是“死磕难题丢基础分”。有一段时间我沉迷刷偏题怪题觉得简单的题没挑战。但DeeCamp这类笔试的基调是基础为主、中等难度为辅、难题极少。把时间和精力大量花在难题上性价比很低。正确的策略是把基础题和中档题练到接近满分难题尽力而为如果有余力再突破。第三个坑是“编程题不练手感以为会思路就行”。笔试的编程题和LeetCode刷题有一个明显的区别——你要在指定时间内完成多道题而且不能依靠编译器的实时报错来改Bug。平时练习时一定要养成不看提示、一次写完、再集中调试的习惯这比刷题数量重要得多。6.3 临场答题的几个实战技巧最后分享几个临场技巧都是踩过之后总结出来的。第一拿到试卷先花2到3分钟快速浏览全部题目标记出会做的、需要思考的、大概率要放弃的。先做会做的拿到基础分再回头啃中档题难题放到最后。第二数学推导题注意把关键公式写在最显眼的位置。阅卷是按步骤给分的即使最后结果算错了正确的公式和清晰的推导步骤依然能拿到大部分分数。千万别只写结论不写过程。第三手写代码题要注意变量命名的可读性就算最后没写完阅卷人也能从你的思路里看到代码框架和逻辑。如果完全没思路写一段注释说明你的解题思路也比空着强——这至少证明你有分析过程。第四开放题留足时间至少10到15分钟。很多同学前面数学题花太久导致开放题只能草草写两行非常可惜。开放题分值高、可写性强只要按框架展开是最容易获得稳定分数的一块。第五带一个能快速画图的东西。草稿纸或者白板在答题时画出偏差-方差曲线、神经网络结构图、K-Means迭代过程图不仅能帮助你整理思路还能让答案更清晰直观。有些题比如解释过拟合光用文字描述非常啰嗦一张图加三句话就讲清楚了。这套A卷看起来只是通往DeeCamp的一道关卡但它的考察逻辑其实和很多AI算法岗的面试笔试高度一致。认真吃透它收获的就不仅仅是一次笔试的通过率而是对整个AI基础体系的一次有效复盘。准备过程中你感到的每一次“推不下去”“写不顺”都是在帮你定位知识盲区——这些盲区越早暴露越值得庆幸。