zoukankan      html  css  js  c++  java
  • 代价方程

    以回归方程为例,最后的回归方程无论是直线还是曲线,方程除了应有的自变量外,还存在各种常量参数,这些参数的不同,直接影响着最终方程。

    还是以回归问题为例。

    假设我们要将数据线性回归到某条直线上(逻辑回归等其他回归同理)。

    那么我们首先能设这个回归方程为:y(x) = θ1x+θ2

    其中x和y在某种程度上都是已知的,因为我们肯定有很多样本数据,这些样本数据就是具体的x、y坐标。

    很明显,我们如果能知道θ1、θ2,这个回归方程也就出来了。

    代价函数的目的就是找到这些θ。

    让我们用白话来描述一下求出θ的思路:

    假设我们有好多个样本点,如(1,2)、(3,4)、(5,6)等

    我们这条拟合直线肯定越靠近这些点越好。

    怎么个靠近法呢?把这些点的x坐标代入方程,其计算后得出的y值“离该点真实的y值距离越小越好”。

    回到我们之前“假设”的回归方程y(x) = θ1x+θ2上。

    当我们把这些真实的样本点的x值代入y(x)函数中,得到的就是拟合直线上的y值,如果这个y值的距离离真实y值很小,就表示该拟合方程很好。

    以点(3,4)为例,拟合方程计算得到的y值与实际y值之差表示为:距离 = (θ1*3+θ2)-(4)

    即:距离 = θ1*x1+θ2 - y1

    但我们肯定不止(x1,y1)这一个样本点,当还有(x2,y2)等多个样本点后,就需要计算拟合方程距离各个样本点的距离,即:

    距离1 = θ1*x1+θ2 - y1

    距离2 = θ1*x2+θ2 - y2

    距离3 = θ1*x3+θ2 - y3

    ······

    这么多距离,我们最好求一个这些距离的平均值来表达一个平均距离,比较合适的方法如:

    计算所有距离的平方差后再除以1/2得到

     

    其中h(x)函数就是θ1x+θ2,x(i),y(i)是具体样本点的x,y坐标。

    (求平均值的方法有很多,并不一定非要用这种)

    这个方程就是代价方程。

    通过上面一系列的推导,我们很容易看出所有的x(i),y(i)都是已知的样本点,即全是已知常数,反而未知数变成了θ。

    所以我们可以将上面的代价函数设为J(θ)。

    通过之前的推导我们知道这个方程最终的结果是“拟合y值到真实y值的距离差”,自然是越小越好。

    所以我们要求的就是J(θ)函数的最小值。

    (这里提一下,以上的θ全都是向量,即不一定只有一个θ。

    这也很好理解,当我们在多维空间,如三维坐标系中进行拟合时,这时候直线的一般方程就变成了:

    θ1X+θ2Y+θ3Z = 0,θ随着拟合空间维数的增加而增加,所以为了方便起见就用向量θ = [θ1,θ2,θ3]来表示。

    相应的,θ用向量表示了,整个拟合方程也会转化成向量的格式,即θ^T*W = 0 (θ^T表示θ的转置,W也是向量,表示[X,Y,Z]))

    其实推到这代价函数基本上解释清楚了,后面的问题就是如何求解J(θ)函数最小值的问题了,在只有一个θ参数时J(θ)函数图像还是在二维平面上的凹函数,存在最小值。

    当θ变为2个时,J(θ)的图像就变成了三维空间上了,我们要找的是整个模型的最小点。

    至于如何找到这些最小值,方法就很多了,常用的如梯度下降法等。

  • 相关阅读:
    练习题
    作业2.6-2.15 两次作业
    11.13(2)
    11.13
    11.6
    10.30
    10.15
    10.9
    9.25号作业
    9.18号
  • 原文地址:https://www.cnblogs.com/red-code/p/9531706.html
Copyright © 2011-2022 走看看