Python、深度学习、梯度下降法示例

     2023-04-12     234

关键词:

【中文标题】Python、深度学习、梯度下降法示例【英文标题】:Python, Deep learning, gradient descent method example 【发布时间】:2018-10-03 07:34:02 【问题描述】:

我正在研究gradient descent 方法与从头开始深度学习。在本书的例子中,有一些代码很难理解。这是代码。

def gradient_descent(f, init_x, lr = 0.01, step_num = 100):
    x = init_x
    x_hist = []
    for i in range(step_num):
        x_hist.append(x) # plot with x_hist
        grad = numerical_gradient(f, x)
        x -= lr * grad
    return x, x_hist

def function_2(x):
    return x[0]**2 + x[1]**2

init_x = np.array([-3.0, 4.0])
x, x_hist = gradient_descent(function_2, init_x, lr = 0.1, step_num = 100)

我正在尝试绘制x_hist 以查看“x”的减少。但是当我打印x_hist 时,它是这样的。

x_hist
[array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10]),
array([-6.11110793e-10,  8.14814391e-10])]

如果我将x_hist.append(x) 更改为x_hist.append(x.copy()),我可以解决这个问题。 不幸的是,我不知道为什么这是不同的。谁能告诉我它们之间的区别?(对不起英语)

【问题讨论】:

这将对您有所帮助:***.com/questions/5244810/… 【参考方案1】:

您的列表 x_hist 包含对 x 的引用,而不是值。所以通过 x_hist.append(x.copy()) 来修正是个好办法。

【讨论】:

深度学习笔记:sgdmomentumrmspropadam优化算法解析

...三、RMSprop优化器四、Adam优化器理论系列:    深度学习笔记(一):卷积层+激活函数+池 查看详情

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

梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法。本文旨在让你对不同的优化梯度下降法的算法有一个直观认识,以帮助你使用这些算法。我们首先会考察梯度下降法的各种变体,然... 查看详情

深度学习中的优化器原理总结(经典+前沿)

目录前言一、梯度下降的思想与批梯度下降法1.随机梯度下降法2.标准梯度下降法3.批梯度下降法二、经典的五类优化器1.SGD2.SGDM(SGDwithmomentum)3.Adagrad4.RMSProp5.Adam三、前沿方法1.AMSGrad2.AdaBound3.SWAT4.CyclicalLR/SGDR/One-cycleLR5.RAda... 查看详情

[人工智能-深度学习-7]:数据流图正向传播导数梯度梯度下降法反向链式求导,非常非常重要!!!

作者主页:文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120258939目录第1章数据流图与正向传播 1.1数据流图(包括原预测函数、正向传播、损失函... 查看详情

简单例子说明梯度下降momentum和学习率衰减

【梯度下降法】一:快速教程、Python简易实现以及对学习率的探讨【梯度下降法】二:冲量(momentum)的原理与Python实现【梯度下降法】三:学习率衰减因子(decay)的原理与Python实现 查看详情

梯度下降是什么

梯度是一个偏微分向量,有大小、有方向   【梯度下降-探寻最优解】深度学习梯度下降法可视化讲解高中生都说懂!激活函数与Loss的梯度(深度学习/感知机/链式法则/随机梯度下降)_哔哩哔哩_bilibili  查看详情

深度学习入门之sgd随机梯度下降法(代码片段)

...只前进一定距离的简单方法。现在,将SGD实现为一个Python类(为方便后面使用,将其实现为一个名为SGD的类)。classSGD:def__init__(self,lr=0.01):self.lr=lr#学习率defupdate(self,params,grads):forkeyinparams.keys():params[key]-=se... 查看详情

深度卷积网络原理—实例讲解梯度下降法参数更新过程

 首先,先回顾梯度下降公式:(下面利用均方差MSE损失来进行演示)      梯度下降的训练公式:  接下来,按照上面的公式进行求最大值的案例讲解 令,学习速率为0.1,初始化参数w1=0,w2=0... 查看详情

深度学习多损失函数融合的好处

参考技术A简单快捷代算。梯度下降法又称最速下降法,是求解无约束最优化问题的一种最常用的方法,在对损失函数最小化时经常使用。梯度下降法是一种迭代算法。 查看详情

hulu机器学习问题与解答系列|二十四:随机梯度下降法

...吧。 今天的内容是【随机梯度下降法】 场景描述深度学习得以在近几年迅速占领工业界和学术界的高地,重要原因之一是数据量的爆炸式增长。如下图所示,随着数据量的增长,传统机器学习算法的性能会进入平台期,... 查看详情

深度学习优化算法之动量法[公式推导](mxnet)(代码片段)

我们在前面的文章中熟悉了梯度下降的各种形态,深度学习优化算法之(小批量)随机梯度下降(MXNet),也了解了梯度下降的原理,由每次的迭代,梯度下降都根据自变量的当前位置来更新自变量,做自... 查看详情

《python深度学习》第二章笔记(代码片段)

《Python深度学习》第二章笔记1.第一个神经网络示例2.张量与张量运算张量(输入网络的数据存储对象)张量运算(层的组成要素)逐元素运算广播张量点积张量变形3.神经网络如何通过反向传播与梯度下降进行学... 查看详情

[人工智能-深度学习-15]:神经网络基础-常见优化器optimizer及其算法-梯度下降法系列

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120589554目录第1章什么是优化算法1.1机器学习模型与优化算法在机器学习... 查看详情

机器学习梯度下降法(超详解)

...和进一步优化5.1算法比较5.2梯度下降优化算法前言在机器学习】线性回归的损失和优化中介绍了最基本的梯度下降 查看详情

深度学习的损失函数优化方法(代码片段)

目录1梯度下降算法2反向传播算法(BP算法)2.1前向传播与反向传播2.2链式法则2.3反向传播算法3梯度下降优化方法3.1动量算法(Momentum)3.2指数加权平均3.3动量梯度下降算法3.4AdaGrad3.5RMSprop3.6Adam4学习率退火4.1分段... 查看详情

梯度下降法介绍-黑马程序员机器学习讲义

学习目标知道全梯度下降算法的原理知道随机梯度下降算法的原理知道随机平均梯度下降算法的原理知道小批量梯度下降算法的原理上一节中给大家介绍了最基本的梯度下降法实现流程,常见的梯度下降算法有:全梯度... 查看详情

[机器学习入门篇]-梯度下降法

梯度下降法的作用是求到一种方案,使得拟合过程中的损失函数最小(结果可能只为局部最优值),除此之外还有最小二乘法等方法。关于此方法详细的阐述参见:这里梯度下降法初始点的选取分为随机选取初值和自动求取初值两... 查看详情

神经网络基础部件-优化算法详解(代码片段)

前言所谓深度神经网络的优化算法,即用来更新神经网络参数,并使损失函数最小化的算法。优化算法对于深度学习非常重要,如果说网络参数初始化(模型迭代的初始点)能够决定模型是否收敛,那优化算法的性能则直接影响... 查看详情