Coursera Machine Learning Week1 学习笔记

来源:互联网 发布:notebook软件 编辑:程序博客网 时间:2024/05/29 17:23

注:本文已迁移到http://blog.csdn.net/JinbaoSite/article/details/66530136

Coursera Machine Learning Week1

一、Introduction

1.1 机器学习(Machine Learning)

第一个机器学习的定义来自于Arthur Samuel,他定义机器学习为

在进行特定编程的情况下,给予计算机学习能力的领域。

近年代的机器学习定义由Tom Mitchell提出,Tom定义的机器学习是

一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。

1.2 监督学习(Supervised Learning)

1、在监督学习中,我们给出数据组,并且已经知道正确的输出是什么样,明确输入和输出之间的关系 。

2、监督学习问题可以归类为回归(regression) 和分类(classification) 问题。
回归问题上,我们试着推测出一个连续的输出结果。
分类问题上,我们试着推测出一个离散的输出结果。

3、例子:
(1)回归问题:给定关于在房子占地大小去预测卖出这套房子的价格。
(2)回归问题:根据给定的男/女性图片,预测他们的年龄。
(3)分类问题:对于有肿瘤的患者,预测肿瘤是恶性的还是良性的。

1.3 无监督学习(Unsupervised Learning)

1、非监督学习就是数据集没有任何的标签或者是有相同标签的情况下,判断出数据集有不同的聚集簇。

2、在非监督学习中,可以解决事先不知道结果会怎么样的问题。我们不必知道数据是否有效就可以通过基于数据中的变量之间的关系对数据进行聚类来导出结构。

3、对于非监督学习,没有基于预测结果的反馈。

4、例子:
(1)聚类(Clustering):收集100万个不同的基因,并找到一种方法来自动将这些基因分组到不同的变量,如寿命,位置,角色等不同类型或相关的组。
(2)非聚类(Non-clustering):在鸡尾酒会上从声音网中识别单个声音和音乐

二、单变量线性回归(Linear Regression with One Variable)

2.1 模型表示(Model Representation)

1、对于回归问题,我们做如下标记:
m:代表训练集中实例的数量
x:代表特征/输入变量
y:代码目标变量/输出变量
(x,y):代表训练集的实例
(x(i),y(i))代表第i个观察实例
h:学习算法方案或函数,也称为假设(hypothesis)函数

2、为了正式描述监督学习问题,我们的目标是给一个训练集,通过学习函数h:XY来预测y的值。

3、监督学习算法的工作方式

4、对于单变量线性回归问题,由于只含有一个特征/输入变量,因此单变量线性回归问题的h表达方式为:

hθ(x)=θ0+θ1x

2.2 代价函数(Cost Function)

1、为了测量假设函数的准确性,我们引入代价函数,代价函数就是输入变量x通过假设函数h得到实际输出y^,然后求与目标输出y的方差。方差J(θ0,θ1)越小说明,假设函数越准确。

2、代价函数:
Hypothesis

y^=hθ(x)=θ0+θ1x

Parameters:
θ0,θ1

CostFunction:
J(θ0,θ1)=12mi=1m(y^iyi)2=12mi=1m(hθ(xi)yi)2

Goal:
minimizeθ0,θ1J(θ0,θ1)

3、代价函数的轮廓图
Cost Function

4、代价函数的等高线图

代价函数的等高线图中轴线是θ0,θ1,这些椭圆就是代价函数曲线,在同一椭圆里的代价函数值J(θ0,θ1)都是一样的,所以代价函数值最小的地方在于椭圆曲线的中心点。

三、梯度下降(Gradient Descent)

3.1 梯度下降算法

1、梯度下降是一个用来求函数最小值的算法,我们使用梯度下降算法来求出代价函数的最小值。

2、梯度下降算法描述:
(1)首先对(θ0,θ1,...,θn)赋值,这个值可以是随机的,也可以让(θ0,θ1,...,θn)是一个全零的向量。
(2)改变(θ0,θ1,...,θn)的值,使得J(θ0,θ1,...,θn)按梯度下降的方向进行减少。

3、梯度下降算法演示:

这是一个表示参数(θ0,θ1)与误差函数J(θ0,θ1)的轮廓图,红色的部分是表示J(θ0,θ1)有着比较高的取值,我们需要的是,能够让J(θ0,θ1)的值尽量的低。也就是深蓝色的部分。
梯度下降法的第一步是给(θ0,θ1)给一个初值,假设随机给的初值是在图上的十字点。
然后我们将(θ0,θ1)按照梯度下降的方向进行调整,就会使得J(θ0,θ1)往更低的方向进行变化,如图所示,算法的结束将是在(θ0,θ1)下降到无法继续下降为止。

当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,可能是下面的情况:

这张图就是描述的一个局部最小点,这是我们重新选择了一个初始点得到的。

4、批量梯度下降算法公式
repeat until convergence:

θj:=θjαθjJ(θ0,θ1,...,θn)

其中α是学习率(learning rate),它控制我们以多大的幅度更新这个参数θj,如果α很小,那么我们需要很多步计算才能到达全局最低点,如果α很大,那么梯度下降算法就会使得我们越过最低点,离最低点越来越远。

在梯度下降算法时,当我们更新θ0,θ1,...,θn时,需要同时更新。

3.2 单变量线性回归算法(Gradient Descent For Linear Regression)

1、单变量线性模型

hθ(x)=θ0+θ1xJ(θ0,θ1)=12mi=1m(hθ(xi)yi)2minθ0,θ1J(θ0,θ1)

2、梯度下降算法
repeat} until convergence: {θj:=θjαθjJ(θ0,θ1)

3、单变量线性回归算法
repeat until convergence: {θ0:=θ1:=}θ0α1mi=1m(hθ(xi)yi)θ1α1mi=1m((hθ(xi)yi)xi)

4、单变量线性回归算法图解

0 0