关注公众号“机器学习算法面试”获取更多内容
监督学习是使用已知正确答案的示例来训练网络,每组训练数据有一个明确的标识或结果。想象一下,我们可以训练一个网络,让其从照片库中(其中包含气球的照片)识别出气球的照片。以下就是我们在这个假设场景中所要采取的步骤。
步骤1:数据集的创建和分类 首先,浏览你的照片(数据集),确定所有包含气球的照片,并对其进行标注。然后,将所有照片分为训练集和验证集。目标就是在深度网络中找一函数,这个函数输入是任意一张照片,当照片中包含气球时,输出1,否则输出0。
步骤2:数据增强(Data Augmentation) 当原始数据搜集和标注完毕,一般搜集的数据并不一定包含目标在各种扰动下的信息。数据的好坏对于机器学习模型的预测能力至关重要,因此一般会进行数据增强。对于图像数据来说,数据增强一般包括,图像旋转,平移,颜色变换,裁剪,仿射变换等。
步骤3:特征工程(Feature Engineering) 一般来讲,特征工程包含特征提取和特征选择。常见的手工特征(Hand-Crafted Feature)有尺度不变特征变换(Scale-Invariant Feature Transform, SIFT),方向梯度直方图(Histogram of Oriented Gradient, HOG)等。由于手工特征是启发式的,其算法设计背后的出发点不同,将这些特征组合在一起的时候有可能会产生冲突,如何将组合特征的效能发挥出来,使原始数据在特征空间中的判别性最大化,就需要用到特征选择的方法。在深度学习方法大获成功之后,人们很大一部分不再关注特征工程本身。因为,最常用到的卷积神经网络(Convolutional Neural Networks, CNNs)本身就是一种特征提取和选择的引擎。研究者提出的不同的网络结构、正则化、归一化方法实际上就是深度学习背景下的特征工程。
步骤4:构建预测模型和损失 将原始数据映射到特征空间之后,也就意味着我们得到了比较合理的输入。下一步就是构建合适的预测模型得到对应输入的输出。而如何保证模型的输出和输入标签的一致性,就需要构建模型预测和标签之间的损失函数,常见的损失函数(Loss Function)有交叉熵、均方差等。通过优化方法不断迭代,使模型从最初的初始化状态一步步变化为有预测能力的模型的过程,实际上就是学习的过程。
步骤5:训练 选择合适的模型和超参数进行初始化,其中超参数比如支持向量机中核函数、误差项惩罚权重等。当模型初始化参数设定好后,将制作好的特征数据输入到模型,通过合适的优化方法不断缩小输出与标签之间的差距,当迭代过程到了截止条件,就可以得到训练好的模型。优化方法最常见的就是梯度下降法及其变种,使用梯度下降法的前提是优化目标函数对于模型是可导的。
步骤6:验证和模型选择 训练完训练集图片后,需要进行模型测试。利用验证集来验证模型是否可以准确地挑选出含有气球在内的照片。 在此过程中,通常会通过调整和模型相关的各种事物(超参数)来重复步骤2和3,诸如里面有多少个节点,有多少层,使用怎样的激活函数和损失函数,如何在反向传播阶段积极有效地训练权值等等。
步骤7:测试及应用 当有了一个准确的模型,就可以将该模型部署到你的应用程序中。你可以将预测功能发布为API(Application Programming Interface, 应用程序编程接口)调用,并且你可以从软件中调用该API,从而进行推理并给出相应的结果。
更多面试题----------------------
基础概念
逻辑回归与朴素贝叶斯有什么区别
机器学习学习方式主要有哪些?
监督学习的步骤主要有哪些?
逻辑回归与朴素贝叶斯有什么区别
线性回归和逻辑回归的区别
代价函数,损失函数和目标函数的区别?
随机梯度下降法、批量梯度下降法有哪些区别?
LDA和PCA区别?
降维的必要性和目的是什么?
误差、偏差和方差的区别是啥?
梯度下降法缺点
批量梯度下降和随机梯度下降法的缺点?
如何对梯度下降法进行调优?
如何解决欠拟合
过拟合原因
如何解决过拟合
GBM
简单介绍一下XGBoost
XGBoost与GBDT的联系和区别有哪些?
为什么XGBoost泰勒二阶展开后效果就比较好呢?
XGBoost对缺失值是怎么处理的?
XGBoost为什么快
XGBoost防止过拟合的方法
XGBoost为什么若模型决策树的叶子节点值越大,越容易过拟合呢?
XGBoost为什么可以并行训练?
XGBoost中叶子结点的权重如何计算出来
XGBoost中的一棵树的停止生长条件
Xboost中的min_child_weight是什么意思
Xgboost中的gamma是什么意思
Xgboost中的参数
RF和GBDT的区别
xgboost本质上是树模型,能进行线性回归拟合么
Xgboos是如何调参的
为什么xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度?
为什么常规的gbdt和xgboost不适用于类别特别多的特征?
怎么处理类别特征在树模型下?
集成学习方法
bagging和boosting区别
为什么bagging减少方差
什么场景下采用bagging集成方法
bagging和dropout区别
为什么说bagging是减少variance,而boosting是减少bias?
adaboost为什么不容易过拟合?
组合弱学习器的算法?
DL
基础理论
说一下局部最优与全局最优的区别?
深度学习里,如何判断模型陷入局部最优?
Transfomer
Transformer为何使用多头注意力机制?
Transformer 相比于 RNN/LSTM,有什么优势?为什么
Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?
Transformer计算attention的时候为何选择点乘而不是加法?两者计算复杂度和效果上有什么区别?
为什么在进行softmax之前需要对attention进行scaled
说一下在计算attention score的时候如何对padding做mask操作?
为什么在进行多头注意力的时候需要对每个head进行降维?
大概讲一下Transformer的Encoder模块?
简单介绍一下Transformer的位置编码?有什么意义和优缺点?
你还了解哪些关于位置编码的技术,各自的优缺点是什么?
简单讲一下Transformer中的残差结构以及意义。
为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm 在Transformer的位置是哪里?
简答讲一下BatchNorm技术,以及它的优缺点。
简单描述一下Transformer中的前馈神经网络?使用了什么激活函数?相关优缺点?
Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?
Transformer的并行化提现在哪个地方?
Decoder端可以做并行化吗?
简单描述一下wordpiece model 和 byte pair encoding,有实际应用过吗?
Transformer训练的时候学习率是如何设定的?Dropout是如何设定的,位置在哪里?Dropout 在测试的需要有什么需要注意的吗?
bert的mask为何不学习transformer在attention处进行屏蔽scor
网友评论