反向传播常用优化器

github博客传送门

csdn博客传送门

计算出损失值后,这个损失值越小越好,梯度下降的算法就用在这里,帮助寻找最小的那个损失值,从而反推出 w 和 b 达到优化模型的效果

常用的梯度下降法可以分为:

  1. 批量梯度下降:遍历全部数据集算一次损失,计算量大,计算速度慢,不支持在线学习
  2. 随机梯度下降:每看一个数据,就算一下损失,速度快,收敛性能不太好,较低点震荡比较剧烈
  3. 小批量梯度下降法:将数据分为多批,按批更新参数,相对前两种,这种方法比较折中
# 一般的梯度下降算法
Optimizertf.train.GradientDescentoptimizer(learning_rate,use_locking=False,name=‘Gradientdescent‘)
# 创建Adadelta优化器
tf.train.AdadeltaOptimizer(learning_rate=0.001,rho=0.95,epsilon=1e-08,use_locking=False,name=‘Adadelta‘)
# 创建Adagrad优化器
tf.train.AdagradOptimizer(learning_rate,initial_accumulator_value=0.1,use_locking=False,name=‘Adagrad‘)
# 创建momentum优化器momentum:动量,一个Tensor或者浮点值
tf.train.MomentumOptimizer(learning_rate,momentum,use_locking=False,name=‘Momentum‘,use_nesterov=False)
# 创建Adam优化器
tf.train.AdamOptimizer(learning_rate=0.001,beta1=0.9,beta2=0.999,epsilon=1e-08,use_locking=False,name=‘Adam‘)
# 创建FTRL算法优化器
tf.train.FtrlOptimizer(learning_rate,learning_rate_power=-0.5,initial_accumulator_value=0.1,l1_regularization_strength=0.0,l2_regularization_strength=0.0,use_locking=False,name=‘Ftrl‘)
# 创建RMSProp算法优化器
tf.train.RMSPropOptimizer(learning_rate,decay=0.9,momentum=0.0,epsilon=1e-10,use_locking=False,name=‘RMSProp‘)

原文地址:https://www.cnblogs.com/Mrzhang3389/p/9903881.html

时间: 2024-10-30 06:45:37

反向传播常用优化器的相关文章

实现一个反向传播人工神经网络

为何实现一个BP神经网络? “What I cannot create, I do not understand” — Richard Feynman, February 1988 实现一个BP神经网络的7个步骤 选择神经网络 结构 随机 初始化权重 实现 前向传播 实现 成本函数 $J(\Theta)$ 实现反向传播算法并计算 偏微分 $\frac{\partial}{\partial\Theta_{jk}^{(i)}}J(\Theta)$ 使用 梯度检查 并在检查后关闭 使用梯度下降或其它优

机器学习常见优化器

在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论文中给出了常用优化器的比较,今天来学习一下:https://arxiv.org/pdf/1609.04747.pdf 本文将梳理: 每个算法的梯度更新规则和缺点 为了应对这个不足而提出的下一个算法 超参数的一般设定值 几种算法的效果比较 选择哪种算法 0.梯度下降法深入理解 以下为个人总结,如有错误

优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)

在机器学习.深度学习中使用的优化算法除了常见的梯度下降,还有 Adadelta,Adagrad,RMSProp 等几种优化器,都是什么呢,又该怎么选择呢? 在 Sebastian Ruder 的这篇论文中给出了常用优化器的比较,今天来学习一下:https://arxiv.org/pdf/1609.04747.pdf 本文将梳理: 每个算法的梯度更新规则和缺点 为了应对这个不足而提出的下一个算法 超参数的一般设定值 几种算法的效果比较 选择哪种算法 0.梯度下降法深入理解 以下为个人总结,如有错误

机器学习最常用优化之一——梯度下降优化算法综述

转自:http://www.dataguru.cn/article-10174-1.html 梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最常用的优化方法.几乎当前每一个先进的(state-of-the-art)机器学习库或者深度学习库都会包括梯度下降算法的不同变种实现.但是,它们就像一个黑盒优化器,很难得到它们优缺点的实际解释.这篇文章旨在提供梯度下降算法中的不同变种的介绍,帮助使用者根据具体需要进行使用. 这篇文章首先介绍梯度下降算法的三种框架,然后介绍它们所存在的

『PyTorch』第十一弹_torch.optim优化器

一.简化前馈网络LeNet import torch as t class LeNet(t.nn.Module): def __init__(self): super(LeNet, self).__init__() self.features = t.nn.Sequential( t.nn.Conv2d(3, 6, 5), t.nn.ReLU(), t.nn.MaxPool2d(2, 2), t.nn.Conv2d(6, 16, 5), t.nn.ReLU(), t.nn.MaxPool2d(2

Pytorch torch.optim优化器个性化使用

一.简化前馈网络LeNet 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import torch as t class LeNet(t.nn.Module):     def __init__(self):         super(LeNet, self).__init__()         self.features = t.nn.Sequential(      

DL4NLP——神经网络(一)前馈神经网络的BP反向传播算法步骤整理

这里把按[1]推导的BP算法(Backpropagation)步骤整理一下,备忘使用.[1] 中直接使用矩阵微分的记号进行推导,整个过程十分简洁.而且这种矩阵形式有一个非常大的优势就是对照其进行编程实现时非常方便. 但其实用标量计算推导也有一定的好处,比如可以清楚地知道某个权重是被谁所影响的. 记号约定: $L$:神经网络的层数.输入层不算. $n^l$:第 $l$ 层神经元的个数.偏置神经元不算在内. $W^{l}\in\mathbb R^{n^l\times n^{l-1}}$:第 $l-1

神经网络训练中的Tricks之高效BP(反向传播算法)

神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) [email protected] http://blog.csdn.net/zouxy09 Tricks!这是一个让人听了充满神秘和好奇的词.对于我们这些所谓的尝试应用机器学习技术解决某些问题的人,更是如此.曾记得,我们绞尽脑汁,搓手顿足,大喊“为什么我跑的模型不work?”,“为什么我实现的效果那么差?”,“为什么我复现的结果没有他论文里面说的那么好?”.有人会和你说“你不懂调参!

【MLP】多层感知机网络——BPN反向传播神经网络

BPN(Back Propagation Net) 反向传播神经网络是对非线性可微分函数进行权值训练的多层网络,是前向神经网络的一种. BP网络主要用于: 1)函数逼近与预测分析:用输入矢量和相应的输出矢量训练一个网络,逼近一个函数或预测未知信息: 2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来: 3)分类:把输入矢量以所定义的合适方式进行分类: 4)数据压缩:减少输出矢量维数以便于传输与存储. 比如,一个三层BPN结构如下: 由输入层.隐含层和输出层三层组成.其中每一层的单元与之相邻