【机器学习入门】Andrew NG《Machine Learning》课程笔记之二 :基本概念、代价函数、梯度下降和线性回归

来源:互联网 发布:windows高级选项菜单 编辑:程序博客网 时间:2024/06/08 01:34

机器学习基本概念

在开始正式的内容学习之前,先了解一些关于机器学习的基本概念

《机器学习》的作者Tom Mitchell给出了如下的定义:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience

其中

  • E = 从对局/样本中习得的经验
  • T = 任务/目标
  • P = 赢得下一局比赛的概率(Probablity)
    总的来说,设计出的程序能够像人一样,从多次反复的练习/样本中习得某种经验/规律,来完成某种特定的任务,并且在随着训练过程的进行,程序的表现也能够随之提高,就可以称之为机器学习(Machine Learning)

机器学习通常又可以分为两类:监督学习(Supervised Learning)无监督学习(Unsupervised Learning)

  • 监督学习:
    给定训练过程中的数据集,并且已知正确的输出结果(真实情况下的结果或者人工标签等),寻找输入与输出之间的关系。
    另外,监督学习又可以分类为:回归(Regression)分类(Classfication)

    • 回归:输出结果是连续的,例如房价的预测,期货价格的预测等
    • 分类:输出结果是离散的,像多年前的猫和狗的图片费类问题
  • 无监督学习:
    由于缺乏足够的先验知识或者人工标注成本太高等其他原因,给定的数据集中不含有正确的结果,只能使用data-driven的方法从数据集中提取某些特征或者结构。例如,经常被使用的K-means算法就是无监督算法之一。

模型(Model)和代价函数(Cost Function)

在下图中展示了一个监督学习模型:


监督学习模型

具体地说,首先给定数据集(Training Set),使用(x(i),y(i));i=1,...,m 来表示,其中 x(i) 为输入 y(i) 为输出,上标(i)为样本的索引值,然后根据数据集使用某种学习算法习得某种函数h:xy,称之为假设(hypothesis),然后使用得到的h对实际的输入x进行预测得到y

为了解释代价函数,我们先引入一张图

介绍图

图中的叉号代表我们的训练集,x的值为输入y的值为输出,我们的目标是解决这个线性回归问题,得到一根类似于图中的直线来拟合这些点并且用来预测其他情况,类似的直线有很多,怎样找出其中最好的那一根,就要引入代价函数

假设直线hθ(x)=θ0x0+θ1x1,其中x0=1,得到代价函数是关于参数θ0,θ1的函数,记作J(θ0,θ1):

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

代价函数是用来反映/度量预测结果与实际结果的偏差,偏差越小算法效果越好,反之越差,上式其实就是一个均方差函数。

可以使用Matlab的surface函数来绘制出代价函数,直观地进行感受,下图是某个问题的代价函数,竖轴即为J(θ0,θ1),

这里写图片描述

梯度下降和线性回归

还是,从一张图开始

这里写图片描述

假定我们的θ0,θ1在画红圈的黑点处,为了使代价函数变小两个参数要向谷底的方向移动,其实就是沿着梯度的负方向移动,由此我们就可以得到参数的更新公式:

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

使用该公式对参数不断迭代,达到收敛的时候,参数即在谷底处。

其中的α,挑选合适的学习率也很重要。使用吴恩达老师课件里的一张图来解释学习率的意义,固定一个参数θ0J(θ1)则为一个一元二次函数,使用上面的更新公式对θ1进行迭代

这里写图片描述

根据红点的轨迹可以清楚地看出
- 当学习率过小时:梯度下降的速度过于缓慢
- 当学习率过大时:会使代价函数越过最小值点,从而无法收敛甚至发散

当理解了更新公式的意义之后,我们就可以用它来解决上面的线性回归问题,对代价函数求导有

这里写图片描述

将它代入更新公式就可以得到

θ0:=θ1:=θ0α1mi=1m(hθ(xi)yi)θ1α1mi=1m((hθ(xi)yi)xi)

使用这个公式进行迭代,通过等高线图可以发现得到谷底的两个参数值了

这里写图片描述

由于本人水平有限,难免出现错漏之处,欢迎批评指正

阅读全文
0 0
原创粉丝点击