/** * Creates steepest ascent direction from gradient and L1-regularization. */ private void makeSteepestDescDir() { if (l1Weight == 0) { for (int i = 0; i < grad.length; i++) { direction[i] = -grad[i]; } } else { for (int i = 0; i < grad.length; i++) { if (parameters[i] < 0) { direction[i] = -grad[i] + l1Weight; } else if (parameters[i] > 0) { direction[i] = -grad[i] - l1Weight; } else { if (grad[i] < -l1Weight) { direction[i] = -grad[i] - l1Weight; } else if (grad[i] > l1Weight) { direction[i] = -grad[i] + l1Weight; } else { direction[i] = 0; } } } } storeSrcInDest(direction, steepestDescentDirection); }
/** * Creates steepest ascent direction from gradient and L1-regularization. */ private void makeSteepestDescDir() { if (l1Weight == 0) { for (int i = 0; i < grad.length; i++) { direction[i] = -grad[i]; } } else { for (int i = 0; i < grad.length; i++) { if (parameters[i] < 0) { direction[i] = -grad[i] + l1Weight; } else if (parameters[i] > 0) { direction[i] = -grad[i] - l1Weight; } else { if (grad[i] < -l1Weight) { direction[i] = -grad[i] - l1Weight; } else if (grad[i] > l1Weight) { direction[i] = -grad[i] + l1Weight; } else { direction[i] = 0; } } } } storeSrcInDest(direction, steepestDescentDirection); }
/** * Creates steepest ascent direction from gradient and L1-regularization. */ private void makeSteepestDescDir() { if (l1Weight == 0) { for (int i = 0; i < grad.length; i++) { direction[i] = -grad[i]; } } else { for (int i = 0; i < grad.length; i++) { if (parameters[i] < 0) { direction[i] = -grad[i] + l1Weight; } else if (parameters[i] > 0) { direction[i] = -grad[i] - l1Weight; } else { if (grad[i] < -l1Weight) { direction[i] = -grad[i] - l1Weight; } else if (grad[i] > l1Weight) { direction[i] = -grad[i] + l1Weight; } else { direction[i] = 0; } } } } storeSrcInDest(direction, steepestDescentDirection); }
storeSrcInDest(parameters, oldParameters); storeSrcInDest(grad, oldGrad);
storeSrcInDest(parameters, oldParameters); storeSrcInDest(grad, oldGrad);
storeSrcInDest(parameters, oldParameters); storeSrcInDest(grad, oldGrad);
storeSrcInDest(parameters, oldParameters); storeSrcInDest(grad, oldGrad); backTrackingLineSearch();
storeSrcInDest(parameters, oldParameters); storeSrcInDest(grad, oldGrad); backTrackingLineSearch();
storeSrcInDest(parameters, oldParameters); storeSrcInDest(grad, oldGrad); backTrackingLineSearch();