lstm可否不用tanh激活函数

2024-05-08 07:26

1. lstm可否不用tanh激活函数

LSTM的三个门输出数字和向量的情况都有。门(input,forget,output)输出的维度和cell状态的维度一致即可。也就是说三个门的输出分别控制被控制向量(cell input,cell(t-1),cell(t))中的元素。举个例子,如果cell状态的维度是1

lstm可否不用tanh激活函数

2. 根据文中图11,比较一下几种激活函数的优劣,什么原因造成sigmoid效果比较差

理论上讲任何一个连续的非多项式、常数函数都可以做为BP的激活函数,而且这都是已经在数学上证明过的问题。 
但sigmoid函数相对其他函数有它自身的优点,比如说光滑性,鲁棒性,以及在求导的时候可以用它自身的某种形式来表示 。
这一点在做数值试验的时候很重要,因为权值的反向传播,要求激活函数的导数 。
多层就有多个导数,如果用一般的连续函数,这对计算机的存储和运算都是一个问题,此外还要考虑整个模型的收敛速度,我上面提到连续函数都可以做激活函数 。
但是相应的Sigmoidal型函数的收敛速度还是比较快的,(相同的结构前提下) 
还有就是BP在做分类问题的时候,Sigmoidal函数能比较好的执行这一条件,关于连续函数可以做激活函数的证明,可以在IEEE trans. on neural networks 和NeuralNetworks以及Neural Computating 和Neural Computation上找到。

3. 为什么LSTM模型中既存在sigmoid又存在tanh两种激活函数

我觉得你想问的应该是他们分别实现了什么功能,或者说他们的功能有什么不同.

回想一下高中数学,sigmoid的输出范围是(0,1),tanh输出范围是(-1,1).
LSTM在用到sigmoid函数的地方都是用在各种gate上,产生0-1的值,这就可以让神经元去决定对过去输入和前一个状态的取舍,为0丢,为1取.而tanh用在后一个状态和输出上,是对数据的处理. 神经元要传给下一个的,它本身不决定取舍,由下一个来决定,所以它要定出那个输出应该放大,而哪个输出应该缩小.
为什么是sigmoid函数和tanh函数,可否换成别的激活函数?如果有更好的,当然可以,但既然这2个满足了功能上的需求,何必换?除非有更便于计算的.

为什么LSTM模型中既存在sigmoid又存在tanh两种激活函数

4. tensorflow-gpu不能import tensoflow吗

GPU英文全称Graphic Processing Unit,中文翻译为"图形处理器"。(图像处理单元)GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。
GPU是显卡的"心脏",也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。图形处理芯片。NVIDIA公司在1999年发布GeForce256图形处理芯片时首先提出GPU的概念。
GPU能够从硬件上支持T&L(TransformandLighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为"几何处理"。
即使CPU的工作频率超过3GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。

5. 如何基于TensorFlow使用LSTM和CNN实现时序分类任务

时序数据经常出现在很多领域中,如金融、信号处理、语音识别和医药。传统的时序问题通常首先需要人力进行特征工程,才能将预处理的数据输入到机器学习算法中。并且这种特征工程通常需要一些特定领域内的专业知识,因此也就更进一步加大了预处理成本。例如信号处理(即EEG信号分类),特征工程可能就涉及到各种频带的功率谱(powerspectra)、Hjorth参数和其他一些特定的统计学特征。

如何基于TensorFlow使用LSTM和CNN实现时序分类任务

6. lstm dropout值多少

1 cifar10数据库 60000张32*32 彩色图片 共10类 50000张训练 10000张测试 cifar10数据库 这是binary格式的,所以我们要把它转换成leveldb格式。 2 在../caffe-windows/examples/cifar10文件夹中有一个 convert_cifar_data.cpp 将他include

7. Tensorflow 做LSTM 恢复模型测试时相同输入数据 给出的输出却不一样,这是怎么回事?

应该是dropout设置了随机取值

Tensorflow 做LSTM 恢复模型测试时相同输入数据 给出的输出却不一样,这是怎么回事?

8. 如何自定义LSTM的initial state

可以把 LSTMStateTuple() 看做一个op
from tensorflow.contrib.rnn.python.ops.core_rnn_cell_impl import LSTMStateTuple

...
c_state = ...
h_state = ...
# c_state , h_state 都为Tensor
initial_state = LSTMStateTuple(c_state, h_state)
1234567812345678

当然,GRU就没有这么麻烦了,因为GRU没有两个state。