实际梯度下降中的两个重要调节方面

Gradient Descent in Practice I - Feature Scaling(特征归一化)

调整处理X的范围,以提高梯度下降效果和减小迭代次数。

Note: [6:20 - The average size of a house is 1000 but 100 is accidentally written instead]

We can speed up gradient descent by having each of our input values in roughly the same range. This is because θ will descend quickly on small ranges and slowly on large ranges, and so will oscillate inefficiently down to the optimum when the variables are very uneven.

The way to prevent this is to modify the ranges of our input variables so that they are all roughly the same. Ideally:

These aren‘t exact requirements; we are only trying to speed things up. The goal is to get all input variables into roughly one of these ranges, give or take a few.

Two techniques to help with this are feature scaling and mean normalization. Feature scaling involves dividing the input values by the range (i.e. the maximum value minus the minimum value) of the input variable, resulting in a new range of just 1. Mean normalization involves subtracting the average value for an input variable from the values for that input variable resulting in a new average value for the input variable of just zero. To implement both of these techniques, adjust your input values as shown in this formula:

输入值减去输入值平均值除以输入值的范围

Where μi is the average of all the values for feature (i) and si is the range of values (max - min), or si is the standard deviation.

Note that dividing by the range, or dividing by the standard deviation, give different results. The quizzes in this course use range - the programming exercises use standard deviation.

For example, if xi represents housing prices with a range of 100 to 2000 and a mean value of 1000, then,

Gradient Descent in Practice II - Learning Rate

Note: [5:20 - the x -axis label in the right graph should be θ rather than No. of iterations ]

Debugging gradient descent. Make a plot with number of iterations on the x-axis. Now plot the cost function, J(θ) over the number of iterations of gradient descent. If J(θ) ever increases, then you probably need to decrease α.

Automatic convergence test. Declare convergence if J(θ) decreases by less than E in one iteration, where E is some small value such as 10?3. However in practice it‘s difficult to choose this threshold value.

It has been proven that if learning rate α is sufficiently small, then J(θ) will decrease on every iteration.

To summarize:

If α is too small: slow convergence.

If α is too large: ?may not decrease on every iteration and thus may not converge.

时间: 2024-10-05 13:12:02

实际梯度下降中的两个重要调节方面的相关文章

梯度下降中的学习率如何确定

1.固定学习率的梯度下降 y=x^4+2x ,初值取x=1.5,学习率使用0.01 #coding:utf-8 #求x^4+2x的导数 def g(x): return 4.0*x**3+2; #梯度下降法求f(x)的最小值 x=1.5 a=0.01 y1=x**4+2*x y2=1000 i=0 while y2-y1>10**-20: i=i+1 d=g(x) x-=d*a y2 = y1 y1=x**4+2*x print("%d \t %f \t%f\n" %(i,a,x

Stanford大学机器学习公开课(二):监督学习应用与梯度下降

本课内容: 1.线性回归 2.梯度下降 3.正规方程组 监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案 1.线性回归 问题引入:假设有一房屋销售的数据如下: 引入通用符号: m =训练样本数 x =输入变量(特征) y =输出变量(目标变量) (x,y)—一个样本 ith—第i个训练样本=(x(i),y(i)) 本例中:m:数据个数,x:房屋大小,y:价格 监督学习过程: 1) 将训练样本提供给学习算法 2) 算法生成一个输出函数(一般用h表示,成为假设) 3)

《机器学习》第一周 一元回归法 | 模型和代价函数,梯度下降

课程地址:https://www.coursera.org/learn/machine-learning/lecture/8SpIM/gradient-descent 一 Model and Cost Function 模型及代价函数 1 Model Representation 模型表示 首先,教授介绍了一下课程中将会用到的符号和意义: m:训练样本的数目 x:特征量 y:目标变量 (x,y):一个训练样本 (x^(i),y^(i)):i不是指数,而是指第i行的样本 Univariate li

NN优化方法对比:梯度下降、随机梯度下降和批量梯度下降

1.前言 这几种方法呢都是在求最优解中经常出现的方法,主要是应用迭代的思想来逼近.在梯度下降算法中,都是围绕以下这个式子展开: 其中在上面的式子中hθ(x)代表,输入为x的时候的其当时θ参数下的输出值,与y相减则是一个相对误差,之后再平方乘以1/2,并且其中 注意到x可以一维变量,也可以是多维变量,实际上最常用的还是多维变量.我们知道曲面上方向导数的最大值的方向就代表了梯度的方向,因此我们在做梯度下降的时候,应该是沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解.这个θ的更新过程可以描

机器学习笔记02:多元线性回归、梯度下降和Normal equation

在<机器学习笔记01>中已经讲了关于单变量的线性回归以及梯度下降法.今天这篇文章作为之前的扩展,讨论多变量(特征)的线性回归问题.多变量梯度下降.Normal equation(矩阵方程法),以及其中需要注意的问题. 单元线性回归 首先来回顾一下单变量线性回归的假设函数: Size(feet2) Price($1000) 2104 460 1416 232 1534 315 852 178 - - 我们的假设函数为 hθ(x)=θ0+θ1x 多元线性回归 下面介绍多元线性回归(Linear R

第二集 监督学习的应用 梯度下降

一:线性回归: 例:上一节课的房屋大小与价格数据集 本例中:m:数据个数,x:房屋大小,y:价格 通用符号: m = 训练样本数 x = 输入变量(特征) y = 输出变量(目标变量) (x,y) – 一个样本  –第i个训练样本 = 对假设进行线性表示  h(x)=θ0+θ1*x 在线性回归的问题上大部分都会有多个输入特征,比如这个例子的输入特征可能也有房间大小,卧室数目两个特征,那么就用x1=房间大小,x2=卧室数目.则方程式就变成了: h(x)=θ0+θ1*x1+θ2*x2 为了将公式简洁

机器学习-斯坦福:学习笔记2-监督学习应用与梯度下降

监督学习应用与梯度下降 本课内容: 1.  线性回归 2.  梯度下降 3.  正规方程组 (复习)监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案 1. 线性回归 例:Alvin汽车,先让人开车,Alvin摄像头观看(训练),而后实现自动驾驶. 本质是一个回归问题,汽车尝试预测行驶方向. 例:上一节课的房屋大小与价格数据集 引入通用符号: m = 训练样本数 x = 输入变量(特征) y = 输出变量(目标变量) (x,y) – 一个样本  –第i个训练样本 =

随机梯度下降(SGD)

关于什么是梯度下降,请看我之前发的一个博文:http://blog.csdn.net/lilyth_lilyth/article/details/8973972 梯度下降能帮助我们找到局部最优值,取得很小的损失,但是在数据量达到数十万时,迭代次数高,运算速度慢,十分不适合.这时候可以考虑使用随机梯度下降算法. 所谓随机梯度下降是   每次用 每个样本的损失函数(即样本数为1时的损失函数)对theta求得的偏导,来跟新theta值. 对梯度下降中的例子我们采取随机梯度下降来解: 第i个样本数据为X

ng机器学习视频笔记(十五) ——大数据机器学习(随机梯度下降与map reduce)

ng机器学习视频笔记(十五) --大数据机器学习(随机梯度下降与map reduce) (转载请附上本文链接--linhxx) 一.概述 1.存在问题 当样本集非常大的时候,例如m=1亿,此时如果使用原来的梯度下降算法(也成为批量梯度下降算法(batch gradient descent),下同),则速度会非常慢,因为其每次遍历整个数据集,才完成1次的梯度下降的优化.即计算机执行1亿次的计算,仅仅完成1次的优化,因此速度非常慢. 2.数据量考虑 在使用全量数据,而不是摘取一部分数据来做机器学习,