{"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/probf-learning-probabilistic-safety","title":"ProBF: Learning Probabilistic Safety Certificates with Barrier Functions","arxiv_id":"2112.12210","date":"2021-12-22","proceeding":null,"authors":["Athindran Ramesh Kumar","Sulin Liu","Jaime F. Fisac","Ryan P. Adams","Peter J. Ramadge"],"abstract":"Safety-critical applications require controllers/policies that can guarantee safety with high confidence. The control barrier function is a useful tool to guarantee safety if we have access to the ground-truth system dynamics. In practice, we have inaccurate knowledge of the system dynamics, which can lead to unsafe behaviors due to unmodeled residual dynamics. Learning the residual dynamics with deterministic machine learning models can prevent the unsafe behavior but can fail when the predictions are imperfect. In this situation, a probabilistic learning method that reasons about the uncertainty of its predictions can help provide robust safety margins. In this work, we use a Gaussian process to model the projection of the residual dynamics onto a control barrier function. We propose a novel optimization procedure to generate safe controls that can guarantee safety with high probability. The safety filter is provided with the ability to reason about the uncertainty of the predictions from the GP. We show the efficacy of this method through experiments on Segway and Quadrotor simulations. Our proposed probabilistic approach is able to reduce the number of safety violations significantly as compared to the deterministic approach with a neural network.","url_abs":"https://arxiv.org/abs/2112.12210v2","url_pdf":"https://arxiv.org/pdf/2112.12210v2.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":"probf-learning-probabilistic-safety","repo_url":"https://github.com/athindran/ProBF","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2112.12210","atlas_url":"https://app.syntology.ai/?focus=2112.12210","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.12210"}},"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":"deterministic:regex_extraction","url":"https://github.com/athindran/ProBF","reach":null}],"summary":{"ran":1,"unverified":2},"by_repo_kind":{"official":{"samples":3,"ran":1,"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":"85c5a520c5736bfe","entry":"GaussianProcessEstimator","repo":"athindran/ProBF","repo_kind":"official","path":"core/learning/value_estimator.py","file_url":"https://github.com/athindran/ProBF/blob/HEAD/core/learning/value_estimator.py","link_basis":"first_harvest_node","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":"85c5a520c5736bfe"}},{"code_sha256_prefix":"fd602d2054b0ebf6","entry":"ValueEstimator","repo":"athindran/ProBF","repo_kind":"official","path":"core/learning/value_estimator.py","file_url":"https://github.com/athindran/ProBF/blob/HEAD/core/learning/value_estimator.py","link_basis":"first_harvest_node","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":"fd602d2054b0ebf6"}},{"code_sha256_prefix":"573a89a1aabdc442","entry":"arr_map","repo":"athindran/ProBF","repo_kind":"official","path":"core/learning/value_estimator.py","file_url":"https://github.com/athindran/ProBF/blob/HEAD/core/learning/value_estimator.py","link_basis":"first_harvest_node","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":"573a89a1aabdc442"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}