损失函数与梯度下降
针对实际问题,要使用不同模型进行拟合,其中最简单的就是线性函数拟合模型。在监督学习当中,数据集被划分为训练集和测试集,其中用m来表示训练集中训练样本的个数,x表示输入特征,y表示输出目标,一组(x,y)就表示一个训练样例。
监督学习的过程类似于向训练集提供一个学习算法,由这个学习算法来得到一个假设函数,这个假设函数处理输入的特征信息x,输出预测的结果,以单元房价信息预测为例,输入房间的大小,输出预测的价格。这个函数只能时假设函数,通常情况下并不合适,也无法完成精准预测,是针对输入特征x的函数。
对于假设函数的表示方面,初始使用单一变量来简化问题,如下所示

假设函数由不同的参数来确定,需要进行评估和调整,参数好坏的评估由代价函数来确定,代价函数Cost是针对参数的函数,在本模型中选择采用预测值与准确值的方差作为整个模型的代价函数。学习目标也就是让代价函数达到最小,整个过程就是通过计算预测值,计算代价函数,再调整假设函数的参数来实现。
参数调整过程中最经典的做法是梯度下降法Batch Gradient Descent。

在上例中的三维图像上,首先是给出参数的初始值,也就是在图像上任意取一点,分别确定初始参数值在x轴和y轴上的位置,也就确定了初始的代价函数的大小,不同的初始值可能最后得到的不同的局部最优解。
目标是实现快速下山达到局部最低的谷底,也就是让代价函数达到局部最优解,一般就是采用求偏导数的做法来实现以最快的方向——斜率的反方向来实现最快的找到局部最优解。

其中计算函数里面的α表示学习率,也就是下山过程中的速度大小,控制参数沿此方向每轮移动的步幅,如果α太小会导致收敛的计算过程耗时太长,影响模型的效率;如果α太大会导致结果在局部最优解附近反复横跳,甚至可能会逐渐远离导致无法收敛。

在假设函数中存在多个参数,也就是代价函数存在多个自变量时,需要保证在梯度下降算法中同时更新,在一轮计算过程中确保所使用的偏导数的值唯一,没有发生变化,下山的步骤顺序不能变化。
随着计算收敛过程的进行,斜率在不断的降低,收敛速度也在不断地下降,无需把初始的α设置的过于小。在到达局部最优解后,导数值为零,但此时可能并不是最后的最小的代价值,梯度下降法不在运行,参数不会发生变化。
整体的学习过程也就是,为了使得代价函数的值最小,不断地调整出最合适的参数,得到预测效果最好的拟合函数。