Q1:描述一些常用的重新平衡数据集的方法
- **重新平衡设计模式:**处理不平衡的数据集,即数据集中,其中一个标签构成了数据集的大部分,留下的其他标签的例子要少得多
- 缩减采样:减少模型训练期间使用的多数类中的示例数量。通常与集成学习结合使用以获得更好的结果。
- 上采样:我们通过复制少数类示例和生成额外的合成示例来过度代表我们的少数群体。
- 加权类:通过对类进行加权,告诉我们的模型在训练期间更加重视少数标签类,权重系数作为超参数调节
Q2:知道哪些数据表示方法?
对于数字输入:
- 在
[-1, 1]
范围内缩放输入:这有助于更快的收敛,因此,模型的训练速度更快/成本更低。有四种方法可以实现此目的:- 使用最小最大缩放时,缺点是最小值和最大值直接由训练集确定。
- 剪切(与最小-最大缩放结合使用):与最小最大缩放不同,此处的最小值和最大值是合理的估计值。此技术适用于均匀分布的数据。
- Z 分数归一化:通过(x-μ)/σ将数据转化为无单位的Z-Score分值
- 对于偏斜的数据,我们需要在缩放之前对数据进行转换。通常使用的一些转换技术包括日志转换、桶化输入等。
- 当输入是数字数组时,我们也可以用以下方法表示它:
- 其统计数据(如平均值、中位数等)
- 这是经验分布
- 如果数组以某种方式排序,则数组中的固定项数
- 将数字输入视为分类并映射到one-hot列。这在以下情况下很有用:
- 当数字输入只是一个索引时,例如,一周中的几天。
- 当输入和标签之间的关系不连续时,
对于分类输入:
- 当输入线性独立时,可以使用one-hot或虚拟编码。
- 计算数组中每个项的出现次数。
- 使用相对频率而不是计数以避免大量数字。
- 如果数组已排序,则由固定数量的项表示输入数组。
Q3:描述一个机器学习系统搭建的工作流程
- 可以按照下图中概述的步骤完成一个机器学习系统的搭建
- 抽象和隔离各个步骤的好处是可以在步骤之间插入验证,以监控质量和状态。因此,如果存在数据漂移或模型质量下降,将更容易识别并更快地进行补救
Q4:说说你知道的模型超参数调整方法
- 随机搜索:超参数创建了一个可能值的网格。每次迭代都会尝试从该网格中随机组合超参数,记录性能,最后返回提供最佳性能的超参数组合。
- **网格搜索:**将搜索空间定义为超参数值的网格,并评估网格中每个位置的算法性能(遍历),最后返回提供最佳性能的超参数组合。
- 贝叶斯优化:假设超参数与最后我们需要优化的损失函数存在一个函数关系;通过SMBO等算法最小化函数,从而得到最优的参数组合
Q5:机器学习中使用的embedding,有什么好处?
- Embedding 是一个将离散变量转为连续向量表示的一个方式;Embedding 可以减少离散变量的空间维数,同时还可以有意义的表示该变量。
Q6:迁移学习的思想适合用在什么场景下?
- 迁移学习的使用场景如下:假设有两个任务系统A和B,任务A拥有海量的数据资源且已经训练好,但任务B才是我们的目标任务,这种场景便是典型的迁移学习的应用场景。 新的任务系统和旧的任务系统必须在数据、任务和模型等方面存在一定的相似性。
Q7:将训练数据切分为训练集、验证集、测试集时,如果不做随机化,可能带来什么问题?
- 如果不随机拆分,训练和测试拆分可能最终会出现偏差。例如,如果您有 100 个样本,分为两个类别,前 80 个样本来自类别 1,其余样本来自类别 0,则 80/20 拆分会将所有类别 0 留在训练集中,所有类别 1 留在测试集中。造成类别的严重不均衡
Q8:迁移学习中,finetuning和特征提取(feature extraction)有什么区别?
- 在微调中,我们从预训练模型开始,并为我们的新任务更新模型的所有参数,本质上是重新训练整个模型;在特征提取中,我们从一个预训练模型开始,只更新我们从中得出预测的最终层权重。
Q9:在训练模型时,早停策略可能会有什么问题?
- 提前停止的一个问题是模型可能没有利用到所有可用的训练数据,当数据集偏小时,这种现象会更为明显
Q10:如何对一个即将上线的模型进行离线和在线测试?
- **离线评估:**衡量模型在保留样本上的表现。在数据集收集过程中,数据被分为训练、测试和验证子集。还可以进行 K 折交叉验证,以找出不同数据子集下的性能。选择对所选 KPI 表现良好的模型进行实施和部署。
- **在线评价:**将训练好的模型部署到真实场景(离线评估后)的第一步是进行 A/B 测试。经过训练的模型不会很快地面对大量真实世界的数据。相反,该模型被部署在一小部分场景中。例如,假设设计的模型是为了匹配司机和乘客。在 A/B 测试中,该模型将只部署在较小的地理区域而不是全部场景。然后将该模型的测试版与现有模型在更长的时间内进行比较,如果它导致与业务相关的 KPI 性能的提高(例如 DAU/MAU,更好的用户保留率,并最终提高优步收入),然后将在更大范围内实施。
Q11:一个模型发生梯度消失时,有什么解决方案?
- 预训练加微调
- 使用不同的激活函数,将sigmoid、tanh替换为relu
- 使用batchnorm
- 使用残差结构
- 检查是否使用了RNN,使用LSTM网络
Q12:解释AUC准则
Q13:如何处理数据不均衡的机器学习问题?
Q14:深度学习模型训练的加速方案
Q15:多机多卡训练时,误差梯度如何在不同设备之间通信
Q16:BN如何在不同设备之间同步
Q17:DataParallel 和 DistributedDataParallel的区别
Q18:描述多卡训练流程(DataParallel)
Q19:描述多机多卡的训练流程(DistributedDataParallel)