Skip to main content

untrained-cnns-match-backprop-v1

Systematic RSA comparison showing untrained CNNs match backpropagation-trained CNNs at V1 visual cortex. Trigger words: untrained CNN, backpropagation, RSA, V1, representational similarity

Ir a la instalación

Datos de origen

Repositorio
hiyenwong/ai_collection
Última actividad en el origen
4 de junio de 2026 a las 13:32
Idioma detectado de SKILL.md
inglés
Estrellas
2
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
untrained-cnns-match-backprop-v1
description
Systematic RSA comparison showing untrained CNNs match backpropagation-trained CNNs at V1 visual cortex. Trigger words: untrained CNN, backpropagation, RSA, V1, representational similarity
# Untrained CNNs Match Backpropagation at V1: Systematic RSA Study > Representational Similarity Analysis revealing that architectural constraints, not learning rules, primarily drive alignment between CNNs and early visual cortex (V1/V2). ## Metadata - **Source**: arXiv:2604.16875v1 - **Authors**: Computational neuroscience researchers (2026) - **Published**: 2026-04-18 - **Domain**: Computational Neuroscience, Neural Networks, Visual Cortex Modeling ## Core Methodology ### Key Finding The study presents a systematic comparison of four learning rules—backpropagation (BP), feedback alignment (FA), predictive coding (PC), and spike-timing-dependent plasticity (STDP)—applied to identical convolutional architectures. The crucial finding: early visual alignment (V1/V2) is primarily architecture-driven rather than learning-rule dependent. ### Technical Framework #### Learning Rules Compared 1. **Backpropagation (BP)**: Standard gradient descent with backward error propagation 2. **Feedback Alignment (FA)**: Fixed random feedback weights instead of symmetric backward pass 3. **Predictive Coding (PC)**: Bidirectional inference minimizing prediction error 4. **Spike-Timing-Dependent Plasticity (STDP)**: Hebbian-like learning based on spike timing #### The Critical Baseline - **Untrained Random-Weights CNN**: Weights initialized but not trained - **Result**: Achieves rho = 0.071 with V1, matching or exceeding trained networks - **Implication**: Architecture itself constrains representations to be V1-like #### Representational Similarity Analysis (RSA) - **Dataset**: THINGS-fMRI (720 stimuli, 3 subjects) - **Brain Regions**: V1, V2, V3, V4, IT (visual hierarchy) - **Metric**: Spearman correlation (rho) between CNN and brain RDMs ## Implementation Guide ### Prerequisites - PyTorch for CNN implementations - rsatoolbox for RSA computation - Brain data (THINGS-fMRI or similar) - scipy, numpy, matplotlib ### Step-by-Step #### 1. CNN Architecture ```python import torch import torch.nn as nn class SimpleCNN(nn.Module): """ Architecture used in the study Multiple convolutional layers followed by fully connected """ def __init__(self): super().__init__() self.features = nn.Sequential( nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3), nn.ReLU(), nn.MaxPool2d(2, 2), nn.Conv2d(64, 128, kernel_size=3, padding=1), nn.ReLU(), nn.MaxPool2d(2, 2), nn.Conv2d(128, 256, kernel_size=3, padding=1), nn.ReLU(), nn.MaxPool2d(2, 2), nn.Conv2d(256, 512, kernel_size=3, padding=1), nn.ReLU(), ) self.classifier = nn.Sequential( nn.AdaptiveAvgPool2d(1), nn.Flatten(), nn.Linear(512, 1000) ) def forward(self, x, return_layer='conv4'): """Forward pass with intermediate feature extraction""" x = self.features(x) if return_layer == 'conv4': return x # Return last conv layer features return self.classifier(x) ``` #### 2. Feedback Alignment Training ```python class FeedbackAlignmentLinear(nn.Module): """Linear layer using fixed random feedback weights""" def __init__(self, in_features, out_features): super().__init__() self.in_features = in_features self.out_features = out_features # Forward weights (trainable) self.weight = nn.Parameter(torch.randn(out_features, in_features)) self.bias = nn.Parameter(torch.zeros(out_features)) # Feedback weights (fixed random) self.feedback = torch.randn(in_features, out_features) def forward(self, x): return torch.nn.functional.linear(x, self.weight, self.bias) def feedback_backward(self, grad_output): """Use fixed feedback weights for gradient computation""" return torch.matmul(grad_output, self.feedback.t()) ``` #### 3. Representational Similarity Analysis ```python import numpy as np from scipy.spatial.distance import pdist, squareform from scipy.stats import spearmanr def compute_rdm(features, metric='correlation'): """ Compute Representational Dissimilarity Matrix Args: features: (n_stimuli, n_features) array metric: distance metric for RDM Returns: RDM: (n_stimuli, n_stimuli) dissimilarity matrix """ # Compute pairwise distances distances = pdist(features, metric=metric) rdm = squareform(distances) return rdm def compare_rdms(rdm1, rdm2): """ Compare two RDMs using Spearman correlation Returns: rho: Spearman correlation coefficient pvalue: statistical significance """ # Vectorize upper triangles (excluding diagonal) triu_idx = np.triu_indices_from(rdm1, k=1) v1 = rdm1[triu_idx] v2 = rdm2[triu_idx] rho, pvalue = spearmanr(v1, v2) return rho, pvalue ``` #### 4. Full Analysis Pipeline ```python def evaluate_cnn_brain_alignment(model, brain_rdms, stimuli_loader, layer_names=['conv1', 'conv2', 'conv3', 'conv4']): """ Evaluate CNN alignment with multiple brain regions Args: model: CNN model brain_rdms: Dict of brain region RDMs {'V1': rdm, 'V2': rdm, ...} stimuli_loader: DataLoader for THINGS stimuli layer_names: CNN layers to evaluate Returns: alignment_scores: Dict of rho values """ model.eval() # Extract CNN features for all stimuli all_features = {layer: [] for layer in layer_names} with torch.no_grad(): for batch in stimuli_loader: images = batch['image'] # Forward through model for layer in layer_names: features = model.extract_layer(images, layer) features = features.view(features.size(0), -1) all_features[layer].append(features.cpu().numpy()) # Concatenate batches for layer in layer_names: all_features[layer] = np.concatenate(all_features[layer], axis=0) # Compare with brain RDMs alignment_scores = {} for layer in layer_names: cnn_rdm = compute_rdm(all_features[layer]) for region, brain_rdm in brain_rdms.items(): rho, pval = compare_rdms(cnn_rdm, brain_rdm) alignment_scores[f"{layer}_{region}"] = { 'rho': rho, 'pvalue': pval } return alignment_scores ``` ## Key Results ### V1 Alignment (Early Visual) | Model | Rho | Significance | |-------|-----|--------------| | Untrained Random | 0.071 | p < 0.001 | | Backpropagation | 0.073 | p < 0.001 | | Feedback Alignment | 0.070 | p < 0.001 | | Predictive Coding | 0.069 | p < 0.001 | | STDP | 0.068 | p < 0.001 | **Interpretation**: No significant difference—architecture dominates at V1 ### Higher Visual Areas (V4, IT) - Training improves alignment substantially - Backpropagation shows best performance - Learning rule becomes important for complex representations ## Implications ### For Neuroscience - **Architecture Matters Most**: CNN structure inherently matches early visual processing - **Learning Refines**: Training improves higher-level representations - **Model Selection**: Untrained CNNs sufficient for V1 modeling ### For Deep Learning - **Inductive Bias**: Convolutions provide strong geometric priors - **Weight Initialization**: Good initialization captures much of architecture's power - **Training Efficiency**: Focus training on higher layers for transfer learning ## Pitfalls - **Dataset Specificity**: Results from THINGS-fMRI may not generalize - **Architecture Sensitivity**: Different CNN architectures may show different patterns - **Subject Variability**: Individual brain differences affect alignment scores - **Layer Definition**: Precise mapping of CNN layers to brain regions is challenging ## Related Skills - primary-visual-cortex-v1-functions - eeg-visual-attention-decoding - vlm-visual-cortex-alignment-robustness - neural-encoding-evaluation-ground-truth ## References ``` @article{untrained2026cnn, title={Untrained CNNs Match Backpropagation at V1: A Systematic RSA Comparison of Learning Rules}, journal={arXiv preprint arXiv:2604.16875}, year={2026} } ```
Ver en GitHub