
Discrete VAE (VQ-VAE): vector-quantized latents with codebook
Source:R/geron_w4d_native.R
morie_geron_vq_vae.RdL = recon MSE + codebook loss + beta*commitment loss; straight-through estimator copies the decoder gradient at z_q onto z_e.
Usage
morie_geron_vq_vae(
X,
codebook_size = 4,
latent_dim = 2,
epochs = 200,
lr = 0.05,
beta = 0.25,
seed = 0
)Value
list with codes, indices, z_e, z_q, codebook, counts, reconstruction, recon_error, codebook_loss, commitment_loss, perplexity, loss_curve, beta, estimate, n, method.
Examples
V <- c(1, 2, 3, 4, 5, 6, 7, 8)
morie_geron_vq_vae(V)
#> $codes
#> [,1] [,2]
#> [1,] 0.3820447 0.1918383
#> [2,] 0.3820447 0.1918383
#> [3,] -1.0421038 -0.5886211
#> [4,] -2.8814527 -1.6321084
#> [5,] -2.8814527 -1.6321084
#> [6,] -6.0508494 -3.4102343
#> [7,] -6.0508494 -3.4102343
#> [8,] -6.0508494 -3.4102343
#>
#> $indices
#> [1] 0 0 1 2 2 3 3 3
#>
#> $z_e
#> [,1] [,2]
#> [1,] 1.1514173 0.64325901
#> [2,] -0.1013865 -0.07511177
#> [3,] -1.3541903 -0.79348256
#> [4,] -2.6069941 -1.51185334
#> [5,] -3.8597979 -2.23022413
#> [6,] -5.1126017 -2.94859491
#> [7,] -6.3654055 -3.66696570
#> [8,] -7.6182094 -4.38533648
#>
#> $z_q
#> [,1] [,2]
#> [1,] 0.3820447 0.1918383
#> [2,] 0.3820447 0.1918383
#> [3,] -1.0421038 -0.5886211
#> [4,] -2.8814527 -1.6321084
#> [5,] -2.8814527 -1.6321084
#> [6,] -6.0508494 -3.4102343
#> [7,] -6.0508494 -3.4102343
#> [8,] -6.0508494 -3.4102343
#>
#> $codebook
#> [,1] [,2]
#> [1,] 0.3820447 0.1918383
#> [2,] -1.0421038 -0.5886211
#> [3,] -2.8814527 -1.6321084
#> [4,] -6.0508494 -3.4102343
#>
#> $counts
#> [1] 2 1 2 3
#>
#> $reconstruction
#> [,1]
#> [1,] 1.622175
#> [2,] 1.622175
#> [3,] 2.818141
#> [4,] 4.378146
#> [5,] 4.378146
#> [6,] 7.057582
#> [7,] 7.057582
#> [8,] 7.057582
#>
#> $recon_error
#> [1] 0.3878212
#>
#> $codebook_loss
#> [1] 0.4569036
#>
#> $commitment_loss
#> [1] 0.4569036
#>
#> $perplexity
#> [1] 3.746748
#>
#> $loss_curve
#> [1] 21.7007701 13.1101656 51.8220206 72.9689172 55.3772076 40.0119318
#> [7] 27.4252315 23.9364877 22.3131865 21.1828970 19.2389001 20.6281894
#> [13] 10.8193065 13.9187176 7.6281807 12.1967530 5.9299482 17.4937444
#> [19] 20.2057840 2.4146263 7.0275612 8.5601888 11.4719313 19.8652920
#> [25] 9.3754012 8.7176929 17.3670167 12.2929531 1.9246582 3.4465265
#> [31] 4.2069354 7.4601952 13.4272747 9.8297385 1.8718499 2.3747483
#> [37] 3.2634141 4.0785256 7.8295431 2.2195781 2.0880894 2.9556250
#> [43] 5.2488804 3.6332803 7.5372562 2.4509830 2.2206693 3.3764326
#> [49] 7.3852661 2.5439872 3.0827276 4.1254708 7.7028462 1.7801283
#> [55] 1.5191406 1.4399620 1.3739392 1.3526933 1.3288388 1.3189591
#> [61] 1.3066768 1.2998630 1.2920405 1.2867853 1.2813407 1.2772992
#> [67] 1.2734354 1.2704495 1.2677768 1.2657193 1.2640051 1.2627592
#> [73] 1.2618422 1.2113215 1.3010541 1.1162093 1.9882362 3.0141308
#> [79] 4.9039339 9.8910464 1.4011462 2.5472830 3.3666121 4.8419359
#> [85] 9.5974411 1.5300425 1.5298693 1.0275169 1.1001101 0.9516185
#> [91] 1.0146529 0.9574134 0.9912411 0.9665521 0.9819122 0.9703845
#> [97] 0.9766749 0.9708164 0.9730129 0.9697155 0.9701355 0.9680547
#> [103] 0.9677340 0.9662689 0.9656643 0.9645374 0.9638489 0.9629269
#> [109] 0.9622407 0.9614564 0.9608077 0.9601249 0.9595266 0.9589242
#> [115] 0.9583789 0.9578435 0.9573498 0.9568718 0.9564265 0.9559990
#> [121] 0.9555983 0.9552157 0.9548560 0.9545137 0.9541914 0.9538857
#> [127] 0.9535977 0.9533252 0.9530687 0.9528267 0.9525993 0.9523854
#> [133] 0.9521850 0.9519971 0.9518218 0.9516582 0.9515063 0.9513655
#> [139] 0.9512357 0.9511164 0.9510074 0.9509085 0.9508195 0.9507400
#> [145] 0.9506699 0.9506090 0.9505572 0.9505142 0.9504800 0.9504544
#> [151] 0.9504373 0.9504285 0.9504279 0.9504356 0.9504512 0.9504749
#> [157] 0.9505064 0.9505458 0.9505929 0.9506477 0.9507102 0.9507802
#> [163] 0.9508577 0.9509427 0.9510351 0.9511348 0.9512419 0.9513563
#> [169] 0.9514779 0.9516067 0.9517427 0.9518857 0.9520359 0.9521931
#> [175] 0.9523573 0.9525284 0.9527065 0.9528914 0.9530833 0.9532819
#> [181] 0.9534872 0.9536993 0.9539181 0.9541436 0.9543756 0.9546142
#> [187] 0.9548594 0.9551110 0.9553690 0.9556335 0.9559043 0.9561813
#> [193] 0.9564647 0.9567542 0.9570499 0.9573517 0.9576596 0.9579735
#> [199] 0.9582933 0.9586191
#>
#> $beta
#> [1] 0.25
#>
#> $estimate
#> [1] 0.3878212
#>
#> $n
#> [1] 8
#>
#> $method
#> [1] "VQ-VAE: nearest-code quantisation, straight-through encoder gradient, codebook + commitment losses"
#>