
梯度
文章平均质量分 88
梯度
u013250861
这个作者很懒,什么都没留下…
展开
-
BP算法详解之链式法则
我们知道,神经网络的学习本质,就是找到网络中神经元之间的最佳连接权值。如何快速找到这个最佳权值,是有学问的。通常我们利用数值微分来计算神经网络权值参数的梯度,用梯度下降等策略来确定调参的方向。这个策略自然没有错。但对于读者而言,理解是大有困难。理解这个过程,通常由两个方法,第一种方法就是基于数学公式,这个要求你的数学基础比较好。第二种方法,就是前面(即前向传播)用到的策略,利用计算图(computational graph)来形象说明。计算图是把计算的过程用图形表示出来。原创 2024-02-17 16:36:43 · 1817 阅读 · 0 评论 -
神经网络中利用矩阵进行反向传播运算的实质
训练神经网络模型时,为了优化目标函数,我们需要不断地迭代更新网络中的权值,而这一过程是通过反向传播算法(Backpropagation,BP)实现的。在神经网络中,训练样本和权值参数都被表示为矩阵的形式,因为这样更利于反向传播的计算。之前学习反向传播算法的时候一直有误解,认为它需要用到大量的矩阵求导,但仔细理解后发现实际上用到的还是标量的求导,只不过用矩阵表示出来了而已。原创 2024-01-30 00:10:49 · 1186 阅读 · 0 评论 -
模型参数、梯度更新步骤【初始化参数、前向传播得到模型输出值、计算输出值与目标值之间损失Loss、反向传播梯度下降更新参数 】
计算图:通过图的方式来描述函数的图形已知J(a,b,c)=3(a+bc),令v=bc,u=a+vJ(a,b,c) = 3(a+bc),令v = bc, u=a+vJ(a,b,c)=3(a+bc),令v=bc,u=a+v,求a,b,c各自的偏导数。令:a+bc=u,即:J=3udJda=dJdu×duda=3×1dJdb=dJdu×dudv×dvdb=3×1×cdJdc=dJdu×dudv×dvdc=3×1×b\begin{aligned} 令:&a+bc=u, 即: J = 3u\\ \frac{原创 2020-12-17 23:11:11 · 2279 阅读 · 0 评论 -
Pytorch中的梯度累加【在实验时,由于GPU显存限制,遇到batch_size不能再增大的情况。为解决该问题,使用梯度累加方法】
在实验时,由于GPU显存限制,遇到batch_size不能再增大的情况。为解决该问题,使用梯度累加方法。不进行梯度累加的方法如下:使用梯度累加:原本batch size为32,使用梯度累加,设置accumulation_steps=4,此时只需将batch_size设置为8,就能达到之前的效果。参考资料:Pytorch中的梯度累加...原创 2022-06-12 14:28:31 · 544 阅读 · 0 评论 -
人工智能-损失函数-优化算法:导数(标)、偏导数(标;函数在某一点处沿某一坐标轴正方向的变化率)、方向导数(标;函数在某一点处某一方向的变化率)、梯度(矢;函数在某一点处变化率最大的方向)、梯度下降法
一、导数(一元函数)导数,反映的是函数 y=f(x)y=f(x)y=f(x) 在某一点处沿xxx轴正方向的变化率。公式定义如下:再强调一遍,导数f’(x)f’(x)f’(x)是函数f(x)f(x)f(x)在xxx轴上某一点处沿着xxx轴正方向的变化率。直观地看,也就是在xxx轴上某一点处,如果f’(x)>0f’(x)>0f’(x)>0,说明f(x)f(x)f(x)的函数值在xxx点沿xxx轴正方向是趋于增加的;如果f’(x)<0f’(x) < 0f’(x)<0,.原创 2021-09-27 11:17:23 · 937 阅读 · 0 评论 -
人工智能-损失函数-优化算法:梯度下降【SGD-->SGDM(梯度动量)-->AdaGrad(动态学习率)-->RMSProp(动态学习率)-->Adam(动态学习率+梯度动量)】、梯度下降优化技巧
批量梯度下降法(Batch Gradient Descent,简称BGD)是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新,它的目的是得到一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果样本数目m很大,这种方法的迭代速度很慢!随机梯度下降算法算法是从样本中随机抽出一组,训练后按梯度更新一次,然后再抽取一组,再更新一次,在样本量及其大的情况下,可能不用训练完所有的样本就可以获得一个损失值在可接受范围之内的模型了。其思想是:每次迭代 使用。原创 2020-12-16 00:06:44 · 1560 阅读 · 0 评论 -
人工智能-损失函数-优化算法:普通梯度下降算法【BGD(批量梯度下降法)、SGD(随机梯度下降)、MBGD(小批量梯度下降法)】
一、损失函数假设损失函数 J(θ)J(\textbf{θ})J(θ) 使用平方损失函数J(θ)=12m∑i=1m[hθ(xi)−yi]2\begin{aligned}\color{Violet}{J(\textbf{θ})=\frac{1}{2m}\sum_{i=1}^m[h_{\textbf{θ}}(\textbf{x}_i)-y_i]^2}\end{aligned}J(θ)=2m1i=1∑m[hθ(xi)−yi]2其中:mmm 为样品数量xi\textbf{x}_ixi 为样品原创 2020-12-16 22:00:35 · 767 阅读 · 1 评论 -
CV-CNN-2015:ResNet【残差网络,改善深层网络难训练问题:梯度消失或爆炸导致性能退化】【Bottleneck:用1×1核卷积(减小通道数来降维)、3×3核卷积(不变维)、用1×1核升维】
《原始论文:Deep Residual Learning for Image Recognition》前面描述了一个实验结果现象,在不断加神经网络的深度时,模型准确率会先上升然后达到饱和,再持续增加深度时则会导致准确率下降,示意图如下:那么我们作这样一个假设:假设现有一个比较浅的网络(Shallow Net)已达到了饱和的准确率,这时在它后面再加上几个恒等映射层(identity mapping,也即 y=xy=xy=x,输出=输入),这样就增加了网络的深度,并且起码误差不会增加,也即更深的网络不应该带来原创 2021-08-31 22:05:38 · 1811 阅读 · 0 评论 -
TensorFlow2-实战(一):回归问题(手写梯度下降,不用任何模型)、步骤:【初始化参数】-->【循环(①计算Loss;②计算梯度;③利用梯度下降来更新参数)】
import numpy as np# y = wx + bdef compute_error_for_line_given_points(b, w, points): totalError = 0 for i in range(0, len(points)): x = points[i, 0] y = points[i, 1] # computer mean-squared-error totalError += (y原创 2022-04-14 22:07:21 · 434 阅读 · 0 评论 -
人工智能-损失函数-优化算法:梯度下降法的背后原理【一阶泰勒展开】
一、梯度下降法梯度下降算法的思想,它将按如下操作达到最低点:明确自己现在所处的位置。找到相对于该位置而言下降最快的方向。沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低。回到第一步。终止于最低点。从数学角度来看,多元函数的梯度方向是函数增长最快的方向,那么梯度的反方向就是函数减少最快的方向。以二元函数为例:z=f(x,y)z = f(x,y)z=f(x,y)现在确定一个点 (x0,y0)(x_{0},y_{0})(x0,y0),这个点是水平面上的,即在 xo原创 2021-10-29 22:44:06 · 944 阅读 · 1 评论