在文本上训练 RNN:你能像使用单热字符编码一样使用 ASCII 编码吗?

人工智能 神经网络 机器学习 自然语言处理 循环神经网络 长短期记忆
2021-10-26 15:14:28

我经常看到(例如,在 递归神经网络的不合理有效性中),在针对诸如语言建模之类的文本训练 RNN 时,通常使用 1-hot 编码逐个字符地对文本进行特征化。

例如,文本“hello”将表示为

{h: 1, e: 0, l: 0, o: 0}
{h: 0, e: 1, l: 0, o: 0}
{h: 0, e: 0, l: 1, o: 0}
{h: 0, e: 0, l: 1, o: 0}
{h: 0, e: 0, l: 0, o: 1}

我想知道是否也可以使用文本的 ASCII 编码并逐个输入位。所以输入“你好”会像这样输入

0110100001100101011011000110110001101111 

RNN 是否会更加难以弄清楚应该如何使用任意和复杂的 8 位 ASCII 编码?或者 ASCII 编码会导致与更好的 1-hot 编码大致相同的性能吗?

1个回答

我的理解是 ASCII 编码不会从 RNN 获得最佳性能或结果,因为每个字符的 ASCII 码没有意义;他们是任意的。如果每个 ASCII 码的数字代表了对字母有意义的东西,那就更好了。但他们没有。

与决定如何对任何分类数据进行编码时适用的原则相同。如果您的类别是有序的(例如,“第一”、“第二”……或“18-24 岁”、“25-35 岁”……甚至“社会 E 类”、“社会 D 类”……) ,然后为每个类分配一个数值可能会很好。但是在没有有意义顺序的分类数据中,一种热编码会更好。

这是为神经网络提供我们所能提供的最具表现力的数据的原理的一个例子。在非序数、任意类别的情况下,与使用数字编码相比,one-hot 对下一层神经元的表现力更强(将更明显地刺激它们)。