code: def minimum_eigen_vector(x, num_steps, learning_rate, vector_prod_fn):
      """Computes eigenvector which corresponds to minimum eigenvalue.
  
      Args:
        x: initial value of eigenvector.
        num_steps: number of optimization steps.
        learning_rate: learning rate.
        vector_prod_fn: function which takes x and returns product H*x.
  
      Returns:
        approximate value of eigenvector.
  
      This function finds approximate value of eigenvector of matrix H which
      corresponds to smallest (by absolute value) eigenvalue of H.
      It works by solving optimization problem x^{T}*H*x -> min.
      """
      x = tf.nn.l2_normalize(x)
      for _ in range(num_steps):
          x = eig_one_step(x, learning_rate, vector_prod_fn)
      return x
  
file_path: cleverhans/cleverhans/experimental/certification/utils.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import tensorflow
label_desc: Use image node_id 4 for calling a global function with example usage: minimum_eigen_vector(x, num_steps, learning_rate, vector_prod_fn) and returns: x