写作目的:作为自己学习ML的记录,也希望能为后来者提供一点点参考
文章内容:本篇主要总结、回顾一下机器学习课程前两周的内容
环境准备我是在chrome浏览器上安装了setup插件,连接到美国后,视频就能正常加载了。
这是安装包,可能版本需要更新;安装前注意打开浏览器的开发者模式。
链接:https://pan.baidu.com/s/1B5O2BC5rPclMaxMr1U0avQ
提取码:gded
安装好后,连接服务器选美国就好
课程内容 机器学习原理
原理图示:
说明:机器学习的原理就是基于训练数据集(Training Set)通过学习算法(Learning Algorithm)对假设函数(h)求最优解,h就是我们的机器学习的结果。具体到房价预测问题,基于大量的房子与房价的数据通过算法训练后得到的h就可以用来对新输入的房子给出房价预测。
主要内容回顾1、机器学习算法分类
1.1 监督学习(supervised Learning)
就是学习算法使用的训练数据集是包含结果的,如房价预测中的房价信息、图片识别中的目标名称等
1.2 非监督学习(unsupervised Learning)
与监督学习相反,就是学习算法使用的训练数据集不包含结果。
2、目标函数h模型
h取的是hypothesis的首字母,所以也叫假设函数。监督学习有回归问题、分类问题。课程中举例说明的是回归问题,再具体些是线性回归问题,它的形式就是一个数学关系式,可以是一元一次方程如 h(x) = y = a + bx、一元多次方程 h(x) = y = a + bx + cx^2 + ... 、多元一次方程、多元多次方程甚至以区分的多项式等,选取什么假设函数我认为主要根据训练数据集的分布情况,如:
红色叉叉表示一个个具体的数据,假设函数h取一元一次方程的话,基于这些训练数据通过训练得到最优结果如图中的蓝色直线。
3、代价函数(cost function)
因为我们的目标假设函数h要兼顾训练数据集中的每一个数据,以上图来说,最优解就是所有红叉叉到蓝色直线的距离最短。给出的定义是:
说一下自己对这个公式的理解。(h(x)-y)是取每个数据到假设函数的距离,但是直接取这值的话有正有负,而我们要的只是正数的距离,想到的方法可以是取绝对值或者公式中取的结果的平方;因为要兼顾训练数据集中的所有m个数据,所以这里有i从1到m的累计求和;而m分之一是为了引入训练数据集数据量的影响;至于为什么有个1/2,我只能理解为经验值了,就像为什么要取差值的平方而不取绝对值一样。
4、梯度下降法、正规方程
通过前面,我们知道了机器学习的原理。现在我们有了训练数据集(Training Set),基于多种条件有了自己的假设函数h,也知道了代价函数J(Cost Function)的定义,现在我们的目标是得到最小的J,此时就确定了h的各个参数,也就得到了我们的h。
课程中给出了两种方法,梯度下降法和正规方程
对于一般情形,特征值(属性)个数 >= 1时
梯度下降法公式:
说明:公式中的theta为待定参数向量,alpha为学习速率常量,m为训练数据集中数据条数,X为特征值矩阵,y为结果向量。这里引入向量和矩阵是为了方便多个特征值时的计算
正规方程公式:
说明:公式中X为特征值矩阵,y为结果向量。X'为X的转置,pinv函数的作用是取矩阵的逆,
两种方法的比较
简单来说就是当特征值n个数超过20000(Andrew Ng的建议)时因为矩阵计算所需时间太长,所以选用梯度下降法,特征值个数较少时则用正规方程,因为公式简洁明了,计算很快。
5、其他细节
还有一些其他的知识点也很重要,比如学习速率alpha的选择,向量、矩阵的计算,Octave的使用等需要自己去完善。
课程作业从网站下载课程作业的压缩包:
我用的Octave,打开之后如下:
我们需要做的是完善ex1.m的代码,里面包含有几个需要你完成的函数。课程中一再强调不要拿别人的代码,不过我当时做的时候也是没法动笔,特别是梯度下降法的函数公式。这里我还是贴出来我的作业,作为参考,还是希望能多思考、理解,不要枉费吴恩达老师的苦心。
链接:https://pan.baidu.com/s/116jpLq84MGp9xZxtmLGpDQ
提取码:wd02
另外对于这个作业,我有以下问题,欢迎理解的同学能不吝赐教
1、surf(网格图)、contour(等高线)函数的第三个参数为什么要先转置一下
2、梯度下降法和正规方程得到的theta值为什么差这么多



