All Projects → ChunjingXiao → CsiGAN

ChunjingXiao / CsiGAN

Licence: other
An implementation for our paper: CsiGAN: Robust Channel State Information-based Activity Recognition with GANs (IEEE Internet of Things Journal, 2019), which is the semi-supervised Generative Adversarial Network (GAN) for Channel State Information (CSI) -based activity recognition.

Programming Languages

python
139335 projects - #7 most used programming language
matlab
3953 projects

Projects that are alternatives of or similar to CsiGAN

Gans In Action
Companion repository to GANs in Action: Deep learning with Generative Adversarial Networks
Stars: ✭ 748 (+3152.17%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
Acgan Pytorch
Pytorch implementation of Conditional Image Synthesis with Auxiliary Classifier GANs
Stars: ✭ 57 (+147.83%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
Ssgan Tensorflow
A Tensorflow implementation of Semi-supervised Learning Generative Adversarial Networks (NIPS 2016: Improved Techniques for Training GANs).
Stars: ✭ 496 (+2056.52%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
ESP32-CSI-Tool
Extract Channel State Information from WiFi-enabled ESP32 Microcontroller. Active and Passive modes available. (https://stevenmhernandez.github.io/ESP32-CSI-Tool/)
Stars: ✭ 100 (+334.78%)
Mutual labels:  csi, channel-state-information
Triple Gan
See Triple-GAN-V2 in PyTorch: https://github.com/taufikxu/Triple-GAN
Stars: ✭ 203 (+782.61%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
Ali Pytorch
PyTorch implementation of Adversarially Learned Inference (BiGAN).
Stars: ✭ 61 (+165.22%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
catgan pytorch
Unsupervised and Semi-supervised Learning with Categorical Generative Adversarial Networks
Stars: ✭ 50 (+117.39%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
ganbert
Enhancing the BERT training with Semi-supervised Generative Adversarial Networks
Stars: ✭ 205 (+791.3%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
Accel Brain Code
The purpose of this repository is to make prototypes as case study in the context of proof of concept(PoC) and research and development(R&D) that I have written in my website. The main research topics are Auto-Encoders in relation to the representation learning, the statistical machine learning for energy-based models, adversarial generation networks(GANs), Deep Reinforcement Learning such as Deep Q-Networks, semi-supervised learning, and neural network language model for natural language processing.
Stars: ✭ 166 (+621.74%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
Sparsely Grouped Gan
Code for paper "Sparsely Grouped Multi-task Generative Adversarial Networks for Facial Attribute Manipulation"
Stars: ✭ 68 (+195.65%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
Improvedgan Pytorch
Semi-supervised GAN in "Improved Techniques for Training GANs"
Stars: ✭ 228 (+891.3%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
ganbert-pytorch
Enhancing the BERT training with Semi-supervised Generative Adversarial Networks in Pytorch/HuggingFace
Stars: ✭ 60 (+160.87%)
Mutual labels:  generative-adversarial-network, semi-supervised-learning
GAN-auto-write
Generative Adversarial Network that learns to generate handwritten digits. (Learning Purposes)
Stars: ✭ 18 (-21.74%)
Mutual labels:  generative-adversarial-network
AdverseBiNet
Improving Document Binarization via Adversarial Noise-Texture Augmentation
Stars: ✭ 34 (+47.83%)
Mutual labels:  generative-adversarial-network
srgan
Pytorch implementation of "Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network"
Stars: ✭ 39 (+69.57%)
Mutual labels:  generative-adversarial-network
steam-stylegan2
Train a StyleGAN2 model on Colaboratory to generate Steam banners.
Stars: ✭ 30 (+30.43%)
Mutual labels:  generative-adversarial-network
vsphere-csi-driver
vSphere storage Container Storage Interface (CSI) plugin
Stars: ✭ 176 (+665.22%)
Mutual labels:  csi
Adventures-with-GANS
Showcasing various fun adventures with GANs
Stars: ✭ 13 (-43.48%)
Mutual labels:  generative-adversarial-network
Awesome-Text-to-Image
A Survey on Text-to-Image Generation/Synthesis.
Stars: ✭ 251 (+991.3%)
Mutual labels:  generative-adversarial-network
Image-Colorization-CycleGAN
Colorization of grayscale images using CycleGAN in TensorFlow.
Stars: ✭ 16 (-30.43%)
Mutual labels:  generative-adversarial-network

CsiGAN

These are the code and data for the paper: CsiGAN: Robust Channel State Information-based Activity Recognition with GANs, IEEE Internet of Things Journal, 2019, 6(6): 10191-10204. https://ieeexplore.ieee.org/document/8808929

This model aims to deal with the performance degradation problem of leave-one-subject-out validation for CSI-based activity recognition, and can efficiently improve the recognition accuracy.

CsiGAN is designed based on the semi-supervised GAN[1]. Figure 1 and Figure 2 illustrate the main frameworks of CsiGAN and the semi-supervised GAN[1]. CsiGAN is different from this semi-supervised GAN in three aspects: (1) the complement generator Gc is introduced into CsiGAN to produce complement fake samples. (2) The k probability outputs (1’• • • k’) and corresponding loss term are added for the discriminator. (3) Based on the introduced generator, the manifold regularization is proposed to stabilize the learning process (not shown in the framework figure).

Figure 1. Framework of CsiGAN.

Figure 1. Framework of CsiGAN

Figure 2. Framework of the semi-supervised GAN.

Figure 2. Framework of the semi-supervised GAN

All the experiments are the leave-one-subject-out validation. In other words, we select one user as the left-out user, and the others as the trained ones. For this left-out user, we further evenly divide its data of each category into the unlabeled data set and testing set.

Abstract

As a cornerstone service for many Internet of Things applications, Channel State Information (CSI) based activity recognition has received immense attention over recent years. However, recognition performance of general approaches might significantly decrease when applying the trained model to the left-out user whose CSI data are not used for model training. To overcome this challenge, we propose a semi-supervised Generative Adversarial Network (GAN) for CSI-based activity recognition, CsiGAN. Based on general semi-supervised GANs, we mainly design three components for CsiGAN to meet the scenarios that unlabeled data form left-out users are very limited and enhance recognition performance. 1) We introduce a new complement generator, which can use limited unlabeled data to produce diverse fake samples for training a robust discriminator. 2) For the discriminator, we change the number of probability outputs from k+1 into 2k+1 (here k is the number of categories), which can help obtain the correct decision boundary for each category. 3) Based on the introduced generator, we propose a manifold regularization, which can stabilize the learning process. The experiments suggest that CsiGAN attains significant gains compared to state-of-the-art methods.

Citation

@ARTICLE{CsiGAN2019,
    author={Xiao, Chunjing and Han, Daojun and Ma, Yongsen and Qin, Zhiguang},
    journal={IEEE Internet of Things Journal},
    title={CsiGAN: Robust Channel State Information-Based Activity Recognition With GANs},
    year={2019},
    volume={6},
    number={6},
    pages={10191-10204},
    doi={10.1109/JIOT.2019.2936580}
}

CsiGANSemiSupervisedGAN

CsiGANSemiSupervisedGAN is for the Semi-supervised learning experiment of CsiGAN using SignFi data (https://github.com/yongsen/SignFi). For this semi-supervised learning experiment, we select 10% of unlabeled data from the left-out user for training the model with training set. The SignFi data should be formatted to fit our model. And the processed data are too large to be uploaded here, and can be downloaded at Baidu or Google Drive.

The codes are tested under python3.5 + tensorflow 1.8 + win7 and NVIDIA TITAN X 12GB GPU. To get the recognition accuracy:

  1. Download the data at https://pan.baidu.com/s/1L-vrJxJ6v0HujbwjKhG4-g (pwd: 2stz) or https://drive.google.com/drive/folders/1Y0_TLETH-E3_byu68IdbaIVmzZewmtV3, and put the 11 .mat files under the folder “CsiGANSemiSupervisedGAN\data”.
  2. Run 1mat2npyCSI.py on Dos command: python 1mat2npyCSI.py
  3. Run 2mat2npyLabel.py: python 2mat2npyLabel.py
  4. Run 3train_CSI_original_V40_2Unlabelled_C101.py: Python 3train_CSI_original_V40_2Unlabelled_C101.py

CsiGANSupervisedGAN

CsiGANSupervisedGAN is for the Supervised learning experiment of CsiGAN using SignFi data (https://github.com/yongsen/SignFi). For this semi-supervised learning experiment, there are not any data from the left-out user. The SignFi data should be formatted to fit our model. And the processed data are too large to be uploaded here, and can be downloaded at: https://pan.baidu.com/s/1LV1pjl0-ITrbzAe0HCWUrA (pwd: 49gk) or https://drive.google.com/drive/folders/1B7AM6POhoVKBSAUBRjCrXfnKGWngcKkT.

The running steps are the same to the Semi-supervised learning experiment

BaselineSemiSupManiGAN

BaselineSemiSupManiGAN is for the Semi-supervised learning experiment of the baseline: ManiGAN (Semisupervised learning with gans: Revisiting manifold regularization,ICLR 2018)

This experiment use the same data with CsiGANSemiSupervisedGAN, and the running steps are also the same to CsiGANSemiSupervisedGAN.

BaselineSemiSupSSGAN

BaselineSemiSupManiGAN is for the Semi-supervised learning experiment of the baseline: SSGAN (Improved techniques for training gans,NIPS 2016)

This experiment use the same data with CsiGANSemiSupervisedGAN, and the running steps are also the same to CsiGANSemiSupervisedGAN.

BaselineSupervisedManiGAN

BaselineSupervisedManiGAN is for the Supervised learning experiment of the baseline: ManiGAN (Semisupervised learning with gans: Revisiting manifold regularization,ICLR 2018)

This experiment use the same data with CsiGANSupervisedGAN, and the running steps are also the same to CsiGANSupervisedGAN.

BaselineSupervisedSSGAN

BaselineSupervisedManiGAN is for the Supervised learning experiment of the baseline: SSGAN (Improved techniques for training gans,NIPS 2016)

This experiment use the same data with CsiGANSupervisedGAN, and the running steps are also the same to CsiGANSupervisedGAN.

DatasetCodeForSignFi

These codes are used to generate the data for our experiments. These codes require the file “dataset_lab_150.mat” which can be downloaded from the paper signFi (https://github.com/yongsen/SignFi).

[1] T. Salimans, I. Goodfellow, W. Zaremba, V. Cheung, A. Radford, and X. Chen, “Improved techniques for training gans,” NIPS 2016.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].