Machine Learning into Action V1 – The Journey of an Android Developer

Machine-Learning

The author of this article is Mayur Kanojia, An Adro-Geek (Android Developer) of our team “iView Crafters”, presenting his fine R&D on “MACHINE LEARNING”.

The first impression of hearing the word “Machine Learning” I was almost imagining myself as a teacher and 50-60 machines will come to my class for learning.

Jokes apart but Machine Learning in terms of words  is defined  as follows:

Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed

  – Arthur Samuel (1959).

Machine Learning was never a thought in my head but at iView you need to be extraordinarily skillful to uplift your performance curve ahead than any average programmer. Challenges drive me! I always wanted to work with Algorithms.After discussing with our CTO, we decided to hands-on towards Machine learning. Hence I vividly started my journey wondering it to be as cool as I mentioned in the very first line.

The biggest question was how to kick-start? Perhaps I did exactly what all the Techies love to – “Google Baba”. Google Baba has a lot to say about Machine Learning. Someone said it so true THE WORLD IS ROUND and so is Google. Every theory of Machine Learning at the end had only one term and that was “Gradient Decent”. While hands-on to the Internet I learned about everybody referring to  Prof. Andrew N.G’s examples about ML. There are several online portals offering specialization in Machine Learning such as Coursera, Udemy, Udacity, Pyimagesearch, Pythonprogramming.net. So I decided to go for Coursera course for ML by Andrew N. G. Equivalently, Pyimagesearch and Pythonprogramming.Net  improved my knowledge in ML by coding perspective.

Prof. Andrew N. G had started the way of using math  (vectorization) in coding to optimise code and also running algorithm faster. Whow!! that amazed me. Here is the sample example.

Screenshot_2017-10-16-00-25-08-062_com.google.android.apps.docs

Now after learning basics of Linear Regression and Logistic Regression I came across to Neural Network and this thing had confused my head a lot between Forward Propagation and Backward Propagation.  It was like I have to do FW BW FW FW BW BW BW FW FW FW BW.

I was tired of doing FW and BW and then my life savior was  YouTube, it’s my entertainment buddy. One day accidentally I searched for how Neural Network works 😛 and then youtube took me into a deep ocean with the amazing example of Neural Network like Mario Game completed by ML  V O.o. Also, it took me into the Vista of my whole childhood hours that I spent on Mario Game and was just completed within minutes in front of my eyes. In Future we the “iView Crafters” are keen to take up this R&D into reality by training Neural Network on how to drive a car in GTA V.

These are the links :

https://youtu.be/qv6UVOQ0F44

https://youtu.be/QVyu9oVyh9Q

So I thought we can train Neural Network to play this game which is outdated nowadays. But this video had proved me wrong.  This guy had trained a  neural network on to how to drive a car in GTA V and this guy’s material helped a lot in understanding the neural network.

https://youtu.be/edWI4ZnWUGg

If you are a beginner like me then you will face following words in your journey of ML – the cost function, Gradient Decent, Linear Regression, Logical Regression, Regularisation, KNN, Neural Network,  training data, testing data,  cross-validation,  pipeline, loss, epoch and Blah Blah Blah

 

At iView Labs, We don’t believe in theories we believe in results.

Knowledge is of no value unless you put it into practice.

                                                                                                                     – Anton Chekhov

So to convert my knowledge into a practical solution, initially I started learning python from pythonprogramming.net and trust me will learn basics of python by just watching 15-16 videos, if you know programming concepts well. After learning python, I started developing my 1st ML program by just converting my Coursera exercise into python code. (You can check this blog to understand your Coursera basics into python)

This exercise is about Linear Regression where I have to predict Boston House prices by the data given to me. I created one method which gives me the total value of cost function.

J = (h(x)  –  yi) ^2

Also, One Gradient Decent algorithm which reduces my cost function.

θj= θj – α * (Ə J(θ)/ Əθj)

where α is learning rate

In Linear Regression,  You have to plot data first to see how actually your data is. From the curve of your data you can decide whether you are suffering from high bias(under fitting)  or high variance (overfitting)  according to this you can understand that your model needs more training data or tuning learning rate high or low etc. You can find my code for practice here.

This way I created basic Linear Regression Machine Learning program, also I had done same code in Octave. The doubt to strike your head would be then why I choose python to code? One of my teammate in iView guided me that python has some awesome libraries for machine learning where you don’t have to worry about these basics. You have to just remember algorithm’s name that you have to choose for your program. The best ML Libraries are Tensorflow, sklearn, keras. I coded one program in python to predict stock price by using the sklearn library. The example is here.

Meanwhile, our CTO was super enthusiastic about the conversion of my learning to the real-time execution. So we decided to implement the concept of Pipeline from my ML theory into one of our Live projects. We buckled up our shoes and started R&D on “Bill Scanner” – An OCR that recognizes characters from Bill images.

The empathy is that during ML Training, Handwritten Digits scanning with MNIST Dataset is said to be “Hello World” level program of Machine Learning. Hence super excitedly we started the task and as the days went off my cognition was wrong. Before predictions, we have to do lots of tasks, image processing etc.

Pipeline :

  • Object Detection
  • Text Extraction
  • Character Segmentation
  • Character Prediction

1. Object Detection

To detect object successfully, we will use tensorflow object_detection API. To use this API, we have to make model according to our number of class. For object detection, we have collected chunks of images to train our model. After days of training, we got 99% results.

1

2.Text Extraction

To extract text from bill images we had used Computer vision API by Open CV, we processed the image with lots of filters and extracted the texts.

3. Character Segmentation

After extracting text data we got this output for each text area.

2

4. Character Prediction

After all the steps above, you will get separate characters, now you have to apply the Neural network to predict character from an image.

3

This is #83rd Day of our 120 Day Machine learning Project and the quantum of implementation of Pipeline in our Project “Bill Scanner”  shall be briefed in Volume – II .

 

 

Like & Share

MWFM ( Mobile Work Force Management) Increasing field operations by 4X and bringing down cost to 6X on Human resources.

Code, Coffee and tracking 2m Users ..

How we helped our African friend to break the ice and board 2m Voters?

Tracking 2m+ voters and 3000+ agents

Day 2 at Hannover messe was a bright sunny day. I was gathering my thoughts and plans for the day, as we had couple of meetings and presentations lined up on this day. At sharp 11:30 AM I gave my presentation on HealthCare Product www.prapp.in (a platfrom for health engagement connecting patients to doctors). As soon as my presentation was over, there were some folks who were interested in doctor-patient engagement platform. There was absolutely no breather in between. I just grabbed my cup of coffee and headed towards my booth.

I observed that day 2 was a rush rush at Hannover. Lot of delegates from different countries were visiting the fair. Suddenly some African folks in a team of 3 dropped by at our booth and here starts our conversation:

Mr. Bamaba: is this Sid from iView Labs

me: yes , I hope you are doing great! How may I help you!

Mr. Bamaba: Do you do location tracking and mapping?

Me: Sir, I would like to hear the problem that you are facing..

Mr. Bamaba: We need to map all the voters of Africa on the map. We want to verify their identity and address. To do these we send agents on the field who do it manually and all these data gets centralized. Since its a manual process we were having lot of data issues and productivity. We are here looking to solve this issue

Me: Ok Sir, I understand your problem. So, what these agents would be carrying with them to verify the voter.

Mr. Bamaba: These agents will be carrying our assigned tablets for verification. Look we have 3000+ Agents who are in field of collection of the electoral census and here we need to observe their day to day actions as per the geographies they are moving. Can you develop me a platform where in I can see all these agents in real time? I have to catch the coordinates and want to see the efficiency and methods they are adopting to do this quick exercise. Also I want to assign the further tasks of Route Optimization

Me: In a nutshell, I was completely able to understand what my friend was looking to build. Me and My CTO was there and we explained him our methodology of working and strategy of building this solution.

After all the explanation, he seemed convinced to do business with us and finally we were able to strike the deal with our African friends.

As the project kicked off, my technical team started brainstorming about the project and came up with the complete technology stack and architecture for the project. For this solution, we knew the crux of the entire solution would be accurate position mapping, path tracking and real monitoring of agents. Also, the tricky part here was about offline position tracking due to network connectivity issue in small villages and data pruning as position mapping of each agent for each second would generate enormous data in the application.

With the technical risks identified, we started working on the project and were very thrilled to work on this as we saw that how this solution could be used for various industries who has a mobile force or field force. We realized the scalability and reusability of this project, hence we made this in a modular form where entire location tracking module is an independent module which could be rightly fitted into any industry.

We started working on day and night on this project to get this all right. We send our guys on the field to test in all various conditions such as speed variance, location variance etc.

Finally we were able to get all the systems in place and deliver it to our African friends.

The entire data of the application rests on AWS ( Amazon Web Services) cloud.

With our approach to take software development as the Lego and Brick Building job we were able to deliver this solution in span of 3 months.

With over 2 million Voters on Board of eCampaign and 3000+ agents on the admin side the eVoting, this was a huge success for our mobile workforce management solution.

Admin Panel( Operations Guys) for tracking the field force :-

08

Android App ( for the field force/Agents in the fields) : –

01

Here the entire Platform does the following job for the African government : –

1. Task management
2. Task allocation
3. Task control
4. Voters geography tracking
5. Agents tracking
6. Task completion
7. Real time visibility

Data analytics per Agent and Voters

Business benefit to our African friend:

  • 50+ Nos of Men power reduction by Using the eVoting eCampaign solutions.
  • Improvement in HR process to know the real productivity by real time tracking on faily field activities.
  • Cost savings to a multiple times and bringing in lean business.
  • Perfect tracking of census with error free data.
Like & Share