Designing New Models from Old Models

Refreshing a Model
 
With time models get out of date and a little refreshing is required. With GeneXproTools 4.0 refreshing models is easy. For models created by GeneXproTools, you just have to replace the old training set (that is, the data set that was used to create the model you want to refresh) with the new one. You can do that in the Data Panel -> Training Set Tab or by choosing Change Training Data in the Data Menu.

Then we recommend you go to the Results Panel and check how the old model fares in this training set, as sometimes calculation errors might occur with new data, which obviously will render the model unviable in this new environment. If that is the case, you'll have to check carefully your new data and get rid of the problematic samples that are causing the errors in order to make it viable, otherwise you won't be able to use it as seed for starting the refreshing process. 

Thus, after making sure that your old model is viable in this new data set, you just go to the Run Panel and press the Optimize button. By doing that you are starting a new evolutionary process where all the best-of-generation models are refreshed models, much better adapted to the new circumstances than the old model.

For models created outside of GeneXproTools, a new .gep run must be created using the new data set for training. Then the old model is fed into GeneXproTools through the Change Seed window where both the fitness and structural soundness of the model can be tested. In this case, you will need to know how to convert the model into Karva code, as the Change Seed window only accepts Karva code.

The easiest way of translating your model into Karva code, consists of representing your model in a tree structure and then create a linear representation of the parse tree by writing down all the nodes in the tree from top to bottom and from left to right. You will end up with a K-expression that you can, with only a small modification, use as seed.

For instance, the expression tree below:

can be represented linearly by the following K-expression:

/.d1./.-.Exp.Exp.Ln.d2.d2.d2

Now you only need to incorporate this K-expression into a correct gene structure, with a head and a tail correctly defined. A simple way of doing this, consists of considering the entire K-expression the head of your gene and then add a tail (with the correct length, of course) containing only terminals (which terminals you add is irrelevant as these terminals will not interfere with the expression of your K-expression). For instance, the K-expression above could be correctly accommodated into the following gene:

/.d1./.-.Exp.Exp.Ln.d2.d2.d2.d0.d0.d0.d0.d0.d0.d0.d0.d0.d0.d0

Then you just have to create a new run in GeneXproTools and evolve quickly (for one generation is enough) a proto-model with exactly the same structure you’ll need for integrating your seed model (that is, number of genes, head size, linking function, function set, etc.), and then replace this proto-model in the Change Seed window by your seed.

Then, in the Run Panel, by clicking the Optimize button, an evolutionary process starts in which all the subsequent models will be descendants of the model you want to refresh, being all the best-of-generation models refreshed models, much better adapted to the new circumstances than the old model.

Home | Contents | Previous | Next