代价函数(有些地方也叫 损失函数) 用于更好地拟合样本,得到更合适模型的一个方法。
在线性回归中,假设函数为 hθ(x) = θ0 + θ1 * x ,其中θ0和θ1的变化会引起假设函数的变化,参数的选择决定了我们得到的直线相对于训练集的准确度。

为了让预测值和真实值的误差尽可能小和最小化θ0和θ1,我们将这个问题转化为找到能使训练集中预测值和真实值的差的平方的和的1/2M最小的θ0和 θ1的值。

为代价函数,又称为平方误差函数,它是解决回归问题最常用的手段
m 代表训练集样本数量,
xi 代表第 i 个样本,
hθ(xi) 代表第 i 个样本对应的预测值,
yi 代表第 i 个样本对应的真实值。
**J(θ0,θ1)的值越小,表示对应的假设函数越好,线性回归的目标函数即求使得J(θ0,θ1)**最小的 **(θ0,θ1)**参数带入后的假设函数
常用三维坐标图或者等高线法来表示**J(θ0,θ1)**与 θ0,θ1两个参数的关系

这是一个碗状的3D图, 碗底即代价函数**J(θ0,θ1) **的最低点,对应的θ0和θ1即为最小。

在同一条线上的所有**J(θ0,θ1)**的值都相同(如图中的三个x值都一样)
同心椭圆的中心即为最小的 J(θ0,θ1)
假设一线性回归模型,它的代价函数为 J(θ0,θ1) 。我们的目标是最小化这个代价函数,而要得到最小的代价函数值关键就在于正确选取 θ0和θ1的值,于是我们引出梯度下降算法。
步骤:1. 初始化θ0和θ1的值,通常取0。
2. 不断改变θ0和θ1的值,试图通过这种改变使得 J(θ0,θ1) 变小,直到找到 J(θ0,θ1) 的最小值(也可能是局部最小值)


在梯度下降中,我们使用公式更新 θ0 和 θ1 的值,在更新时,我们应当同时更新 θ0 和 θ1 的值

如果不同时更新,如下图,前一个更新后的 θ0 会影响到 temp1 的导数项
,继而影响更新θ1

为了易理解梯度下降过程,我们假定 hθ(x) = θ1x, 代价函数为 J(θ1) ,可以得到 J(θ1) 与 θ1 关系图如下

梯度下降过程即:
在梯度下降的过程中,当我们越来也接近局部最低点时,梯度下降会自动采取更小的幅度(因为导数值会自动变得越来越小),在局部最低点是导数 = 0
梯度下降每次更新的都需要进行偏导计算,这个偏导对应线性回归的代价函数

对代价函数求导的结果为:
