| --- |
| license: mit |
| library_name: pytorch |
| tags: |
| - computer-vision |
| - affective-computing |
| - neuroscience |
| - image-regression |
| - vgg16 |
| - pavlovian-conditioning |
| - valence-prediction |
| --- |
| |
| # Visual-Valence Model (VCA) |
|
|
| > A deep neural network model of associative emotional (Pavlovian fear) learning. |
|
|
| Companion model repository for **["Associative Emotional Learning in Convolutional Neural Networks"](https://arxiv.org/abs/2607.19327)** |
| (Leem, Keil, Ding & Fang; *Neural Computation*, in press). |
|
|
| - 📄 Paper: https://arxiv.org/abs/2607.19327 |
| - 💻 Code: https://github.com/lab-smile/FearConditioningAI |
|
|
| > **Note:** This model is a research artifact for computational/cognitive neuroscience, released to |
| > reproduce and extend the paper's findings. It is **not** a general-purpose sentiment/emotion API and |
| > is not validated for clinical, diagnostic, or production affective-computing use. |
|
|
| --- |
|
|
| ## Model description |
|
|
| The Visual-Valence Model predicts the affective **valence** of a visual scene (1 = extreme displeasure, |
| 9 = extreme pleasure) and reproduces hallmarks of Pavlovian (fear) conditioning when a novel, initially |
| neutral stimulus is repeatedly paired with an emotionally-charged one. |
|
|
| The architecture (`Visual_Cortex_Amygdala` in [`models/VGG_Model.py`](https://github.com/lab-smile/FearConditioningAI/blob/main/models/VGG_Model.py)) |
| has three components, loosely modeling the primate visual/affective pathway: |
|
|
| | Component | Role | Implementation | |
| |---|---|---| |
| | **Visual Cortex module** ("High Road") | Ventral visual stream | VGG-16 (Simonyan & Zisserman, 2015), ImageNet-pretrained, **frozen** | |
| | **Shortcut Pathway** ("Middle Road") | Fast, low-resolution route from early vision to affect circuitry | Multi-scale pooling of VGG-16's early layers (layer index 10), combined via an Efficient Channel Attention (ECA) module (Wang et al., 2020) | |
| | **Valence Module** | Combines both pathways into a scalar valence judgment | Two fully-connected layers (amygdala LA/CE-nuclei- and OFC-inspired) + one sigmoid output unit | |
|
|
| The High Road output (4096-d) and Middle Road output (512-d) are concatenated (4608-d) and passed through |
| the Valence Module's fully connected layers to a single sigmoid unit, which is linearly rescaled from |
| `[0, 1]` to the `[1, 9]` IAPS valence scale at evaluation time. |
|
|
| ### Five checkpoints, one training pipeline |
|
|
| This repository hosts every checkpoint along the training pipeline described in the |
| [GitHub README](https://github.com/lab-smile/FearConditioningAI#training) — same architecture |
| (`Visual_Cortex_Amygdala`) throughout, so any of them can be loaded with the same code: |
|
|
| | File | Stage | Description | |
| |---|---|---| |
| | `vca_ckvideo_batch128_lr2e-5_epoch20.pth` | 0 | Trained from scratch on the Cowen & Keltner Videoframe dataset | |
| | `vca_IAPS_batch10_lr2e-4_epoch23.pth` | 1 | Fine-tuned on full-size IAPS images | |
| | `base_model_vca_IAPS_quadrant.pth` | 2 | Fine-tuned to the quadrant-cropped input layout — **pre-conditioning**: has learned to decode valence from natural scenes (the US) but has never seen the conditioned stimulus (CS, a Gabor patch) | |
| | `base_model_conditioned_orientation_epoch1.pth` | 3, epoch 1 | First epoch of Pavlovian conditioning (CS+ Gabor patch paired with pleasant/unpleasant IAPS US); early/under-trained, kept for provenance | |
| | `base_model_conditioned_orientation_epoch100.pth` | 3, epoch 100 | **Post-conditioning (final)** — used throughout the paper's conditioning/generalization/representational-alignment analyses | |
|
|
| Comparing the pre- (Stage 2) and post-conditioning (Stage 3, epoch 100) checkpoints' responses to the CS |
| alone is what reveals the learned CS→valence association (and, at the representation level, the |
| increasing CS/US alignment reported in the paper). |
|
|
| --- |
|
|
| ## Intended use |
|
|
| - Reproducing the paper's Pavlovian-conditioning experiments and figures. |
| - Extending the model to new conditioning paradigms, stimulus sets, or ablations (e.g. the |
| attention-free variant, `Visual_Cortex_Amygdala_wo_Attention`) for **research purposes**. |
| - Studying how a two-pathway (ventral-stream + shortcut) architecture with attention reproduces |
| behavioral/representational signatures of associative emotional learning. |
| - Feature extraction / representational analysis (see `Channel_Activity_Extraction.py`, |
| `Manifold_Visualization.py`, `SVM_Analysis_*.py` in the GitHub repo) for downstream neuroscience analyses. |
|
|
| **Out of scope:** general-purpose sentiment analysis, affect recognition on non-IAPS-like natural images, |
| clinical/diagnostic use, or any decision-making about real individuals' emotional states. |
|
|
| --- |
|
|
| ## Limitations |
|
|
| - **Frozen ImageNet backbone.** The High Road (VGG-16) is never fine-tuned, so the model inherits |
| ImageNet's visual biases; only the shortcut pathway and valence module are trained on affective data. |
| - **Narrow, licensed training data.** IAPS is a relatively small, curated stimulus set under a |
| data-use/confidentiality agreement (not redistributed with the code or this checkpoint); the model's |
| generalization to naturalistic, in-the-wild imagery is untested. |
| - **Two-alternative conditioning paradigm.** The conditioning stage pairs exactly two Gabor orientations |
| (45°, 135°) with unpleasant/pleasant IAPS images; behavior on other CS types has not been evaluated. |
| - **Not validated against individual human subjects.** Comparisons to human data in the paper are at the |
| group/aggregate level; the model is not a predictive model of any specific person's affective response. |
| - **Single scalar output.** The model predicts only valence (pleasant ↔ unpleasant), not arousal or |
| discrete emotion categories. |
|
|
| --- |
|
|
| ## Evaluation metrics |
|
|
| Model quality is reported using: |
|
|
| - **Pearson correlation (R / R²)** between predicted and ground-truth (SAM-rated) valence, computed by |
| `reg_eval_model` / `cond_eval_model` in [`utils.py`](https://github.com/lab-smile/FearConditioningAI/blob/main/utils.py). |
| - **Mean-squared error (MSE)** between predicted and ground-truth valence (rescaled to the 1–9 scale). |
| - Post-conditioning, generalization and CS/US **representational alignment** (single-unit tuning and |
| population-level RSA/t-SNE, via `Channel_Activity_Extraction.py`, `Manifold_Visualization.py`, |
| `SVM_Analysis_Emotion.py`, `SVM_Analysis_Before_After.py`) are used to assess whether conditioning |
| reproduces human associative-learning signatures. |
|
|
| The full quantitative results (per-stage R/MSE, generalization curves, and alignment statistics) are |
| reported in the paper's tables/figures — see https://arxiv.org/abs/2607.19327. |
|
|
| --- |
|
|
| ## Training dataset |
|
|
| Training proceeds in stages, each building on the previous stage's checkpoint (see the GitHub README's |
| [Training](https://github.com/lab-smile/FearConditioningAI#training) section for exact commands): |
|
|
| | Stage | Dataset | Purpose | |
| |---|---|---| |
| | 0 | Cowen & Keltner (2017) Videoframe dataset (2,185 emotion-eliciting video clips, one frame sampled every 10th frame) | Pretrain valence regression from scratch on natural scenes | |
| | 1 | International Affective Picture System (IAPS; Bradley & Lang, 1994/2007), full-size images, 8:1:1 train/val/test split | Adapt to the US stimuli used in conditioning | |
| | 2 | IAPS, quadrant-cropped layout | Fine-tune to the spatial layout used during conditioning | |
| | 3 | IAPS (US, in the 4th quadrant) × Gabor patches (CS, in the 2nd quadrant; 45°/135° orientation, varying spatial frequency/contrast, generated via `Gabor4Seowung.m`) | Pavlovian conditioning: pair CS+ with pleasant/unpleasant US | |
|
|
| Labels are human valence ratings on a 1–9 scale (Self-Assessment Manikin; Bradley & Lang, 1994). |
| **The IAPS images themselves are not redistributed** with the code or this model repository due to a |
| data-use/confidentiality agreement — obtain access to IAPS independently to reproduce training from |
| scratch. The Gabor-patch CS stimuli are procedurally generated and have no such restriction. |
|
|
| Note the input layout differs by stage: Stage 0/1 checkpoints expect a full-frame natural image |
| (resize + normalize only), while Stage 2/3 checkpoints expect the quadrant-cropped layout (see |
| [Data preprocessing](https://github.com/lab-smile/FearConditioningAI#data-preprocessing) in the GitHub |
| README) — feeding a full-frame image to a Stage 2/3 checkpoint (or vice versa) will not reproduce the |
| reported behavior. |
|
|
| --- |
|
|
| ## How to use |
|
|
| This is a plain PyTorch checkpoint (not a `transformers` model), so inference requires the model class |
| definition from the companion GitHub repository. See [`inference_example.py`](inference_example.py) in |
| this repository for a complete, runnable example. In short: |
|
|
| ```bash |
| git clone https://github.com/lab-smile/FearConditioningAI.git |
| cd FearConditioningAI |
| pip install -r requirements.txt # or: conda env create -f environment-<platform>.yml |
| ``` |
|
|
| ```python |
| import torch |
| from huggingface_hub import hf_hub_download |
| from models.VGG_Model import Visual_Cortex_Amygdala |
| |
| repo_id = "smilelab/visual-valence-model" |
| # swap in any filename from the checkpoint table above, e.g. "vca_ckvideo_batch128_lr2e-5_epoch20.pth" |
| ckpt_path = hf_hub_download(repo_id=repo_id, filename="base_model_conditioned_orientation_epoch100.pth") |
| |
| model = Visual_Cortex_Amygdala() |
| checkpoint = torch.load(ckpt_path, map_location="cpu", weights_only=False) |
| model.load_state_dict(checkpoint["state_dict"], strict=False) |
| model.eval() |
| ``` |
|
|
| See `inference_example.py` for image preprocessing (resize/normalize + quadrant placement of the CS/US) |
| and how to rescale the model's sigmoid output back to the 1–9 valence scale. |
|
|
| --- |
|
|
| ## Citation |
|
|
| If you use this model, please cite the paper: |
|
|
| ```bibtex |
| @article{leem2026associative, |
| title = {Associative Emotional Learning in Convolutional Neural Networks}, |
| author = {Leem, Seowung and Keil, Andreas and Ding, Mingzhou and Fang, Ruogu}, |
| journal = {Neural Computation}, |
| year = {2026}, |
| note = {in press}, |
| eprint = {2607.19327}, |
| archivePrefix = {arXiv}, |
| url = {https://arxiv.org/abs/2607.19327} |
| } |
| ``` |
|
|
| Please also cite the datasets and methods this model builds on (IAPS, Cowen & Keltner Videoframe, SAM, |
| VGG-16, ImageNet, ECA-Net, Rescorla-Wagner) — full references in the |
| [GitHub README's Citations section](https://github.com/lab-smile/FearConditioningAI#citations). |
|
|
| --- |
|
|
| ## License |
|
|
| This model is released under the **MIT License**, matching the |
| [GitHub repository](https://github.com/lab-smile/FearConditioningAI/blob/main/LICENSE). |
|
|
| ## Contact |
|
|
| | Name | Email | |
| |---|---| |
| | Seowung Leem | leem.s@ufl.edu | |
| | Dr. Ruogu Fang | ruogu.fang@bme.ufl.edu | |
|
|