Andrew Ng带我漫步机器学习 - 第一周 什么是机器学习?

写在前面 - 课程最前面整个课程中我们将学习包括监督学习和非监督学习在内的诸多算法,以及如何使用它们

由于课程前部分内容都是在两个月前学完的,因此写文章时视频没能完全再看一遍,由于时间问题也就不举例了。如有疏漏补充欢迎指正,期望和有心人一起进步!

机器学习概念

关于机器学习还没有一个统一绝对的定义, 但我们仍然可以获得较为清晰的理解:

“Field of study that gives computers the ability to learn without being explicitly programmed.”
—Arthur Samuel

而更加现代的说法则是:

“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.”
—Tom Mitchell

其中

  • E = 经验,如下棋获得的经验
  • T = 任务,即下棋
  • P = 概率,下棋中获胜的概率

监督学习

  • 数据拥有标签,可以被标记
  • 数据输出直接反馈到模型
  • 预测输出结果

回归

数据用于连续方程,数据输出也是连续性的

分类

数据用于离散方程,数据输出也是离散性的

非监督学习

在不知道数据输出结果(类型/值)情况下,使用聚类等但是解决问题(一般为分类),这种情况下,输出结果无法向算法给予反馈

  • 数据没有明确标签,不可被人为标记
  • 数据输出无法给予模型反馈
  • 寻找数据间的隐藏关系和属性

模型及代价函数

参数介绍

  • x(i) = 输入变量

  • y(i) = 输出变量
    输出变量y取有限固定值,为分类问题;取连续值,为回归问题

  • i = 样本序列

  • j = 特征序列

  • (x(i), y(i)) = 训练样本

  • (x(i), y(i)), i=1, 2, 3,…, n = 训练集

  • X X X = 输入集

  • Y Y Y = 输出集

  • h h h = 假设

  • m = 数据集样本数量

模型展示

其中反馈过程没有表示出来,只反映了一次单向推导过程
在这里插入图片描述

代价函数

用来评估假设方程(算法的一部分,可改变)的准确度
假设方程 h θ ( x i ) = θ 0 + θ 1 x i h_\theta (x_{i}) = \theta_0+\theta_1x_{i} hθ(xi)=θ0+θ1xi
代价函数 J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( y ^ i − y i ) 2 = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(\theta_0, \theta_1) = \dfrac {1}{2m} \displaystyle \sum _{i=1}^m \left ( \hat{y}_{i}- y_{i} \right)^2 = \dfrac {1}{2m} \displaystyle \sum _{i=1}^m \left (h_\theta (x_{i}) - y_{i} \right)^2 J(θ0,θ1)=2m1i=1m(y^iyi)2=2m1i=1m(hθ(xi)yi)2
其中1/2只是为了便于计算梯度下降, 我们需要选择 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1使得假设函数更加靠近数据集,如下:
在这里插入图片描述
代价函数的重要目标是寻找全局最小值,找到全局最小值,就找到了最准确的参数模型,也就找到了假设方程的最佳参数解,预测的结果也最准确(注意不是找到了最佳算法),因此我们需要避免参数收敛于局部变量的情况

一元函数寻找全局最小值 - θ 1 \theta_1 θ1

左图中,选择不同的参数值,从而获得不同的假设方程曲线,在右图画出 J ( θ 1 ) J(\theta_1) J(θ1)
在这里插入图片描述
在这里插入图片描述
取不同 θ 1 \theta_1 θ1获得不同代价函数(没有 θ 0 \theta_0 θ0),画图找全局最小值

二元函数寻找全局最小值 - θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1

使用等高线图,等高线上的代价函数值相同,原理同上
在这里插入图片描述
等高线中心坐标即为全局最小值参数解(包括 θ 0 \theta_0 θ0

梯度下降算法

寻找全局最小值的通用方法,对代价函数进行了求偏导运算

公式原理

使用梯度下降算法,优化 θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1,给机器这个公式,让它自己完成算法任务:
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta_0, \theta_1) θj:=θjαθjJ(θ0,θ1)
θ j 收 敛 ( c o n v e r g e ) = J ( θ 0 , θ 1 ) 取 全 局 最 小 值 \theta_j 收敛(converge) = J(\theta_0, \theta_1)取全局最小值 θj(converge)=J(θ0,θ1)
在这里插入图片描述
三维图示原理,此时收敛点在局部最小值,下降步长由 α \alpha α确定

参数分析

在这里插入图片描述

  • θ 1 \theta_1 θ1增加,此处代价函数斜率为负
  • θ 1 \theta_1 θ1减小,此处代价函数斜率为正

在这里插入图片描述

  • α \alpha α越小,下降步长越短,不容易滑落到局部最小值,但是计算量大,时间长
  • α \alpha α越大,下降步长越长,更易找到局部最小值及偏离,计算成本小,时间短
  • α \alpha α取任何值,理论上都有可能找到局部最小值,正确之道在中庸~

在这里插入图片描述

  • α \alpha α选定后不再需要改变,因为随着梯度下降的进行步长也会逐渐减小

批次梯度下降

重复这组公式直到到达收敛点(注意 θ 1 \theta_1 θ1公式对偏导项还要乘Xi项,如果假设方程还有二次项呢?):

θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) \theta_0 := \theta_0 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}(h_\theta(x_{i}) - y_{i}) θ0:=θ0αm1i=1m(hθ(xi)yi)
θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( ( h θ ( x i ) − y i ) x i \theta_1 := \theta_1 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m}((h_\theta(x_{i}) - y_{i}) x_{i} θ1:=θ1αm1i=1m((hθ(xi)yi)xi

每次进行梯度下降时都应该使用的是相同的,前一组的参数,即进行同步升级
在这里插入图片描述
每前进一步,对每个数据进行更新时都要用到前一组的所有数据,进行批量更新,所以叫做批次梯度下降

在线性回归中只有一个全局最小值,因此不存在梯度下降误至局部最小值的问题

线性代数基础 - 略

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值