将softmax分类器分层到RNN自动编码器中



我正在实现的论文是使用带有自动编码器的RNN对异常网络数据进行分类(二进制分类(。他们首先在无监督的情况下训练模型,然后描述这个过程:

接下来,进行微调训练(监督(,以训练使用标记样本的网络。使用实现微调监督训练准则可以进一步优化整个网络我们使用顶部有两个通道的softmax回归层层

目前,我已经实现了自动编码器:

class AnomalyDetector(Model):
def __init__(self):
super(AnomalyDetector, self).__init__()
self.encoder = tf.keras.Sequential([
layers.Dense(64, activation="relu"),
layers.Dense(32, activation="relu"),
layers.Dense(16, activation="relu"),
layers.Dense(8, activation="relu")])
self.decoder = tf.keras.Sequential([
layers.Dense(16, activation="relu"),
layers.Dense(32, activation="relu"),
layers.Dense(64, activation="relu"),
layers.Dense(79, activation='relu')
])

如何在TensorFlow中实现softmax回归层

我很难理解这个过程,我应该给自动编码器添加另一层吗?我应该给这个类添加另一个函数吗?

以防将来有人访问-您可以通过更改激活来创建softmax层。在我的案例中,我选择了sigmoid激活,因为sigmoid相当于双元素softmax。根据文件。

class AnomalyDetector(Model):
def __init__(self):
super(AnomalyDetector, self).__init__()
self.pretrained = False
self.finished_training = False
self.encoder = tf.keras.Sequential([
layers.SimpleRNN(64, activation="relu", return_sequences=True),
layers.SimpleRNN(32, activation="relu", return_sequences=True),
layers.SimpleRNN(16, activation="relu", return_sequences=True),
layers.SimpleRNN(8, activation="relu", return_sequences=True)])
self.decoder = tf.keras.Sequential([
layers.SimpleRNN(16, activation="relu", return_sequences=True),
layers.SimpleRNN(32, activation="relu", return_sequences=True),
layers.SimpleRNN(64, activation="relu", return_sequences=True),
layers.SimpleRNN(79, activation="relu"), return_sequences=True])
layers.SimpleRNN(1, activation="sigmoid")

最新更新