使用 LSTM 标记序列中的未知标记
Unknown tag in sequence tagging with LSTM
我已使用 a、b、c 标签标记数据集,并且必须使用 a、b、c 和其他类别标记传入序列。它应该对已知序列进行分类和标记,或者说我以前没有见过它。
我想我应该自定义我的网络以使标签独立。所以标签分数之和不应该是1,每个标签分数都是独立的。
例如
sequence a : .95, 0.1, 0,01
sequence b : .02, 0.87, 0.9
unknown : .2, .15, .12
那么我应该在我的神经网络中更改什么设置:
model.add(LSTM(128, input_dim=128, input_length=10, unroll=True, implementation=0))
model.add(Dense(3, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=[accuracy'])
您只需要 Dense(4,...)
而不是 Dense (3,...)
。
四个输出之间绝对没有依赖关系。如果激活是 softmax,则总和为 1。
我已使用 a、b、c 标签标记数据集,并且必须使用 a、b、c 和其他类别标记传入序列。它应该对已知序列进行分类和标记,或者说我以前没有见过它。
我想我应该自定义我的网络以使标签独立。所以标签分数之和不应该是1,每个标签分数都是独立的。
例如
sequence a : .95, 0.1, 0,01
sequence b : .02, 0.87, 0.9
unknown : .2, .15, .12
那么我应该在我的神经网络中更改什么设置:
model.add(LSTM(128, input_dim=128, input_length=10, unroll=True, implementation=0))
model.add(Dense(3, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=[accuracy'])
您只需要 Dense(4,...)
而不是 Dense (3,...)
。
四个输出之间绝对没有依赖关系。如果激活是 softmax,则总和为 1。