当前位置: 首页 > news >正文

数据挖掘2.6 Perceptron Modeling 感知器建模

2.6 Perceptron Modeling
2.6 感知器建模

Perceptron Modeling 感知器建模

  • Linear Discriminants 线性判别式
  • Loss Function 损失函数
    • misclassification 误分类
    • 0-1 Loss/Error function 0-1损失函数
    • Hinge Loss Function 铰链损失函数
  • Optimization 优化
    • 算法

Linear Discriminants 线性判别式

线性判别式公式
f(x;w)=w1x(1)+w2x(2)+⋯+wdx(d)+b=0f(\mathbf{x};\mathbf{w}) = w_1 x^{(1)} + w_2 x^{(2)} + \cdots + w_d x^{(d)} + b = 0 f(x;w)=w1x(1)+w2x(2)++wdx(d)+b=0

两种表示方法
在这里插入图片描述
在这里插入图片描述
w′w'w是更加数学化的公式

我们所要做的,就是求wwwbbb,获得线性判别式。

Loss Function 损失函数

在这里插入图片描述

misclassification 误分类

误分类是一种错误
如果一个训练样本的标签为𝑦 = +1,那么它的判别函数得分f(x)f(x)f(x)应该 > 0
如果一个训练样本的标签为𝑦 = −1,那么它的判别函数得分f(x)f(x)f(x)应该 < 0
因此,当出现 yf(x)<0yf(x)<0yf(x)<0,说明分类错误。

0-1 Loss/Error function 0-1损失函数

l(f(x),y)={0,yf(x)>01,yf(x)≤0l(f(x),y) = \begin{cases} 0, & y f(x) > 0 \\ 1, & y f(x) \le 0 \end{cases} l(f(x),y)={0,1,yf(x)>0yf(x)0
在这里插入图片描述

The whole error整体误差:用于判断全部examples
∑i=1Nl(f(xi),yi)\sum_{i=1}^N l\big(f(x_i), y_i\big) i=1Nl(f(xi),yi)

0-1损失函数有两个问题:

  • 显而易见,这是一个阶跃函数,在0点具有不连续性,没有很好的定义可以求导;
  • 它不是凸的,这意味着当我们试图用梯度下降算法最小化整体损失,它是无法给出这个特定损失函数的最优解

所以我们建议做的或者最初的创造者,或者现在所谓的感知器所做的是,他们想出了这个零一损失函数的凸近似值——the hinge loss 铰链损失函数

Hinge Loss Function 铰链损失函数

Hinge Loss Function is a convex over-approximation of the 0-1 loss. 铰链损失函数是 0-1 损失函数的凸过度近似。

在这里插入图片描述
l(f(x),y)={0,yf(x)>11−yf(x),yf(x)≤1={0,1−yf(x)<01−yf(x),1−yf(x)≥0l(f(x),y)= \begin{cases} 0,& y f(x)>1\\ 1-y f(x),& y f(x)\le 1 \end{cases} \quad=\quad \begin{cases} 0,& 1-y f(x)<0\\ 1-y f(x),& 1-y f(x)\ge 0 \end{cases} l(f(x),y)={0,1yf(x),yf(x)>1yf(x)1={0,1yf(x),1yf(x)<01yf(x)0

OR
l(f(x),y)=max⁡(0,1−yf(x))l(f(x), y) = \max(0,\, 1 - y f(x)) l(f(x),y)=max(0,1yf(x))

简单的理解
在这里插入图片描述

l(z)={0,z>11−z,z≤1\boldsymbol{ l(z) = \begin{cases} 0, & z > 1 \\ 1 - z, & z \le 1 \end{cases} } l(z)={0,1z,z>1z1
我们所做的就是构建0-1损失函数的凸近似函数,它是凸的,我们也可以对它进行微分(求导)。

Optimization 优化

在这里插入图片描述
min⁡wL(X,Y;w)=∑i=1Nmax⁡{0,1−yif(xi;w)}\min_{\mathbf{w}} \; L(\mathbf{X}, \mathbf{Y}; \mathbf{w}) = \sum_{i=1}^{N} \max\{0,\, 1 - y_i f(x_i; \mathbf{w})\} wminL(X,Y;w)=i=1Nmax{0,1yif(xi;w)}

在这个具体实例中,将4个节点代入模型公式 f(x;w)=w1x(1)+w2x(2)+b=0f(\mathbf{x};\mathbf{w}) = w_1 x^{(1)} + w_2 x^{(2)} + b = 0f(x;w)=w1x(1)+w2x(2)+b=0。我们已知道他们的标签 yiy_iyi,由此得到每个节点的损失函数值 max⁡{0,1−yif(xi;w)}\max\{0,\, 1 - y_i f(x_i;\mathbf{w})\}max{0,1yif(xi;w)}。整个数据集,总体损失是 ∑i=14max⁡{0,1−yif(xi;w)}\sum_{i=1}^{4} \max\{0,\, 1 - y_i f(x_i; \mathbf{w})\}i=14max{0,1yif(xi;w)}
由此,我们采用梯度下降算法来求最小损失函数,这就是我们面对的优化问题。

所有的机器学习都可以表示为优化问题,一旦我们有了机器学习问题的表示方式(模型),我们表示了特征features,我们表示了判别式disccriminant,并且量化定义了什么是误差。我们开始使用0-1损失函数,但因为它不可微,使用这个数据会导致复杂的后续处理过程。因此我们简化了它,或者说以此为目的构建了一个复杂的铰链损失过度近似。然后下一步,我们将以优化问题的形式进行问题训练。这是整个机器学习和数据挖掘的一致主题。

现在我们将使用梯度下降算法进行优化。使用这个算法所求的便是这个模型,参数为向量www

在这里插入图片描述

在这里插入图片描述
这里是有点难以理解的,这个图的损失函数,分界点在x=1x=1x=1,不是0点。虽然实际上 yf(x)=[0,1]yf(x)=[0,1]yf(x)=[0,1]是正确分类了,本应该没有损失值的,但这是近似损失函数,不是完全符合实际的,所以我们会计算它的损失值。所以当 yf(x)<1yf(x)<1yf(x)<1 时候,我们会假定视为这是分类错误了。

算法

已知: 训练样本:{(xi,yi)∣i=1…N},yi∈{−1,+1}\{(x_i, y_i) \mid i = 1 \dots N\}, \quad y_i \in \{-1, +1\}{(xi,yi)i=1N},yi{1,+1}
随机初始化 w(0)w^{(0)}w(0)
循环直到收敛(Until Convergence)

  • 对于 i=1…Ni = 1 \dots Ni=1N
    • 选择样本 xix_ixi,其标签为 yiy_iyi
    • 计算
      f(xi)=w(k)Tx+bf(x_i) = \mathbf{w}^{(k)T} \mathbf{x} + b f(xi)=w(k)Tx+b
    • 如果 yif(xi)<1y_i f(x_i) < 1yif(xi)<1,则使用梯度下降更新权重向量:
      w(k)=w(k−1)−α∇l(w(k))=w(k−1)−α(−yixi)=w(k−1)+αyixi\mathbf{w}^{(k)} = \mathbf{w}^{(k-1)} - \alpha \nabla l(\mathbf{w}^{(k)}) = \mathbf{w}^{(k-1)} - \alpha (-y_i x_i) = \mathbf{w}^{(k-1)} + \alpha y_i x_i w(k)=w(k1)αl(w(k))=w(k1)α(yixi)=w(k1)+αyixi

如果循环收敛一直是0,说明这是被完全分类正确的模型。
这个算法是在20世纪60年代开发1960s,是最早的神经网络之一,被称为perceptron 感知器

http://www.lryc.cn/news/615114.html

相关文章:

  • 我想做自动化报社保,用哪种技术更好一点呢?
  • stm32项目(25)——基于stm32的植物生长箱环境监测系统
  • 「iOS」————响应者链与事件传递链
  • GPT-5:数字大脑的进化史
  • 人工智能-python-数据处理实战-特征降维(PCA)
  • CD63.【C++ Dev】多态(2): 剖析虚函数表的前置知识
  • 【线性代数】线性方程组与矩阵——(3)线性方程组解的结构
  • 【CTF】PHP反序列化基础知识与解题步骤
  • 华为实验:SSH
  • 华为实验: 单区域/多区域OSPF
  • [优选算法专题一双指针——四数之和]
  • 【Leecode 随笔】
  • 大模型在垂直场景的创新应用:搜索、推荐、营销与客服新玩法
  • Q-learning强化算法万字详解
  • 关于C语言本质的一些思考
  • Python(6) -- 数据容器
  • Python映射合并技术:多源数据集成的高级策略与工程实践
  • 3D感知多模态(图像、雷达感知)
  • 容器技术基础与实践:从镜像管理到自动运行配置全攻略
  • 大数据与财务管理:未来就业的黄金赛道
  • 深入理解C++构造函数与初始化列表
  • centos 怎么将一些命令设置为快捷命令
  • 当配置项只支持传入数字,即无法指定单位为rem,需要rem转px
  • 第六章:【springboot】框架springboot原理、springboot父子工程与Swagger
  • visual studio 字体设置
  • 动态路由菜单:根据用户角色动态生成菜单栏的实践(包含子菜单)
  • 【Python 语法糖小火锅 · 第 5 涮 · 完结】
  • java练习题:数字位数
  • 【Java基础】字符串不可变性、string的intern原理
  • C++11 ---- 线程库