{"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/improving-the-gaussian-mechanism-for","title":"Improving the Gaussian Mechanism for Differential Privacy: Analytical Calibration and Optimal Denoising","arxiv_id":"1805.06530","date":"2018-05-16","proceeding":"ICML 2018 7","authors":["Borja Balle","Yu-Xiang Wang"],"abstract":"The Gaussian mechanism is an essential building block used in multitude of\ndifferentially private data analysis algorithms. In this paper we revisit the\nGaussian mechanism and show that the original analysis has several important\nlimitations. Our analysis reveals that the variance formula for the original\nmechanism is far from tight in the high privacy regime ($\\varepsilon \\to 0$)\nand it cannot be extended to the low privacy regime ($\\varepsilon \\to \\infty$).\nWe address these limitations by developing an optimal Gaussian mechanism whose\nvariance is calibrated directly using the Gaussian cumulative density function\ninstead of a tail bound approximation. We also propose to equip the Gaussian\nmechanism with a post-processing step based on adaptive estimation techniques\nby leveraging that the distribution of the perturbation is known. Our\nexperiments show that analytical calibration removes at least a third of the\nvariance of the noise compared to the classical Gaussian mechanism, and that\ndenoising dramatically improves the accuracy of the Gaussian mechanism in the\nhigh-dimensional regime.","url_abs":"http://arxiv.org/abs/1805.06530v2","url_pdf":"http://arxiv.org/pdf/1805.06530v2.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":"improving-the-gaussian-mechanism-for","repo_url":"https://github.com/BorjaBalle/analytic-gaussian-mechanism","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1805.06530","atlas_url":"https://app.syntology.ai/?focus=1805.06530","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1805.06530"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/BorjaBalle/analytic-gaussian-mechanism","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":1},"by_repo_kind":{"official":{"samples":1,"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":"abefc28046790da0","entry":"calibrateAnalyticGaussianMechanism","repo":"BorjaBalle/analytic-gaussian-mechanism","repo_kind":"official","path":"agm-example.py","file_url":"https://github.com/BorjaBalle/analytic-gaussian-mechanism/blob/HEAD/agm-example.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":"abefc28046790da0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}