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

Python 用简单神经网络绘制决策边界问题,python,machine-learning,neural-network,backpropagation,Python,Machine Learning,Neural Network,Backpropagation,我正在尝试用一个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 =

我正在尝试用一个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函数吗?或者我的反向传播计算中有错误?谢谢你的帮助