Il n'est pas exagéré de dire que la «normalisation» est la technologie la plus utilisée pour le prétraitement des ensembles de données en apprentissage automatique. Il est utilisé à divers endroits car il est possible de gérer des nombres de dimensions différentes et des échelles de même taille en appliquant une normalisation. Cette normalisation n'est rien d'autre qu'une quantité sans dimension telle que la division de la quantité par une valeur représentative afin qu'elles puissent être comparées entre elles. Cette fois, je vais partager sur cette méthode.
Cette section décrit la méthode de normalisation la plus utilisée qui exprime une certaine valeur contenue dans un certain ensemble de données de 0 à 1.
1.1. encode La formule lorsque la valeur à normaliser dans un certain ensemble de données $ \ mathbb {D} $ est $ x $ est la suivante.
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} }
Le code Python est ci-dessous.
def min_max_encode(self, x, source_min, source_max):
return (x - source_min) / ( source_max - source_min)
1.2. decode Ensuite, le décodage est effectué comme suit. Ici, $ x_ {norm} $ est la valeur convertie par encodage.
x = x_{norm}x_{max} - x_{norm}x_{min} + x_{min}
Expression d'expression:
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} }\\
x_{norm}x_{max} - x_{norm}x_{min} = x - x_{min} \\
x_{norm}x_{max} - x_{norm}x_{min} + x_{min} = x
Le code Python est ci-dessous.
def min_max_decode(self, x_norm, source_min, source_max):
return (x_norm * source_max) - (x_norm * source_min) + source_min
Lors de l'utilisation de «hard-tanh», etc. dans la fonction d'activation telle que l'apprentissage en profondeur, la valeur d'entrée peut également être convertie en «-1 ~ + 1». Je voudrais également mentionner la normalisation en ce moment.
2.1. encode La formule lorsque la valeur à normaliser dans un certain ensemble de données $ \ mathbb {D} $ est $ x $ est la suivante.
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} } \cdot 2 - 1
Le code Python est ci-dessous.
def min_max_encode(self, x, source_min, source_max):
return (((x - source_min) / ( source_max - source_min) ) * 2.0) - 1.0
2.2. decode Ensuite, le décodage est effectué comme suit. Ici, $ x_ {norm} $ est la valeur convertie par encodage.
x = \dfrac{x_{norm}x_{max} - x_{norm}x_{min} + x_{max} + x_{min}}{2}
Expression d'expression:
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} } \cdot 2 - 1 \\
\dfrac{x_{norm} + 1}{2} = \dfrac{x - x_{min}}{x_{max} - x_{min} }\\
\dfrac{(x_{norm} + 1)(x_{max} - x_{min})}{2}=(x - x_{min})\\
\dfrac{x_{norm}x_{max} - x_{norm}x_{min} + x_{max} - x_{min}}{2}+x_{min}=x\\
\dfrac{x_{norm}x_{max} - x_{norm}x_{min} + x_{max} + x_{min}}{2} = x
Le code Python est ci-dessous.
def min_max_decode(self, x_norm, source_min, source_max):
return ((x_norm * source_max) - (x_norm * source_min) + source_max + source_min) * 0.5
Recommended Posts