Ship Icon made by Freepik from www.flaticon.com

Percept — What’s Inside the ML Container

Mike Shi
Published in
3 min readJun 12, 2018

--

As part of delivering on transparent machine learning, we wanted to walk through the technology that underlies ModelDepot Percept, so that you can understand the expected behavior, performance, advantages, and potential pitfalls of our system. We’re not a fan of black boxes, and this product is no different.

We’ve bundled together a robust set of technologies together with rigorous user testing to ensure that you have the best experience using our product (and let us know if you aren’t!). We’re confident that you’ll have a good experience, which is why we’re confident in laying out the details in the open for you to see.

With that, let’s dive into the technicals.

Deep Learning Backbone

Today, the ML workhorse being packaged in every Docker image is a ResNet v1 101 architecture trained on Google’s Open Images v2 Dataset. The model comes out of the box with 5,000 classes, which is more diverse than ImageNet. The pre-trained nature of this model allows you to quickly get started on classifying images with no training data on your side. The diversity of the training data also allows you to quickly extend the model to transfer-learn on a breadth of new classes it does not know. We’ll cover the technique being used in the next section.

In the future, we hope to provide a variety of model architectures trained on both Open Images as well as ImageNet to allow you to choose between speed, and classes that are more applicable to you out of the box. Let us know if you have any preferences, and we’ll try to get it done.

Few Shot Learning Technique

Of course one of the main advantages of using ModelDepot Image Classification over a typical cloud provider is the ability to train on novel image classes with your own datasets. We have a tutorial over here showing you how to do it if you haven’t explored that feature yet.

We currently use features extracted out of the backbone model and use a Support Vector Machine to find the confidence values of new classes that you’ve trained. While this is a simple method, it serves as a powerful baseline and performs favorably to state of the art methods.

Over time, we hope to include more techniques that provide even more accurate few-shot learning results. We hope to also make it easy to fine-tune the DL model itself, and potentially re-train the model from scratch if you own a big enough dataset.

With that, we hope we’ve shed some light on some of the magic, that isn’t so magic, behind our ML containers. Armed with this knowledge, you’ll hopefully be able to do further research on how good or bad our product might be for your use case, and let us know of any feedback on how we can do better.

I hope to see you explore how ML can improve your product or user’s experience, and even better if ModelDepot is able to help you along the way.

Interested in trying ModelDepot Percept? Get started for free here! If you have any questions, don’t hesitate to reach us via the in-site chat on the bottom right or via email at hi@modeldepot.io.

--

--