栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Andrew Ng(吴恩达) Coursera ML课程(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Andrew Ng(吴恩达) Coursera ML课程(一)

写作目的:作为自己学习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值为什么差这么多

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530168.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号