TensorFlow中的梯度下降函数的疑问

一段利用TensorFlow学习y=ax函数,其中a=10:

import tensorflow as tf
sess = tf.Session()

a = tf.Variable(tf.constant(0.))
x_val = 5.
x_data = tf.placeholder(dtype=tf.float32)
multiplication = tf.multiply(a, x_data)
loss = tf.square(tf.subtract(multiplication, 50.))
init = tf.global_variables_initializer()
sess.run(init)
my_opt = tf.train.GradientDescentOptimizer(0.01)
train_step = my_opt.minimize(loss)
print('Optimizing a Multiplication Gate Output to 50.')
for i in range(10):
    sess.run(train_step, feed_dict={x_data: x_val})
    a_val = sess.run(a)
    mult_output = sess.run(multiplication, feed_dict={x_data: x_val})
    print(str(a_val) + ' * ' + str(x_val) + ' = ' + str(mult_output))


打印的结果如下
Optimizing a Multiplication Gate Output to 50.
5.0 * 5.0 = 25.0
7.5 * 5.0 = 37.5
8.75 * 5.0 = 43.75
9.375 * 5.0 = 46.875
9.6875 * 5.0 = 48.4375
9.84375 * 5.0 = 49.2188
9.92188 * 5.0 = 49.6094
9.96094 * 5.0 = 49.8047
9.98047 * 5.0 = 49.9023
9.99023 * 5.0 = 49.9512

但是按照梯度下降函数,第一次计算出来的a_val应该是2.5才对:

a := a + alpha (y - a*x)x
= 0 + 0.01 ( 50 - 0 * 5) 5 = 2.5

但是从输出的结果看第一步完后a=5,感觉TensorFlow的梯度下降函数被改成了
a := a + 2 * alpha (y -a*x)x, 这样第二步a才会变成7.5

求解答

1

2个回答

对平方差求导,指数项下来就是那个2

1
Forrest_Chen
蓝阳 回复silent56_th: T-T 对呀。。。感谢感谢
一年多之前 回复
silent56_th
silent56_th 回复蓝阳: loss是你设定的吧,loss = tf.square(tf.subtract(multiplication, 50.))这句
一年多之前 回复
Forrest_Chen
蓝阳 你好。我木有找到资料,但是也觉得是你说的这样了。吴恩达的机器学习课程中提到的梯度下降使用的函数是J(θ)=1/2*(h(x)-y)^2,求导完就是(h(x)-y)*x,也就得到我所认为的a := a + alpha (y - a*x)x。如果函数是J(θ)=(h(x)-y)^2的话,貌似就是TensorFlow的梯度下降,计算公式就是a := a + 2 * alpha (y -a*x)x了。
一年多之前 回复
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
TensorFlow - 解释 梯度下降算法(gradient descent)
TensorFlow - 解释 梯度下降算法(gradient descent)nnflyfishnn给定训练数据集和损失函数,希望找到对应的 θ 使得损失函数 J(θ) 最小。 nn假设函数(hypothesis function) n用数学的方法描述自变量 x 和因变量 y 之间的关系 n n数据集(dataset) n样本(example):一个 feature 和对应的 label 数据
Tensorflow实现梯度下降各种方法
参考:利用 tf.gradients 在 TensorFlow 中实现梯度下降nnnnnn1、不使用Tensorflow任何梯度下降方法n2、使用tf.gradients实现梯度下降n3、使用Tensorflow内置优化器n3.1 minimizen3.2 compute_gradients与apply_gradientsn3.3 compute_gradients与apply_gradients...
线性回归、梯度下降算法与 tensorflow
举个栗子考虑一个二手房交易记录数据集. 已知房屋面积,卧室数量和交易价格: n n根据这个数据集,要求我们估算当前某个给定房屋价格. 我们应该怎么做?线性回归回归就是根据已知数据来预测另一个数值型数据的目标值. 假设特征和结果满足线性关系: nh(x)=w0+w1x1+w2x2 h(x) = w_0 + w_1x_1 + w_2x_2 n其中 w 为权重. 假设 x0x_0 为1, 则上面公式也可
tensorflow 梯度下降方法小结
最一般的就是梯度下降。ntrain = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(cost)nn以下是除梯度下降之外可选的方法:ntf.train.AdadeltaOptimizerntf.train.AdagradOptimizerntf.train.AdagradDAOptimizerntf.train.Mome...
2.001 用Tensorflow的梯度下降法求二次函数的极小值
梯度下降法见7.001 梯度下降法rn假设二次函数为f(x)=x^2+y^2,显然,这个函数的极小值在原点,极小值为零,那么如何利用tensorflow求解呢?rn1、确定输入rn没具体的输入,非得有的话,就是(x, y)的初始值rn2、确定输出rnf(x)=x^2+y^2rnrn3、确定损失rn我们要求f的最小值,因此f本身可以作为损失rn4、优化器选择rn如题要求,梯度下降法rn代码如下rnr
tensorflow中的梯度下降函数
tensorflow中的梯度下降函数如下:     在训练过程中先实例化一个优化函数如tf.train.GradientDescentOptimizer,并基于一定的学习率进行梯度优化训练。                        optimizer = tf.train.GradientDescentOptimizer(learning_rate)       接着使用一个minimize...
tensorflow入门一:tensorflow实现梯度下降
import tensorflow as tfnnimport matplotlib.pyplot as pltnnimport numpy as npnn#构建数据npoints_num = 100nnvectors = []nn#用numpy的正态随机分布函数生成100个点n#这些点的坐标值对应线性方程 y = 0.1*x +0.2nnfor i in range(points_num):...
tensorflow 梯度下降
import tensorflow as tfnimport numpy as npnimport matplotlib.pyplot as pltnfrom mpl_toolkits.mplot3d import Axes3Dnn# LR = 0.1nLR = .1nREAL_PARAMS = [1.2, 2.5]nINIT_PARAMS = [[5, 4],n [5...
tensorflow学习笔记(3)梯度下降法进行曲线拟合和线性回归
参考:nhttps://www.tensorflow.org/get_started/get_startednhttp://jorditorres.org/research-teaching/tensorflow/first-contact-with-tensorflow-book/first-contact-with-tensorflow/#cap1
Tensorflow深度学习笔记(三)-TensorFlow基本应用(梯度下降法)
本文主要引入一个简单的示例来阐述Tensorflow的应用。先来一段程序,它是采用梯度下降法来训练数据。import tensorflow as tfnimport numpy as np n#numpy库为数学计算库,若导入失败,请先安装(pip install numpy)#使用numpy随机产生100个随机点nx_data=np.random.rand(100)ny_data = x_dat
Python使用tensorflow中梯度下降算法求解变量最优值
TensorFlow是一个用于人工智能的开源神器,是一个采用数据流图(data flow graphs)用于数值计算的开源软件库。数据流图使用节点(nodes)和边线(edges)的有向图来描述数学计算,图中的节点表示数学操作,也可以表示数据输入的起点或者数据输出的终点,而边线表示在节点之间的输入/输出关系,用来运输大小可动态调整的多维数据数组,也就是张量(tensor)。TensorFlow可以在普通计算机、服务器和移动设备的CPU和GPU上展开计算,具有很强的可移植性,并且支持C++、Python等多种
Tensorflow梯度下降常用的常用优化方法
                    Tensorflow梯度下降常用的常用优化方法1.tf.train.exponential_decay() 指数衰减学习率:#tf.train.exponential_decay(learning_rate, global_steps, decay_steps, decay_rate, staircase=True/False):n#指数衰减学习率n#lea...
tensorflow 2.0 随机梯度下降 之 函数优化实例
6.2 Himmelblau 函数优化Himmelblau 函数Minima 四个最小值点打印观测梯度下降nHimmelblau 函数nf(x,y)=(x2+y−11)2+(x+y2−7)2f(x,y)=(x^2+y-11)^2+(x+y^2-7)^2f(x,y)=(x2+y−11)2+(x+y2−7)2nnnMinima 四个最小值点nnf(3.0,2.0)=0.0f(3.0, 2.0) = 0...
利用 tf.gradients 在 TensorFlow 中实现梯度下降
作者:chen_h n微信号 & QQ:862251340 n微信公众号:coderpai n简书地址:http://www.jianshu.com/p/13e024c8ea44我喜欢 TensorFlow 的其中一个原因是它可以自动的计算函数的梯度。我们只需要设计我们的函数,然后去调用 tf.gradients 函数就可以了。是不是非常简单。接下来让我们来举个例子,具体说明一下。使用 Tensor
tensorflow中实现自动、手动梯度下降:GradientDescent、Momentum、Adagrad
tensorflow中提供了自动训练机制(见nsorflow optimizer minimize 自动训练和var_list训练限制),本文主要展现不同的自动梯度下降并附加手动实现。nnnnlearning rate、step、计算公式如下:nn在预测中,x是关于y的变量,但是在train中,w是L的变量,x是不可能变化的。所以,知道为什么weights叫Variable了吧(强行瞎解释一发)...
随机梯度下降法和最小二乘法的TensorFlow实现
1.随机梯度下降法(SGD)nn随机梯度下降法是用来求参数的优化算法,具体算法不过多阐述,此处采用线性拟合来实现SGD,同时使用TensorFlow进行计算,具体思路注释写的较为清楚,直接附上代码:nnnimport tensorflow as tfnimport numpy as npnimport matplotlib.pyplot as pltnn#权重nW=0.3n#偏置nb=0.8nnn...
tensorflow的归一化与梯度下降
代码:n# coding=utf-8n# By author MZnnnimport numpy as npnfrom sklearn.datasets import load_bostonnimport tensorflow as tfnfrom sklearn.preprocessing import StandardScalernnn## 从sklearn的数据集中拿出波士顿房价数据nbo...
(二)tensorflow入门之使用tensorflow预测一元一次函数的参数(梯度下降法)
首先需要讲一个东西,优化器Optimizer。我们Optimizer是一个抽象类,我们一般用其子类 GradientDescentOptimizer,一个基于梯度下降的优化器。nGradientDescentOptimizer的初始化函数如下:n__init__(n learning_rate,n use_locking=False,n name='GradientDescent...
梯度上升法,梯度下降法
一个多元函数的梯度方向是该函数值增大最陡的方向。 n例如求二次函数的最小值,这里采用梯度下降法: n梯度下降法的思想:假设现在要求上图中函数f(x)的最小值,先选择一个初始点,下一个点的产生是沿着梯度直线方向(本函数求最小值是沿着梯度负方向,若求最大值则沿着梯度方向)为什么叫梯度上升和梯度下降呢?个人理解是沿着梯度的方向上升(向上走)叫梯度上升,沿着梯度的方向下降(向下走)叫梯度下降。那这里的梯度是
机器学习基础(五十九)—— 高级优化算法(梯度下降、L-BFGS、共轭梯度)
优化算法两大核心,一曰:方向,比如由负梯度方向给出;二曰:步长。n迄今为止,我们的讨论都集中在使用梯度下降法来最小化 J(θ)J(\theta)。如果你已经实现了一个计算 J(θ)\textstyle J(\theta) 和 ∇θJ(θ)\textstyle \nabla_\theta J(\theta) 的函数,那么其实还有更精妙的算法来最小化 J(θ)\textstyle J(\theta)。举
[action] deep learning 深度学习 tensorflow 实战(2) 实现简单神经网络以及随机梯度下降算法S.G.D
在之前的实战(1) 中,我们将数据清洗整理后,得到了'notMNIST.pickle'数据。n本文将阐述利用tensorflow创建一个简单的神经网络以及随机梯度下降算法。nn# These are all the modules we'll be using later. Make sure you can import themn# before proceeding further.
Tensorflow中梯度下降法更新参数值
tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)TensorFlow经过使用梯度下降法对损失函数中的变量进行修改值,默认修改tf.Variable(tf.zeros([784,10]))为Variable的参数。train_step = tf.train.GradientDescentOptimizer(0.01).mi...
TensorFlow 梯度下降线性回归并可视化
python手写模拟梯度下降以2元线性回归为例实现分类器:            线性回归函数:误差函数(损失函数):每次梯度下降参数的变化:使用TensorFlow框架import tensorflow as tfnimport numpy as npnimport matplotlib.pyplot as pltnnndef add_layer(input, in_size, out_size...
tensorflow笔记2:神经网络优化算法一(梯度下降、学习率设置)
目录nn一、预备知识nn二、梯度下降法nn三、神经网络进一步优化——学习率设置nn一、预备知识nn什么是梯度?n假设我们位于黄山的某个山腰处,山势连绵不绝,不知道怎么下山。于是决定走一步算一步,也就是每次沿着当前位置最陡峭最易下山的方向前进一小步,然后继续沿下一个位置最陡方向前进一小步。这样一步一步走下去,一直走到觉得我们已经到了山脚。这里的——下山最陡的方向就是梯度的负方向。因此,梯度下降中,梯...
TensorFlow实战-从梯度下降到Mnist数据集的CNN训练
线性回归#线性回归算法nnimport numpy as npnimport tensorflow as tfnimport matplotlib.pyplot as pltnn#随机生成1000个点,y=0.1x+0.3nnum_points = 1000nvectors_set = []nfor i in range(num_points):n x1 = np.random.normal...
TensorFlow可视化梯度下降/公式调参
本篇博客主要介绍TensorFlow中的可视化梯度下降和参数调参。nn首先是可视化梯度下降,使用的是python中Axes3d模块。nn示例代码:nnnimport tensorflow as tfnimport numpy as npnimport matplotlib.pyplot as pltnfrom mpl_toolkits.mplot3d import Axes3DnnLR = 0.0...
Tensorflow环境下 线性回归(梯度下降)的练手实例(完整源码+说明)
Tensorflow 入门篇-最小二乘法的线性回归算法    本文将借助Tensorflow来实现最小二乘法的线性回归算法。    大体的思路:首先生成随机紊乱的数据集,然后构建线性回归的Graph,最后在Session中迭代train器,得到拟合的参数w和b,最后画出拟合曲线。最终结果如下图所示:1.首先导入三个库import numpy as npnimport tensorflow as t...
mini-batch梯度下降
一、背景nn 传统的梯度下降,每次梯度下降都是对所有的训练数据进行计算平均梯度,这种梯度下降法叫做full-batch梯度下降法。考虑一种情况,当训练数据量在千万级别时,一次迭代需要等待多长时间,会极大的降低训练速度。nn每次训练的使用同一份数据,所以loss的损失函数会是一直下降的,收敛到的是全局最优解。nnnn二、mini-batch梯度下降nn如果选择介于1和最大训练数据量之间的一个bath...
TensorFlow基础之线性回归
线性回归,我们在初中就开始接触了,二维平面给出一些点,用一条直线拟合这些点。但实际情况下,这些点中都会有一些噪点、误差,那么怎么才能找出一条拟合度最好的直线呢?比如下图是y=2x+4的点,随机加入一些误差后怎么才能得到拟合最好的直线。nn                            nn要判断好还是不好,首先要有一个度量指标,其次这个指标可以容易转换成数学运算。这里引出一种方法:最小二乘...
深度学习中的梯度下降优化算法笔记
梯度下降方法是目前最流行的神经网络优化方法,并且现在主流的深度学习框架(tensorflow,caffe,keras,MXNET等)都包含了若干种梯度下降迭代优化器。我们在搭建网络的时候,基本都是拿它们封装好的函数直接用。实际上这些算法在不同情况可能有很大的性能差异,弄清楚它们的原理差异,有助于我们分析。nn参考文章:梯度下降优化方法总结nn nn梯度下降(gradient descent,GD)...
Tensorflow-多层感知机学习与实现
多层感知器(Multilayer Perceptron,缩写MLP)是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(或称处理单元)。一种被称为反向传播算法的监督学习方法常被用来训练MLP。MLP是感知器的推广,克服了感知器不能对线性不可分数据进行识别的弱
梯度下降法快速教程 | 第二章:冲量(momentum)的原理与Python实现
北京 | 深度学习与人工智能研修rn12月23-24日rnrn再设经典课程 重温深度学习阅读全文>rnrnrnrn01rnrn前言rnrnrn梯度下降法(Gradient Descent)是机器学习中最常用的优化方法之一,常用来求解目标函数的极值。rnrnrn其基本原理非常简单:沿着目标函数梯度下降的方向搜索极小值(也可以沿着梯度上升的方向搜索极大值)。rnrnrn但是如何调整搜索的步长(也叫学习
tensorflow 2.0 随机梯度下降 之 梯度下降
6.1 梯度下降梯度含义梯度下降实例优化过程一优化过程二自动求导二阶梯度n梯度nnn导数,derivativennn偏微分,partial derivativennn梯度,gradientn∇f=(∂f∂x1,∂f∂x2,...,∂f∂xn)\nabla f = (\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2},......
02-Tensorflow优化 - 今天搞这个,千发散去。
tensorflow优化第四(今天搞这个,头发急剧减少)优化函数:随机梯度下降法、等等多个 Optimizer(优化器):tf.train.GradientDescentOptimizertf.train.AdadeltaOptimizertf.train.AdagradOptimizertf.train.AdagradDAOptimizertf.train.MomentumOptimizertf...
Tensorflow指数衰减方法设置梯度下降算法的学习率
      通过指数衰减的学习率可以让模型在训练的前期快速接近较优解,又可以保证模型在训练后期不会有太大的波动,从而接近局部最优解。Tensorflow调用tf.train.exponential_decay函数实现指数衰减学习率。global_step = tf.Variable(0)n#通过exponential_decay函数生成学习率nlearning_rate = tf.train.ex...
用TensorFlow来实现梯度下降
本篇我们尝试使用批量梯度下降。nn首先我们将通过手动计算梯度来实现,然后使用TensorFlow的自动扩展功能来使TensorFlow自动计算梯度,最后我们将使用几个TensorFlow的优化器。nn使用梯度下降时,首先要对输入特征向量进行归一化,否则训练会慢很多,可以使用TensorFlow,numpy,sklearn的standardscaler或其他解决方案,下面的代码会假定此规范化已经完成...
01-逻辑回归的代价函数(交叉熵代价函数)以及梯度下降法
1.1 逻辑回归的代价函数nnnn1.2 逻辑回归中的梯度下降法nnnn参考文献 n吴恩达老师Deep Learning课程
(Tensorflow之四)激活函数、交叉熵及优化器
一、激活函数激活函数的主要作用是提供网络的非线性建模能力。如果没有激活函数,那么该网络仅能够表达线性映射,此时即便有再多的隐藏层,其整个网络跟单层神经网络也是等价的。因此也可以认为,只有加入了激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。 那么激活函数应该具有什么样的性质呢?可微性: 当优化方法是基于梯度的时候,这个性质是必须的。 n单调性: 当激活函数是单调的时候,单层网络能够保证
TensorFlow学习(二)——神经网络梯度优化
笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。nn我的公众号为:livandatannnn神经网络相关的内容比较复杂,笔者只能逐一的进行总结,不足之处敬请谅解,如有遗漏,...
笔记 - tensorflow小案例:线性回归(批量梯度下降策略)
import tensorflow as tfnimport numpy as npnfrom sklearn.datasets import fetch_california_housingnfrom sklearn.preprocessing import StandardScalernn# TODO tensorflow 线性回归问题求解 批量梯度下降策略nn"""n思路:nn导包n导数据集...
文章热词 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 数据库课程设计疑问 数据库课程设计疑问

相似问题

1
在tensorflow的使用中,from tensorflow.examples.tutorials.mnist import input_data报错
2
tensorflow当中的loss里面的logits可不可以是placeholder
1
anaconda spyder中运行神经网络训练代码,第二次运行报错变量已存在Variable exists,怎样清除logs日志?
2
用tensorflow跑卷积网络报错:InternalError (see above for traceback): cudnn PoolForward launch failed
0
急求!!!用tensorflow搭了lstm的模型进行负荷预测,求问有没有大佬知道loss值已知很大的原因是什么?
2
图像分类中数据集的问题
2
tensorflow在导入时直接报错,错误37
1
tensorflow gpu 运行时报错 “device_type: "CPU"') for unknown op”
1
请问tensorflow中程序运行完如何释放显存
1
用tensorflow编写损失函数,不知道写的对不对,请大神指点
1
tensorflow中神经网络优化器问题
1
帮忙看一下这个独显配置能不能跑tensorflow?
1
TensorFlow 里面图像分类数据集怎么获得???
1
基于tensorflow的pix2pix代码中如何做到输入图像和输出图像分辨率不一致
1
如何将tfrecord导入自编码器模型中进行训练?
2
tensorflow中placeholder传值的问题
2
如何在tensorflow计算中使显卡满载
1
请问tensorflow或者keras中想在神经网络同一层不同节点中设置不同激活函数该怎么实现?
1
Tensorflow Object Detection API Demo运行报错求?
0
tf.contrib无提示 pycharm中的tensorflow部分模块没有自动补全,如何解决?