Coursera吴恩达机器学习教程笔记(二)

 介绍完机器学习相关概念之后,吴老师利用房价预测的例子介绍了几个概念,如下图所示:

Coursera吴恩达机器学习教程笔记(二)

    其中,(x, y)表示一个用于训练的数据,同理(xi, yi)表示第i个用于训练的数据,x作为输入,y作为输出,m表示数据集中数据的个数。

    这些数据主要是用来给计算机去学习用的,让计算机根据这些数据得到一个输入输出关系,然后根据这个关系来进行房价的预测,如下图所示:

Coursera吴恩达机器学习教程笔记(二)

    h就表示输入输出的函数关系,右边的是一个例子,得出的是一个线性回归方程,而且是单变量的,那么,这个回归关系如何得到呢??可不可以用其他函数关系来表示呢?比如非线性的。在下图可以得到解释

    Coursera吴恩达机器学习教程笔记(二)

    这个图里说了两件事,第一件事是求假设函数的思想,第二件事是求假设函数的过程,过程板书不太清晰,待我用mathtype重新写一下。先说思想,思想就是让选择合适的参数,让假设函数与给出数据集的输出值最大程度的接近。用数学公式表示如下:

                                                                        Coursera吴恩达机器学习教程笔记(二)

    这个公式就用假设函数与数据集的输出做差来描述他俩的接近程度,前面的1/2是因为,在求取梯度时,正好可以与最前面的平方相抵消,便于计算。

    又因为

                                                                            Coursera吴恩达机器学习教程笔记(二)

    所以,代价函数可以表示为

                                                                Coursera吴恩达机器学习教程笔记(二)

    那么该问题就转化为求代价函数Coursera吴恩达机器学习教程笔记(二)的最小值,具体怎么求呢??

    因为假设函数h(x)与θ有关,所以可以对θ进行赋值来求取h(x),然后,通过得到的h(x)再来计算代价函数J(θ)。为了简化计算,将h(x)写成如下形式,这样,相应的代价函数J(θ)也就对应的发生变化,下图中也表示出来了

    Coursera吴恩达机器学习教程笔记(二)

    按照上面的思路,可以进行如下的计算过程:

Coursera吴恩达机器学习教程笔记(二)

    当θ为1时,得到的h(x)为左边坐标系中的直线y=x,然后根据数据集的x值求取对应的h(x),然后与数据集中的x值作差,带入代价函数的公式,就可以求出此时的代价函数是多少,可以发现,此时的代价函数值为0。这说明假设函数与数据集完全拟合。之后在右边的代价函数坐标系中花朵θ为1,J(θ)为0的点。这样,就求出了θ为1时的代价函数值。同理,当θ为0.5或者其他值的时候的代价函数值也都可以求出,求取过程如下图:

    Coursera吴恩达机器学习教程笔记(二)

    然后接着描点画图,最后,可以得到如下图中画的这样的代价函数:

    Coursera吴恩达机器学习教程笔记(二)

    到这里,我们知道,原来这个代价函数就是初中学过的二次函数,最小值就是在θ为1处取得。

    通过上面的过程,你可能对代价函数有了一定的了解,那么,当有两个θ时,是不是也和上面的情况很类似?只不过代价函数变成了二元二次函数。基本公式如下图

    Coursera吴恩达机器学习教程笔记(二)

    当θ1=0.06,θ2=50时,假设函数如下:

        Coursera吴恩达机器学习教程笔记(二)

    描点画图,带入代价函数(这个过程比较麻烦),能得到这个三位曲面:

    Coursera吴恩达机器学习教程笔记(二)

 

    三位曲面竖直方向的高度表示代价函数的值,当用平行于θ0-θ1平面的平面去与该曲面相交,就会得到一系列的等高线,我在图中用红线表示(画的有点丑。。。),那么为了方便表示,就可以用这一系列与θ0θ1相关的等高线去研究最小化代价函数这个问题。由这个三维图像和可以知道,最最里面的等高线是代价函数去的最小值的地方,那么就是说θ0,θ1为何值时,能到达这个最小值的等高线?那么可以在等高线上描点画图了,通过不断对θ0θ1取值,我们可以得到如下过程:

    Coursera吴恩达机器学习教程笔记(二)

Coursera吴恩达机器学习教程笔记(二)

Coursera吴恩达机器学习教程笔记(二)

Coursera吴恩达机器学习教程笔记(二)

    在这个过程中,发现最后一次的取值结果能和数据集大致拟合,然后将此时的θ0θ1的值描绘在代价函数等高线的坐标系中,发现此时的代价函数基本上是比较接近最里面的圈了(实际最小值是一个点),此时θ0大致为250,θ1大致为0.13。

    那么我们就知道当θ为上述值得时候,我们得到假设函数可以基本上能够与数据集拟合了,大概预测房价了。但是,如果假设函数不是上述的两种,而是有更多的参数怎么办?当参数太多的时候,描点画图这种办法肯定是不行了,因为参数越来越多,图像很难画出来。那得咋办呢?