【问题标题】:How does Naive Bayes assumption make segmentation less computationally intensive?朴素贝叶斯假设如何降低分割的计算强度?
【发布时间】:2016-12-17 05:05:48
【问题描述】:

我正在浏览 Udacity 的 AI 课程介绍视频,但我似乎无法在脑海中形成一个想法。

据说对于长度为 n 的字符串,可以进行 2n-1 个分段。当我们采用朴素贝叶斯假设时,最佳分割 s* 可以定义为最大化的分割

产品(P(wi))

最好的可以写成:

s* = argmaxs P(first_word) * s*(rest_of_words)

我明白为什么以上是真的。导师说,由于上面的等式,我们不必枚举所有 2n-1 个案例。我无法理解其中的原因。

我也明白找到 P(single_word) 比为 n-gram 学习相同的概率要简单,这对计算也有帮助。

【问题讨论】:

    标签: machine-learning nlp artificial-intelligence linguistics


    【解决方案1】:

    由于我们使用单个单词,我们必须每次选择一个单词而不是所有单词的组合,从而减少搜索空间。考虑字符串:

    “我喜欢网球”

    该字符串有 11 个字符,因此 2^11=2048 个案例。如果我们开始查看最可能的第一个词,它可能是:

    “I”、“Il”、“Ili”、“Ilik”等。 11 种可能的情况。现在我们有了所有可能的第一个词,我们寻找最可能的词:

    • P("I")=0.4,
    • P("Il")=0.0001,
    • P("伊犁")=0.002,
    • P("Ilik")=0.00003
    • ...

    等等。

    发现最有可能的是“I”,我们把它作为第一个词,现在我们可以专注于剩下的 10 个字符/大小写:

    “喜欢网球”

    重复相同的过程,您现在将有 10 个可能的单词情况,概率:

    • P("l")=0.05,
    • P("lI")=0.0001,
    • P("喜欢")=0.0002,
    • P("喜欢")=0.00003
    • P("喜欢")=0.3
    • ...

    等等。

    所以我们选择“喜欢”。现在重复搜索最后 6 个字符。无需再次编写过程,“网球”被拾起并且没有留下任何字符,因此分割结束。

    由于我们已经逐字分析,我们考虑的可能性是

    11+10+6=27

    比跨越 2048 次可能的拆分要少得多。

    【讨论】:

    • 如果我们第一个单词写错了会发生什么。考虑“intheworld”。正确的第一个词是“in”。假设根据我们的数据 P("i") > P("in")。我猜这会大大增加我们不得不回溯的案例数量?
    • 更重要的是,如果我们不尝试每一个可能的第一个单词,我们怎么知道我们应该回溯。这与尝试一切都是一样的。如果我错了,请纠正我。谢谢。
    • @TarunKumar 据我所知,在最简单的方法和问题中提到的练习所描述的方法中,没有提供回溯策略。但我仍然认为不需要尝试一切:您也可以应用朴素贝叶斯,从识别最后一个单词开始,然后递归地处理前面的字符。完成后,您可以比较两种解决方案并查看最佳解决方案(甚至混合使用)。请注意,在您的示例中,“intheworld”将被正确拆分。
    • 感谢您的帮助。我没有完全理解您的意思,我们如何在不尝试所有解决方案的情况下比较解决方案。如果你能举一个具体的例子会有所帮助。
    • 看看我在答案中描述的概率,从一开始你就会分裂:seq1 = I-n-the-world。从最后一个单词开始:world-the-in -> in-the-world=seq2。显然,由于 P('n') 非常低,因此您应该有 P(seq1)

    【解决方案2】:

    我推荐一个 Mathematicalmonk 的视频, 这个视频:https://youtu.be/qX7n53NWYI4?t=9m43s

    他解释说,如果没有条件独立假设(朴素贝叶斯),当您从数据中学习时,您需要更多的样本来估计概率。但是,如果您假设(即使它不正确)特征之间的独立性,那么您可以使用较少的训练数据来估计概率分布。

    为什么?让我们简单地说,没有天真的假设,预测y 的二维特征向量的概率是:

    假设x_1x_2 特征只有二进制值,您需要根据样本数据存储每个y 的值:

    P(x_1=0|y), P(x_1=1|y), P(x_2=0|x_1=0,y), P(x_2=0|x_1=1,y), P(x_2=1|x_1=0,y), P(x_2=1|x_1=1,y)
    

    换句话说,您需要存储 参数。您可以将其推广到 d 维二进制特征向量:

    如果你采取天真的假设并假设这些特征是独立的,你就会有这个公式:

    这意味着您只需要为每个y 存储这些参数,以便预测所有可能的X

    P(x_1=0|y), P(x_1=1|y), P(x_2=0|y), P(x_2=1|y)
    

    或将其概括为:

    【讨论】:

      猜你喜欢
      • 2017-02-18
      • 2014-09-18
      • 2010-10-19
      • 2015-10-09
      • 2016-10-05
      • 2012-12-06
      • 2020-03-26
      • 2012-04-09
      • 2015-08-27
      相关资源
      最近更新 更多