线性阈值机器算法及复杂度深度解析
1. 算法改进:口袋算法
感知机算法在处理线性可分的示例时表现出色,但当数据不满足线性可分假设时,其循环决策的效果就不尽如人意了。为了在各种情况下尽可能实现最优的分离效果,口袋算法应运而生。该算法是对感知机算法的一个简单而巧妙的改进,它在运行过程中会将目前为止找到的最优解存储在一个缓冲区(即“口袋”)中。只有当找到一个更优的权重向量时,才会更新实际的权重,这也是它被称为口袋算法的原因。
2. 复杂度分析
2.1 感知机算法复杂度
对于感知机算法,复杂度分析相对简单。在处理线性可分模式时,我们已经知道其错误次数存在上限。以算法 P 为例,假设 R 和 δ 是与 d 和 ℓ 无关的值,那么该算法的复杂度为 O(d · ℓ),这也是其下限。因此,感知机算法达到了最优复杂度界限 (d · ℓ)。同样,Agent ” 也受错误次数上限的保护,具有相同的最优性。不过,这些最优性的前提是所有示例都位于半径为 R 的有界球内,且不在超平面 δ 边缘之内。
2.2 连续设置下的复杂度
梯度下降算法的复杂度分析则更为复杂。与经典算法不同,用于衡量数值算法复杂度的技术工具仍处于研究前沿。在研究线性机器时,我们发现了一些有趣的联系。当优化的函数没有局部最小值(即所有局部最小值都是全局最小值)时,线性机器在回归和分类任务中具有相同的特点。因此,理解算法 G 的运行成本至关重要。我们可以将其抽象为一个连续系统:
[
\frac{d \hat{w}}{dt} = -\eta\nabla E(\hat{w})
]
如果 E 没有局部最小值,那么该算法属于某个复杂度类别
超级会员免费看
订阅专栏 解锁全文

1万+

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



