最优化方法--梯度下降

梯度下降:实现梯度下降、线性回归中的梯度下降

随机梯度下降:相关代码即调用

本文参考:公众号《数据科学家联盟》文章

转自:https://www.cnblogs.com/huangyc/p/9801261.html#_label1_0

一、概念

梯度下降(Gradient Descent, GD)不是一个机器学习算法,而是一种基于搜索的最优化方法。梯度下降(Gradient Descent, GD)优化算法,其作用是用来对原始模型的损失函数进行优化,以便寻找到最优的参数,使得损失函数的值最小。我么需要从损失值出发,去更新参数,且要大幅降低计算次数

梯度下降算法作为一个聪明很多的算法,抓住了参数与损失值之间的导数,也就是能够计算梯度(gradient),通过导数告诉我们此时此刻某参数应该朝什么方向,以怎样的速度运动,能安全高效降低损失值,朝最小损失值靠拢。

1、步长(Learning rate):步长又称学习率,决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。

2、损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。

二、原理

就好比一个蒙着眼睛的人下山,每次在负梯度最大的方向,向前走一步,走出一步后,比较前后的的落差,若落差小于一定阈值,则认为到达山谷,若落差大于阈值,则继续向前走,直到到达山谷。

三、调优

步长、初始值、归一化

1、步长:步长太小,收敛慢,步长太大,会远离最优解。所以需要从小到大,分别测试,选出一个最优解。

2、初始值:随机选取初始值,当损失函数是非凸函数时,找到的解可能是局部最优解,需要多测试几次,从局部最优解中选出最优解。当损失函数是凸函数时,得到的解就是最优解。

3、归一化:如果不归一化,会收敛的很慢,会形成之字的路线。

四、分类

1、批量梯度下降法(BGD)

计算梯度时使用所有的样本,这样每次算出来的梯度都是当前最优的方向。

  • 优点
  1. 迭代次数少
  2. 若损失函数为凸函数,能够保证收敛到全局最优解;若为非凸函数,能够收敛到局部最优值(结果的准确度)
  • 缺点
  1. 训练速度慢(时间,每一次训练需要的时间)
  2. 需要内存大(空间)
  3. 不支持在线更新

2、随机梯度下降法(SGD)

随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本j来求梯度

  • 优点
  1. 训练速度快
  2. 支持在线更新
  3. 有几率跳出局部最优解
  • 缺点
  1. 容易收敛到局部最优,并且容易被困在鞍点
  2. 迭代次数多

3、小批量梯度下降法(MBGD)

小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样子来迭代,1<x<m1<x<m。一般可以取x=10x=10。

---

待完善

原文地址:https://www.cnblogs.com/zym-yc/p/11997289.html

时间: 2024-11-09 07:30:50

最优化方法--梯度下降的相关文章

2.监督学习应用.梯度下降

// 搜索算法 --- 挨个尝试 1. 梯度下降 批梯度下降, 随机梯度下降 2. 矩阵求导方法

【转】梯度下降

回归与梯度下降: 回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等,这个将在后面去讲. 用一个很简单的例子来说明回归,这个例子来自很多的地方,也在很多的open source的软件中看到,比如说weka.大概就是,做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积.房间的数量(几室几厅).地段.朝向等等,

深度解读最流行的优化算法:梯度下降

深度解读最流行的优化算法:梯度下降 By 机器之心2016年11月21日 15:08 梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法.本文旨在让你对不同的优化梯度下降法的算法有一个直观认识,以帮助你使用这些算法.我们首先会考察梯度下降法的各种变体,然后会简要地总结在训练(神经网络或是机器学习算法)的过程中可能遇到的挑战.(本文的中文版 PDF 下载地址) 目录: 梯度下降的各种变体 批量梯度下降(Batch gradient descent)

七月算法--12月机器学习在线班-第六次课笔记—梯度下降和拟牛顿

七月算法--12月机器学习在线班-第六次课笔记—梯度下降和拟牛顿 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com

Matlab梯度下降解决评分矩阵分解

for iter = 1:num_iters %梯度下降 用户向量 for i = 1:m %返回有0有1 是逻辑值 ratedIndex1 = R_training(i,:)~=0 ; %U(i,:) * V' 第i个用户分别对每个电影的评分 %sumVec1 第i个用户分别对每个电影的评分 减去真实值 sumVec1 = ratedIndex1 .* (U(i,:) * V' - R_training(i,:)); product1 = sumVec1 * V; derivative1 =

斯坦福大学机器学习公开课学习—2.监督学习应用&#183;梯度下降

这节课的学习,相信一般上过统计或者运筹相关课程的同学应该都会有所了解.课上涉及的知识虽然很基础,但是也是很重要的. 在搜集了一些房价相关数据的基础上,利用线性回归算法来预测房价. 为了方便算法的训练推导,进行了很多符号的标准规定,从这当中也学到了一些知识,以后自己在进行一些算法的推导时也可学习课上的这些标准符号和推导方式. 下面给出这堂课上的一些干货. 1.机器学习算法的基本框架 2.最小二乘法——线性回归常用的代价函数,即误差平方和最小 3.参数学习算法——梯度下降算法,包含批量梯度下降和随机

深度学习中梯度下降知识准备

考虑一个代价函数C , 它根据参数向量 计算出当前迭代模型的代价,记作C(). 机器学习中,我们的任务就是得到代价的最小值,在机器学习中代价函数通常是损失函数的均值,或者是它的数学期望.见下图: 这个叫做泛化损失,在监督学过程中,我们知道z=(x,y)  ,并且 f(x) 是对y的预测. 什么是这里的梯度呢? 当 是标量的时候,代价函数的梯度可表示如下: 当 很小的时候,它就是的另外一种表达,而我们就是让小于零,且越小越好. 当时一个向量的时候,代价函数的 梯度也是一个向量,每个都是一个i,这里

机器学习入门:线性回归及梯度下降

机器学习入门:线性回归及梯度下降 本文会讲到: (1)线性回归的定义 (2)单变量线性回归 (3)cost function:评价线性回归是否拟合训练集的方法 (4)梯度下降:解决线性回归的方法之一 (5)feature scaling:加快梯度下降执行速度的方法 (6)多变量线性回归   Linear Regression 注意一句话:多变量线性回归之前必须要Feature Scaling! 方法:线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个

机器学习中梯度下降法和牛顿法的比较

在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解.在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法.由于两种方法有些相似,我特地拿来简单地对比一下.下面的内容需要读者之前熟悉两种算法. 梯度下降法 梯度下降法用来求解目标函数的极值.这个极值是给定模型给定数据之后在参数空间中搜索找到的.迭代过程为: 可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha.梯度下降法通