鍵.png)
使用這些基本 REST API 最佳實踐構(gòu)建出色的 API
函數(shù)的輸出可以寫為:
我們令網(wǎng)絡(luò)的的所有參數(shù)服從高斯分布:
第 j個隱藏單元的輸出的方差為:
定義:高斯過程是是一組變量的集合,這組變量的任意子集都服從多元高斯分布。[2]
其實,與其說高斯過程描述了這幾個變量,不如說它描述的是一個函數(shù)的分布:
對于任意數(shù)量的輸入,其對應(yīng)的函數(shù)輸出的聯(lián)合概率分布都是多元高斯分布。
[1] 中的作者做了以下的實驗來為驗證這種高斯分布:
可以看到,隨著 H逐漸變大,兩個輸出呈現(xiàn)出二元高斯分布(并且有明顯的相關(guān)性)。
現(xiàn)在我們來直覺上理解一下這個結(jié)論的作用。
我們已經(jīng)知道單隱層神經(jīng)網(wǎng)絡(luò)的每一維輸出可以看作是一個高斯過程(GP),其實這個結(jié)論可以推廣到多隱層全連接神經(jīng)網(wǎng)絡(luò) [3]。
可以看到整個遞歸式中唯一非線性的部分就是激活函數(shù)? 。這使得我們不能得到一個完全的解析式。幸運的是對于一些特定的激活函數(shù),是可以有等價的解析式表達的。比如對于常用的 ReLU 函數(shù),遞歸式就可以表示為如下的解析形式:
在講 NNGP 的預(yù)測方法前,我們需要先鋪墊一個基礎(chǔ)知識:多元高斯分布的條件概率分布。
其中:
現(xiàn)在我們就知道如何用 NNGP 做預(yù)測了:
記得我們前兩節(jié)的結(jié)論是:對于全連接層神經(jīng)網(wǎng)絡(luò),當(dāng)網(wǎng)絡(luò)參數(shù)服從高斯分布,且隱層寬度足夠大時,其每一維度的輸出都是一個高斯過程。
和常規(guī) learning 問題一樣,我們的數(shù)據(jù)集有兩部分:訓(xùn)練集和測試集。
我們將它們記為向量的形式:
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)與神經(jīng)網(wǎng)絡(luò)高斯過程(NNGP)最大的區(qū)別在于,后者沒有顯式的訓(xùn)練的過程(即通過 BP 調(diào)整參數(shù)),而是只借助了神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)信息(包括網(wǎng)絡(luò)參數(shù)的分布,激活函數(shù))來生成一個 kernel,即協(xié)方差矩陣。
我們甚至都不需要真的生成一個神經(jīng)網(wǎng)絡(luò)就可以得到 kernel:
假設(shè)我們用到是 ReLU 激活函數(shù),那么從:
開始,到遞歸式:
都不需要涉及神經(jīng)網(wǎng)絡(luò)的具體參數(shù)。
除此之外,還可以直接指定一個 empirical 的協(xié)方差矩陣,比如平方指數(shù)(squared exponential)誤差:
[1] Neal R M. Bayesian learning for neural networks[M]. Springer Science & Business Media, 2012.
[2] Williams C K I, Rasmussen C E. Gaussian processes for machine learning[M]. Cambridge, MA: MIT press, 2006.
[3] Lee J, Bahri Y, Novak R, et al. Deep neural networks as gaussian processes[J]. arXiv preprint arXiv:1711.00165, 2017.
[4] Roman Garnett. BAYESIAN OPTIMIZATION.
文章轉(zhuǎn)自微信公眾號@算法進階