简单机器学习任务中的关键概念与挑战
1. 爬山搜索算法
爬山搜索算法是一种用于解决搜索问题的方法,其具体步骤如下:
|步骤|操作|
| ---- | ---- |
|1|创建两个列表,L 和 Lseen。开始时,L 仅包含初始状态,Lseen 为空。|
|2|令 n 为 L 的第一个元素,将此状态与最终状态进行比较。若相同,则成功停止。|
|3|对 n 应用所有可用的搜索运算符,得到一组新状态。丢弃 Lseen 中已存在的状态,其余状态按评估函数排序并置于 L 的前端。|
|4|将 n 从 L 转移到已调查状态的列表 Lseen 中。|
|5|若 L 为空,停止并报告失败;否则,转到步骤 2。|
在某些状态下,可能没有“子状态”比其“父状态”更优,就像爬山者有时需要先穿过山谷才能继续攀登,这也是该技术得名的原因。
2. 机器学习中的爬山算法应用
2.1 以 Johnny 的馅饼问题为例
输入是一组训练示例,每个示例由可用属性描述。输出是一个布尔表达式,该表达式对于训练集中的每个正例为真,对于每个反例为假。表达式涉及属性 - 值对、逻辑运算符(合取、析取和否定)以及可能需要的括号组合。评估函数衡量给定表达式在训练集上的错误率。初始状态可以使用任何随机生成的表达式,例如选择 (shape=circle),因为超过一半的正训练示例是圆形的。
搜索运算符有多种,例如添加合取,如将 (shape=circle) 替换为 [(shape=circle) AND (filling - shade=dark)];也可以添加析取,还有“移除合取项”“移除析取项”
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



