Andrew Ng machine learning (b) univariate linear regression (Linear Regression with one variable)

First, the model represents

1. Some of the terms

Below, rate prediction. Training set price and gives the housing area, here are some terms:

x: input variable or input features (input variable / features).

y: output variables or target variables (output variable / target variable).

(x, y): a training sample

(X (i) , Y (i) ): of the i th training sample

m: number of samples

 

 

 

 

 

 

 

 

 

 

2. The general process of machine learning

As shown, machine learning algorithm obtained through the learning function is assumed that the training set H (Hypothesis) , and then accepts the input X , the output Y . Suppose the function h called model.

3. assume the function of a linear regression problem

By observation, we use prediction data rates approximate a straight line, we will assume the function set  H (X) = [theta] + [theta] . 1 X , our goal is to have the linear fit to the data as training set. At this stage we assume that by observing the function model, since we can directly assume a more complex function, and then through the regularization avoid overfitting, speaks after this part.

综上,我们得到假设函数:h(x) = θ+ θ1x。这样问题就转变为求解θ0θ1使得曲线(或直线)h(x) 拟合训练数据。

二、代价函数(Cost Function)

1.代价函数推导与表示

从我们的目标出发,我们的目标是使曲线h(x) 拟合训练数据。从这点我们可以看出应该让训练数据尽可能的通过h(x)或离h(x)接近,故我们让y和h(x)的距离尽可能小,可以用减法运算来表示距离d,由于d有可能小于0,会使得代价函数J(θ0, θ1)反而变小,而实际上h(x)与y还是有距离的,故使用d2来表示。其中(x, y)为某一样本。

d2 = [h(x) - y]2

这样,我们将所有的样本所求出的预测值h(x)y相减得到d,然后对所有的d求和就得到预测值与所有样本的距离的和,记为J(θ0, θ1),如下:

 

该公式称为h(x)代价函数(Cost Function),又称平方误差函数(Squared Error Function)。上述公式是距离的平方再求和,这和相减的效果是一样的,样本数量为m,前面乘以1/m求平均值,分母的2主要是为了便于之后求导约掉。为使h(x)y尽可能的接近,函数J(θ0, θ1)应尽可能小,故目标转变为求出使得函数J(θ0, θ1)尽可能小的θ0θ1

 

 

2.理解代价函数

为简化问题,我们将θ0置为0,这样,h(x) =  θ1x,J也变为J(θ1) 

 

 

观察下图,当θ1的值变化时,J(θ1)也跟着变化,可以观察到,当θ1= 0h(x)与训练数据拟合的最好时,J(θ1)达到最小值。

从上面我们可以观察到函数J(θ1)为凸函数,并且对于线性回归问题,该函数只存在全局最小值,不存在局部最小值。这样,我们可以利用导数来求解极小值,同时也是最小值。

对于J(θ0, θ1)J(θ1)同理,在绘制θ0J(θ0, θ1)的关系时只需将θ1视为不变即可,并且求导时变为分别求J(θ0, θ1)θ0θ1的偏导数。

综上,我们明白了为使h(x)与训练数据拟合,必须求出使得J(θ0, θ1)最小的θ0θ1,还知道了J(θ0, θ1)是凸函数,可以通过求导来求出最小值和对应的θ0θ1

三、梯度下降算法(Gradient Descent)

1.公式

上一节我们讲了可以使用导数的方式来求解θ0θ1,本节的梯度下降算法利用的便是这种思想,其算法如下:

上述公式中α为学习率,该参数可以控制θ的变化速率。值得注意的是,在更新多个θ时要同步更新,不能先更新任意一个。

2.理解

上述公式初看可能难以理解,我们依旧使用简化的假设函数h(x) = θ1x和J(θ1)来解释。

如下图,当θ1位于极小值的右方时,J(θ1)单调增加,故大于0,这表明函数θ1正位于最小值的右方,要达到最小值应该要减小θ1,应该减去一个正数。故下面的公式会使得θ1接近最小值:

同理,当θ1位于极小值的左方时,J(θ1)单调减少故小于0,这表明函数θ1正位于最小值的左方要达到最小值应该要增加θ1,应该加上一个正数,即减去一个负数。故下面的公式会使得θ1接近最小值:

3.学习率α

对于J(θ1),我们求解θ1的公式是

可以看到,若学习率α很小,那么θ1会很缓慢地减小;若学习率α很大,那么θ1变化会很大,甚至于越过了J(θ1)最小值对应的θ1,其在图像上表现为反复横跳,最终甚至无法收敛到最小值。如下图所示:

再思考,在上述求解θ1的公式中,我们是否需要在运行过程中定期修改α的值?

答案是不用。由于公式中的导数越接近极小值(同时是最小值)时会越来越小,对应到图像上表现为越来越平缓,所以会越来越小,故θ1的变化越来越慢,直至收敛到使J(θ1)取得最小值。

四、单变量线性回归问题求解

综合上述所有知识,我们得到如下总结:

我们首先假设了假设函数h(x) = θ0 + θ1x,然后为了求解θ0 和 θ1,我们从使得h(x) 拟合训练数据的想法出发,想到要使h(x) 与训练数据拟合,必须使得预测值h(x)与y的距离尽可能接近,故得到函数J(θ0 , θ1),问题转变为了求出使得最小化J(θ0 , θ1)对应的θ0 和 θ1,再从函数J(θ0 , θ1)为凸函数的特点出发,想到其在不同位置的导数正负不同,得到梯度下降算法。这样便可以使用梯度下降算法求得θ0 和 θ1,从而得到h(x)。现在问题只剩下一个,那就是求解,结合J(θ0 , θ1)的表达式求导,可以得到

这样,我们便求解了单变量线性回归问题,得到了拟合了数据的假设函数h(x)。

上述的梯度下降算法称为批量梯度下降(Batch Gradient Descent),所谓批量指的是在每一次梯度下降的过程中都使用了全部样本。

 

Guess you like

Origin www.cnblogs.com/yayuanzi8/p/10973978.html