Variational autoencoders(VAE) for players performance evaluation, clinical trials, and educational assessment

Deep Learning and AI Workshop by IISSO and Deeplearning.ai

Mahbubul Hasan

October 25, 2021

Plan for this lecture

  1. Data description
  2. Generative model, why generative model?
  3. Autoencoder, Variational Autoencoder(VAE)
  4. Q-matrix & how to use it in VAE model?
  5. Multidimensional Logistic 2-Parameter (ML2P) Model
  6. VAE demo in R
  7. VAE/deep learning frontiers in educational assessment
  8. Future directions or extensions

Which face is fake?

[Image:MITS191]

Data

DataFrame(head)

Unsupervised learning

Genarative model

Why genarative model?

[Amini,2019]

What is latent variable?

What is autoencoder?

[Rocca,2019]

Why do we care about low dimentional Z?

What is VAE?

VAE optimization

Reparametrizing the sampling lyer

VAE: latent purturbation during training

VAE summary

What is Q-matrix and What can we do with Q-matrix?

Q-matrix & how to use it in VAE model?

What is difficulty and discrimination perameter?

Discrimination parameters

Multidimensional item response theory(MIRT)

For example, if one student answers only questions 1 and 4 incorrect, and another student answers only questions 3 and 7 incorrect, they have the same percentage score. But it is not likely that the two students share the same latent trait values. Questions 3 and 7 may have tested a different skill than items 1 and 4, and could vary greatly in difficulty level. 

Multidimensional Logistic 2-Parameter (ML2P) model

ML2P-VAE model

\(Q(zi) = \frac{1}{1+e^{-z_i}}\)

Load data

Model parameters

ML2P-VAE model inside R code example

models_ind <- build_vae_independent(num_items,
                                    num_skills,
                                    Q,
                                    model_type = 2,
                                    enc_hid_arch = enc_arch,
                                    hid_enc_activation = enc_act,
                                    output_activation = out_act)
encoder_ind <- models_ind[[1]]
decoder_ind <- models_ind[[2]]
vae_ind <- models_ind[[3]]
encoder_ind
## Model
## Model: "model"
## ________________________________________________________________________________
## Layer (type)              Output Shape      Param #  Connected to               
## ================================================================================
## input (InputLayer)        [(None, 30)]      0                                   
## ________________________________________________________________________________
## hidden_1 (Dense)          (None, 16)        496      input[0][0]                
## ________________________________________________________________________________
## hidden_2 (Dense)          (None, 8)         136      hidden_1[0][0]             
## ________________________________________________________________________________
## z_mean (Dense)            (None, 3)         27       hidden_2[0][0]             
## ________________________________________________________________________________
## z_log_var (Dense)         (None, 3)         27       hidden_2[0][0]             
## ________________________________________________________________________________
## z (Concatenate)           (None, 6)         0        z_mean[0][0]               
##                                                      z_log_var[0][0]            
## ________________________________________________________________________________
## lambda (Lambda)           (None, 3)         0        z[0][0]                    
## ================================================================================
## Total params: 686
## Trainable params: 686
## Non-trainable params: 0
## ________________________________________________________________________________

decoder_ind

## Model
## Model: "model_1"
## ________________________________________________________________________________
## Layer (type)                        Output Shape                    Param #     
## ================================================================================
## latent_inputs (InputLayer)          [(None, 3)]                     0           
## ________________________________________________________________________________
## vae_out (Dense)                     (None, 30)                      120         
## ================================================================================
## Total params: 120
## Trainable params: 120
## Non-trainable params: 0
## ________________________________________________________________________________

vae_ind

## Model
## Model: "model_2"
## ________________________________________________________________________________
## Layer (type)                        Output Shape                    Param #     
## ================================================================================
## input (InputLayer)                  [(None, 30)]                    0           
## ________________________________________________________________________________
## model (Model)                       [(None, 3), (None, 3), (None, 3 686         
## ________________________________________________________________________________
## model_1 (Model)                     (None, 30)                      120         
## ================================================================================
## Total params: 806
## Trainable params: 806
## Non-trainable params: 0
## ________________________________________________________________________________

Training

Model training loss

Get parameter estimates for Model after training

Load in true values (included in this pacakge)

Examine model estimates

Examine model estimates(continue…)

Difficulty parameters

Ability parameter

Corr latent traits model

Corr latent traits

VAE for educational assessment(summary)

VAE/deep learning frontiers in educational assessment

Autoencoders for Educational Assessment

https://doi.org/10.1007/978-3-030-23207-8_8

VAE for Cognitive Models

DOI:10.1109/IJCNN.2019.8852333

.

Extended classic IRT response models with deep neural network components/VAE

Feb 2020 study by Stanford

https://arxiv.org/abs/2002.00276

.

Incorporate a Q-matrix into an existing MIRT model

DOI: 10.1177/0013164418814898

.! .

VAE in the estimation of MIRT models

https://doi.org/10.1007/s10994-021-06005-7

.

Other thoughts/comments

Future directions

Thank you!

Questions?