隨機計算(1)——新的開始
Review of Stochastic Computing
導師上週給我發了一系列的論文,這也算是正式開始我PhD科研生涯開始的標誌。我導師研究的是隨機計算和近似計算,由於我本科期間是通訊專業的,所以先讓我研究隨機計算,更多用到模擬訊號的知識,方便入門些。下面進入正題:
Introduction
現在流行的計算硬體發展受限於一些現實的應用條件:小尺寸,低功耗,高可靠性。同時,它還存在一些物理現象:工業製造過程中的變化和軟錯誤。這些物理現象都易於產生錯誤,不過它們可以通過概率論中的理論來進行描述。因此,接下來描述的隨機計算 也引起了人們的研究興趣。
隨機計算最重要的特徵:SC的一個基本特徵是數字由可以由非常簡單的電路處理的位元流表示,而數字本身被解釋為概率,即這串位元流中每一個位元為1的概率,而利用伯努利大數定律,概率可以用頻率來估計,即每一位位元為1的概率可以用這串位元流中的1的個數在位元流中的佔比來表示。
(1,0,0,0):0.25()
(0,1,0,0):0.25()
特徵1
SC(之後下文中都用SC代替Stochastic Computing)從上世紀60年代剛引入開始,它的第一個吸引點是可以使用基礎的邏輯閘搭建一個成本低的具有算術功能的電路。例如:乘法 在SC中可以通過一個與門 來實現
Figure 1
與門實現的功能可以用概率描述為:
用SN(Stochastic Number)描述為:
但是這樣的運算若要求準確是需要條件的,例如下面:
Figure 2
可以注意到在這個算術電路中,運算結果是不正確的。這裡提前說一下,若要AND門利用SC理論準確表示乘法運算,需要兩個輸入位元流X,Y是不相關的或者獨立的。
特徵2
SC的另外一個吸引人的特徵是容錯能力,尤其是因為由過程變化或宇宙輻射引起的瞬態或軟錯誤。例如:
在Figure 1 中如果輸出位元流中有一個位元位狀態翻轉,那個它的值只會從 變成 或. 但是如果是在傳統的二進位制表示形式中,一個位元位的變化會引起很大的變化。
問題1
SC同樣也存在一些問題影響它實際的應用。SC計算精度的增長會導致位元流長度的指數速度增長。例如,若要求計算精度從4變成8,位元流長度需要從 變成,從而也導致計算時間呈指數增長,使得處理時間變長。
問題2
它的準確性較低,畢竟都是概率性的。
問題3
複雜的設計需求。在後面將提到SC電路設計包括Reconfigurable Design, Fixed Design, Combinational Logic Design and Sequential Logic Design。
Basic Concepts
Scaled Add
由於SN(Stochastic Number)實際是用來表示概率的,所以它的範圍是在[0,1]。也因此兩個數的加法運算不方便,因為和的範圍在[0,2]內。SC採用了特殊的Scaled add操作來解決這個問題。如下:
Figure 3
Convert binary numbers to stochastic numbers and vice versa
Figure 4. Number conversion circuits: (a)binary-to-stochastic; (b)stochastic-to-binary
Figure 4(a) 展示了一個廣泛運用的二進位制數-隨機數之間轉換的轉換電路,被稱為SNG(Stochastic Number Generator)。這個電路包含二個主要部分:(偽)隨機數產生器,比較器。
若隨機產生器產生位的二進位制數,那麼一個週期內每一個產生的數的概率是。而比較器的作用是當隨機數小於x時,輸出1。那麼輸出1的概率就是,表現在輸出序列上就是一個長為的位元流序列,1所佔的比例是。
Figure 4(b)是一個隨機數-二進位制數的轉換電路。原理是SN作為Counter(計數器)的使能訊號,一串位元流序列中有多少個1那麼計數器就在一個計數週期內計數多少次,從而轉變成二進位制數。
Different SN Formats
IBP在後面的Fixed Circuit設計中起到重要的作用。部分Gate的運算在不同的域不一樣:XOR(IBP: Multiplication), XNOR(BP: Multiplication)。特例是:MUX(UP, BP, IBP: Add)。
Accuracy Problem
Figure 4 Stochastic circuit realizing the arithmetic function
在圖四中已經選擇了適當的SN來避免不準確的問題。實際上,即使我們選擇高質量的隨機數來產生SN,例如:
可以得到:
原因:
1、由於隨機數的固有的抖動
例如在這個例子中可以準確獲得6個“1”的概率是:
分析一下這個“抖動”的過程:
設表示成為N位元流真實所表示的概率值; 表示期望達到的概率值。那麼均方差為:
所以SN所表示的概率值收斂到的速度為,即SN的精度隨著位元流長度的增長而提升也就是說隨著時間而改善精度。這個性質被稱作:漸進精度。
拓展這個性質,又引入了一個新性質:一致精度。即一串長度為的位元流,如果這串位元流構成的所有SN:全部相等且等於,因為SN的精度和準確度是隨著位元流長度增長而增長的,那麼這串位元流可以看作是表示這個概率值的最有意義的初始位元流。
2、由於輸入序列之間具有相關性
為了解決這個問題,前人定義兩串位元流不相關或者獨立的定義: