{"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/classification-of-periodic-variable-stars","title":"Classification of Periodic Variable Stars with Novel Cyclic-Permutation Invariant Neural Networks","arxiv_id":"2011.01243","date":"2020-11-02","proceeding":null,"authors":["Keming Zhang","Joshua S. Bloom"],"abstract":"Neural networks (NNs) have been shown to be competitive against state-of-the-art feature engineering and random forest (RF) classification of periodic variable stars. Although previous work utilising NNs has made use of periodicity by period folding multiple-cycle time-series into a single cycle -- from time-space to phase-space -- no approach to date has taken advantage of the fact that network predictions should be invariant to the initial phase of the period-folded sequence. Initial phase is exogenous to the physical origin of the variability and should thus be factored out. Here, we present cyclic-permutation invariant networks, a novel class of NNs for which invariance to phase shifts is guaranteed through polar coordinate convolutions, which we implement by means of \"Symmetry Padding.\" Across three different datasets of variable star light curves, we show that two implementations of the cyclic-permutation invariant network: the iTCN and the iResNet, consistently outperform non-invariant baselines and reduce overall error rates by between 4% to 22%. Over a 10-class OGLE-III sample, the iTCN/iResNet achieves an average per-class accuracy of 93.4%/93.3%, compared to RNN/RF accuracies of 70.5%/89.5% in a recent study using the same data. Finding improvement on a non-astronomy benchmark, we suggest that the methodology introduced here should also be applicable to a wide range of science domains where periodic data abounds due to physical symmetries.","url_abs":"https://arxiv.org/abs/2011.01243v2","url_pdf":"https://arxiv.org/pdf/2011.01243v2.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":"classification-of-periodic-variable-stars","repo_url":"https://github.com/kmzzhang/periodicnetwork","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"astronomy","task_name":"Astronomy"},{"task_slug":"feature-engineering","task_name":"Feature Engineering"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"time-series","task_name":"Time Series Analysis"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2011.01243","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2011.01243"}},"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/kmzzhang/periodicnetwork","reach":null}],"summary":{"ran":4,"ran_draft_wrong":3},"by_repo_kind":{"official":{"samples":4,"ran":4,"repositories":1},"community":{"samples":3,"ran":3,"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":4,"samples":[{"code_sha256_prefix":"fa53c9fd22a3e325","entry":"Classifier","repo":"kmzzhang/periodicnetwork","repo_kind":"official","path":"model/itcn.py","file_url":"https://github.com/kmzzhang/periodicnetwork/blob/HEAD/model/itcn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fa53c9fd22a3e325"}},{"code_sha256_prefix":"4837e320f3b94b42","entry":"CyclicTemporalConvNet","repo":"kmzzhang/periodicnetwork","repo_kind":"official","path":"model/itcn.py","file_url":"https://github.com/kmzzhang/periodicnetwork/blob/HEAD/model/itcn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4837e320f3b94b42"}},{"code_sha256_prefix":"c93ca2fda4e61bb7","entry":"SymmetryPadding","repo":"kmzzhang/periodicnetwork","repo_kind":"official","path":"model/itcn.py","file_url":"https://github.com/kmzzhang/periodicnetwork/blob/HEAD/model/itcn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c93ca2fda4e61bb7"}},{"code_sha256_prefix":"77706e8ce2c1fe18","entry":"TemporalBlock","repo":"kmzzhang/periodicnetwork","repo_kind":"official","path":"model/itcn.py","file_url":"https://github.com/kmzzhang/periodicnetwork/blob/HEAD/model/itcn.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"77706e8ce2c1fe18"}},{"code_sha256_prefix":"6a49dcd69371259b","entry":"apply_module_reverse","repo":"jarrelscy/iResnet","repo_kind":"community","path":"InvertibleResnet.py","file_url":"https://github.com/jarrelscy/iResnet/blob/HEAD/InvertibleResnet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6a49dcd69371259b"}},{"code_sha256_prefix":"63022952ae19c9ea","entry":"run_module_with_logdet","repo":"jarrelscy/iResnet","repo_kind":"community","path":"InvertibleResnet.py","file_url":"https://github.com/jarrelscy/iResnet/blob/HEAD/InvertibleResnet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"63022952ae19c9ea"}},{"code_sha256_prefix":"4fa05a183b0730d0","entry":"vjp","repo":"jarrelscy/iResnet","repo_kind":"community","path":"InvertibleResnet.py","file_url":"https://github.com/jarrelscy/iResnet/blob/HEAD/InvertibleResnet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4fa05a183b0730d0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}