學習筆記: 深度學習入門:基于 Python 的理論與實現(xiàn) 第二章

chapter2 感知機

2.1 感知機概述

感知機接收多個輸入信號,輸出一個信號。x1、x2是輸入信號,y是輸出信號,w1、w2是權重(w是weight的首字母)?!鸱Q為“神經(jīng)元”或者“節(jié)點”。輸入信號被送往神經(jīng)元時,會被分別乘以固定的權重. 嚴格地講,本章中所說的感知機應該稱為“人工神經(jīng)元”或“樸素感知機”,但是因為很多基本的處理都是共通的,所以這里就簡單地稱為“感知機”。(w1x1、w2x2)。神經(jīng)元會計算傳送過來的信號的總和,只有當這個總和超過了某個界限值時,才會輸出1。這也稱為“神經(jīng)元被激活”。這里將這個界限值稱為閾值,用符號θ表示。

2.2 感知機的實現(xiàn)

公式如下(2.1):

image.png

可以由這條公式實現(xiàn)與門的功能

# 代碼實現(xiàn) , 與門功能
def AND(x1, x2):
    w1, w2, theta = 0.5, 0.5, 0.7
    res = w1 * x1 + w2 * x2
    if res > theta:
        return 1
    else:
        return 0


print(AND(1, 1))
print(AND(1, 0))

我們將其修改為另外一種實現(xiàn)形式。在此之前,首先把式(2.1)的θ換成?b,于

是就可以用式(2.2)來表示感知機的行為。

公式(2.2):

image.png

式(2.1)和式(2.2)雖然有一個符號不同,但表達的內(nèi)容是完全相同的。

此處,b稱為偏置,w1和w2稱為權重。如式(2.2)所示,感知機會計算輸入

信號和權重的乘積,然后加上偏置,如果這個值大于0則輸出1,否則輸出0.

用權重和偏置實現(xiàn)門運算:

import numpy as np

# 使用numpy的矩陣簡化運算
# 與門
def AND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.7
    tmp = np.sum(w * x) + b
    if tmp <= 0:
        return 0
    else:
        return 1
# 非門    
def NAND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([-0.5, -0.5])  # 僅權重和偏置與AND不同!
    b = 0.7
    tmp = np.sum(w * x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

# 或運算
def OR(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])  # 僅權重和偏置與AND不同!
    b = -0.2
    tmp = np.sum(w * x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

2.3 感知機的局限性

2.3.1 能否使用之前的邏輯實現(xiàn)異或門,為什么呢?

答: 不能, 因為無法用一條直線分開 △ 還有 ○ , 但是不使用一條直線 這個前提的話就可以. 于是我們就曲線分割而成的空間稱為非線性空間,由直線 分割而成的空間稱為線性空間。

image.png

2.3.2 多層感知機

使用之前的邏輯無法實現(xiàn)異或門, 但是通過組合之前的函數(shù)AND ,OR ,NAND 就可以實現(xiàn)異或.

# 通過AND(NAND(x1,x2), OR(x1,x2)) 實現(xiàn)異或
def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y

所示的感知機與前面介紹的與門、或門的感知機(圖2-1)形狀不同。實際上,與門、或門是單層感知機,而異或門是2層感知機。疊加了多層的感知機也稱為多層感知機(multi-layered perceptron).這可以解釋為“單層感知機無法表示的東西,通過增加一層就可以解決”。也就是說,通過疊加層(加深層),感知機能進行更加靈活的表示。

image.png

2.4 本章所學內(nèi)容

? 感知機是具有輸入和輸出的算法。給定一個輸入后,將輸出一個既

定的值。

? 感知機將權重和偏置設定為參數(shù)。

? 使用感知機可以表示與門和或門等邏輯電路。

? 異或門無法通過單層感知機來表示。

? 使用2層感知機可以表示異或門。

? 單層感知機只能表示線性空間,而多層感知機可以表示非線性空間。

? 多層感知機(在理論上)可以表示計算機

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容