Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install hiyenwong-ai-collection-collection-skills-brain-foundation-model-inversiongit clone https://github.com/hiyenwong/ai_collection.gitcp ai_collection/SKILL.MD ~/.claude/skills/hiyenwong-ai-collection-collection-skills-brain-foundation-model-inversion/SKILL.md---
name: brain-foundation-model-inversion
description: "Brain foundation model inversion methodology using Simulation-Based Inference (SBI) for stimulus reconstruction from synthetic neural activity. Enables reverse application of brain emulators like TRIBEv2 to recover stimuli or their properties from neural responses. Keywords: brain foundation model inversion, SBI, simulation-based inference, TRIBEv2, stimulus reconstruction, neural decoding, inverse problem neuroscience."
---
# Brain Foundation Model Inversion with Simulation-Based Inference
> Methodology for inverting brain foundation models to reconstruct stimuli from synthetic neural activity, combining TRIBEv2 emulator with LLM stimulus generation and SBI parameter recovery.
## Metadata
- **Source**: arXiv:2604.23865
- **Authors**: Niels Bracher, Xavier Intes, Stefan T. Radev
- **Published**: 2026-04-26
- **Categories**: cs.LG, cs.AI, stat.ML
## Core Methodology
### Problem Statement
Traditional brain foundation models excel at forward prediction (stimulus → neural response), but their reverse application (neural response → stimulus) remains underexplored. This methodology addresses the inversion problem: **Can we recover a stimulus or its properties from synthetic brain activity generated by foundation models?**
### Key Innovation
First systematic study revealing the gap between forward model accuracy and invertibility. Shows that even highly accurate brain emulators may not automatically enable reliable stimulus reconstruction without additional constraints.
### Technical Framework
#### 1. Brain Foundation Model (Forward Emulator)
- **Model**: TRIBEv2 (Transformer-based Brain Emulator)
- **Function**: Generates realistic synthetic neural responses to complex stimuli
- **Output**: Synthetic brain activity across tasks and modalities
#### 2. Stimulus Generation Pipeline
- **Generator**: Large Language Model (Llama-3.3-70B)
- **Input**: Linguistic parameters (latent stimulus representations)
- **Output**: Naturalistic stimuli (e.g., news headlines)
#### 3. Simulation-Based Inference (SBI)
- **Purpose**: Recover stimulus parameters from synthetic neural activity
- **Method**: Neural posterior estimation using amortized inference
- **Process**:
1. Generate synthetic neural activity from known stimuli
2. Train neural network to approximate posterior p(θ|x)
3. Apply trained network to new neural observations
4. Sample from posterior distribution
#### 4. Inversion Quality Assessment
- **Posterior Analysis**: Check if posterior is concentrated vs. diffuse
- **Multimodality Detection**: Identify multiple plausible stimulus explanations
- **Calibration**: Verify uncertainty estimates are well-calibrated
## Implementation Guide
### Prerequisites
```python
# Required packages
# - sbi (Simulation-Based Inference)
# - torch
# - transformers (for LLM stimulus generation)
# - TRIBEv2 (or similar brain foundation model)
```
### Step-by-Step Implementation
#### Step 1: Setup Brain Foundation Model
```python
import torch
from tribev2 import TRIBEv2BrainEmulator
# Initialize brain emulator
emulator = TRIBEv2BrainEmulator.from_pretrained("tribev2-base")
emulator.eval()
```
#### Step 2: Define Stimulus Generator
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
class StimulusGenerator:
def __init__(self, model_name="meta-llama/Llama-3.3-70B"):
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForCausalLM.from_pretrained(model_name)
def generate_from_params(self, linguistic_params):
"""
Generate naturalistic stimuli from linguistic parameters.
Args:
linguistic_params: Dict with keys like 'sentiment', 'complexity',
'topic', 'length', etc.
Returns:
stimulus_text: Generated text (e.g., news headline)
"""
# Construct prompt from parameters
prompt = self._params_to_prompt(linguistic_params)
# Generate stimulus
inputs = self.tokenizer(prompt, return_tensors="pt")
outputs = self.model.generate(**inputs, max_length=100)
stimulus = self.tokenizer.decode(outputs[0])
return stimulus
```
#### Step 3: Build SBI Pipeline
```python
from sbi.inference import SNPE
from sbi.utils import BoxUniform
import numpy as np
class BrainModelInverter:
def __init__(self, emulator, prior):
self.emulator = emulator
self.prior = prior
self.inference = None
self.posterior = None
def simulate(self, theta):
"""
Generate synthetic neural activity from stimulus parameters.
Args:
theta: Stimulus parameters [batch_size, param_dim]
Returns:
x: Synthetic neural activity [batch_size, activity_dim]
"""
with torch.no_grad():
stimulus = self._params_to_stimulus(theta)
neural_activity = self.emulator(stimulus)
return neural_activity
def train(self, num_simulations=10000):
"""Train SBI inference network."""
# Draw parameters from prior
theta = self.prior.sample((num_simulations,))
# Generate synthetic data
x = self.simulate(theta)
# Train neural posterior estimator
self.inference = SNPE(prior=self.prior)
self.inference.append_simulations(theta, x)
self.posterior = self.inference.train()
def infer(self, observed_activity, num_samples=1000):
"""
Infer stimulus parameters from observed neural activity.
Args:
observed_activity: Neural activity observation
num_samples: Number of posterior samples
Returns:
posterior_samples: Samples from p(theta|x_obs)
"""
if self.posterior is None:
raise ValueError("Must train inverter first!")
posterior_samples = self.posterior.sample(
(num_samples,),
x=observed_activity
)
return posterior_samples
```
#### Step 4: Evaluate Inversion Quality
```python
def evaluate_inversion_quality(posterior_samples, true_params):
"""
Assess whether posterior is concentrated or diffuse.
Key metrics:
- Posterior variance (high = diffuse)
- Number of modes (multimodality detection)
- Calibration error
"""
from scipy.stats import gaussian_kde
# Compute posterior statistics
posterior_mean = posterior_samples.mean(axis=0)
posterior_std = posterior_samples.std(axis=0)
# Check for multimodality (simplified)
is_multimodal = detect_multimodality(posterior_samples)
# Compute calibration
coverage = compute_coverage(posterior_samples, true_params)
return {
'mean': posterior_mean,
'std': posterior_std,
'is_diffuse': posterior_std > threshold,
'is_multimodal': is_multimodal,
'coverage': coverage
}
def detect_multimodality(samples, bandwidth=None):
"""Detect if posterior has multiple modes using KDE."""
from sklearn.neighbors import KernelDensity
kde = KernelDensity(bandwidth=bandwidth or 'silverman')
kde.fit(samples)
# Find local maxima in density
# (implementation details depend on dimensionality)
pass
```
## Applications
### 1. Brain-Computer Interface Decoding
Use inverted foundation models to decode intended stimuli from neural recordings for communication prosthetics.
### 2. Neural Prosthesis Control
Reconstruct sensory stimuli from neural activity to drive sensory restoration devices.
### 3. Cognitive Neuroscience
Study what information is preserved vs. lost in neural representations through inversion quality analysis.
### 4. Foundation Model Evaluation
Assess brain models not just by forward accuracy but also by invertibility - a new evaluation dimension.
## Key Findings from Original Study
### Challenge: Diffuse and Multimodal Posteriors
Even when the forward emulator produces realistic-looking synthetic neural activity, the inversion task remains challenging:
- **Posterior distributions are diffuse**: High uncertainty in reconstructed stimuli
- **Multimodality**: Multiple distinct stimuli can produce similar neural activity
- **Ill-posed inverse problem**: Neural activity → stimulus mapping is many-to-one
### Implications
1. **Additional constraints needed**: Prior knowledge or structural assumptions required for reliable reconstruction
2. **Uncertainty quantification crucial**: Must report full posterior, not just point estimates
3. **Model evaluation extension**: Invertibility should be a criterion for brain foundation model quality
## Pitfalls
1. **Assumption of invertibility**: Don't assume accurate forward model implies accurate inversion
2. **Point estimate fallacy**: Always report full posterior distribution
3. **Prior sensitivity**: Results heavily depend on choice of prior distribution
4. **Computational cost**: SBI training requires many simulations
5. **Simulator fidelity**: Inversion quality limited by emulator accuracy
## Related Skills
- brain-dit-fmri-foundation-model
- brain-foundation-biomarker-validation
- meta-learning-in-context-brain-decoding
- eeg-structure-guided-diffusion-v4
## References
- Bracher, N., Intes, X., & Radev, S. T. (2026). Inverting Foundation Models of Brain Function with Simulation-Based Inference. arXiv:2604.23865.
- TRIBEv2: https://github.com/brain-models/tribev2
- SBI Python package: https://github.com/sbi-dev/sbi