Tensorflow|Tensorflow学习笔记----梯度下降
admin
2023-08-16 09:02:13
0


目录

      • 一.梯度(Gradient)的理解:
      • 二.激活函数(Activation Function)及其梯度:
      • 三.损失(Loss)函数及其梯度
      • 四.单输出感知机及其梯度
      • 五.多输出感知机及其梯度

一.梯度(Gradient)的理解:
  • 导数:一维函数沿x轴的变动率;
    偏微分:二维函数沿各个方向的变动率;
    梯度:三维及以上函数沿各个方向的变动率,当函数沿某一方向的值突然变动很大时,它在这个方向的此数梯度就会大;
可以利用梯度来寻找函数的最小值,即寻找全局最优,方法就是从任一点出发,然后重复朝着梯度的反方向(变小的方向?)前进(有可能找到的是局部最小即极小);
  • 公式:θt+1 = θt - a * ?θt
    使用tensorflow计算梯度:
    With tf.GradientTape() as tape:
    [w_grad] = tape.gradient(loss,[w])
二.激活函数(Activation Function)及其梯度:
对于所有的输入加权求和后,还要在激活函数中判断是否到达阈值,到达阈值(被激活)才能进行输出,且输出的信号值是固定的。引入激活函数是为了增加神经网络模型的非线性。常见的激活函数有Sigmoid函数,tanh函数,Relu函数,ELU函数等。这类函数是不可导的,所以不能像普通函数那样求梯度。
Tensorflow|Tensorflow学习笔记----梯度下降
文章图片

Sigmoid函数/Logistic:,函数值被压缩在(0,1),可求导;缺点就是容易造成梯度弥散现象。
Tensorflow|Tensorflow学习笔记----梯度下降
文章图片

Tanh函数: = 2sigmoid(2x)-1,范围在(-1,1)
Tensorflow|Tensorflow学习笔记----梯度下降
文章图片

ReLU函数(Rectified Linear Unit,整流线性单元):,是现在深度学习用得最多的,因为它的倒数非常简单,不会出现梯度弥散和梯度爆炸的情况,而且计算速度很快。
Tensorflow|Tensorflow学习笔记----梯度下降
文章图片

三.损失(Loss)函数及其梯度
MSE(Mean Squared Error):均方差 = Σ(y-y’)2;y’=wx+b。常用于回归问题
求导:d loss/dθ = 2Σ(y-y’) * d y’/dθ
#MSE Gradient x = tf.random.normal([2,4]) #输入:2个simple:[b,4] w = tf.random.normal([4,3]) #把4维降到3维==>最终分为3类 b = tf.zeros([3]) y = tf.constant([2,0])with tf.GradientTape() as tape: tape.watch([w,b]) prob = tf.nn.softmax(x@w+b,axis=1) loss = tf.reduce_mean(tf.losses.MSE(tf.one_hot(y,depth=3),prob))grads = tape.gradient(loss,[w,b]) print(grads[0]) # tf.Tensor( # [[-0.053691040.07968411 -0.02599307] #[-0.0535683-0.01830230.0718706 ] #[-0.07898090.028222490.05075841] #[ 0.08340039 -0.03885455 -0.04454585]], shape=(4, 3), dtype=float32)

Cross Entropy Loss:交叉熵误差,常用于分类算法;交叉熵描述了两个概率分布之间的距离;
  • 常用Softmax回归将神经网络前向传播得到的结果变成概率分布,softmax常用于多分类过程中,它将多个神经元的输出,归一化到( 0, 1) 区间内,因此Softmax的输出可以看成概率,从而来进行多分类。以下为Softmax的公式:
    Tensorflow|Tensorflow学习笔记----梯度下降
    文章图片
#Crossentropy Gradient x = tf.random.normal([2,4]) #输入:2个样本:[b,4] w = tf.random.normal([4,3]) #把4维降到3维==>最终分为3类 b = tf.zeros([3]) y = tf.constant([2,0])with tf.GradientTape() as tape: tape.watch([w,b]) logits = x@w+b loss = tf.reduce_mean(tf.losses.categorical_crossentropy(tf.one_hot(y,depth=3),logits,from_logits=True))grads = tape.gradient(loss,[w,b]) print(grads) # [, ] print(grads[0]) # tf.Tensor([-0.444272550.6398322-0.1955596 ], shape=(3,), dtype=float32)

四.单输出感知机及其梯度
【Tensorflow|Tensorflow学习笔记----梯度下降】单层感知机预测值:y = Σxi * yi + b;它使用Sigmoid来当做激活函数,结点只有输入层、权值、求和、Sigmoid、输出;下面的O表示输出,Oj表示第j个输出,t为目标值。
  • Loss = 1/2 (O10 - t)2,对其j层求导:(O0 - t) O0 (1 - O0)xj0;
#单输出感知机梯度 x = tf.random.normal([1,3]) w = tf.ones([3,1]) b = tf.ones([1]) y = tf.constant([1])with tf.GradientTape() as tape: tape.watch([w,b]) logits = tf.sigmoid(x@w+b) loss = tf.reduce_mean(tf.losses.MSE(y,logits))#本身输出已经在0~1,所以不需要再one_hot encodinggrads = tape.gradient(loss,[w,b]) print(grads) # [, ]

五.多输出感知机及其梯度
与单输出类似,不过有m个加权和,m个输出
  • Loss = 1/2 Σ(O1i - ti)2;对其j层求导:(Ok - tk) Ok (1 - Ok)xj0;
#多输出感知机梯度 x = tf.random.normal([2,4]) w = tf.ones([4,3]) b = tf.ones([3]) y = tf.constant([2,0])with tf.GradientTape() as tape: tape.watch([w,b]) prob = tf.nn.softmax(x@w+b,axis=1) loss = tf.reduce_mean(tf.losses.MSE(tf.one_hot(y,depth=3),prob))grads = tape.gradient(loss,[w,b]) print(grads[0])

相关内容

热门资讯

传... 随着互联网的发展和普及,信息安全与每个人、包括方方面面都息息相关。 每个人都是独立的个体,都必须与社...
高... 如今的职场中,出现了大量的工作软件。 有那么多工作软件肯定是为了盈利而创建的,而且它们肯定是高效的,...
证... 废话作为龙源学院的学生,我深深体会到校园里没有又好又便宜的照相馆的尴尬。 尤其是女孩子,她们甜美的脸...
老... 随着科技的发展,我们的生活也发生了很大的变化。 其中,语音技术的广泛应用尤为引人注目。 在这个数字社...
P... 一张漂亮的护照照片似乎给我们带来了一个很好的机会。 借助照片,您的个人形象立即变得三维。当我们谈论护...
摄... 摄影后期制作数据库摄影教程、PS修图教程、PS插件、素材资源随着交通的发展,汽车的增多,需要驾驶证的...
值... 工欲善其事,必先利其器。 拥有一个好的工具可以让你的工作如鱼得水。 这是真实的! 编辑也是如此。 初...
游... 如今,游戏已经成为很多人茶余饭后打发闲暇时间的主要方式。 无论是《绝地求生》、《英雄联盟》还是《反恐...
中国白银APP指数走势被控制,...   之前的现货电子盘,现如今演变为现货商品订购交易,其实就是将期货盘包装成为现货订购交易。这些商品订...
百... 你喜欢跳舞吗? 明天你会不会看到一首非常适合你心情的歌曲,想要用卡拉OK软件来努力唱歌,就像收集心情...
L... 作为一个还处于发展初期的行业,LED显示屏及配套控制软件也处于百花齐放、百家争鸣的状态——没有统一的...
高... 近年来,随着智能家居装饰、安防产品、消费电子等领域的不断发展,语音播报芯片越来越受到人们的关注。 在...
户... 目前,户外LED显示屏应用已经成熟,但户外LED显示屏控制软件还不够丰富。 很多人都有过使用不同LE...
W... W3学校W3school是一个非常好的Web开发和学习网站。 其内容几乎涵盖了Web开发所需的所有技...
好... 有哪些好用的音频变速软件? 如今,随着自媒体的发展语音广播软件,使用各种音频软件以不同的速度收听音频...
华银app白银现货投资亏损的钱...   上海华通白银国际交易中心有限公司—华银APP交易平台,并非一家正规的期货交易平台,华通白银公司并...
手... 日常生活中,很多“米霸”都喜欢用手机唱卡拉OK,但很多人可能发现了:我在卡拉OK房唱歌,显然效果很好...
轻... 圣诞节马上就要到了。 当你走亲访友、和同学聚会的时​​候禅道项目管理软件教程,你还记得你的项目吗? ...
分... 我分享了我每天使用的 6 个在线网站。 所有这些都非常实用。 各种类型的文档转换、文件传输、娱乐听音...
金... 很多同学都在烦恼该用什么财务软件。 经过比较再比较,用友软件和金蝶哪个财务软件更好? 对此小编无法给...