{"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/data-models-for-dataset-drift-controls-in","title":"Data Models for Dataset Drift Controls in Machine Learning With Optical Images","arxiv_id":"2211.02578","date":"2022-11-04","proceeding":null,"authors":["Luis Oala","Marco Aversa","Gabriel Nobis","Kurt Willis","Yoan Neuenschwander","Michèle Buck","Christian Matek","Jerome Extermann","Enrico Pomarico","Wojciech Samek","Roderick Murray-Smith","Christoph Clausen","Bruno Sanguinetti"],"abstract":"Camera images are ubiquitous in machine learning research. They also play a central role in the delivery of important services spanning medicine and environmental surveying. However, the application of machine learning models in these domains has been limited because of robustness concerns. A primary failure mode are performance drops due to differences between the training and deployment data. While there are methods to prospectively validate the robustness of machine learning models to such dataset drifts, existing approaches do not account for explicit models of the primary object of interest: the data. This limits our ability to study and understand the relationship between data generation and downstream machine learning model performance in a physically accurate manner. In this study, we demonstrate how to overcome this limitation by pairing traditional machine learning with physical optics to obtain explicit and differentiable data models. We demonstrate how such data models can be constructed for image data and used to control downstream machine learning model performance related to dataset drift. The findings are distilled into three applications. First, drift synthesis enables the controlled generation of physically faithful drift test cases to power model selection and targeted generalization. Second, the gradient connection between machine learning task model and data model allows advanced, precise tolerancing of task model sensitivity to changes in the data generation. These drift forensics can be used to precisely specify the acceptable data environments in which a task model may be run. Third, drift optimization opens up the possibility to create drifts that can help the task model learn better faster, effectively optimizing the data generating process itself. A guide to access the open code and datasets is available at https://github.com/aiaudit-org/raw2logit.","url_abs":"https://arxiv.org/abs/2211.02578v3","url_pdf":"https://arxiv.org/pdf/2211.02578v3.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":"data-models-for-dataset-drift-controls-in","repo_url":"https://github.com/aiaudit-org/raw2logit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"model-selection","task_name":"Model Selection"}],"methods":[{"method_slug":"speed","method_name":"SPEED"},{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[{"slug":"raw-microscopy-and-raw-drone","name":"Raw-Microscopy and Raw-Drone","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2211.02578","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2211.02578"}},"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/aiaudit-org/raw2logit","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_honours":2,"ran":1,"unverified":14},"by_repo_kind":{"official":{"samples":18,"ran":4,"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":"466ca3cdf4524d82","entry":"clipped_zoom","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/hendrycks_robustness.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/hendrycks_robustness.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"466ca3cdf4524d82"}},{"code_sha256_prefix":"6154e3744ece5728","entry":"create_window","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/ssim.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/ssim.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6154e3744ece5728"}},{"code_sha256_prefix":"bc8b7f1d3348c560","entry":"disk","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/hendrycks_robustness.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/hendrycks_robustness.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc8b7f1d3348c560"}},{"code_sha256_prefix":"c56b7ef16f309a45","entry":"gaussian","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/ssim.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/ssim.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c56b7ef16f309a45"}},{"code_sha256_prefix":"8c45fb3e0cb23785","entry":"get_augmentation","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/augmentation.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/augmentation.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":"8c45fb3e0cb23785"}},{"code_sha256_prefix":"1b7982e1820dcf5c","entry":"get_camera_parameters","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"processing/pipeline_numpy.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/processing/pipeline_numpy.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":"1b7982e1820dcf5c"}},{"code_sha256_prefix":"9c5e093b8d866226","entry":"k_fold","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/dataset_utils.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/dataset_utils.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":"9c5e093b8d866226"}},{"code_sha256_prefix":"3c50560fdbf5c682","entry":"list_images_in_dir","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/dataset_utils.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/dataset_utils.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":"3c50560fdbf5c682"}},{"code_sha256_prefix":"559c59239df0058f","entry":"np2torch","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/base.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/base.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":"559c59239df0058f"}},{"code_sha256_prefix":"cb4092b5e3cb3af3","entry":"plasma_fractal","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/hendrycks_robustness.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/hendrycks_robustness.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":"cb4092b5e3cb3af3"}},{"code_sha256_prefix":"c5742d0c1047c423","entry":"raw2rgb","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"processing/pipeline_torch.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/processing/pipeline_torch.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":"c5742d0c1047c423"}},{"code_sha256_prefix":"95281f5c74968285","entry":"read_label_csv","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/dataset.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":"95281f5c74968285"}},{"code_sha256_prefix":"045190de81281aa8","entry":"read_label_file","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/dataset.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":"045190de81281aa8"}},{"code_sha256_prefix":"fe707df7a8e80910","entry":"remove_blacklv","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"processing/pipeline_numpy.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/processing/pipeline_numpy.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":"fe707df7a8e80910"}},{"code_sha256_prefix":"c3c598b1b4b67b24","entry":"resnet_model","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"model.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/model.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":"c3c598b1b4b67b24"}},{"code_sha256_prefix":"9151c793f90473f0","entry":"ssim","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/ssim.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/ssim.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":"9151c793f90473f0"}},{"code_sha256_prefix":"d19549ae909a3ef9","entry":"str2bool","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/base.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/base.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":"d19549ae909a3ef9"}},{"code_sha256_prefix":"247a4dfe7a43e089","entry":"torch2np","repo":"aiaudit-org/raw2logit","repo_kind":"official","path":"utils/base.py","file_url":"https://github.com/aiaudit-org/raw2logit/blob/HEAD/utils/base.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":"247a4dfe7a43e089"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}