簡體   English   中英

Python中的簡單Perceptron及其文檔

[英]Simple Perceptron in Python with documentation

我已經用Python編寫了這個簡單的感知器算法

import numpy as nu
import random as ra

function = lambda x: 1 if x >= 0 else 0

training_set=[([1,0,0],1),
              ([1,1,1],1),
              ([1,-1,0],0),
              ([1,0,-1],0),
              ]

w = nu.random.rand(3)
eta = 0.1
print(w)

for l in range(10000):
    for _ in range(4):
        x,y = training_set[_]
        res = (function(nu.dot(w,x)) - y)
        update = eta * res
        w += nu.dot(update,x)

print(w)

function檢查是否w*x>=0 我有一個包含4個元素的訓練集,第一個元素是xi向量,第二個元素是預期的結果。 第一元素xi是偏置。 循環繼續更新wi進行1000次迭代。 事實是有時會融合,有時不會融合。

一些問題:

  1. 該算法似乎正確嗎?
  2. 我必須輸入多少訓練樣本才能確保算法的完美收斂?
  3. 為什么平均而言,循環會完成對training_set的4次迭代?
  1. 我認為您需要翻轉更新的跡象。 否則,您正在遠離最低要求。
  2. 這取決於w的初始值,學習率,訓練樣本的順序等。您無法對收斂做出任何硬性陳述。
  3. 好像您編輯了代碼,這個問題就變得無關緊要了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM