人工智能笔面试常见问答

人工智能笔面试常见问答

一、机器学习

  1. 网络配置batchsize的大小怎样设置,过小和过大分别有什么特点?
    batchsize:指一次要将多少个数据送入模型去训练,这个值介于1和训练样本总个数之间。
  • batchsize太小,训练耗时长,效率低;同时训练数据难以收敛,导致模型欠拟合。
  • 随着batchsize增大,训练时间减少,所需内存容量增大;在提高稳定性的同时可能导致模型泛化能力下降。
    所以 batchsize 的值越大,梯度也就越稳定,而 batchsize 越小,梯度具有越高的随机性,但如果 batchsize 太大,对于内存的需求就更高,同时也不利于网络跳出局部极小点。所以,我们需要设置一个合适的batchsize值,在训练速度和内存容量之间寻找到最佳的平衡点。
  1. 设置学习率衰减的原因是什么?
    在训练网络时,学习率用来控制参数的更新速度。
  • 使用小的学习率,参数的更新速度就会比较慢,也有可能导致模型停在局部极小值上,不利于跳出去寻找一个更好的局部极小值
  • 使用的学习率过大时,参数在搜索过程中会出现震荡,可能在局部最优值附近震荡,网络不能收敛,也可能会越过最优参数,导致模型找不到好的参数。
    在训练时一般都选择一定的学习率衰减策略,在初期学习率大一些,快速得到较优解,随着训练的进行逐渐减小,使模型在训练后期稳定。
  1. 有哪些分类算法?
  • 感知机:感知机是一种二分类模型,通过建立回归平面进行数据划分。其原理是,在样本空间构建一个分离超平面将数据分类。其目的是极小化误分类点到分离超平面的距离
  • 支持向量机SVM:支持向量机是一个分类学习算法,其目的是要将输入的实例分为两类。分类算法的目的是计算出一个分离超平面将实例分为两类,当分类的实例距离这个超平面越远,越不可能误分类,所以支持向量机的目的就是得到,能让实例距离很远的分离超平面。对未知的新实例有很好的分类预测能力。并且可以使用核函数将非线性数据映射到高维空间进行求解解决非线性问题。
  • 逻辑回归:实际中最常用的就是二分类的Logistic回归,用于分类。Logistic回归本质上是线性回归,先把特征进行线性求和,然后根据求和的得分进行预测。
  • 朴素贝叶斯:朴素贝叶斯是以已知条件求未知的一种方法。其通过寻找影响结果的特征构建已知特征与结果的关系,并利用极大似然估计法用历史数据估计计算所需数据求解得出结论的过程。
  • knn算法:knn模型认为长得像的数据各方面信息也相近。knn是一种常用的监督学习方法,给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。
  • 决策树:可以解决线性不可分问题,适用于离散型数据。其实质也是认为长得相似的样本的类别会相同,决策树实质就是将样本数据进行层层细分,依据数据的特征划分为不同的块,认为每块数据的值相同。进行预测时只要确定预测的数据特征属于哪一块就可以确定最终的结果。
  1. 分类和回归的区别是什么?
    分类和回归同属于监督学习需要完成的任务。
    分类与回归最主要的区别是输出变量的类型:连续变量的预测叫回归,离散变量的预测是分类。

  2. 描述一下K-means聚类的过程。
    (1)随机选择k个样本作为初始均值向量;
    (2)计算样本与各均值向量的距离,根据距离最近的均值向量确定该样本的簇标记;
    (3)计算新均值向量
    (4)聚类中心不再变化或到最大迭代次数,则停止,否则,重复2、3。

  3. 训练集、测试集、验证集的作用

  • 训练集:用于模型拟合的数据样本。在训练过程中对训练误差进行梯度下降,用于训练权重参数。
  • 测试集:对模型的泛化能力进行评估。
  • 验证集:是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。
  1. 什么是k折交叉验证?
    交叉验证法:将数据集D划分为k个大小相似的互斥子集。每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样可获得k组训练/测试集,从而进行k此训练和测试,最终返回结果为k个测试结果的均值。
    通常把交叉验证法称为“k折交叉验证”,k最常用的取值为10。

  2. 分类和聚类的区别?

  • 类别是否预先定义是最直观区别。分类是把某个对象划分到某个具体的已经定义的类别当中,而聚类是把一些对象按照具体特征组织到若干个类别里。
  • 分类算法的基本功能是预测;聚类算法的功能是降维
  • 分类是有监督的算法,而聚类是无监督的算法。
  1. 梯度的概念?
    梯度:是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

  2. 有监督学习、无监督学习、半监督学习的区别:
    有监督学习:每个训练样本x有人为标注的目标t,学习的目标是发现x到t的映射,如分类、回归。
    无监督学习:学习样本没有人为标注,学习的目的是发现数据x本身的分布规律,如聚类、流行学习等。
    半监督学习(Semi-Supervised Learning):少量数据有标注,大部分数据没有标注,需设计合理的算法对未标注数据进行有效利用。

  3. 什么是过拟合?怎么解决过拟合?
    如果模型对训练数据学习的过于精细,有可能学到一种细枝末节的变化,甚至噪声。因为这些变化和造成不具有规律性。对它们的过度学习将导致模型在测试数据上性能的大幅下降,这一现象称为过拟合

  • 降低模型的复杂度
  • 数据清洗、增强
  • 增大训练集
  • 采用正则化:在训练的目标函数中加入一个正则项,以控制参数的取值范围。常见的正则项包括二阶范数 ∣ ∣ w ∣ ∣ 2 ||w||_2 ∣∣w2和一阶范数 ∣ ∣ w ∣ ∣ 1 ||w||_1 ∣∣w1,前者是所有参数的平方和的平方根,后者是所有参数的绝对值之和。
  1. 怎样解决梯度消失、梯度爆炸问题?
    深度神经网络训练的时候,采用的是反向传播方式,该方式使用链式求导,计算每层梯度的时候会涉及一些连乘操作,因此如果网络过深。
    那么如果连乘的因子大部分小于1,最后乘积的结果可能趋于0,也就是梯度消失,后面的网络层的参数不发生变化;
    那么如果连乘的因子大部分大于1,最后乘积可能趋于无穷,这就是梯度爆炸
  • 解决梯度消失:

选用合适的激活函数。比如 ReLU 或者 Leaky ReLU。因为像 Sigmoid 和 Tanh 这样的激活函数,会出现比较大的梯度饱和区域,使得梯度的取值接近于 0。
采用 Batch Normalization 层,对网络中计算得到中间值进行归一化,使得中 间计算结果的取值在均值为 0,方差为 1 这样的分布内。那么此时,在 sigmoid 和 tanh 中,函数取值处于中间变化较大的部分,梯度取值也相对较大,从而可以防止过拟合。

  • 解决梯度爆炸:

设置梯度剪切阈值,如果超过了该阈值,直接将梯度置为该值
使用 ReLU 激活函数
使用长短期记忆网络:在循环神经网络中,梯度爆炸的发生可能是因为某种网络的训练本身就存在不稳定性,使用长短期记忆(LSTM)单元和相关的门类型神经元结构可以减少梯度爆炸问题。
重新设计网络模型:梯度爆炸可以通过重新设计层数更少的网络来解决。使用更小的批尺寸对网络训练也有好处。另外也许是学习率过大导致的问题,减小学习率。

  1. 什么是L1正则化、什么是L2正则化?
    正则化在损失函数中引入模型复杂度指标,利用给W加权值,弱化了训练数据的噪声(一般不正则化b)
  • L1正则化
    l o s s L 1 ( w ) = ∑ i ∣ w i ∣ loss_{L1}(w)=\sum_i |w_i| lossL1(w)=iwi
  • L2正则化
    l o s s L 2 ( w ) = ∑ i ∣ w i 2 ∣ loss_{L2}(w)=\sum_i |w_i^2| lossL2(w)=iwi2

L1正则化大概率会使很多参数变为零,因此该方法可通过稀疏参数,即减少参数的数量,降低复杂度。
L2正则化会使参数很接近零但不为零,因此该方法可通过减小参数值的大小降低复杂度。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值