Model and Cost Function
1、Cost Function(We can measure the accuracy of our hypothesis function by using a cost function.)
如何把最有可能的直线与我们的数据相拟合?代价函数。
假设函数,也就是用来进行预测的函数,是这样的线性函数形式 ,接下来我们会引入一些术语 ,这些θ0和θ1,这些θi我把它们称为模型参数。
如何选择这两个参数值θ0和θ1?(选择不同的参数θ0和θ1,我们会得到不同的假设,不同的假设函数)
在线性回归中,我们有一个训练集,可能就像我在这里绘制的,我们要做的就是,得出θ0 θ1这两个参数的值,来让假设函数表示的直线,尽量地与这些数据点很好的拟合,也许就像这里的这条线一样,那么我们如何得出θ0 θ1的值?来使它很好地拟合数据的呢?答:我们要选择,能使h(x),也就是输入x时我们预测的值,最接近该样本对应的y值的参数θ0、θ1。
所以,从根本上来说,在线性回归中,我们要解决的是一个最小化问题 ,所以我要写出关于θ0 、θ1的最小化, 而且,我希望这个式子极其小,那么,我想要h(x)和y之间的差异要小,那么,我要做的事情是尽量减少假设的输出与房子真实价格之间的差的平方。
(代价函数目标函数的构造与其实际意义?)
(实际意义引出函数构造思想)用符号( x(i),y(i) )代表第i个样本,此时要做的是对所有训练样本进行一个求和,对i=1到i=M的样本,将对假设进行预测得到的结果(比如,此时的输入是第i号房子的面积 ,将第i号对应的预测结果,减去第i号房子的实际价格, 所得的差的平方相加得到总和),我们希望尽量减小这个值 :预测值和实际值的差的平方误差和,或者说预测价格和实际卖出价格的差的平方。
(优化目标函数)为了让表达式的数学意义,变得容易理解一点, 我们实际上考虑的是这个数的1/m,因此我们要尝试尽量减少我们的平均误差,也就是尽量减少其1/2m,通常是这个数的一半(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.),前面的这些只是为了使数学更直白一点,因此对这个求和值的二分之一求最小值,可以得出相同的θ0值和相同的θ1值来。
(继续改写目标函数) 为了使它更明确一点,我们要改写这个函数,按照惯例,我要定义一个代价函数,正如上图种所示,这里的这个公式J(θ0,θ1),我们想要做的就是关于θ0和θ1 对函数J(θ0,θ1)求最小值,这就是我的代价函数,代价函数也被称作平方误差函数 有时也被称为平方误差代价函数。(事实上,我们之所以要求出,误差的平方和,是因为误差平方代价函数,对于大多数问题 特别是回归问题 都是一个合理的选择。)
2、Cost Function-Intuition I(把 θ0 设置为0)
为了更好地将代价函数可视化,我将使用一个简化的假设函数,就是右边这个函数,然后我将会用这个简化的假设,也就是 θ1*x,我们可以将这个函数看成是把θ0设为0,所以我只有一个参数,也就是 θ1。此时,优化目标是将 J(θ1) 最小化。
(通过利用简化的假设得到的代价函数,我们可以试着更好地理解,代价函数这个概念。我们要理解的是这两个重要的函数,第一个是假设函数,第二个是代价函数,注意这个假设函数 h(x) 对于一个固定的 θ1 这是一个关于x 的函数 ,所以这个假设函数就是一个关于 x 这个房子大小的函数。与此不同的是,代价函数 J 是一个关于参数 θ1的函数,而θ1控制着这条直线的斜率。)
对于不同的 θ1,你可以计算出这些对应的值,结果你会发现,你算出来的这些值,你得到一条这样的曲线,通过计算这些值,你可以慢慢地得到这条线,这就是 J(θ) 的样子了。
任何一个 θ1 的取值对应着一个不同的假设函数或者说对应着左边一条不同的拟合直线,对于任意的θ1,你可以算出一个不同的 J(θ1) 的取值。
(学习算法的优化目标,是我们想找到一个 θ1 的值,来将 J(θ1) 最小化,这是我们线性回归的目标函数。看这条曲线 让 J(θ1) 最小化的值 是 θ1 等于1 ,然后你看这个确实就对应着最佳的通过了数据点的拟合直线, 这条直线就是由 θ1=1 的设定而得到的,然后,对于这个特定的训练样本,我们最后能够完美地拟合,这就是为什么最小化 J(θ1) 对应着寻找一个最佳拟合直线的目标 。)
3、Cost Function-Intuition II
这是之前的几个重要公式。
当只有一个参数θ1的时候,我们画出来是一个弓形函数。而现在我们有了两个参数,那么代价函数。仍然呈现类似的某种弓形。实际上这取决于训练样本,你可能会得到这样的图形,因此这是一个三维曲面图,两个轴分别表示θ0和θ1,随着你改变θ0和θ1的大小,你便会得到不同的代价函数 J(θ0,θ1) (对于某个特定的点 (θ0,θ1) 这个曲面的高度,也就是竖直方向的高度,就表示代价函数 J(θ0,θ1) 的值,不难发现这是一个弓形曲面),看看三维图,这是这个曲面的三维图,水平轴是θ0、θ1 竖直方向表示 J(θ0,θ1)。(这些一圈一圈的椭圆形 每一个圈就表示 J(θ0,θ1) 相同的所有点的集合)。
通过这些图形,我希望你能更好地理解这些代价函数 J 所表达的值,它们是什么样的 ?它们对应的假设是什么样的?以及什么样的假设对应的点?更接近于代价函数J的最小值?
当然,我们真正需要的是一种有效的算法,能够自动地找出这些使代价函数J取最小值的参数θ0和θ1来!!!