{"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/few-shot-unsupervised-continual-learning","title":"Few-Shot Unsupervised Continual Learning through Meta-Examples","arxiv_id":"2009.08107","date":"2020-09-17","proceeding":null,"authors":["Alessia Bertugli","Stefano Vincenzi","Simone Calderara","Andrea Passerini"],"abstract":"In real-world applications, data do not reflect the ones commonly used for neural networks training, since they are usually few, unlabeled and can be available as a stream. Hence many existing deep learning solutions suffer from a limited range of applications, in particular in the case of online streaming data that evolve over time. To narrow this gap, in this work we introduce a novel and complex setting involving unsupervised meta-continual learning with unbalanced tasks. These tasks are built through a clustering procedure applied to a fitted embedding space. We exploit a meta-learning scheme that simultaneously alleviates catastrophic forgetting and favors the generalization to new tasks. Moreover, to encourage feature reuse during the meta-optimization, we exploit a single inner loop taking advantage of an aggregated representation achieved through the use of a self-attention mechanism. Experimental results on few-shot learning benchmarks show competitive performance even compared to the supervised case. Additionally, we empirically observe that in an unsupervised scenario, the small tasks and the variability in the clusters pooling play a crucial role in the generalization capability of the network. Further, on complex datasets, the exploitation of more clusters than the true number of classes leads to higher results, even compared to the ones obtained with full supervision, suggesting that a predefined partitioning into classes can miss relevant structural information.","url_abs":"https://arxiv.org/abs/2009.08107v3","url_pdf":"https://arxiv.org/pdf/2009.08107v3.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":"few-shot-unsupervised-continual-learning","repo_url":"https://github.com/alessiabertugli/FUSION","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"continual-learning","task_name":"Continual Learning"},{"task_slug":"few-shot-learning","task_name":"Few-Shot Learning"},{"task_slug":"meta-learning","task_name":"Meta-Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2009.08107","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2009.08107"}},"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":"deterministic:regex_extraction","url":"https://github.com/alessiabertugli/FUSION-ME","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/alessiabertugli/FUSION","reach":null}],"summary":{"ran":1,"ran_fixture":1,"unverified":6},"by_repo_kind":{"official":{"samples":4,"ran":2,"repositories":1},"found_in_text":{"samples":4,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"ba43569331dc53d8","entry":"ReservoirSampler","repo":"alessiabertugli/FUSION","repo_kind":"official","path":"model/meta_learner.py","file_url":"https://github.com/alessiabertugli/FUSION/blob/HEAD/model/meta_learner.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ba43569331dc53d8"}},{"code_sha256_prefix":"9573e1d8cdd1e4b8","entry":"find_index","repo":"alessiabertugli/FUSION","repo_kind":"official","path":"model/meta_learner.py","file_url":"https://github.com/alessiabertugli/FUSION/blob/HEAD/model/meta_learner.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9573e1d8cdd1e4b8"}},{"code_sha256_prefix":"93eab00ecefb419a","entry":"Learner","repo":"alessiabertugli/FUSION","repo_kind":"official","path":"model/meta_learner.py","file_url":"https://github.com/alessiabertugli/FUSION/blob/HEAD/model/meta_learner.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"93eab00ecefb419a"}},{"code_sha256_prefix":"dcdffd1e41cc9162","entry":"MetaLearnerClassification","repo":"alessiabertugli/FUSION","repo_kind":"official","path":"model/meta_learner.py","file_url":"https://github.com/alessiabertugli/FUSION/blob/HEAD/model/meta_learner.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dcdffd1e41cc9162"}},{"code_sha256_prefix":"9efa468ab93d1d7a","entry":"batch_norm","repo":"alessiabertugli/FUSION-ME","repo_kind":"found_in_text","path":"model/layers.py","file_url":"https://github.com/alessiabertugli/FUSION-ME/blob/HEAD/model/layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9efa468ab93d1d7a"}},{"code_sha256_prefix":"ad6ffadd1eb45101","entry":"conv2d","repo":"alessiabertugli/FUSION-ME","repo_kind":"found_in_text","path":"model/layers.py","file_url":"https://github.com/alessiabertugli/FUSION-ME/blob/HEAD/model/layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ad6ffadd1eb45101"}},{"code_sha256_prefix":"433119ef21014064","entry":"get_model","repo":"alessiabertugli/FUSION-ME","repo_kind":"found_in_text","path":"model/modelfactory.py","file_url":"https://github.com/alessiabertugli/FUSION-ME/blob/HEAD/model/modelfactory.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"433119ef21014064"}},{"code_sha256_prefix":"b0e5044d51d9190f","entry":"linear","repo":"alessiabertugli/FUSION-ME","repo_kind":"found_in_text","path":"model/layers.py","file_url":"https://github.com/alessiabertugli/FUSION-ME/blob/HEAD/model/layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b0e5044d51d9190f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}