Automated machine learning (AutoML), as the name suggests, is the automation of the process for constructing machine learning models. Its use is best illustrated by comparing it to the traditional means for constructing ML models. Without AutoML, the following tasks are left to the modeler to determine based on their understanding of the problem, desired model performance, and most critically their expertise in the proper application of signal processing and machine learning classifiers:
In contrast, AutoML employs high performance computing and use of search optimization algorithms to augment human know-how in performing the task of constructing an ideal ML model for a given application and train/test dataset. The advantages of AutoML include the ability to evaluate hundreds of thousands to millions of model permutations in the same timeframe as a human data science expert may be able to evaluate only a handful. And with directed search constraints, the combination of AutoML in the hands of a skilled user can focus searches on the most promising permutations rather than just execute brute-force grid searches. The upshot is that AutoML can be a powerful ally in algorithm development whether empowering an AI novice or extending the capabilities of a seasoned data science expert.
Depending on your perspective, the answer is both no and yes. By definition, machine learning is the principle of providing systems an 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 on 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.
Today, new AI algorithm automation tools like SensiML’s Toolkit Suite allow developers with domain knowledge within their field of expertise, but little or no knowledge in the field of data science, to rapidly generate ML algorithms designed specifically for the microcontroller environment where they will run. SensiML’s Toolkit Suite solves two critical problems that make IoT AI and ML a feasible reality for organizations lacking the financial wherewithal to staff up a dedicated data science team focused on product development particularly where such activities are not core to their underlying businesses.
SensiML's AutoML process uses cloud computing power as an augment or substitute for this human expertise in AI. Our search optimization algorithms can traverse thousands to millions of model permutations delivering results in minutes to hours of machine time for subsequent testing and deployment.
Conversely, SensiML is a purpose-built AutoML development tool for edge devices intended for schedule-driven IoT sensor product development projects where time, investment, and efficient code are mission critical. SensiML Analytics Toolkit has evolved over eight years originating as an Intel SW tool into an independent industry-leading multi-platform edge AI tool for building optimal models on resource constrained IoT edge devices. To do so, our toolkit provides means for users to rapidly traverse countless combinations of segmenters, features, classifiers, and associated hyperparameters. For those not versed in data science, this AutoML search process can be done with just simple constraints letting the tool do what it does best. For those accomplished in the practice of machine learning, the tool will often surprise with results not previously considered including solutions using classifiers thought too simple to perform against more complex deep learning approaches. Nonetheless, for power users, granular control using a Python interface is included to adjust as desired the output from the AutoML results for the AI framework style experience. That’s the power and the difference of SensiML’s take on AutoML and the workflow optimization of a toolkit intended to do purposeful and scalable algorithm development for real products versus science experiments.
Unlike most general purpose AI frameworks, SensiML Analytics Toolkit includes a client application to make the process of collecting, labeling, and cleansing supervised ML datasets vastly easier, manageable, and scalable from most methods currently in use by developers. In fact, most developers faced with dataset creation and management resort to their own means as the state of production quality tools for this task are pretty limited for AI algorithm development.
SensiML Data Capture Lab (DCL) provides a means to collect data directly from IoT sensor evaluation boards and prototype devices either through real-time streaming of raw sensor data or using offline storage to flash with subsequent batch mode retrieval. Data Capture Lab also supports bulk importing of existing sensor data using CSV text files.
Once collected within a SensiML Data Capture Lab project file, the DCL application provides version managed labeling of datasets by one or more users for a truly scalable and managed process of treating valuable sensor data intellectual property in a methodical workflow. Given labeled ML datasets can be as important a source of valuable IP as code which developers are accustomed to retaining in VCS tools, it makes sense to apply similar methodology to labeled ML data as SensiML Data Capture Lab uniquely enables.
Analytics Studio is the core AutoML application that runs in the cloud to build models based on your provided labeled datasets and return executable code for predictive models that can run on your target edge hardware platform. Designed as a UI based tool, SensiML Analytics Studio provides a standardized workflow for selecting labeled data and metadata of interest from a given input dataset, establishing model constraints and target performance objectives, configuring AutoML seed, segmentation, and feature parameters, and then executing the AutoML search optimizer. Once results are returned, bit-exact code emulation can be run for a chosen platform to assess performance and resource consumption prior to ever flashing the model for physical test. Test vectors can be provided to test model generalization beyond the train/test data used during cross-validation. Visualization of results in tabular, summary, or graphical form are supported and details of the resulting model can be explored and refined. With a desired candidate model selected, the final steps are to generate embedded code in either fully compiled executable binary form, object code, or with Standard or Enterprise editions full C source code can be generated.
The SensiML TestApp is an application that shows real-time event classifications output from the SensiML AI model (Knowledge Pack) running on your edge device. The SensiML TestApp can show custom class names and pictures with your live classification results. TestApp is available as both a Windows10 PC application, or for field use, as an Android smartphone or tablet application.
As an AutoML tool, SensiML can be utilized by a broad range of users interacting at different levels with the toolkit.
Data scientists and those with strong ML/AI skills can use the tool as a productivity aid to rapidly search and optimize for efficient model implementation for resource-constrained edge devices using a familiar Python client front-end.
Domain experts, embedded developers, and hardware engineers who may be less skilled in machine learning and AI can utilize the UI driven constraints approach to define parameters and input datasets for the AutoML processing of potential algorithms to try.
Academic researchers, startups, makers, or established product development teams can effectively use SensiML to quickly generate working sensor code that can learn from new projects or existing labeled datasets.
Analytics Studio notebook is an optional variant of Analytics Studio that is integrated with Python and the Juypter Notebook interactive execution environment. For those familiar with Python ML programming, we make the full capabilities of SensiML’s client API available in Analytics Studio Notebook as an implementation of the Python/Jupyter Notebook IDE.
Free Trial – A no-cost way to learn more about the capabilities of the SensiML Toolkit. Free Trial allows users to learn the SensiML AutoML workflow, functionality, and application interface using sample datasets that provide a rapid way to get familiar with building edge AI models prior to having labeled data of one’s own.
Starter Edition – As a starting point, SensiML Starter Edition provides a low-cost entry to our software enabling the rapid creation of proof-of-concept prototypes and software evaluation as a one-time initial 90 day license. Starter Edition comes with the same functionality as our Standard Edition license, save for support of multi-user team projects and access to C source/library file outputs.
Basic Edition – Our next tier of service, SensiML Basic Edition, provides a tier of service supporting mainstream motion and gesture applications where full C source code is not a requirement nor the ability to support high bandwidth sensors > 10kHz. This value-priced tier of service is intended to enable small and mid-tier innovators with an extremely affordable alternative to ramping up costly signal processing and data science expertise while providing a rapid means to showcase and commercialize novel solutions for wearables, smarthome IoT products, and other similar projects.
Standard Edition – Our most popular tier of service is SensiML Standard Edition which comes complete with scalable multi-user access and productivity across larger, multi-disciplinary teams (test technicians capturing train/test samples; domain experts labeling datasets; software developers, engineers and data science specialists running AutoML pipelines and analyzing results; firmware engineers implementing resulting platform optimized code in their target hardware devices for integration, QA engineers performing test/validation of resulting algorithms). Standard edition supports all available time-series sensors up to 100kHz sample rates and provides full source code access to linked feature transform and classifier libraries.
Enterprise Edition – For large teams and those seeking our highest level of support, SensiML Enterprise Edition includes the full capabilities of Standard Edition with double the multi-user licenses (teams up to 20 users), a service level agreement for support, and direct access to the SensiML engineering team for training, support and early beta-level updates.
SensiML makes sample datasets available for evaluating the toolkit even prior to having your own data. We publish a growing collection of additional datasets on SensiML Data Depot. All tiers of SensiML from Free Trial through Enterprise edition can utilize these sample datasets.
However, to get the most out of the one-time Starter pricing it is advised that you have a plan of action in mind for your own intended application which may or may not include existing data you have already on-hand. The SensiML Data Capture Lab tool greatly simplifies the collection and labeling of new datasets from sensor devices than would otherwise be possible using DIY data acquisition and custom data translation and cleansing scripts.
Free trial version is limited to exploration of the toolkit using example datasets supplied from SensiML to showcase various applications. By contrast, Starter Edition allows you to work directly with your own datasets using the tool. We generally recommend that customers start with downloading and working through the Free Trial to understand the process and UI using the Quick Start example tutorials. Once you have a general familiarity, purchasing a license to Starter Edition opens up the ability to explore model generation and test using your own datasets and application