New NAB Detector ARTime

The ARTime detector is available in a PR to NAB. The results are available in the ARTimeNAB repo. To summarize:

Detector Standard Profile Reward Low FP Reward Low FN
Perfect 100.0 100.0 100.0
ARTime 74.9 65.1 80.4
Numenta HTM* 70.5-69.7 62.6-61.7 75.2-74.2

I developed ARTime to learn more about Grossberg’s adaptive resonance theory. Please let me know of any questions/comments, thanks.

4 Likes

Hi, I noticed your choice in using Julia. Can you share in a few words what motivated it and if (and how) it feels as an improvement from a programming/design perspective, compared to Python?

I really like Julia. For me it solves a huge problem in bridging between the simplicity of scrpting languages like Python and the performance of languages like C/C++. With Python you can do high performance computing by using libraries but if you want to work on the core algorithms then you will likely run into limits of the Python API of the library. The ARTime detector is fast - taking maybe 20 seconds to run NAB on a single CPU. The development version of ARTime is further optimized and is well over twice as fast again. There seems to be great support for machine learning and computational neuroscience in Julia packages. Often when I think “there must be a better way to do this” there is already someon who has developed the package or the language itself supports what I want - it feels like the people developing Julia are always a step ahead of what I need. Julia “walks like Python and runs like C” :slight_smile:

1 Like

Thanks, that was pretty much the vibe I got when I was looking at Julia. Code looks pretty concise and familiar for someone understanding Python.
A pleasant surprise was availability of a BitArray package which seems handy for coding compact, fast, low level SDR operations.

On the low side I had problems finding an usable MQTT library (very common in IoT type of applications for every other languages), but that is unrelated to machine learning.

The package manager seems not as good at untangling dependencies/versions as python’s pip is.