code: public void learn(double[][] x, int[] y) {
          int n = x.length;
          int[] index = Math.permutate(n);
          for (int i = 0; i < n; i++) {
              learn(x[index[i]], y[index[i]]);
          }
      }
docs: Trains the neural network with the given dataset for one epoch by
  stochastic gradient descent.
  
  @param x training instances.
  @param y training labels in [0, k), where k is the number of classes.