For each node X, over all time steps on a particular training
example i, we will accumulate some function
of the values node X outputs into a value
. We will call the correct answer (the correct target
value) for training instance i,
.
Now we have two continuous variables in i:
and
.
We can compute the correlation between them. We will call this the
credit score for node X, notated as
.
With
, we already have a simple Credit-Blame map: a
value associated with each node in the program that helps indicate its
contribution to the program. A neural program such that every node
X has a value of zero for
is, by definition, a
useless program. The reader should, however, be concerned with a
situation in which nodes X and Y produce values and node Z
computes an XOR of these two values. In this case, even if Z has a
high credit score, X and Y will not. And yet it is clear that
nodes X and Y are largely responsible for node Z's success. We
can continue to refine the Credit-Blame map to attend to this type of
indebtedness relationships.