P2 【机器学习】模型描述、代价函数、梯度下降

目录

1.模型描述 Model Representation

2.代价函数 Cost Function

2.1模型参数的选择 (θ_0 和 θ_1)

2.2代价函数的用法(一个参数的情况)

2.3代价函数的用法 (两个参数的情况)

2.3梯度下降定义 Gradient Descent

2.4梯度下降意义及用法 

2.5线性回归的梯度下降


1.模型描述 Model Representation

        在【吴恩达】机器学习的课程中会用到一些描述符号,在这里事先标明。例如m代表总的训练样本的数量,X^(n) 和 Y^(n) 分别表示第n个输入变量和第n个输出变量。

To establish notation for future use, we’ll use x(i)x(i) to denote the “input” variables (living area in this example), also called input features, and y(i)y(i) to denote the “output” or target variable that we are trying to predict (price). A pair (x(i),y(i))(x(i),y(i)) is called a training example, and the dataset that we’ll be using to learn—a list of m training examples (x(i),y(i));i=1,...,m(x(i),y(i));i=1,...,m—is called a training set. Note that the superscript “(i)” in the notation is simply an index into the training set, and has nothing to do with exponentiation. We will also use X to denote the space of input values, and Y to denote the space of output values. In this example, X = Y = ℝ.

        当我们在利用机器学习算法构造模型时,一般步骤如下左图。利用算法从训练集中得到假设函数h(hypothesis),假设函数h是从size(x) 到price(y)的一个映射map。如下右图,是建立的一个简单的线性回归模型(linear regression model),得到的函数h_θ(x) = θ_0 + θ_1*x 是一个简单的假设函数h

To describe the supervised learning problem slightly more formally, our goal is, given a training set, to learn a function h : X → Y so that h(x) is a “good” predictor for the corresponding value of y. For historical reasons, this function h is called a hypothesis. Seen pictorially, the process is therefore like this:

 

2.代价函数 Cost Function

目的:弄清楚如何把最有可能的直线与我们的数据相拟合。

2.1模型参数的选择 (θ_0 和 θ_1)

        我们需要在由一组训练集得出的假设函数所表示的模型中弄清楚模型的参数(系数)是什么,这两个参数需要使得当我们输入测试集的x时所得到的函数值h(x)与样本y最接近。

        如下图中右上角所列式,即需要求的这个函数式的最小值。 

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. 

 

        为了使得求导更方便,我们需要在这个表达式前乘上一个1/2m,除以m是为了消除训练样本个数产生的影响。因为m是定值,因此乘上这个数不影响最终求出来所得到的最小值。因此我们得到线性回归的整体目标函数:

         进而整理后,我们将函数改个名字:J,又叫做代价函数(Cost Function),或者平方误差函数(Squared error function):

This function is otherwise called the "Squared error function", or "Mean squared error". The mean is halved (1/2​) as a convenience for the computation of the gradient descent, as the derivative term of the square function will cancel out the 1/2​ term. The following image summarizes what the cost function does:

         代价函数(Cost Function) 的总结推导过程:

         平方误差代价函数是解决“线性回归问题”最常用的手段,也有其他代价函数,会在后面课程学到,但上述的代价函数是适合大多数问题的代价函数。

2.2代价函数的用法(一个参数的情况)

        代价函数是我们的优化目标。优化函数可以进一步简化为令θ_0 = 0,得到一个经过原点的函数,有助于我们理解代价函数的含义。如下左图,表示不同的代价函数上对应的点的函数值与真实值(红色X)在纵轴方向上的差值,再将它们的平方和相加除以2m,得到代价函数的函数值。将每个θ_1对应的代价函数值画在右图中,可以明显看到函数的曲线,当θ_1 = 1,即与真实值函数斜率相等/重合时,代价函数值最小,这也就是我们的目标,求得了最小函数值下θ_1的值,是1。此时,对于数据集,我们已经完美地找到了一条拟合线。以此类推,便能很好理解代价函数的用法了。

        总结下来,代价函数的目的就是让我们找到最符合数据集的一条拟合线。

2.3代价函数的用法 (两个参数的情况)

        所需知识储备:高等线图??

        与只有一个模型参数的代价函数不同,当有两个模型参数的时候,我们得到的代价函数图像应该是下图这样的一个3D曲面图。为了更加方便地展示曲面图,我们需要用到高等线图(contour plots/figures)。

         高等线图上的椭圆线表示在同一条线上,不同组(θ_0,θ_1)的函数值J(θ_0,θ_1)是相同的。例如下右图中红色的三个X所代表的点。

        当我们在等高线上随机取一点(θ_0,θ_1) = (800,-0.15),画出来所对应的直线在左边可以看出该直线拟合的非常糟糕,因为在右图中该点距离中心的最小值点很远,这是一个很大的“cost”。

        因此我们可以进而推出,点距离中心点更近,左边对应画出来的代价函数拟合的就会更好。 

        接下来我们会学习更复杂的模型,也会找到方法让函数直接找到最小值所对应的(θ_0,θ_1)。

2.3梯度下降定义 Gradient Descent

        梯度下降是一个很常用的算法广泛应用于机器学习中,可以用于更一般的模型,有更多的模型参数θ_0,θ_1...θ_n ,不仅仅是现在即将要讲到的线性回归模型。

         梯度下降,通俗来讲,假设你在一个有两座山峰的平原上,如下模拟图,你从某一点开始,需要找到最快速下山的每一步,直到到达局部范围的最低点。这个最低点不一定是全局最低点,因为当你的开始点切换后,你所到达的局部最低点可能也会改变。这就是梯度下降的一大特点。

        用公式来表述,即,我们需要不断地同时改变θ_0和θ_1,使得J(θ_0,θ_1)最小。

         梯度下降的公式如下图所示。图中的“:=”表示“赋值”,𝜶表示learning rate,表示梯度下降的速率,𝜶越大,梯度下降越快。

        关于梯度下降法的细节,最重要的是需要同时simoutaneously更新θ_0和θ_1,下图左下角的公式是正确的梯度下降算法,右边则是错误的梯度下降算法,因为θ_0和θ_1的改变是不同步的。

 

2.4梯度下降意义及用法 

        将梯度下降算法简化,令θ_0 = 0,得到只有一个模型参数的梯度下降函数,这时函数中的求偏导变为求导,为了更通俗地解释,看下图中的一个二次函数图形,横坐标为θ_1,随机取一点θ_1。在𝜶大小适当的情况下,若θ_1在最低点的右边,则每次θ_1都会变小,并且一直向左移动;同理,当θ_1在最低点左边,θ_1的值会增加,向右边移动。

        

        上述是在𝜶大小适当的前提下,那么当𝜶过小或过大,情况又会变成怎样?

        如下图所示,当𝜶太小,θ_1的移动速率会非常慢;当𝜶太大时,θ_1的移动速率会过大,若新的点上导数值更大,会最终导致梯度下降函数无法收敛,甚至发散。

         若当第一次选择的点θ_1就处在最低点呢?这时θ_1的增加量为0,θ_1不会改变,保持稳定。

         在梯度下降中,即使𝜶是定值,在𝜶大小适当的前提下,θ_1的变化值会越来越小,因为θ_1所在点的斜率越来越小,因此函数最终会自动收敛于最低点,不用在这个过程中改变/降低𝜶的值。

        以上就是梯度下降算法,我们可以用它来尝试最小化任何代价函数,在之后我们会回到简单的线性回归模型,用代价函数结合梯度下降算法得到我们的第一个机器学习算法。 

2.5线性回归的梯度下降

        在这一节中,我们的目的是将梯度下降算法应用在线性回归的平方差代价函数上去,使之最小化。如下图,我们现在试图将左边的算法应用到右边的模型中。

        需要做的事情很简单,那就是将右边模型的J(θ_0,θ_1)平方差代价函数分别对于θ_0和θ_1求偏导后带入左边的算法中以求得函数的最小值。

         具体的求解过程如下图,当j分别为0和1时,对代价函数求偏导的结果如下:

        将求偏导后的结果带入梯度下降算法中得到: 

         在之前我们讲解梯度下降算法时举的例子较为普遍,但事实上,当我们把梯度下降算法应用在线性回归模型中时我们会得到类似于下图这样“凸函数”,意义在于,我们此时求得的最优解是全局最优而补水局部最优。当我们在任意一点开始进行梯度下降时,最终得到的收敛结果都会是代价函数的最小值点。

         下图展示了梯度下降算法应用在线性回归模型时其中的2个步骤以及最终的结果。

         综上所述,此时我们运用的梯度下降算法又叫做“Batch”梯度下降算法,这个算法的特点是每一步梯度下降,我们都遍历了整个训练集样本,在公式中是m,即总和。当然还有其他的梯度下降算法,关注的是小子集。

        我们平常在学校或其他方法学习的,直接求函数最小值的办法,即令系数求导结果为0的计算方法又叫做“正规方程组解法”,在之后会讲到。梯度下降算法相对于正规方程组解法,更适用于数据量大的训练集。 

        在下一部分中我们会紧接着学习/复习 线性代数的相关知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小怪的碗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值