Codebase for INVASE: Instance-wise Variable Selection - 2019 ICLR

Related tags

Deep Learning INVASE
Overview

Codebase for "INVASE: Instance-wise Variable Selection"

Authors: Jinsung Yoon, James Jordon, Mihaela van der Schaar

Paper: Jinsung Yoon, James Jordon, Mihaela van der Schaar, "IINVASE: Instance-wise Variable Selection using Neural Networks," International Conference on Learning Representations (ICLR), 2019. (https://openreview.net/forum?id=BJg_roAcK7)

This directory contains implementations of INVASE framework for the following applications.

  • Instance-wise feature selection
  • Prediction with instance-wise feature selection

To run the pipeline for training and evaluation on INVASE framwork, simply run python3 -m main_inavse.py.

Note that any model architecture can be used as the actor and critic models such as CNN. The condition for models is to have train and predict functions as its subfunctions.

Stages of the INVASE framework:

  • Generate synthetic dataset (6 synthetic datasets)
  • Train INVASE or INVASE- (without baseline)
  • Evaluate INVASE for instance-wise feature selection
  • Evaluate INVASE for prediction

Command inputs:

  • data_type: synthetic data type (syn1 to syn6)

  • train_no: the number of samples for training set

  • train_no: the number of samples for testing set

  • dim: the number of features

  • model_type: invase or invase_minus

  • model_parameters:

    • actor_h_dim: hidden state dimensions for actor
    • critic_h_dim: hidden state dimensions for critic
    • n_layer: the number of layers
    • batch_size: the number of samples in mini batch
    • iteration: the number of iterations
    • activation: activation function of models
    • learning_rate: learning rate of model training
    • lamda: hyper-parameter of INVASE

Example command

$ python3 main_invase.py 
--data_type syn1 --train_no 10000 --test_no 10000 --dim 11
--model_type invase --actor_h_dim 100 --critic_h_dim 200
--n_layer 3 --batch_size 1000 --iteration 10000
--activation relu --learning_rate 0.0001 --lamda 0.1

Outputs

  • Instance-wise feature selection performance:
    • Mean TPR
    • Std TPR
    • Mean FDR
    • Std FDR
  • Prediction performance:
    • AUC
    • APR
    • ACC
You might also like...
[ArXiv 2021] Data-Efficient Instance Generation from Instance Discrimination
[ArXiv 2021] Data-Efficient Instance Generation from Instance Discrimination

InsGen - Data-Efficient Instance Generation from Instance Discrimination Data-Efficient Instance Generation from Instance Discrimination Ceyuan Yang,

CausalNLP is a practical toolkit for causal inference with text as treatment, outcome, or "controlled-for" variable.

CausalNLP CausalNLP is a practical toolkit for causal inference with text as treatment, outcome, or "controlled-for" variable. Install pip install -U

Python Implementation of Chess Playing AI with variable difficulty

Chess AI with variable difficulty level implemented using the MiniMax AB-Pruning Algorithm

The official implementation of Variable-Length Piano Infilling (VLI).
The official implementation of Variable-Length Piano Infilling (VLI).

Variable-Length-Piano-Infilling The official implementation of Variable-Length Piano Infilling (VLI). (paper: Variable-Length Music Score Infilling vi

Benchmark for Answering Existential First Order Queries with Single Free Variable
Benchmark for Answering Existential First Order Queries with Single Free Variable

EFO-1-QA Benchmark for First Order Query Estimation on Knowledge Graphs This repository contains an entire pipeline for the EFO-1-QA benchmark. EFO-1

Llvlir - Low Level Variable Length Intermediate Representation

Low Level Variable Length Intermediate Representation Low Level Variable Length

Semi-automated OpenVINO benchmark_app with variable parameters

Semi-automated OpenVINO benchmark_app with variable parameters. User can specify multiple options for any parameters in the benchmark_app and the progam runs the benchmark with all combinations of given options.

HyperSeg: Patch-wise Hypernetwork for Real-time Semantic Segmentation Official PyTorch Implementation
HyperSeg: Patch-wise Hypernetwork for Real-time Semantic Segmentation Official PyTorch Implementation

: We present a novel, real-time, semantic segmentation network in which the encoder both encodes and generates the parameters (weights) of the decoder. Furthermore, to allow maximal adaptivity, the weights at each decoder block vary spatially. For this purpose, we design a new type of hypernetwork, composed of a nested U-Net for drawing higher level context features

TalkNet 2: Non-Autoregressive Depth-Wise Separable Convolutional Model for Speech Synthesis with Explicit Pitch and Duration Prediction.

TalkNet 2 [WIP] TalkNet 2: Non-Autoregressive Depth-Wise Separable Convolutional Model for Speech Synthesis with Explicit Pitch and Duration Predictio

Comments
  • Policy-gradient loss

    Policy-gradient loss

    Hi,

    I have a question regarding the actor loss computation: it seems that the loss is different from the paper where the $l_0$ norm was used for the sampled mask and added to the reward. Here you seemingly add a $l_1$ on the feature selection probability estimates, acting as a sparse regularisation, but hence back-propagating something that was not intended from the derivation in the paper?

    Why the difference, or is it something I misunderstood on the paper?

    Thanks, Darius

    opened by DariusAf 3
  • lamda value

    lamda value

    Hi Jinsung, I have a question about the lamda value. Using the default value of lamda, I cannot reproduce the results in the paper. I think the reason is that lamda has different values for different datasets. I wonder what is the lamda value for the six synthetic datasets. Btw in main_invase.py, the type of lamda should be float rather than int. Thanks!

    opened by xiaoqiqiduo 2
  • Reproduce Results

    Reproduce Results

    Hello,

    I used the recommended hyperparameters from the other issue, but ran into NaNs problems, which means the produced selection_probability after several iterations contained NaNs, and the program stopped.

    Hyperparameters used: Syn4: activation = selu, lamda = 0.1 (Smaller TPR but still the best model) Syn5: activation = selu, lamda = 0.15 Syn6: activation = selu, lamda = 0.1

    Does the activation function "selu" really make a big difference, compared with "relu"? Is there any reason for using "selu" specificly?

    Thanks for help in advance!

    opened by Wienhannover 1
Owner
Jinsung Yoon
Research Scientist at Google Cloud AI
Jinsung Yoon
Code for "PVNet: Pixel-wise Voting Network for 6DoF Pose Estimation" CVPR 2019 oral

Good news! We release a clean version of PVNet: clean-pvnet, including how to train the PVNet on the custom dataset. Use PVNet with a detector. The tr

ZJU3DV 722 Dec 27, 2022
This is the codebase for the ICLR 2021 paper Trajectory Prediction using Equivariant Continuous Convolution

Trajectory Prediction using Equivariant Continuous Convolution (ECCO) This is the codebase for the ICLR 2021 paper Trajectory Prediction using Equivar

Spatiotemporal Machine Learning 45 Jul 22, 2022
Official codebase for ICLR oral paper Unsupervised Vision-Language Grammar Induction with Shared Structure Modeling

CLIORA This is the official codebase for ICLR oral paper: Unsupervised Vision-Language Grammar Induction with Shared Structure Modeling. We introduce

Bo Wan                                             32 Dec 23, 2022
The source code and data of the paper "Instance-wise Graph-based Framework for Multivariate Time Series Forecasting".

IGMTF The source code and data of the paper "Instance-wise Graph-based Framework for Multivariate Time Series Forecasting". Requirements The framework

Wentao Xu 24 Dec 5, 2022
A PyTorch implementation of "Capsule Graph Neural Network" (ICLR 2019).

CapsGNN ⠀⠀ A PyTorch implementation of Capsule Graph Neural Network (ICLR 2019). Abstract The high-quality node embeddings learned from the Graph Neur

Benedek Rozemberczki 1.2k Jan 2, 2023
A PyTorch implementation of "Predict then Propagate: Graph Neural Networks meet Personalized PageRank" (ICLR 2019).

APPNP ⠀ A PyTorch implementation of Predict then Propagate: Graph Neural Networks meet Personalized PageRank (ICLR 2019). Abstract Neural message pass

Benedek Rozemberczki 329 Dec 30, 2022
A PyTorch implementation of "Graph Wavelet Neural Network" (ICLR 2019)

Graph Wavelet Neural Network ⠀⠀ A PyTorch implementation of Graph Wavelet Neural Network (ICLR 2019). Abstract We present graph wavelet neural network

Benedek Rozemberczki 490 Dec 16, 2022
Deep Anomaly Detection with Outlier Exposure (ICLR 2019)

Outlier Exposure This repository contains the essential code for the paper Deep Anomaly Detection with Outlier Exposure (ICLR 2019). Requires Python 3

Dan Hendrycks 464 Dec 27, 2022
Based on the paper "Geometry-aware Instance-reweighted Adversarial Training" ICLR 2021 oral

Geometry-aware Instance-reweighted Adversarial Training This repository provides codes for Geometry-aware Instance-reweighted Adversarial Training (ht

Jingfeng 47 Dec 22, 2022
Leveraging Instance-, Image- and Dataset-Level Information for Weakly Supervised Instance Segmentation

Leveraging Instance-, Image- and Dataset-Level Information for Weakly Supervised Instance Segmentation This paper has been accepted and early accessed

Yun Liu 39 Sep 20, 2022