尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

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.10P(B)0.40P(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.600.10 0.02 0.6xx 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的卷积核步长为1padding为2问输出特征图的尺寸。代入公式输出高度和宽度 (32 2×2 − 5) / 1 1 32深度就是卷积核个数16。所以输出是32×32×16。有些题还会顺带问参数量每个卷积核是5×5×3一共16个所以权重参数是5×5×3×161200如果加上偏置项再加16。这种计算题没有任何奥妙纯粹看你有没有亲手搭过网络。感受野的计算更容易成为丢分点。很多人背了一个结论“卷积层堆叠能扩大感受野”但真要他们算一下VGG堆叠两层3×3卷积的感受野反而算不明白。其实方法是从后往前算逐层叠加之前所有步长的乘积。我在复习时特意画了一张表格把输入尺寸、每一层的核大小和步长、输出尺寸、感受野都列出来直观很多。4.3 LSTM参数估算与梯度消失的逻辑链RNN部分也没有缺席。2018年的题目已经大概率会触及梯度消失和梯度爆炸因为在训练长序列时这个问题太重要了。更进阶一点的问法是LSTM相比普通RNN为什么能缓解梯度消失。这里的关键是LSTM引入了输入门、遗忘门、输出门和候选记忆单元信息可以通过记忆细胞的“高速公路”跨越多步传播梯度不会只在时间维度上连续相乘。有一道题让我印象很深它问一个LSTM层的可训练参数数量。给定输入维度是10隐藏状态维度是128问这一层LSTM的参数总数。LSTM包含四组结构输入门、遗忘门、候选记忆、输出门每一组都对应一个权重矩阵和一个偏置向量。权重矩阵大小是(输入维度 隐藏维度) × 隐藏维度也就是(10128)×12817664偏置是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整除。使用一个哈希表记录每个余数出现的次数每遇到一个余数就把之前相同余数的次数累加到答案里。写代码时我会先确认边界条件前缀和数组长度要设计为n1避免单独处理空子数组数组元素非负但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卷”最大的共识是那场笔试其实不是门槛而是一面镜子照出我们当时对人工智能的理解到底停留在哪个位置。如果你正站在准备这类考试的路口不要焦虑考什么原题把每个基础概念吃透、把手推公式练熟、把代码写成习惯结果不会太差。哪怕最终没有入选这个过程帮你打下的底子也一定会在未来的某个项目里还给你。
返回列表