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

时间:2019-10-27 00:55:34

标签: 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 = 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函数是否会导致边界不正确?还是我的反向传播计算中有错误?感谢任何帮助!

0 个答案:

没有答案