《機器學習(周志華)》筆記--神經網絡(2)--感知機與多層網絡:感知機、知機算法步驟、感知機與邏輯操作、多層前饋神經網絡


二、感知機與多層網絡

1、感知機

  感知機由兩層神經元組成,輸入層接收外界的輸入信號后傳遞給輸出層,輸出層是M-P神經元,亦稱“閾值邏輯單元”。結構如下圖

      

  感知機能容易地實現邏輯與、或、非操作。

  神經網絡的基本單元為神經元,神經元接受來自其他神經元的信號,經過一個線性變換,與閾值比較,通過非線性變換即激活函數處理作為神經元的輸出。感知機包括兩層神經元。感知機是線性模型,能夠實現線性分類任務。

數學推理過程:

      

  對樣本進行規范化處理,即負類樣本全部乘以(-1),則有:

        

  感知機算法通過對已知類別的訓練樣本集的學習,尋找一個滿足上式的權向量。

當對樣本進行規范化處理后,即負類樣本全部乘以(-1),要使所有樣本分類,爭取wT與所有樣本的乘積均大於0。感知機算法通過對已知類別的訓練樣本集的學習,尋找一個權值向量w,其轉置與所有樣本的乘積的結果均大於0.

 2、感知機算法步驟

  (1)將訓練樣本集{ x1,  …, xN}化為增廣向量形式,並進行規范化處理。初始化權值向量ŵ(1),開始迭代。迭代次數k=1 。

  (2)用全部訓練樣本進行一輪迭代,計算ŵT(k)xi 的值,並修正權向量。分兩種情況,更新權向量的值:

        

      統一寫作:

          

 分析分類結果:只要有一個錯誤分類,回到(2),直至對所有樣本正確分類。

  感知機算法是一種賞罰過程:

    分類正確時,對權向量“賞”——這里用“不罰”,即權向量不變;

    分類錯誤時,對權向量“罰”——對其修改,向正確的方向轉換。

代碼實現:

#感知機算法
import numpy as np
import matplotlib.pyplot as plt
X0 = np.array([[1,0],
              [0,1],
              [2,0],
              [2,2]])
X1 = np.array([[-1,-1],
              [-1,0],
              [-2,-1],
              [0,-2]])
plt.grid()
plt.scatter(X0[:,0],X0[:,1],c = 'r',marker='o',s=500)
plt.scatter(X1[:,0],X1[:,1],c = 'g',marker='*',s=500)
plt.show()

#將樣本數據化為增廣向量矩陣
ones = -np.ones((X0.shape[0],1))
X0 = np.hstack((ones,X0))
ones = -np.ones((X1.shape[0],1))
X1 = np.hstack((ones,X1))
#對樣本進行規范化處理
X = np.vstack((-X0,X1))

plt.grid()
plt.scatter(X0[:,1],X0[:,2],c = 'r',marker='o',s=500)
plt.scatter(X1[:,1],X1[:,2],c = 'g',marker='*',s=500)
W = np.ones((X.shape[1],1))
p1=[-2.0,2.0]
p2=[(W[0]+2*W[1])/W[2],(W[0]-2*W[1])/W[2]]
plt.plot(p1,p2)
flag = True
while(flag):
    flag = False
    for i in range(len(X)):
        x = X[i,:].reshape(-1,1)    
        if np.dot(W.T,x)<=0:
            W = W + x
            p2=[(W[0]+2*W[1])/W[2],(W[0]-2*W[1])/W[2]]
            print(W)
            plt.plot(p1,p2)
            flag = True
plt.show()

舉例演示:

已知兩類訓練樣本:

  

  用感知器算法求出將樣本分為兩類的權向量解。

 解:

  所有樣本寫成增廣向量形式,進行規范化處理,負類樣本乘以(-1):

        

  任取w(1)=0,取c=1,迭代過程為:

  第一輪:

      

  有兩個wT(k)xi ≤0的情況(錯判),進行第二輪迭代。

  第二輪:

    

   第三輪:

    

   第四輪:

    

  該輪迭代的分類結果全部正確,故解向量:

  分類決策邊界:

  當cŵ(1)取其他值時,結果可能不一樣,所以感知器算法的解不是單值的。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM