docs: 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.
          differency_y : numpy array
              The differences between the input and context neurons.
  
          Returns
          -------
          updates : tuple of arrays
              The updates to the weights and context weights, respectively.
  
          """
          diff_y = kwargs['diff_y']
          bmu = self._get_bmu(activations)
          influence = influences[bmu]
  
          # Update
          x_update = np.multiply(diff_x, influence)
          y_update = np.multiply(diff_y, influence)
  
          return x_update, y_update