Skip to content

Instantly share code, notes, and snippets.

@lsgrep
Last active September 25, 2019 15:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lsgrep/e0ce6389a1bf082e4b0f717dc1f9096b to your computer and use it in GitHub Desktop.
Save lsgrep/e0ce6389a1bf082e4b0f717dc1f9096b to your computer and use it in GitHub Desktop.

whoami

I have been developing backend applications for the last few years. After reading Hackers & Painters I was captivated by the Lisp, to this day still am. And under the influence of Paul and Hacker News, I picked up Clojure, a Lisp on JVM. Not only because Lisp is an elegant, beautiful language, it is also one of the few languages that involved in the creation of the Artificial Intelligence. Alas, I never had the chance to use Lisp or other languages to build intelligent applications professionally.

why

To me, advent of machine learning is like the discovery/invention of the calculus in math/engineering, or to put simply, it is Fourier transformation on steroids.

Natura non facit saltus(nature does not make jumps). Everything in real life is continuous. If traditional programming is meant to process discrete/selective data part, machine learning is here for the continuous part.

I did my fair share of experimentation of machine learning with various hobby projects, now I would like to transition into a machine learning expert within 6 months

approach

Machine learning is a interdisciplinary subject. To understand the itsy-bitsy details of the modern machine learning algorithms, it might take a good grasp of Linear Algebra, Statistics, Probability theory, Information theory, Calculus and perhaps some Physics. An academic or bottom up approach has a long feedback loop. A longer feedback loop increases the risk of burning out, thus I will spend my time equally on building an end to end system and learning the basics.

project

Here is my plan, I will create the Morning app(web app), which focuses on apparel detection at first stage. I do not have any novel ideas at the moment, which I believe will come to me along the way . :) I will document my journey of creating this app by series of blogs.

I did some amount of research and here is the basic architecture I've came up with.

     ┌──────────┐                                ┌─────────────────┐                      
◈────┤   Web    ├───◈          ▣─────────────────┤     Backend     ├─────────────────────▣
     └──────────┘                                └─────────────────┘                      
                                                                                          
┌───────────────────┐          ┌───────────────┐     ┌───────────┐   ┌───────────────────┐
│                   │          │               │     │           │   │                   │
│                   │          │               │     │           │   │                   │
│                   │          │               │     │  Object   │   │                   │
│WebRTC Live Stream ├─────────▶│  Web Server   │────▶│ Detection │──▶│ Apparel Detection │
│                   │          │               │     │           │   │                   │
│                   │          │               │     │           │   │                   │
│                   │          │               │     │           │   │                   │
└───────────────────┘          └───────────────┘     └───────────┘   └───────────────────┘
          ▲                                                                    │          
          │                                                                    │          
          └────────────────────────────────────────────────────────────────────┘          

Project will be open source, and I might use WebRTC, Python, TensorFlow, Keras, and OpenCV for this project.

Object detection is a hard problem to tackle, so I will use the Object Detection model within official TensorFlow repo for now. The rest, I will build them from scratch.

There are a lot of computer vision datasets are available in the wild, to name a few MNIST, CIFAR-10, CIFAR-100, ImageNet, Google Open Images, Youtube-8M ...etc And every journey starts from hello world, so is mine. I will start from MNIST, then will up the ante gradually till I can't afford GPUs.

Here are the resources I've been working on.
There are a lot to learn and I will use Anki to assist my learning process.

resources

Anki

Papers to Explore:

Courses

TensorFlow

WebRTC

TensorFlow Object Detection API

Python

Kaggle

Google

Math

Blogs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment