{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/sc-vae-sparse-coding-based-variational","title":"SC-VAE: Sparse Coding-based Variational Autoencoder with Learned ISTA","arxiv_id":"2303.16666","date":"2023-03-29","proceeding":null,"authors":["Pan Xiao","Peijie Qiu","Sungmin Ha","Abdalla Bani","Shuang Zhou","Aristeidis Sotiras"],"abstract":"Learning rich data representations from unlabeled data is a key challenge towards applying deep learning algorithms in downstream tasks. Several variants of variational autoencoders (VAEs) have been proposed to learn compact data representations by encoding high-dimensional data in a lower dimensional space. Two main classes of VAEs methods may be distinguished depending on the characteristics of the meta-priors that are enforced in the representation learning step. The first class of methods derives a continuous encoding by assuming a static prior distribution in the latent space. The second class of methods learns instead a discrete latent representation using vector quantization (VQ) along with a codebook. However, both classes of methods suffer from certain challenges, which may lead to suboptimal image reconstruction results. The first class suffers from posterior collapse, whereas the second class suffers from codebook collapse. To address these challenges, we introduce a new VAE variant, termed sparse coding-based VAE with learned ISTA (SC-VAE), which integrates sparse coding within variational autoencoder framework. The proposed method learns sparse data representations that consist of a linear combination of a small number of predetermined orthogonal atoms. The sparse coding problem is solved using a learnable version of the iterative shrinkage thresholding algorithm (ISTA). Experiments on two image datasets demonstrate that our model achieves improved image reconstruction results compared to state-of-the-art methods. Moreover, we demonstrate that the use of learned sparse code vectors allows us to perform downstream tasks like image generation and unsupervised image segmentation through clustering image patches.","url_abs":"https://arxiv.org/abs/2303.16666v2","url_pdf":"https://arxiv.org/pdf/2303.16666v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"sc-vae-sparse-coding-based-variational","repo_url":"https://github.com/sotiraslab/SC-VAE","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"image-reconstruction","task_name":"Image Reconstruction"},{"task_slug":"image-segmentation","task_name":"Image Segmentation"},{"task_slug":"quantization","task_name":"Quantization"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"unsupervised-image-segmentation","task_name":"Unsupervised Image Segmentation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2303.16666","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.16666"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sotiraslab/SC-VAE","reach":null}],"summary":{"ran_honours":3,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":5,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"f802d99ce7c58262","entry":"calculate_sparsity","repo":"sotiraslab/SC-VAE","repo_kind":"official","path":"main-stage1.py","file_url":"https://github.com/sotiraslab/SC-VAE/blob/HEAD/main-stage1.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f802d99ce7c58262"}},{"code_sha256_prefix":"03096ba91ca7fc69","entry":"init_dct","repo":"sotiraslab/SC-VAE","repo_kind":"official","path":"scvae/models/scvae.py","file_url":"https://github.com/sotiraslab/SC-VAE/blob/HEAD/scvae/models/scvae.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"03096ba91ca7fc69"}},{"code_sha256_prefix":"c67125bd3ffaa0ba","entry":"look_sparsity","repo":"sotiraslab/SC-VAE","repo_kind":"official","path":"main-stage1.py","file_url":"https://github.com/sotiraslab/SC-VAE/blob/HEAD/main-stage1.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c67125bd3ffaa0ba"}},{"code_sha256_prefix":"57a8f539b21d569d","entry":"order_F_to_C","repo":"sotiraslab/SC-VAE","repo_kind":"official","path":"scvae/models/scvae.py","file_url":"https://github.com/sotiraslab/SC-VAE/blob/HEAD/scvae/models/scvae.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"57a8f539b21d569d"}},{"code_sha256_prefix":"a930689e63b14eca","entry":"test","repo":"sotiraslab/SC-VAE","repo_kind":"official","path":"main-stage1.py","file_url":"https://github.com/sotiraslab/SC-VAE/blob/HEAD/main-stage1.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a930689e63b14eca"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}