# Marchine Learning Syllabus Part1

## What is Machine Learning?

Two definitions of Machine Learning are offered. Arthur Samuel described it as: “the field of study that gives computers the ability to learn without being explicitly programmed.” This is an older, informal definition.

Tom Mitchell provides a more modern definition: “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”

In general, any machine learning problem can be assigned to one of two broad classifications: Supervised learning and Unsupervised learning.

## Supervised Learning

In supervised learning, we are given a data set and already know what our correct output should look like, having the idea that there is a relationship between the input and the output.

Supervised learning problems are categorized into “regression” and “classification” problems. In a regression problem, we are trying to predict results within a continuous output, meaning that we are trying to map input variables to some continuous function. In a classification problem, we are instead trying to predict results in a discrete output. In other words, we are trying to map input variables into discrete categories.

## Unsupervised Learning

Unsupervised learning allows us to approach problems with little or no idea what our results should look like. We can derive structure from data where we don’t necessarily know the effect of the variables.

We can derive this structure by clustering the data based on relationships among the variables in the data.

With unsupervised learning there is no feedback based on the prediction results.

## Linear Regression with One Variable

### Cost Function

We can measure the accuracy of our hypothesis function by using a cost function. This takes an average difference (actually a fancier version of an average) of all the results of the hypothesis with inputs from x’s and the actual output y’s.

$$J(\theta_0, \theta_1) = \frac {1}{2m} \sum_{i=1}^m (\hat{y}_{i} - y_{i})^2 = \frac {1}{2m} \sum_{i=1}^m (h_{\theta}(x_{i}) - y_{i})^2$$

This function is otherwise called the “Squared error function”, or “Mean squared error”.

The gradient descent algorithm is: repeat until convergence:

$$\theta_j := \theta_j - \alpha \frac {\partial}{\partial \theta_j} J(\theta_0, \theta_1)$$

where j=0,1 represents the feature index number. At each iteration j, one should simultaneously update the parameters $\theta_1$,…, $\theta_n$. Updating a specific parameter prior to calculating another one on the $j^{(th)}$iteration would yield to a wrong implementation:

$$temp0 := \theta_0 - \alpha \frac {\partial}{\partial\theta_0}J(\theta_0,\theta_1)$$

$$temp1 := \theta_1 - \alpha \frac {\partial}{\partial\theta_1}J(\theta_0,\theta_1)$$ $$\theta_0:=temp0$$

$$\theta_1:=temp1$$ Gradient descent can converge to a local minimum even with the learning rate $\alpha$ fixed.