為什麼不能將權重初始值設為0

2021-10-03 10:34:50 字數 325 閱讀 5379

因為在誤差反向傳播法中,所有的權重值都會進行相同的更新。

比如,在2層神經網路中,假設第1層和第2層的權重為0。這樣一來,正向傳播時,因為輸入層的權重為0,所以第2層的神經元全部會被傳遞相同的值。第2層的神經元中全部輸入相同的值,這意味著反向傳播時第2層的權重全部都會進行相同的更新。

因此,權重被更新為相同的值,並擁有了對稱的值(重複的值)。這使得神經網路擁有許多不同的權重的意義喪失了。為了防止「權重均一化」(嚴格地講,是為了瓦解權重的對稱結構),必須隨機生成初始值

為什麼編譯器不能將foreach自動轉換為for

在編寫c 的時候,開發者會發現 使用c 的foreach迴圈的效能會比對應的for迴圈要稍微慢一些。foreach迴圈結構 for迴圈結構 我想說的第一件事是 這個效能差異,實在是太微小了,以至於可以完全忽略掉。可千萬別有這個想法 我如果把 中的所有foreach迴圈改寫為對應的for迴圈,程式的效...

a 為什麼不能作為左值

下面引用在部落格上看到的乙個易於理解的回答 首先說左值和右值的定義 變數和文字常量都有儲存區,並且有相關的型別。區別在於變數是可定址的 addressable 對於每乙個變數都有兩個值與其相聯 1 它的資料值,儲存在某個記憶體位址中。有時這個值也被稱為物件的右值 rvalue,讀做are value...

Bash 什麼時候會給 HOME 賦初始值

今天無意發現下面這個表現 env i bash c cd bash line 0 cd home not set env i bash c echo home 這表明了,bash 只會從環境變數中繼承 home 變數,從來不自己初始化它?為了證實這個想法,我去翻了下原始碼,發現其實並不是,在一種情況...