CS229机器学习个人笔记(1)——Linear Regression with One Variable

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zpalyq110/article/details/77988301

1.Model Representation

第一个学习的算法:线性回归算法。

例子描述:这个例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。比方说,如果你朋友的房子是 1250 平方尺大小,你要告诉他们这房子能卖多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,也许你可以告诉你的朋友,他能以大约220000(美元)左右的价格卖掉这个房子。这就是监督学习算法的一个例子(如下图所示)。

这里写图片描述

课程所需的数学符号以及意义:
m —— 代表训练集中实例的数量
x —— 代表特征/输入变量
y —— 代表目标变量/输出变量
(x,y) —— 代表训练集中的实例
(x(i),y(i)) —— 代表第 i 个观察实例
h ——代表学习算法的解决方案或函数也称为假设(hypothesis)

这里写图片描述

从图中可以看出,我们通过训练集的训练最终得到了一个h,那么h到底的长什么样呢?h可以表示为一种最简单的一元二次函数,即:

hθ(x)=θ0+θ1x

因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。

2.Cost Function

定义代价函数目的是为了更好的拟合我们的h和数据,这里我们用误差的平方和的1/2m来表示我们的代价函数 J(θ0,θ1)

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i)))2

其实我们真正要做的就是尽量减少这个代价函数的值,那么怎么减少呢?
我们先将 J(θ0,θ1) 简化为 J(θ1) ,也就是让 θ0=0
这个时候我们可以根据不同的 θ1 可以得到不同的 J(θ1) ,便可得到下图:

这里写图片描述

上图使我们假设 θ0=0 的情况下得到的,此时让 θ0 变回变量,此时的代价函数会长成什么样子呢?
这里写图片描述

变量从一个变为两个,维度很自然的从二维变成了三维,为了方便描述,将三维图画成了等高线图。

3.Gradient Descent

前两节我们最终得到了一个代价函数的图,但是前提是假设我们计算了所有可能的 θ0,θ1 下的代价。那么在真实情况下,我们很难那么去做,这是就引出了梯度下降的算法。

思想:

开始时我们随机选择一个参数的组合(θ0,θ1,…,θn), 计算代价
函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum) , 因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
这里写图片描述

想象一下你正站立在山的这一点上,站立在你想象的公园这座红色山上,在梯度下降算法中,我们要做的就是旋转 360 度,看看我们的周围,并问自己要在某个方向上,用小碎步尽快下山。这些小碎步需要朝什么方向?如果我们站在山坡上的这一点,你看一下周围,你会发现最佳的下山方向,你再看看周围,然后再一次想想,我应该从什么方向迈着小碎步下山?然后你按照自己的判断又迈出一步,重复上面的步骤,从这个新的点,你环顾四周,并决定从什么方向将会最快下山,然后又迈进了一小步,并依此类推,直到你接近局部最低点的位置。
这里写图片描述

  1. 学习率 α : 小了下降速度慢,但利于收敛,大了下降速度快,但很可能导致难以收敛,甚至发散。
  2. θ0,θ1 保持同步跟新。
  3. 学习率 α 不变也能收敛是因为,梯度下降公式中的导数值会变小。

猜你喜欢

转载自blog.csdn.net/zpalyq110/article/details/77988301
今日推荐