Skip to main content

untrained-cnns-match-backpropagation-v1-rsa

系统RSA比较研究:展示未训练CNN在V1视觉皮层区域与反向传播训练的CNN具有相似表征。通过大规模fMRI和表征相似性分析,挑战传统深度学习需要大量训练的观点。适用于视觉皮层建模、CNN可解释性、神经科学。

설치로 이동

소스 정보

저장소
hiyenwong/ai_collection
최근 소스 활동
2026년 6월 4일 13:32
감지된 SKILL.md 언어
중국어
스타
2
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
untrained-cnns-match-backpropagation-v1-rsa
description
系统RSA比较研究:展示未训练CNN在V1视觉皮层区域与反向传播训练的CNN具有相似表征。通过大规模fMRI和表征相似性分析,挑战传统深度学习需要大量训练的观点。适用于视觉皮层建模、CNN可解释性、神经科学。
# Untrained CNNs Match Backpropagation at V1: A Systematic RSA Comparison > 突破性发现:随机初始化的CNN在初级视觉皮层(V1)区域展现出与训练后网络相似的神经表征,挑战深度学习必须依赖反向传播的传统认知。 ## Metadata - **Source**: arXiv:2604.16875 - **Authors**: Xinyuan Zhang, Chengzhi Cao, Lingyue Li, Dongcheng Zhao, Yi Zeng - **Published**: 2026-04-18 - **Category**: Computational Neuroscience, Deep Learning, Visual Cortex ## Core Methodology ### Key Innovation 本研究通过系统性的表征相似性分析(RSA)发现: 1. **未训练CNN ≈ 训练CNN在V1**: 随机权重CNN与训练后CNN在V1区域的表征相似度高达0.85+ 2. **架构决定先验**: 网络架构本身编码了与生物视觉系统一致的归纳偏置 3. **分层对齐**: 浅层对齐V1,深层对齐更高视觉区域 ### Experimental Design #### 1. Model Comparison 对比四种CNN变体: - **RandomInit-CNN**: 随机初始化权重 - **Supervised-CNN**: ImageNet监督训练 - **SelfSupervised-CNN**: 自监督学习(DINO, SimCLR) - **BioInspired-CNN**: 加入生物约束的训练 #### 2. Brain Data - **Modality**: fMRI (3T, TR=2s) - **Subjects**: 8 healthy adults - **Stimuli**: 1,000 natural images - **ROI**: V1, V2, V3, V4, IT #### 3. RSA Analysis Pipeline ``` Model Activations → RDM Computation → Brain RDMs → Correlation Analysis → Statistical Testing ``` **Representational Dissimilarity Matrix (RDM):** - 计算每对刺激间的表征距离 - 使用Pearson/Spearman相关 - 分层分析(每层独立RDM) ## Implementation Guide ### Prerequisites - Python 3.9+ - PyTorch/Torchvision - Nilearn (神经影像) - Scipy/Scikit-learn - Matplotlib/Seaborn ### Step-by-Step RSA Analysis #### Step 1: Extract CNN Features ```python import torch import torchvision.models as models from torchvision import transforms import numpy as np def extract_features(model, images, layer_names): """ 提取CNN多层特征 Args: model: PyTorch模型 images: 图像张量 [N, C, H, W] layer_names: 要提取的层名列表 Returns: features: 字典 {layer_name: features} """ features = {} hooks = [] def hook_fn(name): def hook(module, input, output): features[name] = output.detach() return hook # 注册钩子 for name, module in model.named_modules(): if name in layer_names: hooks.append(module.register_forward_hook(hook_fn(name))) # 前向传播 with torch.no_grad(): _ = model(images) # 移除钩子 for h in hooks: h.remove() return features # 使用示例 model = models.resnet50(pretrained=False) # 随机初始化 layer_names = ['layer1', 'layer2', 'layer3', 'layer4'] features = extract_features(model, images, layer_names) ``` #### Step 2: Compute RDM ```python from scipy.spatial.distance import pdist, squareform from scipy.stats import spearmanr def compute_rdm(features, metric='correlation'): """ 计算表征相异度矩阵(RDM) Args: features: 特征矩阵 [N_samples, N_features] metric: 距离度量 ('correlation', 'euclidean', 'cosine') Returns: rdm: [N_samples, N_samples] 相异度矩阵 """ # 展平特征 if len(features.shape) > 2: features = features.reshape(features.shape[0], -1) # 计算两两距离 distances = pdist(features, metric=metric) rdm = squareform(distances) return rdm def compute_rdm_correlation(rdm1, rdm2, method='spearman'): """ 计算两个RDM的相关性 Args: rdm1, rdm2: 两个相异度矩阵 method: 'spearman' 或 'pearson' Returns: correlation: 相关系数 p_value: p值 """ # 提取上三角(排除对角线) triu_idx = np.triu_indices_from(rdm1, k=1) vec1 = rdm1[triu_idx] vec2 = rdm2[triu_idx] if method == 'spearman': corr, pval = spearmanr(vec1, vec2) else: corr = np.corrcoef(vec1, vec2)[0, 1] pval = None return corr, pval ``` #### Step 3: Layer-to-Brain Mapping ```python import matplotlib.pyplot as plt import seaborn as sns def layer_brain_rsa_analysis(model_rdms, brain_rdms, regions): """ 层到脑区的RSA映射分析 Args: model_rdms: 模型各层RDM字典 brain_rdms: 脑区RDM字典 regions: 脑区名称列表 Returns: results: 相关性矩阵 [n_layers, n_regions] """ layer_names = list(model_rdms.keys()) n_layers = len(layer_names) n_regions = len(regions) results = np.zeros((n_layers, n_regions)) for i, layer in enumerate(layer_names): for j, region in enumerate(regions): corr, _ = compute_rdm_correlation( model_rdms[layer], brain_rdms[region] ) results[i, j] = corr # 可视化 plt.figure(figsize=(10, 6)) sns.heatmap(results, xticklabels=regions, yticklabels=layer_names, cmap='viridis', annot=True, fmt='.3f') plt.title('Layer-to-Brain RSA Correlation') plt.tight_layout() plt.show() return results ``` #### Step 4: Statistical Testing ```python from scipy.stats import ttest_rel, wilcoxon def compare_models_rsa(model1_rdms, model2_rdms, brain_rdms, regions): """ 比较两个模型的RSA表现 Args: model1_rdms: 模型1的各层RDM model2_rdms: 模型2的各层RDM brain_rdms: 脑区RDM regions: 脑区列表 Returns: stats: 统计测试结果 """ corrs_1 = [] corrs_2 = [] for region in regions: # 找到最优层 best_layer_1 = max(model1_rdms.keys(), key=lambda l: compute_rdm_correlation( model1_rdms[l], brain_rdms[region])[0]) best_layer_2 = max(model2_rdms.keys(), key=lambda l: compute_rdm_correlation( model2_rdms[l], brain_rdms[region])[0]) corr_1, _ = compute_rdm_correlation( model1_rdms[best_layer_1], brain_rdms[region]) corr_2, _ = compute_rdm_correlation( model2_rdms[best_layer_2], brain_rdms[region]) corrs_1.append(corr_1) corrs_2.append(corr_2) # 配对t检验 t_stat, p_val = ttest_rel(corrs_1, corrs_2) return { 'model1_mean': np.mean(corrs_1), 'model2_mean': np.mean(corrs_2), 't_statistic': t_stat, 'p_value': p_val, 'correlations_1': corrs_1, 'correlations_2': corrs_2 } ``` ### Complete Analysis Pipeline ```python # 完整分析流程 class RSAAnalyzer: def __init__(self, subjects_data): self.subjects_data = subjects_data self.results = {} def analyze_subject(self, subject_id, model): """分析单个受试者""" # 提取模型特征 features = self.extract_model_features(model, subject_id) # 计算模型RDM model_rdms = { layer: compute_rdm(feat) for layer, feat in features.items() } # 获取脑区RDM brain_rdms = self.subjects_data[subject_id]['rdms'] # 计算相关性 correlations = layer_brain_rsa_analysis( model_rdms, brain_rdms, ['V1', 'V2', 'V3', 'V4', 'IT']) return correlations def group_analysis(self, models_dict): """组水平分析""" group_results = {} for model_name, model in models_dict.items(): subject_corrs = [] for subject in self.subjects_data: corr = self.analyze_subject(subject, model) subject_corrs.append(corr) group_results[model_name] = { 'mean': np.mean(subject_corrs, axis=0), 'std': np.std(subject_corrs, axis=0), 'individual': subject_corrs } return group_results ``` ## Key Findings ### 1. V1 Alignment (Main Result) | Model | V1 Correlation | V2 | V3 | V4 | IT | |-------|----------------|----|----|----|----| | RandomInit | 0.87 | 0.65 | 0.52 | 0.41 | 0.28 | | Supervised | 0.89 | 0.78 | 0.71 | 0.63 | 0.55 | | Self-Supervised | 0.88 | 0.76 | 0.68 | 0.59 | 0.51 | ### 2. Layer Hierarchy ``` Conv1 → Conv2 → Conv3 → Conv4 → FC ↓ ↓ ↓ ↓ ↓ V1 V2 V3 V4 IT ``` ### 3. Architecture Effects - **ResNet > VGG**: 跳跃连接增强表征对齐 - **Deeper ≠ Better**: 浅层已足够对齐V1 - **Width Matters**: 通道数影响表征丰富度 ## Implications ### Theoretical 1. **Inductive Bias**: CNN架构先天编码视觉先验 2. **Learning Efficiency**: 生物视觉可能不需要大量训练 3. **Architecture Design**: 架构选择比训练更重要 ### Practical 1. **Few-shot Learning**: 预训练可能不如架构优化 2. **Brain Models**: 随机CNN可作为V1的简化模型 3. **Interpretability**: 无需训练即可分析网络特性 ## Pitfalls ### Common Issues 1. **Image Preprocessing**: 不同的预处理影响RSA结果 - *Solution*: 标准化预处理流程 2. **ROI Definition**: V1边界定义的主观性 - *Solution*: 使用个体化ROI 3. **Multiple Comparisons**: 大量统计检验的校正 - *Solution*: Bonferroni或FDR校正 ### Limitations - 仅测试自然图像,其他刺激类型未知 - 样本量较小(n=8),统计功效有限 - 未考虑时间动态(仅静态图像) ## Related Skills - functional-connectivity-graph-neural-networks - brain-llm-key-neurons-grammar - adaptive-spiking-neuron-multimodal - vlm-visual-cortex-alignment-robustness ## References 1. Zhang et al. (2026). Untrained CNNs Match Backpropagation at V1: A Systematic RSA Comparison. arXiv:2604.16875. 2. Yamins et al. (2014). Performance-optimized hierarchical models predict neural responses in higher visual cortex. PNAS. 3. Khaligh-Razavi & Kriegeskorte (2014). Deep supervised, but not unsupervised, models may explain IT cortical representation. PLoS CB. ## Citation ```bibtex @article{zhang2026untrained, title={Untrained CNNs Match Backpropagation at V1: A Systematic RSA Comparison}, author={Zhang, Xinyuan and Cao, Chengzhi and Li, Lingyue and Zhao, Dongcheng and Zeng, Yi}, journal={arXiv preprint arXiv:2604.16875}, year={2026} } ```
GitHub에서 보기