首页 > 其他分享 >统计学习方法笔记-感知机学习方法

统计学习方法笔记-感知机学习方法

时间:2023-05-16 15:23:32浏览次数:36  
标签:opt cdot omega 学习 感知机 eta 超平面 方法 hat

感知机(Perceptron)

1.感知机模型

1.1感知机定义

​ 输入空间$ \mathcal{X} \subseteq \mathbb{R}^n$ ,输出空间\(\mathcal{Y}\)={+1, -1} ;

​ 输入\(x \in \mathcal{X}\)表示的实例的特征向量,对应于输入空间的点,输出\(y \in \mathcal{Y}\)表示的实例的类别;

由输入空间到输出空间的如下函数:

f(x) = sign($ \omega \cdot x$+b)

​ \(\omega\) : 权值,b : 偏置;

​ \(\omega \cdot x\) : \(\omega\)和x的内积;

​ sign为符号函数;

1.2感知机几何解释

线性方程\(\omega \cdot x + b = 0\)对应于特征空间\(\mathbb{R}^n\)中的一个超平面S,其中ω是超平面的法向量,b是超平面的截距。这个超平面将特征空间划分为两个部分。位于两部分的点分别被分为正负两类。因此,S成为分类超平面。

2.感知机学习策略

2.1数据集的线性可分性

给定一个数据集T, 如果存在某个超平面S: \(\omega \cdot x + b = 0\)能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧,即yi\((\omega \cdot x + b) \ge 0\),则称数据集T为线性可分数据集。

2.2 感知机的学习策略

首先,输入空间\(\mathbb{R}\)n 中任一点x0到超平面S的距离d:\(\frac{1}{||\omega||}|\omega \cdot x_0 + b|\)

证明如下:

在超平面S(\(\omega \cdot x + b = 0\))任选一点v1,所需公式\(\vec{v_0v_1} = ||v_0||||v_1||\cos\theta\)

​ d = \(||\vec{v_0v_1}||\cos(\vec{v_0v_1}, \omega)\)

​ = \(||\vec{v_0v_1}|| \frac{|\vec{v_0v_1} \cdot \omega|}{||\vec{v_0v_1}||||\omega||}\)

​ = \(\frac{|(x_1 - x_0) \cdot \omega|}{||\omega||}\)

​ = \(\frac{|-b - x_0\cdot \omega|}{||\omega||}\)

​ = \(\frac{1}{||\omega||}|\omega \cdot x_0 + b|\)

其次,对于误分类的数据(xi,yi)来说,\(-y_i(\omega \cdot x_i + b) > 0\),因此,误分类点xi到超平面S的距离是\(-y_i\frac{1}{||\omega||}|\omega \cdot x_i + b|\)。假设超平面S所有误分类点的集合为M,则所有误分类点的总距离为\(-\frac{1}{||\omega||}\sum_{x_i \in M}y_i|\omega \cdot x_i + b|\)。因此可得出损失函数为\(L(\omega, b) = - \sum_{x_i \in M}y_i(\omega \cdot x_i + b)\)

2.3 感知机算法

2.3.1原始形式(随机梯度下降法)

输入:训练数据集T = {(x1, y1), (x2, y2), ....., (xN,yN)},其中\(x_i \in \mathcal{X} = \mathbb{R}^n\),\(y_i \in \mathcal{Y} = {+1, -1}, i = 1,2,...,N;\) 学习率\(\theta(0 < \theta \le 1);\)

输出:\(\omega\),b;感知机模型\(f(x) = sign(\omega \cdot x + b)。\)

过程:

​ 1.选取初值ω0, b0

​ 2.在训练集中选取数据(xi, yi);

​ 3.如果\(y_i(\omega \cdot x_i + b) \le0\),\(\omega \leftarrow \omega + \theta y_ix_i\),\(b \leftarrow b+\theta y_i\)。

​ 4.转至2,直至训练集中没有误分类点。

注:感知机学习算法由于采取不同的初值或选取不同的误分类点,解可以不同。

2.3.2算法的收敛性

证明:经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。

为了叙述与推导,\(\hat \omega = (\omega^T,b)^T, \hat x = (x^T, 1)^T,\hat \omega \cdot \hat x = \omega \cdot x + b\)。

训练数据集T = {(x1, y1), (x2, y2), ....., (xN,yN)},其中\(x_i \in \mathcal{X} = \mathbb{R}^n\),\(y_i \in \mathcal{Y} = {+1, -1}, i = 1,2,...,N;\) 则

​ (1)存在满足条件\(||\hat \omega_{opt}|| = 1\)的超平面\(\hat \omega_{opt} \cdot \hat x = \omega_{opt} \cdot x + b_{opt} = 0\) 将训练数据集完全正确分开;且存在\(\gamma > 0\), 对所有的i= 1,2,...,N,\(y_i(\hat \omega \cdot \hat x) = y_i(w_{opt} \cdot x_i + b_{opt}) \ge \gamma\)。

 证明如下:

由于训练集是线性可分的,故存在一分离超平面。不妨设改平面为\(\hat \omega \cdot \hat x = w_{opt} \cdot x_{opt} + b_{opt} = 0\),使\(||\hat \omega_{opt}|| = 1\)。

于是对于所有有限的i,均有\(y_i(w_{opt} \cdot x_i + b_{opt}) > 0\)。

取\(\gamma > 0\),则\(\gamma = min_{i}{(y_i(\omega_{opt} \cdot x_i+b_{opt}))}\)。

所以,(1)得证。

​ (2)令\(R = max_{1 \le i \le N}||\hat x||\),则在\(f(x) = sign(\omega \cdot x + b)\)在训练数据集上的误分类次数k满足不等式\(k \le {(\frac{R}{\gamma})}^2\)

证明:\(\hat \omega_{k} \cdot \hat \omega_{opt} \ge k\gamma\eta\),$\hat w_{k} $是第k个误分类点实例的扩充权重向量。

\(\hat \omega_k \cdot \hat \omega_{opt} = (\hat \omega_{k-1} + \eta y_i \hat x_i)\hat \omega_{opt} \\ \ge \hat \omega_{k-1} \cdot \hat \omega_{opt} + \eta \gamma \\ = (\hat \omega_{k-2} + \eta y_i \hat x_i)\hat \omega_{opt} \\ \ge \hat \omega_{k-2} \cdot \hat \omega_{opt} + \eta \gamma \\ \ge... \\ \ge k\eta\gamma\)

证明:\(||\hat \omega_{k}||^2 \le k \eta^2R^2\)

\(||\hat \omega_k||^2 = ||\hat \omega_k||^2 + 2\eta y_i \hat \omega_{k-1} \cdot \hat x_i + \eta^2||\hat x_i|| \\ \le ||\hat \omega_{k-1}||^2 + \eta^2||\hat x_i|| \\ \le ||\hat \omega_{k-1}||^2 + \eta^2R^2 \\ \le ||\hat \omega_{k-1}||^2 + 2\eta^2R^2 \\ \le ... \\ \le k\eta^2R^2\)

由上述可得,\(k\eta\gamma \le \hat \omega_k \cdot \hat \omega_{opt} \le ||\hat \omega_k|| ||\hat \omega_{opt}|| \le \sqrt k \eta R \rightarrow k^2\gamma^2 \le k R^2 \rightarrow k \le (\frac{R}{\gamma})^2\)

定理表明,误分类次数k是有上界的,经过有限次搜索可以找到分离超平面。即当训练数据集线性可分时,感知机学习算法原始形式迭代时收敛的。

2.3.3 对偶形式

输入:训练数据集T = {(x1, y1), (x2, y2), ....., (xN,yN)},其中\(x_i \in \mathbb{R}^n\),\(y_i \in {+1, -1}, i = 1,2,...,N;\) 学习率\(\eta(0 < \eta \le 1);\)

输出:\(\alpha\),b;感知机模型\(f(x) = sign(\sum_{j=1}^N \alpha_j y_j x_j \cdot x + b)。\)

过程:

​ 1.\(\alpha \leftarrow0, b \leftarrow 0\);

​ 2.在训练集中选取数据(xi, yi);

​ 3.如果\(y_i(\sum_{j=1}^N \alpha_j y_j x_j \cdot x_i + b) \le0\),\(\alpha_i \leftarrow \alpha_i + \eta\),\(b \leftarrow b+\eta y_i\)。

​ 4.转至2,直至训练集中没有误分类数据。

注:Gram矩阵:训练集中实例间的内积计算并以矩阵形式存储,该矩阵为Gram矩阵,记为\(\mathtt{G} = [x_i \cdot x_j]_{N \ast N}\)。

标签:opt,cdot,omega,学习,感知机,eta,超平面,方法,hat
From: https://www.cnblogs.com/sinowind/p/17405722.html

相关文章

  • 易基因:多组学关联分析及组学分子实验验证方法(表观组+转录组+微生物组)|干货系列
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。生物过程具有复杂性和整体性,单组学数据难以系统全面解析复杂生理过程的分子调控机制。而多组学(Multi-omics)联合分析可同时实现从“因”和“果”两个层面研究生物学问题,并对其相关性进行验证。高通量技术的发展,通过对......
  • PLSQL Developer 15 中文乱码解决方法
    PLSQLDeveloper15汉字中文乱码解决方法 添加两个系统变量1.变量名:LANG变量值:zh_CN.GBK2.变量名:NLS_LANG变量值:SIMPLIFIEDCHINESE_CHINA.ZHS16GBK注意:上面的变量名和变量值最好使用复制粘贴的方式添加,防止手动填写出错。设置好后,点击“确定”按钮保存添加的环境变量。重......
  • 学习Web前端有什么好方法吗?
    很多人想要学习Web前端,但是又不知道从何入手。事实上,想要学好Web前端,掌握正确的学习方法很重要。为大家具体讲解一下,学习Web前端需要掌握的学习方法有哪些。 一、了解什么是Web前端 所谓“知己知彼,百战不殆”,在学习Web前端之前,首先应该了解什么是Web前端。所有的用户终端产品与视......
  • 《啊哈C语言——逻辑的挑战》学习笔记
    第一章梦想启航第1节让计算机开口说话1、基础知识1)计算机“说话”的两种方式显示在屏幕上通过喇叭发出声音2)计算机“说话”之显示在屏幕上格式:printf("");注意:printf要加“f”printf后要加括号()双引号""内是要计算机“说的内容”所有符号全在英文符号环境下输入分......
  • Java学习笔记
    一、JAVA发展简史1.JAVA的诞生​在1991年时候,詹姆斯·高斯林(JamesGosling)在SUN公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品。2.JAVA的发展史1991年,Sun公司的Green项目(Oak语言)1995年,推出JAVA测试版1996......
  • JS / jQuery 刷新页面的方法
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title></title><!--引入jQuery--><scriptsrc="jq.js"></script></head><body>......
  • 为什么被final修饰的方法不能被子类重写(无法被覆盖)
       方法覆盖是子类重写父类的方法实现。如果一个方法被final修饰,那么子类是无法重写该方法。注意final关键字只是让方法无法被覆盖,但不影响方法的继承。子类依旧可以继承父类的final方法,只是不能对其实现进行修改。好处就是:防止子类不经意间修改父类方法的实现,破坏了程序的正......
  • Unreal Engine 大象无形学习笔记(第二部分:虚幻引擎浅析)
     Q1.虚幻引擎的Main函数在哪?LaunchWindows.cpp中找到WinMain。Q2.虚幻引擎为什么要引入模块机制?编辑器模式、发布模式要单独配置非常麻烦。工具:UnrealBuildTool包含大模块:Runtime、Development、Editor、Plugin每个模块包含:Public、Private文件夹,.build.cs文件作用......
  • .NET6项目连接数据库方式方法
    前言接上一篇Linux系统下创建dotnet项目,这一篇我们聊聊.NET6环境下dotnet项目连接数据库的方式方法,包括数据库字符串该如何配置。看了很多博主写的文章,连接数据库字符串配置的方式和位置五花八门,这篇文章给大家介绍一下连接数据库字符串的配置方式方法,顺便介绍下一个新创建的dotn......
  • 汇川is500伺服控制器方案 DSP程序和原理图,代码完整,学习工业代码的范例,含惯量识别,电机
    汇川is500伺服控制器方案DSP程序和原理图,代码完整,学习工业代码的范例,含惯量识别,电机参数识别,PWM死区补偿,运动插补等功能。本代码仅用于学习ID:6735670165329159......