Artificial Intelligence and machine learning

The pursuit of Artificial Intelligence (AI) has a long history. It's even before the invention of Computer. But it only became practical with the development of Computer Science. Normally, we believe the birth of modern AI took place in Dartmouth Conference in 1956, in which the term "Artificial Intelligence" was proposed. Since then, researchers started to investigate AI from multiple disciplines, some of them succeed, and some of them failed. For a review of AI history, you can read this Wikipedia page.

AI research has many branches, like reasoning as search, robotics, etc. Currently, the most successful AI methodology is Machine Learning (ML), and we can say:

AI $\approx$ ML

Machine learning was firstly proposed by Arthur Samuel, as "Field of study that gives computers the ability to learn without being explicitly programmed" [1]. Below are some other definition of machine learning:

These definitions have their own emphasizes, but the main idea is the same: machine learning is about building algorithms to learn automatically from data.

Simply speaking, the purpose of ML is to find a function**: $y=f(x)$**, in which $x$ is input data, and $y$ is output data. $f()$ is the function (or model) to convert $x$ to $y$. Here are some examples:

To build $f()$, we can just program it, by figuring out the relationship between $x$ and $y$ manually. However, $f()$ built manually cannot deal with many complicated situations. Machine learning provides another way of building $f()$ by allowing the computer to observe the data and establish the relationship between $x$ and $y$. Therefore, the main characteristic of ML is that $f()$ is not pre-defined or designed by human, but learned from data ($X=[x_1, x_2, ..., x_n]$, $Y=[y_1, y_2, ..., y_n]$, for $n$ pieces of data). These data are called "training data", since they are used to train the model $f()$.

In addition to training data, machine learning requires some more data which is called "test data". Test data is used to evaluate the trained model. You can never use test data to train the model, otherwise the model can memorize the test data and cheat on its evaluation.