Does machine learning require programming?

Depending on your perspective, the answer is both yes and no. By definition, machine learning is the principle of providing systems the ability to learn and improve from experience without being explicitly programmed. In place of explicit code or instructions, such devices are ‘taught’ through the use of labeled training data applied to classifier models whereby the data itself influences the parameters of the model to tune its behavior. So at this level, we can state that such algorithms aren’t actually programmed. However, the tools or AI frameworks popularly used for constructing such underlying classifier models are often built on programming languages and have programming interfaces and APIs. Python, Tensorflow, Keras are a few such examples. So the first programming hurdle developers must overcome with most ML tools is the learning curve of gaining familiarity with these domain-specific programming environments for AI and machine learning.

With SensiML, Python has always been a supported programmatic interface for those who have already overcome this learning curve and prefer to work in this manner. However, SensiML also provides a parallel simple UI interface that can be used by ML novices and seasoned practitioners alike to rapidly construct models using AutoML methods without the need to program. Additionally, in nearly all present hardware architectures, machine learning models once created still ultimately need to be translated into instruction set architectures that execute in a traditional explicit programming manner on processors.

Given most AI frameworks were built from data center and server origins, the degree to which this translation from abstract ML classification to efficient ISA execution varies widely and is typically sub-optimal or not achievable for the smallest of processors found in IoT edge devices. Thus comes the next programming task often encountered, which is to modify general purpose C code output from AI frameworks for practical application on microcontrollers with smaller memory footprints, no GPUs (and sometimes not even FPUs!),limited clock frequencies, and one or a few cores. Rather than starting from cloud execution environments, SensiML Analytics Toolkit was built from the ground up as an edge AI tool optimized for efficient execution of ML algorithms on these smallest and most resource limited devices. So developers using SensiML can be confident the models they build can be efficiently run on edge devices without further code customization needed to fit on their embedded platforms.