{"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/skip-ganomaly-skip-connected-and","title":"Skip-GANomaly: Skip Connected and Adversarially Trained Encoder-Decoder Anomaly Detection","arxiv_id":"1901.08954","date":"2019-01-25","proceeding":null,"authors":["Samet Akçay","Amir Atapour-Abarghouei","Toby P. Breckon"],"abstract":"Despite inherent ill-definition, anomaly detection is a research endeavor of\ngreat interest within machine learning and visual scene understanding alike.\nMost commonly, anomaly detection is considered as the detection of outliers\nwithin a given data distribution based on some measure of normality. The most\nsignificant challenge in real-world anomaly detection problems is that\navailable data is highly imbalanced towards normality (i.e. non-anomalous) and\ncontains a most a subset of all possible anomalous samples - hence limiting the\nuse of well-established supervised learning methods. By contrast, we introduce\nan unsupervised anomaly detection model, trained only on the normal\n(non-anomalous, plentiful) samples in order to learn the normality distribution\nof the domain and hence detect abnormality based on deviation from this model.\nOur proposed approach employs an encoder-decoder convolutional neural network\nwith skip connections to thoroughly capture the multi-scale distribution of the\nnormal data distribution in high-dimensional image space. Furthermore,\nutilizing an adversarial training scheme for this chosen architecture provides\nsuperior reconstruction both within high-dimensional image space and a\nlower-dimensional latent vector space encoding. Minimizing the reconstruction\nerror metric within both the image and hidden vector spaces during training\naids the model to learn the distribution of normality as required. Higher\nreconstruction metrics during subsequent test and deployment are thus\nindicative of a deviation from this normal distribution, hence indicative of an\nanomaly. Experimentation over established anomaly detection benchmarks and\nchallenging real-world datasets, within the context of X-ray security\nscreening, shows the unique promise of such a proposed approach.","url_abs":"http://arxiv.org/abs/1901.08954v1","url_pdf":"http://arxiv.org/pdf/1901.08954v1.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":"skip-ganomaly-skip-connected-and","repo_url":"https://github.com/YeongHyeon/Skip-GANomaly","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"skip-ganomaly-skip-connected-and","repo_url":"https://github.com/samet-akcay/skip-ganomaly","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"scene-understanding","task_name":"Scene Understanding"},{"task_slug":"unsupervised-anomaly-detection","task_name":"Unsupervised Anomaly Detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1901.08954","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1901.08954"}},"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/samet-akcay/skip-ganomaly","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/YeongHyeon/Skip-GANomaly","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"listed":{"samples":10,"ran":0,"repositories":2}},"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":"784683e6a5654175","entry":"auprc","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/evaluate.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/evaluate.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"784683e6a5654175"}},{"code_sha256_prefix":"9a083fc9c5cd9850","entry":"dat2canvas","repo":"YeongHyeon/Skip-GANomaly","repo_kind":"listed","path":"source/tf_process.py","file_url":"https://github.com/YeongHyeon/Skip-GANomaly/blob/HEAD/source/tf_process.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9a083fc9c5cd9850"}},{"code_sha256_prefix":"345038078079cc36","entry":"evaluate","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/evaluate.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/evaluate.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"345038078079cc36"}},{"code_sha256_prefix":"8da796d8d2d055b4","entry":"get_norm_layer","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/models/networks.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/models/networks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8da796d8d2d055b4"}},{"code_sha256_prefix":"bf9182e2d81230d0","entry":"get_scheduler","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/models/networks.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/models/networks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bf9182e2d81230d0"}},{"code_sha256_prefix":"aa166086c035e6eb","entry":"gray2rgb","repo":"YeongHyeon/Skip-GANomaly","repo_kind":"listed","path":"source/tf_process.py","file_url":"https://github.com/YeongHyeon/Skip-GANomaly/blob/HEAD/source/tf_process.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa166086c035e6eb"}},{"code_sha256_prefix":"26c1a0c85ed550cc","entry":"init_net","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/models/networks.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/models/networks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"26c1a0c85ed550cc"}},{"code_sha256_prefix":"8a2f4a14a4eff7ff","entry":"l1_loss","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/loss.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8a2f4a14a4eff7ff"}},{"code_sha256_prefix":"602022135f879cb7","entry":"l2_loss","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/loss.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"602022135f879cb7"}},{"code_sha256_prefix":"a2c76c01c3578d6f","entry":"roc","repo":"samet-akcay/skip-ganomaly","repo_kind":"listed","path":"lib/evaluate.py","file_url":"https://github.com/samet-akcay/skip-ganomaly/blob/HEAD/lib/evaluate.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a2c76c01c3578d6f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}