当前位置:   article > 正文

算法岗面试问题总结(四)_多模态面试

多模态面试

1. 介绍pointnet++

pointnet++是在pointnet的基础上提出的,它用于解决pointnet在场景分割时直接将所有的点最大池化成一个全局特征导致分割效果不好的问题。

pointnet++采用了分层点云采样的方法,把每一层的操作叫做一次set abstration,包括采样、分组和特征提取,首先通过最远采样点法(FPS)在点云上采样一些点,然后以这些点为中心在某一范围内寻找k个临近点组成局部子点云,接着对子点云使用pointnet作特征提取和池化操作,继续下一个set abstration。随着层数的增加,中心点的个数越来越少。这个过程类似于聚类操作。
在这里插入图片描述
进行分组的时候,需要选取策略,因为数据分布的密度不同,可能导致分组很不合理。

  1. 多尺度分组。依据多个尺度,譬如欧氏距离,曼哈顿距离等结合来进行分组,但是这样的分组会导致计算成本很高;
  2. 多分辨率分组。只利用两个尺度,一个是上一次set abstration得到的特征,另一个是根据当前数据获得的特征,联合这两个特征进行分组。

2. 请你说说Attention Model

注意力机制可以选择性地将注意力集中在较为显著的区域,以更好捕捉时空语义信息。
在这里插入图片描述
注意力机制主要用在自然语言处理、图像修复、超分辨率、风格迁移等,常用的策略包括空间注意力,通道注意力等。

空间注意力主要关注两个不同位置的特征信息,寻找两个位置特征之间在时间空间上的依赖关系,用在视频动作识别;
通道注意力增强有用通道的响应,削弱影响较小的通道响应,一般将通道融合和注意力机制结合。一般用于图像处理。

3. k-means簇心随机确定不好,有没有什么办法?

  • one: 随机选取初始簇心,然后进行多次聚类,将每次聚类的SSE(误差平方和)作比较,选择最小的那个。但是这个方法还是随机确定的,而且增加了计算的复杂度;
  • two:先利用其他聚类技术进行聚类,如谱聚类或层次聚类,将其他技术聚类得到的k个簇心用来作为k-means的初始簇心。这种方法类似于SVM的核函数一样,将数据先进行转换再聚类。
  • three:选取所有点的质心作为第一个初始簇心,对于后续的簇心,选择离已经选取的这个初始簇心最远距离的点作为新的簇心。这样保证了初始簇心的选择是随机的,并且是散开的。但是容易选择到离群点。(k-mean++思想)

4. 深度学习模型有哪些?

图像处理

  • LeNet:手写数字识别,开山之作,只有卷积池化,卷积池化层组成。
  • AlexNet:提出了分组卷积,使用了ReLu函数,使用最大池层代替了平均池层,使用了dropout。
  • VGGNet:使用小核(33,11)代替了之前的大核(7*7),网格深度达到了19层。
  • ResNet:采用残差思想,何凯明的论文提出。残差可以解决梯度消失或梯度爆炸,网络深度达到152层。

目标检测

  • FasterRCNN: rgb大神文章,至今还在沿用。
  • MaskRCNN: 何凯明优化的,实现了语义分割。
  • YOLO系列
  • SSD单阶段网络
  • Center Net网络

针对移动端优化的模型

  • ShuffleNet一系列
  • GhostNet
  • SqueezeNet

5. 请你说说各个激活函数的优缺点,sigmoid relu leaklyrelu tanh,以及解释下梯度消失

**sigmoid函数:**它的输出是一个概率,但是可以对其输出进行归一化以实现分类。
缺点:

  • 输出值过大或过小会导致梯度消失;
  • 不是以0为中心,导致收敛速度下降;
  • 执行的是指数运算,导致速度慢。

ReLu当输入小于零,梯度为0,否则为1。

当输入为正时,不存在梯度饱和问题;
它是线性计算,比sigmoid和hanh速度快。

缺点:
如果输入为负,则梯度完全为零,导致无法反向传播、更新节点,导致神经元失效。

hanh
由sigmoid函数变换而来,其输出值在[-1,1]之间,以零为中心,加快了收敛速度。
缺点:
当输出趋近零或者很大很小时,会出现梯度消失的情况;
仍然是指数运算,运算速度慢。
在这里插入图片描述
leaklyReLu:输入小于零,且梯度为一个很小的值,输入大于零,梯度则为1。避免了ReLu中出现死亡神经元。

6. 介绍pointnet网络

pointnet是2017年斯坦福研究人员提出的,主要用来处理三维点云数据,用于语义分割、分类与识别等。它直接对三维数据进行处理,最大限度保留了原始点云数据的信息。

在这里插入图片描述
主要流程:

  1. 将输入的三维点云数据与一个由T-Net网络输出的旋转矩阵进行相乘,使它成为适合分类和识别的矩阵形式;
  2. 之后进入到MLP卷积层提取特征,再由一个T-Net网络对特征对齐;
  3. 经过最大池层获得输入点云数据的全局特征;
  4. 对于分类任务,直接根据全局特征判断;
  5. 对于分割任务,将全局特征与之前学习到的各点特征进行联合,将组合后的特征通过MLP得到各点的分类结果。

6. 你了解多模态处理吗?

多模态处理是针对单模态混合的数据处理基础上发展的。所谓的单模态就是文本、语音、图像等。而多模态如视频,包含了语音、文本、图像等。针对单模态数据,往往直接利用现有成熟的特征提取方法。对于多模态,则需要考虑到多模态信息的建模、获取、融合、语义度量等。

  • 多模态建模:实际上是建立一个单模态分类体系,这个分类体系中各模态之间需要满足完整性、正交性和直观性。
  • 多模态数据的获取:一般都是通过车联网、监控器等获取的。
  • 多模态的解析:就是将多模态数据解析成多个单模态数据。
  • 多模态语义分析:就是将多模态中的多个单模态进行协同并行的语义分析,然后再进行融合得到对于多模态的语义分析方法。
  • 多模态信息检索:一种是对多模态中的不同模态的语义关系进行统一建模,实现跨模态搜索;另一种是利用共生或共现的多模态信息作为语义桥梁实现跨模检索。

7. 说说LSTM中的各个门

遗忘门:决定了上一时刻的单元状态有多少保留到当前单元,是一个sigmoid层。
在这里插入图片描述
在这里插入图片描述
thegama是sigmoid函数。h(t-1)是上一时刻LSTM的输出,x(t)是当前的输入,bf是偏置,Wf是权重矩阵。

输入门:决定了当前时刻存储什么新信息,包含了一个sigmoid网络层和tanh层。tanh状态创建一个新状态,sigmoid输出一个置于0,1之间的概率来确定哪些状态被更新,以及更新程度。
在这里插入图片描述
更新状态
在这里插入图片描述
输出门:确定当前状态要输出的信息。同样由sigmoid层和tanh组成。
在这里插入图片描述

8. 请你说说SeqToSeq

SeqToSeq的思想和transformer很像,都是采用编码数据来学习,输出端输出解码数据。
在这里插入图片描述
图片中每一个都是一个RNN单元,通常是LSTM或者GRU。

Encoder是一个RNN,它的每一时刻的输入都是上一时刻隐层的状态和当前输出,然后有一个输出和新的隐层状态。输出作为下一个RNN的输入。seq2seq只保留最后一个RNN的隐状态作为Decoder的输入。

Decoder也是一个RNN,每一时刻的输入是上一时刻的隐状态和上一时刻的输出,一开始的隐状态是Enconder最后的隐状态,输入是特殊的。

9. 请你介绍一下HMM

隐马尔可夫模型是比较经典的机器学习模型,常用于自然语言处理、语言识别、模式识别。适合使用它的数据有以下两个特征:

  1. 问题是基于序列的,时间序列或状态序列;
  2. 问题中有两类数据,一类是可观测的,即观测序列;另一类是不可观测的,即状态序列。

流程:

  • 初始化局部状态
  • 利用动态规划推测t=2,3,4…n的局部状态
  • 最后时刻T的最大状态作为最可能隐藏状态序列出现的概率
  • 计算T时刻的最可能的隐藏状态
  • 反推T-1,T-2,…时刻的状态

10. dropout的作用

网络中将训练数据前向传导,然后又进行反向传播。这个过程中将某些节点以概率p丢弃掉。之前丢弃的节点可能再次被丢弃,也可能被利用,但是这一轮训练中不再起作用。解决过拟合
在这里插入图片描述
标准dropout:在训练过程中按照一定概率将神经元权重或者偏置设置为0,而不是输出设置为0。发明人建议输入层的p=0.2,隐藏层的p=0.5。

DropConnect只能用于全连接的网络层,它的丢弃概率为1-p。

BPTT使用dropout的时候,只能相邻层的循环单元之间,而不能在同一层的循环体结构之间。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/701797
推荐阅读
相关标签
  

闽ICP备14008679号