Machine Learning Notes Ⅵ

朴素贝叶斯的两种变化

  1. 将朴素贝叶斯一般化:

    (x_{i} in lbrace 1,2,ldots,k brace)。这样的话同样有(P(x mid y)=prod{P(x_i mid y)}),其中(x_i)满足多项式分布。

    如果(x_i)是连续变量,我们可以把它分段映射到k个整数,通常情况下这里的k取10。

  2. 对序列分类:

    不妨假设是数字序列,我们让(n_i)表示第(i)个样本的长度,(x^{(i)}_j)等于第(i)个样本的第(j)个数字((x^{(i)}_j in lbrace 1,ldots ,k brace )),这样我们就可以假设(x^{(i)}_j)服从多项式分布。假设(x^{(i)}_j)彼此条件独立,这样就有(P(x^{(i)} mid y^{(i)})=prod_{j=1}^{n_i}{phi(x^{(i)}_jmid y^{(i)})}),然后对于一组样本,它的对数似然函数

    [egin{align*} l(phi_y,phi(imid y=0),phi(imid y=1))&=log{prod_{i=1}^m{P(x^{(i)},y^{(i)})}} \ &=log{prod_{i=1}^m{P(x^{(i)}mid y^{(i)})*phi_y^{y^{(i)}}*(1-phi_y)^{1-y^{(i)}}}} end{align*} ]

    最大化对数似然函数后,有

    [egin{align*} phi_y&=cfrac{sum_{i=1}^m{1lbrace y^{(i)}=1 brace}}{m} \ phi(tmid y=1)&=cfrac{sum_{i=1}^m{1lbrace y^{(i)}=1 brace sum_{j=1}^{n_i}{1lbrace x^{(i)}_j=t brace }}}{sum_{i=1}^m{1lbrace y^{(i)}=1 brace n_i}} \ phi(tmid y=0)&=cfrac{sum_{i=1}^m{1lbrace y^{(i)}=0 brace sum_{j=1}^{n_i}{1lbrace x^{(i)}_j=t brace }}}{sum_{i=1}^m{1lbrace y^{(i)}=0 brace n_i}} end{align*} ]

    同样可以使用拉普拉斯平滑

    但上面的分类方法同样无法识别上下文的关系,一个序列在改变了顺序后识别的效果是相同的。

神经网络(Neural Network)

神经网络算法可以解决非线性分类问题,也就是使用一条曲线来进行分类。

神经网络的大概模型如下图

输入层用来接收特征。隐藏层中其实包含许多层,层与层之间有数据的传递。最终数据到达输出层,从而得到结果。

每个小圆圈是一个Sigmoid单元,每个单元都有自己的输入来源。每一个单元还有一个自己的参数组( heta),它会根据( heta)以及输入的数据计算出自己的输出数据。我们令(a_i)为第(i)个单元的输出,( heta_i)为第(i)个单元的参数组,(x_i)为第i个单元的输入数据,那么有(a_i=g(x^T heta)),并且(g(z)=cfrac{1}{1+e^{-z}})

为了训练神经网络,一种方法是设(J( heta)=cfrac12sum_{i=1}^m{h_ heta(x^{(i)}-y^{(i)})^2}),通过梯度下降来不断更新每个节点的参数,从而最小化(J( heta)),这被称为反向传播。

在之后的课程里我们会学习如何构建神经网络。

两种对于分类的直观理解

这里回到线性分类问题,并且假设样本都是可以线性分类的。

  1. 类比Logistic回归,对于一个输入,我们会得到答案是1的概率。我们在保证分类正确的前提下,会想让分类尽量有保证,也就是让对应的概率更大。

    在Logistic回归中,(P(y=1|x)=g(x^T heta)),其中(g(z)=cfrac1{1+e^{-z}})。所以我们就是让(y^{(i)}=1)( heta^Tx^{(i)})尽可能大,让(y^{(i)}=0)( heta^Tx^{(i)})尽可能小。

  2. 从图象上看,我们会想让分割两个点集的那条直线到两个点集的距离尽可能地远。

一些改变

[y in lbrace -1,+1 brace ]

[h in lbrace -1,+1 brace ]

[g(z)=egin{cases} -1, & ext{if $zlt 0$} \ +1, & ext{if $zge 0$} end{cases} ]

[h_{w,b}(x)=g(w^Tx+b) \ x重新变成一个n维向量(原来我们补充了一个x_0=1) ]

定义

  • 超平面((w,b))是在(n)维空间中,分割空间的一个平面。

  • 函数间隔:

    一个超平面((w,b))关于一个训练样本的函数间隔被定义为(hat gamma^{(i)}=y^{(i)}(w^Tx^{(i)}+b)),里面的(y^{(i)})用来调节符号。此时,之前的第一种理解就是让每个样本的(hat gamma^{(i)})尽可能的大。同时,只要(hat gamma^{(i)} gt 0)就可以保证第(i)个样本分类正确。

    超平面((w,b))关于整个训练集合的函数间隔被定义为(hat gamma=min lbrace hat gamma^{(i)} brace)

    到目前为止,我们可以通过把(w,b)扩大一个倍数来无限增大(hat gamma)。所以我们需要添加一个正规化的条件:(left| w ight| = 1)

  • 几何间隔:

    一个训练样本的几何间隔等于(x^{(i)})所对应的那个点到超平面((w,b))的几何距离。经过计算可以得到(x^{(i)})((w,b))的有向距离等于(cfrac{w^Tx^{(i)}+b}{left |w ight|}),如果点在直线左侧为正,在直线右侧为负。

    所以我们定义几何间隔:(gamma^{(i)}=y^{(i)}cfrac{w^Tx^{(i)}+b}{left| w ight|})

    同样对于整个训练集合有$gamma=minlbrace gamma^{(i)} brace $

    并且我们可以发现函数间隔与几何间隔的关系:(hat gamma=left| w ight| gamma)

  • 最大间隔分类:选择(w,b)最大化几何间隔,同时满足(left| w ight|=1)

原文地址:https://www.cnblogs.com/LincHpins/p/6195433.html