class AdaptiveDecoding(object):
Known subclasses: cma.transformations.DiagonalDecoding
Constructor: AdaptiveDecoding(scaling)
base class for adaptive decoding.
The adaptive decoding class is "dual" to the StasticalModel class, in that for linear transformations adapting either one or the other is equivalent.
TODO: this is a stump
Method | __init__ |
len(scaling) determines the dimension. |
Method | __mul__ |
A linear transformation expressed by multiplication |
Method | norm |
return norm of x prior to the transformation |
Method | transform |
apply the transformation / decoding AKA geno-pheno tf |
Method | transform |
inverse transformation (encoding), might return None |
Method | update |
AKA update. |
Method | update |
update model here, if lazy update is implemented |
Property | condition |
return condition number of the squared transformation matrix |
Property | correlation |
return correlation matrix or None |
cma.transformations.DiagonalDecoding
len(scaling) determines the dimension.
The initial transformation is (typically) np.diag(scaling)
.
cma.transformations.DiagonalDecoding
A linear transformation expressed by multiplication
cma.transformations.DiagonalDecoding
apply the transformation / decoding AKA geno-pheno tf
cma.transformations.DiagonalDecoding
inverse transformation (encoding), might return None
cma.transformations.DiagonalDecoding
AKA update.
vectors are "isotropic", e.g.:
sm = StatisticalModel...() ad = AdaptiveDecoding...() z = sm.sample(1)[0] y = ad * z # decoding applied x = m + y # candidate solution ad.tell([sm.transform_inverse(z)], [0.1]) sm.update([y / ad], [0.01]) # remark that y / ad != z
where the symmetric transformation sm.transform_inverse(z) makes z isotropic.
TODO: what exactly does this mean, is this a generic construction, is this even the right construction?
Parameters | |
vectors | is a list of samples. |
weights | define a learning rate for each vector. |
cma.transformations.DiagonalDecoding
return condition number of the squared transformation matrix