def __init__(self, individual, subPopulationSize, nCombinations=1, valueInitializer=Randomization(-0.1, 0.1), **kwargs): """ :key individual: A prototype individual which is used to determine the structure of the genome. :key subPopulationSize: integer describing the size of the subpopulations """ Population.__init__(self) self._subPopulations = [] self.nCombinations = nCombinations ap = KWArgsProcessor(self, kwargs) ap.add('verbosity', default=0) genome = individual.getGenome() for chromosome in genome: self._subPopulations.append( EvolinoSubPopulation(chromosome, subPopulationSize, valueInitializer))
def __init__(self, **kwargs): """ :key verbosity: Verbosity level :key mutationVariate: Variate used for mutation. Defaults to None :key mutation: Defaults to EvolinoSubMutation """ Filter.__init__(self) ap = KWArgsProcessor(self, kwargs) ap.add('verbosity', default=0) ap.add('mutationVariate', default=None) ap.add('mutation', default=EvolinoSubMutation()) if self.mutationVariate is not None: self.mutation.mutationVariate = self.mutationVariate
def __init__(self, evolino_network, dataset, **kwargs): """ :key evolino_network: an instance of NetworkWrapper() :key dataset: The evaluation dataset :key evalfunc: Compares output to target values and returns a scalar, denoting the fitness. Defaults to -mse(output, target). :key wtRatio: Float array of two values denoting the ratio between washout and training length. Defaults to [1,2] :key verbosity: Verbosity level. Defaults to 0 """ Filter.__init__(self) ap = KWArgsProcessor(self, kwargs) ap.add('verbosity', default=0) ap.add('evalfunc', default=lambda output, target:-Validator.MSE(output, target)) ap.add('wtRatio', default=array([1, 2], float)) self.network = evolino_network self.dataset = dataset self.max_fitness = -Infinity
def __init__(self, evolino_network, dataset, **kwargs): """ :key subPopulationSize: Size of the subpopulations. :key nCombinations: Number of times each chromosome is built into an individual. default=1 :key nParents: Number of individuals left in a subpopulation after selection. :key initialWeightRange: Range of the weights of the RNN after initialization. default=(-0.1,0.1) :key weightInitializer: Initializer object for the weights of the RNN. default=Randomization(...) :key mutationAlpha: The mutation's intensity. default=0.01 :key mutationVariate: The variate used for mutation. default=CauchyVariate(...) :key wtRatio: The quotient: washout-time/training-time. Needed to split the sequences into washout phase and training phase. :key nBurstMutationEpochs: Number of epochs without increase of fitness in a row, before burstmutation is applied. default=Infinity :key backprojectionFactor: Weight of the backprojection. Usually supplied through evolino_network. :key selection: Selection object for evolino :key reproduction: Reproduction object for evolino :key burstMutation: BurstMutation object for evolino :key evaluation: Evaluation object for evolino :key verbosity: verbosity level """ Trainer.__init__(self, evolino_network) self.network = evolino_network self.setData(dataset) ap = KWArgsProcessor(self, kwargs) # misc ap.add('verbosity', default=0) # population ap.add('subPopulationSize', private=True, default=8) ap.add('nCombinations', private=True, default=4) ap.add('nParents', private=True, default=None) ap.add('initialWeightRange', private=True, default=(-0.1, 0.1)) ap.add('weightInitializer', private=True, default=Randomization(self._initialWeightRange[0], self._initialWeightRange[1])) # mutation ap.add('mutationAlpha', private=True, default=0.01) ap.add('mutationVariate', private=True, default=CauchyVariate(0, self._mutationAlpha)) # evaluation ap.add('wtRatio', private=True, default=(1, 3)) # burst mutation ap.add('nBurstMutationEpochs', default=Infinity) # network ap.add('backprojectionFactor', private=True, default=float(evolino_network.backprojectionFactor)) evolino_network.backprojectionFactor = self._backprojectionFactor # aggregated objects ap.add('selection', default=EvolinoSelection()) ap.add( 'reproduction', default=EvolinoReproduction(mutationVariate=self.mutationVariate)) ap.add('burstMutation', default=EvolinoBurstMutation()) ap.add('evaluation', default=EvolinoEvaluation(evolino_network, self.ds, **kwargs)) self.selection.nParents = self.nParents self._population = EvolinoPopulation( EvolinoSubIndividual(evolino_network.getGenome()), self._subPopulationSize, self._nCombinations, self._weightInitializer) filters = [] filters.append(self.evaluation) filters.append(self.selection) filters.append(self.reproduction) self._filters = filters self.totalepochs = 0 self._max_fitness = self.evaluation.max_fitness self._max_fitness_epoch = self.totalepochs
def __init__(self, **kwargs): SimpleMutation.__init__(self) ap = KWArgsProcessor(self, kwargs) ap.add('mutationVariate', default=CauchyVariate()) self.mutationVariate.alpha = 0.001