神經網路 感知器訓練演算法

2021-08-06 01:44:53 字數 1234 閱讀 6132

感知器訓練(perceptron rule)

物件: 單個單元(perceptron unit)

用途: 處理線性可分的資料集

對下列公式進行有限次的迭代[repeat x,y]

目的: 設定權值以便獲得與預期相同的資料集

方式:通過不斷地修改權值來實現目的,這裡採用給權值w賦予學習速率的方式,但碰到乙個問題是原先的實際輸出值是跟閾值θ做比較的,這個演算法沒有辦法對θ賦予學習規則,所以需要學習θ,這裡引入乙個簡單的實際學習技巧,把θ視為另一種權值,考慮閾值函式的工作方式,採用w和x的線性組合,然後將其與θ進行比較,考慮從兩端減去θ,θ就變成了另乙個權值(w=-θ),使得處理閾值θ就和處理權值w一樣,之後所做的比較都是相對於0而不是θ。

權值變化:y即輸出結果,將它與當前權值形成的網路的實際結果作比較。

權值變化中的學習速率引數的目的是為了將值降下來,我們不希望過度,我們要找到資料的移動方向,然後只需在這個方向上稍作改動。

以下的差值比較如果輸出正確即為0,權值就沒有發生任何變化。

如果輸出錯誤,-1的情況下,說明x輸入的值太大,需要將權值沿著相反方向移動很多

0的情況下,說明x輸入的值太小,需要增加權值,使得求和值變大。

建立感知器

import numpy as np

class perceptron:

def __init__(self, weights = np.array([1]), threshold = 0):

self.weights = weights

self.threshold = threshold

def activate(self,inputs):

strength = np.dot(self.weights, inputs)

if strength <= self.threshold :

self.result = 0

else:

self.result = 1

return self.result

感知器演算法與神經網路

感知器作為人工神經網路中最基本的單元,有多個輸入和乙個輸出組成。雖然我們的目的是學習很多神經單元互連的網路,但是我們還是需要先對單個的神經單元進行研究。感知器演算法的主要流程 首先得到n個輸入,再將每個輸入值加權,然後判斷感知器輸入的加權和最否達到某一閥值v,若達到,則通過sign函式輸出1,否則輸...

神經網路(單層感知器)

感知器是神經網路中的乙個概念,在1950s由frank rosenblatt第一次引入。單層感知器是最簡單的神經網路。它包含輸入層和輸出層,而輸入層和輸出層是直接相連的。與最早提出的mp模型不同,神經元突觸權值可變,因此可以通過一定規則進行學習。可以快速 可靠地解決線性可分的問題。單層感知器由乙個線...

神經網路 單層感知器

神經網路是非常重要的且用途廣泛,通過模擬人體的處理資訊方式來解決問題,下面就來介紹一下單層感知器。import numpy as np import matplotlib.pyplot as plt 輸入資料 x np.array 1,3,3 1,4,3 1,1,1 1,0,2 標籤y np.arr...