def gradient_descent(wb, dwdb, optimizer_args):
    """
    The simple gradient descent update.

    Parameters
    ----------
    wb : dict
        A dictionary of the weights/biases for each layer.
    dwdb : dict
        A dictionary of the gradients with respect to the weights and
        biases.
    optimizer_args : dict
        Optional optimizer configurations.

    Returns
    -------
    wb : dict
        A dictionary of the updated weights and biases.

    """
    for key in wb.keys():
        wb[key] = wb[key] - optimizer_args['learning_rate']*dwdb[key]
    return wb