Creating machine learning models just got easy!
Tags: machinelearning, codenewbie
Published: 2020-03-15 08:33:21

Google has launched **Teachable Machine 2.0** a couple months back which makes it easy for everyone to create machine learning models, amazing, isn't it? Let's understand what it is and what we can do with it.

### What is Teachable Machine?
Teachable Machine is a web-based tool that makes creating machine learning models fast, easy, and accessible to everyone. Check out these amazing  [examples](https://experiments.withgoogle.com/experiments?tag=Teachable+Machine). You can also Check out this YouTube video.

{% youtube T2qQGqZxkD0 %}

There are two versions - the first one was released in 2017 and 2.0 which is the current one. Check out both the versions below
1.  [2017](https://teachablemachine.withgoogle.com/v1/) ( Suppose you're a learner who just wants to quickly understand or present a demo of how machine learning works and don’t need to save anything)
2.  [Current](https://teachablemachine.withgoogle.com/) (If you want to save your model and create a working project)
Now, with this version, you can train
 - images
 - sounds
 - poses

### How to use it?
You train a computer to recognize your images, sounds and poses without writing any **machine learning code**. Then, use your model in your projects, sites, apps, and more. Google has made it a very simple three-step process -  [Gather ](https://teachablemachine.withgoogle.com/train?action=onboardOpen&id=DFBbSTvtpy4) (gathering data for training model),  [Train ](https://teachablemachine.withgoogle.com/train?action=onboardOpen&id=CO67EQ0ZWgA) (train it with a single click) and  [Export ](https://teachablemachine.withgoogle.com/train?action=onboardOpen&id=n-zeeRLBgd0) (export it to your project).
This works with the following

- TensorFlow
- ML5
- p5.js
- Coral
- node.js
- Glitch
- Framr

> Note that all of the processes take place in the browser itself and it does not upload it to some server to process it hence, you should not close or refresh the browser. 

### How does it work? (What happens in the background)

Well, the Teachable Machine is based on the technique known as **Transfer Learning**

##### *What's Transfer Learning*?
Transfer learning is a machine learning method where a model developed for a task is reused as the starting point for a model on a second task. It is a popular approach in deep learning where pre-trained models are used as the starting point on computer vision and natural language processing tasks.

Let's suppose that there’s a pre-trained neural network, and when you create your classes, you can sort of picture that your classes are becoming the last layer or step of the neural net. Specifically, both the image and pose models are learning off of pre-trained MobileNet models, and the sound model is built on Speech Commands.

##### *MobileNets?*
MobileNets are based on a streamlined architecture that uses depthwise separable convolutions to build lightweight deep neural networks. There's a paper written about it by google and you can read it  [here](http://arxiv.org/pdf/1704.04861.pdf). The training data for this model is called the image net.

##### *ImageNet?*
It's a database, a largescale ontology of images built upon the backbone of the
WordNet structure. ImageNet aims to populate the majority of the 80,000 synsets of WordNet with an average of 500-1000 clean and full-resolution images. You can check out this  [paper](http://www.image-net.org/papers/imagenet_cvpr09.pdf) to learn more about it. Now, let's jump to speech commands.

##### *Speech Commands*
The Speech Command Recognizer is a JavaScript module that enables recognition of spoken commands comprised of simple isolated English words from a small vocabulary. The default vocabulary includes the following words: the ten digits from "zero" to "nine", "up", "down", "left", "right", "go", "stop", "yes", "no", as well as the additional categories of "unknown word" and "background noise".

It uses the web browser's WebAudio API. It is built on top of TensorFlow.js and can perform inference and transfer learning entirely in the browser, using WebGL GPU acceleration.

You can follow up with this GitHub  [repo](https://github.com/tensorflow/tfjs-models/tree/master/speech-commands) to see the code and to know how exactly it works. There's also an  [paper](https://arxiv.org/pdf/1804.03209.pdf) written about it by Pete Warden.

### What can you do with it?
There are endless possibilities which can be just for fun or can be useful to many people out there. For inspiration check out this amazing project - Euphonia - Steve Saling is using Teachable Machine to communicate in new ways, such as using facial gestures to trigger sounds.

{% youtube OAdegPmkK-o %}


I hope that you have got an overview of it, this is a complex system and Google mentioned that they are going to do an in-depth writeup in the future which will help us understand what's going on under the hood so stay tuned! Hoping that you enjoyed this article.

Happy Learning.