PhysioNet EEGMMIDB106 sujeitos64 canais 160 Hzpunho esquerdo vs punho direito
O MoBridge treina com EEG de execução motora e é avaliado em imagética motora de sujeitos que nunca apareceram no treino. Nenhum rótulo de imagética entra no ajuste dos pesos.
ERD lateralizado, janela de 4 s a 160 Hz
sementes, 10 folds disjuntos por sujeito, chance empírica . Média por semente mais ou menos .
Interfaces cérebro-computador baseadas em imagética motora pedem que o usuário imagine um movimento. Isso cria um problema de rótulo que não tem solução instrumental.
Não existe evento físico que ateste que o sujeito realmente imaginou o movimento. O rótulo gravado é a instrução que foi dada na tela, não o que o cérebro fez. Se a atenção do sujeito escapou por dois segundos, o rótulo continua lá.
Quando o sujeito de fato fecha a mão existe eletromiografia, existe o movimento, existe latência. O sinal cortical é mais forte e o rótulo é conferível.
A pergunta do trabalho: uma rede treinada exclusivamente com EEG de movimento real consegue decodificar EEG de movimento imaginado, em sujeitos que ela nunca viu? Se a resposta for sim, a calibração de uma BCI de imagética pode ser feita com dados de execução.
São dois deslocamentos de distribuição simultâneos, e os efeitos se somam.
esquema das duas fontes de variação
A imagética não tem componente aferente nem eferente real. A ativação sensório-motora é mais fraca e mais difusa que a da execução, embora ocupe as mesmas faixas de frequência e a mesma região do escalpo.
Anatomia craniana, impedância de eletrodo, posicionamento da touca e ritmos individuais mudam o sinal de pessoa para pessoa mais do que a classe muda. Um modelo que decore o sujeito acerta o treino e falha no teste.
O que precisa sobreviver aos dois deslocamentos é a intenção motora lateralizada, ou seja, a dessincronização dos ritmos mu e beta no hemisfério contralateral ao membro. Todo o resto é ruído de nuisance e precisa ser descartado.
O EEG Motor Movement/Imagery Database do PhysioNet grava cada sujeito executando e depois imaginando os mesmos movimentos. Isso dá um pareamento natural de domínios dentro da mesma cabeça, na mesma sessão, com a mesma touca.
Três sujeitos saem por registro corrompido, listados numa constante explícita em vez de descartados no meio do carregamento, o que deixa 106 utilizáveis.
Passa-banda de 8 a 30 Hz, que é onde vivem mu e beta e portanto onde vive o ERD motor. Épocas de 4 s a partir do onset, 640 amostras por trial.
As classes estão praticamente balanceadas, então a chance empírica fica colada em 0,5. Isso importa: uma chance de 0,5045 significa que qualquer acurácia reportada precisa ser lida contra esse número, não contra uma metade nominal.
Esta é a parte que decide se o número final significa alguma coisa. A validação cruzada é disjunta por sujeito, e de cada fold saem cinco conjuntos de índices com papéis diferentes.
Medido runs/exp_mirror_ind/LR_inductive/seed_42/fold_*.npz
Cada coluna é um sujeito real, na partição real do fold 0. Metade de cima é execução, metade de baixo é imagética.
A validação nunca vê imagética: o conjunto de seleção de checkpoint é execução de sujeitos separados dentro do treino. Se ele fosse imagética, a escolha da melhor época já teria consultado o alvo, e o número final seria otimista por construção.
A separação é por sujeito, não por trial: trials do mesmo sujeito são correlacionados entre si. Dividir por trial coloca vizinhos do mesmo cérebro nos dois lados da divisão e infla a acurácia sem que nada tenha melhorado.
A execução dos sujeitos de teste é o controle: se a acurácia em imagética cair mas a acurácia em execução dos mesmos sujeitos continuar alta, o problema é a transferência entre domínios e não o modelo. Medido: em execução contra em imagética, na semente 42.
Indutivo: nunca toca em imagética, em nenhum momento, nem sem rótulo. É a afirmação principal do trabalho.
Transdutivo: usa imagética não rotulada dos sujeitos de treino para adaptação de domínio, e serve como referência de limite superior.
O sinal entra por dois caminhos que enxergam coisas diferentes. Um lê a série temporal, outro lê a matriz de covariância. Os dois se fundem, e só então a representação é dividida em conteúdo e estilo.
diagrama de blocos
parâmetros na configuração usada
(d_model=64, n_layers=2).
Primeiro o sinal é alinhado: cada grupo é branqueado pela raiz inversa da sua covariância média, porque boa parte da diferença entre sujeitos é uma transformação linear que sai em forma fechada, sem gastar capacidade da rede. Depois o ConvStem filtra em tempo e só então em espaço, na ordem do CSP, porque escolher a banda antes deixa a projeção espacial ser aprendida dentro dela; o resultado vira 76 tokens. O Conformer lê esses tokens com convolução e atenção no mesmo bloco, porque o ERD tem estrutura local, no início e no fim da dessincronização, e global, ao longo dos 4 s.
Em paralelo, a covariância do mesmo trial passa pelo ramo SPD, que entrega a invariância a transformação afim sem precisar aprendê-la. Os dois ramos se fundem e o VAE separa o resultado em conteúdo e estilo, porque a informação de domínio precisa de um destino explícito, senão ela reaparece no código que alimenta o classificador. No fim, só o código de conteúdo é classificado. Antes de tudo isso, o stem e o Conformer passam por um pré-treino auto-supervisionado em janelas sem rótulo, que são cerca de dez vezes mais numerosas que os trials rotulados.
Achado que mudou o projeto: um encoder de 16,4 milhões de parâmetros perdeu para o de 0,8 milhão, 0,696 contra 0,766 em ME para MI. Com cerca de 4,8 mil trials rotulados, capacidade extra vira memorização de sujeito. O perfil pequeno virou o padrão por causa disso, não por economia.
Antes de qualquer camada aprendida, cada grupo de trials é branqueado pela raiz inversa da sua covariância média de referência. Impedância, ganho e geometria da touca produzem uma transformação aproximadamente linear da covariância, e isso pode ser removido sem gastar capacidade da rede.
elipses de covariância, seis grupos, projeção 2-D
Os eixos são a amplitude de dois canais quaisquer, e cada elipse é o contorno de
um desvio da distribuição daquele grupo: a orientação mostra a correlação entre os
dois canais, e o tamanho mostra a potência. Depois do alinhamento,
trace/C fica em 1,000 para todos os grupos.
As elipses deixam de contar de quem é o crânio e passam a contar o que a pessoa fez.
O piso de autovalor é relativo ao maior autovalor. Um piso absoluto quebra o alinhamento em EEG na escala de Volts, onde os autovalores ficam na casa de 1e-10: o piso engoliria o espectro inteiro e o branqueamento viraria um reescalonamento.
O escopo de agrupamento é configurável. O padrão branqueia sujeito por domínio. Existe um escopo alternativo que estima a referência apenas com execução, para quando se quer que nem a estatística de segunda ordem da imagética seja tocada.
Um trial entra como uma matriz de 64 canais por 640 amostras e sai como dois códigos latentes. Cada estágio muda a forma do tensor por um motivo específico.
formas e módulos reais do modelo
Essa é a ordem do EEGNet e do ShallowConvNet, e é a ordem do CSP: filtra-se a banda primeiro, e só depois se aprende a projeção espacial dentro daquela banda. O filtro espacial de 64 por 1 é literalmente uma combinação linear de canais, que é o que o CSP faz à mão.
As coordenadas 2-D dos eletrodos entram por um MLP, em vez de índices de canal. Um canal é uma posição no escalpo, não um número arbitrário. Isso também deixa o modelo robusto a reordenação de canais.
O trial de teste percorre o mesmo caminho: sinal e covariância entram nos dois
ramos, a fusão produz z_raw, o VAE separa os dois códigos e apenas
z_content alimenta o classificador. O argmax dos logits
dá a classe e o softmax dá a probabilidade que entra nas métricas. O
discriminador de domínio, a cabeça auxiliar e o decoder do VAE existem só no
treino e não são avaliados.
Com recorte ligado, os logits de várias janelas igualmente espaçadas são promediados antes do softmax, e cada recorte carrega a própria covariância, para que o ramo SPD veja a janela que está sendo pontuada. Na manchete, as três sementes são combinadas promediando probabilidades por fold.
O ERD motor tem estrutura em duas escalas: transições locais no início e no fim da dessincronização, e evolução global ao longo dos 4 s. A convolução depthwise captura o local, a atenção captura o global, e o bloco do Conformer junta os dois. O AttentionPool no fim usa uma query aprendida, o que é melhor que média porque o ERD não ocupa a janela inteira: a query aprende onde olhar.
Matrizes simétricas definidas positivas não formam um espaço vetorial. Somar duas e dividir por dois não dá a média que interessa, e uma camada linear comum pode empurrar o resultado para fora do conjunto. O ramo é um SPDNet, com três camadas. O BiMap, de mapeamento bilinear, reduz dimensão dentro da variedade. O ReEig, de retificação de autovalores, aplica um piso no espectro para manter a definição positiva. E o LogEig, de logaritmo de autovalores, projeta no espaço tangente, onde álgebra linear volta a fazer sentido.
dimensões reais do ramo
Uma camada linear calcula Wx + b, e o gradiente descendente soma e
escala vetores. As duas operações só são definidas num espaço vetorial, e nenhuma
delas preserva a definição positiva: uma soma com peso negativo, ou um passo de
gradiente grande demais, produz uma matriz que já não é uma covariância. O
logaritmo de autovalores projeta no espaço tangente, que é euclidiano por
construção, e por isso a camada linear final só aparece depois dele.
A covariância é invariante a transformação afim dos canais, que é exatamente a classe de nuisance que separa sujeitos: impedância de eletrodo, ganho e geometria da touca. Dar essa invariância à rede como viés de arquitetura sai mais barato do que fazê-la aprender isso a partir de 4.777 trials. É também o motivo de métodos riemannianos serem o estado da arte clássico em BCI, e o ramo entrega esse viés em paralelo ao ramo de sinal, sem tirar capacidade dele.
Em três lugares, com papéis diferentes. No alinhamento, a covariância média
de cada grupo define o branqueamento R^-1/2, antes de qualquer camada
aprendida. No ramo SPD, a covariância de cada trial é a entrada, com
encolhimento de 0,05. E em dois dos quatro baselines, espaço tangente com
regressão logística e MDM, que são construídos inteiramente sobre ela.
O embedding fundido é dividido em dois códigos. Um carrega a intenção motora e é o único que alimenta o classificador. O outro carrega o estilo, ou seja, quem é o sujeito e se aquilo foi executado ou imaginado.
Medido
trials de teste do fold,
projetados nas duas primeiras componentes principais de z_content.
A PC1 concentra da variância.
Em todo o resto da página as duas cores significam execução e imagética. Aqui,
e só aqui, elas são reatribuídas pelo botão: é essa reatribuição que faz a
comparação, já que os pontos não se movem.
Troque o botão para cor por domínio. A separação some. É o mesmo conjunto de pontos, nas mesmas posições, com outra pergunta feita à cor: a distância entre centróides cai de para . O código de conteúdo separa esquerda de direita e é praticamente cego para execução contra imagética, que é exatamente o que se pediu dele.
| termo | peso | papel |
|---|---|---|
| Reconstrução | 1,0 | o decoder recebe os dois códigos e precisa reconstruir o embedding fundido, então juntos eles têm de preservar tudo |
| KL | 1e-3 | regulariza os posteriores, com peso baixo o suficiente para não colapsar |
| Ortogonalidade | 0,1 | penaliza a covariância cruzada entre os dois códigos, uma independência suave |
| Cabeça auxiliar | 0,5 | o código de estilo deve predizer o domínio |
A quarta é a mais interessante. Em vez de só proibir que o código de conteúdo carregue domínio, o modelo dá ao código de estilo um lugar para pôr essa informação. Sem esse destino, a informação de domínio reaparece no conteúdo.
Na grade de ablação, desligar o desemaranhamento inteiro é a maior queda de todas, .
Antes do treino supervisionado, o stem convolucional e o Conformer são pré-treinados por modelagem de tokens mascarados, num pool separado que cobre todos os 14 runs em banda larga de 1 a 40 Hz, com 41.635 janelas. O conjunto rotulado tem cerca de 4,8 mil trials, então o pool é quase dez vezes maior.
mascaramento de 50 % dos tokens
Metade dos tokens é substituída por um token de máscara aprendido, e a tarefa é reconstruir o que estava ali. Além do alvo de feature existe um alvo espectral: prever o log da magnitude da STFT em 33 bins. Isso força a representação a carregar conteúdo espectral, que é precisamente onde o ERD mora. Um termo contrastivo NT-Xent sobre duas visões aumentadas entra com peso 0,1.
Detalhe de cache que virou decisão de projeto: os pesos são cacheados por uma chave que inclui o pool, o objetivo, a forma do encoder e a semente, mas não inclui a tarefa nem nenhum ajuste supervisionado. Assim as células de ablação reaproveitam um pré-treino já pago. O pool é passado como thunk, então um acerto de cache nunca materializa o array de vários GB: uma versão anterior morria no carregamento.
No regime transdutivo entram três mecanismos. Um discriminador de domínio recebe o código de conteúdo através de uma camada de reversão de gradiente, com lambda subindo de 0 a 1 por uma sigmoide, porque cedo demais o adversário domina antes de existir o que alinhar. Um termo de MMD multi-kernel alinha as distribuições de execução e imagética, com aquecimento linear de 20 épocas. E depois da época 30 entra o alinhamento condicional por classe, usando pseudo-rótulos com probabilidade acima de 0,9.
O alinhamento condicional existe por um motivo concreto: alinhar distribuições marginais pode casar a nuvem de "esquerda em execução" com a de "direita em imagética", já que as duas têm massa parecida. Condicionar por classe impede essa troca.
O que dá para afirmar: desligar o DANN dá e desligar o alinhamento dá , os dois dentro do piso de ruído de . Isso mede que a adaptação de domínio não produz ganho mensurável nesta tarefa, e não que ela não funcione: com uma semente por célula, um ganho de meio ponto ficaria invisível. Para a tese já basta, porque torna defensável a versão indutiva, que é a que nunca toca em imagética.
Entropia cruzada com suavização de rótulo, reconstrução do VAE, KL, ortogonalidade entre os códigos e consistência sob aumento estão sempre ligados. O adversarial de domínio, a cabeça auxiliar e o alinhamento entram somente no transdutivo.
Medido
Fold 0 da semente 42, épocas. A acurácia de validação, que é execução de sujeitos separados, aparece sempre no eixo da direita. Cada termo tem escala própria, então eles são normalizados para o próprio máximo: o que importa aqui é a forma da curva, não a altura.
Os pesos do mapeamento bilinear ficam fora do weight decay: o forward faz uma decomposição QR e usa apenas o fator ortogonal, que é invariante a reescalonamento positivo. O decay provavelmente não consegue mudar a saída da camada, mas encolhe a matriz rumo à singularidade, e o backward do QR resolve contra o fator triangular. Custo total, efeito nulo.
Gradiente não finito pula o passo e é contado: a contagem vai para o arquivo de resultados e uma contagem alta invalida a célula. Foi assim que se descobriu que uma célula de ablação estava pulando 79 % dos passos a partir da época 30, por um clamp ausente no cálculo do MMD. Nesta headline a contagem é .
O controle motor é contralateral. Refletir o trial no eixo médio-sagital e trocar o rótulo se apoia numa simetria que a fisiologia garante. Foi o único knob de aumento que superou o piso de ruído.
layout 10-10 por linhas, com a simetria esquerda e direita exata
A permutação é derivada da geometria da montagem, nunca de nomes de canais, e cada propriedade é verificada em vez de assumida. Precisa ser uma permutação de fato, precisa ser uma involução, os canais da linha média precisam ser pontos fixos, e cada parceiro precisa estar realmente na posição refletida dentro da tolerância. Um nome de canal trocado produziria uma permutação plausível que ensina a invariância errada, e nada no treino denunciaria isso.
Só a partição de treino supervisionado é espelhada. Validação e alvo continuam limpos.
Ablação é desligar um componente de cada vez e medir quanto a acurácia cai. Cada célula roda a receita completa com uma peça removida, nos mesmos folds e na mesma semente.
Medido
O escalar agregado esconde o que interessa. Os baselines recebem exatamente os mesmos folds e exatamente os mesmos dados alinhados, então a comparação que vale é pareada por sujeito, com correção para múltiplas comparações.
Medido
Um segmento por sujeito, ordenado pela acurácia do MoBridge. O EEGNet não é um baseline ingênuo: por fold ele chega a vencer, e por sujeito ele vence em vários. o que exige um teste pareado por sujeito.
A queda de transferência é pequena: em execução dos sujeitos de teste contra em imagética dos mesmos sujeitos, cerca de quatro pontos.