tensorflow学习

本文介绍了TensorFlow中的关键概念,如GlobalAveragePooling2D、Dropout和图片处理技术,重点讲解了不同类型的激活函数(阶跃、Sigmoid、Tanh、ReLU、LeakyReLU和Softmax),以及它们在神经网络中的应用场景和优缺点。
摘要由CSDN通过智能技术生成

tensorflow笔记

layers.GlobalAveragePooling2D()

主要是降维

Dropout

主要为减少参数,提高训练性能

图片处理

图片处理

layers.MaxPooling2D(pool_size=2,strides=2), # 高宽各减半的池化层

Softmax函数

将结果差距拉大,保证稳定性

四、激活函数

在第一节曾经介绍到,每个神经元要传播到下一层时,都需要通过激活函数,我们可以把这看成是输入信号的加权和转化为输出信号的的一个过程,它为神经元提供了模拟非线性数据集所必需的非线性特征。正因为大部分神经元之间的数据都存在非线性关系,所以激活函数都非线性的,要不然隐藏层就会失去其意义。最常见的激活函数有阶跃激活函数、Sigmoid 激活函数、ReLU激活函数、Tanh 激活函数、Softmax激活函数等,下面将一一介绍。

4.1 阶跃激活函数

这是最简单的一种激活方式,它以0为临界时,当输入值 input 小于0 时返回 0,大于 0 时返回

Sigmoid 激活函数

sigmoid 的输出函数由 f(x)=1/(1+exp(-x)) 确定,在tensorflow 中可以通过 tf.sigmoid 调用,由于形状很像 S,因此命名为 sigmoid 。相比起阶跃激活函数,sigmoid 在0~1之间值过渡显得更平滑,但在两个边缘值梯度都无穷接近于 0,这非常容易造成 “梯度消失”,因此为优化训练增加了难度。此外 sigmoid 函数输出值在 0 到 1 之间,其均值为0.5,不符合神经网络内数值期望为 0 的设想。一般情况 sigmoid 用于隐藏层的激活或输出层的回归。

在这里插入图片描述

4.3 Tanh 激活函数

tanh 双曲正切激活函数公式由 f(x)=(1-exp(-2x)) / (1+exp(-2x)) 确定,在tensorflow 中可以通过 tf.tanh 调用。它相当于 sigmoid 的改良版,其输入值从 -1 到 1 之间均值为0,这正解决了 sigmoid 均值为0.5 的缺陷,并且它的切线比 sigmoid 更陡峭。然而 tanh 的两个边缘值梯度也是无穷接近于 0, 并不能解决 sigmoid “梯度消失” 的问题。一般情况 tanh 会用于隐藏层的激活或输出层的回归。

在这里插入图片描述

4.4 ReLU激活函数

ReLU 激活函数是分段线性函数,它能在多层激活时捕获非线性特征,在tensorflow 中可以通过 tf.nn.relu 调用。在输入为正数的时候,其输出值为无穷大,弥补了sigmoid函数以及tanh函数的梯度消失问题。而且 ReLU 函数只有线性关系,因此不管是前向传播还是反向传播,计算速度都比 sigmod 和 tanh 要快。ReLU 最大的问题在于当输入值小于0 时,梯度一直为0,因此产生梯度消失问题。尽管如此,ReLU 也是最常用的激活函数之一,常用于隐藏层的激活和输出层的回归。

在这里插入图片描述

4.5 Leaky ReLU 激活函数

Leaky ReLU 激活函数是 ReLU 的改良版,在 tensorflow 中可以通过 tf.nn.leaky_relu 调用。它是为了改善 ReLU 输入值小于0 时,梯度一直为 0 的问题而设计的。在 Leaky ReLU 中当输入值小于0时,输出值将为 ax,因此不会造成神经元失效。当神经元输出值有可能出现小于0的情况,就会使用 Leaky ReLU 输出,常用于隐藏层的激活和输出层的回归。
在这里插入图片描述

4.6 Softmax 函数

Softmax 的计算公式如下,在tensorflow中可直接通过 tf.nn.softmax 调用,一般用作输出层的分类激活函数,它表示每个分类的输出概率,所有输出概率合共为 1。

复制代码
1 def func(x):
2 return np.exp(x)/np.sum(np.exp(x))
3
4 x=np.linspace(-5,5,50)
5 y=func(x)
6 plt.xlabel(‘input’)
7 plt.ylabel(‘output’)
8 plt.title(‘Softmax Activation Func’)
9 plt.plot(x,y)
10 plt.show()
复制代码

到此归纳总结一下阶跃激活函数、Sigmoid 激活函数、Tanh 激活函数、ReLU激活函数、Leaky ReLU 激活函数、Softmax 函数和恒等输出的应用场景。一般阶跃激活函数只用于简单的二分类输出,Sigmoid 和 Tanh 激活函数用于隐藏层的输出或输出层的回归,但两者皆会存在输出梯度消失的风险。ReLU 和 Leaky ReLU 激活函数可用于隐藏层的输出或输出层的回归,它能消除梯度消失的风险,而且性能高。当输出值为正值时可使用 ReLU,当输出值存在负值的可能时使用 Leaky ReLU 。而在输出层的分类计算可使用 Softmax 函数,简单分类也可用 Sigmoid 逻辑回归,在输出层的回归计算可使用恒等函数,即对输入信息不作任何修改直接输出。

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值