当前位置: 首页 > news >正文

DeeCamp人工智能训练营笔试复盘:机器学习与深度学习核心考点解析

2018年春天,我报名了创新工场 DeeCamp 人工智能训练营。这是第一届,宣传里说得很清楚:面向全球在校大学生和研究生,免费参加,李开复老师亲自牵头组建导师团,目标不是教理论,而是带学员在真实项目里做一轮完整的AI实践。报名页面特别朴素,填完基本信息就等着邮件通知。我当时研二,手里刚做过一个图像分类的小项目,觉得七八成把握是有的。直到系统邮件里跳出“在线笔试”三个字,我才发现,训练营的筛选从考试就已经开始。

那场笔试我拿到的是“第二套A卷”。整个答题过程大约120分钟,系统里分成选择题、编程题和简答题几大块。考题具体文字现在回忆不全了,但考察逻辑我记得很清楚。这一篇不是官方真题答案,而是我站在过来人的角度,把这套卷子背后的知识点和答题思路完整拆一遍。打算投递DeeCamp、准备各类人工智能训练营在线笔试,或者单纯想检查自己机器学习基本功的人,都可以拿这篇文章当一份查漏补缺的清单。

1. 这套卷子的筛选机制:为什么是“第二套A卷”,而不是一套题考到底

1.1 2018年DeeCamp笔试的处境

先说背景。2018年正好是AI热度疯涨的一年,校招算法岗的简历动辄上万份,深度学习课、Python课遍地开花。DeeCamp这种“免费+大牛导师+真实项目”的训练营,报名人数远超预期。我记得当时官方公众号公布的数据,报名者覆盖了海内外几百所高校,甚至有不少已经工作的人来投。这么多人不可能全部面试,于是在线笔试成了第一道过滤网。

在线笔试和线下考试有个本质区别:你必须默认所有参加者都在不同时间、不同地点答题。如果所有人做同一套题,题目和选项一传出去,整套筛选就废了。所以系统把题库拆成多套卷子,我碰到的“第二套A卷”就是其中一组。A卷、B卷难度大致对齐,但具体题目并不完全一样;哪怕是同一道题,选项顺序也可能被打乱。这种做法在今天看来很常规,但在2018年的技术条件下,已经算比较严谨了。

1.2 多卷并行的“防作弊”设计背后

这种并行出题带来的直接后果是,网上流传的所谓“原题”基本没用。考前我也在几个群里找过别人的复盘,后来发现大家的回忆都是碎片化的,今天你抽到偏概率统计,明天他抽到偏卷积计算,真正能被复用的是考点方向,而不是题目本身。

所以如果你也想参加类似的训练营笔试,我劝你早点放弃“背题”心态。与其花时间搜“某套A卷”的回忆帖,不如把所有候选考点系统过一遍。DeeCamp的笔试设计明显就是冲着“概览式基础能力”去的,它不考你某个框架的最新API,也不考某某模型的SOTA效果,而是考那些放在任何AI项目里都会反复出现的底层知识。这套题能帮你筛掉两类人:一类是简历写得漂亮但基础不牢的,一类是只会调包不会推演逻辑的。

1.3 笔试定位:选学员,不选工程师

我当时最大的误解,是把笔试当成了招聘面试的算法题轰炸。事实并不是这样。DeeCamp 招生选拔的逻辑和公司招聘算法工程师有本质区别:工程师要能直接上手写业务代码,训练营学员的标准则是“基础够用、有潜力、能跟上项目节奏”。因此这份卷子没有出现系统设计、多线程、分布式这类工业级问题,重心落在数学基础、机器学习原理、深度学习常识、编程基本功和一点点开放思维上。

想通这一点后,我的复习重心立刻变了:不再刷难题怪题,而是把概率论、线性代数、经典机器学习算法的手推过程全部捡起来。后来正式答题时,我发现这个策略是对的。笔试里大量题目其实是在变着花样检查你懂不懂最核心的概念,比如“为什么逻辑回归用交叉熵而不是均方误差”这类问题,只要你吃过基础书本里的推导,基本不用浪费时间。

2. 概率与线代:数学题重灾区里的送分与送命

2.1 当年卷子里的概率题套路

第二套A卷的选择题给我留下最深的印象是:概率统计部分的题量比想象中多。它不是考你复杂的分布函数计算,而是反复用“条件概率、全概率、贝叶斯公式”包装各种场景。比如给你一个分类器的错误率、正样本比例,让你反推某个类别上的错误率;又比如给你一个有噪声的检测系统,问“当报警发生时真实事件发生的概率是多少”。

这类题的难点从来不是公式本身,而是读题。很多人一看到“概率”两个字就条件反射式地掏出贝叶斯公式,结果连事件定义都没写清楚。我自己的习惯是:先花三十秒把事件符号写下来,再动笔计算。比如“P(分类错误)”“P(样本为正)”“P(分类错误|样本为正)”分别是什么,一旦符号清楚了,公式自然就会从脑子里冒出来。

2.2 一道全概率公式的现场推导案例

举个例子,当时有一道题大致意思是:某个分类器在全体样本上的错误率是10%,正样本在数据集中占40%,分类器在正样本上的错误率是5%,问分类器在负样本上的错误率是多少。

设事件A为“分类错误”,事件B为“样本为正”。题中给出的信息就是P(A)=0.10,P(B)=0.40,P(A|B)=0.05,要求的是P(A|Bᶜ)。

利用全概率公式:P(A)=P(A|B)×P(B)+P(A|Bᶜ)×P(Bᶜ)。代入已知数:

0.10 = 0.05 × 0.40 + x × 0.60

0.10 = 0.02 + 0.6x

x = 0.08 / 0.60 ≈ 0.1333

也就是说负样本上的错误率大概是13.33%。其实只要把事件的定义拆清楚,计算量连初中生都不如。但现场紧张的时候,很多人看到“错误率”三个字就直接代反了,把0.05当成全体错误率的分量,最后得到错误答案。所以应对概率题就一个诀窍:不要心算,不要跳步,在草稿纸上一格一格写完。

2.3 线性代数:矩阵运算考的从来不是算力

线性代数部分没有出现那种让你手动算四阶矩阵逆的暴力题,而是考概念和直觉。印象里涉及了矩阵乘法维度对不对、特征值和特征向量的含义、SVD为什么能用来做降维,以及PCA和多维数据之间的关系。

说实话,2018年前后很多做AI的人对线性代数的理解停留在“会用numpy”这个层面。题目一旦不给你具体数值,直接问“如果数据矩阵的秩小于特征数,PCA会得到什么结果”之类的问题,不少人就懵了。我当时能答上来,是因为考前专门把《机器学习》教材里有关协方差矩阵的部分翻了一遍。PCA的核心是找方差最大的投影方向,而这个方向本质上是协方差矩阵的特征向量,明白这条线后,很多看似飘忽的线代题都会有踏实的感觉。

2.4 现场答题的书写顺序习惯

我再分享一个只有吃过亏才懂的建议:在线笔试一定要准备两张以上空白草稿纸,并且每道数学题都从“题目条件重述”开始写。我见过太多人直接在答题框里打一堆数字,步骤乱七八糟。虽然机考只看最终选项,但对你自己来说,规范的书写顺序直接决定计算会不会出错。DeeCamp的数学题难度整体不高,真正翻车的人都是败在慌乱和不规范。

3. 机器学习基础题:考官想看手推公式,而不是背概念

3.1 覆盖的算法范围比想象中窄,也比想象中深

机器学习部分是整张卷子的绝对主力。从选择题到简答题,几乎每道题都在验证一个核心问题:你是真的理解算法,还是只是记住了名词。覆盖的算法范围其实比较固定:逻辑回归、朴素贝叶斯、决策树、支持向量机、K均值聚类、PCA。深度学习方面的考点单拎出去,下一节再展开。

当时让我最意外的是,卷子里没有出现“什么是支持向量机”这种标准概念题,反倒给了具体数据让你算一步梯度下降后的参数更新。这类题表面上是选择题,但你必须真动手算,否则选项完全靠蒙。这就倒逼复习时不能只看公式,要能把整个更新过程走通。

3.2 一道“参数更新”题把我从自信拉回现实

我记得有一道逻辑回归的题,大体是给你两个特征和一条训练样本,初始化权重都为零,学习率给定为0.1,问用梯度下降更新一步之后某个参数的数值是多少。逻辑回归的预测值是sigmoid(w·x),因为初始权重为零,所以首次预测值必然是0.5。然后利用交叉熵损失对每个权重求偏导,得到梯度形式为“预测值减真实标签后再乘以对应特征”,再乘学习率做更新。

这类题只要推导过一次,整个过程不会超过三分钟。但如果只是背过“逻辑回归用sigmoid”这个结论,看到具体数值就会手足无措。这也是DeeCamp笔试非常高明的地方:它用一道计算题,直接区分出“用过逻辑回归”和“推导过逻辑回归”的人。对于后来准备各类人工智能学习路径、训练师考试的人来说,这一步基本功绕不过去。

从理性角度分析,逻辑回归之所以用交叉熵而不用均方误差,也是必考方向。核心原因是平方误差配合sigmoid会让损失函数变成非凸函数,容易陷进局部最优;而交叉熵损失在参数空间的梯度形态更干净。答这类题时,最好能顺手画出sigmoid函数的形状,解释为什么平方误差会在两侧出现梯度趋近于零的饱和区。

3.3 决策树与模型评估的隐性考点

决策树相关的题集中在信息增益、基尼指数、剪枝的作用上。它不会让你从零构造一棵树,而是问你特征选择时不同指标的区别,以及为什么剪枝能缓解过拟合。这里我的建议是把熵的计算公式亲手算一遍,而不是停留在“熵描述不确定性”这种抽象理解上。

模型评估方面,第二套A卷也埋了几个点:准确率在正负样本不平衡时会失效、AUC和ROC曲线的直觉含义、交叉验证的目的是调参而非评估最终模型。这些知识点看起来基础,但实际工作中踩过坑的人都知道,它们恰恰是面试和笔试里最容易暴露“经验空窗”的地方。我当时能把这些点串起来,靠的是平常做小项目时习惯性多问一句“这个指标到底适不适合当前场景”。

4. 深度学习题型:被框架惯坏的人,容易在这里露馅

4.1 2018年的AI圈,考的是原理不是版本号

第二套A卷的深度学习部分,放在五年后看其实很简单,但放在2018年的技术语境里,考查逻辑非常清晰:不管你用的是TensorFlow还是Keras,最终都得回到CNN和RNN的基本原理上。卷子没有考某个具体API的用法,这是很聪明的设计,因为框架版本更新太快,今天背的API明天可能就废弃了,而卷积输出尺寸、感受野计算、梯度消失这些规律几十年不会变。

现在很多带“人工智能机器人”“人工智能ai技术”标签的内容,动不动就在讲大模型、Agent框架,实际底层依然离不开神经网络的前向传播和反向传播。如果底层的尺寸计算和梯度逻辑都不熟,遇到模型结构变化就只能瞎猜参数。

4.2 卷积输出尺寸和感受野的计算模板

卷积几乎是必考。尤其喜欢给一个具体输入尺寸、卷积核大小、步长和padding,问输出特征图尺寸。公式非常简单:

输出尺寸 = (输入尺寸 + 2 × padding − 卷积核尺寸) / 步长 + 1

我当时遇到的一个典型题是:输入图像32×32×3,使用5×5×16的卷积核,步长为1,padding为2,问输出特征图的尺寸。代入公式:

输出高度和宽度 = (32 + 2×2 − 5) / 1 + 1 = 32

深度就是卷积核个数16。所以输出是32×32×16。有些题还会顺带问参数量:每个卷积核是5×5×3,一共16个,所以权重参数是5×5×3×16=1200,如果加上偏置项再加16。这种计算题没有任何奥妙,纯粹看你有没有亲手搭过网络。

感受野的计算更容易成为丢分点。很多人背了一个结论“卷积层堆叠能扩大感受野”,但真要他们算一下VGG堆叠两层3×3卷积的感受野,反而算不明白。其实方法是从后往前算,逐层叠加之前所有步长的乘积。我在复习时特意画了一张表格,把输入尺寸、每一层的核大小和步长、输出尺寸、感受野都列出来,直观很多。

4.3 LSTM参数估算与梯度消失的逻辑链

RNN部分也没有缺席。2018年的题目已经大概率会触及梯度消失和梯度爆炸,因为在训练长序列时这个问题太重要了。更进阶一点的问法是:LSTM相比普通RNN为什么能缓解梯度消失。这里的关键是LSTM引入了输入门、遗忘门、输出门和候选记忆单元,信息可以通过记忆细胞的“高速公路”跨越多步传播,梯度不会只在时间维度上连续相乘。

有一道题让我印象很深,它问一个LSTM层的可训练参数数量。给定输入维度是10,隐藏状态维度是128,问这一层LSTM的参数总数。LSTM包含四组结构:输入门、遗忘门、候选记忆、输出门,每一组都对应一个权重矩阵和一个偏置向量。权重矩阵大小是(输入维度 + 隐藏维度) × 隐藏维度,也就是(10+128)×128=17664,偏置是128个,所以每组参数是17792,四组总共71168。

很多人在考场上看到这个数字就傻眼,因为他们从没意识到LSTM内部有这么多参数。我觉得这种题的价值不在考察记忆力,而是提醒所有做AI的人:模型的一次前向传播到底做了多少计算,你必须心里有数,否则部署上线时连资源估算都做不了。

4.4 BN层和训练推理差异这类“细节陷阱”

深度学习部分的另一个隐藏考点是Batch Normalization。它表面问“BN层在训练和推理时有什么区别”,实际上考你有没有真正用过。训练阶段BN利用当前mini-batch的均值和方差进行归一化;推理阶段则使用训练过程中累积的滑动平均结果。这个细节如果没实际部署过模型,很容易答错。

再比如dropout,训练时随机失活神经元,推理时不再随机失活但要对权重做缩放。这些“课堂上学过但没用过”的知识点,第二套A卷几乎挨个问了一遍。应对它们没有捷径,只能老老实实把网络搭一遍、训一遍、部署一遍。

5. 编程题:在线编辑器没自动补全,才是最大的隐形门槛

5.1 我的现场做题经历

编程题部分,系统给了一个很朴素的在线代码编辑器,没有语法高亮,没有自动补全,也不能本地跑测试用例。这种体验和LeetCode完全不一样。第一道编程题我印象里偏经典算法,和字符串处理有关,大体是找最长无重复字符的子串长度;第二道则和计数类问题相关。整体难度放在LC上大概是medium偏下,但因为答题环境不友好,很多人发挥失常。

我犯过一个蠢错误:平时写Python太依赖IDE的智能提示,到了裸编辑器里连collections.defaultdict这种常用模块都要想一会儿。所以我的建议是:在笔试前一周,至少要在没有自动补全的环境里练习写10道题,尤其是滑动窗口、双指针、哈希表几个高频模板。

5.2 一道面试级题目的心算与代码组织

当时我遇到的一道近似题是这样的:给定一个非负整数数组和一个整数k,返回其中连续子数组的和能被k整除的个数。如果放在笔试环境里,最容易想到的是暴力枚举手尾指针,复杂度O(n²)。但效率更好的做法是用前缀和加同余计数。连续子数组的和可以由前缀和之差表示,若两个前缀和模k相等,说明它们之间的子数组和能被k整除。使用一个哈希表记录每个余数出现的次数,每遇到一个余数,就把之前相同余数的次数累加到答案里。

写代码时我会先确认边界条件:前缀和数组长度要设计为n+1,避免单独处理空子数组;数组元素非负,但k可能为1,这种情况任何子数组都满足条件,算法也能正确处理。Python里的负数取模需要额外小心,虽然题设给的是非负整数,但为了通用性,通常会写成(current_sum % k + k) % k

5.3 笔试环境下的一分钟自查清单

在线编程题的判分通常只盯着几个隐藏用例,所以提交前一定要做一轮快速自查。我自己整理了一份清单,这次也一并写出来:

  • 输入长度为0或1时,会不会越界;
  • 循环上限是n还是n-1;
  • 哈希表的key取模后是否为负数;
  • long/Python大整数是否考虑数值范围;
  • 时间复杂度和空间复杂度是否达到题目的隐含要求;
  • 函数名和输入输出格式是否和题目描述完全一致。

这套自查清单看起来琐碎,但正是这些细节决定了你在笔试环境里能不能一次通过。DeeCamp的编程题主要考察思维是否清晰,而不是会不会写冷门数据结构的黑魔法。只要你能把暴力和优化两个版本都想清楚,绝大部分题目都能答好。

6. 开放性论述题:没有标准答案,但判卷人有标准框架

6.1 常见论述题长什么样

第二套A卷还有几道开放题,官方不会公布评分标准,但大致能猜出它们想考察的方向。比如“当训练数据正负样本比例严重失衡时,你会怎么做”“如何评估一个推荐系统的模型效果”“如果特征数量远大于样本数量,你会怎么处理”。每一道题都不存在唯一正确答案,可如果你真的什么都写不出来,或者只写一个“用SMOTE”“用AUC”,那说明思考还没形成体系。

这类题判卷时最看重的是“结构化程度”。同样讲数据不平衡,有的人能讲出“先看业务代价,再选区评估指标,然后依次尝试重采样、加权重、换算法、合成样本,最后用离线指标加线上A/B来验证”,有的人只会罗列名词。后者在训练营里做项目复盘时往往也会抓不住重点,所以笔试早早就开始筛选这种思维能力。

6.2 一个可复用的四步回答心法

我把当时复习时总结的四步框架写在这里,它不仅能应付这类开放题,还能复用在实际项目汇报里。

第一步,定义问题。先把题目里的模糊概念量化。比如“样本不平衡”要明确是正负比1:100量级,还是1:10量级,不同量级的手段完全不同。第二步,划定评估指标。选择准确率之前必须考虑是否会被多数类主导,AUC、F1、PR曲线分别适合什么场景。第三步,给候选方案并排序。从成本最低的数据层操作开始,逐步提升到算法层和决策层。第四步,说清验证方式。没有验证手段的方案等于空谈,哪怕是简单的时间序列切分也算一个交代。

6.3 用“样本不平衡”完整演示一遍

用这套框架回答“数据不平衡怎么办”,大约可以这样组织:

先定义问题:这个不平衡程度到底多严重,少数类是否代表我们真正关心的目标。然后指出准确率在极端不平衡时没有意义,应该用Precision、Recall、F1以及AUC/PR曲线观察模型对不同类别的表现。接着分层次给方案:数据层面可以欠采样多数类、过采样少数类、或者用SMOTE类方法构造样本,但要注意过采样可能引入噪声;算法层面可以调整类别权重、使用代价敏感学习;模型输出层面可以调整分类阈值,而不是默认0.5。最后加上验证策略,例如分层交叉验证,保证少数类在训练和验证集里都能稳定出现。

我当时把这一段写完后,自己都觉得思路清楚了很多。后来进入训练营做真实项目,周报和结营展示里反复用到的也是这个框架。所以它不只是应试技巧,而是AI从业者的通用表达能力。

7. 这场笔试之后:训练营真正想看的能力与复习清单

7.1 从题目反推招生逻辑

把整套第二套A卷的题目连起来看,DeeCamp的招生画像其实很清晰:第一,数学基础必须扎实,概率线代是语言;第二,代码能力必须能独立完成一个算法实现,不能只会在IDE里写for循环;第三,对深度学习不是只会调参,能讲清楚一个模型的前向和反向过程;第四,面对开放式问题时,有自己稳定的分析框架。

想明白这四点之后,我就知道有没有进下一轮其实根本不是靠临场发挥,而是靠过去一两年的积累。训练营固然会教实战,但不会从零教数学和编程,所以它用一个笔试结果把那些“暂时还差一口气”的人拦在门外。这不是筛选智商,而是筛选“是否已经准备好”。

7.2 一个月冲刺复习清单

如果你现在正在为类似的人工智能训练营或在线笔试做准备,我结合当年的复盘给一份比较务实的一个月复习清单。

第一周,重建数学底盘。主攻条件概率、贝叶斯公式、全概率公式,线性代数重点看矩阵乘法、特征值分解、协方差矩阵,微积分重点掌握多元偏导和链式法则。第二周,攻克经典机器学习算法。不要只看PPT,每学一个算法都亲手推导一次损失函数和梯度更新。逻辑回归和朴素贝叶斯必须能默写推导步骤,SVM至少能解释间隔最大化和核函数的直觉。第三周,补齐深度学习原理。把卷积输出尺寸、感受野、LSTM参数数量、梯度消失、BN这些高频考点过一遍,有条件的话用CIFAR-10之类的小数据集完整训练一个CNN。第四周,刷题和模拟。每天两道LeetCode中等题,外加一套限时在线编程模拟,重点训练在没有IDE自动补全的情况下写代码。

我甚至把当年考完以后才补看的那些内容也列进去了,比如模型评估指标、数据不平衡处理、特征选择。后来不少人工智能训练师三级实操题和各类认证考试,核心考点回头看还是这一套东西。这说明DeeCamp当年选的方向确实站在了行业基础能力的中轴线上。

7.3 写在最后:DeeCamp的考察内核为何没有过时

现在回头看,2018年离已经有点远了,人工智能领域的工具链发生了巨大的变化:更多人在讨论Agent、RAG、模型部署,更多岗位叫“人工智能训练师”,很多学习路径里加了千奇百怪的新框架。但如果把DeeCamp的笔试卷子翻出来,你会发现考的那几块东西依然是今天AI从业者的基本功。模型改了名,公式没有改;框架换了代,梯度传播没有换;项目从图像分类变成了大模型应用,评估指标、数据处理、过拟合这些老问题依然每天都在发生。

当年一起备考的同学,有人后来进了大厂做算法,有人转做AI产品,有人继续读博。大家偶尔聊起“第二套A卷”,最大的共识是:那场笔试其实不是门槛,而是一面镜子,照出我们当时对人工智能的理解到底停留在哪个位置。如果你正站在准备这类考试的路口,不要焦虑考什么原题,把每个基础概念吃透、把手推公式练熟、把代码写成习惯,结果不会太差。哪怕最终没有入选,这个过程帮你打下的底子,也一定会在未来的某个项目里还给你。

http://www.cnnetsun.cn/news/4282545.html

相关文章:

  • 如何用graphify阅读陌生开源项目?6步法让AI替你导航
  • C盘爆满不用重装:系统自带工具+命令行清理释放空间
  • 基于半监督学习的虚假评论检测实战:从Yelp数据集到生产级模型
  • linux安装nodejs,出现glibc高版本问题规避
  • 从零开始学Python爬虫与数据分析:一条高效实战路线
  • 基于Python的高校毕业生就业质量可视化数据分析平台(源码+lw+部署文档+讲解等)
  • 如何让T3 Code连接AI智能体:ACP协议对接与effect-acp包完整解析
  • Code Stitcher:让LLM输出自动落地到本地代码库的工程化实践
  • 3DMax自定义弯曲工具全解析:从路径变形到权重绘画,突破建模限制
  • 系统动力学建模解析全球塑料污染:从生命周期到干预策略
  • background-agents功能特性完整清单:5家模型厂商、5种沙箱供应商、4个客户端入口
  • 在Edge142及后续版本版本中显示IE模式按钮
  • Google Play开放第三方商店后,开发者必知的多渠道分发与签名适配指南
  • 嵌入式工程师跨界移动开发:思维碰撞与工具链对比实战
  • 多智能体模拟框架CARD:用LLM Agent生成信用卡行为模拟数据
  • COMSOL触屏App开发指南:从Application Builder到Server部署
  • AI应用开发中的配置重复与上下文管理难题
  • Java秋招面经大合集:从JVM到并发,从算法到项目实战
  • 智能车竞赛线上模式公平性挑战与工程实践反思
  • 2026数字人分身5款轻量化工具:简易操作适配新手零基础快速上手
  • Pohlig-Hellman算法:离散对数问题的脆弱性分析与安全规避
  • 多任务DETR与骨干网络在乳腺钼靶分类定位中的应用
  • 基于SpringBoot的中学信息技术教学网站设计与实现全解析
  • 千万级并发来袭,无人机平台还能稳住吗?
  • AI提效的工程化实践:从代码生成到智能体与RAG工作流
  • 设备端AI智能体实战:从Perplexity研究到Dify本地Agent搭建
  • 主数据管理理论与全栈实战|全网独家复现MDM架构数据清洗融合、黄金数据构建、全域分发治理、助力企业一数一源、数据贯通、提质降本增效
  • Vue+ECharts折柱混合图实战:国赛级数据可视化避坑指南
  • 格聂南线实测:比亚迪方程豹如何重新定义新能源越野智驾
  • Flutter for OpenHarmony 实战:IP 地址与网络信息查询:HarmonyOS ArkTS API 24 显示本机设备的局域网 IP、运营商等基础信息。