深度學習入門07 多層感知機

2021-09-26 07:22:55 字數 2769 閱讀 6081

異或門可以通過其他閘電路進行表示,我們可以通過組合與門、與非門、或門實現異或門的邏輯功能(在大學的《數字電子技術基礎》這門課中,這個是非常基礎的知識哦)。在已知與門、與非門、或門的邏輯功能(真值表)的情況下,如何使用這些邏輯門組合出異或門的邏輯功能呢?

我們在這裡給大家提供一種思路,按照下面組合的方式將與門、與非門、或門填入不同的方框中,從而實現異或門的邏輯功能?

與門、與非門、或門分別使用下圖的符號表示。

下面我們公布答案,就是這個樣子。

以下的內容涉及到數位電路基礎,可以跳過

我們還提供另外一種思路,利用了數位電路的基礎知識。我們可以從異或門真值表入手,列出其邏輯表示式,然後按照邏輯運算的方式將邏輯表示式變形為上圖的組合方式。

首先,根據真值表列出邏輯表示式。按照下面的規則:

或者您可以找數位電路基礎的資料來看一下。

這樣,我們就得到了輸入為x1 x2,通過與非門、或門和與門組合而實現異或功能的電路了。

從這裡繼續正文

下面我們來確認一下上面的組合是否實現了異或門的邏輯功能,我們將第一級兩個邏輯門的輸出結果也標記出來,分別記為s1和s2。結果如下表所示:

可以看到,與異或門真值表完全一致,下面我們考慮如何用**實現這種組合方式。

我們使用之前定義的與門and函式、與非門nand函式、或門or函式,具體實現如下:

def

xor(x1, x2)

:# 定義異或函式xor

s1 = nand(x1, x2)

s2 = or(x1, x2)

y = and2(s1, s2)

return y

哈哈,看起來很簡單吧,**易讀性非常強,我們按照之前的套路,遍歷輸入所有情況,結果驗證:

print

('xor(0, 0) 輸出為 '

+str

(xor(0,

0)))

print

('xor(0, 1) 輸出為 '

+str

(xor(0,

1)))

print

('xor(1, 0) 輸出為 '

+str

(xor(1,

0)))

print

('xor(1, 1) 輸出為 '

+str

(xor(1,

1)))

輸出:

xor(0,

0) 輸出為 0

xor(0,

1) 輸出為 1

xor(1,

0) 輸出為 1

xor(1,

1) 輸出為 0

和預期一致。這樣,異或門的實現就完成了。下面我們試著用感知機的表示方法(明確地顯示神經元)來表示這個異或門,結果如下圖所示。

通過上圖所示,異或門是一種多層結構的神經網路。這裡,將最左邊的一列稱為第0層,中間的一列稱為第1層,最右邊的一列稱為第2層。

異或門的感知機與前面介紹的與門、或門的感知機形狀不同。實際上,與門、或門是單層感知機,而異或門是2層感知機。疊加了多層的感知機也稱為多層感知機(multi-layered perceptron)。 異或門感知機總共由3層構成,但是因為擁有權重的層實質上只有2層(第0層和第1層之間,第1層和第2層之間),所以稱為「2層感知機」。不過,有的文獻認為異或門的感知機是由3層構成的,因而將其稱為「3層感知機」。 我們這裡統一稱為2層感知機。

多層感知機的訊號是如何傳遞的呢?先在第0層和第1層的神經元之間進行訊號的傳送和接收,然後在第1層和第2層之間進行訊號的傳送和接收,具體如下所示。

1.第0層的兩個神經元接收輸入訊號,並將訊號傳送至第1層的神經元。

2.第1層的神經元將訊號傳送至第2層的神經元,第2層的神經元輸出 y。

這種2層感知機的執行過程可以比作流水線的組裝作業。第1段(第1層)的工人對傳送過來的零件進行加工,完成後再傳送給第2段(第2層)的工人。第2層的工人對第1層的工人傳過來的零件進行加工,完成這個零件後出貨(輸出)。

像這樣,在異或門的感知機中,工人之間不斷進行零件的傳送。通過這樣的結構(2層結構),感知機得以實現異或門。這可以解釋為「單層感知機無法表示的東西,通過增加一層就可以解決」。也就是說,通過疊加層(加深層),感知機能進行更加靈活的表示。

《動手學深度學習》多層感知機

多層感知機含有乙個隱藏層,以下是一種含單隱藏層的多層感知機的設計,其輸出o r n q boldsymbol in mathbb o rn q 的公式為 h x wh b h,o hwo bo begin boldsymbol boldsymbol boldsymbol h boldsymbol h...

深度學習入門 感知機

感知機是乙個比較古老的演算法 那麼我們為什麼要學它呢,主要是因為感知機也是神經網路 深度學習 的起源的演算法,接下來我們將簡單介紹感知機,並用感知機解決一些簡單的問題。感知機就相當於乙個神經元,接受乙個或多個訊號時,輸出乙個訊號,0 1。輸入的每個訊號乘以固定的權重,當他們的總和超過某個界限時,才會...

《動手學深度學習》之多層感知機

先看看多層感知機的定義 多層感知機 和softmax回歸唯一的不同在於 我們多加了乙個全連線層作為隱藏層。它的隱藏單元個數為256,並使用relu函式作為啟用函式。import torch from torch import nn from torch.nn import init import n...