Thank you @cogmission. I got your point about hierarchy (Region and layer).
Basically I am understanding and playing with different tests in the PersistenceAPITest. I have noticed that while creating network,we initialize it with the different parameters.
For exmaple in getLoadedHotGymNetwork_FileSensor
Parameters p = NetworkTestHarness.getParameters().copy();
p = p.union(NetworkTestHarness.getHotGymTestEncoderParams());
p.set(KEY.RANDOM, new FastRandom(42));
p.set(KEY.INFERRED_FIELDS, getInferredFieldsMap("consumption", CLAClassifier.class));
These parameters have different static values. As in the NetworkTestHarness.getParameters()
public static Parameters getParameters() {
Parameters parameters = Parameters.getAllDefaultParameters();
parameters.set(KEY.INPUT_DIMENSIONS, new int[] { 8 });
parameters.set(KEY.COLUMN_DIMENSIONS, new int[] { 20 });
parameters.set(KEY.CELLS_PER_COLUMN, 6);
//SpatialPooler specific
parameters.set(KEY.POTENTIAL_RADIUS, -1);//3
parameters.set(KEY.POTENTIAL_PCT, 0.5);//0.5
parameters.set(KEY.GLOBAL_INHIBITION, false);
parameters.set(KEY.LOCAL_AREA_DENSITY, -1.0);
parameters.set(KEY.NUM_ACTIVE_COLUMNS_PER_INH_AREA, 5.0);
parameters.set(KEY.STIMULUS_THRESHOLD, 1.0);
parameters.set(KEY.SYN_PERM_INACTIVE_DEC, 0.01);
parameters.set(KEY.SYN_PERM_ACTIVE_INC, 0.1);
parameters.set(KEY.SYN_PERM_TRIM_THRESHOLD, 0.05);
parameters.set(KEY.SYN_PERM_CONNECTED, 0.1);
parameters.set(KEY.MIN_PCT_OVERLAP_DUTY_CYCLES, 0.1);
parameters.set(KEY.MIN_PCT_ACTIVE_DUTY_CYCLES, 0.1);
parameters.set(KEY.DUTY_CYCLE_PERIOD, 10);
parameters.set(KEY.MAX_BOOST, 10.0);
parameters.set(KEY.SEED, 42);
//Temporal Memory specific
parameters.set(KEY.INITIAL_PERMANENCE, 0.2);
parameters.set(KEY.CONNECTED_PERMANENCE, 0.8);
parameters.set(KEY.MIN_THRESHOLD, 5);
parameters.set(KEY.MAX_NEW_SYNAPSE_COUNT, 6);
parameters.set(KEY.PERMANENCE_INCREMENT, 0.05);
parameters.set(KEY.PERMANENCE_DECREMENT, 0.05);
parameters.set(KEY.ACTIVATION_THRESHOLD, 4);
return parameters;
}
All parameters have their own significance and they could be set with different values during declaring the network.
I have studied the significance of few parameters stated in the documents “BAMI SP algorithm” and “BAMI SP algorithm” v0.5 as given in the topic
HTM Parameters for Dummies . For example we could have different values of columnDimensions, inputDimensions, potentialRadius and globalInhibition (which could be true or false). Different values of parameters used in different scenarios and they can impact the output of network, like we would have multiple cells per column when we want to recognize time-based sequences and we would have single cells per column when we want first order prediction (static spatial inference).
I have a question that is there any approach exists or work done to identify (predict) values of different parameters with respect to domain problem?
Like genetic algorithms are used for such purpose !
Or we have generic values of parameters that could be applicable on any problem and return optimized results?
Regards,
@Usama_Furqan