Why Use Machine Learning?
Why Use Machine
Learning?
Consider how you would write
a spam filter using traditional programming techniques (Figure
1):
Figure
1. The traditional approach
1.
First you would consider what spam
typically looks like. You might notice that some words or phrases (such as
“4U,” “credit card,” “free,” and “amazing”) tend to come up a lot in the
subject line. Perhaps you would also notice a few other patterns in the
sender’s name, the email’s body, and other parts of the email.
2.
You would write a detection algorithm
for each of the patterns that you noticed, and your program would flag
emails as spam if a number of
these patterns were detected.
3.
You would test your program
and repeat steps 1 and 2 until it was good enough to launch.
Since the problem is
difficult, your program will likely become a long list of complex
rules—pretty hard to maintain.
In contrast, a spam filter based on Machine Learning techniques automatically learns which words and phrases
are good predictors of spam
by detecting unusually frequent patterns of words in the spam examples compared to the ham examples (Figure 2).
The program is
· much shorter,
· easier to maintain, and
· most likely more accurate.
Figure
2. The Machine Learning approach
What if spammers notice that all their emails
containing “4U” are blocked?
· They might start writing “For U” instead.
· A spam filter using traditional programming techniques would need to be updated to flag “For U” emails.
· If spammers keep working around your spam filter, you will need to keep writing new rules forever.
In contrast, a spam filter based on Machine Learning techniques
automatically notices that “For U” has become unusually frequent in spam flagged by users, and it starts
flagging them without your intervention (Figure 3).
Figure
3. Automatically adapting to change
Another area where
Machine Learning shines is for
problems that either are too complex for traditional approaches or have no
known algorithm.
· For example, consider speech recognition.
· Say you want to start simple and write a program capable of distinguishing the words “one” and “two.”
· You might notice that the word “two” starts with a high-pitch sound (“T”), so you could hardcode an algorithm that measures high-pitch sound intensity and use that to distinguish ones and twos—but obviously this technique will not scale to thousands of words spoken by millions of very different people in noisy environments and in dozens of languages.
· The best solution (at least today) is to write an algorithm that learns by itself, given many example recordings for each word.
Finally, Machine Learning can help humans learn
(Figure 4).
· ML algorithms can be inspected to see what they have learned (although for some algorithms this can be tricky).
· For instance, once a spam filter has been trained on enough spam, it can easily be inspected to reveal the list of words and combinations of words that it believes are the best predictors of spam.
· Sometimes this will reveal unsuspected correlations or new trends, and thereby lead to a better understanding of the problem.
· Applying ML techniques to dig into large amounts of data can help discover patterns that were not immediately apparent.
· This is called data mining.
Figure 4. Machine
Learning can help humans learn
To summarize, Machine
Learning is great for:
• Problems for which existing solutions require a lot of fine-tuning or long lists of rules: one Machine Learning algorithm can often simplify code and perform better than the traditional approach.
• Complex problems for which using a traditional approach yields no good solution: the best Machine Learning techniques can perhaps find a solution.
• Fluctuating environments: a Machine Learning system can adapt to new data
YouTube Video Link: https://www.youtube.com/watch?v=JtsDLKm5Fps
Source: Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow by Aurélien Géron
Comments
Post a Comment