【MTV】Multiview Transformers for Video Recognition 笔记

MTV

摘要

MTV由独自分开的encoder组成,并通过横向连接

做了许多消融实验,结果比单个view的准确度高,计算成本低

在五个通用数据集上效果好,在大规模预训练基础上效果更好

引言

图像领域,采用金字塔形多尺度处理表现好,例如slowfast。但由于pooling和下采样部分时空信息丢失;

MTV不依靠金字塔结构获取多尺度信息,构建transformer视频理解模型:

  • 慢流用更小的encoder

  • 采用不同‘’view‘,从不同维度提取token,再分别进入transformer横向链接

  • views越多,准确度上升

    在这里插入图片描述

结论

基于处理多种"view"提出了处理多尺度时间信息的transformer模型

有较为良好的性能,在五个最常用的数据集上取得最优结果

相关工作

  • 受ViT,ViViT,Timesformer启发
  • 多尺度计算在计算机视觉领域非常有效

同时处理多个view比增加transfomer深度提高准确度更大

通过变化线性投射时空管道的size获取不同的view

模型

<
### 图学习算法在多视图聚类中的应用 #### 多视图数据的特点与挑战 多视图数据指的是同一对象通过不同特征集或测量方式获得的数据表示。这种数据结构带来了丰富的信息,但也增加了处理复杂度。传统单视图方法难以有效利用这些额外的信息源。 #### 图融合技术的重要性 为了充分利用来自多个视角的信息,在多视图聚类中引入了图融合的概念。该过程旨在构建一个综合性的相似性矩阵来捕捉跨视图之间的关系模式[^1]。具体来说: - **可扩展性和无参数化**:所设计的方法应具备良好的伸缩性能以及尽可能少的手动调参需求。 - **连通性约束**:确保最终形成的图能够保持样本间的内在联系特性不变。 - **初始化无关性**:无论初始状态如何变化,都能稳定收敛到最优解附近。 #### 基于图的学习框架概述 一种典型的基于图的多视图聚类流程如下所示: 1. 构建各单独视图对应的邻接矩阵; 2. 应用特定策略(如加权平均、最大最小规则等)对上述矩阵实施融合操作得到全局表征; 3. 利用谱分析或其他手段执行降维映射; 4. 实施标准K-means或者其他合适的划分型聚类器完成最后的任务目标。 ```python import numpy as np from sklearn.cluster import KMeans from scipy.sparse.csgraph import laplacian def construct_similarity_matrix(X, k=5): """Construct a similarity matrix from data X using k-nearest neighbors.""" n_samples = X.shape[0] dists = pairwise_distances(X) indices = np.argsort(dists, axis=-1)[:, :k+1][:, 1:] sim_mat = np.zeros((n_samples, n_samples)) for i in range(n_samples): sim_mat[i][indices[i]] = 1 / (dists[i][indices[i]] + 1e-8) return symmetrize(sim_mat) def fuse_views(view_mats, method='average'): """Fuse multiple view-specific matrices into one by specified methods.""" if method == 'average': fused_mat = sum(view_mats)/len(view_mats) elif method == 'maxmin': max_vals = np.max(np.stack([np.diag(mat) for mat in view_mats]), axis=0) min_vals = np.min(np.stack([mat - np.diagflat(np.diag(mat)) for mat in view_mats]), axis=0) fused_mat = np.maximum(min_vals, max_vals.reshape(-1, 1)) return normalize(fused_mat) # Assume we have three views of the same dataset represented as feature matrices V1,V2,V3. V1_similarities = construct_similarity_matrix(V1) V2_similarities = construct_similarity_matrix(V2) V3_similarities = construct_similarity_matrix(V3) fused_graph = fuse_views([V1_similarities, V2_similarities, V3_similarities]) L = laplacian(fused_graph) _, eig_vecs = eigh(L) embedded_data = eig_vecs[:, :num_clusters] model = KMeans(n_clusters=num_clusters).fit(embedded_data) labels = model.labels_ ``` 此代码片段展示了如何从三个不同的视图出发建立各自的相似性矩阵,并采用简单的算术均值法将其合成为一个统一的整体用于后续的操作之中。值得注意的是实际应用场景下可能还需要考虑更多细节因素比如权重分配机制的选择等问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值