本文講解 一個具體的例子來解釋 神經(jīng)網(wǎng)絡(luò)是如何計算 關(guān)于輸入的復(fù)雜的非線性函數(shù)。此有必要在這里交代一點邏輯代數(shù)的背景贬媒,以下文字摘錄自清華大學(xué)出版社的《電子技術(shù)基礎(chǔ)》6.2節(jié),電子書鏈接來自Google book,同時會在例子的介紹中引用該書中的一些基本定義:
邏輯代數(shù)是描述客觀事物邏輯關(guān)系的數(shù)學(xué)方法,它首先是由英國數(shù)學(xué)家喬治*布爾提出迟螺,因此也稱為布爾代數(shù)冲秽,而后克勞德*香農(nóng)將邏輯代數(shù)應(yīng)用到繼電器開關(guān)電路的設(shè)計中舍咖,所以又稱為開關(guān)代數(shù)。和普通代數(shù)一樣锉桑,在邏輯代數(shù)中用字母表示變量與函數(shù)排霉,但變量與函數(shù)的取值只有0和1兩種可能。這里的0和1已不再表示數(shù)量的大小民轴,只代表兩種不同的邏輯狀態(tài)攻柠。我們把這種二值變量稱為邏輯變量,簡稱為變量后裸,這種二值函數(shù)稱為邏輯函數(shù)瑰钮,簡稱為函數(shù)。
邏輯與神經(jīng)元
我們的目標是利用神經(jīng)網(wǎng)絡(luò)實現(xiàn)一個邏輯代數(shù)中的同或運算
下圖是一個同或的示例微驶,其中x1,x2是二值變量(0, 1):
我們想要學(xué)習(xí)一種非線性的決策邊界來區(qū)分正負樣本, 那么神經(jīng)網(wǎng)絡(luò)是如何做到的呢浪谴?
我們可以用一個簡單的神經(jīng)網(wǎng)絡(luò)(一個神經(jīng)元)表示與邏輯運算:
其中激活函數(shù)hΘ(x)可以用如下公式表示:
hΘ(x)=g(?30+20x1+20x2)
其g(z)的圖像如下:
根據(jù)上述圖像,x1, x2取不同的值因苹,h(x)如下:
x1=0 and x2=0 then g(?30)≈0
x1=0 and x2=1 then g(?10)≈0
x1=1 and x2=0 then g(?10)≈0
x1=1 and x2=1 then g(10)≈1
可以看出苟耻,這里的神經(jīng)網(wǎng)絡(luò)激活函數(shù)hΘ(x)近似等于與邏輯運算。
或(OR)邏輯運算
將二值(0, 1)變量x1,x2代入扶檐,得到如下的或邏輯運算對應(yīng)表:
非(NOT)邏輯運算
用一個簡單的神經(jīng)網(wǎng)絡(luò)模型來模擬非(NOT)邏輯運算:
非邏輯運算僅針對一個輸入值凶杖,我們來表示一個略微復(fù)雜的邏輯表達式:
這個表達式等于1的前提是”當(dāng)且僅當(dāng)x1=x2=0".可以用神經(jīng)網(wǎng)絡(luò)模擬如下:
好了,有了上述三個基本邏輯運算的基礎(chǔ)和相關(guān)的神經(jīng)網(wǎng)絡(luò)模型表示款筑,我們可以將其組合為一個略微復(fù)雜的”同或(XNOR)邏輯運算的神經(jīng)網(wǎng)絡(luò)“: