斯坦福机器学习第一周

一.监督学习和无监督学习

1.监督学习,就是人们常说的分类,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具有了对未知数据进行分类的能力。

监督学习中可以通过分类预测,也可以通过线性回归来预测。

如果目标变量是离散型,如是 / 否 、 1/2/3 、 ― 冗或者红 / 黄 / 黑 等 ,则可以选择分类器算法;

如果目标变量是连续型的数值,如 0.0~ 100.00 、 -999~999 或者 +00~-00 等 ,则需要选择回归算法。

2.无监督学习则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中很多处都用到了无监督学习。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别(比如哪些更朦胧一点,哪些更写实一些,即使我们不知道什么叫做朦胧派,什么叫做写实派,但是至少我们能把他们分为两个类)。无监督学习里典型的例子就是聚类了.

二.代价函数

对于回归问题,我们需要求出代价函数来求解最优解,常用的是平方误差代价函数。

比如,对于下面的假设函数: 

里面有θ0和θ1两个参数,参数的改变将会导致假设函数的变化,比如: 

现实的例子中,数据会以很多点的形式给我们,我们想要解决回归问题,就需要将这些点拟合成一条直线,找到最优的θ0和θ1来使这条直线更能代表所有数据。

而如何找到最优解呢,这就需要使用代价函数来求解了,以平方误差代价函数为例。 
从最简单的单一参数来看,假设函数为: 

平方误差代价函数的主要思想就是将实际数据给出的值与我们拟合出的线的对应值做差,这样就能求出我们拟合出的直线与实际的差距了。

为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。这样,就产生了代价函数: 

其中:

表示向量x中的第i个元素;

表示向量y中的第i个元素;

表示已知的假设函数;

m   为训练集的数量;

而最优解即为代价函数的最小值,根据以上公式多次计算可得到 
代价函数的图像: 

可以看到该代价函数的确有最小值,这里恰好是横坐标为1的时候。

如果更多参数的话,就会更为复杂,两个参数的时候就已经是三维图像了: 

高度即为代价函数的值,可以看到它仍然有着最小值的,而到达更多的参数的时候就无法像这样可视化了,但是原理都是相似的。
因此,对于回归问题,我们就可以归结为得到代价函数的最小值: 

但是又一个问题引出了,虽然给定一个函数,我们能够根据cost function知道这个函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?

因此我们引出了梯度下降:能够找出cost function函数的最小值;

梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;

三.梯度下降算法

算法:

特点

(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;

(2)越接近最小值时,下降速度越慢;

问题:如果初始值就在local minimum的位置,则会如何变化?

答:因为已经在local minimum位置,所以derivative 肯定是0,因此不会变化;

图就详细的说明了梯度下降的过程:

从上面的图可以看出:初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;

注意:下降的步伐大小非常重要,因为如果太小,则找到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象;

下图就是overshoot minimum现象:

如果Learning rate取值后发现J function 增长了,则需要减小Learning rate的值;

Integrating with Gradient Descent & Linear Regression

梯度下降能够求出一个函数的最小值;

线性回归需要求出,使得cost function的最小;

因此我们能够对cost function运用梯度下降,即将梯度下降和线性回归进行整合,如下图所示:

梯度下降是通过不停的迭代,而我们比较关注迭代的次数,因为这关系到梯度下降的执行速度,为了减少迭代次数,因此引入了Feature Scaling;

4.Feature Scaling

此种方法应用于梯度下降,为了加快梯度下降的执行速度;

思想:将各个feature的值标准化,使得取值范围大致都在-1<=x<=1之间;

常用的方法是Mean Normalization,即

或者:

[X-mean(X)]/std(X);

5.多变量线性回归

前面我们只介绍了单变量的线性回归,即只有一个输入变量,现实世界不可能这么简单,因此此处我们要介绍多变量的线性回归;

举个例子:

房价其实由很多因素决定,比如size、number of bedrooms、number of floors、age of home等,这里我们假设房价由4个因素决定,如下图所示:

我们前面定义过单变量线性回归的模型:

这里我们可以定义出多变量线性回归的模型:

Cost function如下:

如果我们要用梯度下降解决多变量的线性回归,则我们还是可以用传统的梯度下降算法进行计算:

时间: 2024-10-03 15:01:52

斯坦福机器学习第一周的相关文章

机器学习-第一周

机器学习-第一周 这是机器学习的第一周课程,涉及到的内容较少,主要是认识一下什么是机器学习以及机器学习两个主要的分类:有监督学习和无监督学习.另外,通过一个最基础的线性回归模型来介绍机器学习中的一些相关的概念. 本周内容思维导图 Introduce 什么是机器学习? A computer program is said to learn from experience E with respect to some task T and some performance measure P, if

中国mooc北京理工大学机器学习第一周(二)

---恢复内容开始--- 今天学习第一周的第二课时:降维. 一.PCA主成分分析 主成分分析(Principal Component Analysis,PCA),是一种统计方法,直观来讲是把数据按照weights来筛选出主成分消除(或者隐蔽)不太重要的方面,使得高纬度数据投射到低维度. 直观来讲是应用了统计学上方差和协方差的知识,若协方差越接近1则表示A,B越接近:反之,若等于零则无关. 这里可以理解在一个高纬度角度(n维空间)去找一个角度使得从你这个角度看过去很多cov(A,B)很小的数值为零

中国mooc北京理工大学机器学习第一周(一)

从今天开始跟着北理工的老师走一遍sklearn,在这里做笔记. 一.聚类 1.K-Means方法 先贴代码,所有数据的下载地址:http://pan.baidu.com/s/1hrO5NW4 import numpy as np from sklearn.cluster import KMeans def loadData(filePath):#def一个读取数据的loadData fr = open(filePath,'r+') lines = fr.readlines() retData =

中国mooc北京理工大学机器学习第一周(三)

三.基于聚类的整图分割 需要利用PIL进行图片处理,在anaconda安装的时候提示PIL只能用在py26,搜索知,可以conda install pillow 即可. def loadData(filePath): f = open(filePath,'rb') data = [] img = image.open(f) m,n = img.size for i in range(m): for j in range(n): x,y,z = img.getpixel((i,j)) #getpi

机器学习001 deeplearning.ai 深度学习课程 Neural Networks and Deep Learning 第一周总结

Deep Learning Specialization 吴恩达老师最近在coursera上联合deeplearning.ai 推出了有关深度学习的一系列课程,相对于之前的machine learning课程,这次的课程更加实用,作业语言也有matlab改为了python从而更加贴合目前的趋势.在此将对这个系列课程做一个学习笔记. 而这次的Deep Learning Specialization分为五门课程,分别为:Neural Networks and Deep Learning,Improv

斯坦福机器学习课程汇总

斯坦福机器学习课程汇总 前言 首先感谢吴恩达建立Coursera这样一个优秀的在线学习平台,以及他发布在这个平台上的机器学习课程. 这门课程将整个机器学习领域的基础知识,用浅显易懂的方式,深入浅出的进行了介绍.使得一个拥有高中数学知识的学生也能听得明白. 如果你想要涉足机器学习.人工智能领域,或者对这一领域有浓厚的兴趣想要深入了解,那么你会发现很多机器学习入门课程推荐的资料中,都有吴恩达老师的这一系列课程.甚至在大多数资料中,都把这门课放在了首选的位置上. 因此,我把吴恩达老师的课程整理成了Ma

斯坦福机器学习公开课学习笔记(1)—机器学习的动机与应用

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 斯坦福机器学习公开课差不多是网上能找到的最好的机器学习入门课程了.现在一共有20节课放到网络上,博主是在网易公开课学的,那里的视频有中文字幕然后课件也很全. (地址:http://v.163.com/special/opencourse/machinelearning.html) 主讲师Andrew Ng(已经被百度诏安了)是华裔科学家,看他的课特别有亲切感.感觉他们的课跟国内老师的课区别还是挺大的

cs229 斯坦福机器学习笔记(一)

前言 说到机器学习,很多人推荐的学习资料就是斯坦福Andrew Ng的cs229,有相关的视频和讲义.不过好的资料 != 好入门的资料,Andrew Ng在coursera有另外一个机器学习课程,更适合入门.课程有video,review questions和programing exercises,视频虽然没有中文字幕,不过看演示的讲义还是很好理解的(如果当初大学里的课有这么好,我也不至于毕业后成为文盲..).最重要的就是里面的programing exercises,得理解透才完成得来的,毕

【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】

[吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和"AI是新电力"相类似的说法是什么? [ ?]AI为我们的家庭和办公室的个人设备供电,类似于电力. [ ?]通过"智能电网",AI提供新的电能. [?]AI在计算机上运行,??并由电力驱动,但是它正在让以前的计算机不能做的事情变为可能. [★]就像100年前产生电能一样,AI正在改变很多的行业. 请注意: 吴恩达在视频中表达了同样的观点. 哪些是深度学