These considerations may be accepted or not, however I hope to show some good starting points before beginning to study Machine Learning:
- Old fashioned computing techniques are getting more and more useless. Industrial revolution is over and so all kind of merely-automatic machines. It doesn’t mean that an email client or a word processor are going to disappear (even if Google and Microsoft are trying to move everything on the web), but that human beings are beginning considering their software as real mind extension (it’s not science-fiction) and expect new tools to improve their lives.
- Many complex tasks can be easily solved using very powerful algorithms, in the same way human beings behave. We don’t look for extraordinary precision, however we forecast events without worrying about the fact that there are no deterministic equations behind our choices. Probability is maths for life.
- The amount of data collected by companies is growing faster and faster. They are not historical libraries: they need to exploit all pieces of information, at least to justify the cost of keeping them on high expensive servers!
- Data (and Big Data) are collectors of information, rules, trends and so on that can reveal what we’re looking for using standard (un-)common procedures. Machine Learning is not inventing (maybe deep learning will be able to achieve it in the next future), however we know that is possible to learn what is hidden behind a bunch of numbers, names, websites, … They already own all the rules we need and extracting them is challenging, stunning and never boring.
- There are more and more powerful free tools that everyone can study and use for his everyday activity. Study Python, Scikit-Learn, Matplotlib, Pandas, Theano, Tensorflow, Keras, Scala, Hadoop, Spark, NLTK, NoSQL solutions and so forth. It’s incredibly easy to understand how they work and a few lines of code you can control tons of data.
- IT is about answering some specific questions. Just to show the evolution of this concept I’m going to make an example. In the past, a traveler would have asked for a map and a precise path to reach a specific point. Nowadays many CTOs ask for a generic direction. They need to reach a train station and can recognize it while moving, but they are in a hurry and can’t wait for detailed (and sometimes impossible) pieces of information. Very often it’s quite better to use probabilistic (and faster) algorithms, than complex tools which gain is paid thousands times more than its real benefit.
- We need to dive into millions of documents (papers, web pages, resumes, …) without reading each single word. A normal computer algorithm can achieve this goal but everybody knows that looking for a specific concept by searching with some keywords is not a solution. A human being can immediately understand if a resume containing all the keywords is acceptable or not. Why? Because we take a big picture, discarding many details but focusing our attention on peculiar elements. Of course we can make mistakes, but everyday life teaches that turning odds into decisions is easier and more effective than any other approach.
- Classic artificial intelligence many limitations imposed by too high-level paradigms. Even if it’s absolutely necessary knowing all basic principles, creating an expert system based on propositional (or first order) logic is only a way to show your customer how much more intelligent he is! As Lotfi Zadeh stated, human intelligence is about taking difficult decisions with a very limited number of pieces of information and mathematical and logical rules.
“Do not worry about your difficulties in Mathematics. I can assure you mine are still greater.” (A. Einstein) Machine Learning is becoming more and more widespread and, day after day, new computer scientists and engineers begin their long jump into this wonderful world.