Backward pass through the network, including update.

        Parameters
        ----------
        diff_x : numpy array
            A matrix containing the differences between the input and neurons.
        influences : numpy array
            A matrix containing the influence each neuron has on each
            other neuron. This is used to calculate the updates.
        activations : numpy array
            The activations each neuron has to each data point. This is used
            to calculate the BMU.

        Returns
        -------
        update : numpy array
            A numpy array containing the updates to the neurons.

def backward(self, diff_x, influences, activations, **kwargs):
        """
        Backward pass through the network, including update.

        Parameters
        ----------
        diff_x : numpy array
            A matrix containing the differences between the input and neurons.
        influences : numpy array
            A matrix containing the influence each neuron has on each
            other neuron. This is used to calculate the updates.
        activations : numpy array
            The activations each neuron has to each data point. This is used
            to calculate the BMU.

        Returns
        -------
        update : numpy array
            A numpy array containing the updates to the neurons.

        """
        bmu = self._get_bmu(activations)
        influence = influences[bmu]
        update = np.multiply(diff_x, influence)
        return update