Uno de los skills más eficaces en la administración de dato, por su velocidad en python, es MiniRocket, que fue construido en Python. A continuación, hablaremos de algunas de sus características clave.
Hiperparámetro de peso
Rocket selecciona aleatoriamente pesos de una distribución normal entre 0 y 1; pero MiniRocket restringe los valores de ponderación a -1 o 2. Por eso,
MiniRocket restringe aún más su conjunto de núcleos a aquellos que tienen exactamente 3 valores de 2 (por ejemplo, [1, 1, 1, 1, 1, 1, 2, 2, 2]) .
El hecho de que MiniRocket utilice exactamente 2 valores fijos para sus parámetros de peso es fundamental para optimizar la velocidad. De hecho, el valor exacto y la escala de los dos valores de peso seleccionados no son importantes, siempre que los pesos del grano sumen 0. Esto asegura que los granos sean sensibles solo a la magnitud relativa de los valores de entrada. Como sin dudas sabes, el manejo de datos de Python puede volverse caotico, especialmente en proyectos de gran tamaño. Pues bien, MiniRocket reduce las desventajas. Esto es posible porque usa un conjunto pequeño y fijo de 84 núcleos y es casi completamente determinista.
Por esa razón y muchas otras más no menos importantes, es que te recomendamos este curso de python profesional, el cual lo imparten de manera presencial o en linea, con instructores expertos en este lenguaje de programación.
El skill de Python, Rocket, selecciona al azar el sesgo de una distribución uniforme entre -1 y 1; pero MiniRocket simplemente muestrea los valores de sesgo de la salida de convolución. Para cada núcleo convolucional, el valor de sesgo se extrae de los cuantiles de la salida convolucional de un ejemplo de entrenamiento aleatorio. Este es el único componente aleatorio de MiniRocket.
Por otro lado, la dilatación permite aplicar un kernel más pequeño a una ventana más amplia de datos. Es decir, Rocket para Python selecciona aleatoriamente un valor para la dilatación; mientras que MiniRocket restringe el número máximo de dilataciones por kernel a 32. Los valores de dilatación más grandes hacen que la transformación sea menos eficiente y no mejoran la precisión.
Sin embargo, tanto Rocket como MiniRocket aplican la agrupación PPV a la salida convolucional para generar características de salida. Rocket además aplica la agrupación máxima global a la salida convolucional para generar características adicionales. MiniRocket no utiliza la agrupación global porque no mejora la precisión dados los otros cambios realizados. Como resultado, MiniRocket genera la mitad de funciones que Rocket y mantiene una precisión equivalente.
¿Cómo es MiniRocket más rápido que Rocket, si ambos fueron desarrollados en Python? Pues bien, MiniRocket acelera significativamente la transformación a través de 4 optimizaciones clave, que son posibles gracias a las propiedades del pequeño conjunto fijo de núcleos y al PPV. Calcula PPV para W y −W al mismo tiempo. Esta optimización aprovecha las propiedades matemáticas de los núcleos fijos y PPV.
La idea básica es que PPV = 1-PNV (proporción de valores negativos) es darle mayor velocidad en python. Si calculas PPV para un kernel, obtienes PNV "libre", sin ejecutar una convolución adicional. Dado que PNV es solo el PPV para el kernel invertido, esto permite que MiniRocket duplique el número de kernels aplicados a una serie sin aumentar el número de cálculos.
Diseño Web Grupo Codesi