2013-04-24 33 views
1

我有一個確定性的神經網絡,我想使它隨機。給定概率與numpy隨機位數組

兩個問題:

  1. 我不知道這是否意味着我需要使用乙狀結腸的結果來確定的概率輸出,或者如果概率僅僅是神經元的輸入,並一個S形函數現在是多餘的。
  2. 如何用numpy有效地做到這一點?我知道如何生成隨機比特,但是如何以大數組內的給定概率來做到這一點? (我現在的雙曲線函數是雙曲正切,如果它的事項)

回答

0
  1. 仍然需要的雙曲線函數,如反向傳播的作品上計算雙曲線函數的導數,而不是是否神經元發射。
  2. 如前計算的活化後,我現在運行結果數組x通過此:

    return numpy.random.ranf(x.shape) < x

    我給該定時是3.03323280772e-05

    還要注意的是numpy的對待布爾值,就好像它們是1和0,所以不需要將結果傳回到int/float)。因爲現在是0和1,所以我不得不改變我的代碼 - 在我使用-1和1作爲目標值和輸入之前。

+1

或'回報(numpy.random.ranf(x.shape)> X)* 2 - 1' – askewchan 2013-04-24 16:40:01

+0

@askewchan我認爲這是<替代>。原來的錯誤是我的:) – Uri 2013-04-24 17:53:14

+0

是的,假設'x'是歸一化爲'1'的概率數組。我的觀點只是簡單地將布爾值更改爲「{-1,1}」 – askewchan 2013-04-24 19:59:26