!
也想出现在这里? 联系我们
广告信息

神经网络需要多少数据,训练神经网络的五大算法:技术原理、内存与速度分析

1新智元编译用于神经网络中执行学习过程的程序被称为训练算法。训练算法有很多,各具不同的特征和性能。问题界定神经网络中的学习问题是以损失函数f的最小化界定的。这个函数一般由一个误差项和一个正则项组成。误差项评估神经网络如何拟合数据集,正则项用于通过控制神经网络的有效复杂性来防止过拟合。损失函数取决于神经网络中的自适应参数(偏差和突触权值)。我们可以简便地把它们组合成单个n维权值向量w。下图表示损失函数f(w)如上图所示,点w*是该损失函数的最小值。在任何点A,我们可以计算损失函数的一阶和二阶导数。一阶导数用梯度向量组成,可以写成:ᐁif(w)=df/dwi(i=1,...,n)类似地,损失函数的二阶导数可以用Hessian矩阵,写成:Hi,jf(w

1 新智元编译

训练神经网络的五大算法:技术原理、内存与速度分析

用于在神经网络中执行学习过程的程序称为训练算法。训练算法有很多种,每种算法都有不同的特点和性能。

问题定义

神经网络中的学习问题通过最小化损失函数f来定义。该函数通常由误差项和正则项组成。误差项评估神经网络如何拟合数据集,正则化项用于通过控制神经网络的有效复杂度来防止过拟合。

函数的损失取决于神经网络中的自适应参数(偏差和突触权重)。我们可以简单地将它们组合成一个具有n个权重的向量w。下图显示了损失函数f(w)

训练神经网络的五大算法:技术原理、内存与速度分析

如上图所示,w*点就是这个损失函数的最小值。在任一点A,我们可以计算损失函数的一阶和二阶导数。一阶导数由梯度向量组成,可以写成:

if(w)=df/dwi (i=1,n)

类似地,损失函数的二影响阶导数可以更新显卡驱动写成:

Hi,内容中心jf(w)=d2f/dwi dwj (i,j=1,n)

对于许多连续的和可微的函数的极小化已经有了许多研究。这些问题的常规方法可以直接应用于训练神经网络。

一维优化方法

虽然损失函数取决于许多参数,但一维优化方法在这里非常重要。事实上,在神经网络不同凡响的训练过程中经常使用一维优化方法。

很多训练算法都是先计算训练方向D何时了却这牵挂,再计算使该方向损软件测试失最小的训练率,记为f(n)。下图描述了一维损失函数:

训练神经网络的五大算法:技术原理、内存与速度分析

1和2搜索软件定义了包含f(n)的最小值 *的区间。这里,一维优化方法搜索给定一维函数的最小值。广泛使用的算法有黄金分割法软件商店下载和布伦特法。

多维优化方法

神经网络的学习问题定义设置路由器搜索使损失函数f最小的参数向量w*,如果通过手机号查个人信息神经网络的损失函数已经最小化,则梯度为零向量。

一般来说,损失函数是参数的非线性函数。所以不可能找到最小闭训练算法。相反,我们考虑在操作系统的主要功能是由一系列步骤组成的参数空间中搜索最小值。在每一步中,损失会随着神经网络参效果数的调整而减小。

这样我们就从一些参数向量(通常哪家银行存款利息高是随机选取的)来训其实拼音练神经网络。然后,我们将生成一系列参数,以便损失函数在算法的每次迭代中减少损失值。两次迭代之间损失值的变化称为损失减少。当满足特定条件或达到停止标准解封什么意思时,训练算法停止。

接下来,将介绍训练神经网络的五种最重要的算法。

1.梯度下降法(梯度下降)

梯度下降法又称最速下降法,是最简单的训练算法。它需要梯度向量的信息,所以是一阶方法。

设f(wi)=fi,f (wi)=gi。该方法从点w0开始,并且在训练方向di=-gi上相同重量的情况下蚂蚁庄园从w1移动到w1,直到满足停止标准。因此,梯度下降法根据以下公式迭代:

wi 1=wi – di i,i大小周休息是什么意思=0,1,

参数是训练率。该值可以设置为固定值,也可以在沿着训练方向的每一步的一维优化中找到。训练率的最佳值通常可以通过每个连续步骤的线性最小化实体店和官方旗舰店衣服有什么区别来获得。但是,仍然有许多软件工具只使用固定的训不同地域的同种鸟类存在方言吗练率。

下图描述了梯度下降法的训练过程内容分析法。可以看出,参数向量的提升是通过两步实现的:首先,计算梯度下降训练方向;然后,找到合适的推广英文训练率。

训练神经网络的五大算法:技术原理、内存与速度分析

梯度下降训练算法的严重缺点是对于狭长谷结构的函数需要多次迭代。实际上,下坡梯度是损失函数的最快下降方向,但它可能不会产生最快的条件格式怎么使用收敛。下图说明了这个问题。

zb_users/upload/2022/05/20220514103451165249569176588.jpg” alt=”训练神经网络的五大算法:技术原理、内存与速度分析” class=”syl-page-img”>

当神经网络非常大、参数非常多时,梯度下降法是推荐的算法。因为该方法仅存储梯度向量(大小是n),而不存储Hessian矩阵(大小是n2)。

2. 牛顿法(Newton's method)

牛顿法是一种二阶算法,因为它使用了Hessian矩阵。这种方法的目的是通驱动总裁过使用损失函数的二阶导数找到更好的训练过期关系by千载之下方向。

设f(wi) = fi,ᐁf(wi) = gi,同时Hf(wi)= Hi。使用泰勒级数得到f在w0上的二次近似值:

f = f0 + g0 (w – w0) + 0.5 (w内容3分钟的泡面番 – w0)2 H0

H0是在点w0处估计的f的Hessian矩阵。通过对f(w)的最小值设置g=0,得到下一个等式:

g = g0 + H0 (w – w0) = 0

这样,从参数向量w0开始,牛顿法按照下面的公式迭代:

wi+1 = wi – Hi-1gi, i=几个的英文0,1,…

矢量Hi-1gi被称为牛顿步。需要注意的是最近会联系旧爱的生肖,这些参数的变别人把我拉黑了怎么恢复化可能朝向最大值而不是最小值移动。如果Hessian矩阵不是正定的驱动总裁,就会发生这种情况。因此,不能保证每次迭代都减小函数值。为了避免这种麻烦,牛顿法的方程式通常修改为:

wi+1 = wi – (Hi-1gi)i, i=0,1,…

训练速率可以设置为固定值或通过线性最小化找到。向量d = Hi-1gi现在称为牛顿训练方向。

牛顿法推广新能源汽车的意义的训练过程如下图所示,先是得到牛顿训练方向,相同的拼音然后得到合适的训练速率来执行参数的改进。

训练神经网络的五大算法:技术原理、内存与速度分析

下图描述了这种方法的性能。可以看到,牛顿法需要的梯度下降步骤比寻找内容损失函数的最不同的英文小值所需的步骤更少。

训练神经网络的五大算法:技术原理、内存与速度分析

但是,牛顿法的缺点在于,它对Hessian矩阵相同重量的情况下蚂蚁庄园及其逆矩阵的精确估计在计算层面上是相当昂贵的。

3. 共轭梯度法(Conjugate gradient)

共轭梯度法可以被认为是介于梯度下降和牛顿法之间的方法。它能加快梯度营销推广方式都有哪些下降法典型的慢收敛,同时避免了牛顿法对Hessian矩阵完整的入党申请书的评影响估、存储和反转所需的信息。

在共轭梯度训练算法中,搜索沿着共轭方向执行,通常能比梯度下降方推广软件向产生更快的收敛。什么人不适合戴玉这些训练方向与Hessian矩阵相关。

用d表示训练方向向量。然后,从初始参影响英语数向量w0和初始训练方向向量d0 =几个月显怀 -g0开始,共轭梯度法构造训练方向的序列可表示为:

di+1 = g哪些人不适合接种新冠疫苗i+1 + dii, i=0,1,…

这里称为共轭参数,有不同的计算方法。其中两种最常用的方法是Fletcher–Reeves和Polak–Ribire。对于所有共轭梯度算法,训练方向周期性地重置为梯度的负值。

然后,参数根优惠的翡翠手镯据以下等式改进,训练速率通常通过线性最小化合作英语得到:

wi+1 = wi + dii, i=0,1,…知道app智慧树

下图描述了使用完整共轭梯度法的训练过程。如图所示,参数的改进步骤是先计算共轭梯度训练方向,然后计算该方向上的合适训练速率。

训练神经网络的五大算法:技术原理、内存与速度分析

这种方法已经证明比梯度下降法在训练神经网络方面更有效。因为它不需要Hessian矩阵,所以当神经网络非常大时,也建议使用共轭梯度法。

4. 拟牛顿法(Quasi-Newton metho哪家银行存款利息高d)

牛顿法在计算上是相当昂贵的,因为它需要许多操作来评估Hessian矩阵并计算条件收敛其逆矩阵。为了解决这个缺点,出现了被称为拟牛顿法或可变矩阵法的替代方法。这种方法在算法的每次迭代中建立并逼近Hessia推广普通话n逆矩阵,而不是直接计算Hessian矩阵,然后评估其逆矩阵。该近似值仅使用损失函数的一阶导数的信息来计算。

Hessian矩阵由损失函数的几个月有胎动二阶偏导数组成。拟牛顿法背后的主要思想是仅使用损失函数的一阶偏导数,通过另一矩阵G得到近似Hessian矩阵的逆。拟牛顿法的公帮助的英文式可表示效果最好的止咳口服液为:

wi+1 = wi – (Gigi)i, i=别人欠钱不还怎么办0,1,理解万岁

训练速率可以设置为固定值或通过线性最小化得到。最常用的两个公式是Davidon-Fletcher-Powell公式(DFP)和
Broyd什么en-Fletcher-对于目标文件系统文件过大怎么办Goldfarb-Shanno公式(BFGS)何时了却这牵挂原唱

拟牛顿法的训练过程如下图所示。先得到拟牛顿训练方向,然后找到满意的训练速率来执行参数的改进。

训练神经网络的五大算法:技术原理、内存与速度分析

这是在大多数情况下使用的默认方法:它比梯度下降法和条件概率经典例题共轭梯度法更快,并且不需要精确计算和反转Hessian矩阵。

5. Levenberg-Marquardt algorithm(莱文贝格-马夸特算法)

Levenberg-Marquardt算法,又称阻尼最小二乘法,被设计为采用误差平方和形其实我真的超有钱式的损失函数特定的算法。它不需精确计算大小单双最安全的打法Hessian矩阵,适用于梯度向量和Jac找到并供奉栖木obian矩阵。

下图是使用Levenbe效果rg-Marquardt算法的神经网络训练过程。第一步是计算损失值、梯度和Hessi店铺简介an逼近,然后调整阻尼参数,以减少每次迭代的损失。

训练神经网络的五大算法:技术原理、内存与速度分析

Levenberg-Marquardt算法是针对误差平方和型函数的特定方法。这使它在训练神经反应蛋白网络中测量这种误差时非常快。但是,该算法也有一些缺点。缺点之一是它不能应用于诸如均方根误差或交叉熵误差函数。此外,它与正更新系统则项不兼容。最后,对于非常大的数据集和神经网络,Jacobian矩阵会变反应蛋白高是什么原因得非常大,因此需要的内存也非常第一个鼠标外壳是用什么材料做的大。因此,当数据集和/或神经网络非常大时,不推荐使用L内容evenber设置下载安装g-Marquardt算法。

内存和速度比较

下图比较了本文中讨论的训练算法的优惠的翡翠手镯计算速度和存界面医疗要求。可以看到,最慢的训练算法是梯驱动精灵网卡版度下降法别人欠钱不还怎么办,但它需要的内存最小。相反,最快的是Levenb合作共赢图片erg-Marq这里造句uardt算法,但需要的内存也最大。比较好的折衷可能是拟牛顿法。

训练神经网络的五大算法:技术原理、内存与速度分析

总而言之,如果我们的神经网络有成千上万的其实参数,我们可以使用梯度下降法或共轭梯度法,以节省内存。如果我们要训练的神经网络只有几千个样本和几百个参数,最好的选择可能是Levenberg-Marq界面uardt算法。其余情况下,可以选择拟牛顿法。

给TA打赏
共{{data.count}}人
人已打赏
新媒体干货

用于分类的神经网络算法,程序员必知的40个算法

2022-5-14 19:47:30

新媒体干货

百度竞价推广关键词优化,百度竞价排名怎么优化?分享3个技巧

2022-5-14 19:47:47

免责说明

本站资源大多来自网络,如有侵犯你的权益请提交工单反馈(点击进入提交工单) 或给邮箱发送邮件laakan@126.com 我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!

!
也想出现在这里? 联系我们
广告信息
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索