机器学习笔记(1)---监督学习之梯度下降

  • 前言
    • 笔记主要内容
  • 基本概念
  • 线性回归
    • 梯度下降法
  • 正文部分公式推导
    • 公式2推导
    • 公式7推导

前言

本机器学习笔记是跟着原斯坦福大学吴恩达老师cs229课程学习后做的课后笔记。每次课程都会涉及到很多数学知识,我在记录课程核心内容的同时,会把数学基础知识在其它博文中单独记下,并在《机器学习笔记》系列博文中用到时给出链接。
笔记都是按照本人的理解去写的,给出的数学基础知识也只是本人薄弱的地方,并不适合所有人。如有问题欢迎给我留言。
数学公式使用Letex编辑,原文博客http://blog.csdn.net/rosetta

笔记主要内容

本课程主要涉及四方面内容:监督学习、学习理论、无监督学习和强化学习,所以笔记主要也是记录这四块内容,当然还有相关的数学知识。

  • 监督学习(supervised learning)
    回归问题 (regression problem)连续的
    分类问题(classification problem) 离散的
    无限维空间的问题,使用支持向量机(support vector)算法,可以把数据映射到无限维空间中。
  • 学习理论
    如何保证学习算法是有效的?训练数据集要达到多少才可以?
  • 无监督学习(unsupervised learning)
    给定一组数据,能发现这些数据的特点,能把相同特点的归类。也就是聚类(clustering)问题。
    聚类可以做图像识别,可以使用一张照片建议3D场景,可以从杂吵声中提取出感兴趣的人的声音。
  • 强化学习(Reinforcemnet Learning)
    回报函数,
    视频中举了个使用强化学习算法控制小型直升机的例子。做的好就奖励它,做的不好就惩罚它,但是如何去定义一个好的形为和坏的形为?
    还可以用在网页爬取方面。

最后再提出一个关键问题,如何使用机器学习一个工具就解决实际问题?我想这也是我为什么选择去学机器学习的原因之一。

基本概念

一个关于房价的例子,目前是使用现有的数据来预测房子的价格,首先约定一些数学符号及其表示的含义。
如下是房子面积和房价的关系。
机器学习笔记(1)---监督学习之梯度下降_第1张图片
在坐标平面画出相应的点的:
机器学习笔记(1)---监督学习之梯度下降_第2张图片
使用 x(i) x ( i ) 表示输入,其中 i i 表示第几个样本,使用y(i) y ( i ) 表示输出。 {(x(i),y(i)),i=1,2,,m} { ( x ( i ) , y ( i ) ) , i = 1 , 2 , … , m } 表示训练集。或者使用 X X 表示输入数据空间, Y Y 表示输出数据空间,本次例子中 X=Y=R X = Y = R
给定训练集,学习函数 h:XY h : X ↦ Y h(x) h ( x ) y y 的预测函数,其处理过程如下图显示:
机器学习笔记(1)---监督学习之梯度下降_第3张图片

线性回归

在本次课程中线性回归主要讲两种方法:梯度下降和正规方程。本篇笔记主要写梯度下降法正规方程见下次笔记。

梯度下降法

在刚才房子的例子上增加一个屋子数量的特征。
机器学习笔记(1)---监督学习之梯度下降_第4张图片
此时x x 变成了二维的向量, x(i)1 x 1 ( i ) 表示面积, x(i)2 x 2 ( i ) 表示屋子数量, i i 表示第i i 条房子的数据.
为了完成监督学习(supervised learning),需要决定预测函数 h h ,可以给定一个关于x x 的线性函数:

hθ(x)=θ0+θ1x1+θ2x2(1) (1) h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2

其中 θi θ i 称为参数,或者权重,它用于确认从 X X 映射到Y Y 的参数,得到合适的参数 θ θ 是学习算法的任务。当不会发生混淆的时候可以把hθ(x) h θ ( x ) 中的 θ θ 去掉,简写成h(x) h ( x ) 。为了简化符号,可令 x0=1 x 0 = 1 ,这样公式就变成:
h(x)=i=0mθixi=θTx(2) (2) h ( x ) = ∑ i = 0 m θ i x i = θ T x

那么 θ θ 如何确定呢?一种可行的方法是选择一组θ θ 和训练数据 X X 一起算出hθ(x) h θ ( x ) (此时由于 x x 是已知的,所以可以把h h 看成是关于 θ θ 的函数,一旦后续把θ θ 学到后, x x 是将要预测的数据,那么那时h h 就要看成是关于 x x 的函数),让hθ(x) h θ ( x ) 尽可能的接近 y y ,那么如何描述这个接近呢?数学中描述接近常用的方法是求两者差的绝对值,课程中给出的公式稍稍有点不同。

J(θ)=12i=1m(hθ(x(i))y(i))2(3) (3) J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

其中的 12 1 2 是为了后续的求导简便加上去的,此公式目前只有 θ θ 是未知的,所以此时的任务就是去找一组θ θ ,使得 J(θ) J ( θ ) 最小,这样就学到了参数 θ θ ,参数θ θ 定了以后,等要预测一套未在训练集中的房子数据时(即知道了 x(i) x ( i ) 的各项参数 x1x2 x 1 , x 2 ),我们就可以用上面的公式 hθ(x)=θ0+θ1x1+θ2x2 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 ,求出 hθ(x) h θ ( x ) ,这个 hθ(x) h θ ( x ) 即这套房子的价格。
下面的问题是如何求出 θ θ ,能使得J(θ) J ( θ ) 最小。这类问题称为无约束最优化问题梯度下降法就是其中的一种方法。

θi:=θiαθiJ(θ)(4) (4) θ i := θ i − α ∂ ∂ θ i J ( θ )

其中 α α 为学习速度,它决定每次迭代的步长,此值需要手动调整。 i i 表示某条数据的第i i 个属性。
当只有一组训练数据时
θiJ(θ)===12θi(hθ(x)y)2122(hθ(x)y)θi(hθ(x)y)(hθ(x)y)xi(5)(6)(7) (5) ∂ ∂ θ i J ( θ ) = 1 2 ∂ ∂ θ i ( h θ ( x ) − y ) 2 (6) = 1 2 ⋅ 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ i ( h θ ( x ) − y ) (7) = ( h θ ( x ) − y ) ⋅ x i

带入 4 4 式得:
θi:=θiα(hθ(x)y)xi(8) (8) θ i := θ i − α ( h θ ( x ) − y ) ⋅ x i

8 8 式这表示一条数据的某个属性前的权重θ θ 求法。其中 (hθ(x)y) ( h θ ( x ) − y ) 中的 hθ(x) h θ ( x ) 是使用指定的 θ θ 算出的预测值, y y 为样本中已经知道的房子的价格。
当考虑m m 组训练数据时:
θi:=θiαj=0m(hθ(x(j))y(j))x(j)i(9) (9) θ i := θ i − α ∑ j = 0 m ( h θ ( x ( j ) ) − y ( j ) ) ⋅ x i ( j )

其中 j j 表示第几条数据,i i 表示每条数据中的第几个属性。
运用此式迭代直到收敛,这就是 批梯度下降(Batch Gradient Descent)算法。梯度下降法很容易被局部最小值影响,而我们要求得的全局最优解,也就是说应该收敛于全局最小值。由于此次函数J实际上是 凸二次函数,它只有一个全局最小值(视频中展示像一个碗状的图),所以不需要考虑那么复杂。
以下是梯度下降的一个例子,它对二次函数求最小值。
机器学习笔记(1)---监督学习之梯度下降_第5张图片
这个椭圆是二次函数 J J 函数的轮廓图(contours of a quadratic function),图中那条蓝线是梯度下降法生成的轨迹,它的初始值是(48,30)。图中的x x 标记了梯度下降过程中所经过的 θ θ 可用值。
用之前的训练集使用批梯度下降法来拟合θ θ ,把面积作为学习和预测房屋的价格的函数,学得 θ0=71.27,θ1=0.1345 θ 0 = 71.27 , θ 1 = 0.1345 。假如把 hθ(x) h θ ( x ) 看作是面积 x x 的函数,并使用房屋数据集,可得到如下图形:
机器学习笔记(1)---监督学习之梯度下降_第6张图片
假如把屋子数量也作为一个输入特征的话,可以学得θ0=89.60,θ1=0.1392θ2=8.738 θ 0 = 89.60 , θ 1 = 0.1392 , θ 2 = − 8.738 。上述结果就是使用批梯度下降算法得到的。但是上面的算法每一次迭代都要使用所有 m m 个样本,如果样本成千上万甚至上亿,那么效率就很低。
下面使用随机梯度下降算法(或叫增量梯度下降法),算每个θ时不需要对所有的样本就和,其公式如下:
机器学习笔记(1)---监督学习之梯度下降_第7张图片

正文部分公式推导

公式2推导

i=0mθixi=θ0x0+θ1x1++θixi ∑ i = 0 m θ i x i = θ 0 x 0 + θ 1 x 1 + ⋯ + θ i x i

θTx θ T x 是向量表示方法,把向量展开成矩阵,则其表示的含义如下:
θTx====θ0θ1θiTx0x1xiθ0,θ1,,θix0x1xiθ0x0+θ1x1++θixii=0mθixi(1)(2)(3)(4) (1) θ T x = ⟮ θ 0 θ 1 ⋮ θ i ⟯ T ⟮ x 0 x 1 ⋮ x i ⟯ (2) = ⟮ θ 0 , θ 1 , … , θ i ⟯ ⟮ x 0 x 1 ⋮ x i ⟯ (3) = θ 0 x 0 + θ 1 x 1 + ⋯ + θ i x i (4) = ∑ i = 0 m θ i x i

所以
i=0mθixi=θTx(2) (2) ∑ i = 0 m θ i x i = θ T x

公式7推导

θiJ(θ)===12θi(hθ(x)y)2122(hθ(x)y)θi(hθ(x)y)(hθ(x)y)xi(5)(6)(7) (5) ∂ ∂ θ i J ( θ ) = 1 2 ∂ ∂ θ i ( h θ ( x ) − y ) 2 (6) = 1 2 ⋅ 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ i ( h θ ( x ) − y ) (7) = ( h θ ( x ) − y ) ⋅ x i

这里主要用到高等数学里的导数、偏导数和复合函数求导,
5到6式,主要是复合函数求偏导。
6到7式,主要是红色部分的计算,这里是对 θi θ i 求偏导,偏导数和导数其实是类似的,只不过在多个自变量的情况下有一个偏向,当对其中一个变量做偏导时,其它变量看作常数即可。比如上述公式自变量有 x,y,θ x , y , θ 三个,如果对 θ θ 做偏导,那么把 xy x , y 看成常量即可。
因为 6 6 式中的hθ(x) h θ ( x ) 由公式 1 1 hθ(x)=θ0+θ1x1+θ2x2 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 ,所以如果对 θi θ i 做编导的话,只对 θixi θ i x i 做即可,其它不带 θi θ i 的项看成常数,常数求导为 0 0 ,所以求导结果就是xi x i

如有疑问之处欢迎加我微信交流,请备注“CSDN博客”
机器学习笔记(1)---监督学习之梯度下降_第8张图片

你可能感兴趣的:(机器学习,机器学习入门,机器学习,梯度下降,批梯度下降,随机梯度下降,监督学习)