ROCKET and Random Convolutional Kernels
A remarkably fast time-series classification method that skips learning any convolutional filters at all, instead applying thousands of random ones and letting a simple linear classifier do all the work on top.
Prerequisites: Convolutional Neural Networks
A convolutional neural network for time series spends most of its training budget learning which filter shapes are useful — is this a spike detector, a slope detector, a periodicity detector? — through backpropagation. ROCKET asks a provocative question: what if you skipped that learning entirely, generated thousands of filters completely at random, and let a cheap linear model figure out afterward which random filters happened to be informative?
ROCKET generates a large number (commonly 10,000) of random convolutional kernels, each with a random length, random weights, and a random dilation (spacing between the points a filter looks at). Every kernel is convolved across the input series, and from each output ROCKET keeps just two numbers: the maximum value (did this pattern ever strongly match?) and the fraction of positive values, or PPV (how often did it match at all). With 10,000 kernels that's 20,000 features per series, fed into a simple linear classifier like ridge regression, which learns to weight the informative random kernels up and the useless ones down.
Because no filter is ever learned by gradient descent, ROCKET trains in a small fraction of the time of a comparable CNN — often seconds to minutes versus hours — while matching or beating deep models on many time-series classification benchmarks.
ROCKET classifies time series by convolving thousands of untrained, randomly generated filters over the data, keeping two summary statistics per filter, and letting a fast linear classifier — not gradient descent — pick out which random filters happened to be useful.
Further reading
- Dempster, Petitjean & Webb, ROCKET: Exceptional Fast and Accurate Time Series Classification (2020)