multi-shared-task-self-supervised-cnn-lstm

Multi-shared-task Self-supervised Learning utilizing CNN-LSTM network

https://github.com/mshuqair/multi-shared-task-self-supervised-cnn-lstm

Science Score: 57.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 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords

cnn-lstm deep-learning keras neural-networks parkinsons-disease python self-supervised-learning
Last synced: 6 months ago · JSON representation ·

Repository

Multi-shared-task Self-supervised Learning utilizing CNN-LSTM network

Basic Info
  • Host: GitHub
  • Owner: mshuqair
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 539 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
cnn-lstm deep-learning keras neural-networks parkinsons-disease python self-supervised-learning
Created over 1 year ago · Last pushed 10 months ago
Metadata Files
Readme Citation

README.md

Multi-shared-task Self-supervised (M-SSL) Multichannel CNN-LSTM

M-SSL Multichannel CNN-LSTM for UPDRS-III Estimation in PD Patients

Figure 1. The main algorithm for estimating UPDRS-III scores.

Figure 2. The correlation of the Supervised (left) and the proposed M-SSL (right) Multichannel CNN-LSTM.

  • This code is to estimate UPDRS-III scores of PD patients.
  • The MDPI Bioengineering journal has recently published the research associated with this code.
  • Multi-Shared-Task Self-Supervised CNN-LSTM for Monitoring Free-Body Movement UPDRS-III Using Wearable Sensors: https://doi.org/10.3390/bioengineering11070689
  • Please cite the paper if you find this work useful

General Note

  • The code treats the estimation of UPDRS-III scores as a regression problem. If you want to use the model as a classifier, you need to alter the model's output layer and loss function.
  • The code performs a leave-one-out subject-wise testing. You can replace the folds with the desired training and testing data.
  • The original data is not available due to privacy concerns.

Code Requirements and Compatability

The code was run and tested using the following: - Python 3.10.11 - tensorflow 2.10.1 - keras 2.10.0 - h5py 3.10.0 - matplotlib 3.9.0 - numpy 1.26.3 - pandas 2.1.4 - scikit-learn 1.5.0 - scipy 1.13.1 - transforms3d 0.4.1

Formating Your Own Data

If you want to use your data, consider the following: - The shape of the input should be (n, 6), where n is the number of samples. - The six columns are Gyroscope Wrist X, Y, Z and Ankle X, Y, Z. - The labels are to be shaped as (n, 1). - Modify 'datagenerateraw.py', 'datageneratespectrogram.py', 'datapretextgenerateraw.py', and 'datapretextgeneratespectrogram.py' to remove any dependancy on orginal data.

Running the Model

  • Run 'datagenerateraw.py' and 'datageneratespectrogram.py' to segment the Gyroscope Raw data and generate Spectrograms.
  • Pretext Task: run 'taskpretextmultitask_dual.py' to pre-train the Multichannel CNN using the proposed Multi-shared-task Self-supervised Learning (M-SSL) approach.
  • The code will generate the selected signal transformations and their spectrograms for the Pretext task.
  • The pre-trained models will be saved in the 'models' folder
  • Downstream Task: Run 'taskdownstreamdualcnnlstm.py' to transfer the weights from the pre-trained models, fine-tune them and evaluate the testing data.
  • Baseline task: run 'taskbaselinedualcnnlstm.py' to get the model performance in a Supervised scenario (not using M-SSL).
  • Use any of the analysis codes to calculate metrics and visualize outputs.

Conclusion

Owner

  • Name: Mustafa
  • Login: mshuqair
  • Kind: user
  • Company: Florida Atlantic University

PhD candidate and researcher focusing on machine learning, reinforcement learning and learning systems.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Shuqair"
  given-names: "Mustafa"
  orcid: "https://orcid.org/0000-0002-9134-5447"
title: "Multi-shared-task Self-supervised CNN-LSTM"
version: 1.0
date-released: 2024-06-28
url: "https://github.com/mshuqair/Multi-shared-task-Self-supervised-CNN-LSTM"

GitHub Events

Total
  • Push event: 4
Last Year
  • Push event: 4

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels