仅两个权值w:经过20+次迭代就可以出结果
步骤:
- 初始化所有有用的值包括学习率,偏置,函数中的常数b 权值
- 根据求和函数和阶跃函数得到第一次通过w初始值预测的函数y,十分不准确
- 将这些值进行训练,得到梯度update
由于之前推导出w = w + (t – y)*x ,由于有两个权值,所以写出两个权值w对应的下一个w。
- Train放入迭代中,进行多次迭代,训练出最终的y
Import random
import numpy as np
xh_number = 50
class my_Per:
def __init__(self, lr=0.1):
self.lr = lr
self.errors = [] # 偏置量初始化设空
self.b = random.random() # b是随机产生的点,即实际的值
self.w = [1, 2] # 两个权值
def train(self, Px, t):
update = self.lr * (t - self.predict(Px)) # 每次训练的梯度