论文笔记:Composite Common Spatial Pattern for Subject-to-Subject Transfer

news/2024/5/19 16:40:46 标签: 共同空间模式, CSP, EEG, 迁移学习

论文笔记:Composite Common Spatial Pattern for Subject-to-Subject Transfer

概括

​ 目前大多数CSP算法都是基于单被试数据的协方差矩阵进行特征提取,这忽视了被试间的信息。本文提出了一种新的CSP计算算法,通过线性组合来考虑被试间的关系,实现被试间信息迁移。

方法

CSP方法与部分符号参考原文,此处给出线性组合协方差矩阵的方法,也是文章的核心部分。

首先定义被试k的不同类别c的协方差矩阵
C c k = 1 ∣ I k ∩ I c ∣ ∑ i ∈ ( I k ∩ I c ) X ~ i X ~ i ⊤ C_{c}^{k}=\frac{1}{\left|\mathcal{I}^{k} \cap \mathcal{I}_{c}\right|} \sum_{i \in\left(\mathcal{I}^{\mathcal{k}} \cap \mathcal{I}_{c}\right)} \tilde{\boldsymbol{X}}_{i} \tilde{\boldsymbol{X}}_{i}^{\top} Cck=IkIc1i(IkIc)X~iX~i
其中 I k = { i ∈ ( I + ∪ I − ) ∣ X ~ i  is a trial matrix for subject  k } \mathcal{I}^{k}=\left\{i \in\left(\mathcal{I}_{+} \cup \mathcal{I}_{-}\right) \mid \widetilde{\boldsymbol{X}}_{i} \text { is a trial matrix for subject } k\right\} Ik={i(I+I)X i is a trial matrix for subject k} I c I_c Ic是类别c的索引集,|·|是集合元素数量。

线性组合,
C ~ c k = ∑ j = 1 K w j k C c j \widetilde{\boldsymbol{C}}_{c}^{k}=\sum_{j=1}^{K} w_{j k} \boldsymbol{C}_{c}^{j} C ck=j=1KwjkCcj
可见,此时的被试k的协方差是由来自多个被试的协方差矩阵线性组合而成。

文章给出了两种 ω j k \omega_{jk} ωjk的计算方式。

一种不强调用较少试验矩阵计算的协方差矩阵,
C ~ c k = ( 1 − λ ) ∣ I k ∩ I c ∣ ∣ I c ∣ C c k + λ ∑ j ≠ k ∣ I j ∩ I c ∣ ∣ I c ∣ C c j \widetilde{\boldsymbol{C}}_{c}^{k}=(1-\lambda) \frac{\left|\mathcal{I}^{k} \cap \mathcal{I}_{c}\right|}{\left|\mathcal{I}_{c}\right|} \boldsymbol{C}_{c}^{k}+\lambda \sum_{j \neq k} \frac{\left|\mathcal{I}^{j} \cap \mathcal{I}_{c}\right|}{\left|\mathcal{I}_{c}\right|} \boldsymbol{C}_{c}^{j} C ck=(1λ)IcIkIcCck+λj=kIcIjIcCcj
另一种则强调与所考虑的被试具有相似特征的被试的协方差矩阵,引入KL散度来计算被试间的差异。
K L [ p j ∥ p k ] = 1 2 { log ⁡ ( det ⁡ C k det ⁡ C j ) + tr ⁡ [ ( C k ) − 1 C j ] − D } K L\left[p^{j} \| p^{k}\right]=\frac{1}{2}\left\{\log \left(\frac{\operatorname{det} \boldsymbol{C}^{k}}{\operatorname{det} \boldsymbol{C}^{j}}\right)+\operatorname{tr}\left[\left(\boldsymbol{C}^{k}\right)^{-1} \boldsymbol{C}^{j}\right]-D\right\} KL[pjpk]=21{log(detCjdetCk)+tr[(Ck)1Cj]D}

C ~ c k = ( 1 − λ ) C c k + λ ∑ j ≠ k a j k C c j \widetilde{C}_{c}^{k}=(1-\lambda) C_{c}^{k}+\lambda \sum_{j \neq k} a_{j k} C_{c}^{j} C ck=(1λ)Cck+λj=kajkCcj

a j k = 1 Z k ⋅ 1 K L [ p j ∥ p k ] a_{j k}=\frac{1}{Z^{k}} \cdot \frac{1}{K L\left[p^{j} \| p^{k}\right]} ajk=Zk1KL[pjpk]1

其中 p j p^j pj是被试j的分布。文中假设其服从均值为0的D维高斯分布。


http://www.niftyadmin.cn/n/770308.html

相关文章

论文笔记:Deep Domain Confusion Maximizing for Domain Invariance

论文笔记:Deep Domain Confusion Maximizing for Domain Invariance 概述 提出编码MMD(最大 均值差异, Maximun Mean Discrepancy)来测量在 CNN中学习到的隐藏特征之间的距离。通过这种方法,网络通过最大化标签依赖性…

pytorch Debug笔记:TypeError: __init__() got an unexpected keyword argument ‘data_tensor‘

报错代码 torch_dataset Data.TensorDataset(data_tensordata, target_tensorlabel) 报错 TypeError: __init__() got an unexpected keyword argument data_tensor 原因:时代变了,新版把输入变成了可变参数,直接输入即可 正确写法 to…

numpy 随机抽样函数 np.random.choice

import numpy as npdata np.array([1,2,3,4,5,6,7,8,9]) print(np.random.choice(data,5))np.random.choice(a, sizeNone, replaceTrue, pNone) 参数说明: a:从此数组中抽样 size:抽多少个 replace:是否重复 p:a里面每一个元素被抽中的概率

pytorch debug笔记:当训练过程中loss忽然变为 nan

原因有很多,此处给出是 除0 产生的问题。但排查思路是相通的。方法较原始,但有效。 首先在网络的每个步骤后添加一个if,看是否产生 nan def forward(self, source):source self.blocks(source)if torch.any(torch.isnan(source)):print(1)…

sklearn.utils.shuffle 用法小技巧

是可以打乱多组数据的,不局限与x,y。 import numpy as np import random from sklearn.utils import shufflea np.array([1,2,3,4,5]) b np.array([0.1,0.2,0.3,0.4,0.5]) c np.array([-1,-2,-3,-4,-5])a,b,c shuffle(a,b,c) print(a) print(b) pri…

到处抄来的写作用语2

drawn from 取自 In machine learning, it is often assumed that the training and test subjects are drawn from the same distribution. bound 约束 many existing methods aim to bound the target error by the source error plus a discrepancy metric betwe…

pytorch 中的tensor.T 与tensor.data

tensor.T 是 tensor.data的转置

pytorch的shuffle功能

import torch# 原数据 x torch.arange(0, 10) print(x)# 生成随机索引 shuffle_indextorch.randperm(10)print(x[shuffle_index])