【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 2_Linear regression with one variable 单变量线性回归
Lecture2 Linear regression with one variable 单变量线性回归
2.1 模型表示 Model Representation
2.1.1 线性回归 Linear regression
2.1.2 单变量线性回归 Linear regression with one variable
2.2 代价函数 Cost Function
2.2.1 如何选择模型的参数 θ
2.2.2 建模误差 modeling error
2.2.3 平方误差代价函数 Squared error cost function
2.3 代价函数的直观理解 I
2.4 代价函数的直观理解 II
2.5 梯度下降 Gradient descent
2.5.1 局部最优解 local optimum
2.5.2 梯度下降算法 Gradient descent algorithm
2.6 梯度下降的直观理解
2.6.1 梯度下降算法的更新规则
2.6.2 学习速率 α 的选择
2.6.3 不调整学习速率 α 也能收敛
2.7 梯度下降的线性回归
2.7.1 梯度下降和线性回归相结合
2.7.2 批处理梯度下降 batch gradient descent
2.8 接下来的内容
2.1 模型表示 Model Representation
参考视频: 2 - 1 - Model Representation (8 min).mkv
本节引入第一个监督学习算法:线性回归 Linear regression。其中只有一个参数的线性回归算法叫做 单变量线性回归 Linear regression with one variable。
2.1.1 线性回归 Linear regression
还是房价预测的例子, 训练集如下:
定义各个变量的含义如下:
m 代表训练集中实例的数量
x 代表特征/输入变量
y 代表目标变量/输出变量
(x,y) 代表训练集中的实例
(x(i),y(i)) 代表第 i 个观察实例:其中x(i) 代表第i个输入变量, y(i)代表第i个目标变量
h 代表学习算法的解决方案或函数,也称为假设(hypothesis)
2.1.2 单变量线性回归 Linear regression with one variable
h 根据输入的 x 值来得出 y 值, y 值对应房子的价。因此, h 是一个从x 到 y 的函数映射。
h 的一种可能的表达方式如下。因为只含有一个特征/输入变量,这样的问题叫作单变量线性回归问题。
2.2 代价函数 Cost Function
参考视频: 2 - 2 - Cost Function (8 min).mkv
线性回归算法优化的目标是:选取最有可能与数据相拟合的直线。数据与直线的误差,称为建模误差 modeling error。为了使建模误差最小,我们需要调整参数θ0 和 θ1,使得代价函数Cost function J(θ0, θ1)的值最小。
在各种代价函数中,最常用的是平方误差代价函数 Squared error cost function。
2.2.1 如何选择模型的参数 θ
因为 h 是一次方程,它对应两个模型参数(parameters) θ0 和 θ1:
选取不同的参数 θ0 和 θ1,产生的 h 不同,最终的直线也不同:
2.2.2 建模误差 modeling error
参数决定了直线相对于训练集的准确程度,模型所预测值 与 训练集实际值 之间的差距(下图中蓝线所指)就是 建模误差(modeling error)。
调整参数 θ0 和 θ1,目标:使建模误差的平方和最小
2.2.3 平方误差代价函数 Squared error cost function
为了使建模误差最小,需要 使代价函数 J(θ0, θ1) 最小,公式如下。其中 h(x) - y 是预测值和实际值的差,取其平方和。m 指的是数据集的大小,乘以1/2m 是为了便于计算。这个J(θ0 ,θ1) 通常称为 平方误差函数(Squared error function),有时也被称为 平方误差代价函数(Squared error cost function)。
下面公式的意思是:寻找θ0 和 θ1,使得 J 值最小。
我们绘制一个等高线图, 三个坐标分别为 θ0 和 θ1 和 J(θ0 和 θ1),则可以看出在三维空间中存在一个点,使得 J(θ0 和 θ1)最小:
2.3 代价函数的直观理解 I
参考视频: 2 - 3 - Cost Function - Intuition I (11 min).mkv
线性回归模型的假设、参数、代价函数、目标如下:
取将 θ0 固定为 0时,代价函数简化为只关于 θ1 的函数:
下面的例子里,三个数据点的坐标是(1,1)(2,2)(3,3)。当将 θ0固定为0,只变化 θ1时, 代价函数是一条二次曲线。
当 θ1 分别取值1,0.5,0的时候,对应左边从上到下三条曲线。
当 θ1 取1时,J(θ1) = 0 , 此时 J(θ1) 最小,处于曲线最低点,是我们想要的结果。
2.4 代价函数的直观理解 II
参考视频: 2 - 4 - Cost Function - Intuition II (9 min).mkv
当 θ0 和 θ1 都发生变化时,代价函数 J(θ0 , θ1) 在三维空间中图形如下:
因为三维图像看起来太复杂, 将它投射到二维平面。引入等高线contour plot 的概念,也叫contour figure。等高线上的点,对应的代价函数 J(θ0 , θ1) 取值相同。
下面两个图,右边红点对应的直线如左图,可以看出拟合的都不好。
下图取值位于三维图形的最低点,在二维图形上位于等高线的中心。对应的假设函数 h(x) 直线如左图。虽然拟合数据有一些误差(蓝色竖线),但是已经很接近最小值了。
2.5 梯度下降 Gradient descent
参考视频: 2 - 5 - Gradient Descent (11 min).mkv
2.5.1 局部最优解 local optimum
已有一个代价函数,我们的目的是使其最小化。通常情况下,始于θ0=0 , θ1=0,调整θ0 , θ1,止于J(θ0 , θ1) 的最小值。
下面这个例子,θ0 和θ1没有开始于0,0。当选取两个不同的起始点,并向着不同方向进行梯度下降时,到达两个不同的最优解,它们称为局部最优解local optimum。
2.5.2 梯度下降算法 Gradient descent algorithm
梯度下降算法对 θ赋值, 使得 J(θ)按梯度下降最快方向进行, 一直迭代下去, 最终得到局部最小值,即收敛 convergence。梯度下降算法不只用于线性回归, 可以用来最小化任何代价函数 J。公式如下,
梯度下降算法中,两个参数 同步更新 simultaneous update(左下)。如果是非同步更新 non-simultaneous update (右下),则不是梯度下降。
a := b 是赋值操作 assignment ,将 b 的值赋值给 a。
a = b 是真值断言Truth assertion,判断 a 和 b 是否相等。
α 是 学习速率 learning rate,决定了沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。
2.6 梯度下降的直观理解
参考视频: 2 - 6 - Gradient Descent Intuition (12 min).mkv
2.6.1 梯度下降法的更新规则
梯度下降算法如下图:
求导的目的,基本上可以说取这个红点的切线,即这条红色直线。由于曲线右侧斜率为正,导数为正。 因此,θ1 减去一个正数乘以 α,值变小。
曲线左侧斜率为负,导数为负。 因此,θ1 减去一个负数乘以 α,值变大。
2.6.2 学习速率 α 的选择
如果 α 太小,只能小碎步下降,需要很多步才能到达全局最低点,很慢。
如果 α 太大,那么算法可能会越过最低点。一次次越过最低点,离它越来越远。会导致无法收敛, 甚至发散。
2.6.3 不调整学习速率 α 也能收敛
假设将 θ1初始化在局部最低点。导数为0,会使得 θ1不再改变,不会改变参数的值。也解释了为什么即使学习速率 α 保持不变时, 梯度下降也可以收敛到局部最低点。
为什么不用调整α也能到达局部最优点?因为梯度下降一步后, 新的导数会变小,移动的幅度会自动变小。直到最终移动幅度非常小时,已经收敛到局部极小值。
2.7 梯度下降的线性回归 Gradient Descent For Linear Regression
参考视频: 2 - 7 - GradientDescentForLinearRegression (6 min).mkv
2.7.1 梯度下降和线性回归相结合
将平方误差函数 h(x), 结合梯度下降法, 以及平方代价函数J(Θ),得出第一个机器学习算法, 即线性回归Linear Regression。
梯度下降算法和线性回归模型的比较:
对之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
j 分别取 0 和 1 时,其导数如下:
将上面两个导数带入梯度下降算法中,替代原来的 。梯度下降算法变为:
虽然梯度下降一般易受局部最小值影响 susceptible to local minima,但我们在线性回归中提出的优化问题只有一个全局最优解,而没有其他局部最优解,代价函数是凸二次函数。因此,梯度下降总是收敛到全局最小值(假设学习率α不是太大)。
2.7.2 批处理梯度下降 batch gradient descent
上面使用的算法也叫批处理梯度下降 batch gradient descent,指的是梯度下降的每一步都涉及到所有的训练实例。也有其他类型的非批处理梯度下降法,每次只关注训练集中一些小子集。
高等线性代数中有一种计算代价函数 J 最小值的数值解法,不需要梯度下降这种迭代算法,也能解出代价函数 J 的最小值,这是另一种称为正规方程(normal equations)的方法。实际上在数据量较大的情况下,梯度下降法比正规方程要更适用一些。
2.8 接下来的内容
参考视频: 2 - 8 - What_'s Next (6 min).mkv
介绍了一点线性代数 Linear algebra
相关术语
线性回归 Linear regression
单变量线性回归 Linear regression with one variable
代价函数 Cost Function
平方误差代价函数 Squared error cost function
建模误差 Modeling error
等高线 contour plot 、contour figure
梯度下降 Gradient descent
批处理梯度下降 Batch gradient descent
学习效率 Learning rate
同步更新 simultaneous update
非同步更新 non-simultaneous update
局部最优 local optimum
全局最优 global optimum
全局最小值 global minimum
局部最小值 local minimum
微分项 derivative term
微积分 calculus
导数 derivatives
偏导数 partial derivatives
负导数 nagative derivative
负斜率 nagative slope
收敛 converge
发散 diverge
陡峭 steep
碗型 bow-shaped function
凸函数 convex function
线性代数 linear algebra
迭代算法 iterative algorithm
正规方程组 normal equations methods
梯度下降的泛化 a generalization of the gradient descent algorithm
越过最低点 overshoot the minimum
【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 2_Linear regression with one variable 单变量线性回归的更多相关文章
- 【原】Coursera—Andrew Ng机器学习—Week 1 习题—Linear Regression with One Variable 单变量线性回归
Question 1 Consider the problem of predicting how well a student does in her second year of college/ ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 4_Linear Regression with Multiple Variables 多变量线性回归
Lecture 4 Linear Regression with Multiple Variables 多变量线性回归 4.1 多维特征 Multiple Features4.2 多变量梯度下降 Gr ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 6_Logistic Regression 逻辑回归
Lecture6 Logistic Regression 逻辑回归 6.1 分类问题 Classification6.2 假设表示 Hypothesis Representation6.3 决策边界 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 15—Anomaly Detection异常检测
Lecture 15 Anomaly Detection 异常检测 15.1 异常检测问题的动机 Problem Motivation 异常检测(Anomaly detection)问题是机器学习算法 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 16—Recommender Systems 推荐系统
Lecture 16 Recommender Systems 推荐系统 16.1 问题形式化 Problem Formulation 在机器学习领域,对于一些问题存在一些算法, 能试图自动地替你学习到 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 14—Dimensionality Reduction 降维
Lecture 14 Dimensionality Reduction 降维 14.1 降维的动机一:数据压缩 Data Compression 现在讨论第二种无监督学习问题:降维. 降维的一个作用是 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 13—Clustering 聚类
Lecture 13 聚类 Clustering 13.1 无监督学习简介 Unsupervised Learning Introduction 现在开始学习第一个无监督学习算法:聚类.我们的数据没 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机
Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 11—Machine Learning System Design 机器学习系统设计
Lecture 11—Machine Learning System Design 11.1 垃圾邮件分类 本章中用一个实际例子: 垃圾邮件Spam的分类 来描述机器学习系统设计方法.首先来看两封邮件 ...
随机推荐
- The Saltwater Room
I opened my eyes last night and saw you in the low light 昨夜我睁开眼,看见你在昏暗的灯光下 Walking down by the bay, ...
- Failed to export application
打包Android项目,遇到Failed to export application的错误提示.如何处理呢 我当时是 在替换图标时 没有完全替换 只替换了 四张drawable_h图片,没有替换上 ...
- Leetcode 944. Delete Columns to Make Sorted
class Solution: def minDeletionSize(self, A: List[str]) -> int: ans = 0 for j in range(len(A[0])) ...
- 官方:MySQL 5.7 并行复制实现原理与调优 | InsideMySQL(转载)
MySQL 5.7并行复制时代 众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经支持“真正”的并行复制功能, ...
- c++ 基础知识 0001 const 知识2
1.const修饰函数返回值 (1)指针传递 如果返回const data,non-const pointer,返回值也必须赋给const data,non-const pointer.因为指针指向的 ...
- 类里边的构造函数可以被private修饰,在类的内部创建对象。利用这种特性创建单类模式
- cowboy实现websocket
使用cowboy实现websocket主要实现以下回调函数 下面的函数返回值要具体弄清楚原因参考 websocket具体协议 主要就是两个部分 握手和数据传输 -export([init/3]). ...
- C++之指针使用
C++指针使用的好坏直接反映了编程人员水平的高低,下面从指针和数组的区别.指针参数是如何传递内存.野指针.malloc/free.new/delete和内存耗尽怎么办方面进行总结. 一 指针和数组对比 ...
- Mapreduce shuffle和排序
Mapreduce为了确保每个reducer的输入都按键排序.系统执行排序的过程-----将map的输出作为输入传给reducer 称为shuffle.学习shuffle是如何工作的有助于我们理解ma ...
- 使用PHP判断是否为微信、支付宝等移动设备访问代码
在开发过程中经常遇到根据不同的设备显示不同的数据或者在页面样式上做不同的布局,另外在做支付接口的时候也可能会判断当前是什么设备访问,例如判断如果是微信内置浏览器访问则只启用微信支付功能,如果是支付宝内 ...