社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

如何融合深度学习特征向量?

机器学习算法与自然语言处理 • 4 年前 • 1399 次点击  
公众号关注 “ML_NLP
设为 “星标”,重磅干货,第一时间送达!

转载自| 夕小瑶的卖萌屋

文 | 土豆@知乎


本文已获作者授权,禁止二次转载


前言

在深度学习中,经常会存在需要特征融合的地方[1],而最基本的融合方法无非是:(1) 按点逐位相加(point-wise addition) 和 (2) 进行向量拼接(concatenate)。这两种方式有着异同,也有着关联,接下来进行简单讨论。

Point-wise addition

逐个位相加,用数学表达为: 现有特征向量 , ,为了融合这两个特征向量,直接进行对应元素的相加,既是

进行这个操作的前提当然是这两个向量的维度是相同的,如果是不同维度,则可以通过线性变换 转换成同维向量,其中

Concatenate

向量拼接,则是一个更为通用的特征融合方法,数学表达为:现有特征向量, ,将其在同一个阶[2]的进行拼接,有融合特征向量。拼接完后,经常可以用线性映射,转换成,进行这一步的操作目的是能够和前者point-wise addition的进行同维度的比较。

两者关联与异同

前面介绍的两种操作,其实是有联系的,结论先抛出了,就是:point-wise addition 是 concatenate的特殊形式,前者可以用学习的方式,用后者表示出来,用另一种说法就是,point-wise addition 是 concatenate加了一定先验假设的结果。为什么这样说呢?我们先观察一种情况:

比较两种特征融合的方式,并且进行线性映射后的结果,有:

  • Addition:

    其中每一个可以表达成:

    ,用矩阵形式表达就是:

举个具体的例子,, 那么最后结果容易算出是

  • Concatenate:

    还是用矩阵的形式对其进行表达,不过这个时候我们的,可以发现这个情况下参数量比上者多得多。

这个时候我们可以发现,通过学习过程中的自动参数调整,在concatenate的情况下,总是有办法表达成Addition中的结果的,原因就是可以通过设置Concatenate情形下的的某些值相同,还是举原来的具体例子说明:

,此时只需要,就可以表达成和Addition完全一样的结果,读者可以自行验证。

就结论而言,因为Concatenate情况下参数量完全足以cover住Addition的,因此通过学习过程,完全是可以进行表达的,因此后者是前者的特殊形式,是添加了先验知识的特征融合方法。

那么,这个先验知识是什么呢?笔者认为因为Addition是在相同维度的特征空间中进行的,相加代表特征向量的平移,因此这个先验知识可能是假设这两类特征具有相似性,比如模态比较接近,性质比较相同的特征。当然这个只是笔者猜测,并无文献参考,欢迎各位斧正,谢谢。

有朋友问:

“point-wise addition 是 concatenate的特殊形式”的结果似乎只在均将融合后的特征线性映射成标量后才成立,但是这两种融合方法之后不一定要经过这种处理吧?而且,这种线性映射会减少大量信息,似乎不甚合理?

我觉得这个问题其实是不成立的,因为原文里面举的例子是映射成为标量只是为了举例方便而已,实际上,映射成其他高维矢量也是没问题的,比如说:在Pointwise addition的情况,那么假设其,我们有:

concatenate的情况中,我们有:

那么如果需要退化到addition的情况的话,我们的可以为:

因为我们有八个未知量,而只有两个方程,因此这是个病态问题,其实我们有多组解的,不管怎么样,我们总是可以用concatenate去退化到addition的情况的,不管是映射到标量还是矢量。 

[1] Li K, Zou C, Bu S, et al. Multi-modal feature fusion for geographic image annotation[J]. Pattern Recognition, 2018, 73: 1-14.

[2] https://blog.csdn.net/dcrmg/article/details/
79017146


下载1:四件套

在机器学习算法与自然语言处理公众号后台回复“四件套”

即可获取学习TensorFlow,Pytorch,机器学习,深度学习四件套!


下载2:仓库地址共享

在机器学习算法与自然语言处理公众号后台回复“代码”

即可获取195篇NAACL+295篇ACL2019有代码开源的论文。开源地址如下:https://github.com/yizhen20133868/NLP-Conferences-Code


重磅!机器学习算法与自然语言处理交流群已正式成立

群内有大量资源,欢迎大家进群学习!


额外赠送福利资源!深度学习与神经网络,pytorch官方中文教程,利用Python进行数据分析,机器学习学习笔记,pandas官方文档中文版,effective java(中文版)等20项福利资源

获取方式:进入群后点开群公告即可领取下载链接

注意:请大家添加时修改备注为 [学校/公司 + 姓名 + 方向]

例如 —— 哈工大+张三+对话系统。

号主,微商请自觉绕道。谢谢!


推荐阅读:

Tensorflow 的 NCE-Loss 的实现和 word2vec

多模态深度学习综述:网络结构设计和模态融合方法汇总

awesome-adversarial-machine-learning资源列表

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/107492
 
1399 次点击