Пример #1
0
    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,model,dataset,**kwargs):

        Filter.__init__(self)
        ap = KWArgsProcessor(self, kwargs)
        ap.add('evalfunc', default=lambda output, target:-Validator.MSE(output, target))
        ap.add('verbosity', default=2)

        self.model=model
        self.dataset=dataset
        self.max_fitness=-Infinity
Пример #3
0
    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))
Пример #4
0
    def __init__(self, **kwargs):
        """ @param verbosity: Verbosity level
            @param mutationVariate: Variate used for mutation. Defaults to None
            @param 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
Пример #5
0
    def __init__(self, evolino_network, dataset, **kwargs):
        """ @param evolino_network: an instance of NetworkWrapper()
            @param dataset: The evaluation dataset
            @param evalfunc: Compares output to target values and returns a scalar, denoting the fitness.
                             Defaults to -mse(output, target).
            @param wtRatio: Float array of two values denoting the ratio between washout and training length.
                            Defaults to [1,2]
            @param 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
Пример #6
0
    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
Пример #7
0
    def __init__(self, **kwargs):
        SimpleMutation.__init__(self)

        ap = KWArgsProcessor(self, kwargs)
        ap.add( 'mutationVariate', default=CauchyVariate() )
        self.mutationVariate.alpha = 0.001
    def __init__(self,model,dataset,**kwargs):
        ap = KWArgsProcessor(self, kwargs)

        Trainer.__init__(self, model)

        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(model.backprojectionFactor))
        model.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(model, dataset, **kwargs))

        self.model=model
        self.dataset=dataset
        genome = self.model.getGenome()
        self.population = EvolinoPopulation(EvolinoSubIndividual(genome),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