Cognitive Processor Genes ========================= Genes, also known as Genetically Configurable Prarameters (GCPs), are parameters on a Cognitive Processor that are user-configurable. These parameters impact how the Cognitive Processor predicts, what state the Processor is in, and how it learns new information. The current values of all genes can be found by utilzing the AgentClient function :func:`get_all_genes() `. Genes can be updated using the AgentClient function :func:`change_genes() ` .. note:: The default values of Genes for each Cognitive Processor is set in the Genome for the GAIuS Agent. These values can be edited by selecting the corresponding processor in IA's Connectome Creator, or by editing the Genome file manually. Gene Information ================ always_update_frequencies ------------------------- .. warning:: Placeholder gene that will either get implemented or be removed in a future update. auto_learn_algorithm -------------------- This gene controls how the WM is processed, and modified when the `auto_learn_metric`_ reaches its relevant threshold. Possible values are: * basic .. note:: The default value is 'basic'. auto_learn_metric ----------------- This gene controls which metric is checked when determining if the CongitiveProcessor should learn its current WM using the set `auto_learn_algorithm`_ before the next observation. Threshold value is different for different for different metrics. Possible values are: * wm_size thresholded by `max_sequence_length`_ * entropy thresholded by `smoothness`_ .. note:: The default value is 'wm_size'. Meaning that when the WM reaches the length defined in `max_sequence_length`_ events at the beginning of WM are removed until its length is less than `max_sequence_length`_. classifier ---------- The vector classifier to be utilized by the Cognitive Processor. Possible values are: * "CVC": utilizes Euclidean distance to find nearest vectors in the learned vector space. * "DVC": utilizes an iterative deeping searcha algorithm of the learned vector space. .. note:: The default value for classifier is "CVC". enable_genome_snapshots ----------------------- This gene controls whether genes are kept track of over snapshot windows of the observed states are captured and synced based on the metdata passed along with observed data. Possible values are: * True * False .. note:: The default value for enable_genome_snapshots is False. Only occurs if `enable_genome_snapshots`_ is True. enable_predictions_kb --------------------- This gene controls whether a prediction_kb is kept on the CongitiveProcessor to reduce the computation cost of creating predictions for already observed/learned sequences. Possible values are: * True * False .. note:: The default value for enable_predictions_kb is False. enable_snapshots ---------------- This gene controls whether a snapshot window of the observed states are captured and synced based on the metdata passed along with observed data. Possible values are: * True * False .. note:: The default value for enable_snapshots is False. max_predictions --------------- This gene controls the number of predictions returned by the Cognitive Processor. When the user wants only a single "best" prediction to be returned, this gene should be reduced to 1 .. note:: The default value for max_predictions is 100 predcitions. Max value is 10000. max_sequence_length ------------------- Controls the max number of items permitted in the working memory at a time. This gene should be used in conjunction with wm_resultion to delimit the number of elements allowed in the Working Memory. When data observed surpasses this value, entire events are dropped from the Working Memory until the threshold is met. If AUTOLEARN is enabled, then the entire sequence is learned once the max sequence length is attained. In this case, only the final event is retained in the working memory after learning. .. note:: The default value for max_sequence_length defaults to 0, meaning there is no max sequence length enforced (unlimited sequence length allowed) near_vector_count ----------------- This gene controls the number of nearest neighbors "pulled in" when observing vector data. For example, if near_vector_count is set to 2, then the 2 nearest neighbors will also be added to the working memory in the same event. When not utilizing vector data in the GDFs, this gene has no effect. persistence ----------- This gene controls the number of historical values which are maintained for a single emotive inside a Model. When the same model is learned by the CongitiveProcessor the new emotive value will push the older values out when the persistence threshold is reached. It can be any integer value greater than 0. .. note:: The default value for persistence is 7. predict_on_nth_event -------------------- This gene controls when predictions should be generated from observations. Meaning that if *predict_on_nth_event* was set to 4; then 4 events would need to be observed before predictions would be made. .. note:: The default value for predict_on_nth_event is 1. Meaning that predictions are generated on each observe. prediction_sort_metric ---------------------- This gene controls which metric determines how predictions are ranked. The possible values are: * similarity * number_of_blocks * potential * evidence * fragmentation * snr * entropy * hamiltonian * grand_hamiltonian * confluence * confidence * itfdf_similarity .. note:: The default value for prediction_sort_metric "Potential", but all numeric metrics from the prediction object are supported. prediction_threshold -------------------- This gene controls the threshold value for Predictions according to the metric defined in `prediction_threshold_metric`_. The range of values are double values greater than 0.0. **WARNING: Too high of a value will prevent any Predictions from being returned.** .. note:: The default value for prediction_threshold is 0.0 meaning no Predictons are dropped when they are created. prediction_threshold_direction ------------------------------ This gene controls the direction of the thresholding either 'greater than' or 'less than'. The range of values is boolean either false(less than) or true(greater than). .. note:: The default value for prediction_threshold_direction is the typical false(less than). prediction_threshold_metric --------------------------- This gene controls which metric is used to threshold Predictions and remove them from results. The possible values are: * similarity * number_of_blocks * potential * evidence * fragmentation * snr * entropy * hamiltonian * grand_hamiltonian * confluence * confidence * itfdf_similarity .. note:: The default value for prediction_threshold_metric is "Potential" recall_threshold ---------------- The recall threshold controls the percentage of a sequence that must match in in order for a prediction to be created. This value is a float that ranges from 0.0 to 1.0. In addition to :func:`change_genes() `, this value can be altered using :func:`increment_recall_threshold() `. In general, for tighter sequence matching use a higher recall_threshold value. For looser sequence matching, use a lower recall_threshold (typically ~ 0.1). .. note:: The default value for recall_threshold is 0.1. .. quiescence .. ---------- search_depth ------------ This gene controls the max depth to search in the learned vector space utilizing the "DVC" vector classifier algorithm. Only used when `classifier`_ == "DVC". .. note:: The default value for search_depth is 10. SORT ---- This gene controls whether the sequence is sorted by the Cognitive Processor during processing. When the user wishes to retain the original ordering of symbols then should set SORT to False. .. note:: The default value is True. smoothness ---------- This gene controls the max allowed entropy in the Prediction Ensemble before an auto-learn is triggered. .. note:: The default value for smoothness is 3.0. snapshot_gen_predictions ------------------------ This gene controls whether predictions are generated on loading of snapshots. This is useful when only appending emotives data on top of previously observed symbolic data. Possible values: * True * False .. note:: The default value for snapshot_gen_predictions is False. wm_resolution ------------- The resolution at which the `max_sequence_length`_ is computed. This gene can either be "symbol" or "event". When symbol, all symbols in an event count towards the max sequence length. When event is selected, the max sequence length is computed as the number of events. .. note:: The default value for wm_resolution is "symbol".