Convert the values of type `loguniform` back to their initial range
        Also, we convert categorical:
        categorical values in search space are changed to list of numbers before,
        those original values will be changed back in this function
        
        Parameters
        ----------
        challenger_dict: dict
            challenger dict

        Returns
        -------
        dict
            dict which stores copy of challengers

def convert_loguniform_categorical(self, challenger_dict):
        """Convert the values of type `loguniform` back to their initial range
        Also, we convert categorical:
        categorical values in search space are changed to list of numbers before,
        those original values will be changed back in this function
        
        Parameters
        ----------
        challenger_dict: dict
            challenger dict

        Returns
        -------
        dict
            dict which stores copy of challengers
        """
        converted_dict = {}
        for key, value in challenger_dict.items():
            # convert to loguniform
            if key in self.loguniform_key:
                converted_dict[key] = np.exp(challenger_dict[key])
            # convert categorical back to original value
            elif key in self.categorical_dict:
                idx = challenger_dict[key]
                converted_dict[key] = self.categorical_dict[key][idx]
            else:
                converted_dict[key] = value
        return converted_dict