def learn(self, target, epoch=None):
BasicLearner.learn(self, target, epoch)
error = np.asscalar(target - self.y)
self.beta += self.theta * error * self.h * np.asarray(self.phi).flatten()
self.alpha = np.exp(self.beta)
self.W += np.matrix(self.alpha * error * np.asarray(self.phi).flatten()).T
self.U += self.stepSize * self.m
phi_2 = np.asarray(np.power(self.phi, 2)).flatten()
m_decay = 1 - self.theta * np.power(self.h, 2) * phi_2
m_delta = error * self.h * np.asarray(self.X.T * self.gradientAct(self.phi, self.net))
self.m = m_decay * self.m + self.theta * m_delta
h_decay = 1 - self.alpha * phi_2
h_delta = error * self.alpha * np.asarray(self.phi).flatten()
self.h = h_decay * self.h + h_delta
return 0.5 * error * error
# TODO: refactor classification learner
评论列表
文章目录