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

الانتقال إلى التثبيت

معلومات المصدر

المستودع
hiyenwong/ai_collection
آخر نشاط في المصدر
٤ يونيو ٢٠٢٦ في ١٣:٣٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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} } ```
عرض على GitHub