Внедрение QuickProp в нейронную сеть - PullRequest
0 голосов
/ 26 октября 2019

Я реализовал нейронную сеть с каждым слоем, являющимся классом, с функцией BP. Я бы хотел использовать QuickProp как более быстрый алгоритм поиска, чем обычный BP. Но что-то не так с моей реализацией QuickProp, потому что она не сходится. Ошибка остается такой, как если бы вы угадали результат. Кто-то видит ошибку?

# QuickPro initial values
self.weightsE_old = np.ones((inputSize, outputSize))-0.5
self.dw_old = np.random.uniform(-0.1, 0.1, size=(1, outputSize))

def BP(self, outputError, learningRate, learningAlgorithm):

   inputError = np.dot(outputError, self.weights.T) # Error for the next layer
   weightsError = np.dot(self.input.T, outputError) # dL/dw
   # avoid division by zero
   index = weightsError == self.weightsE_old
   self.weightsE_old[index==True] = 0.1

   dw = self.dw_old * (weightsError/(self.weightsE_old-weightsError))
   self.dw_old = dw.copy()
   self.weightsE_old = weightsError.copy() 

   # update parameters
   self.weights = self.weights - learningRate * dw 

   self.bias =self.bias - learningRate * outputError


   return inputError
...