在rosenblatt單層感知機中已經對異或問題做了介紹,並論證說明了只適用於線性分類問題的rosenblatt感知機無法對異或問題進行分類。然而非線性問題是普遍存在的,下面就使用帶隱藏節點的神經網路來解決異或問題。
異或(xor)問題可以看做是單位正方形的四個角,響應的輸入模式為(0,0),(0,1),(1,1),(1,0)。第乙個和第三個模式屬於類0,即
輸入模式(0,0)和(1,1)是單位正方形的兩個相對的角,但它們產生相同的結果是0。另一方面,輸入模式(0,1)和(1,0)是單位正方形另一對相對的角,但是它們屬於類1,即
很顯然,無法找出一條直線作為決策邊界可以使(0,0)和(1,1)在乙個區域,而(1,0)和(0,1)在另乙個區域。然而,可以使用如下圖所示的一層有兩個隱藏神經元的隱藏層來解決異或問題。
這裡做如下假設:
1、每乙個神經元都由乙個mcculloch-pitts模型(見第一講)表示,使用閾值函式作為它的啟用函式。
2、位元符號0和1,分別由0和+1表示。
隱藏層頂部的神經元標註為「neuron 1」,有
該隱藏神經元構造的決策邊界斜率等於-1,在下圖最上面的圖中給出器位置,隱藏層底部的神經元標註為「neuron 2」,有
隱藏元構造的決策邊界方向和位置由下圖中間的圖給出。
輸出層的神經元標註為「neuron 3」,有
輸出神經元的功能是對兩個隱藏神經元形成的決策邊界構造線性組合。這個計算結果由下圖中最下面的圖給出。底部隱藏神經元由乙個興奮(正)鏈結到輸出神經元,而頂部隱藏神經元由乙個更強的抑制(負)連線到輸出神經元。當兩個隱藏神經元都斷開時,這種情況當輸入訊號(0,0)發生時,輸出神經元保持斷開。當兩個隱藏神經元都接通時,這種情況當輸入訊號時(1,1)是發生,輸出神經元也保持斷開。當輸入模式是(0,1)或(1,0)時,輸出神經元是連通的,因為正的權值連向了底部隱藏神經元。
線性神經網路(異或)
v np.dot x,w np.dot x,w array矩陣相乘 4 3乘3 1等於4 1 w lr x.t.dot y v int x.shape 0 np.dot x,w array矩陣相乘 3 4乘4 1等於3 1 v np.dot x,w np.dot x,w array矩陣相乘 4 3乘...
線性神經網路 解決異或問題
日常三大包 import numpy as np import pandas as pd import matplotlib.pyplot as plt多想想upadte函式的原理,這裡是先隨機乙個權重w,然後w的置換與x相乘去,得到的是乙個列 w1x1 w2x2 w3x3的形式 然後其與y進行比較...
BP神經網路 解決異或問題
import numpy as np import matplotlib.pyplot as plt 輸入資料 4,3 x np.array 1,0,0 1,0,1 1,1,0 1,1,1 標籤y np.array 0,1,1,0 權值初始化,1行3列,取值範圍 1到1 v np.random.ra...