【问题标题】:Simple auto-correct neural network not learning简单的自动校正神经网络不学习
【发布时间】:2018-10-01 07:57:34
【问题描述】:

我正在用 Python 构建一个简单的自动更正神经网络。以下是完整代码:Code&Data

训练数据只是一个单词列表(包含在上面的链接中)例如:

yellow
woods
four

现在,每个单词都被分配了一个唯一的编号,例如:

yellow => 0.101

然后将输入单词中的一个字符替换为随机字符会产生拼写错误。 因此,每个单词会产生大约 4-5 个拼写错误,例如:

yelbow => 0.101
ytllow => 0.101

然后我提供拼写错误列表及其正确的唯一数字,以使其学习模式。

如果解释不好,请看上面的代码。

这是训练逻辑:

syn0 = 2*np.random.random((x_dim, hidden_dim)) - 1
syn1 = 2*np.random.random((hidden_dim, x_dim)) - 1


for j in range(20000):
    err = 0
    input_arr, output_arr = shuffle(input_arr, output_arr)
    for i in range(len(input_arr)):
       X = input_arr[i]
       y = output_arr[i]

       l0 = X
       l1 = sigmoid(np.dot(l0, syn0))
       l2 = sigmoid(np.dot(l1, syn1))
       l2_err = y - l2

       l2_delta = l2_err * sigmoid(l2, deriv=True)
       l1_err = l2_delta.dot(syn1.T)
       l1_delta = l1_err * sigmoid(l1, deriv=True)

       syn1 += l1.T.dot(l2_delta) * alpha
       syn0 += l0.T.dot(l1_delta) * alpha
       err += np.mean(np.abs(l2_err))

    if(j % 1000) == 0:
       print str(j) + ", Error:" + str(err)

我的问题是它正确地学习了大约 10-15 个单词,错误减少到 0.009 以下,但是对于更多的单词,它无法学习它们并且错误保持在 0.4 左右

Full Code and Data

请帮忙。

【问题讨论】:

    标签: python numpy machine-learning neural-network


    【解决方案1】:

    如果您的代码适用于少量单词,则很可能是您的代码中没有代码错误,而是您对问题进行编码的方式存在错误。

    我认为将单词编码为浮点数并不是一个好主意。在这种情况下,您可以有两个具有非常相似编码的不同单词:例如word:0.101(黄色)和 word:0.102(四个)(它们仅相差 0.001)。这两个词的编码与 word:0.11(金色)有很大不同(相对)(它们相差 0.01,大 10 倍)。所有这些词都是不同的,最好将其保留在您的编码中。

    我认为在您的问题中对单词进行编码的好方法是使用从 0 到 N-1 的整数,其中 N 是您的单词数。然后,您可以使用 softmax 层和交叉熵损失来训练您的网络。使用分类损失的一个附带好处是您将获得更有意义的损失:您的网络做出的正确猜测的百分比,这比您的损失更容易解释。

    在训练神经网络时,可能会以多种方式出现总体问题,如果您对代码没有具体问题,则很难轻松回答这些问题。调试代码时应考虑的事项:

    -尝试在单词中没有噪音的情况下训练它。在这种情况下,您的网络应该学习身份,它不应该太难,如果它不起作用,可能是因为您的代码中有错误。

    -尝试改变噪音量

    -你可以看看你的神经网络的权重。它们确实收敛到某个值还是随机波动?

    【讨论】:

      猜你喜欢
      • 2016-07-11
      • 2019-10-17
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 2019-03-15
      • 2011-08-17
      • 2020-10-29
      • 2018-04-10
      相关资源
      最近更新 更多