为什么在反向传播中感知器初始值不能为0_深度学习理论分享之——单层感知器简述...
圖1 單層感知器結(jié)構(gòu)圖
2單層感知器基本知識(shí)點(diǎn)讓我們對(duì)照著圖1來仔細(xì)感受一下單層感知器的基本知識(shí)點(diǎn):首先,單層感知器需要有輸入,也即圖中的x1,x2,x3等。注意,這里的輸入通常都是說的一個(gè)數(shù)據(jù)樣本X的各個(gè)特征分量,也就是我們?cè)跈C(jī)器學(xué)習(xí)中所學(xué)習(xí)過的那樣。其次,我們?cè)倏疵總€(gè)特征輸入都會(huì)對(duì)應(yīng)著一個(gè)輸入節(jié)點(diǎn),這個(gè)輸入節(jié)點(diǎn)我們稱之為輸入神經(jīng)元,而所有的輸入神經(jīng)元匯總在一排上,就構(gòu)成了輸入層神經(jīng)元,簡(jiǎn)稱輸入層。然后,連接特征輸入與每個(gè)輸入神經(jīng)元的都是一條帶方向的直線,從輸入指向輸入神經(jīng)元,我們稱這個(gè)方向?yàn)榍跋?#xff0c;其反方向稱之為后向。前向、后向是至關(guān)重要的兩個(gè)方向,這在后面的BP算法介紹中尤其重要。再次,我們看到圖1中還存在著輸出節(jié)點(diǎn),我們稱之為輸出神經(jīng)元。輸出神經(jīng)元個(gè)數(shù)不限,最簡(jiǎn)單的就是如圖1所示的一個(gè),也可能存在著多個(gè)。注意:所謂的單層感知器并非指的是輸出神經(jīng)元個(gè)數(shù)為1的感知器模型,而是說除去輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)之外,再無其他類別的神經(jīng)元,比如后面我們要提到的前饋神經(jīng)網(wǎng)絡(luò)等復(fù)雜神經(jīng)網(wǎng)絡(luò)中的各種隱藏層。因此,我們可以簡(jiǎn)單地理解為單層感知器其實(shí)就只有輸入層和輸出層,沒有隱藏層。第四,在輸入層神經(jīng)元與輸出層神經(jīng)元之間也存在著一條帶方向的連接線,所指也是從輸入層到輸出層。這也是前向。并且,在這些帶方向的連接線上都存在著一個(gè)個(gè)被冠以wi的變量,這樣的變量,我們稱之為權(quán)重。如同我們?cè)跈C(jī)器學(xué)習(xí)中學(xué)習(xí)廣義線性模型時(shí)看到的那個(gè)數(shù)學(xué)公式那樣,這里的權(quán)重就等價(jià)于那個(gè)數(shù)學(xué)公式中各個(gè)特征分量xi前的那個(gè)系數(shù)。其意義也是表征在某一層面上的某個(gè)特征的重要性。在圖1中,三個(gè)權(quán)重值均為:0.3。此外,通常的神經(jīng)網(wǎng)絡(luò)模型(包括單層感知器),其每一層神經(jīng)元都會(huì)有一個(gè)統(tǒng)一的偏置值,我們稱之為b,英文簡(jiǎn)稱為bias。這個(gè)偏置值能夠起到一定的修正作用,比如當(dāng)最終結(jié)算結(jié)果可能有些走極端時(shí),它就好比是一位好心大叔,能夠把它往回拉一點(diǎn)點(diǎn),使之不至于太“離經(jīng)叛道”。偏置值在圖1中體現(xiàn)的形式為t=0.4。第五、在輸出神經(jīng)元上,我們通常看到的是一個(gè)完整的神經(jīng)元節(jié)點(diǎn),但實(shí)際其內(nèi)部計(jì)算通常會(huì)被劃分為兩部分:第一部分:對(duì)該神經(jīng)元的各個(gè)方向來的輸入值進(jìn)行線性加權(quán)求和,即:input=w1*x1+w2*x2+w2*x2+t注意,這里的t實(shí)際就是偏置值:b第二部分:對(duì)input進(jìn)行某種函數(shù)映射,使得最終的輸出結(jié)果落在一個(gè)指定的范圍之內(nèi)。通常這個(gè)范圍都會(huì)在[-1,1]之間選擇,可能是[0,1],也可能就是[-1,1]。甚至有可能是幾個(gè)離散的取值,當(dāng)然這些取值依然會(huì)在[-1,1]之間來取。為了能夠做到這種映射結(jié)果,我們?cè)谶@個(gè)輸出神經(jīng)元上使用一種被稱之為非線性變換的函數(shù)。這樣的一種映射函數(shù)也被稱之為激活函數(shù)。在單層感知器中,比較常用到的激活函數(shù)為符號(hào)函數(shù):圖2 單層感知器激活函數(shù)
從這個(gè)激活函數(shù),我們不難看出一點(diǎn):單層感知器天然就很適合做一個(gè)分類器來使用。而且當(dāng)單層感知器的輸出神經(jīng)元個(gè)數(shù)大于1時(shí),還能承擔(dān)多分類器的重?fù)?dān)。只需要我們對(duì)所有的真實(shí)標(biāo)簽采取One-Hot編碼即可。比如我們有一個(gè)多分類問題,已知的數(shù)據(jù)類別有n種,則采用One-Hot編碼,提供一個(gè)二進(jìn)制位數(shù)為n的整數(shù),某一位取值為1,則表示當(dāng)前數(shù)據(jù)樣本被識(shí)別成是某個(gè)類別:例如,第m位被置為1,則表示當(dāng)前學(xué)習(xí)的數(shù)據(jù)的標(biāo)簽大概率是第m類。要做到這一點(diǎn),就需要在單層感知器上設(shè)計(jì)出n個(gè)輸出神經(jīng)元。在每個(gè)神經(jīng)元上都開展線性加權(quán)求和以及對(duì)求和結(jié)果開展符號(hào)函數(shù)變換,這樣每個(gè)輸出神經(jīng)元都只能輸出1或者-1。而我們把-1看成是0,即可滿足上述要求。
第六,同樣發(fā)生在輸出神經(jīng)元上的事情就是如何來衡量對(duì)每一個(gè)數(shù)據(jù)樣本的學(xué)習(xí)結(jié)果好壞。此時(shí)我們通常利用一個(gè)叫損失函數(shù)的機(jī)制來幫助我們實(shí)現(xiàn)這樣的好壞度量。
所謂損失函數(shù),是指對(duì)于每一個(gè)輸入數(shù)據(jù)的訓(xùn)練,總會(huì)產(chǎn)生一個(gè)預(yù)測(cè)值,但大多數(shù)情況下,這個(gè)預(yù)測(cè)結(jié)果并不絕對(duì)等于實(shí)際的真實(shí)結(jié)果。因此,在預(yù)測(cè)結(jié)果與真實(shí)結(jié)果之間就必然有一定的誤差,我們稱這樣的誤差為損失。利用這樣的損失所建立的函數(shù)就稱之為損失函數(shù)。
在單層感知器中,常用到的損失函數(shù)有這么幾種:
MAE:平均絕對(duì)誤差(誤差的絕對(duì)值的平均值)。意思就是說如果輸出層有L個(gè)神經(jīng)元,每個(gè)神經(jīng)元上都必然存在這一個(gè)誤差,把這些誤差取絕對(duì)值之后相加,再除以輸出層神經(jīng)元個(gè)數(shù)L,則為本次輸入數(shù)據(jù)學(xué)習(xí)之后所得到的損失值。圍繞這個(gè)損失值我們就可以建立一個(gè)相應(yīng)的損失函數(shù)。
MSE:均方誤差(誤差的平方和的平均值)。也就是說讓所有的誤差值求平方之后再匯總求和,而后對(duì)求和結(jié)果除以L得到的平均值即為本次輸入數(shù)據(jù)學(xué)習(xí)過后的損失值。
SSE:誤差平方和,它與MSE的區(qū)別在于不再需要求平均值,其余計(jì)算過程保持不變。
在后續(xù)的復(fù)雜神經(jīng)網(wǎng)絡(luò)或深度學(xué)習(xí)模型中,上面這三種損失值的計(jì)算函數(shù)也通常會(huì)被用到。不過在高級(jí)的深度學(xué)習(xí)模型中,還存在著其他不同的損失值計(jì)算函數(shù)。這一點(diǎn)我們?cè)诮榻B深度學(xué)習(xí)相關(guān)算法時(shí)也會(huì)重點(diǎn)提到。
損失函數(shù),可以說是神經(jīng)網(wǎng)絡(luò)或者深度學(xué)習(xí)算法的根所在。正是因?yàn)榇嬖谥绾味攘繉W(xué)習(xí)結(jié)果好壞的損失函數(shù),我們才能夠基于這個(gè)損失函數(shù)來推導(dǎo)出神經(jīng)網(wǎng)絡(luò)模型中的各個(gè)神經(jīng)元上的權(quán)重參數(shù)和偏置值參數(shù),并最終建立起一個(gè)高效的學(xué)習(xí)模型。
因此,損失函數(shù)是我們必須要重點(diǎn)掌握的。當(dāng)然我們?nèi)绻軌虬褤p失函數(shù)的原理搞得通透固然最好,如果不能,也可以先記住有哪些損失函數(shù)及其對(duì)應(yīng)的名稱縮寫,以便我們能夠依葫蘆畫瓢地去使用其中某個(gè)損失函數(shù)。
第七,學(xué)習(xí)率:η。當(dāng)我們計(jì)算出每一次輸入數(shù)據(jù)學(xué)習(xí)過后的損失值時(shí),我們希望利用這個(gè)損失值來反向推導(dǎo)各個(gè)神經(jīng)元上的權(quán)重參數(shù)與偏置值參數(shù)的最新值。此時(shí),我們?cè)谕茖?dǎo)過程中就會(huì)考慮學(xué)習(xí)率的存在。
學(xué)習(xí)率是指導(dǎo)我們,在梯度下降法中,如何使用損失函數(shù)的梯度調(diào)整網(wǎng)絡(luò)權(quán)重的超參數(shù)。
學(xué)習(xí)率如果過大,可能會(huì)使損失函數(shù)直接越過全局最優(yōu)點(diǎn),此時(shí)表現(xiàn)為loss過大或者為無窮大值;
學(xué)習(xí)率如果過小,損失函數(shù)的變化速度很慢,會(huì)大大增加網(wǎng)絡(luò)模型訓(xùn)練的收斂復(fù)雜度,延長(zhǎng)訓(xùn)練時(shí)間,并且很容易被困在局部最小值附近。
這是在一般意義上的一種數(shù)學(xué)解釋。通常我們認(rèn)為學(xué)習(xí)率就是一個(gè)以合理的速度來尋找最優(yōu)的權(quán)重參數(shù)值和偏置值參數(shù)值的參數(shù)而已。
這個(gè)學(xué)習(xí)率通常會(huì)被設(shè)置得比較小,比如0.1、0.01、0.001、0.0001等。
學(xué)習(xí)率是不可或缺的,至少在現(xiàn)在的深度學(xué)習(xí)算法中,還真就找不出幾個(gè)不用到學(xué)習(xí)率的地方。所以大家也需要對(duì)此有一個(gè)正確的認(rèn)識(shí)。在每一次的DL訓(xùn)練時(shí)都要顯示地指明學(xué)習(xí)率是多少。
PS:在后續(xù)的神經(jīng)網(wǎng)絡(luò)發(fā)展歷程中,大拿們又對(duì)單層感知器的激活函數(shù)做了擴(kuò)充處理。其實(shí)這一點(diǎn)我們?cè)诮榻B機(jī)器學(xué)習(xí)等知識(shí)就曾專門提到過有關(guān)激活函數(shù)的知識(shí),并且列舉了當(dāng)前常見的一些激活函數(shù),這里再列舉如下:
圖3 常用的激活函數(shù)匯總表截圖
在這種匯總表中,我們?cè)诤罄m(xù)的神經(jīng)網(wǎng)絡(luò)模型或深度學(xué)習(xí)模型中,廣泛使用的又是諸如:sigmoid函數(shù)、relu函數(shù)、tanh函數(shù)、PRelu函數(shù)等。以后我們還會(huì)專門提到這些激活函數(shù)的妙用之處。在這里大家姑且記住有這些激活函數(shù),以及這些激活函數(shù)的基本形式、取值范圍即可。
以上五部分就是有關(guān)單層感知器的基本知識(shí)點(diǎn)所在。圍繞著這些知識(shí)點(diǎn),我們就可以來重點(diǎn)闡述其工作原理。
3單層感知器工作原理在理解單層感知器的基本知識(shí)點(diǎn)之后,我們就需要來弄明白單層感知器的基本工作原理,看看單層感知器究竟學(xué)習(xí)的是個(gè)啥,又是如何學(xué)習(xí)的。弄清楚這個(gè)工作原理非常重要,因?yàn)槲覀円呀?jīng)不止一次說過:不管多么復(fù)雜的神經(jīng)網(wǎng)絡(luò)或深度學(xué)習(xí)模型,其核心要素就是由一個(gè)個(gè)神經(jīng)元組成的。而單層感知器實(shí)際上我們就可以被簡(jiǎn)化為一個(gè)神經(jīng)元(假如我們把輸入神經(jīng)元與各個(gè)特征輸入融為一體的話。)。因此,弄懂單個(gè)神經(jīng)元的工作原理就顯得十分必要。此外它還是多層感知器、前饋神經(jīng)網(wǎng)絡(luò)等復(fù)雜神經(jīng)網(wǎng)絡(luò)模型中所用到的“誤差反向傳播”算法的一個(gè)理論基礎(chǔ)所在:即如何通過輸出層來反向推導(dǎo)出坐落在不同連接線上的各個(gè)權(quán)重參數(shù)值以及偏置值等。
可以簡(jiǎn)單地說就是:單層感知器也好、多層感知器也罷,甚至是更復(fù)雜的深度學(xué)習(xí)模型,其最終所要學(xué)習(xí)到的就是坐落在這些有向的連接不同神經(jīng)元之間的連接線上的權(quán)重系數(shù)以及每一層神經(jīng)元的一個(gè)偏置值。
注意:我們這里說的是連接不同神經(jīng)元之間的連接線。因此不論在不再同一層,只要是神經(jīng)元之間有一條有向的連接線,那就需要對(duì)該連接線上的權(quán)重展開學(xué)習(xí)。
現(xiàn)在我們就來聊一聊單層感知器的基本工作原理:
第一步:為輸入數(shù)據(jù)、各個(gè)權(quán)重、偏置值賦值初始值,具體取值,各位隨意取,但有一個(gè)經(jīng)驗(yàn)很完美地表明:權(quán)重值、偏置值的初始值還是盡量小一點(diǎn)比較妥當(dāng)。通常都會(huì)利用Numpy庫(kù)或者TensorFlow庫(kù)中的正態(tài)分布函數(shù)來幫我們選擇一批初始權(quán)重。
第二步:利用圖2中的output的表達(dá)式來開展輸入特征的線性加權(quán)求和;
第三步:再選用圖2的激活函數(shù)來對(duì)加權(quán)求和結(jié)果進(jìn)行映射,得到的預(yù)測(cè)結(jié)果我們標(biāo)記為oj,而該樣本的真實(shí)結(jié)果,則即為:dj;j表示第j次的輸入數(shù)據(jù)的學(xué)習(xí)。
第四步:求出本次學(xué)習(xí)結(jié)果的損失值:
? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
第五步:利用公式(1)求出的損失值來更新權(quán)重參數(shù)與偏置值參數(shù):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
這里的i表示的是第i個(gè)權(quán)重參數(shù),j表示的是第j次的輸入數(shù)據(jù)的學(xué)習(xí)。
同樣的邏輯,我們可以計(jì)算偏置值的更新過程如下:
? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
PS:請(qǐng)注意,由于我們這里采用的是符號(hào)函數(shù)作為激活函數(shù),因此可以直接利用公式(2)和公式(3)來分別更新權(quán)重參數(shù)與偏置值參數(shù)。但在實(shí)際的復(fù)雜神經(jīng)網(wǎng)絡(luò)模型中,我們通常都會(huì)利用其它激活函數(shù),且這些激活函數(shù)是可以求導(dǎo)數(shù)的。因此在其他場(chǎng)合下,我們將利用對(duì)激活函數(shù)的求導(dǎo)結(jié)果結(jié)合損失值來更新權(quán)重參數(shù)與偏置值參數(shù)。
第六步:判斷當(dāng)前的訓(xùn)練結(jié)束條件是否滿足:
①、模型訓(xùn)練過程中所產(chǎn)生的損失值已經(jīng)小于我們給定的一個(gè)閾值:δ。如果已經(jīng)小于,則本模型的訓(xùn)練過程結(jié)束。但在單層感知器中,我們使用的激活函數(shù)為符號(hào)函數(shù),因此,在這里我們并不適用條件①來作為判斷模型訓(xùn)練是否結(jié)束的標(biāo)準(zhǔn)。采用的是下面這兩條準(zhǔn)則之一。
②、在指定的訓(xùn)練次數(shù)之內(nèi),判斷前后兩次訓(xùn)練的權(quán)重之差是否已經(jīng)小于給定的一個(gè)閾值:ε,如果已經(jīng)小于,則判定本模型的訓(xùn)練過程結(jié)束;
③、如果條件②尚不滿足,但已經(jīng)訓(xùn)練了足夠的訓(xùn)練次數(shù),比如我們指定的最多500次訓(xùn)練,則同樣結(jié)束本模型的訓(xùn)練。
第七步:如果判斷模型訓(xùn)練結(jié)束條件不滿足,則繼續(xù)回到第二步,并繼續(xù)新一輪學(xué)習(xí)過程。
4單層感知器的TensorFlow實(shí)現(xiàn)理解了單層感知器的具體知識(shí)點(diǎn)以及工作原理之后,我們接下來就利用所學(xué)習(xí)的TensorFlow知識(shí)來實(shí)現(xiàn)一下這樣的一個(gè)簡(jiǎn)單的單層感知器。在這里稍微說明一下,為了能夠利用TensorFlow庫(kù)中給我們提供的一個(gè)自動(dòng)求導(dǎo)機(jī)制:tf.GradientTape()。我們?cè)谝韵麓a中所示的單層感知器實(shí)現(xiàn)中使用的激活函數(shù)為Sigmoid函數(shù)。此時(shí)我們就需要考慮對(duì)損失值進(jìn)行求導(dǎo)了。至于利用Sigmoid函數(shù)怎么來求導(dǎo),我們?cè)诙鄬痈兄饕约案鼮閺?fù)雜的BP算法的介紹中會(huì)專門提到,這里僅簡(jiǎn)單列出以下Sigmoid函數(shù)的求導(dǎo)結(jié)果:
接下來我們就來看看這個(gè)簡(jiǎn)單的單層感知器的實(shí)際代碼:
import tensorflow as tf
x = tf.Variable(tf.random.normal([5,3]))#5個(gè)樣本,3個(gè)特征參數(shù)
y = tf.constant([0,1,0,1,0])#實(shí)際標(biāo)簽值
w = tf.Variable(tf.random.normal([3,1]))#3維將為1維
b = tf.Variable(tf.zeros([1]))
with tf.GradientTape() as tape:
? ? output = x@w + b
? ? out = tf.sigmoid(output?)
? ? loss = tf.reduce_mean(tf.losses.MAE(y,out))
res = tape.gradient(loss,[w,b])
dw =?res?[0]
db =?res?[1]
print('dw = ' + str(dw))
print('db = ' + str(db))
其運(yùn)行結(jié)果截圖如下:
代碼簡(jiǎn)單解釋如下:
tf.Variable:生成一個(gè)tf的張量;
tf.random.normal([5,3]):從標(biāo)準(zhǔn)正態(tài)分布中隨機(jī)生成一個(gè)shape為5行3列的數(shù)組張量;
tf.constant:生成一個(gè)tf的張量,是一個(gè)常量;
tf.zeros([1]):生成一個(gè)shape為1一個(gè)元素的一維向量,元素值為0;
with tf.GradientTape() as tape:TensorFlow庫(kù)中提供的一個(gè)自動(dòng)求導(dǎo)機(jī)制的慣用寫法,大家只需要這么記住即可;
x@w:在TensorFlow庫(kù)中,提供的兩個(gè)張量數(shù)組相乘運(yùn)算符;注意:相乘的兩個(gè)矩陣必須要滿足一個(gè)要求:矩陣x的列數(shù)必須等于矩陣w的行數(shù)。
tf.sigmoid(output ):使用TensorFlow庫(kù)中的sigmoid()函數(shù)來作為激活函數(shù),對(duì)output結(jié)果進(jìn)行激活處理;
tf.reduce_mean():計(jì)算用于計(jì)算張量tensor沿著指定的數(shù)軸(tensor的某一維度)上的的平均值,主要用作降維或者計(jì)算tensor(圖像)的平均值。在這里主要計(jì)算損失值的平均值;
tf.losses.MAE(y,out):利用TensorFlow庫(kù)中的losses模塊內(nèi)的MAE()函數(shù)(即:平均絕對(duì)誤差)來計(jì)算損失值,需要提供真實(shí)值與預(yù)測(cè)值。由于真實(shí)值與預(yù)測(cè)值都是一個(gè)同shape大小的數(shù)組張量,故而可以使用tf.reduce_mean()函數(shù)來計(jì)算平均值。
tape.gradient(loss,[w,b]):利用TensorFlow庫(kù)中的啟動(dòng)求導(dǎo)機(jī)制的gradient()函數(shù)來對(duì)損失函數(shù)開展求導(dǎo)運(yùn)算。需要輸入的參數(shù)有:
損失函數(shù);
需要開展求導(dǎo)的參數(shù)列表,比如這里的權(quán)重參數(shù)與偏置值參數(shù)等。
res?[0]/res [1]:自動(dòng)求導(dǎo)結(jié)束之后,我們所計(jì)算出來的權(quán)重參數(shù)就被存儲(chǔ)在求導(dǎo)結(jié)果的第0個(gè)元素上,偏置值則存放于第1個(gè)元素上。
以上就是一個(gè)單層感知器的具體代碼實(shí)現(xiàn)以及代碼簡(jiǎn)介。
這里順帶提一個(gè)小問題供大家思考,如果我們不使用TensorFlow的自動(dòng)求導(dǎo)機(jī)制,且激活函數(shù)選擇為符號(hào)函數(shù)sgn(),那么又該如何來實(shí)現(xiàn)?
5總結(jié)到此為止,我們就簡(jiǎn)單介紹了有關(guān)單層感知器的基本原理、知識(shí)點(diǎn)、工作機(jī)制以及簡(jiǎn)單的代碼實(shí)現(xiàn)與代碼簡(jiǎn)介。
單層感知器天然適合開展線性可分的問題解決工作。但對(duì)于一些非線性問題,比如異或問題處理,就會(huì)顯得很蒼白無力。此外,單層感知器還缺乏泛化能力。對(duì)離群點(diǎn)的檢測(cè)也需要花費(fèi)更多的時(shí)間和精力。因此總得來說單層感知器在實(shí)際使用中還是存在比較大的局限性,特別是現(xiàn)在這種AI越來越普及的時(shí)代,已經(jīng)很難再尋覓到有關(guān)單層感知器的使用場(chǎng)景,
但不管怎么說,單層感知器為我們打開了一扇通往神經(jīng)網(wǎng)絡(luò)乃至深度學(xué)習(xí)領(lǐng)域的大門。而且正是由于前輩們對(duì)單層感知器的不斷完善改進(jìn),才有了后來的多層感知器等前饋神經(jīng)網(wǎng)絡(luò)、深度置信網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等更加高級(jí)的神經(jīng)網(wǎng)絡(luò)算法。
因此,我們說單層感知器是我們理解研究其他神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),其學(xué)習(xí)訓(xùn)練規(guī)則對(duì)于其他神經(jīng)網(wǎng)絡(luò)的權(quán)重訓(xùn)練有極為重要的意義。這里也希望大家多揣摩揣摩它的意義。
OK,本節(jié)知識(shí)的分享就到此為止,謝謝大家!下一節(jié)我們繼續(xù)分享梯度下降算法、BP算法的相關(guān)知識(shí),屆時(shí)不見不散!
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的为什么在反向传播中感知器初始值不能为0_深度学习理论分享之——单层感知器简述...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语言程序的特点_Python
- 下一篇: 云服务器deeplearning_开始使