【问题标题】:What are "Factor Graphs" and what are they useful for?什么是“因子图”,它们有什么用?
【发布时间】:2011-08-08 05:38:04
【问题描述】:

一位朋友正在使用因子图进行文本挖掘(识别文本中对人的引用),这让我对这个工具产生了兴趣,但我很难找到关于因子图是什么以及如何实现的直观解释使用它们。

任何人都可以提供对因子图的解释,该解释不是数学繁重,而是侧重于实际应用而不是抽象理论?

【问题讨论】:

    标签: statistics artificial-intelligence machine-learning


    【解决方案1】:

    它们被广泛用于将问题分解为多个部分。因子图(以及在其上传递消息)的一个非常有趣的应用是 Xbox Live TrueSkill 算法。我在我的博客上wrote extensively about it 尝试进行介绍性解释,而不是过于学术性的解释。

    【讨论】:

    • 只是一个旁注,但那是一篇很棒的博文。
    • 啊,杰夫,是的——实际上我几个月前读过你的博文,好吧——老实说,我读了一半。但我正在为我的side project 使用你们软件的Java 版本。我实际上并没有意识到 TrueSkill 使用了因子图,我需要回去完整阅读您的博客条目。
    • 是的 - 很棒的帖子!谢谢!
    【解决方案2】:

    因子图是特定类型公式中存在的变量和因子(公式的一部分)之间依赖关系的图形表示。

    假设您有一个函数f(x_1,x_2,...,x_n),并且您想计算该函数对于某个参数x_i 的边缘化,从而对剩余公式的所有赋值求和。进一步f 可以分解为因素,例如

    f(x_1,x_2,...,x_n)=f_1(x_1,x_2)f_2(x_5,x_8,x_9)...f_k(x_1,x_10,x_11)

    然后,为了计算 f 的某些变量的边缘化,您可以使用一种称为 sum product(或消息传递)的特殊算法,将问题分解为更小的计算。对于这种算法,哪些变量作为哪个因素的参数出现是非常重要的。此信息由因子图捕获。

    因子图是具有因子节点和变量节点的二分图。如果变量作为因子的参数出现,则因子和变量节点之间存在边。在我们的示例中,因子 f_2 和变量 x_5 之间存在边,但 f_2x_1 之间没有边。

    有一篇很棒的文章:Factor graphs and the sum-product algorithm

    【讨论】:

      【解决方案3】:

      因子图是数学模型,只能用数学方程来解释。简而言之,这是解释模型中兴趣变量之间复杂关系的方法。示例:A 是温度,B 是压力,分量 C、D、E 在某种程度上取决于 B、A,分量 K 取决于 B、A。你想根据 A 和 B 预测 K 值。所以你只知道可见状态。基本 ML 库不允许对这种结构进行建模。神经网络做得更好。而因子图正是解决了这个问题。 因子图是深度学习的一个例子。当无法呈现具有特征和输出的模型时,因子模型允许构建隐藏状态、层和复杂的变量结构以适应现实世界的行为。例如机器翻译对齐、指纹识别、共同引用等。

      【讨论】:

        猜你喜欢
        • 2015-02-06
        • 1970-01-01
        • 2011-09-11
        • 2011-08-03
        • 2011-09-22
        • 2017-05-30
        • 1970-01-01
        • 2016-10-24
        • 2012-08-29
        相关资源
        最近更新 更多