当前位置: 首页 > news >正文

视觉/深度学习/机器学习相关面经总结(2)(持续更新)

目录

    • 1、跨模态对齐的方案
    • 2、位置编码方式
      • 1. **正弦和余弦位置编码(Sinusoidal Positional Encoding)**
      • 2. **可学习的位置编码(Learnable Positional Encoding)**
      • 3. **相对位置编码(Relative Positional Encoding)**
      • 4. **线性位置编码(Linear Positional Encoding)**
      • 5. **一热编码(One-hot Encoding)**
      • 6. **动态位置编码(Dynamic Positional Encoding)**
    • 3、激活函数
      • 3.1 为什么需要激活函数?
      • 3.2 常见激活函数
    • 4、卷积神经网络 (CNN)和循环神经网络 (RNN)
      • 4.1 CNN
      • 4,2 RNN
    • 5、卷积神经网络 (CNN) 和 循环神经网络 (RNN) 的区别
    • 6、反向传播
    • 7

1、跨模态对齐的方案

  • 嵌入空间对齐
    来自不同模态的数据(如图像和文本)被映射到一个共享的嵌入空间,例如CLIP通过对图像和文本进行对比学习,使得图像和文本的嵌入向量在同一空间中更具可比性,从而实现跨模态对齐。
  • 多模态注意力机制
    注意力机制,模型能够聚焦于不同模态中最相关的部分,并对其进行对齐融合。
    Q(查询):表示我们希望学习到的特征。
    K, V(键值):表示我们用来计算注意力的特征。
  • 。。。。。

2、位置编码方式

1. 正弦和余弦位置编码(Sinusoidal Positional Encoding)

  • 概述:由Vaswani等人在Transformer模型中提出,正弦和余弦位置编码通过不同频率的正弦和余弦函数对序列中的每个位置进行编码。
  • 计算方式:对每个位置i和维度2k,使用正弦函数和余弦函数进行编码:
    在这里插入图片描述
  • 优点:位置编码是固定的,不依赖于训练数据,可以适用于任意长度的序列。编码的顺序信息是通过周期性函数显式表达的。

2. 可学习的位置编码(Learnable Positional Encoding)

  • 概述:可学习的位置编码将位置编码作为可训练的参数直接嵌入到模型中。这些编码通过反向传播进行优化,随着训练的进行不断调整。
  • 计算方式:每个位置对应一个向量,和模型中的其他权重一样,这些位置向量通过训练进行优化。
  • 优点:通过学习获得的位置编码可以根据具体任务进行优化,能够更好地适应特定任务的需求。

3. 相对位置编码(Relative Positional Encoding)

  • 概述:相对位置编码通过编码序列中元素之间的相对位置,而不是绝对位置。它在一些Transformer变种(如Transformer-XL)中被使用,旨在改进长序列建模。
  • 计算方式:对于序列中的任意两个位置 ( i ) 和 ( j ),编码表示它们之间的相对位置 ( |i - j| )。
  • 优点:适合处理长序列,尤其是在序列长度较大时,相对位置编码比绝对位置编码表现更好。

4. 线性位置编码(Linear Positional Encoding)

  • 概述:线性位置编码是一种简单的编码方法,通过线性增加的位置向量来表达位置关系。
  • 计算方式:位置编码可以简单地通过位置的线性映射(例如直接使用位置作为编码向量)来完成。
  • 优点:实现简单,但通常效果不如其他复杂的编码方式。

5. 一热编码(One-hot Encoding)

  • 概述:对于每个位置,使用一个独热向量来表示该位置的存在。这种编码方式是最简单的一种,但通常只用于短序列或其他简单任务。
  • 计算方式:每个位置有一个对应的独热向量,表示该位置的唯一性。
  • 优点:简单直观,但不保留位置信息的连贯性和顺序。

6. 动态位置编码(Dynamic Positional Encoding)

  • 概述:与固定位置编码不同,动态位置编码基于输入的序列动态计算位置编码,通常结合其他特征(如上下文信息)。
  • 优点:更加灵活,可以根据具体输入序列的上下文动态调整。

3、激活函数

3.1 为什么需要激活函数?

神经网络每一层的输入输出是线性变换,若没有激活函数,无论网络多复杂,最终输出都会是输入的线性组合,无法处理复杂问题。引入激活函数后,常见的非线性激活函数使得神经网络能够逼近任何非线性函数,从而扩展了神经网络的应用范围,处理更多复杂的任务。

3.2 常见激活函数

在这里插入图片描述在这里插入图片描述

4、卷积神经网络 (CNN)和循环神经网络 (RNN)

4.1 CNN

卷积神经网络(CNN,Convolutional Neural Network) 是一种深度学习模型,特别擅长处理图像数据。它通过模拟生物视觉系统的处理方式,能够自动从原始图像中学习到层次化的特征表示。CNN 是卷积操作与神经网络结合的产物,具有强大的特征提取能力。

  1. 卷积层(Convolutional Layer)

    • 通过卷积操作提取局部特征。
    • 使用多个滤波器(卷积核)对输入数据进行卷积,生成特征图(Feature Map)。
    • 卷积层有助于捕捉图像的局部空间关系,特别适合图像等结构化数据。
  2. 激活函数(Activation Function)

    • 通常使用 ReLU(Rectified Linear Unit)激活函数,来引入非线性。
    • 激活函数使网络能够表示复杂的非线性关系,增强模型的表达能力。
  3. 池化层(Pooling Layer)

    • 通过降采样(如最大池化或平均池化)来减少特征图的空间尺寸。同时保留重要的特征。
    • 降低计算量和内存占用,同时增加模型的鲁棒性。
  4. 全连接层(Fully Connected Layer, FC)

    • 在卷积层和池化层之后,通常通过全连接层进行分类或回归任务。
    • 全连接层将前面的局部特征映射到全局特征,并进行最终的决策。
  5. 输出层(Output Layer)

    • 输出层根据任务类型(如分类、回归等)产生最终的结果。

4,2 RNN

RNN 的基本结构:

  • 输入序列(Input Sequence):RNN 接收一个按时间顺序排列的输入序列,通常为一个一维或多维的向量。
  • 隐状态(Hidden State):在每个时间步,网络通过隐状态保存对输入序列中前面时刻的信息。
  • 输出序列(Output Sequence):根据隐状态,RNN 会生成一个或多个输出。

RNN 的主要特点:

  • 循环连接(Recurrent Connections):

RNN 的核心特点是其在每个时间步的输出不仅依赖于当前的输入,还与之前的状态相关。
通过循环连接,网络可以将前一个时间步的输出作为当前时间步的输入之一,从而形成信息的“记忆”。
这种循环连接使得 RNN 能够处理时序数据,适合用于序列化任务(如语音、文本、视频)。

  • 共享权重:

RNN 在所有时间步共享相同的参数,这使得它在处理长序列时更加高效,并且能够学习到时间步之间的依赖关系。

  • 隐状态(Hidden State):

RNN 的每个时间步都有一个隐状态,它是对当前时刻信息的编码,并会传递到下一个时间步。
隐状态的更新是由当前输入和上一时刻的隐状态共同决定的,进而影响下一个时刻的输出。

5、卷积神经网络 (CNN) 和 循环神经网络 (RNN) 的区别

区别:

结构差异: CNN 的结构是平面且局部感受的,而 RNN 具有循环结构,能够处理时序数据中的依赖关系。

应用场景: CNN 更适合静态数据(如图像、视频),而 RNN 更适合动态数据(如语音、文本、时间序列)。

数据处理: CNN 是逐层进行卷积处理,关注局部特征,而 RNN 是通过时序的递归方式处理数据,能够记住前面的信息并影响后续的计算。

6、反向传播

反向传播算法是计算梯度并进行优化的核心算法。其基本思想是通过链式法则(Chain Rule),将误差从输出层反向传播到输入层,从而计算每一层参数(权重和偏置)对最终误差的贡献。
步骤:
在这里插入图片描述

7


http://www.mrgr.cn/news/100430.html

相关文章:

  • 合理布局结构体,精打细算 cacheline
  • MCP实战派【1】-SSE
  • Arduino 入门学习笔记(六):外部中断实验
  • 基于知识库的智能客户服务工具
  • 辞九门回忆
  • 练习普通话,声音细柔和
  • 如何理解promise 续一
  • 解决Cline的Shell Integration Unavailable问题
  • OpenSSH配置连接远程服务器MS ODBC驱动与Navicat数据库管理
  • C++初阶-STL简介
  • 10 DPSK原始对话记录
  • ALTER TABLE 删除DROP表列的报错: 因为有一个或多个对象访问此列
  • MIT XV6 - 1.1 Lab: Xv6 and Unix utilities - sleep
  • 基于云原生架构的后端微服务治理实战指南
  • 【Linux】Centos7 在 Docker 上安装 mysql8.0(最新详细教程)
  • 【C++ 类和数据抽象】消息处理示例(2)
  • SHCTF-REVERSE
  • 6.图的OJ题(1-10,未完)
  • 【Pandas】pandas DataFrame rfloordiv
  • 文心一言开发指南06——千帆大模型平台新手指南