def epsilon_greedy(state_vector, epsilon):
    """Returns an action selected by an epsilon-greedy exploration policy

    Args:
        state_vector (torch.FloatTensor): extracted vector representation
        theta (np.ndarray): current weight matrix
        epsilon (float): the probability of choosing a random command

    Returns:
        (int, int): the indices describing the action/object to take
    """
    if np.random.binomial(1, epsilon):
        action_index, object_index =  np.random.randint(0, NUM_ACTIONS), np.random.randint(0, NUM_OBJECTS)
    else:
        act_arr, obj_arr = model(state_vector)
        action_index, object_index = torch.argmax(act_arr), torch.argmax(obj_arr)
    return (action_index, object_index)