Machine Learning for Everyone
In simple words. With real-world examples. Yes, again
21 november 2018 :: 463625 views :: 8124 words

Machine Learning is like sex in high school. Everyone is talking about it, a few know what to do, and only your teacher is doing it. If you ever tried to read articles about machine learning on the Internet, most likely you stumbled upon two types of them: thick academic trilogies filled with theorems (I couldn’t even get through half of one) or fishy fairytales about artificial intelligence, data-science magic, and jobs of the future.

I decided to write a post I’ve been wishing existed for a long time. A simple introduction for those who always wanted to understand machine learning. Only real-world problems, practical solutions, simple language, and no high-level theorems. One and for everyone. Whether you are a programmer or a manager.

Let's roll.

❤️ Support my work

 add a comment here

Why do we want machines to learn?

This is Billy. Billy wants to buy a car. He tries to calculate how much he needs to save monthly for that. He went over dozens of ads on the internet and learned that new cars are around $20,000, used year-old ones are $19,000, 2-year old are $18,000 and so on.

Billy, our brilliant analytic, starts seeing a pattern: so, the car price depends on its age and drops $1,000 every year, but won't get lower than $10,000.

In machine learning terms, Billy invented regression – he predicted a value (price) based on known historical data. People do it all the time, when trying to estimate a reasonable cost for a used iPhone on eBay or figure out how many ribs to buy for a BBQ party. 200 grams per person? 500?

Yeah, it would be nice to have a simple formula for every problem in the world. Especially, for a BBQ party. Unfortunately, it's impossible.

Let's get back to cars. The problem is, they have different manufacturing dates, dozens of options, technical condition, seasonal demand spikes, and god only knows how many more hidden factors. An average Billy can't keep all that data in his head while calculating the price. Me too.

People are dumb and lazy – we need robots to do the maths for them. So, let's go the computational way here. Let's provide the machine some data and ask it to find all hidden patterns related to price.

Aaaand it works. The most exciting thing is that the machine copes with this task much better than a real person does when carefully analyzing all the dependencies in their mind.

That was the birth of machine learning.

[collapse all] [show all]  9 comments
19
Sandyandi The 5th paragraph has some wording errors. Please fix. Thanks!
6
Jayanth Brilliant , if you cant explain it simply . you dont understand it well enough. Einstien
4
Yasir Nailed it.
0
Sharath HEllo man how are you?
0
sdffd dfsgfdd
1
Karen Wonderful post! Thanks for taking your valuable time to share this with us.
Mobile App Development Companies | Unified Communications | Business Analytics
0
Mayzar thanks
0
Guest Wow! Cool post! Thanks for sharing!
0
Sushma V U simplified it...i had lota takeawayz from the read.

Three components of machine learning

Without all the AI-bullshit, the only goal of machine learning is to predict results based on incoming data. That's it. All ML tasks can be represented this way, or it's not an ML problem from the beginning.

The greater variety in the samples you have, the easier it is to find relevant patterns and predict the result. Therefore, we need three components to teach the machine:

Data Want to detect spam? Get samples of spam messages. Want to forecast stocks? Find the price history. Want to find out user preferences? Parse their activities on Facebook (no, Mark, stop collecting it, enough!). The more diverse the data, the better the result. Tens of thousands of rows is the bare minimum for the desperate ones.

There are two main ways to get the data — manual and automatic. Manually collected data contains far fewer errors but takes more time to collect — that makes it more expensive in general.

Automatic approach is cheaper — you're gathering everything you can find and hope for the best.

Some smart asses like Google use their own customers to label data for them for free. Remember ReCaptcha which forces you to "Select all street signs"? That's exactly what they're doing. Free labour! Nice. In their place, I'd start to show captcha more and more. Oh, wait...

It's extremely tough to collect a good collection of data (usually called a dataset). They are so important that companies may even reveal their algorithms, but rarely datasets.

Features Also known as parameters or variables. Those could be car mileage, user's gender, stock price, word frequency in the text. In other words, these are the factors for a machine to look at.

When data stored in tables it's simple — features are column names. But what are they if you have 100 Gb of cat pics? We cannot consider each pixel as a feature. That's why selecting the right features usually takes way longer than all the other ML parts. That's also the main source of errors. Meatbags are always subjective. They choose only features they like or find "more important". Please, avoid being human.

Algorithms Most obvious part. Any problem can be solved differently. The method you choose affects the precision, performance, and size of the final model. There is one important nuance though: if the data is crappy, even the best algorithm won't help. Sometimes it's referred as "garbage in – garbage out". So don't pay too much attention to the percentage of accuracy, try to acquire more data first.

[collapse all] [show all]  5 comments
9
Tim What? Features and Algorithms are classical programming? Not in the way features is defined in ML.
2
Tim And data scientists use algorithms... so why are outside of that circle? This seems like a fluff chart.
0
Lumos Classical programming involves data and databases too.
0
Mark Zuckerphuck Lots of peeps out there using simple grepping while calling it "AI" ...
0
Andy I'd continue the last sentence as "... and try to make your data clean".

Learning vs Intelligence

Once I saw an article titled "Will neural networks replace machine learning?" on some hipster media website. These media guys always call any shitty linear regression at least artificial intelligence, almost SkyNet. Here is a simple picture to show who is who.

Artificial intelligence is the name of a whole knowledge field, similar to biology or chemistry.

Machine Learning is a part of artificial intelligence. An important part, but not the only one.

Neural Networks are one of machine learning types. A popular one, but there are other good guys in the class.

Deep Learning is a modern method of building, training, and using neural networks. Basically, it's a new architecture. Nowadays in practice, no one separates deep learning from the "ordinary networks". We even use the same libraries for them. To not look like a dumbass, it's better just name the type of network and avoid buzzwords.

The general rule is to compare things on the same level. That's why the phrase "will neural nets replace machine learning" sounds like "will the wheels replace cars". Dear media, it's compromising your reputation a lot.

Machine can Machine cannot
Forecast Create something new
Memorize Get smart really fast
Reproduce Go beyond their task
Choose best item Kill all humans
[collapse all] [show all]  14 comments
10
xyz what is smth??
3
abc *something
4
abc something*
3
xyzrep Something
5
abcxyz i don't know
7
Gordon Jin Kill all humans may not, but....em....
8
zzz nowadays, statistics=machine learning; general-purpose algorithms=AI...
3
Cxxc In reinforcement learning, we can consider sometimes that the machine created something new ! Something in its application area of course but yet, it is new when no human have thought about it before !
2
llama GANs can create new things
Transfer Learning allow machines to go beyond their task
1
Mark Zuckerphuck GANs can only narrowly train a generator to fool a discriminator. Nothing new is created.
1
Mayzar Such a nice example "will the wheels replace cars"
1
mribeirodantas You made it clear this is going to be machine learning in simple words, so of course, you won't go into details every 5 minutes or get into a philosophical discussion with yourself. However, I think this session could be improved.

I agree with you that machines cannot create something new, for their behavior is limited to what is written in their algorithms (and the interpretation of such algorithms). However, they can generalize, they can extrapolate and by just throwing "machine cannot create something new", I think you may make it confusing for beginners. An unsupervised learning algorithm can cluster some data points that represent organisms in a way that, for example, it points out to a new organizational subunit that humans were not aware of it earlier. They were just following humans orders, sure, but we can't say the machine did not create something new.
0
Arjun Kapoor Your giving info is very informative, thanks for sharing. I also want to share some info regarding the Best Machine Learning Course in Delhi which will surely enhance your knowledge about various concepts of machine learning that will help you in your career growth. For more details, visit: https://www.dtacademy.in/
0
d_prasad Why can machines not create something new?It's a point that made me think deeper. It can reproduce but can't create something new! This would be good point for a debate!

The map of the machine learning world

If you are too lazy for long reads, take a look at the picture below to get some understanding.

Always important to remember — there is never a sole way to solve a problem in the machine learning world. There are always several algorithms that fit, and you have to choose which one fits better. Everything can be solved with a neural network, of course, but who will pay for all these GeForces?

Let's start with a basic overview. Nowadays there are four main directions in machine learning.

[collapse all] [show all]  6 comments
1
phh hello :D
1
Rajesh Can you suggest one or more books which may cover all these topics ?

Btw thanks for your efforts ..its helpful 👍
0
zzz Nice overview of different types of ML
0
oleg eternal competitors!
0
Burak Belief in a miracle :)
0
James Where do bandits fit in here?

Part 1. Classical Machine Learning

The first methods came from pure statistics in the '50s. They solved formal math tasks — searching for patterns in numbers, evaluating the proximity of data points, and calculating vectors' directions.

Nowadays, half of the Internet is working on these algorithms. When you see a list of articles to "read next" or your bank blocks your card at random gas station in the middle of nowhere, most likely it's the work of one of those little guys.

Big tech companies are huge fans of neural networks. Obviously. For them, 2% accuracy is an additional 2 billion in revenue. But when you are small, it doesn't make sense. I heard stories of the teams spending a year on a new recommendation algorithm for their e-commerce website, before discovering that 99% of traffic came from search engines. Their algorithms were useless. Most users didn't even open the main page.

Despite the popularity, classical approaches are so natural that you could easily explain them to a toddler. They are like basic arithmetic — we use it every day, without even thinking.

[collapse all] [show all]  3 comments
1
Alice Am a little confused on the best outfits analogy. What's x and y in this example?
0
HHi Hi
0
nickd729 @alice, since recommendation engines are grouped on Dimension Reduction (generalization), the author is using an outfit recommender based on available clothing.

1.1 Supervised Learning

Classical machine learning is often divided into two categories – Supervised and Unsupervised Learning.

In the first case, the machine has a "supervisor" or a "teacher" who gives the machine all the answers, like whether it's a cat in the picture or a dog. The teacher has already divided (labeled) the data into cats and dogs, and the machine is using these examples to learn. One by one. Dog by cat.

Unsupervised learning means the machine is left on its own with a pile of animal photos and a task to find out who's who. Data is not labeled, there's no teacher, the machine is trying to find any patterns on its own. We'll talk about these methods below.

Clearly, the machine will learn faster with a teacher, so it's more commonly used in real-life tasks. There are two types of such tasks: classification – an object's category prediction, and regression – prediction of a specific point on a numeric axis.

 add a comment here

Classification

"Splits objects based at one of the attributes known beforehand. Separate socks by based on color, documents based on language, music by genre"

Today used for:
– Spam filtering
– Language detection
– A search of similar documents
– Sentiment analysis
– Recognition of handwritten characters and numbers
– Fraud detection

Popular algorithms: Naive Bayes, Decision Tree, Logistic Regression, K-Nearest Neighbours, Support Vector Machine

From here onward you can comment with additional information for these sections. Feel free to write your examples of tasks. Everything is written here based on my own subjective experience.

[collapse all] [show all]  2 comments
2
Matheswaran K One example that I know of is 'email classification'. Historically, 80% of the mails to this client (lets call them x) was to unblock their card. We use NB, LR algorithms to classify if the mail is related to block/ unblock cards and perform automated task accordingly. If not, leave it to an agent to respond manually.
0
Avinash Natekar very nice article going on... @Matheswaran 'Automated' unblock is risky without verification how did you ensure that its coming from valid source .it can be a from a hacked email ?

Machine learning is about classifying things, mostly. The machine here is like a baby learning to sort toys: here's a robot, here's a car, here's a robo-car... Oh, wait. Error! Error!

In classification, you always need a teacher. The data should be labeled with features so the machine could assign the classes based on them. Everything could be classified — users based on interests (as algorithmic feeds do), articles based on language and topic (that's important for search engines), music based on genre (Spotify playlists), and even your emails.

In spam filtering the Naive Bayes algorithm was widely used. The machine counts the number of "viagra" mentions in spam and normal mail, then it multiplies both probabilities using the Bayes equation, sums the results and yay, we have Machine Learning.

Later, spammers learned how to deal with Bayesian filters by adding lots of "good" words at the end of the email. Ironically, the method was called Bayesian poisoning. Naive Bayes went down in history as the most elegant and first practically useful one, but now other algorithms are used for spam filtering.

Here's another practical example of classification. Let's say you need some money on credit. How will the bank know if you'll pay it back or not? There's no way to know for sure. But the bank has lots of profiles of people who took money before. They have data about age, education, occupation and salary and – most importantly – the fact of paying the money back. Or not.

Using this data, we can teach the machine to find the patterns and get the answer. There's no issue with getting an answer. The issue is that the bank can't blindly trust the machine answer. What if there's a system failure, hacker attack or a quick fix from a drunk senior.

To deal with it, we have Decision Trees. All the data automatically divided to yes/no questions. They could sound a bit weird from a human perspective, e.g., whether the creditor earns more than $128.12? Though, the machine comes up with such questions to split the data best at each step.

That's how a tree is made. The higher the branch — the broader the question. Any analyst can take it and explain afterward. He may not understand it, but explain easily! (typical analyst)

Decision trees are widely used in high responsibility spheres: diagnostics, medicine, and finances.

The two most popular algorithms for forming the trees are CART and C4.5.

Pure decision trees are rarely used today. However, they often set the basis for large systems, and their ensembles even work better than neural networks. We'll talk about that later.

When you google something, that's precisely the bunch of dumb trees which are looking for a range of answers for you. Search engines love them because they're fast.

Support Vector Machines (SVM) is rightfully the most popular method of classical classification. It was used to classify everything in existence: plants by appearance in photos, documents by categories, etc.

The idea behind SVM is simple – it's trying to draw two lines between your data points with the largest margin between them. Look at the picture:

There's one very useful side of the classification — anomaly detection. When a feature does not fit any of the classes, we highlight it. Now that's used in medicine — on MRIs, computers highlight all the suspicious areas or deviations of the test. Stock markets use it to detect abnormal behaviour of traders to find the insiders. When teaching the computer the right things, we automatically teach it what things are wrong.

Today, neural networks are more frequently used for classification. Well, that's what they were created for.

The rule of thumb is the more complex the data, the more complex the algorithm. For text, numbers, and tables, I'd choose the classical approach. The models are smaller there, they learn faster and work more clearly. For pictures, video and all other complicated big data things, I'd definitely look at neural networks.

Just five years ago you could find a face classifier built on SVM. Today it's easier to choose from hundreds of pre-trained networks. Nothing has changed for spam filters, though. They are still written with SVM. And there's no good reason to switch from it anywhere.

Even my website has SVM-based spam detection in comments ¯_(ツ)_/¯

[collapse all] [show all]  17 comments
4
eli spam spam
6
Bob Viagra
33
jake penis viagra nigerian prince
5
Steve You dropped this: \\
3
bta spam
2
jon sal3
2
jon 5pam 5pam 5ale5 V1A6RA
4
dave dave Имя должно быть от 3 до 20 символов. Не можете вспомнить своё, попробуйте «Олег». Отличное имя.
3
dave Cunt fuck
5
bsdsbds hi is this a spam comment or not?
6
Spammer_lol VIAGRA v!a$gr@ SpAM sPaM SpAm let's see if this comment is detected as spam
SPAM SPAM VIAGRA SPAM SPAM VIagra
2
Олег yo
0
xyz viagra
0
Very Nice Lets check what is this?
3
grant I mean he pretty much asked for all this spam in the comments
0
jjsauma hey, hi, here just spamming
1
Sex Sex

Regression

"Draw a line through these dots. Yep, that's the machine learning"

Today this is used for:

  • Stock price forecasts
  • Demand and sales volume analysis
  • Medical diagnosis
  • Any number-time correlations

Popular algorithms are Linear and Polynomial regressions.

[collapse all] [show all]  3 comments
17
Hello VIAGRA VIAGRA VIAGRA
0
Mark Zuckerphuck indeed
2
Very Nice This is really great

Regression is basically classification where we forecast a number instead of category. Examples are car price by its mileage, traffic by time of the day, demand volume by growth of the company etc. Regression is perfect when something depends on time.

Everyone who works with finance and analysis loves regression. It's even built-in to Excel. And it's super smooth inside — the machine simply tries to draw a line that indicates average correlation. Though, unlike a person with a pen and a whiteboard, machine does so with mathematical accuracy, calculating the average interval to every dot.

When the line is straight — it's a linear regression, when it's curved – polynomial. These are two major types of regression. The other ones are more exotic. Logistic regression is a black sheep in the flock. Don't let it trick you, as it's a classification method, not regression.

It's okay to mess with regression and classification, though. Many classifiers turn into regression after some tuning. We can not only define the class of the object but memorize how close it is. Here comes a regression.

If you want to get deeper into this, check these series: Machine Learning for Humans. I really love and recommend it!

 add a comment here

1.2 Unsupervised learning

Unsupervised was invented a bit later, in the '90s. It is used less often, but sometimes we simply have no choice.

Labeled data is luxury. But what if I want to create, let's say, a bus classifier? Should I manually take photos of million fucking buses on the streets and label each of them? No way, that will take a lifetime, and I still have so many games not played on my Steam account.

There's a little hope for capitalism in this case. Thanks to social stratification, we have millions of cheap workers and services like Mechanical Turk who are ready to complete your task for $0.05. And that's how things usually get done here.

Or you can try to use unsupervised learning. But I can't remember any good practical application for it, though. It's usually useful for exploratory data analysis but not as the main algorithm. Specially trained meatbag with Oxford degree feeds the machine with a ton of garbage and watches it. Are there any clusters? No. Any visible relations? No. Well, continue then. You wanted to work in data science, right?

 add a comment here

Clustering

"Divides objects based on unknown features. Machine chooses the best way"

Nowadays used:

  • For market segmentation (types of customers, loyalty)
  • To merge close points on a map
  • For image compression
  • To analyze and label new data
  • To detect abnormal behavior

Popular algorithms: K-means_clustering, Mean-Shift, DBSCAN

 add a comment here

Clustering is a classification with no predefined classes. It’s like dividing socks by color when you don't remember all the colors you have. Clustering algorithm trying to find similar (by some features) objects and merge them in a cluster. Those who have lots of similar features are joined in one class. With some algorithms, you even can specify the exact number of clusters you want.

An excellent example of clustering — markers on web maps. When you're looking for all vegan restaurants around, the clustering engine groups them to blobs with a number. Otherwise, your browser would freeze, trying to draw all three million vegan restaurants in that hipster downtown.

Apple Photos and Google Photos use more complex clustering. They're looking for faces in photos to create albums of your friends. The app doesn't know how many friends you have and how they look, but it's trying to find the common facial features. Typical clustering.

Another popular issue is image compression. When saving the image to PNG you can set the palette, let's say, to 32 colors. It means clustering will find all the "reddish" pixels, calculate the "average red" and set it for all the red pixels. Fewer colors — lower file size — profit!

However, you may have problems with colors like Cyan◼︎-like colors. Is it green or blue? Here comes the K-Means algorithm.

It randomly sets 32 color dots in the palette. Now, those are centroids. The remaining points are marked as assigned to the nearest centroid. Thus, we get kind of galaxies around these 32 colors. Then we're moving the centroid to the center of its galaxy and repeat that until centroids stop moving.

All done. Clusters defined, stable, and there are exactly 32 of them. Here is a more real-world explanation:

Searching for the centroids is convenient. Though, in real life clusters not always circles. Let's imagine you're a geologist. And you need to find some similar minerals on the map. In that case, the clusters can be weirdly shaped and even nested. Also, you don't even know how many of them to expect. 10? 100?

K-means does not fit here, but DBSCAN can be helpful. Let's say, our dots are people at the town square. Find any three people standing close to each other and ask them to hold hands. Then, tell them to start grabbing hands of those neighbors they can reach. And so on, and so on until no one else can take anyone's hand. That's our first cluster. Repeat the process until everyone is clustered. Done.

A nice bonus: a person who has no one to hold hands with — is an anomaly.

It all looks cool in motion:

Interested in clustering? Check out this piece The 5 Clustering Algorithms Data Scientists Need to Know

Just like classification, clustering could be used to detect anomalies. User behaves abnormally after signing up? Let the machine ban him temporarily and create a ticket for the support to check it. Maybe it's a bot. We don't even need to know what "normal behavior" is, we just upload all user actions to our model and let the machine decide if it's a "typical" user or not.

This approach doesn't work that well compared to the classification one, but it never hurts to try.

 add a comment here

Dimensionality Reduction (Generalization)

"Assembles specific features into more high-level ones"

Nowadays is used for:

  • Recommender systems (★)
  • Beautiful visualizations
  • Topic modeling and similar document search
  • Fake image analysis
  • Risk management

Popular algorithms: Principal Component Analysis (PCA), Singular Value Decomposition (SVD), Latent Dirichlet allocation (LDA), Latent Semantic Analysis (LSA, pLSA, GLSA), t-SNE (for visualization)

 add a comment here

Previously these methods were used by hardcore data scientists, who had to find "something interesting" in huge piles of numbers. When Excel charts didn't help, they forced machines to do the pattern-finding. That's how they got Dimension Reduction or Feature Learning methods.

Projecting 2D-data to a line (PCA)

It is always more convenient for people to use abstractions, not a bunch of fragmented features. For example, we can merge all dogs with triangle ears, long noses, and big tails to a nice abstraction — "shepherd". Yes, we're losing some information about the specific shepherds, but the new abstraction is much more useful for naming and explaining purposes. As a bonus, such "abstracted" models learn faster, overfit less and use a lower number of features.

These algorithms became an amazing tool for Topic Modeling. We can abstract from specific words to their meanings. This is what Latent semantic analysis (LSA) does. It is based on how frequently you see the word on the exact topic. Like, there are more tech terms in tech articles, for sure. The names of politicians are mostly found in political news, etc.

Yes, we can just make clusters from all the words at the articles, but we will lose all the important connections (for example the same meaning of battery and accumulator in different documents). LSA will handle it properly, that's why its called "latent semantic".

So we need to connect the words and documents into one feature to keep these latent connections — it turns out that Singular decomposition (SVD) nails this task, revealing useful topic clusters from seen-together words.

Recommender Systems and Collaborative Filtering is another super-popular use of the dimensionality reduction method. Seems like if you use it to abstract user ratings, you get a great system to recommend movies, music, games and whatever you want.

Here I can recommend my favorite book "Programming Collective Intelligence". It was my bedside book while studying at university!

It's barely possible to fully understand this machine abstraction, but it's possible to see some correlations on a closer look. Some of them correlate with user's age — kids play Minecraft and watch cartoons more; others correlate with movie genre or user hobbies.

Machines get these high-level concepts even without understanding them, based only on knowledge of user ratings. Nicely done, Mr.Computer. Now we can write a thesis on why bearded lumberjacks love My Little Pony.

[collapse all] [show all]  3 comments
4
bta SVD- Singular Vector Decomposition
0
Faruk "Now we can write a thesis on why bearded lumberjacks love My Little Pony." LOL
0
Karim In the LSA figure, the table to the right does not correspond to the one to the left

Association rule learning

"Look for patterns in the orders' stream"

Nowadays is used:

  • To forecast sales and discounts
  • To analyze goods bought together
  • To place the products on the shelves
  • To analyze web surfing patterns

Popular algorithms: Apriori, Euclat, FP-growth

[collapse all] [show all]  1 comment
12
Vanni Typo in image: Assiciation→ Association

This includes all the methods to analyze shopping carts, automate marketing strategy, and other event-related tasks. When you have a sequence of something and want to find patterns in it — try these thingys.

Say, a customer takes a six-pack of beers and goes to the checkout. Should we place peanuts on the way? How often do people buy them together? Yes, it probably works for beer and peanuts, but what other sequences can we predict? Can a small change in the arrangement of goods lead to a significant increase in profits?

Same goes for e-commerce. The task is even more interesting there — what is the customer going to buy next time?

No idea why rule-learning seems to be the least elaborated upon category of machine learning. Classical methods are based on a head-on look through all the bought goods using trees or sets. Algorithms can only search for patterns, but cannot generalize or reproduce those on new examples.

In the real world, every big retailer builds their own proprietary solution, so nooo revolutions here for you. The highest level of tech here — recommender systems. Though, I may be not aware of a breakthrough in the area. Let me know in the comments if you have something to share.

[collapse all] [show all]  5 comments
2
anonymous did you mean revelations up there?
5
K.D. I agree. Recommender systems seem to be an old-fashioned idea with no technical advances in the last centuries.
0
Very Nice Recommender System is stupid on ecommerce sites. WTF! it keeps suggesting the same things over and over.
1
Avinash N And its recommending the same data science course to me which i already purchased !!
0
none cant you build associations. person 1 and 2 bought A B C, person 2 bought A B, therefore, recommend to person 2 C

Part 2. Reinforcement Learning

"Throw a robot into a maze and let it find an exit"

Nowadays used for:

  • Self-driving cars
  • Robot vacuums
  • Games
  • Automating trading
  • Enterprise resource management

Popular algorithms: Q-Learning, SARSA, DQN, A3C, Genetic algorithm

 add a comment here

Finally, we get to something looks like real artificial intelligence. In lots of articles reinforcement learning is placed somewhere in between of supervised and unsupervised learning. They have nothing in common! Is this because of the name?

Reinforcement learning is used in cases when your problem is not related to data at all, but you have an environment to live in. Like a video game world or a city for self-driving car.

Neural network plays Mario

Knowledge of all the road rules in the world will not teach the autopilot how to drive on the roads. Regardless of how much data we collect, we still can't foresee all the possible situations. This is why its goal is to minimize error, not to predict all the moves.

Surviving in an environment is a core idea of reinforcement learning. Throw poor little robot into real life, punish it for errors and reward it for right deeds. Same way we teach our kids, right?

More effective way here — to build a virtual city and let self-driving car to learn all its tricks there first. That's exactly how we train auto-pilots right now. Create a virtual city based on a real map, populate with pedestrians and let the car learn to kill as few people as possible. When the robot is reasonably confident in this artificial GTA, it's freed to test in the real streets. Fun!

There may be two different approaches — Model-Based and Model-Free.

Model-Based means that car needs to memorize a map or its parts. That's a pretty outdated approach since it's impossible for the poor self-driving car to memorize the whole planet.

In Model-Free learning, the car doesn't memorize every movement but tries to generalize situations and act rationally while obtaining a maximum reward.

Remember the news about AI beating a top player at the game of Go? Despite shortly before this it being proved that the number of combinations in this game is greater than the number of atoms in the universe.

This means the machine could not remember all the combinations and thereby win Go (as it did chess). At each turn, it simply chose the best move for each situation, and it did well enough to outplay a human meatbag.

This approach is a core concept behind Q-learning and its derivatives (SARSA & DQN). 'Q' in the name stands for "Quality" as a robot learns to perform the most "qualitative" action in each situation and all the situations are memorized as a simple markovian process.

Such a machine can test billions of situations in a virtual environment, remembering which solutions led to greater reward. But how can it distinguish previously seen situations from a completely new one? If a self-driving car is at a road crossing and the traffic light turns green — does it mean it can go now? What if there's an ambulance rushing through a street nearby?

The answer today is "no one knows". There's no easy answer. Researchers are constantly searching for it but meanwhile only finding workarounds. Some would hardcode all the situations manually that let them solve exceptional cases, like the trolley problem. Others would go deep and let neural networks do the job of figuring it out. This led us to the evolution of Q-learning called Deep Q-Network (DQN). But they are not a silver bullet either.

Reinforcement Learning for an average person would look like a real artificial intelligence. Because it makes you think wow, this machine is making decisions in real life situations! This topic is hyped right now, it's advancing with incredible pace and intersecting with a neural network to clean your floor more accurately. Amazing world of technologies!


Off-topic. When I was a student, genetic algorithms (link has cool visualization) were really popular. This is about throwing a bunch of robots into a single environment and making them try reaching the goal until they die. Then we pick the best ones, cross them, mutate some genes and rerun the simulation. After a few milliard years, we will get an intelligent creature. Probably. Evolution at its finest.

Genetic algorithms are considered as part of reinforcement learning and they have the most important feature proved by decade-long practice: no one gives a shit about them.

Humanity still couldn't come up with a task where those would be more effective than other methods. But they are great for student experiments and let people get their university supervisors excited about "artificial intelligence" without too much labour. And youtube would love it as well.

 add a comment here

Part 3. Ensemble Methods

"Bunch of stupid trees learning to correct errors of each other"

Nowadays is used for:

  • Everything that fits classical algorithm approaches (but works better)
  • Search systems (★)
  • Computer vision
  • Object detection

Popular algorithms: Random Forest, Gradient Boosting

 add a comment here

It's time for modern, grown-up methods. Ensembles and neural networks are two main fighters paving our path to a singularity. Today they are producing the most accurate results and are widely used in production.

However, the neural networks got all the hype today, while the words like "boosting" or "bagging" are scarce hipsters on TechCrunch.

Despite all the effectiveness the idea behind these is overly simple. If you take a bunch of inefficient algorithms and force them to correct each other's mistakes, the overall quality of a system will be higher than even the best individual algorithms.

You'll get even better results if you take the most unstable algorithms that are predicting completely different results on small noise in input data. Like Regression and Decision Trees. These algorithms are so sensitive to even a single outlier in input data to have models go mad.

In fact, this is what we need.

We can use any algorithm we know to create an ensemble. Just throw a bunch of classifiers, spice it up with regression and don't forget to measure accuracy. From my experience: don't even try a Bayes or kNN here. Although "dumb", they are really stable. That's boring and predictable. Like your ex.

Instead, there are three battle-tested methods to create ensembles.

Stacking Output of several parallel models is passed as input to the last one which makes a final decision. Like that girl who asks her girlfriends whether to meet with you in order to make the final decision herself.

Emphasis here on the word "different". Mixing the same algorithms on the same data would make no sense. The choice of algorithms is completely up to you. However, for final decision-making model, regression is usually a good choice.

Based on my experience stacking is less popular in practice, because two other methods are giving better accuracy.

Bagging aka Bootstrap AGGregatING. Use the same algorithm but train it on different subsets of original data. In the end — just average answers.

Data in random subsets may repeat. For example, from a set like "1-2-3" we can get subsets like "2-2-3", "1-2-2", "3-1-2" and so on. We use these new datasets to teach the same algorithm several times and then predict the final answer via simple majority voting.

The most famous example of bagging is the Random Forest algorithm, which is simply bagging on the decision trees (which were illustrated above). When you open your phone's camera app and see it drawing boxes around people's faces — it's probably the results of Random Forest work. Neural networks would be too slow to run real-time yet bagging is ideal given it can calculate trees on all the shaders of a video card or on these new fancy ML processors.

In some tasks, the ability of the Random Forest to run in parallel is more important than a small loss in accuracy to the boosting, for example. Especially in real-time processing. There is always a trade-off.

Boosting Algorithms are trained one by one sequentially. Each subsequent one paying most of its attention to data points that were mispredicted by the previous one. Repeat until you are happy.

Same as in bagging, we use subsets of our data but this time they are not randomly generated. Now, in each subsample we take a part of the data the previous algorithm failed to process. Thus, we make a new algorithm learn to fix the errors of the previous one.

The main advantage here — a very high, even illegal in some countries precision of classification that all cool kids can envy. The cons were already called out — it doesn't parallelize. But it's still faster than neural networks. It's like a race between a dump truck and a racecar. The truck can do more, but if you want to go fast — take a car.

If you want a real example of boosting — open Facebook or Google and start typing in a search query. Can you hear an army of trees roaring and smashing together to sort results by relevancy? That's because they are using boosting.

Nowadays there are three popular tools for boosting, you can read a comparative report in CatBoost vs. LightGBM vs. XGBoost

[collapse all] [show all]  2 comments
0
Ivern can someone explain the trees, or are they random pictures?
1
Lucas Humenhuk @Ivern, they are Decison Trees Algorithms. Come back earlier in this article he explained.

Part 4. Neural Networks and Deep Leaning

"We have a thousand-layer network, dozens of video cards, but still no idea where to use it. Let's generate cat pics!"

Used today for:

  • Replacement of all algorithms above
  • Object identification on photos and videos
  • Speech recognition and synthesis
  • Image processing, style transfer
  • Machine translation

Popular architectures: Perceptron, Convolutional Network (CNN), Recurrent Networks (RNN), Autoencoders

[collapse all] [show all]  1 comment
6
John Doe Typo in the header

If no one has ever tried to explain neural networks to you using "human brain" analogies, you're happy. Tell me your secret. But first, let me explain it the way I like.

Any neural network is basically a collection of neurons and connections between them. Neuron is a function with a bunch of inputs and one output. Its task is to take all numbers from its input, perform a function on them and send the result to the output.

Here is an example of a simple but useful in real life neuron: sum up all numbers from the inputs and if that sum is bigger than N — give 1 as a result. Otherwise — zero.

Connections are like channels between neurons. They connect outputs of one neuron with the inputs of another so they can send digits to each other. Each connection has only one parameter — weight. It's like a connection strength for a signal. When the number 10 passes through a connection with a weight 0.5 it turns into 5.

These weights tell the neuron to respond more to one input and less to another. Weights are adjusted when training — that's how the network learns. Basically, that's all there is to it.

To prevent the network from falling into anarchy, the neurons are linked by layers, not randomly. Within a layer neurons are not connected, but they are connected to neurons of the next and previous layers. Data in the network goes strictly in one direction — from the inputs of the first layer to the outputs of the last.

If you throw in a sufficient number of layers and put the weights correctly, you will get the following: by applying to the input, say, the image of handwritten digit 4, black pixels activate the associated neurons, they activate the next layers, and so on and on, until it finally lights up the exit in charge of the four. The result is achieved.

When doing real-life programming nobody is writing neurons and connections. Instead, everything is represented as matrices and calculated based on matrix multiplication for better performance. My favourite video on this and its sequel below describe the whole process in an easily digestible way using the example of recognizing hand-written digits. Watch them if you want to figure this out.

A network that has multiple layers that have connections between every neuron is called a perceptron (MLP) and considered the simplest architecture for a novice. I didn't see it used for solving tasks in production.

After we constructed a network, our task is to assign proper ways so neurons will react correctly to incoming signals. Now is the time to remember that we have data that is samples of 'inputs' and proper 'outputs'. We will be showing our network a drawing of the same digit 4 and tell it 'adapt your weights so whenever you see this input your output would emit 4'.

To start with, all weights are assigned randomly. After we show it a digit it emits a random answer because the weights are not correct yet, and we compare how much this result differs from the right one. Then we start traversing network backward from outputs to inputs and tell every neuron 'hey, you did activate here but you did a terrible job and everything went south from here downwards, let's keep less attention to this connection and more of that one, mkay?'.

After hundreds of thousands of such cycles of 'infer-check-punish', there is a hope that the weights are corrected and act as intended. The science name for this approach is Backpropagation, or a 'method of backpropagating an error'. Funny thing it took twenty years to come up with this method. Before this we still taught neural networks somehow.

My second favorite vid is describing this process in depth, but it's still very accessible.

A well trained neural network can fake the work of any of the algorithms described in this chapter (and frequently works more precisely). This universality is what made them widely popular. Finally we have an architecture of human brain they said we just need to assemble lots of layers and teach them on any possible data they hoped. Then the first AI winter started, then it thawed, and then another wave of disappointment hit.

It turned out networks with a large number of layers required computation power unimaginable at that time. Nowadays any gamer PC with geforces outperforms the datacenters of that time. So people didn't have any hope then to acquire computation power like that and neural networks were a huge bummer.

And then ten years ago deep learning rose.

There's a nice Timeline of machine learning describing the rollercoaster of hopes & waves of pessimism.

In 2012 convolutional neural networks acquired an overwhelming victory in ImageNet competition that made the world suddenly remember about methods of deep learning described in the ancient 90s. Now we have video cards!

Differences of deep learning from classical neural networks were in new methods of training that could handle bigger networks. Nowadays only theoretics would try to divide which learning to consider deep and not so deep. And we, as practitioners are using popular 'deep' libraries like Keras, TensorFlow & PyTorch even when we build a mini-network with five layers. Just because it's better suited than all the tools that came before. And we just call them neural networks.

I'll tell about two main kinds nowadays.

Convolutional Neural Networks (CNN)

Convolutional neural networks are all the rage right now. They are used to search for objects on photos and in videos, face recognition, style transfer, generating and enhancing images, creating effects like slow-mo and improving image quality. Nowadays CNNs are used in all the cases that involve pictures and videos. Even in your iPhone several of these networks are going through your nudes to detect objects in those. If there is something to detect, heh.

Image above is a result produced by Detectron that was recently open-sourced by Facebook

A problem with images was always the difficulty of extracting features out of them. You can split text by sentences, lookup words' attributes in specialized vocabularies, etc. But images had to be labeled manually to teach the machine where cat ears or tails were in this specific image. This approach got the name 'handcrafting features' and used to be used almost by everyone.

There are lots of issues with the handcrafting.

First of all, if a cat had its ears down or turned away from the camera: you are in trouble, the neural network won't see a thing.

Secondly, try naming on the spot 10 different features that distinguish cats from other animals. I for one couldn't do it, but when I see a black blob rushing past me at night — even if I only see it in the corner of my eye — I would definitely tell a cat from a rat. Because people don't look only at ear form or leg count and account lots of different features they don't even think about. And thus cannot explain it to the machine.

So it means the machine needs to learn such features on its own, building on top of basic lines. We'll do the following: first, we divide the whole image into 8x8 pixel blocks and assign to each a type of dominant line – either horizontal [-], vertical [|] or one of the diagonals [/]. It can also be that several would be highly visible — this happens and we are not always absolutely confident.

Output would be several tables of sticks that are in fact the simplest features representing objects edges on the image. They are images on their own but built out of sticks. So we can once again take a block of 8x8 and see how they match together. And again and again…

This operation is called convolution, which gave the name for the method. Convolution can be represented as a layer of a neural network, because each neuron can act as any function.

When we feed our neural network with lots of photos of cats it automatically assigns bigger weights to those combinations of sticks it saw the most frequently. It doesn't care whether it was a straight line of a cat's back or a geometrically complicated object like a cat's face, something will be highly activating.

As the output, we would put a simple perceptron which will look at the most activated combinations and based on that differentiate cats from dogs.

The beauty of this idea is that we have a neural net that searches for the most distinctive features of the objects on its own. We don't need to pick them manually. We can feed it any amount of images of any object just by googling billions of images with it and our net will create feature maps from sticks and learn to differentiate any object on its own.

For this I even have a handy unfunny joke:

Give your neural net a fish and it will be able to detect fish for the rest of its life. Give your neural net a fishing rod and it will be able to detect fishing rods for the rest of its life…

Recurrent Neural Networks (RNN)

The second most popular architecture today. Recurrent networks gave us useful things like neural machine translation (here is my post about it), speech recognition and voice synthesis in smart assistants. RNNs are the best for sequential data like voice, text or music.

Remember Microsoft Sam, the old-school speech synthesizer from Windows XP? That funny guy builds words letter by letter, trying to glue them up together. Now, look at Amazon Alexa or Assistant from Google. They don't only say the words clearly, they even place the right accents!

Neural Net is trying to speak

All because modern voice assistants are trained to speak not letter by letter, but on whole phrases at once. We can take a bunch of voiced texts and train a neural network to generate an audio-sequence closest to the original speech.

In other words, we use text as input and its audio as the desired output. We ask a neural network to generate some audio for the given text, then compare it with the original, correct errors and try to get as close as possible to ideal.

Sounds like a classical learning process. Even a perceptron is suitable for this. But how should we define its outputs? Firing one particular output for each possible phrase is not an option — obviously.

Here we'll be helped by the fact that text, speech or music are sequences. They consist of consecutive units like syllables. They all sound unique but depend on previous ones. Lose this connection and you get dubstep.

We can train the perceptron to generate these unique sounds, but how will it remember previous answers? So the idea is to add memory to each neuron and use it as an additional input on the next run. A neuron could make a note for itself - hey, we had a vowel here, the next sound should sound higher (it's a very simplified example).

That's how recurrent networks appeared.

This approach had one huge problem - when all neurons remembered their past results, the number of connections in the network became so huge that it was technically impossible to adjust all the weights.

When a neural network can't forget, it can't learn new things (people have the same flaw).

The first decision was simple: limit the neuron memory. Let's say, to memorize no more than 5 recent results. But it broke the whole idea.

A much better approach came later: to use special cells, similar to computer memory. Each cell can record a number, read it or reset it. They were called long and short-term memory (LSTM) cells.

Now, when a neuron needs to set a reminder, it puts a flag in that cell. Like "it was a consonant in a word, next time use different pronunciation rules". When the flag is no longer needed, the cells are reset, leaving only the “long-term” connections of the classical perceptron. In other words, the network is trained not only to learn weights but also to set these reminders.

Simple, but it works!

CNN + RNN = Fake Obama

You can take speech samples from anywhere. BuzzFeed, for example, took Obama's speeches and trained a neural network to imitate his voice. As you see, audio synthesis is already a simple task. Video still has issues, but it's a question of time.


There are many more network architectures in the wild. I recommend a good article called Neural Network Zoo, where almost all types of neural networks are collected and briefly explained.

[collapse all] [show all]  2 comments
0
ashish wild or world?
0
Gajanan In the title, it should be learning "Neural Networks and Deep Leaning", Leaning is there.

The End: when the war with the machines?

The main problem here is that the question "when will the machines become smarter than us and enslave everyone?" is initially wrong. There are too many hidden conditions in it.

We say "become smarter than us" like we mean that there is a certain unified scale of intelligence. The top of which is a human, dogs are a bit lower, and stupid pigeons are hanging around at the very bottom.

That's wrong.

If this were the case, every human must beat animals in everything but it's not true. The average squirrel can remember a thousand hidden places with nuts — I can't even remember where are my keys.

So intelligence is a set of different skills, not a single measurable value? Or is remembering nuts stashed locations not included in intelligence?

An even more interesting question for me - why do we believe that the human brain possibilities are limited? There are many popular graphs on the Internet, where the technological progress is drawn as an exponent and the human possibilities are constant. But is it?

Ok, multiply 1680 by 950 right now in your mind. I know you won't even try, lazy bastards. But give you a calculator — you'll do it in two seconds. Does this mean that the calculator just expanded the capabilities of your brain?

If yes, can I continue to expand them with other machines? Like, use notes in my phone to not to remember a shitload of data? Oh, seems like I'm doing it right now. I'm expanding the capabilities of my brain with the machines.

Think about it. Thanks for reading.

 add a comment here
Comments ↓
14
mglauco ⸬ 07 February 2019, 23:20 ⸬ São Paulo, BR ⸬ Windows logs
#
Real nice, objective and concise job! Thanks
3
Punit Vara ⸬ 08 February 2019, 05:43 ⸬ Santa Clara, US ⸬ Windows logs
#
Great job. Illustrative and beautifully written document. It was pleasure to read your article.
10
Bipin Bhandari ⸬ 08 February 2019, 06:35 ⸬ Jawalakhel, NP ⸬ Apple logs
#
This article is pleasant to read and is very easy to dive in for software developers. Thanks a lot for this
3
Prashant Soni ⸬ 08 February 2019, 07:21 ⸬ Bengaluru, IN ⸬ Windows logs
#
I loved it! Thanks for sharing.
1
Darren ⸬ 08 February 2019, 08:53 ⸬ Singapore, SG ⸬ Windows logs
#
Thanks for writing this article, one of the best I have read this year!
1
Justin Evans ⸬ 08 February 2019, 10:26 ⸬ Islamabad, PK ⸬ Windows logs
#
Thanks for sharing very nice article!
0
Azim ⸬ 08 February 2019, 10:31 ⸬ FR ⸬ Windows logs
#
Excellent article !! Very clear and so complete ! Thanks a lot !
0
Max_ ⸬ 08 February 2019, 13:42 ⸬ UG ⸬ Linux logs
#
Really Cool✌️
0
Benoit ⸬ 08 February 2019, 16:01 ⸬ FR ⸬ Linux logs
#
Thank you so much for that brilliant article.
0
David ⸬ 08 February 2019, 19:14 ⸬ Provo, US ⸬ Windows logs
#
Very insightful and funny! Thank you for writing this.
11
Erik ⸬ 09 February 2019, 23:44 ⸬ Hanoi, VN ⸬ Apple logs
#
Excellent! Thank you for making Machine Learning accessible to everyone.

P.S.: Which tools did you use to create those figures?
2
Anders ⸬ 10 February 2019, 14:00 ⸬ Washington, US ⸬ Apple logs
#
Great work! That’s the best attempt to explain machine learning I’ve seen.

Suggestion: at some point, might want to break it up and turn into a GH website — for many non techie beginners, a post this long is going to be overwhelming even if much of the text isn’t. Added bonus: folks — eg, teachers like me — could help you tweak it to make it even more accessible.
5
Gordon Jin ⸬ 12 February 2019, 09:19 ⸬ Shanghai, CN ⸬ Windows logs
#
Waooo~~~ great~ give you a ZAN!

Waooo~~~ great~ give you a ZAN!
1
Nidhi Barhate ⸬ 12 February 2019, 14:42 ⸬ IN ⸬ Windows logs
#
Yeeyyyy!!! Wooww.. it is so cool easy to understanding concepts.. Thank You very much..
1
pankaj ⸬ 13 February 2019, 09:20 ⸬ IN ⸬ Windows logs
#
Amazing! to see all the data science concept in one go, Thanks man!
1
Talha Abubakr ⸬ 13 February 2019, 11:42 ⸬ PK ⸬ Windows logs
#
Great Work. Thanks
0
Shubham Kumar ⸬ 13 February 2019, 14:03 ⸬ IN ⸬ Windows logs
#
Great Work. Thanks. This is so clear that even my stupid friends can understand.
0
Niyazahamad ⸬ 13 February 2019, 22:26 ⸬ Bengaluru, IN ⸬ Linux logs
#
Great work, thanks!
0
Ernest ⸬ 14 February 2019, 16:53 ⸬ Beaverton, US ⸬ Windows logs
#
Good and simple! Excellent!
1
Plantbasedprogrammer ⸬ 15 February 2019, 02:08 ⸬ AU ⸬ Windows logs
#
Fantastic explanation, helped me cement some of the topics I've been learning.
0
Samir Jain ⸬ 15 February 2019, 03:45 ⸬ New Delhi, IN ⸬ Linux logs
#
You are genius - great indepth topic simplified beautifully. I have gone through online courses on this vast field. But always felt that the instructor is explaining self - with so much terms, math and unrelated terms. And then there are some who covers just the surface. You have done it beautifully - simple, elegant, deep, broad. I sincerely appreciate your hard work. Thanks a ton
0
Abbas ⸬ 16 February 2019, 16:58 ⸬ Baku, AZ ⸬ Windows logs
#
Awesome job! Thanks a lot!
1
Pawel Cislo ⸬ 17 February 2019, 12:44 ⸬ Brussels, BE ⸬ Windows logs
#
Without a doubt, it is one of the most entertaining blog posts explaining the core of machine learning. I like how you are going for quality over quantity in all the articles and unquestionably spending lots of time creating all the graphics.

In the end, I did not just sort my knowledge but got lots of inspiration for designing my own blog posts.

Thanks a ton!
3
Andi ⸬ 20 February 2019, 13:10 ⸬ GB ⸬ Apple logs
#
I want to donate a beer for this amazing blog post, but the fee for a 4€ donation is 3.5€ :-/ wtf. You should look for another way to receive donation ;-)
0
Pierre ⸬ 20 February 2019, 22:39 ⸬ Gex, FR ⸬ Windows logs
#
Congratulations
Very impressive work. Things look like simple when explained like this...
0
Derek ⸬ 21 February 2019, 16:14 ⸬ Fort Collins, US ⸬ Apple logs
#
Should be the first post everyone reads about ML! Great work.
0
Adeel ⸬ 22 February 2019, 11:03 ⸬ GB ⸬ Apple logs
#
Absolutely impressive. A very good article as a starter and a refresher.
0
Nasim ⸬ 22 February 2019, 17:17 ⸬ Duarte, US ⸬ Windows logs
#
even for someone who knows all of these concepts, this was interesting enough that I read it all! Great job.

Why am I depicted as a poop? :D
0
Tetsu Shionuma ⸬ 23 February 2019, 05:54 ⸬ Chiba, JP ⸬ Windows logs
#
Some parts are difficult for me but this article was very interesting. Thank you very much!
0
existe ⸬ 23 February 2019, 06:22 ⸬ Barcelona, ES ⸬ Apple logs
#
+10 Great!
2
Makhthum Syed ⸬ 24 February 2019, 08:05 ⸬ San Jose, US ⸬ Windows logs
#
Absolutely, one of best articles in Machine learning. Loved the way you kept less math/stats, just explaining in precise and simple manner focused on ML/DL.
0
David ⸬ 25 February 2019, 14:58 ⸬ Toronto, CA ⸬ Windows logs
#
Great Post!
I would like to donate but the Paypal fees are almost equal to the donation amount :(

Do you have an Ethereum, Bitcoin or other cryptocurrency address that I could donate to?
0
teeh ⸬ 28 February 2019, 22:03 ⸬ BR ⸬ Linux logs
#
Great Post! I learn much !

ps. at Association rule learning, check the legend of image ;)
0
Zsolt ⸬ 02 March 2019, 17:07 ⸬ Hove, GB ⸬ Linux logs
#
Amazing article. Awaiting others too in this domain. They could be also a bit more detailed. Thanks!
1
Selmas ⸬ 05 March 2019, 11:40 ⸬ FR ⸬ Windows logs
#
Very good job, Thank's a lot for the time and effort !!
1
nStar ⸬ 07 March 2019, 11:06 ⸬ Dombivali, IN ⸬ Linux logs
#
Thanks for sharing the article & explaining the concepts in simple terms.At nstar.in our focus is on making effective models for processing large volumes of information.
0
Ado ⸬ 13 March 2019, 16:22 ⸬ Amsterdam, NL ⸬ Windows logs
#
Thanks a lot, wonderful summary and beautiful explanations :)
0
pyjaime ⸬ 19 March 2019, 19:48 ⸬ Fuenlabrada, ES ⸬ Windows logs
#
Loved it! maybe the best introduction to ML... EVER
1
astefanuk ⸬ 20 March 2019, 14:49 ⸬ RO ⸬ Linux logs
#
Thanks a lot for the informative post. I like your graphics very much. Can I share my article with you too? It's about ML devs salary.
Hope you will find it interesting.
0
Bhushan ⸬ 27 March 2019, 03:02 ⸬ Mong Kok, HK ⸬ Windows logs
#
Nice article, easily understandable
0
Stéphane ⸬ 05 April 2019, 08:54 ⸬ Paris, FR ⸬ Windows logs
#
Nice article, many thanks !
0
John ⸬ 09 April 2019, 19:54 ⸬ Las Vegas, US ⸬ Windows logs
#
Well done and great work. Hard writing makes for easy reading. This was a lot of hard writing and it's appreciated.
0
Viswanathan ⸬ 16 April 2019, 04:17 ⸬ KW ⸬ Windows logs
#
Very Nice Article on Machine Learning !! Thank You very much for sharing this!
0
Srini rao ⸬ 16 April 2019, 19:40 ⸬ Manama, BH ⸬ Linux logs
#
Amazing article.
0
Jorge Espinoza ⸬ 17 April 2019, 23:59 ⸬ Chihuahua City, MX ⸬ Linux logs
#
Awesome!
0
Lilibalister ⸬ 20 April 2019, 03:56 ⸬ Bogotá, CO ⸬ Apple logs
#
OMG thank you sooo much!!! a light in the end of the maze of several AI books
0
Parasuraman ⸬ 26 April 2019, 06:23 ⸬ IN ⸬ Apple logs
#
Excellent article. Thanks a lot.!!!
0
Kostas ⸬ 16 May 2019, 12:59 ⸬ Enschede, NL ⸬ Apple logs
#
funny and educative article!
0
Chiayi Lin ⸬ 25 May 2019, 07:59 ⸬ Taipei, TW ⸬ Linux logs
#
your article is very comprehensive and suitable for beginners or anyone who are eager to know machine learning... very good article
0
Ravi S ⸬ 29 May 2019, 20:49 ⸬ San Jose, US ⸬ Windows logs
#
Thank you for sharing. Awesome and Great Work!!!!
0
Mayzar ⸬ 31 May 2019, 08:13 ⸬ Yangon, MM ⸬ Windows logs
#
So cool!!Thank you for sharing!
0
kalpana chauhan ⸬ 03 June 2019, 18:31 ⸬ Noida, IN ⸬ Windows logs
#
Impressive content on your blog i appreciate the way you arrange all the important information sequentially
0
Lawrenzo Huang ⸬ 07 June 2019, 11:11 ⸬ Taipei, TW ⸬ Windows logs
#
Awesome! Awesome! Awesome!
0
sasasasa ⸬ 07 June 2019, 11:32 ⸬ Ulan Bator, MN ⸬ Windows logs
#
love it
0
ML Training ⸬ 14 June 2019, 11:25 ⸬ Bengaluru, IN ⸬ Windows logs
#
Perfect... Awesome blog about ML...
0
Chankey Pathak ⸬ 14 June 2019, 16:35 ⸬ Mumbai, IN ⸬ Windows logs
#
Very well summarized. Good job! This would be useful for beginners.
0
sudha ⸬ 15 June 2019, 20:06 ⸬ Thane, IN ⸬ Windows logs
#
0
learning voyage ⸬ 18 June 2019, 12:48 ⸬ Noida, IN ⸬ Linux logs
#
If you are looking for the best training in Florida for machine learning, AI, blockchain, deep learning, data science & other cutting edge technologies, then Learning Voyage is the trusted training centre you can believe upon. We are a team of experts that can provide you with training on latest technologies live in traditional classrooms as well as online as per your choice with the lowest budget and maximum efficiency. visit now to book your course- 
https://www.learningvoyage.com/
0
Fulvio ⸬ 22 June 2019, 23:10 ⸬ São Paulo, BR ⸬ Apple logs
#
Awesome .... love it
0
Waldir Gomes ⸬ 24 June 2019, 12:41 ⸬ Curitiba, BR ⸬ Linux logs
#
Excellence explanation, Very interisting...thanks a Lot..
0
Krishnakumari ⸬ 25 June 2019, 17:17 ⸬ Bengaluru, IN ⸬ Windows logs
#
Excellent article. Any naive user can study with ease and comfort. Thank u so much.
0
Faruk ⸬ 25 June 2019, 17:48 ⸬ Ponta Grossa, BR ⸬ Windows logs
#
Love it!
0
Esther Saya ⸬ 28 June 2019, 22:01 ⸬ KE ⸬ Windows logs
#
Amazing!! Great article!! Love it!!
0
jaykumarjain ⸬ 04 July 2019, 08:53 ⸬ Ratlam, IN ⸬ Linux logs
#
Computer language is unique, unlike human's language. Humans use high-level language and computer use low-level language or Machine language. In the world of technology and modernization, Knowing about a computer is a must and if know about its coding and internal affairs then it would be the best thing which can take your future to heights. It is not a tough language. Its all about algorithms and statistical models that computer use to find out the solutions to any problem. It is one of the trending course available for entering in the IT sector. So if you are willing to take the training of it then visit Universal Informatics. It is holding the highest placed student record in Indore and best Machine Learning training In Indore.
visit: http://universalinformatics.com/
0
NoushadK ⸬ 05 July 2019, 06:53 ⸬ Bengaluru, IN ⸬ Windows logs
#
Great work. simple blog about ML.
Thank you
Noushad K
https://nearlearn.com/

Great work. simple blog about ML.
Thank you
Noushad K
https://nearlearn.com/
0
Kelvin ⸬ 17 July 2019, 08:06 ⸬ Lagos, NG ⸬ Apple logs
#
Awesome articles. Really hope to get started learning "machine learning"
0
Abraham ⸬ 19 July 2019, 00:10 ⸬ Lima, PE ⸬ Windows logs
#
Thanks, It is super didactic.
0
Nadine ⸬ 19 July 2019, 04:08 ⸬ San Juan, PH ⸬ Linux logs
#
Witty, entertaining and packed with loads of knowledge explained in a way that dummies like me have understood. You are amazing!! 👏🙌
0
Steve Waugh ⸬ 20 July 2019, 06:29 ⸬ Windows logs
#
Thanks for sharing this article. This article is related to "Machine Learning for Everyone". In this article, machine learning technology is easily understandable to everyone.
I also deal with Tv repair services and solutions. For any kind of facing a problem regarding this contact us-https://www.techsupportdubai.com/led-tv-repair/
0
Bala ⸬ 25 July 2019, 15:36 ⸬ New York, US ⸬ Windows logs
#
Splendid job!
0
Dr.Bazila Banu ⸬ 26 July 2019, 06:12 ⸬ Coimbatore, IN ⸬ Windows logs
#
Awesome explanation about ML techniques.Great Job.Thanks
0
Heru Wiryanto ⸬ 26 July 2019, 11:48 ⸬ Jakarta, ID ⸬ Windows logs
#
clear and simple explanation about ML......
0
Dr.Bazila Banu ⸬ 30 July 2019, 09:40 ⸬ Coimbatore, IN ⸬ Windows logs
#
good
0
Good work ⸬ 03 August 2019, 10:18 ⸬ Azamgarh, IN ⸬ Windows logs
#
Nice work Nibba
0
khiladi ⸬ 03 August 2019, 10:19 ⸬ Azamgarh, IN ⸬ Windows logs
#
How the favicon for everyone is different??
0
Machine-Learning ⸬ 06 August 2019, 06:22 ⸬ Hyderabad, IN ⸬ Windows logs
#
I am feeling motivated and now work harder to start the career in Machine-Learning, hope will get similar success. Thanks for sharing your Machine-Learning experience.

https://www.kellytechno.com/Hyderabad/Course/Machine-Learning-Training-In-Hyderabad
0
Pratap ⸬ 11 August 2019, 10:33 ⸬ New Delhi, IN ⸬ Windows logs
#
Thanks for all the stuff; for practical exposure Training & Live Consulting projects on Data Science; reach me at pratapsmobilearena@gmail.com
0
ExcelR Solutions ⸬ 14 August 2019, 05:54 ⸬ Bengaluru, IN ⸬ Windows logs
#
This is the most useful and fantastic article. Clear and easy explanation of machine learning. Thanks for sharing.
0
Retail Software ⸬ 19 August 2019, 10:36 ⸬ IN ⸬ Windows logs
#
Thank you very much for sharing this post. This article is about "Everyone's learning machine." Machine learning technology can be readily understood by everyone in this article. I'm also dealing with utilities and solutions for TV repair.
Web- https://www.vrssoftwares.com/retail-software/
0
Taruna ⸬ 20 August 2019, 05:14 ⸬ Rajpura, IN ⸬ Linux logs
#
This is awesome. Thanks for sharing
0
Mast3r ⸬ 20 August 2019, 16:25 ⸬ Shah Alam, MY ⸬ Windows logs
#
Very interesting and nice!! I mean that I very like your writing way because it is fun and able to inspired, as no one like to read whole theory thing without funny example.
0
Rocky ⸬ 22 August 2019, 07:29 ⸬ Gurgaon, IN ⸬ Windows logs
#
Me2call4u is random Video chat, and connect with anyone from the anywhere in the world with a single swipe.
0
makpark ⸬ 24 August 2019, 12:49 ⸬ Izmir, TR ⸬ Windows logs
#
Thanks for your this comment.

www.makpark.com/index.htm
0
Leo ⸬ 24 August 2019, 13:39 ⸬ ID ⸬ Linux logs
#
Thanks, and article is the best for me, it's for knowledge an ai
0
Piyush ⸬ 27 August 2019, 04:00 ⸬ Toronto, CA ⸬ Windows logs
#
Thanks for the article..It is very nice
0
MCAL Global ⸬ 27 August 2019, 05:26 ⸬ Mumbai, IN ⸬ Windows logs
#
Start your machine Learning Journey with a bang? Join our Global live session on September 1, 2019.
HURRY UP, LIMITED SEATS!
JOIN OUR GLOBAL FREE SESSION ON SEPTEMBER 1, 2019. CLICK BELOW LINK TO REGISTER.
https://www.mcal.in/
https://www.eventbrite.com/e/start-your-machine-learning-journey-with-a-bang-free-session-hurry-up-tickets-69729872927
0
Astha Mahajan ⸬ 28 August 2019, 09:24 ⸬ Mandi, IN ⸬ Windows logs
#
Hi

Hope you are doing well!

I am interested to get my client featured on your website. I will provide the content, Could you please let me know if you offer a do-follow link and what will be the TAT to get the article published. Also the cost per article.
Regards,
Astha Mahajan
0
seaboat ⸬ 29 August 2019, 08:42 ⸬ Guangzhou, CN ⸬ Windows logs
#
Great job! Enjoy reading this article very much!
0
Raghu ⸬ 29 August 2019, 14:18 ⸬ IN ⸬ Windows logs
#
One of the best illustrations i read in recent times. Thanks
0
sadok ⸬ 31 August 2019, 10:09 ⸬ Batna City, DZ ⸬ Windows logs
#
great work ...thank you
0
Aditi ⸬ 05 September 2019, 09:18 ⸬ Pune, IN ⸬ Windows logs
#
Each and every topic are covered in this blog about machine learning,
My all queries are solve by reading this blog.
keep updating,Thanks
https://www.exltech.in/big-data-hadoop-training.html
0
Roman ⸬ 07 September 2019, 06:50 ⸬ Campbell, US ⸬ Windows logs
#
The best ML overview I read so far! Very much appreciated it. Thank you :)
0
Rocky ⸬ 11 September 2019, 08:54 ⸬ Gurgaon, IN ⸬ Windows logs
#
find the best partner with crazy krush app, currently this is best dating app
0
machine learning ⸬ 16 September 2019, 11:17 ⸬ Hyderabad, IN ⸬ Windows logs
#
The blog was absolutely fantastic| Lot of great innovative information which can be very helpful. Thanks for sharing such wonderful information.

http://www.analyticspath.com/machine-learning-training-in-pune
0
website development ⸬ 18 September 2019, 07:09 ⸬ New Delhi, IN ⸬ Windows logs
#
really I inspire your post so thanks for sharing this useful information also you know more things please Visit as https://uaewebsitedevelopment.com
(don't fill this field)

me@vas3k.ru :: twitter :: instagram :: facebook :: github