【机器学习】《统计学习方法》学习笔记 第二章 感知机

第二章 感知机

  • 二分类线性模型,输入实例的特征向量,输出+1,-1二值代表的类别。

  • 公式: f ( x ) = s i g n ( ω ⋅ x + b ) f(x) = sign(\omega \cdot x + b) f(x)=sign(ωx+b) s i g n ( x ) sign(x) sign(x) 函数将正负值规约到±1。

  • 本质是用一个 N N N 维的超平面将特征空间划分为正负两部分。 ω , b \omega, b ω,b 就是超平面的法向量和截距。

  • 损失函数:误分类的点个数不是 ω , b \omega, b ω,b 的连续可导函数,不易优化。采用误分类点到超平面 S S S 的总距离。空间中任意一点到 x 0 x0 x0 S S S 的距离: 1 ∥ ω ∥ ∣ ω ⋅ x + b ∣ \frac{1}{\|\omega\|}\vert\omega \cdot x + b\vert ω1ωx+b
    又对于误分类的数据,有 ∣ ω ⋅ x i + b ∣ \vert\omega \cdot x_i + b\vert ωxi+b y i y_i yi(±1) 异号,故可以通过乘 y i y_i yi去掉绝对值,再对全体误分类点求和,忽略系数,得到感知机学习的损失函数: L ( ω , b ) = − ∑ x i ∈ M y i ( ω ⋅ x i + b ) L(\omega,b) = -\sum_{x_i \in M}y_i(\omega \cdot x_i + b) L(ω,b)=xiMyi(ωxi+b)
    其中 M M M 为误分类点的集合。

  • 导数:一元函数 y = f ( x ) y=f(x) y=f(x) 在某一点沿 x x x 轴正方向的变化率(一个值);

    偏导数:多元函数沿某个轴正方向的变化率(一个值);

    方向导数:函数沿任意方向的变化率(一个值);

    梯度:函数在空间中变化率最大的方向,是一个向量,记作 ∇ f \nabla f f。这个方向在每个轴上的分量就是沿该轴的偏导数。

  • 对于我们的最优化问题,可以将参数 ω , b \omega, b ω,b 和损失函数的取值对应为一个三维空间的 x , y , z x, y, z x,y,z 轴,我们要找出“山”上海拔最低的位置。从任意点出发,每次计算“下山”最快的梯度方向,然后向该方向前进一小步,不断迭代直至损失函数减小至0。每次前进的距离称为步长(或学习率)

  • L L L 关于 ω , b \omega, b ω,b 的偏导分别为 ∇ ω L ( ω , b ) = − ∑ x i ∈ M y i x i ∇ ω b ( ω , b ) = − ∑ x i ∈ M y i \nabla_{\omega}L(\omega, b) = - \sum_{x_i \in M}y_ix_i \\ \nabla_{\omega}b(\omega, b) = - \sum_{x_i \in M}y_i ωL(ω,b)=xiMyixiωb(ω,b)=xiMyi
    每次随机选一个误分类点,依据该点数据对参数进行更新: ω ← ω + η y i x i b ← b + η y i \omega \leftarrow \omega + \eta y_i x_i \\ b \leftarrow b + \eta y_i ωω+ηyixibb+ηyi

  • 由此得到感知机学习算法的原始形式

    1. 选取初值 ω 0 , b 0 \omega_0, b_0 ω0,b0
    2. 在训练集中选取数据 ( x i , y i ) (x_i, y_i) (xi,yi)
    3. 如果 y i ( ω ⋅ x i + b ≤ 0 ) y_i(\omega \cdot x_i + b \leq 0) yi(ωxi+b0), 使用上面的公式更新 ω , b \omega, b ω,b
    4. 转至2,直至训练集中没有误分类点。
  • 可以证明(P42),误分类次数有上界,经过有限次搜索可以找到将训练数据完全正确分开的超平面。

  • 感知机学习算法的对偶形式:由 ω , b \omega, b ω,b 的更新公式可知,假设一个点 x i x_i xi 被使用(误分类)了 n i n_i ni 次,令 a i = n i η a_i = n_i \eta ai=niη 则最终学习到的 ω , b \omega, b ω,b 可以用以下形式代替: ω = ∑ i = 1 N a i y i x i b = ∑ i = 1 N a i y i \omega = \sum_{i=1}^N a_i y_i x_i \\ b = \sum_{i=1}^N a_i y_i ω=i=1Naiyixib=i=1Naiyi
    于是问题转变为对变量 a i ( n i ) a_i(n_i) ai(ni) 的学习。算法:

    1. α ← 0 , b ← 0 \alpha \leftarrow 0, b \leftarrow 0 α0,b0
    2. 在训练集中选取数据 ( x i , y i ) (x_i, y_i) (xi,yi)
    3. 如果 y i ( ∑ j = 1 N α j y j x j ⋅ x i + b ) ≤ 0 y_i \left (\sum\limits_{j=1}^N \alpha _j y_j x_j \cdot x_i + b \right) \leq 0 yi(j=1Nαjyjxjxi+b)0,更新:
      α i ← α i + η b ← b + η y i ( o r :   n i ← n i + 1 ) \alpha_i \leftarrow \alpha_i + \eta \\ b \leftarrow b + \eta y_i \\ (or: \ n_i \leftarrow n_i + 1) αiαi+ηbb+ηyi(or: nini+1)
    4. 转至2,直到没有误分类数据。
  • 结果上与原始形式是等价的,主要作用是可以通过预计算实现效率提升。原始形式中,判断分类正误的公式中 ω ⋅ x i \omega \cdot x_i ωxi 内积计算复杂度为 O ( n ) O(n) O(n),其中 n n n 为特征空间维数;而对偶形式中由于内积均以 x i ⋅ x j x_i \cdot x_j xixj 形式出现,故可以预先计算出所有组合,形成一个对称/三角矩阵(Gram矩阵),复杂度由求和项决定,即 O ( N ) O(N) O(N) ,转移到了训练集大小 N N N 上。对于训练数据量远小于特征空间维数的数据集,该方法可以有效提升效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值