A good way to start machine learning in a project

in #programming7 years ago (edited)

4a9279b18a4f520a68ddb40fbd068fed_s.jpg

The situation that we hear the news about machine learning and artificial intelligence became ordinary in the world today. There are so many study sessions discussing about ML, and all seats are quickly taken after inviting participants. However, although many people became interest about introducing machine learning technologies, there seems to be challenges because not a few people don't know where to start it.

So I'll introduce one of good approaches for this. ( Please make sure that it's not a talk about technical details, but rather a talk about business processes )

1. Starting from "rule-based" technology

In other words, designing a system WITHOUT ML technologies is a good start. That means, we start from taking a conventional approach which declares simple IFs and ELSEs. "What! We just said that our interest is machine learning!" - Don't be in a hurry. Going through this process has 3 rational reasons:

i) Machine learning is not a silver bullet

First thing we need to know is that some people seem to overestimate ML technologies. In fact it's not a silver bullet which can dramatically automate many business processes and solves many business problems easily. We need to remember that machine learning is not easy, even though there are so many tools - like Tensorflow, Chainer, and Keras - today.

Additionaly, it contains a risk of technical debts. Because real world seemlessly changes, its algorithm easily becomes old. This means we need to maintain the algorithm periodically after release and this of course costs so much. Here are a good reports of Google about this problem:

Machine Learning: The High Interest Credit Card of Technical Debt

ii) Rule-based approach still can solve many business problems

Secondly, some people seems to underestimate the power of rule-based approach. It still can have powers, and in fact it can cope with many business problems. Though ML technologies are awesome, systems shouldn't be overengineered and technologies that we apply should be well considered.

iii) Rule-based approach may give us some insight

The final reason is that in the process of rule-based approaches, we can get some insight that what should be automated and what shouldn't be. At the very first moment of the project, there're not enough data for applying ML technologies. Moreover, it's usual that the essential problems are ambiguous and even clients themselves don't know what they really need. That's why it's not good to think about ML technologies from start.

2. Start to think of using ML technologies when "rule-based" system start to be complicated

It's a good sign that we consider ML approaches when rule-based system grows too much, the code starts to become spaghethi, and difficult to describe the specification of the whole system. At this point, it might have already been clear that what should be automated and what ML technology to apply, like linear reglessions, n-class classification, and so on.
After the problem became clear, it's good to discuss about these things:

  • Why should you use ML technologies?
  • Do you REALLY need to use ML technologies?
  • Is the data enough to start ML?
  • How long does it take to get outcomes?
  • How can you measure outcomes?

After considering these question well, you'll probablly be in front of the entrance for machine learning, but keep in mind every time that ML approaches often takes lots of time to get a good outcome and we continuously need to consider that whether it's really worth the cost.

Summary

  1. Start from rule-based approaches. That's still going to work well with business questions. Doing that might bring you have good insights for starting ML things.
  2. After the rule-based system expands too much, start to think about using ML technologies. Question by yourself: 'Why should I use it?'

Have a good ML life! :)

Sort:  

very nice post ;) i have a lot to learn about ML for sure.

Thank you for your comment!
I'm going to keep at it :)

Learning process only part of AI.
Anyway there are different AI's and most of it is for special tasks.
But what about human like AI?
Human like ML ?

Hello embeddeddevs, thank you for your comment!

You know, there are two type of AI called strong AI / weak AI and they are different field each other.

Strong AI is what many people in society thinks when they hear the word 'AI', and it in fact aims at creating a human-like AI, on the other hand weak AI intentionally limits its domain to solve a specific problem.
This doesn't mean strong AI is better than weak AI because they're substantially different things.

Although real human-like AI hasn't appeared yet, the company which has lots of data - like google - are trying to find the way to implement more human-like AI and there are many essays discussing about that nowadays.

Very good post congratulate you, follow me and we help each other

alexmejia, thank you!
Sure, I've just followed you :-)

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63811.18
ETH 2610.29
USDT 1.00
SBD 2.83