通过感知学习,我真的对初始化和更新权重感到困惑。如果我有一个包含2个输入x0和x1的样本数据,并且我在这2个输入中有80行,则矩阵为80x2。
我是否需要将权重初始化为80x2或仅2个值w0和w1的矩阵?感知器学习的最终目标是找到两个权重w0和w1,它们应该适合所有80个输入样本行吗?
我有以下代码,尽管进行了10,000次迭代,但我的错误从未达到0。
x=input matrix of 80x2
y=output matrix of 80x1
n = number of iterations
w=[0.1,0.1]
learningRate = 0.1
for i in range(n):
expectedT = y.transpose();
xT = x.transpose()
prediction = np.dot (w,xT)
for i in range (len(x)):
if prediction[i] >= 0:
ypred[i] = 1
else:
ypred[i] = 0
error = expectedT - ypred
# updating the weights
w = np.add(w,learningRate*(np.dot(error,x)))
globalError = globalError + np.square(error)