机器学习_学习规则集合

在Mitchell的《机器学习》的书中,介绍了学习规则集合的方法。以下是我在阅读完这章内容之后的想法。

 

首先,明白什么是学习规则集合:

从两个层次上来讲

· 从命题的层次:

      如果A,那么B。

      序列覆盖算法:

            输入:许多样例,以及它们的真值情况。

            输出:学习到的命题规则。

             首先,学习一个规则rule, 让它覆盖大多数的正例(真值为1),覆盖较少的反例(真值为0);

             然后,从样本中移去rule所覆盖的正例,该剩余的样本中重新学习一个规则。这样迭代下去。知道覆盖所有的正例。

            最后将这些学习的rule进行析取运算,便为最终学习到的规则。

·从一阶Horn字句的层次(谓词):

     存在变量。

     A(x, y)  ^ B(x, y) ^ ... ^ C(x, y) ---> H

    其中A,B,..., C是前件,而H是后件。

    而上面的句子就是一阶Horn字句。

 

 

     在学习一阶Horn字句规则时,主要介绍了两个例子FOIL 和 PROGOL。其中FOIL是采用类似于序列覆盖的方法,而PROGOL采用逆归结的方法。两者有很大的不同。

       例如给了样本结合,用于学习GrandDaughter(x, y), 其中每个样本的组成为

     <Name1 = *, Mother1 = *, Father1 = *, Male1 = *, Female1* =

       Name2 = *, Mother2 = *, Father2 = *, Male2 = *, Female2 * =

      GrandDaugther(1, 2) = true|false 

     >

     FOIL学习是从一般到特殊进行学习。为了学习GrandDaughter(x, y),就从GrandDaugther(x, y)最一般的情况进行入手。 采用爬山式搜索,进行学习;

     例如从GrandDaugther(x, y)出发,可能下一个就学习到了Father(z, x) , Father(y, x)等。

    PROGOL学习方法则是从GrandDaugther(1, 2)最具体的情况入手,通过多次逆归结,将其一步步一般化,最后得到结果。(对于逆归结的概念,请参考《机器学习》这本书)

    

     两种相反的思路,解决同样的问题。吐舌头

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值