吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归

Model and Cost Function

1 模型概述 - Model Representation

To establish notation for future use, we’ll use

  • x(i) denote the “input” variables (living area in this example), also called input features, and
  • y(i) denote the “output” or target variable that we are trying to predict (price).

A pair (x(i),y(i)) is called a training example

the dataset that we’ll be using to learn—a list of m training examples (x(i),y(i));i=1,...,m—is called a training set.

the superscript “(i)” in the notation is simply an index into the training set, and has nothing to do with exponentiation

  • X denote the space of input values
  • Y denote the space of output values

In this example

X = Y = R

To describe the supervised learning problem slightly more formally, our goal is,

given a training set, to learn afunction h : X → Yso 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

  • regression problem When the target variable that we’re trying to predict iscontinuous, such as in our housing example
  • classification problem When y can take on only a small number of discrete values (such as if, given the living area, we wanted to predict if a dwelling is a house or an apartment, say) 简单的介绍了一下数据集的表示方法,并且提出来h(hypothesis),即通过训练得出来的一个假设函数,通过输入x,得出来预测的结果y。并在最后介绍了线性回归方程2 代价函数 - Cost Function代价函数是用来测量实际值和预测值精确度的一个函数模型. We can measure the accuracy of our hypothesis function by using acost 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.

首先需要搞清楚假设函数和代价函数的区别

当假设函数为线性时,即线性回归方程,其由两个参数组成:theta0和theta1

我们要做的就是选取两个参数的值,使其代价函数的值达到最小化

J(θ0,θ1)=12m∑i=1m(y^i−yi)2=12m∑i=1m(hθ(xi)−yi)2

To break it apart, it is 1/2 x ̄ where x ̄ is the mean of the squares of hθ(xi)−yi , or the difference

between the predicted value and the actual value.

This function is otherwise called theSquared 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:

3 代价函数(一)

If we try to think of it in visual terms, our training data set is scattered on the x-y plane.

We are trying to make a straight line (defined by hθ(x)) which passes through these scattered data points.

Our objective is to get the best possible line. The best possible line will be such so that the average squared vertical distances of the scattered points from the line will be the least.

Ideally, the line should pass through all the points of our training data set. In such a case, the value of J(θ0,θ1) will be 0.

The following example shows the ideal situation where we have a cost function of 0.

When θ1=1, we get a slope of 1 which goes through every single data point in our model.

Conversely, when θ1=0.5, we see the vertical distance from our fit to the data points increase.

This increases our cost function to 0.58. Plotting several other points yields to the following graph:

Thus as a goal, we should try to minimize the cost function. In this case, θ1=1 is our global minimum.

4 代价函数(二)

  • 等高线图是包含许多等高线的图形,双变量函数的等高线在同一条线的所有点处具有恒定值 采用任何颜色并沿着'圆',可得到相同的成本函数值
  • 当θ0= 800且θ1= -0.15时,带圆圈的x显示左侧图形的成本函数的值 取另一个h(x)并绘制其等高线图,可得到以下图表
    例如,在上面的绿线上找到的三个红点具有相同的J(θ0,θ1)值,因此,它们能够被沿着同一条线找到
  • 当θ0= 360且θ1= 0时,等高线图中J(θ0,θ1)的值越接近中心,从而降低了成本函数误差 现在给出我们的假设函数略微正斜率可以更好地拟合数据。

上图尽可能地使成本函数最小化,因此,θ1和θ0的结果分别约为0.12和250。

在我们的图表右侧绘制这些值似乎将我们的观点置于最内圈“圆圈”的中心。

5 梯度下降 - Gradient Descent

对于假设函数,我们有一种方法可以衡量它与数据的匹配度

现在我们需要估计假设函数中的参数。

这就是梯度下降使用到的地方。

想象一下,我们根据其字段θ0和θ1绘制我们的假设函数(实际上我们将成本函数绘制为参数估计函数)

我们不是绘制x和y本身,而是我们的假设函数的参数范围以及选择一组特定参数所产生的成本值

我们将θ0放在x轴上,θ1放在y轴上,成本函数放在z轴

我们的图上的点将是使用我们的假设和那些特定的θ参数的成本函数的结果

我们知道,当我们的成本函数位于图中凹坑的最底部时,即当它的值是最小值时,我们已经成功了

红色箭头显示图表中的最小点。

我们这样做的方法是采用我们的成本函数的导数(一个函数的切线)

切线的斜率是该点的导数,它将为我们提供一个朝向的方向

我们在最陡下降的方向上降低成本函数

每个步骤的大小由参数α确定,该参数称为学习率

例如,上图中每个“星”之间的距离表示由参数α确定的步长

较小的α将导致较小的步长,较大的α将导致较大的步长

采取步骤的方向由J(θ0,θ1)的偏导数确定,根据图表的开始位置,可能会在不同的点上结束

两个不同的起点,最终出现在两个不同的地方.

梯度下降算法:重复直到收敛

θj:=θj−α∂∂θjJ(θ0,θ1)

where

j=0,1 represents the feature index number.

在每次迭代j,应该同时更新参数θ1,θ2,...,θn。

在第j次迭代计算另一个参数之前更新特定参数将导致错误的实现。

6 梯度下降知识点总结

在本文,我们探讨了使用一个参数θ1并绘制其成本函数以实现梯度下降的场景

对单个参数的公式是:重复直到收敛

θ1:=θ1−αddθ1J(θ1)

无论ddθ1J(θ1)的斜率符号如何,θ1最终会收敛到其最小值

下图显示当斜率为负时,θ1的值增加,为正时,θ1的值减小

斜率为正值
斜率为负值

Choose Learning Rate α

另外,我们应该调整参数α以确保梯度下降算法在合理的时间内收敛。

没有收敛或太多时间来获得最小值意味着我们的步长是错误的。

  • 如果J(θ)在下降,但是下降的速度很慢的话,就需要增大学习率α,因为每一步走的都太短了,导致到达最优解的速度下降,即收敛速度下降。
  • 因为α大的原因,每次都一步跳过了最优解点,导致距离最优解越来越远,J(θ)不断上升
    梯度下降如何由一个定步长的α收敛?

收敛背后的直觉是当我们接近凸函数的底部时ddθ1J(θ1)接近0。

至少,导数总是0

因此我们得到:

θ1:=θ1−α∗0

7 线性回归的梯度下降

回顾下之前所学

  • 梯度下降算法
  • 线性回归模型 - 线性假设 - 平方差代价函数
    我们要做的就是将梯度下降算法应用于线性回归模型的平方差代价函数 其中关键的是这个导数项

当具体应用于线性回归的情况时,可以导出梯度下降方程的新形式

我们可以替换我们的实际成本函数和我们的实际假设函数,并将等式修改为:

repeat until convergence: {θ0:=θ1:=}θ0−α1m∑i=1m(hθ(xi)−yi)θ1−α1m∑i=1m((hθ(xi)−yi)xi)

derivation of ∂∂θjJ(θ) for a single example :

其中m是训练集的大小

θ0是一个常数,它将与给定训练集(数据)的θ1和xi,yi 的值同步变化

注意,我们已经将θj的两种情况分离为θ0和θ1的两种情况的偏导数方程

而对于θ1,由于导数,我们在末尾乘以xi

以下是一个单个例子的∂∂θjJ(θ)的推导:

所有这一切的要点是,如果我们从某个猜想开始,然后重复应用这些梯度下降方程,我们的假设将变得越来越准确

因此,这只是原始成本函数J的梯度下降

该方法在每个步骤中查看整个训练集中的每个示例,并称为批量梯度下降

需要注意的是,虽然梯度下降一般对局部最小值敏感,但我们在线性回归中提出的优化问题只有一个全局,而没有其他局部最优; 因此,梯度下降总是收敛(假设学习率α不是太大)于全局最小值

实际上,J是凸二次函数。 下面是梯度下降的示例,因为它是为了最小化一个二次函数而运行的

上面显示的椭圆是二次函数的轮廓

还示出了梯度下降所采用的轨迹,其在(48,30)处初始化

图中的x(由直线连接)标记了渐变下降经历的θ的连续值,当它收敛到其最小值时

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨熹的专栏

为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例

里面对 BGD,SGD,MBGD,Adagrad,Adadelta,RMSprop,Adam 进行了比较, 今天对其中的 mini-batch 梯度下降 作进...

1501
来自专栏人工智能LeadAI

前馈神经网络——深度学习之神经网络核心原理与算法

因上几次读者反映,公式代码有乱码和不规整的问题,小编有改善哟,这篇文章开始亲们会看到效果的哟~

1364
来自专栏企鹅号快讯

卷积神经网络CNN原理详解(一)——基本原理

作者:Charlotte77数学系的数据挖掘民工 博客专栏:http://www.cnblogs.com/charlotte77/ 个人公众号:Charlott...

3885
来自专栏有趣的Python

1- 深度学习之神经网络核心原理与算法-前馈神经网络

前馈神经网络 Feedforward Neural Network 网络结构(一般分两种) Back Propagation Networks - 反向传播网络...

1.5K12
来自专栏深度学习思考者

深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题(二)

  上一篇主要是对卷积神经网络的整个训练过程中公式以及误差的推导给出详细的分析。   博客地址:https://cloud.tencent.com/deve...

4109
来自专栏AI研习社

Github 项目推荐 | 用 Python 实现的基础机器学习算法

本库包含了用 Python (3.6 版本及以上)实现的基本的机器学习算法,所有的算法都是从头开始写并且没有用到其他的机器学习库。该库旨在让开发者对这些基本的机...

40011
来自专栏AI科技大本营的专栏

一文概览主要语义分割网络:FCN,SegNet,U-Net...

图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。虽然自 2007 年以来,语义分割/场景解析一直是计算机视觉社区的一部分,但与计...

4732
来自专栏深度学习入门与实践

【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理

上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度。有的同学表示不是很理解原理,为什么传统的机器...

1.4K10
来自专栏IT派

对数几率回归 —— Logistic Regression

首先,在引入LR(Logistic Regression)模型之前,非常重要的一个概念是,该模型在设计之初是用来解决0/1二分类问题,虽然它的名字中有回归二字,...

1292
来自专栏ml

关于BP网络的一些总结

背景      前段时间,用过一些模型如vgg,lexnet,用于做监督学习训练,顺带深入的学习了一下相关模型的结构&原理,对于它的反向传播算法记忆比较深刻, ...

3567

扫码关注云+社区

领取腾讯云代金券