日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深度贝叶斯神经网络(Deep Bayesian Neural Networks)实现方法

發布時間:2023/12/31 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度贝叶斯神经网络(Deep Bayesian Neural Networks)实现方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深度貝葉斯神經網絡(Deep Bayesian Neural Networks)實現方法

本文內容摘自: https://stefano-cosentino.medium.com/deep-bayesian-neural-networks-952763a9537

1. 目的是什么?

任何深度網絡都有參數,通常以權重 (w1,w2,...)(w_1, w_2, ...)(w1?,w2?,...) 和偏差 (b1,b2,...)(b_1, b_2, ...)(b1?,b2?,...)的形式存在。傳統的方法(非貝葉斯)是通過最大似然估計(maximum likelihood estimation)僅學習這些參數的最優值。這些值都是標量(scalars),如 w1=0.8w_1=0.8w1?=0.8b1=3.1b_1=3.1b1?=3.1

而,貝葉斯方法對每個參數相關的分布(distributions)感興趣。例如,在訓練貝葉斯網絡收斂后,上述的兩個參數可能可以由以下兩條高斯曲線(Gaussian curves)描述。


(訓練傳統網絡和貝葉斯網絡收斂后獲得的兩個參數(w1w_1w1?b1b_1b1?)的表示。)

擁有一個分布而不是單一的值有很多好處。首先,可以從分布中多次取樣,查看對模型預測的影響。例如,經過多次取樣,模型給出一致的預測,那么我們可以說網絡對其做出的預測是自信的(confident)。

2. 難點是什么?

估計這些參數的分布是不容易的。這通常稱為后驗密度(posterior densities),并使用貝葉斯公式進行估計。可以表示為:

p(w∣x,y)=p(x,y∣w)p(w)p(x,y)=p(x,y∣w)p(w)∫p(x,y∣w)p(w)dwp(w|x,y) = \frac{p(x,y|w)p(w)}{p(x,y)} =\frac{p(x,y|w)p(w)}{\int p(x,y|w)p(w)dw} p(wx,y)=p(x,y)p(x,yw)p(w)?=p(x,yw)p(w)dwp(x,yw)p(w)?

(貝葉斯公式。xxxyyy 是輸入和輸出。分母中的積分需要對模型參數 www 所有可能的值進行積分----這使計算變得非常困難。)

難點是分母----也稱為模型證據(model evidence)。它需要對所有可能的參數值(即所有權重和偏差空間)進行積分,而這在實際中是做不到的。

做為替代,可以使用以下的偽數字方法,去近似積分的解。

  • 用 MCMC 近似積分的方法
  • 使用黑盒子變分推理(使用 edward 包)
  • 使用 MC dropout

2.1 使用 MCMC 近似積分

由于計算貝葉斯公式的積分的解很難,可以通過使用 MCMC(馬爾科夫鏈蒙特卡洛) 來近似積分的解。MCMC背后的原理真的很酷,建議大家閱讀這個博客,通過代碼和示例來理解 MCMC 背后的原理。撇開數學,這種方法是三個方法中最慢和最不吸引人的。

  • 優點:理論上,MCMC最終可以獲得最優的結果,其近似值接近于后驗。
  • 缺點:在實踐中,它需要很長的時間來收斂,如果它曾經能收斂的話。

2.2 使用變分推理

變分推理(variational inference)是一種估計密度函數的方法,通過選擇一個我們已知的分布(例如高斯),并逐步改變其參數,直到它看起來像我們想要計算的那個分布,即后驗。改變參數不再需要計算復雜的微積分,這是一個優化過程,導數通常比積分更容易計算。我們要優化的由我們自己"捏造"的分布稱為變分分布(variational distribution)。

  • 優點:它比普通的MCMC方法快,而且通過使用edwar這樣的函數包可以在幾分鐘內構建和運行貝葉斯網絡。
  • 缺點:對于非常深的貝葉斯網絡來說,它可能會變得很慢,而且性能并不保證總是最佳的。

2.3 使用 MC dropout

Monte Carlo dropout (蒙特卡洛 dropout) 是2016年提出的一個理論1,它通過使用一種稱為 droput 的正則化方法提供了貝葉斯解釋。

  • 變分推理是一種貝葉斯方法,通過使用任意的分布,即前面介紹的變分分布來估計后驗;
  • 而,dropout 則是神經網絡的一種正則化方法,在訓練期間,部分神經元被隨機打開或關閉,以防止網絡依賴于特定的神經元。

MC dropout 的關鍵思想是:dropout 可以用來進行變分推理,其中變分分布來自于伯努利分布。MC 指的是 dropout 的采樣以"Monte Carlo " 的方式進行。

伯努利分布 (Bernoulli distribution),又名 0?10-10?1 分布,是一種離散型概率分布。若伯努利試驗成功,則伯努利隨機變量取值為 111;若試驗失敗,則取值為 000

在實踐中,通過 MC dropout 可以將傳統網絡變成貝葉斯網絡(在訓練和驗證期間,通過對每一層使用 dropout);這相當于從伯努利分布中取樣和度量模型的確信度(certainty)(多次取樣預測的一致性)。也可以用 其他2 變分分布進行實驗。

  • 優點:將現有的深度網變成貝葉斯網是容易的。比其他技術要快,而且不需要推理框架。
  • 缺點:對于計算要求高的(如實時)應用來說,在測試階段的多次取樣和預測可能過于昂貴。
#mermaid-svg-6rzVn5AXBmgqA9fR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6rzVn5AXBmgqA9fR .error-icon{fill:#552222;}#mermaid-svg-6rzVn5AXBmgqA9fR .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-6rzVn5AXBmgqA9fR .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-6rzVn5AXBmgqA9fR .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-6rzVn5AXBmgqA9fR .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-6rzVn5AXBmgqA9fR .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-6rzVn5AXBmgqA9fR .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-6rzVn5AXBmgqA9fR .marker{fill:#333333;stroke:#333333;}#mermaid-svg-6rzVn5AXBmgqA9fR .marker.cross{stroke:#333333;}#mermaid-svg-6rzVn5AXBmgqA9fR svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-6rzVn5AXBmgqA9fR .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-6rzVn5AXBmgqA9fR .cluster-label text{fill:#333;}#mermaid-svg-6rzVn5AXBmgqA9fR .cluster-label span{color:#333;}#mermaid-svg-6rzVn5AXBmgqA9fR .label text,#mermaid-svg-6rzVn5AXBmgqA9fR span{fill:#333;color:#333;}#mermaid-svg-6rzVn5AXBmgqA9fR .node rect,#mermaid-svg-6rzVn5AXBmgqA9fR .node circle,#mermaid-svg-6rzVn5AXBmgqA9fR .node ellipse,#mermaid-svg-6rzVn5AXBmgqA9fR .node polygon,#mermaid-svg-6rzVn5AXBmgqA9fR .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-6rzVn5AXBmgqA9fR .node .label{text-align:center;}#mermaid-svg-6rzVn5AXBmgqA9fR .node.clickable{cursor:pointer;}#mermaid-svg-6rzVn5AXBmgqA9fR .arrowheadPath{fill:#333333;}#mermaid-svg-6rzVn5AXBmgqA9fR .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-6rzVn5AXBmgqA9fR .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-6rzVn5AXBmgqA9fR .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-6rzVn5AXBmgqA9fR .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-6rzVn5AXBmgqA9fR .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-6rzVn5AXBmgqA9fR .cluster text{fill:#333;}#mermaid-svg-6rzVn5AXBmgqA9fR .cluster span{color:#333;}#mermaid-svg-6rzVn5AXBmgqA9fR div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-6rzVn5AXBmgqA9fR :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}完
  • https://arxiv.org/abs/1506.02142 ??

  • https://arxiv.org/abs/1611.01639 ??

  • 總結

    以上是生活随笔為你收集整理的深度贝叶斯神经网络(Deep Bayesian Neural Networks)实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。