我正在尝试用一个2D输入向量(x1,x2)训练一个非常简单的神经网络,它使用一个感知器
我已经实现了下面我认为正确的反向传播。使用返回的权重向量,我得到了一条不在数据决策边界附近的线
def train_nn(self, training_set, labels):
for _ in range(self.epochs):
preds = np.dot(self.weights.T, training_set.T)
z = sigmoid(preds)
error = z - labels
#back propogation - find derivative with respect to weights
derror_dy = error
dy_dz = sigmoid_deriv(preds)
derr_dz = derror_dy * dy_dz
derr_dweights = np.dot(training_set.T, derr_dz.T)
dz_dweights = self.lr * derr_dweights
self.weights -= dz_dweights
return self.weights
当我使用权重运行预测时,我得到了正确的分类
不正确的边界是因为使用了sigmoid函数吗?或者我的反向传播计算中有错误?谢谢你的帮助
目前没有回答
相关问题 更多 >
编程相关推荐