[ 
https://issues.apache.org/jira/browse/MADLIB-1206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16380832#comment-16380832
 ] 

Nandish Jayaram commented on MADLIB-1206:
-----------------------------------------

Proposed workflow, please comment for improving/changing it:

The input table must be pre-processed using 
https://issues.apache.org/jira/browse/MADLIB-1200. The output of the 
pre-processing step is the input to MLP for mini-batch.

{code}

mlp_classification(
    source_table, -- for minibatch use output_table from preprocessor
    output_table,
    independent_varname, -- can be NULL for minibatch
    dependent_varname, -- can be NULL for minibatch   
    hidden_layer_sizes,
    optimizer_params,
    activation,
    weights,
    warm_start,
    verbose,
    grouping_col  -- can be NULL for minibatch 
    )

{code}

Params we don’t need to specify above since we have info from pre-processing 
step:
 * Independent vars
 * Dependent vars
 * Grouping cols

Optimizer parameters:

{code}

'learning_rate_init = <value>,
 learning_rate_policy = <value>,
 gamma = <value>,
 power = <value>,
 iterations_per_step = <value>,
 n_iterations = <value>,
 n_tries = <value>,
 lambda = <value>,
 tolerance = <value>,

 batch_size = <value>, -- for minibatch

 n_epochs = <value>’   -- for minibatch

{code}
Pros:
 * Single MLP interface
 * Explicit signal that user wants to minibatch (no unintended consequences of 
forget to drop table)

Cons:
 * User has to do separate preprocessor step
 * MLP has 3 redundant parameters for MLP that have to be explained 

Rules:
 * Independent_varname, dependent_varname, grouping_col can be NULL if MLP 
using mini batching.  However, if they are specified using mini-batching, they 
must match that params from the preprocessor, or else throw an error. We don’t 
want the user to change one of these parameters in MLP and expect a different 
outcome.

Note that the above interface applies accordingly for mlp_regression as well.

> Add mini batch based gradient descent support to MLP
> ----------------------------------------------------
>
>                 Key: MADLIB-1206
>                 URL: https://issues.apache.org/jira/browse/MADLIB-1206
>             Project: Apache MADlib
>          Issue Type: New Feature
>          Components: Module: Neural Networks
>            Reporter: Nandish Jayaram
>            Assignee: Nandish Jayaram
>            Priority: Major
>             Fix For: v1.14
>
>
> Mini-batch gradient descent is typically the algorithm of choice when 
> training a neural network.
> MADlib currently supports IGD, we may have to add extensions to include 
> mini-batch as a solver for MLP. Other modules will continue to use the 
> existing IGD that does not support mini-batching. Later JIRAs will move other 
> modules over one at a time to use the new mini-batch GD.
> Related JIRA that will pre-process the input data to be consumed by 
> mini-batch is https://issues.apache.org/jira/browse/MADLIB-1200



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to