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-dcl-se-spatiotemporal-brain-encodinggit clone https://github.com/hiyenwong/ai_collection.gitcp ai_collection/SKILL.MD ~/.claude/skills/hiyenwong-ai-collection-collection-skills-dcl-se-spatiotemporal-brain-encoding/SKILL.md---
name: dcl-se-spatiotemporal-brain-encoding
description: "Dynamic Curriculum Learning for Spatiotemporal Encoding (DCL-SE) of brain imaging data. Compact task-specific framework using Approximate Rank Pooling and dynamic curriculum learning for neuroimaging analysis. Activation: neuroimaging, brain imaging, curriculum learning, spatiotemporal encoding, ARP, Alzheimer's, brain tumor, brain age."
---
# DCL-SE: Dynamic Curriculum Learning for Spatiotemporal Encoding of Brain Imaging
> End-to-end framework for high-dimensional neuroimaging analysis using data-driven spatiotemporal encoding and dynamic curriculum learning.
## Metadata
- **Source**: arXiv:2511.15151v1
- **Authors**: Meihua Zhou, Xinyu Tong, Jiarui Zhao, Min Cheng, Li Yang
- **Published**: 2025-11-19
- **Categories**: cs.CV, cs.AI, cs.LG
## Core Methodology
### Problem Statement
High-dimensional neuroimaging analyses for clinical diagnosis face:
1. **Spatiotemporal fidelity compromises** - losing either spatial or temporal information
2. **Limited adaptability** of large-scale general-purpose models to specific tasks
### Solution: DCL-SE Framework
#### 1. Data-driven Spatiotemporal Encoding (DaSE)
- Uses **Approximate Rank Pooling (ARP)** to encode 3D volumetric brain data into **information-rich 2D dynamic representations**
- Preserves spatiotemporal information without excessive dimensionality
#### 2. Dynamic Curriculum Learning
- **Dynamic Group Mechanism (DGM)** guides progressive training
- Training progression: Global anatomical structures → Fine pathological details
- Adaptive difficulty based on model performance
## Implementation Guide
### Prerequisites
- PyTorch or TensorFlow
- Neuroimaging data (NIfTI format)
- Medical imaging preprocessing tools (nibabel, nilearn)
### Step-by-Step Implementation
#### Step 1: Approximate Rank Pooling (ARP)
```python
import torch
import numpy as np
def approximate_rank_pooling(frames, timestamps):
"""
Encode temporal sequence into single dynamic image
Args:
frames: List of 3D brain volumes [T, H, W, D]
timestamps: Temporal positions of frames
Returns:
dynamic_image: 2D representation capturing temporal evolution
"""
# Compute rank pooling weights
t_normalized = np.array(timestamps) / max(timestamps)
weights = 2 * t_normalized - 1 # Linear rank weights
# Weighted sum of frames
dynamic_image = np.zeros_like(frames[0])
for frame, weight in zip(frames, weights):
dynamic_image += weight * frame
return dynamic_image
# Apply to 3D brain volumes
def encode_brain_volume(volume_4d, temporal_dim=0):
"""
Args:
volume_4d: 4D array [T, H, W, D] or [H, W, D, T]
Returns:
encoded: 3D encoded volume [H, W, D]
"""
frames = np.moveaxis(volume_4d, temporal_dim, 0)
timestamps = range(len(frames))
encoded = approximate_rank_pooling(frames, timestamps)
return encoded
```
#### Step 2: Dynamic Group Mechanism (DGM)
```python
class DynamicGroupMechanism:
def __init__(self, num_stages=3):
self.num_stages = num_stages
self.stage_thresholds = [0.3, 0.6, 1.0] # Loss thresholds
def assign_difficulty(self, samples, current_loss):
"""Assign samples to difficulty groups based on current performance"""
if current_loss > self.stage_thresholds[0]:
# Stage 1: Easy samples (global structures)
return self.select_easy_samples(samples, ratio=0.5)
elif current_loss > self.stage_thresholds[1]:
# Stage 2: Medium difficulty
return self.select_medium_samples(samples, ratio=0.7)
else:
# Stage 3: Full dataset including fine details
return samples
def select_easy_samples(self, samples, ratio):
"""Select samples with clear global patterns"""
# Heuristic: larger anatomical structures
scores = [self.global_structure_score(s) for s in samples]
threshold = np.percentile(scores, (1 - ratio) * 100)
return [s for s, score in zip(samples, scores) if score >= threshold]
```
#### Step 3: Full DCL-SE Model
```python
import torch.nn as nn
class DCLSE(nn.Module):
def __init__(self, input_channels=1, num_classes=2):
super().__init__()
# Encoder for 3D volumes
self.encoder = nn.Sequential(
nn.Conv3d(input_channels, 32, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool3d(2),
nn.Conv3d(32, 64, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool3d(2),
nn.Conv3d(64, 128, kernel_size=3, padding=1),
nn.ReLU(),
nn.AdaptiveAvgPool3d(1)
)
# Classification head
self.classifier = nn.Sequential(
nn.Linear(128, 64),
nn.ReLU(),
nn.Dropout(0.5),
nn.Linear(64, num_classes)
)
def forward(self, x):
# Apply ARP encoding if input is 4D (spatiotemporal)
if x.dim() == 5: # [B, T, H, W, D]
x = self.apply_arp(x)
features = self.encoder(x)
features = features.view(features.size(0), -1)
output = self.classifier(features)
return output
```
## Applications
- **Alzheimer's disease classification**: Early detection from structural MRI
- **Brain tumor classification**: Distinguishing tumor types
- **Cerebral artery segmentation**: Vascular structure analysis
- **Brain age prediction**: Biological age estimation from brain structure
## Performance
Evaluated across **6 publicly available datasets**:
- Consistently outperforms existing methods
- Superior accuracy, robustness, and interpretability
- Demonstrates importance of compact, task-specific architectures
## Pitfalls
- **Dataset-specific tuning**: Curriculum schedule may need adjustment per task
- **ARP limitations**: May lose very fine temporal details
- **Computational cost**: 3D convolutions are memory-intensive
- **Limited temporal modeling**: ARP compresses time into static representation
## Related Skills
- brain-mri-foundation-clinical
- alzheimer-prediction-fmri
- brain-dit-fmri-foundation-model
- continual-learning-fmri-generative-replay