一、深度学习相关
(一)深度学习与传统神经网络训练方法差异
深度学习为解决多层神经网络训练难题而生,创造出诸多新结构与方法,如 CNN、RNN 架构,以及 XAVIER 权重初始化、Dropout 防止过拟合等技术,有效应对梯度消失、过拟合等问题。分类问题常用交叉熵、合页、坡道等损失函数;回归问题则多采用 l1、l2、tukey's biweight 损失函数 。这些损失函数各自具备独特意义,像交叉熵用于多分类,将输出转化为概率;l1 损失函数衡量预测值与真实值偏差。
(二)卷积神经网络(CNN)
CNN 通过对图像局部像素区域处理,加强信息连续性,借助批量过滤器滚动收集信息,从底层边缘信息逐步提取高层语义。卷积的本质是加权叠加,不同卷积核提供多样加权方式,实现参数共享,减少参数量,避免过拟合。
二、自然语言处理相关
(一)中文分词
中文分词旨在将无空格的汉字序列按语义切分为词语。机械分词法基于词典匹配,简单但依赖词典完备性;基于语法和规则的分词法通过句法语义分析标注词性,因汉语语法复杂,精度有待提高;基于统计的分词法依据字符串在语料中的词频判断,常见模型有 HMM、CRF 等,因其精度高成为主流方法。
(二)深度学习在 NLP 领域应用
深度学习在 NLP 领域应用广泛,如机器翻译(神经机器翻译 NMT)提供了区别于统计方法的新途径;知识问答机器人可从语料学习答案;自然语言生成能依据关键信息自动生成文本。
三、机器学习算法相关
(一)LR 和 SVM 对比
LR 和 SVM 均为监督学习分类算法,在不考虑核函数时,分类决策面呈线性。二者区别在于损失函数不同,SVM 聚焦局部边界点,LR 则考虑全局点对边界线的影响。
(二)降维方法
面对高维数据集与有限内存的情况,可采取关闭其他程序释放内存、随机采样数据集、分离并删除关联变量(数值变量用相关性分析,分类变量用卡方检验)、使用 PCA 选取主成分、采用在线学习算法(如 VowpalWabbit)、利用随机梯度下降法建立线性模型等方法,还可结合业务理解评估变量影响,但该方法具有主观性。
(三)过拟合问题及解决
过拟合指模型在训练集表现良好,在测试集却表现不佳。可通过正则化、调节参数(如控制学习率)、交叉验证、合理划分训练集与测试集、在神经网络中减小权重等方式避免。
(四)真阳性率与召回
真阳性率和召回本质相同,公式均为 TP / (TP + FN),用于衡量模型在正样本识别方面的能力。
(五)距离计算选择
在 k - means 或 kNN 算法中,常选用欧氏距离而非曼哈顿距离。因为欧氏距离适用于任意空间的距离计算,而曼哈顿距离仅能计算水平或垂直距离,存在维度限制。
四、其他机器学习面试要点
(一)时间序列数据集交叉验证
时间序列数据集不宜采用 k 倍或 LOOCV 交叉验证,可使用 5 倍正向链接策略,如按年份划分训练集和测试集,避免打乱数据趋势。
(二)偏差方差平衡
模型误差由偏差、方差和不可约误差构成。偏差衡量预测值与实际值的平均差异,高偏差意味着模型未捕捉关键趋势;方差反映同一观察下预测值的离散程度,高方差易导致模型过拟合。应平衡二者关系,选择合适复杂度的模型。
(三)模型融合问题
组合学习模型需各模型间相关性低才能提升精度。若多个 GBM 模型未提升效果,可能是模型相关,提供了相似信息,此时组合模型难以发挥优势。
(四)评估逻辑回归模型
评估逻辑回归模型可采用 AUC - ROC 曲线、混淆矩阵衡量性能,AIC 指标类似校正 R2,用于惩罚模型系数数量,空偏差和残余偏差数值越低,模型越好。
(五)朴素贝叶斯的 “朴素” 之处
朴素贝叶斯假定数据集中所有特征作用同等重要且相互独立,但这一假设在现实中往往不成立,因此被称为 “朴素”。
五、算法工程师面试知识要点
(一)LDA 和 PCA 区别与联系
PCA 选择投影后方差最大的方向,用于无监督任务降维,去除冗余维度;LDA 选择投影后类内方差小、类间方差大的方向,借助类别标签信息,在有监督任务中寻找具有判别性的维度。如语音识别中,去除背景噪声用 PCA,区分说话人则用 LDA;人脸识别时,PCA 可降维,LDA 能提升识别效果。
(二)K - 均值算法收敛性
K - 均值算法属于 EM 算法,通过 E 步骤计算隐变量期望,M 步骤最大化似然函数。其收敛性基于函数单调有界必收敛的性质,但只能保证收敛到局部最优解。
(三)确定 LDA 主题个数
确定 LDA 主题个数时,常将数据集划分为训练集、验证集和测试集。通过在验证集上测试不同主题个数下模型的效果,选取困惑度极小值点对应的主题个数。也可采用 HDP - LDA 非参数主题模型,但因其模型复杂、训练缓慢,实际应用中多以前者为主。
(四)随机梯度下降法改进算法
动量方法引入惯性,结合前一次步伐和当前梯度更新参数,减少山谷震荡和鞍点停滞问题,加快收敛速度;AdaGrad 方法根据参数梯度的稀疏性自适应调整学习速率;Adam 方法融合二者优点,记录梯度的一阶矩和二阶矩,同时实现惯性保持和环境感知,并进行偏置矫正。
(五)L1 正则化产生稀疏性原因
从解空间形状看,L1 正则化的解空间为多边形,比 L2 正则化的圆形解空间更容易在尖角处与目标函数等高线碰撞,产生稀疏解;从函数叠加角度,L1 正则化项在原点处导数的特性使最小值点可能在原点,从而产生稀疏性;从贝叶斯先验角度,L1 正则化相当于引入拉普拉斯先验,使参数为 0 的可能性更大。
(六)贝叶斯网络采样方法
无观测变量时,采用祖先采样,按有向图顺序对祖先节点采样,所得样本服从联合概率分布;有观测变量时,逻辑采样效率低,实际常用似然加权采样,对非观测变量采样并赋予样本重要性权值,也可使用 MCMC 采样法(如 Metropolis - Hastings 采样法、吉布斯采样法)。
(七)从方差、偏差解释 Boosting 和 Bagging
Bagging 通过对训练集重采样训练多个模型并取平均,降低模型方差,提升性能;Boosting 在训练过程中不断减小损失函数,降低模型偏差,但因各弱分类器强相关,对降低方差作用不明显。
(八)ResNet 核心理论
ResNet 旨在解决深层神经网络训练中的梯度消失问题。通过引入残差结构,使网络某层可直接学习恒等映射,让跳过的层拟合残差,有效改善深层网络学习问题,使训练更深的网络成为可能。
(九)LSTM 长短期记忆功能实现
LSTM 通过输入门、遗忘门和输出门以及内部记忆单元,控制信息的流入、流出和记忆保存。当输入无重要信息时,遗忘门接近 1、输入门接近 0,保存长期记忆;有重要信息时,输入门接近 1;新信息使旧记忆不重要时,输入门接近 1、遗忘门接近 0,实现长短期记忆功能。
(十)WGAN 解决原始 GAN 的问题
原始 GAN 中生成器难以定位真实数据分布,WGAN 引入 Wasserstein 距离,解决了 JS 距离不敏感的问题,使生成器能有效感知真实数据分布,无论其藏于高维空间的哪个低维子空间。
(十一)强化学习中的策略梯度
策略梯度直接用梯度方法优化总收益函数 R (θ),避免在连续状态空间最大化 Q 函数的困难,保证局部收敛。通过模拟获得轨迹,计算梯度估计值,并可通过估算新的强化梯度缩减方差,提高梯度估算效率。
六、深度学习基础问答
(一)深度学习概述
深度学习是机器学习的重要分支,因其能从大量数据中获取有用信息而备受关注。近年来,数据量增长和硬件资源提升推动了深度学习的发展。它在多领域广泛应用,如语言翻译、语音识别、计算机视觉、医疗等。
(二)深度学习与机器学习区别
数据依赖性上,数据量小时机器学习表现较好,数据量大时深度学习性能更优;特征工程方面,机器学习需专家手动编码特征,深度学习可自动学习高级特征;可解释性上,机器学习算法(如决策树)能解释推理过程,深度学习模型解释性相对较弱。
(三)深度学习先决条件与工具选择
深度学习需掌握概率、导数、线性代数等数学知识,具备统计基础、一定编码技巧和机器学习概念。Python 因其丰富的机器学习生态系统,成为构建深度学习模型的常用语言,初学者可使用 Keras 等高级库。此外,GPU 因其强大的并行计算能力,能加速神经网络训练,是深度学习训练的关键硬件。
(四)深度学习数据与项目资源
深度学习通常需要大量数据训练模型,但可通过迁移学习缓解数据不足问题。MNIST 手写数字数据集适合初学者练习,Age Detection 竞赛则适合中级用户。同时,网络上有众多免费学习资源,涵盖图像处理、序列预测、自然语言处理等领域。
七、Python 面试要点
(一)Python 编程题
Python 编程题分为初级、中级、高级三个难度等级。初级题多涉及基础语法和简单函数、类的使用;中级题要求解决包含多个类或函数的问题;高级题则需运用丰富的库、数据结构和算法解决复杂问题。
(二)Python 常见面试题
涵盖类继承、方法对象、new 和 init 方法、列表和字典生成、全局与局部变量、变量交换、默认方法、包管理、闭包、性能优化等方面的知识。例如,调用父类方法可通过修改类对象实现;实现对象可调用需定义 call 方法;new 方法可决定创建对象的类型,init 方法用于初始化对象。
八、Google 面试要点
(一)面试方式
Google 面试分为电话面试(或 Google Hangout 面试)和现场面试。电话面试针对软件工程岗位,需在 Google Doc 编写代码并阐述思路;现场面试由多位面试官考察一般认知能力、领导力、职位相关知识和 “谷歌范儿” 等方面,软件工程师面试还会考察编程技能和技术知识。
(二)软件工程和技术职位面试准备
需掌握编程实践、编程语言(如 C++、Java、Python 等)、算法(包括排序、分治、动态编程等)、数据结构、数学(概率论、组合数学等)、图算法、递归等知识,注重对概念的理解和代码测试。
(三)AI 职位面试准备
应聘 AI 职位需了解 Google AI 在机器智能、机器感知、自然语言处理等领域的研究,阅读相关文章和资料,如 TensorFlow 相关论文、Google AI 工具介绍等,同时准备常见 AI 面试问题,如数学计算、算法原理、模型评估等。