学习知识积累01

1、联合表示和协同表示

在多模态数据处理中,联合表示和协同表示(协调表示 )都是为了融合不同模态的信息,不过它们在具体方式和作用重点上存在差异:

联合表示(Joint representation)

    含义:旨在将来自多个模态(如文本、图像、音频)的数据映射到一个统一的特征空间中,生成一个综合的表示向量。在这个统一空间里,不同模态的特征相互交织,使得每个模态的信息都能在同一表示中体现。例如,对于一段电影评论(文本模态)和对应的电影海报(图像模态),联合表示会把文本中的语义信息和图像中的视觉特征整合,生成一个同时包含两者关键信息的向量。

    作用:便于直接比较和分析不同模态的数据。通过将多模态数据转换为统一形式,模型可以更轻松地挖掘模态间的潜在联系和共性 ,为后续的多模态任务,如情感分析、内容推荐等提供更全面的输入。比如在电影推荐系统中,基于联合表示,系统能更好地理解用户对电影的多模态反馈(如文本评论和对海报的视觉感受),从而做出更精准的推荐。

 协同表示(协调表示,Coordinated representation)

    含义:强调在保持各个模态自身特性的基础上,建立模态之间的协调关系。它不是简单地将模态信息混合到一个统一空间,而是让不同模态的表示在各自的特征空间中,通过某种协调机制相互关联。例如,在处理视频中的音频和画面时,音频和画面各自在自己的特征空间中被表示,但通过协同表示,它们之间的时间同步关系、语义对应关系等会被明确建模。

    作用:有助于保留每个模态的独特信息,避免在融合过程中丢失重要细节。在一些对模态特异性要求较高的任务中,协同表示能让模型更好地利用不同模态的优势。比如在自动驾驶场景中,激光雷达数据和摄像头图像数据各自有其独特的信息价值,协同表示可以在不破坏它们特性的前提下,建立两者之间的联系,使车辆更准确地感知环境。

2、生成对抗网络

生成对抗网络(Generative Adversarial Networks,简称GANs)是一种深度学习模型,其思想基于博弈论框架,核心在于“对抗学习”,通过两个神经网络——生成器(Generator)和判别器(Discriminator)的对抗过程来学习数据分布,进而生成新的、类似真实数据的样本,具体如下:

生成器:尝试生成尽可能逼真的数据样本,就像是试图模仿真品的伪造者。它接收一个随机噪声向量(通常从简单分布,如高斯分布中采样得到),并将其转换为数据样本,如图像、音频、文本等。例如在图像生成中,生成器通过内部多层卷积、全连接层等构成的网络,采用上采样等操作,根据噪声生成一个大小合适的图片。

判别器:致力于区分真实数据与生成器生成的伪造数据,如同经验丰富的鉴定师。它接收来自真实数据集的样本以及生成器产生的样本,并分别给出它们属于真实数据的概率分数。

对抗过程:在训练过程中,生成器和判别器相互竞争、共同进化。生成器的目标是最大化生成样本被判别器误认为真实样本的概率,即最小化判别器给生成样本的非真实概率的损失函数,这促使生成器不断改进生成质量,生成越来越接近真实数据分布的样本。判别器的目标则是最小化真实样本被正确分类的概率和生成样本被错误分类的概率的损失函数,从而提高自身区分真实数据和伪造数据的能力。

训练步骤:

    1. 初始化网络:随机初始化生成器和判别器的参数。

    2. 生成样本:生成器基于输入的随机噪声向量生成数据样本。

    3. 判别真伪:判别器对真实样本和生成样本进行判别,给出概率分数。

    4. 反向传播与更新:分别根据判别器和生成器的目标,计算损失函数并进行反向传播,更新它们的权重参数。

    5. 迭代训练:不断重复上述过程,每轮迭代中两个网络轮流更新权重,直至收敛。理想情况下,当训练完成时,判别器无法准确区分真实数据和生成数据,此时生成器成功学习到了真实数据的分布,能够生成高质量的合成数据。

这种机制模拟了自然选择过程,通过生成器和判别器的持续对抗,两者的能力不断提升,最终生成器能够生成以假乱真的样本,在图像生成与处理、自然语言处理、视频生成与编辑、音频合成与音乐生成、风格迁移与艺术创作、数据增强等诸多领域展示出强大的潜力和灵活性。

3、常见模态的特征提取方法

文本模态:词频—逆文档频率(TF-IDF)、Transformer-Based、词袋(BOW)、词向量(Glove)、词嵌入(Word2Vec(Skip-gram):属于 Word2Vec 模型的一种训练方式,是谷歌在 2013 年提出的词嵌入(Word Embedding)方法。Skip-gram 的训练目标是根据中心词预测上下文词,通过神经网络学习,将每个词映射为一个低维的向量表示,这个向量能够捕捉词的语义信息,从而使得语义相近的词在向量空间中距离较近 。   Word2Vec(CBOW):同样是 Word2Vec 模型的训练方式。与Skip-gram相反,CBOW(Continuous Bag Of Words)是根据上下文词来预测中心词,也是为了获取词的向量表示,在文本处理任务中,如文本分类、信息检索等,常被用于将文本中的词转换为计算机可处理的数值向量形式。)

音频模态:音量、过零率(ZeroCR)、梅尔频率倒谱系数(MFCC)

图片模态:基于深度学习的特征、局部二值模式(LBP)特征、使用ImageNet的视觉词袋特征。基于深度学习的方法使用VGG-19模型来检索给定图像的图像特征;基于LBP的方法可以有效的从图像中提取纹理特征;基于词袋的方法将图像特征视为单词。

视频模态:视频文件通常包含许多帧,相当于一批图像。同时,必须考虑视频的时间信息。现有的基于深度学习的预训练模型:I3D-Net、R(2+1)D、VGGish、RAFT、PWCNET、ResNet-18

4、词袋、词向量、词嵌入、词频-逆文档频率

词袋、词向量、词嵌入、词频 逆文档频率都是自然语言处理(NLP)中用于文本特征表示和处理的重要概念,各自从不同角度对文本信息进行量化和编码,在文本分类、信息检索、机器翻译等任务中发挥关键作用。

1. 词袋(Bag-of-Words,BOW):将文本看作一个单词集合,忽略单词顺序,仅关注单词出现频率。

举例:以“我喜欢苹果,苹果很甜”和“我喜欢香蕉,香蕉很软”两句话为例,先构建词汇表["我", "喜欢", "苹果", "甜", "香蕉", "软"],这两句话分别表示为[1, 1, 2, 1, 0, 0]和[1, 1, 0, 0, 2, 1],向量维度与词汇表大小相同,值为单词在文本中出现次数。BOW简单直观,计算成本低,但丢失了单词顺序和语义关联信息,在处理长文本或需要语义理解的任务上存在局限性。

2. 词向量(Word Vector):把单词映射为数值向量,使单词在向量空间中以数值形式表示,便于计算机处理。通过词向量,能计算单词相似度、进行文本分类等任务。例如词向量空间中,“汽车”和“卡车”向量相似度高,“苹果”和“水果”有语义包含关系也反映在向量关系上。常见词向量获取方法有Word2Vec、GloVe等。

举例:假设有一个小型的文本语料库,包含 3 句话:“苹果是红色的水果”“香蕉是黄色的水果”“橙子是橙色的水果”。以 “苹果”“香蕉”“橙子” 这三个词为例,词向量就是把这些词用向量的形式表示出来。在向量空间中,向量可以用坐标来描述,比如用一个三维向量来表示这三个词,假设 “苹果” 的向量是 [0.2, 0.5, 0.1],“香蕉” 的向量是 [0.1, 0.6, 0.2],“橙子” 的向量是 [0.3, 0.4, 0.3] 。这些向量是通过一定的算法得到的,向量之间的距离可以反映词之间的某种关系。比如计算 “苹果” 和 “橙子” 向量的距离,发现它们距离较近,这意味着在这个向量表示的语义空间里,“苹果” 和 “橙子” 在某些方面具有相似性,比如它们都是水果,都具有一定的营养价值等。

3. 词嵌入(Word Embedding):是将单词转换为低维稠密向量的技术,属于词向量的一种实现方式。与高维稀疏向量(如BOW生成的向量)相比,词嵌入得到的向量维度低且信息密度高,能更好捕捉单词语义和语法特征。词嵌入通常基于深度学习模型在大规模文本语料库上训练得到,如Word2Vec中的Skip gram和CBOW模型、GloVe模型等。训练时,模型学习单词上下文关系,使语义相近单词在向量空间位置相近。

举例:假设有一个小型的文本语料库,包含 3 句话:“苹果是红色的水果”“香蕉是黄色的水果”“橙子是橙色的水果”。词嵌入是获得词向量的过程。比如使用 Word2Vec 中的 Skip-gram 模型来进行词嵌入。Skip-gram 模型会根据一个词来预测它周围的词。以 “苹果是红色的水果” 这句话为例,模型会以 “苹果” 为中心词,去预测它周围的词 “是”“红色”“的”“水果”。在不断对语料库中的句子进行这样的学习过程中,模型逐渐学习到每个词的语义信息,并将这些信息编码到一个低维向量中。最终得到的 “苹果”“香蕉”“橙子” 等词的向量,就是通过词嵌入得到的词向量。这种方式得到的词向量,语义相近的词在向量空间中的距离会比较近。

4. 词频 逆文档频率(Term Frequency Inverse Document Frequency,TF IDF):是一种统计方法,用于评估一个单词在文档集或语料库中的重要程度。TF表示词频,指一个单词在文档中出现的频率,单词出现越频繁,TF值越高;IDF是逆文档频率,衡量单词在整个文档集中的稀有程度,一个单词在越多文档中出现,其IDF值越低。TF IDF值是TF和IDF的乘积,综合反映单词在文档中的重要性。在信息检索中,TF IDF可用于计算文档与查询词相关性,相关性高的文档排在检索结果前列。

5.pip install -e . 命令的作用

`pip install -e .` 是 Python 包管理中常用的命令,用于以 “可编辑模式”(editable mode) 安装当前目录下的 Python 包。以下是详细解释:

命令含义

'pip install':标准的包安装命令。

'-e' 或 '--editable':表示以“可编辑模式”安装。

'.':代表当前目录(即执行命令时所在的目录)。

可编辑模式的作用

当你在开发一个 Python 包时,使用 'pip install -e .' 可以实现:

1. 代码实时生效:  

   包会被“链接”到 Python 环境中,而不是复制到 'site-packages' 目录。  

   直接修改代码后,无需重新安装即可生效(适用于调试和开发)。

2. 保留源码目录结构:  

   包的源码保留在原目录中,便于版本控制(如 Git)和开发。

3. 生成包的元数据:  

   在源码目录下生成一个'.egg-info'文件夹,包含包的元信息(如名称、版本、依赖)。

使用场景

开发本地包:在开发自己的 Python 包时,通过此命令快速测试和调试。

依赖本地代码:在项目中依赖另一个本地开发的包,避免频繁打包发布。

操作步骤

1. 进入包目录:  

   确保当前目录包含 'setup.py'或 'pyproject.toml' 文件(Python 包的配置文件)

   cd /path/to/your/package  # 进入你的包目录

2. 执行安装命令:  

   pip install -e .

3. 验证安装:  

   pip list  # 查看已安装的包,包名前会有 '-e' 标记

 示例项目结构

假设你的包目录结构如下:

my_package/

├── setup.py          # 包的配置文件

├── my_package/       # 包源码

│   ├── __init__.py

│   └── module.py

└── README.md

运行 'pip install -e .' 后:

Python 环境会识别'my_package' 为一个已安装的包。

修改'my_package/module.py'中的代码后,直接生效,无需重新安装。

技术原理

可编辑模式会生成一个 '.egg-info' 文件或 '.pth' 文件,指向源码目录。  

  (例如:在'site-packages'中生成一个链接文件'my_package.egg-link')

Python 解释器会通过该链接直接加载源码目录中的代码。

常见问题

1. 为何修改代码后不生效?

   确保使用 '-e' 模式安装。

   检查是否在正确的目录中执行了安装命令。

2. 如何卸载可编辑模式的包?

   pip uninstall package_name,或者直接删除生成的.egg-info文件。

3. Windows 和 macOS/Linux 的区别

   Windows 可能会生成 '.egg-info' 文件。

   macOS/Linux 可能会生成符号链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值