Shouldn't `self.beta = self.beta + fraction * (1.0 - self.beta)` be changed to `self.beta = self.beta_initial + fraction * (1.0 - self.beta_initial)`?