{"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/a-variational-approximate-posterior-for-the","title":"A variational approximate posterior for the deep Wishart process","arxiv_id":"2107.10125","date":"2021-07-21","proceeding":"NeurIPS 2021 12","authors":["Sebastian W. Ober","Laurence Aitchison"],"abstract":"Recent work introduced deep kernel processes as an entirely kernel-based alternative to NNs (Aitchison et al. 2020). Deep kernel processes flexibly learn good top-layer representations by alternately sampling the kernel from a distribution over positive semi-definite matrices and performing nonlinear transformations. A particular deep kernel process, the deep Wishart process (DWP), is of particular interest because its prior can be made equivalent to deep Gaussian process (DGP) priors for kernels that can be expressed entirely in terms of Gram matrices. However, inference in DWPs has not yet been possible due to the lack of sufficiently flexible distributions over positive semi-definite matrices. Here, we give a novel approach to obtaining flexible distributions over positive semi-definite matrices by generalising the Bartlett decomposition of the Wishart probability density. We use this new distribution to develop an approximate posterior for the DWP that includes dependency across layers. We develop a doubly-stochastic inducing-point inference scheme for the DWP and show experimentally that inference in the DWP can improve performance over doing inference in a DGP with the equivalent prior.","url_abs":"https://arxiv.org/abs/2107.10125v2","url_pdf":"https://arxiv.org/pdf/2107.10125v2.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":"a-variational-approximate-posterior-for-the","repo_url":"https://github.com/LaurenceA/bayesfunc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2107.10125","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2107.10125"}},"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/yaringal/DropoutUncertaintyExps","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/LaurenceA/bayesfunc","reach":null}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":10,"ran":7,"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":10,"samples":[{"code_sha256_prefix":"1156ea27c8da73ef","entry":"FullMatrix","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1156ea27c8da73ef"}},{"code_sha256_prefix":"9119db5b17bbc0d6","entry":"Inv","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9119db5b17bbc0d6"}},{"code_sha256_prefix":"eaefc3707823ac39","entry":"LowerTriangularMatrix","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eaefc3707823ac39"}},{"code_sha256_prefix":"243f2a9c8dc17959","entry":"PositiveDefiniteMatrix","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"243f2a9c8dc17959"}},{"code_sha256_prefix":"ecdba350a2ed9979","entry":"TriangularMatrix","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ecdba350a2ed9979"}},{"code_sha256_prefix":"f56176247dc46afa","entry":"UpperTriangularMatrix","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f56176247dc46afa"}},{"code_sha256_prefix":"8d27b179f6ed2e3c","entry":"bartlett","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8d27b179f6ed2e3c"}},{"code_sha256_prefix":"3e501579e19388d6","entry":"InverseWishart","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3e501579e19388d6"}},{"code_sha256_prefix":"c12bab570c42451d","entry":"Product","repo":"LaurenceA/bayesfunc","repo_kind":"official","path":"bayesfunc/dkp.py","file_url":"https://github.com/LaurenceA/bayesfunc/blob/HEAD/bayesfunc/dkp.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c12bab570c42451d"}},{"code_sha256_prefix":"df54e4f9197c9be1","entry":"bartlett","repo":"laurencea/bayesfunc","repo_kind":"official","path":"bayesfunc/wishart_dist.py","file_url":"https://github.com/laurencea/bayesfunc/blob/HEAD/bayesfunc/wishart_dist.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"df54e4f9197c9be1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}