自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

太天才了,把感知機組裝在一起是不是就是神經(jīng)網(wǎng)絡(luò)了?

人工智能 深度學(xué)習(xí)
我們來試著寫一下神經(jīng)網(wǎng)絡(luò)的代碼,由于現(xiàn)在我們還沒有介紹神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法,所以我們只能實現(xiàn)它預(yù)測的部分。等我們介紹完了反向傳播算法之后,再來補上模型訓(xùn)練的過程。

[[354709]]

大家好,今天來繼續(xù)聊聊深度學(xué)習(xí)。

有同學(xué)跟我說很久沒有更新深度學(xué)習(xí)的模型了,倒不是不愿意更新,主要是一次想把一個技術(shù)專題寫完。但是純技術(shù)文章觀眾老爺們不太愛看,所以我一般都把純技術(shù)文章放在次條。不過既然有同學(xué)催更,那么我還是響應(yīng)一下需求,來更新一篇。

神經(jīng)網(wǎng)絡(luò)與感知機的不同

我們當(dāng)時在文章里放了一張圖,這張圖是一個多層感知機的圖,大家看一下,就是下面這張圖。

 

這張圖乍一看沒什么問題,但是細想會覺得有點奇怪,好像我們印象里看到的神經(jīng)網(wǎng)絡(luò)的圖片也是這樣的,既然如此,那么它們之間有什么區(qū)別呢?

表面上最明顯的區(qū)別就是名字不同,這是一張神經(jīng)網(wǎng)絡(luò)的圖片。我們發(fā)現(xiàn)同樣是三層,但是它每一層的名字分別是輸入層、中間層(隱藏層)和輸出層。我們一般把輸入層和輸出層單獨命名,中間的若干層都叫做隱藏層或者是中間層。當(dāng)然像是感知機一樣,以數(shù)字來命名層數(shù)也是可以的,比如下圖當(dāng)中的輸入層叫做第0層,中間層叫做第一層,最后輸出層叫做第2層。

我們一般不把輸出層看作是有效的神經(jīng)網(wǎng)絡(luò),所以下圖的網(wǎng)絡(luò)被稱為二層神經(jīng)網(wǎng)絡(luò),而不是三層神經(jīng)網(wǎng)絡(luò)。

 

除了名字的叫法不同之外,還有一個最關(guān)鍵的區(qū)別就是激活函數(shù),為了說明白這點,我們先來看看神經(jīng)網(wǎng)絡(luò)當(dāng)中的信號傳遞。

信號傳遞

下圖是一張我隨便找來的神經(jīng)網(wǎng)絡(luò)圖,我們可以看到輸入的第一個節(jié)點被置為了1。這樣做是為了方便引入偏移量,只是我們一般情況下畫圖的時候,不會特意把偏移量畫出來。我們以下圖為例子來看下神經(jīng)網(wǎng)絡(luò)當(dāng)中信號的傳遞方式。

 

 

到這里還沒有結(jié)束,神經(jīng)網(wǎng)絡(luò)當(dāng)中每一層都會有對應(yīng)的激活函數(shù)。一般情況下同一層網(wǎng)絡(luò)當(dāng)中的激活函數(shù)相同,我們把它叫做h,所以最終這個節(jié)點的輸出并不是剛剛得到的,而是。


 

 

激活函數(shù)我們已經(jīng)比較熟悉了,之前介紹過很多次,常用的大概有以下幾種:Relu、Sigmoid、tanh、softmax,以及一些衍生出的變種。一般情況下,在輸出層之前我們通常使用Relu,如果模型是一個分類模型,我們會在最后使用Sigmoid或者是softmax,如果是回歸模型則不使用任何激活函數(shù)。

Sigmoid我們已經(jīng)很熟悉了,如果我們把LR模型也看成是一個單層的神經(jīng)網(wǎng)絡(luò)的話,那么Sigmoid就是它的激活函數(shù)。Sigmoid應(yīng)用在二分類場景當(dāng)中單個的輸出節(jié)點上,輸出的值如果大于0.5表示為真,否則為假。在一些概率預(yù)估場景當(dāng)中,也可以認為輸出值就代表了事件發(fā)生的概率。

與之對應(yīng)的是softmax函數(shù),它應(yīng)用在多分類問題當(dāng)中,它應(yīng)用的節(jié)點數(shù)量不是1個,而是k個。這里的k表示多分類場景當(dāng)中的類別數(shù)量。我們以k=3舉例,看下圖:

 

在圖中一共有三個節(jié)點,對于每一個節(jié)點來說,它的公式可以寫成:

其實和Sigmoid的計算方式是一樣的,只不過最后計算了一個權(quán)重。最后我們會在這k個節(jié)點當(dāng)中選擇最大的作為最終的分類結(jié)果。

代碼實現(xiàn)

最后,我們來試著寫一下神經(jīng)網(wǎng)絡(luò)的代碼,由于現(xiàn)在我們還沒有介紹神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法,所以我們只能實現(xiàn)它預(yù)測的部分。等我們介紹完了反向傳播算法之后,再來補上模型訓(xùn)練的過程。

如果不考慮反向傳播的話,其實整個算法的代碼非常簡單,只要熟悉Python語法的同學(xué)都能看懂。

  1. import numpy as np 
  2.  
  3. def relu(x): 
  4.     return np.where(x > 0, x, 0) 
  5.  
  6.  
  7. def sigmoid(x): 
  8.     return 1 / (1 + np.exp(-x)) 
  9.  
  10.  
  11. class NeuralNetwork(): 
  12.     def __init__(self): 
  13.         self.params = {} 
  14.         self.params['W1'] = np.random.rand(2, 3) 
  15.         self.params['b1'] = np.random.rand(1, 3) 
  16.         self.params['W2'] = np.random.rand(3, 2) 
  17.         self.params['b2'] = np.random.rand(1, 2) 
  18.         self.params['W3'] = np.random.rand(2, 1) 
  19.         self.params['b3'] = np.random.rand(1, 1) 
  20.         
  21.     def forward(self, x): 
  22.         a1 = np.dot(x, self.params['W1']) + self.params['b1'
  23.         z1 = relu(a1) 
  24.          
  25.         a2 = np.dot(z1, self.params['W2']) + self.params['b2'
  26.         z2 = relu(a2) 
  27.          
  28.         a3 = np.dot(z2, self.params['W3']) + self.params['b3'
  29.         return np.where(sigmoid(a3) > 0.5, 1, 0) 
  30.      
  31.      
  32. if __name__ == "__main__"
  33.     nn = NeuralNetwork() 
  34.     print(nn.forward(np.array([3, 2]))) 

本文轉(zhuǎn)載自微信公眾號「TechFlow」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系TechFlow公眾號。

 

責(zé)任編輯:武曉燕 來源: TechFlow
相關(guān)推薦

2016-09-02 16:49:54

APPVR

2017-11-15 08:26:52

IntelAMD技術(shù)

2021-06-22 09:46:52

神經(jīng)網(wǎng)絡(luò)人工智能深度學(xué)習(xí)

2018-07-30 16:04:09

ReactJS代碼HTML

2018-02-01 21:18:40

戴爾

2009-07-22 09:29:44

ScalaSpiral程序

2020-09-16 11:20:40

PythonBashLinux

2016-08-12 09:49:06

Intel

2009-11-06 08:57:31

WCF開發(fā)

2013-08-06 09:49:01

2022-09-27 16:03:51

羊了個羊鴻蒙

2014-12-31 10:33:44

Google 2015

2015-03-05 10:27:56

蘋果IBM

2019-03-27 10:13:59

運維開發(fā)DevOps

2020-09-26 10:43:57

Python語言數(shù)據(jù)分析

2011-01-20 11:42:49

同事

2015-10-20 16:48:06

AnsibleDocker可擴展設(shè)計

2015-02-09 19:49:19

暢捷通

2015-04-22 17:22:05

eBay京東

2020-12-10 08:05:23

神經(jīng)網(wǎng)絡(luò)ELM極限學(xué)習(xí)機
點贊
收藏

51CTO技術(shù)棧公眾號