• Github
Table of Contents
0.17.0.0+7
  • Welcome to PsyNeuLink
  • Basics and Primer
  • Quick Reference
  • Core
  • Library
  • Contributors Guide
  • Docs >
  • Library >
  • Compositions >
  • CompositionFunctionApproximator >
  • RegressionCFA
Shortcuts

RegressionCFA¶

Contents¶

  • Overview

  • Class Reference

Overview¶

A RegressionCFA is a subclass of CompositionFunctionApproximator that parameterizes a set of regression_weights over trials to predict the net_outcome for a Composition (or part of one) controlled by an OptimizationControlMechanism. The regression_weights are updated by its update_weights LearningFunction assigned as its adapt method, which is called by the evaluate method to predict the net_outcome for a Composition (or part of one) controlled by an OptimizationControlMechanism, based on a set of state_feature_values, a control_allocation, and the net_outcome they produced, passed to it from an OptimizationControlMechanism.

The state_feature_values and control_allocation passed to the RegressionCFA’s adapt method, and provided as the input to its update_weights, are represented in the vector attribute of a PredictionVector assigned to the RegressionCFA`s prediction_vector attribute. The state_feature_values are assigned to the state_features field of the prediction_vector, and the control_allocation is assigned to the control_allocation field of the prediction_vector. The prediction_vector may also contain fields for the costs ControlMechanism.costs associated with the control_allocation and for interactions among those terms.

The regression_weights returned by the update_weights are used by the RegressionCFA’s evaluate method to predict the net_outcome from the prediction_vector.

Class Reference¶

class psyneulink.library.compositions.regressioncfa.PV¶

Specifies terms used to compute vector attribute of PredictionVector.

F¶

Main effect of state_feature_values.

C¶

Main effect of values of control_signals.

FF¶

Interaction among state_feature_values.

CC¶

Interaction among values of control_signals.

FC¶

Interaction between state_feature_values and values of control_signals.

FFC¶

Interaction between interactions of state_feature_values and values of control_signals.

FCC¶

Interaction between state_feature_values and interactions among values of control_signals.

FFCC¶

Interaction between interactions of state_feature_values and interactions among values of control_signals.

COST¶

Main effect of costs of control_signals.

class psyneulink.library.compositions.regressioncfa.RegressionCFA(name=None, update_weights=None, prediction_terms=None)¶
RegressionCFA(

update_weights=BayesGLM, prediction_terms=[PV.F, PV.C, PV.COST])

Subclass of CompositionFunctionApproximator that implements a CompositionFunctionApproximator as the agent_rep of an OptimizationControlMechanism.

See CompositionFunctionApproximator for additional arguments and attributes.

Parameters:
  • update_weights (LearningFunction, function or method : default BayesGLM) – parameterizes the regression_weights used by the evaluate method to improve its prediction of net_outcome from a given set of state_feature_values and a control_allocation provided by an OptimizationControlMechanism. It must take a 2d array as its first argument, the first item of which is an array the same length of the vector attribute of its prediction_vector, and the second item a 1d array containing a scalar value that it tries predict.

  • prediction_terms (List[PV] : default [PV.F, PV.C, PV.COST]) – terms to be included in (and thereby determines the length of) the vector attribute of the prediction_vector; items are members of the PV enum; the default is [F, C FC, COST]. If None is specified, the default values will automatically be assigned.

update_weights¶

parameterizes the regression_weights used by the evaluate method to improve prediction of net_outcome from a given set of state_feature_values and a control_allocation provided by an OptimizationControlMechanism; its result is assigned as the value of the regression_weights attribute.

Type:

LearningFunction, function or method

prediction_terms¶

terms included in vector attribute of the prediction_vector; items are members of the PV enum; the default is [F, C FC, COST].

Type:

List[PV]

prediction_vector¶

represents and manages values in its vector attribute that are used by evaluate, along with regression_weights to make its prediction. The values contained in the vector attribute are determined by prediction_terms.

Type:

PredictionVector

regression_weights¶

result returned by update_weights method together with prediction_vector to generate predicted net_outcome.

Type:

1d array

class Parameters(owner, parent=None)¶
prediction_vector¶

see prediction_vector

Default value:

None

Type:

previous_state¶

see previous_state

Default value:

None

Type:

regression_weights¶

see regression_weights

Default value:

None

Type:

update_weights¶

see update_weights

Default value:

BayesGLM

Type:

Function

initialize(features_array, control_signals, context)¶

Assign owner and instantiate prediction_vector

Must be called before RegressionCFA’s methods can be used.

adapt(feature_values, control_allocation, net_outcome, context=None)¶

Update regression_weights so as to improve prediction of net_outcome from state_feature_values and control_allocation.

evaluate(feature_values, control_allocation, num_estimates, num_trials_per_estimate, context)¶

Update prediction_vector <RegressionCFA.prediction_vector>`, then multiply by regression_weights.

Uses the current values of regression_weights together with values of state_feature_values and control_allocation arguments to generate predicted net_outcome.

Note

If this method is assigned as the objective_funtion of a `GradientOptimization Function, it is differentiated using PyTorch autograd’s grad.

class PredictionVector(feature_values, control_signals, specified_terms)¶

Maintain a vector of terms for a regression model specified by a list of specified_terms.

Terms are maintained in lists indexed by the PV Enum and, in “flattened” form within fields of a 1d array in vector indexed by slices listed in the idx attribute.

Parameters:
  • feature_values (2d array) – arrays of state_features to assign as the PV.F term of terms.

  • control_signals (List[ControlSignal]) – list containing the ControlSignals of an OptimizationControlMechanism; the variable of each is assigned as the PV.C term of terms.

  • specified_terms (List[PV]) – terms to include in vector; entries must be members of the PV Enum.

specified_terms¶

terms included as predictors, specified using members of the PV Enum.

Type:

List[PV]

terms¶

current value of ndarray terms, some of which are used to compute other terms. Only entries for terms in specified_terms are assigned values; others are assigned None.

Type:

List[ndarray]

num¶

number of arrays in outer dimension (axis 0) of each ndarray in terms. Only entries for terms in specified_terms are assigned values; others are assigned None.

Type:

List[int]

num_elems¶

number of elements in flattened array for each ndarray in terms. Only entries for terms in specified_terms are assigned values; others are assigned None.

Type:

List[int]

self.labels¶

label of each item in terms. Only entries for terms in specified_terms are assigned values; others are assigned None.

Type:

List[str]

vector¶

contains the flattened array for all ndarrays in terms. Contains only the terms specified in specified_terms. Indices for the fields corresponding to each term are listed in idx.

Type:

ndarray

idx¶

indices of vector for the flattened version of each nd term in terms. Only entries for terms in specified_terms are assigned values; others are assigned None.

Type:

List[slice]

update_vector(variable, feature_values=None, context=None)¶

Update vector with flattened versions of values returned from the compute_terms method of the prediction_vector.

Updates vector with current values of variable and, optionally, and state_feature_values.

compute_terms(control_allocation, context=None)¶

Calculate interaction terms.

Results are returned in a dict; entries are keyed using names of terms listed in the PV Enum. Values of entries are nd arrays.

Next Previous

© Copyright 2016, Jonathan D. Cohen.

Built with Sphinx using a theme provided by Read the Docs.
  • RegressionCFA
    • Contents
    • Overview
    • Class Reference
    • PV
      • PV.F
      • PV.C
      • PV.FF
      • PV.CC
      • PV.FC
      • PV.FFC
      • PV.FCC
      • PV.FFCC
      • PV.COST
    • RegressionCFA
      • RegressionCFA.update_weights
      • RegressionCFA.prediction_terms
      • RegressionCFA.prediction_vector
      • RegressionCFA.regression_weights
      • RegressionCFA.Parameters
        • RegressionCFA.Parameters.prediction_vector
        • RegressionCFA.Parameters.previous_state
        • RegressionCFA.Parameters.regression_weights
        • RegressionCFA.Parameters.update_weights
      • RegressionCFA.initialize()
      • RegressionCFA.adapt()
      • RegressionCFA.evaluate()
      • RegressionCFA.PredictionVector
        • RegressionCFA.PredictionVector.specified_terms
        • RegressionCFA.PredictionVector.terms
        • RegressionCFA.PredictionVector.num
        • RegressionCFA.PredictionVector.num_elems
        • RegressionCFA.PredictionVector.self.labels
        • RegressionCFA.PredictionVector.vector
        • RegressionCFA.PredictionVector.idx
        • RegressionCFA.PredictionVector.update_vector()
        • RegressionCFA.PredictionVector.compute_terms()
  • Github