【Stanford机器学习笔记】1-Linear Regression with One Variable
2016-04-28 21:07
330 查看
1. Model Representation
单变量线性回归即假设函数中hθ(x)只包含一个特征变量x,加上一个偏差值bias,即只包含两个参数 θ0和θ1。hθ(x)=θ0+θ1x监督分类的基本流程是将训练样本输入学习算法,通过训练得到最优参数Θ,最后得到假设函数h(x),然后用于回归预测。除了线性回归,还包括一些非线性回归,如指数、对数、多项式等。
2. Cost Function
代价函数J又叫误差平方函数,即所有样本的残差平方和。训练的目标是最小化代价函数,获取最优参数Θ,代价函数公式如下:J(Θ)=12m∑i=1m(hθ(x(i))−y(i))2目标函数是:min J(Θ)备注:整个课程中,除特殊说明,m都是指训练样本(training examples)的个数,n都是指特征的个数(feature),即特征维数(feature dimension),i指的是第i个样本(ith example),j是指的第j个参数θj.
3. Cost Function-Intuition I
假设函数hθ(x)是关于x的函数,代价函数J(Θ)是关于参数Θ的函数。现在令θ0=0,则假设函数变为:hθ(x)=θ1x此时,θ1即为直线hθ(x)的斜率,通过改变θ1的值,寻找代价函数J(Θ)的最小值,此时,θ1即为假设函数hθ(x)的最优参数。
4. Cost Function-Intuition II
现在令θ0和θ1都不等于0,即有两个参数,当有一个参数时,代价函数J(θ)是一个二次函数曲线,当有两个参数时,则代价函数J(θ)是一个三维的碗形曲面图形(二维中用等高线表示),每一对参数(θ0和θ1)都有一个J(θ)值,通过寻找θ0和θ1参数的值,使得J(θ)最小,及参数最优,得到最优假设函数hθ(x)。课中是通过手动调节参数来是得代价函数J(θ)最小,进而获得最优参数,接下来的课中主要讲如何自动的训练模型来获得最优参数。
5. Gradient Descent
梯度下降法是机器学习中最常用的优化算法之一,该算法的主要流程是:(1)计算代价函数J(Θ)的偏导数∂∂θjJ(Θ);
(2)利用梯度下降更新参数的值(注意是同时更新所有参数);θj:=θj−α∂∂θjJ(Θ) (for j=0 and j=1)
(3)依次循环1-2步,直至收敛(convergence)停止。
6. Gradient Descent Intuition
(1)梯度下降中的导数项ddθjJ(θ1)假设只有一个参数θ1,则代价函数为J(θ1)为二次函数曲线,梯度下降公式为:θ1:=θ1−α∂∂θ1J(θ1)如果初始值θ1在对称轴右边,梯度下降导数项ddθjJ(θ1)大于等于0,则θ1逐渐减小;如果θ1在对称轴左边,梯度下降导数项ddθjJ(θ1)小于等于0,则θ1逐渐增加;
(2)梯度下降中的学习率α
如果学习率太小,则梯度下降将非常慢;如果太大,则可能会错过最代价函数最小值,或不能收敛。
(3)局部最小值(局部最优)
如果θ1初始值正好落在代价函数一个局部最小值处,则θ1将保持不变。
(4)接近最优,梯度下降逐渐减慢
如果学习率α是固定数值,则随着训练接近代价函数最小值(最优),梯度下降导数项逐渐变小,导致梯度下降逐渐减慢。
7. Gradient Descent for Linear Regression
(1)将梯度下降优化算法用于线性回归(假设只有一个参数x),关键在于计算其中的导数项∂∂θ1J(θ0,θ1)(2)依次对参数进行求偏导
(3)同时更新参数值,循环以上步骤直至收敛
Note:
上一节中我们讲到,梯度下降可能会收敛到局部最小值,但是对于代价函数J(θ0,θ1)来说不会存在这个问题,因为J(θ0,θ1)是一个凸函数,只有一个全局最小值。
以上是使用的方法称为批量梯度下降法,即训练时遍历所有训练样本,还有另外一种方法叫随机批量梯度下降法(Stochastic Gradient Descent,SGD),在遍历循环时只需要部分样本即可,随后课程会讲到。
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法
- 初识机器学习算法有哪些?
- 机器学习相关的库和工具
- 10个关于人工智能和机器学习的有趣开源项目
- 机器学习实践中应避免的7种常见错误
- 机器学习常见的算法面试题总结
- 机器学习书单
- 北美常用的机器学习/自然语言处理/语音处理经典书籍