[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [IMP-dev] sampler vs. optimizer



On May 19, 2012, at 3:13 AM, Yannick Spill wrote:

> I agree with Riccardo. If I understand correctly, a sampler is some sort of ensemble generator isn't it?
To put it another way, in IMP, and Optimizer optimizes the current model in some way, where as a Sampler produces a sample using some scheme.


> Is it equivalent to run the sampler once and an optimizer N times (one like brownian dynamics, that would return N different suboptimal states)?
It could be, depending on the sampler (one would typically want to do more than just run an optimizer in order to sample well). That is, running BD n times is a rather worse way of sampling than say, repeating n iterations of randomizing and then running BD (assuming you can randomize well). One has to balance local steps with large ones and all our optimizers are local in various senses.

> 
> Le 19/05/12 00:28, Riccardo Pellarin a écrit :
>> Daniel, this classification is still confusing.
>> In general, a sampler is a conformation generation scheme that follows a
>> probability distribution: uniform (as in the example given by Daniel),
>> Boltzmann (constant temperature MD or BD, as well as Monte Carlo with
>> set_return_best(False)) or posterior probability (such as the Gibbs
>> sampling in ISD).
>> 
>> An optimizer instead only aims at lowest energies (Conjugated
>> Gradient, Steepest Descent... Monte Carlo with set_return_best(True))
>> 
>> On Fri, May 18, 2012 at 2:13 PM, Daniel Russel<>  wrote:
>>> An optimizer attempts to improve the current configuration of the Model by
>>> modifying optimized particle attributes so as to lower the score (there are
>>> some exceptions such as Brownian Dynamics when in equilibrium, but those
>>> are, I think, self-explanatory). The primary effect is to change particle
>>> attributes.
>>> 
>>> A Sampler in contrast tries to produce a number of good configurations of
>>> the Model, often completely ignoring the Model's starting configuration (by
>>> randomizing particles, for example). It returns ConfigurationSet that allows
>>> you to load a configuration into the Model and then view it, save it or
>>> score it. The final state of the particles after using a Sampler is
>>> undefined.
>>> 
>>> Each of Optimizer and Sampler can be given a ScoringFunction that will then
>>> be used when evaluating and optimizing. By default it is
>>> Model::create_scoring_function(), but one created with any other set of
>>> restraints (a ScoringFunction will be created on the fly from a list of
>>> restraints if you pass one instead).
>>> 
>>> 
>>> On Fri, May 18, 2012 at 1:22 PM, Dina Schneidman<>  wrote:
>>>> Hi,
>>>> 
>>>> I am trying to figure out the difference between sampler and optimizer.
>>>> When each one should be used/developed? What is the relationship between
>>>> them?
>>>> How each one works with restraints and scoring functions?
>>>> 
>>>> Dina
>>>> _______________________________________________
>>>> IMP-dev mailing list
>>>> 
>>>> https://salilab.org/mailman/listinfo/imp-dev
>>> 
>>> 
>>> _______________________________________________
>>> IMP-dev mailing list
>>> 
>>> https://salilab.org/mailman/listinfo/imp-dev
>>> 
>> _______________________________________________
>> IMP-dev mailing list
>> 
>> https://salilab.org/mailman/listinfo/imp-dev
> 
> _______________________________________________
> IMP-dev mailing list
> 
> https://salilab.org/mailman/listinfo/imp-dev