顺丰科技2019年秋季校招的笔试客观题合集,是不少准备AI/ML岗位的同学会翻出来做一遍的材料。作为国内物流领域技术投入相当靠前的公司,顺丰科技的笔试题特点比较鲜明:覆盖面广,数学、算法、深度学习、业务场景都有涉及;难度梯度合理,基础题占大头但有几道区分度很高的题;同时部分题目结合了物流业务背景,比如时效预测、路径优化、OCR识别、智能客服这类场景,这是很多互联网公司笔试题里不太容易见到的。
这篇文章不会去逐条报答案,而是想基于这套客观题合集做一次系统性拆解——考了哪些模块、每类题在考察什么能力、复习该抓什么重点、现场答题有什么策略。无论你是准备投顺丰科技还是其他公司AI/ML岗位,这套题的参考价值都不小。
1. 笔试基本面:从岗位画像看这套题在考什么
1.1 顺丰科技AI工程师在做什么,决定了笔试方向
在拆题之前,得先搞清楚顺丰科技的AI/ML工程师日常到底在解决什么问题。很多同学把笔试当纯刷题,其实不全面——技术岗笔试题的命题风格,和这家公司的业务场景有很强关联。
顺丰科技的核心业务是物流,围绕物流会产生几类非常典型的AI需求:
- 路径规划与调度优化:快递怎么分拨、车辆怎么走、网点之间怎么协同,本质上是组合优化问题,会涉及运筹学和强化学习。
- 时效预测与资源预估:某个快件从A到B多久能到,高峰期需要多少运力、多少人力,属于典型的回归预测和时序预测问题。
- 图像与OCR识别:面单上的地址、手写体、模糊字体识别,需要用到CV领域的目标检测、文字识别技术。
- 自然语言处理:地址解析、客服机器人、语音质检,涉及NLP中的序列标注、文本分类、语义理解。
- 供应链与仓储优化:库存预测、仓内机器人调度,既是机器学习问题也是系统工程问题。
所以笔试客观题里出现这些知识点的概率非常高,不是偶然,而是岗位的真实需求映射。你在复习时如果只盯《西瓜书》的算法推导,不看业务背景,有些场景题就会答偏。
1.2 客观题的知识地图与分值倾向
这套合集我大概过了一遍,单选题占多数,多选题和判断题也有一部分,整体可以分成四块:
| 知识模块 | 高频考察点 | 出题比例参考 |
|---|---|---|
| 数学与统计基础 | 概率计算、贝叶斯公式、期望与方差、矩阵特征值、最大似然估计 | 约25% |
| 经典机器学习算法 | 逻辑回归、决策树、SVM、K-Means、集成学习、过拟合与正则化 | 约35% |
| 深度学习与神经网络 | 反向传播、激活函数、CNN、RNN、梯度消失、Dropout、BatchNorm | 约25% |
| 业务场景与综合 | 时效预测建模、地址解析、样本不均衡、模型评估、A/B测试 | 约15% |
从分值分布能看出来,经典机器学习算法占比最高,数学基础次之,深度学习紧跟其后。这和很多互联网公司的AI岗笔试结构类似,但顺丰的题更偏“应用判断”——不太会在推导上卡死你,更多是给你一个业务场景或模型描述,让你判断对错、选择合适的方法。
提示:如果你只看深度学习不看经典机器学习,这套题会很吃亏。我见过不少只刷CNN/Transformer的同学,遇到决策树特征选择、SVM核函数题直接懵。基础知识扎实比追新模型重要得多。
2. 核心知识点模块拆解与典型题解析
2.1 数学与统计基础:最容易被突击复习拿到分
数学题在这套客观题里属于“送分但有陷阱”的类型。考点集中在概率统计、线性代数、最优化方法三个方向,难度大约是国内工科数学考研的基础题水平,但考察方式和考研不太一样,更偏实际应用。
举个例子,贝叶斯公式相关题目几乎是必考的,而且不止一次出现。典型问法是一个分类器的准确率已知,先验概率已知,让求后验概率。这种题目的陷阱在于:题目给出的“准确率”究竟是查准率还是查全率,还是整体准确率?如果题目说的是“分类器在A类样本上的准确率为95%”,那这个95%是条件概率 (P(预测正确|真实为A)),和后验概率 (P(真实为A|预测为A)) 不是一回事,需要通过贝叶斯公式计算。
另一类高频题是期望与方差的计算。比如给一个随机变量取值和对应概率,要求计算期望或方差。这类题本身不难,但考场上容易马虎,尤其是遇到常数项的平方、独立随机变量方差相加这些细节时。
线性代数部分考得比较规整,通常考矩阵特征值分解、矩阵转置与逆的运算、特征值与正定性的关系。这里有个复习技巧:不要把精力花在手动做大规模矩阵计算上,笔试一般不会出3阶以上的手算题,更多是考性质判断,比如“半正定矩阵的特征值非负”这种判断对错。
最优化方法主要考梯度下降的基础概念,比如学习率过大会怎么样、梯度方向是哪个方向、拉格朗日乘子法用来解决什么问题。这一块如果你做过实际模型训练,理解的深度会明显不一样。有个典型的考察方式:给一个损失函数,问在当前参数下梯度方向是什么,让从几个选项中选。这种题考的其实是反向传播里链式法则的基本功,但会被包装成“给公式、给参数、算梯度”的形式。
| 子模块 | 必会内容 | 易错点 |
|---|---|---|
| 概率统计 | 贝叶斯公式、条件概率、期望方差、常见分布 | 混淆先验与后验、混淆查准率与查全率 |
| 线性代数 | 特征值、特征向量、矩阵正定性、SVD概念 | 特征向量方向、矩阵乘法顺序 |
| 最优化 | 梯度下降、学习率、损失函数求导 | 梯度的正负号、学习率过大发散 |
2.2 经典机器学习算法:高频考点与常见变形
说实话,这套题里最有含金量的是经典机器学习算法部分,考得很细、很灵活,不是背概念就能对付的。
逻辑回归是高频题中的高频。考察点有:逻辑回归的损失函数为什么用交叉熵而不用均方误差(因为非凸、梯度更新太慢)、逻辑回归是线性模型还是非线性模型(决策边界线性但特征变换后可以表达非线性)、如何处理多分类(Softmax回归或OvR,而不是直接用多个二分类逻辑回归硬切)。有些题目会包装成“在物流场景中预测快件是否延误”,本质上还是二分类问题,考察如何设置正负样本、如何选择评价指标。
决策树与集成学习也占了不少题。信息增益、Gini系数、基尼不纯度这些特征选择指标是必考内容。这类题容易混淆的是:ID3用信息增益、C4.5用信息增益率、CART用Gini系数,三个算法的选择标准不同。集成学习方面,重点考察Bagging和Boosting的区别,以及随机森林和GBDT在“降低偏差还是方差”上的差异。这里要牢牢记住一个核心:
- Bagging / 随机森林:并行训练多个独立模型,重点降低方差;
- Boosting / GBDT / XGBoost:串行训练,每棵树拟合前面模型的残差,重点降低偏差。
SVM的考察多核函数和对偶问题。常见题包括:线性不可分时选什么核函数、RBF核函数有两个参数(C和gamma)分别控制什么、SVM对偶问题为什么引入拉格朗日乘子。这部分对没学过SVM推导的同学有点痛苦,但客观题涉及的深度其实不高,基本是概念判断,把“最大间隔”“支持向量是少数决定边界的样本”“核函数隐式做高维映射”这几个点记住就行。
聚类与无监督学习也有涉及。K-Means的时间复杂度、K值选择方法(手肘法)、DBSCAN处理任意形状簇的能力,都是常规考点。EM算法偶尔会跑出来,一般是给一个高斯混合模型的问题问应该用什么算法,能认出是GMM + EM就能拿分。
这里插一句,这套题里出现了一个比较经典的“模型偏差方差判断题”:给定训练集误差低但测试集误差高,问是欠拟合还是过拟合,该加正则化还是加数据。这种题在面试里可能只是热身,但笔试里往往藏了一两个选项的细节,比如“增大正则化系数”和“增加训练数据”哪个更有效,取决于你判断偏差方差的主导因素。
| 算法 | 爱考察的点 | 备考关键 |
|---|---|---|
| 逻辑回归 | 损失函数、线性可分性、多分类方式 | 理解交叉熵为什么优于MSE |
| 决策树 | 特征选择指标、剪枝策略 | ID3/C4.5/CART三者的差异 |
| 集成学习 | Bagging vs Boosting、偏差方差 | 随机森林降方差,GBDT降偏差 |
| SVM | 核函数、对偶问题 | 记住“少数支持向量决定边界” |
| 聚类 | 算法比较、K值选择 | 把K-Means和DBSCAN放一起对比 |
| EM算法 | 适用场景 | 看到GMM想到EM |
2.3 深度学习与神经网络:从原理到训练细节
深度学习部分的题目能明显感觉到出题人是有过实际训练经验的,不是单纯考概念,而是会考训练中常见的现象和调参思路。
反向传播与梯度计算是基础。真题有可能给一个两层的全连接网络,输入是2维向量,隐藏层是2个神经元,输出层是1个神经元,激活函数是sigmoid,让计算某一步的梯度。这种题其实不用真的算那么多步,掌握链式法则的分解顺序就行。如果复习时间有限,至少保证能写出一层反向传播的梯度表达式。
激活函数对比很值得专门整理一页笔记。这套题覆盖了:sigmoid在深层网络中的梯度消失问题、ReLU的优点(解决梯度消失、计算快)、ReLU的死亡问题(负半轴梯度恒为0导致神经元不更新)、Leaky ReLU的出现动机。不少同学只知道“ReLU比sigmoid好”,但不知道好在哪,遇到“ReLU的缺点”这种多选题就抓瞎。
梯度消失与梯度爆炸是可以单独出两三道题的。题目通常会给一个网络结构,问为什么深层网络训练不动的可能原因,选项里会混入“学习率设置过大”“初始化不当”“激活函数选择不当”“缺少BatchNorm”。实际上这些选项都有一定道理,这时就要从“最直接原因”去判断,一般优先选主因而不是多个次要因素。
BatchNorm和Dropout是训练细节题的高频点。Dropout的作用要理解到“训练时随机丢弃神经元,测试时全量使用”,而且注意Dropout主要用于全连接层,卷积层的正则化更多靠weight decay和BatchNorm。BatchNorm的考察点在训练和推理时的差异:训练时用当前batch的均值和方差,推理时使用全局滑动平均统计量。这个细节笔试里出现过,很多人不在意,但理解了训练/推理行为差异后,这类题就不容易丢分。
CNN和RNN各考一两题。CNN通常考卷积层的参数计算公式、感受野概念、池化层的作用(降维、防过拟合、平移不变性)。RNN/LSTM常考长期依赖与门控机制,题目大概率是“解决RNN长期依赖问题的方案是什么”,选LSTM/GRU或门控机制相关选项。Transformer和Attention在这套题里也有涉及,但比例不高,主要集中在self-attention的Q/K/V是什么、和传统attention的本质区别是什么。
| 考点 | 核心结论 | 常挖的坑 |
|---|---|---|
| sigmoid梯度消失 | 导数最大才0.25,连乘趋近0 | 误以为sigmoid导数为1 |
| ReLU死亡 | 输入为负时梯度恒0 | 误以为ReLU不会梯度消失 |
| Dropout | 训练随机丢弃、测试全量 | 测试时忘记乘保留比例 |
| BatchNorm | 训练用batch统计量、推理用全局统计量 | 误以为推理也用当前batch |
| 卷积参数计算 | 输出尺寸=(输入-核+2P)/S+1 | Padding与Stride弄反 |
2.4 业务场景题与前沿扩展:结合物流背景的灵活问题
这类题是这套笔试最出彩的地方,也是很多人复习时最容易忽略的部分。它不会考死概念,而是把机器学习知识和物流业务绑在一起。
比如时效预测场景,题干会描述一个快件从揽收到签收的流程,给出各个节点的数据,让选择预测延误概率的方法。如果你只从模型角度想,第一反应是“用GBDT”“用LSTM”,但题目要考察的往往不止模型选择,还包括特征设计——比如是否该加入天气数据、历史网点负载、节假日因子,以及样本不均衡如何处理(延误快件通常远少于正常快件)。这种题没有标准答案,选的是最合理的方案。
地址解析是顺丰业务里非常典型的NLP问题。快递面单上的地址文本往往“脏”,有省略、错别字、口语化表达,比如“市中区”和“市中心”指的是同一个地方。这类题目会考察:如何处理地址实体识别(用CRF还是BiLSTM+CRF)、如何做地址标准化(基于规则还是基于生成模型)、如何评估解析效果。你在复习NLP时如果只关注情感分析、文本分类,遇到这种偏“信息抽取”的业务题会吃亏。
图像类的场景题一般面向分拣中心的面单拍照识别或包裹破损检测,考察目标检测的IoU计算、OCR的文本检测与识别流程、数据标注质量对模型效果的影响。这类题目对纯算法出身的同学不太友好,但好在一套卷子里占比不高,了解基本流程和评价指标就可以应对。
样本不均衡和模型评估是业务题里藏得最深的考点。物流业务中绝大多数问题天然不均衡:正常件远大于异常件,准时件远大于延误件。如果不做任何处理,模型只需要全预测“正常”就能拿到很高的准确率。对应考察点包括:采样策略(过采样、欠采样、SMOTE)、损失函数加权、评价指标从accuracy换成AUC/F1/Recall。这是做题的常见套路方向,也是实际工作中经常要面对的问题。
注意:做这类综合题时,正确思路是“先明确业务目标和约束,再选技术方案”。比如在时效预测题中,如果业务侧说要降低漏报率(把延误的件尽量找出来),那就要把优化目标定位在Recalling而不是整体Accuracy上,对应的模型和阈值调整策略也不同。这种逻辑如果能在答题时体现出来,客观题的命中率会高很多。
3. 客观题的答题策略与实战技巧
3.1 单选题的排除法与极限检验法
技术岗笔试的单选题,很多时候不是你真的不会,而是被干扰选项带偏了。这里建议固定用一套自己的解法:先看选项、快速排除明显错误的,再回到题干核对。
比如题目问“下列哪种方法不能解决过拟合”,选项里有增加L2正则化、增加训练数据、增加模型层数、Dropout。如果你能记住“增加模型层数”会提高模型容量、更容易过拟合,就能直接排除掉。这样做题速度快,不容易被选项带跑。
遇上看不准的计算类题目,可以用极限检验法。比如给定一个损失函数,问在什么条件下梯度最大,你可以把输入代入极端值(0和1),分别计算一下梯度方向,就能比较出大小。这种方法对付激活函数题、逻辑回归损失题特别有效,完全不用精确算,只比大小。
3.2 多选题的“少选不如不选”策略
这套笔试题里的多选题普遍是每题2分起步,选错一个选项扣分更狠。很多人为了求稳,直接放弃多选题,我觉得没必要,但需要掌握一些保守策略。
多选题的命制逻辑通常是:正确选项一般是2到3个,不太会出现4个全对的情况(除非是那种“下列说法正确的是”的宏观题)。如果你能百分百确定一个是对的,另外的选项即使不确定,也建议先不选。宁可拿50%的分数,也别冒风险扣完。
有一种方法是关注绝对化表述。选项里如果出现“一定会”“完全不会”“任何场景下都”这类绝对化的字眼,基本可以判定是错的。技术领域罕见绝对完美的结论,这是多选题常设的干扰点。
3.3 时间分配与做题顺序建议
根据这套题的题量和难度,建议整体时间分配如下:
| 题目类型 | 建议时间 | 策略 |
|---|---|---|
| 单选题(基础数学、概念) | 每题1分钟 | 快速过,拿不准的先标记 |
| 单选题(算法、深度学习) | 每题1.5分钟 | 做深度思考,但不要卡超2分钟 |
| 多选题 | 每题2分钟 | 能确定几个选几个,不恋战 |
| 判断题 | 每题30秒 | 用绝对化词排除法 |
| 场景综合题 | 每题2-3分钟 | 先通读题干,抓住业务目标再做选择 |
做题顺序上,建议先把数学和经典机器学习题做完,因为这类题拿分确定性最高,能给后面深度学习和场景题留足心态。如果你一上来就做场景综合题,很容易被大段题干消耗时间,导致前面会做的题来不及写。
3.4 判断题与填空题的踩坑点
判断题在套题里数量不多,但错一个就是全扣,没有半分余地。最容易错的地方不是知识本身,而是对“反直觉陈述”的判断。比如题目说“增加训练数据一定可以降低过拟合”,这句话在常规理解下是对的,但严格来说,如果增加的数据分布和原数据完全不同,反而可能引入噪声、降低模型效果。判断时要把每个绝对化表述都当成坑来看。
填空题在人工智能笔试里一般不多见,但这套题偶尔会有填公式、填参数的主观客观混合题。遇到这种题,草稿纸一定要写清楚步骤,别跳步,很多答案是中间过程直接推导出来的,跳步容易错。
4. 备考路线与常见问题排查
4.1 三轮复习法:适合一个月内冲刺
我不推荐直接啃教材,除非备考时间超过半年。针对一个月内的备考节奏,建议按三轮走:
第一轮(约10天):主攻知识地图,把自己掌握薄弱的模块标记出来。先看经典机器学习算法和数学基础,把决策树、逻辑回归、SVM、贝叶斯、期望方差这些高频考点过一遍;深度学习部分先掌握反向传播和常见训练技巧。这个阶段不用刷题,目标是“看到题目时知道考了啥”。
第二轮(约10天):主攻题型训练。用选择题和判断题模拟题练习,重点训练多选题的选项判断和计算类选择题的快速解法。这个阶段建议把错题单独整理成文档,记录“错在哪、为什么错、正确思路是什么”,哪怕只记一句话也比重新翻书高效。
第三轮(约10天):主攻实战模拟。按考试时间做完整套题,训练时间分配和应试心态。做完之后把整套题对应的知识点回填到知识地图里,看哪些模块还在丢分。这个阶段的目标不是“多做题”,而是“把不确定的题变成确定的题”。
4.2 参考资料怎么选、怎么用
关于参考资料,说几个实用建议,按优先级从高到低排列:
- 《机器学习》(周志华,即“西瓜书”):经典中的经典,重点看决策树、SVM、神经网络、集成学习这几章,推导可以略过但概念必须吃透。
- 《统计学习方法》(李航):啃SVM和EM算法的时候很有用,例题质量高,适合针对性地补短板。
- 吴恩达《机器学习》课程:适合快速建立整体框架,但课程本身偏基础,刷题前还是要靠书本补深。
- 深度学习方面,可以先看《深度学习》花书的基础章节,但不要花太多时间在读理论推导上,优先理解训练技巧部分,比如Dropout、BatchNorm、优化器选择。
这里想特别说一下刷题资源的使用心得:很多人喜欢刷LeetCode常考题,但AI岗笔试的重点从来不在代码题,而是概念与判断题。你如果时间紧张,优先把精力放在概念理解上,而不是去刷LeetCode困难题。代码题可以放在笔试之后的面试阶段再准备。
4.3 备考中的典型问题与解决心得
先说说很多人的共性问题:“数学基础太差怎么办”。我认为不用无脑去把高数线代重新上一遍,重点看三个东西:导数与链式法则、矩阵与向量运算、概率公式。这三个东西是AI笔试数学题的全部根基,其他很多内容都是基于它们做扩展。我见过有同学花两周时间从头刷高数,结果发现考试根本不考,得不偿失。
再聊一个现实问题:“知识点都会,但做题老错”。这种情况多半不是知识问题,而是概念混淆。比如把L1正则化和L2正则化的作用搞反,或者把Bagging和Boosting降偏差方差搞反。建议做一套“对比表格”,把长得像的知识点放一起区分:L1稀疏解 vs L2规则化、数据归一化 vs 标准化、过采样 vs 欠采样、偏差 vs 方差。对比着记忆的效果远好于单独背诵。
还有一个容易被忽视的坑:复习时只刷题不看错题。刷题的目的不是追求正确率,而是暴露出薄弱点。我的做法是每轮练习后,把错题对应的知识点在笔记上画一个红圈,三轮之后就能很清楚看到自己反复错在哪,拼考前半小时只看这些红圈内容就够了。
4.4 考前48小时该做什么
到了这个阶段,不建议再学新知识了,强行学只会增加焦虑。我做这几件事效果好:
把整理的对比表格过一遍,当作最后的查漏补缺。把容易混淆的概念再确认一遍,比如L1/L2正则化、Bagging/Boosting、查准率/查全率这些。找一两个典型的计算类选择题练练手,保持手感和速度。
考前一天,把题量大的场景题通读一遍,熟悉“先业务后技术”的答题思路,不用深究不会的模型细节。
最后分享一点我的个人体会
这套客观题合集真正有价值的不是“答案是什么”,而是它帮备考者画出了一张清晰的AI岗位知识地图。从数学基础到经典机器学习,再到深度学习训练细节,最后落到物流业务场景,这个顺序本身就是一个完整的“从理论到实践”的能力链条。我后来复盘时发现,凡是知识体系完整的同学,即使没做过这套题,现场也不会考得太差;反之,只靠刷题套路、概念零碎的同学,很容易在综合题上露馅。
所以我建议,如果你准备AI/ML方向的笔试,不要只盯着单一来源的题库,而是花点时间看清楚每一道题背后的考点归属,再对应补齐自己的知识盲区。知识体系搭起来了,后续遇到其他公司的笔试题也就不用慌了。