用简单神经网络绘制决策边界问题

2024-06-06 17:26:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用一个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

enter image description here

当我使用权重运行预测时,我得到了正确的分类

enter image description here

不正确的边界是因为使用了sigmoid函数吗?或者我的反向传播计算中有错误?谢谢你的帮助


Tags: selflabelsnptraining向量dot边界set