网络在达到特定准确度后停止收敛

时间:2018-06-12 05:00:07

标签: machine-learning neural-network deep-learning computer-vision backpropagation

完成本课程后,我决定从头开始实施深度神经网络以加深我的理解,但在训练网络时,准确性稳定增加,直到达到35%然后开始下降。这是我实现的backprop算法。

我已将学习率设为0.001。我已经测试了第500个纪元。准确度慢慢增加,这表明backprop是正确的,但随后它停止并开始减少。我认为在向后传球中可能仍然存在一个错误,但我找不到它。 每个时期的训练准确性可以在这里找到=> https://pastebin.com/bfQc6B2F

        #FORWARD PROP
        z2 = self.parameters['W1'].dot(inpt)+self.parameters['b1']
        a2 = relu(z2)
        z3 = self.parameters['W2'].dot(a2)+self.parameters['b2']
        man_output = softmax(z3,self)

        #BACKPROP
        sigma3 = prediction-mappings
        sigma2 = self.parameters['W2'].T.dot(sigma3)* reluGrad(a2)
        dW2 = (1/m)*sigma3.dot(a2.T)
        db2 = (1/m)*np.sum(sigma3,axis=1,keepdims=True)
        dW1 = (1/m)*sigma2.dot(inpt.T)
        db1 = (1/m)*np.sum(sigma2,axis=1,keepdims=True)
        self.grads={'dW1':dW1,'db1':db1,'dW2':dW2,'db2':db2}

        #UPDATE PARAMETERS
        for l in range(int(len(self.parameters)/2)):
            self.parameters['W'+str(l+1)] = self.parameters['W'+str(l+1)] -alpha*self.grads['dW'+str(l+1)]
            self.parameters['b'+str(l+1)] = self.parameters['b'+str(l+1)] -alpha*self.grads['db'+str(l+1)]

0 个答案:

没有答案