class GradientDescent extends Optimizer with Logging
Class used to solve an optimization problem using Gradient Descent.
- Source
- GradientDescent.scala
- Alphabetic
- By Inheritance
- GradientDescent
- Logging
- Optimizer
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
def
optimize(data: RDD[(Double, Vector)], initialWeights: Vector): Vector
Runs gradient descent on the given training data.
Runs gradient descent on the given training data.
- data
training data
- initialWeights
initial weights
- returns
solution vector
- Definition Classes
- GradientDescent → Optimizer
-
def
optimizeWithLossReturned(data: RDD[(Double, Vector)], initialWeights: Vector): (Vector, Array[Double])
Runs gradient descent on the given training data.
Runs gradient descent on the given training data.
- data
training data
- initialWeights
initial weights
- returns
solution vector and loss value in an array
-
def
setConvergenceTol(tolerance: Double): GradientDescent.this.type
Set the convergence tolerance.
Set the convergence tolerance. Default 0.001 convergenceTol is a condition which decides iteration termination. The end of iteration is decided based on below logic.
- If the norm of the new solution vector is greater than 1, the diff of solution vectors is compared to relative tolerance which means normalizing by the norm of the new solution vector.
- If the norm of the new solution vector is less than or equal to 1, the diff of solution vectors is compared to absolute tolerance which is not normalizing.
Must be between 0.0 and 1.0 inclusively.
-
def
setGradient(gradient: Gradient): GradientDescent.this.type
Set the gradient function (of the loss function of one single data example) to be used for SGD.
-
def
setMiniBatchFraction(fraction: Double): GradientDescent.this.type
Set fraction of data to be used for each SGD iteration.
Set fraction of data to be used for each SGD iteration. Default 1.0 (corresponding to deterministic/classical gradient descent)
-
def
setNumIterations(iters: Int): GradientDescent.this.type
Set the number of iterations for SGD.
Set the number of iterations for SGD. Default 100.
-
def
setRegParam(regParam: Double): GradientDescent.this.type
Set the regularization parameter.
Set the regularization parameter. Default 0.0.
-
def
setStepSize(step: Double): GradientDescent.this.type
Set the initial step size of SGD for the first step.
Set the initial step size of SGD for the first step. Default 1.0. In subsequent steps, the step size will decrease with stepSize/sqrt(t)
-
def
setUpdater(updater: Updater): GradientDescent.this.type
Set the updater function to actually perform a gradient step in a given direction.
Set the updater function to actually perform a gradient step in a given direction. The updater is responsible to perform the update from the regularization term as well, and therefore determines what kind or regularization is used, if any.