neural-joint-activity-in-snns

Source code of the paper entitled "Exploring Neural Joint Activity in Spiking Neural Networks for Fraud Detection", and presented at CIARP 2024, the 27th Iberamerican Congress on Pattern Recognition.

https://github.com/dylanperdigao/neural-joint-activity-in-snns

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.8%) to scientific vocabulary

Keywords

ciarp2024 energy-efficiency fair-ml fraud-detection population-coding responsible-ai snntorch spiking-neural-networks
Last synced: 6 months ago · JSON representation ·

Repository

Source code of the paper entitled "Exploring Neural Joint Activity in Spiking Neural Networks for Fraud Detection", and presented at CIARP 2024, the 27th Iberamerican Congress on Pattern Recognition.

Basic Info
  • Host: GitHub
  • Owner: dylanperdigao
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 6.16 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Topics
ciarp2024 energy-efficiency fair-ml fraud-detection population-coding responsible-ai snntorch spiking-neural-networks
Created over 1 year ago · Last pushed 11 months ago
Metadata Files
Readme Funding License Citation

README.md

Exploring Neural Joint Activity in Spiking Neural Networks for Fraud Detection

DOI

PWC PWC PWC PWC PWC PWC PWC PWC PWC PWC PWC PWC

Source code of the paper entitled "Exploring Neural Joint Activity in Spiking Neural Networks for Fraud Detection" and presented at CIARP 2024, the 27th Iberoamerican Congress on Pattern Recognition.

Paper Abstract

Spiking Neural Networks (SNNs), inspired by the real brain's behavior, offer an energy-efficient alternative to traditional artificial neural networks coupled with their neural joint activity, also referred to as population coding. This population coding is replicated in SNNs by attributing more than one neuron to each class in the output layer. This study leverages SNNs for fraud detection through real-world datasets, namely the Bank Account Fraud dataset suite, addressing the fairness and bias issues inherent in conventional machine learning algorithms. Different configurations of time steps and population sizes were compared within a 1D-Convolutional Spiking Neural Network, whose hyperparameters were optimized through a Bayesian optimization process. Our proposed SNN approach with neural joint activity enables the classification of fraudulent opening of bank accounts more accurately and fairly than standard SNNs. The results highlight the potential of SNNs to surpass non-population coding baselines by achieving an average of 47.08% of recall at a business constraint of 5% of false positive rate, offering a robust solution for fraud detection. Moreover, the proposed approach attains comparable results to gradient-boosting machine models while maintaining predictive equality towards sensitive attributes above 90%.

Keywords: Spiking Neural Networks $\cdot$ Population Coding $\cdot$ Fraud Detection $\cdot$ Energy Efficiency $\cdot$ Responsible AI $\cdot$ Fair ML

Convolutional Spiking Neural Network Architecture

Installation

To install the required packages, run the following command: bash pip install -r requirements.txt Download the six Variant of the Bank Account Fraud (BAF) Dataset and extract the parquet files to the data folder.

Dataset

The Bank Account Fraud (BAF) dataset is a synthetic dataset based on real-world data that simulates bank account opening applications. The dataset contains 6 parquet files, each representing a different variant of the dataset (Base, Variant I, Variant II, Variant III, Variant IV, and Variant V). It contains 30 features and a binary target variable indicating whether the application is fraudulent or not.

Repository Structure

The repository is structured as follows: - data: Contains the Bank Account Fraud dataset. - images: Contains the images used in this README file. - src: Contains the source code of the project. - modules: Contains the utilitary files used in the project. - get_best_hyperparams.ipynb: Jupyter notebook to find the best combinations of hyperparameters for the 1D-Convolutional Spiking Neural Network architectures. - get_metrics.ipynb: Jupyter notebook to find the metrics for each architecture. - main_evaluation.py: Main script to run the experimentation that repeats the classification multiple times for each dataset. - main_optimization.py: Main script to run the Bayesian optimization of the architectures with population coding. - plot_pareto_front.ipynb: Jupyter notebook to plot the Pareto front of the optimized architectures. - plot_scatter.ipynb: Jupyter notebook to plot the scatter plot of the evaluation experimentation. - plot_tradeoff.ipynb: Jupyter notebook to plot the tradeoff between the performance and fairness metrics.

Bibtex

To cite this work, use the following bibtex entry: bibtex @inproceedings{perdigao_exploring_2025, author="Perdigão, Dylan and Antunes, Francisco and Silva, Catarina and Ribeiro, Bernardete", editor="Hernández-García, Ruber and Barrientos, Ricardo J. and Velastin, Sergio A.", title="Exploring Neural Joint Activity in Spiking Neural Networks for Fraud Detection", booktitle="Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications", year="2025", publisher="Springer Nature Switzerland", address="Cham", pages="45--59", isbn="978-3-031-76604-6", doi="10.1007/978-3-031-76604-6_4", }

Issues

This code is imported and adapted from the original research repository. Consequently, the code may contain bugs or issues. If you encounter any issues while running the code, please open an issue in the repository.

Owner

  • Name: Dylan Perdigão
  • Login: dylanperdigao
  • Kind: user
  • Location: Vendas Novas
  • Company: University of Coimbra

PhD Candidate @ University of Coimbra

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this code, please cite its respective paper: https://doi.org/10.1007/978-3-031-76604-6_4."
authors:
- family-names: "Perdigão"
  given-names: "Dylan"
  orcid: "https://orcid.org/0000-0001-6923-900X"
title: "Neural Joint Activity in SNNs"
version: 1.0.1
doi: 10.5281/zenodo.13546087
date-released: 2025-04-13
url: "https://github.com/DylanPerdigao/Neural-Joint-Activity-in-SNNs"

GitHub Events

Total
  • Release event: 1
  • Watch event: 2
  • Push event: 6
  • Pull request event: 1
  • Create event: 1
Last Year
  • Release event: 1
  • Watch event: 2
  • Push event: 6
  • Pull request event: 1
  • Create event: 1

Dependencies

requirements.txt pypi
  • PyYAML *
  • aequitas >=1.0.0
  • ctgan *
  • dill *
  • imblearn *
  • lightgbm *
  • matplotlib *
  • numpy *
  • optuna *
  • optuna-dashboard *
  • pandas *
  • pyarrow *
  • scikit-learn *
  • scipy *
  • seaborn *
  • snntorch >=0.9.1