吴恩达-机器学习笔记(第一周)

吴恩达-机器学习笔记(第一周)

一、引言

1.2 机器学习是什么?

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

e.g.经验E 就是程序上万次的自我练习的经验,任务T 就是下棋。性能度量值P 就是它赢得比赛的概率。

1.3 监督学习

监督学习:给学习算法一个由“正确答案”组成的数据集,然后运用学习算法,算出更多的正确答案(作出预测)。
回归问题:e.g.预测房价。回归是指,推测出这一系列连续值属性。
分类问题:e.g.估算良恶性肿瘤概率。分类指的是,我们试着推测出一组离散的输出值(0,1,2,3,……)。

希望获取大量(无限多)特征来做推测
–>无限多个特征的处理、存储
–>算法:支持向量机,里面有一个巧妙的数学技巧,能让计算机处理无限多个特征。

1.4 无监督学习

无监督学习:已知的只有一个数据集,不给标签(没法提前知道哪些是哪些)。无监督学习需要针对数据集,自动地找到数据中的结构,把这些数据自动地聚类到各个类。所以叫做聚类算法。
聚类应用:(例子)
谷歌新闻:搜索众多的新闻事件,自动地把同一主题的新闻事件聚类到一起;
组织大型计算机集群:解决什么样的机器易于协同地工作;
社交网络的分析;
鸡尾酒宴问题(分离音频);
others:
Octave编程环境。对大量机器学习算法,第一步是建原型。

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

2.1 模型表示

回归一词指的是,我们根据之前的数据预测出一个准确的输出值。
分类问题,当我们想要预测离散的输出值,

m m m 代表训练集中实例的数量
x x x 代表特征/输入变量
y y y代表目标变量/输出变量
( x , y ) (x,y) (x,y) 代表训练集中的实例
( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)) 代表第i 个观察实例
h h h 代表学习算法的解决方案或函数也称为假设(hypothesis),是一个从 x x x y y y 的函数映射。

模型示意图

h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_{0}+\theta_{1}x hθ(x)=θ0+θ1x,只含有一个特征/输入变量,因此这样的问题叫做单变量线性回归问题

2.2 代价函数

训练集

S i z e Size Size i n in in f e e t 2 ( x ) feet^{2}(x) feet2(x) P r i c e Price Price i n in in 100 0 ′ s ( y ) 1000's(y) 1000s(y)
2014460
1416232
1534315
852178

Hypothesis: h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_{0}+\theta_{1}x hθ(x)=θ0+θ1x
θ i \theta_{i} θi's: Parameters
How to choose θ i \theta_{i} θi's

选择合适的参数(parameters)θ0
和θ1(斜率、截距)决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling
error)

在这里插入图片描述
选出使得modeling error的平方和最小的模型参数。 即使得代价函数 J ( θ 0 , θ 1 ) J(\theta_0, \theta_1) J(θ0,θ1)最小
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0, \theta_1)= \frac {1}{2m} \sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
误差平方代价函数,对于对于大多数线性回归问题非常合理的。
Hypothesis:
h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x
Paramaters:
θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1
Cost Function:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1)=\frac {1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2

2.5 梯度下降

梯度下降思想:开始,随机选择一个参数的组合(θ0,θ1,…,θn ),计算J,然后寻找下一个能让J下降最多的参数组合。持续操作至到达一个局部最小值(local minimum),但不能确定得到的局部最小值是否是全局最小值(global minimum)。
在这里插入图片描述
理解:想想自己站在山顶一小步一小步往下寻找最快下山的路径。
批量梯度下降(batch gradient descent)算法的公式为:

repeat until convergence{
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( f o r   j = 0    a n d    j = 1 ) \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)\quad\quad(for\,j=0\;and\;j=1) θj:=θjαθjJ(θ0,θ1)(forj=0andj=1)
}

a:学习率(learning rate),它决定下山迈出的步子有多大。
在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
即,所有θj都减去微分项,然后所有θj都要更新成减去微分项后的值,然后再走下一步。
同时更新是梯度下降中的一种常用方法,是更自然的实现方法。

2.6 梯度下降的直观理解

在这里插入图片描述
在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度。所以实际上没有必要再另外减小 α \alpha α.

2.7 梯度下降的线性回归

对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \frac{\partial}{\partial\theta_j} J(\theta_0,\theta_1)=\frac{\partial}{\partial\theta_j}\frac{1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2 θjJ(θ0,θ1)=θj2m1i=1m(hθ(x(i))y(i))2
j=0时:
∂ ∂ θ j J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \quad\frac{\partial}{\partial\theta_j} J(\theta_0,\theta_1)=\frac{1}{m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)}) θjJ(θ0,θ1)=m1i=1m(hθ(x(i))y(i))
j=1时:
∂ ∂ θ j J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) ) \quad\frac{\partial}{\partial\theta_j} J(\theta_0,\theta_1)=\frac{1}{m}\sum_{i=1}^m((h_{\theta}(x^{(i)})-y^{(i)})x^{(i)}) θjJ(θ0,θ1)=m1i=1m((hθ(x(i))y(i))x(i))
则算法改写成:

repeat until convergence{
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)}) θ0:=θ0αm1i=1m(hθ(x(i))y(i))
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) ) \theta_0:=\theta_0-\alpha\frac{1}{m}\sum_{i=1}^m((h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)}) θ0:=θ0αm1i=1m((hθ(x(i))y(i))x(i))
}

批量梯度下降,指的是在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算这样一个东西,这个项需要对所有m个训练样本求和。因此,批量梯度下降法这个名字说明了我们需要考虑所有这一"批"训练样本,而事实上,有时也有其他类型的梯度下降法,不是这种"批量"型的,不考虑整个的训练集,而是每次只关注训练集中的一些小的子集。在后面的课程中,我们也将介绍这些方法。

用线性代数 计算代价函数J最小值的数值解法,**正规方程(normal equations)**的方法。数据量较大时,梯度下降法比正规方程要更适用一些。

三、线性代数回顾(Linear Algebra Review)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值