keras lstm的参数
(1)units:LSTM层的单元个数,即LSTM网络中隐藏节点的数量。
(2)activation:激活函数,用于更新内部状态的函数(即门的决策函数)。
(3)recurrent_activation:用于更新记忆细胞状态的激活函数。
(4)use_bias:是否使用偏置向量。
(5)kernel_initializer:权重矩阵的初始化方法。
(6)recurrent_initializer:内部状态(记忆细胞)的初始化方法。
(7)bias_initializer:偏置矩阵的初始化方法。
(8)unit_forget_bias:忘记门的偏置。
(9)dropout:控制神经元的抑制的概率,从而消除神经网络过拟合的情况。
(10)recurrent_dropout:神经元的记忆保持不变的概率,从而消除神经网络过拟合的情况。
(11)implementation:指定LSTM的并行化实现,一般默认值为0,表示使用默认实现即CPU实现;数字1表示用GPU实现。
(12)return_sequence:是否返回每个时间步的输出,默认为False,表示返回最后一个时间步的输出。
激活函数
Keras激活函数是用于计算每个神经元的输出,它扮演着神经网络设计中的重要角色。它有助于控制参数的抑制和获取正确的能量。Keras具有的几个激活函数,可以实现特定的特征提取过程。
model.add(LSTM(50, activation='relu', input_shape=(width, eatures)))
激活函数是神经网络中用于计算输入和偏差的加权和的函数,用于确定神经元是否可以释放。 它通常通过梯度下降法的某种梯度处理来操纵数据,然后产生神经网络的输出,该输出包含数据中的参数。 有时这些激活函数通常称为传递函数。
激活函数具有改善数据学习模式的能力,从而实现了特征检测过程的自动化,并证明它们在神经网络的隐藏层中的使用合理性,并且对于跨领域进行分类很有用。
激活函数可以是线性的,也可以是非线性的,具体取决于它所代表的功能,并用于控制我们的神经网络的输出,其范围从对象识别和分类到语音识别,分段等更多领域。
激活函数在网络结构中发挥的功能取决于其在网络中的位置,因此,将激活函数放置在隐藏层之后时,它将学习到的线性映射转换为非线性形式以便传播,而在输出层中则执行预测功能。
只是永远记住要做:“输入乘以权重,添加偏差并激活”
更多描述:如何选择神经网络激活函数:有效的改善模型学习模式的能力 (baidu.com)
Sigmoid函数
sigmoid激活函数是Keras中常见的激活函数,它以S型函数形式将输入转换成相应的输出,使输出值处于(0,1)之间。它用于分类的任务,例如二进制分类,Sigmoid函数可以帮助Keras模型明确型推断目标值,而不是使用投票机制来解决。
tanh激活函数
tanh激活函数是基于双曲正弦函数,它把输入值变换到-1和1之间。tanh函数介于sigmoid和ReLU函数,它能保证输出的准确性。它的输入和输出都处于(-1,1)之间。它在计算时有着更好的性能,可以有效解决非线性问题。
ReLU激活函数
ReLU(Rectified Linear Units)激活函数是Keras中最常用的激活函数,它在输入为正数时直接输出输入数据,当输入为负数时输出为0,它快速、可靠、无限可微,在机器学习领域中使用非常广泛。
Softmax激活函数
Softmax激活函数通常用于分类算法预测模型,它能将N维输入值变换为N维输出值,其中每一维的值都在0到1之间。Softmax函数的输出值能和其他输出值相比较,并且能获得比较高的准确率以及可靠的模型性能。
损失函数 目标函数
keras model.compile(loss='目标函数 ', optimizer='adam', metrics=['accuracy'])
目标函数,或称损失函数,就是计算神经网络每次迭代的前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行。
如何使用损失函数呢?具体步骤:
(1)用随机值初始化前向计算公式的参数;
(2)代入样本,计算输出的预测值;
(3)用损失函数计算预测值和标签值(真实值)的误差;
(4)根据损失函数的导数,沿梯度最小方向将误差回传,修正前向计算公式中的各个权重值;
(5)goto 2, 直到损失函数值达到一个满意的值就停止迭代。
回归问题通常用均方差损失函数,可以保证损失函数是个凸函数,即可以得到最优解。而分类问题如果用均方差的话,损失函数的表现不是凸函数,就很难得到最优解。而交叉熵函数可以保证区间内单调。
分类问题的最后一层网络,需要分类函数,Sigmoid或者Softmax,如果再接均方差函数的话,其求导结果复杂,运算量比较大。用交叉熵函数的话,可以得到比较简单的计算结果,一个简单的减法就可以得到反向误差。
更多描述:神经网络系列之三 -- 损失函数 - 五弦木头 - 博客园 (cnblogs.com)
优化器
优化器是编译Keras模型必要的两个参数之一
首先,Keras的优化器可以分为:
随机梯度下降优化器,例如:SGD
自适应优化器,例如:Adadelta、Adagrad、Adam、RMSprop
在大多数情况下,Adam 是自适应优化器中最好的,无脑选择Adam,没问题。使用Adam这种自适应优化器,还不需要关心学习率的问题。
使用SGD只有在机器学习专家,能手动设计出良好的学习率退火策略(learning rate annealing schedule),效果才能超过Adam。