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

【感知机】感知机(perceptron)学习算法例题及详解

感知机( perceptron )是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1 和-1二值。感知机对应输入空间(特征空间)中将实例划分为正负两类的分离超平面,是一种判别模型。感知机是神经网络与支持向量机的基础

感知机学习旨在求出将训练数据进行线性划分的分离超平面。

感知机学习思路:

1.导入基于误分类的损失函数

2.利用梯度下降法对损失函数进行极小化

3.代入参数得到感知机模型。

感知机学习算法分类:

原始形式、对偶形式。

感知机算法原始形式例题及详解

例1 训练数据集如图所示,正实例点为x_1=(3,3)^{T},x_2=(4,3)^{T},负实例点为x_3=(1,1)^{T},试用感知机算法原始形式求感知机模型,令w=(w^{(1)},w^{(2)})^{T},x=(x^{(1)},x^{(2)})^{T}

解答:

(1)建模最优化问题:\underset{w,b}{min}L(w,b)= - \underset{x_i\in M}{\sum } y_i (w\cdot x_i+b )

(2)取初值w_0=0,b_0=0\eta =1 

(3)按x_1,x_2,x_3顺序,对x_1=(3,3)^{T},y_1(w\cdot x1+b )= 0,则x_1为误分类点。更新w,b

w_1=w_0+y_1x_1=(3,3)^{T},b_1=b_0+\eta y_1=1

得到线性模型:w_1\cdot x+b_1=3x^{(1)}+3x^{(2)}+1=0

(4)重新选取,对x_1,x_2y_i(w_1\cdot x_i+b_1)>0,则均为正确分类点,不更新w,b

x_3=(1,1)^{T}y_3(w_1\cdot x_3+b_1)< 0,则x_3为误分类点,更新w,b

w_2=w_1+y_3x_3=(2,2)^{T},b_2=b_1+\eta y_3=0

得到线性模型:w_2\cdot x+b_2=2x^{(1)}+2x^{(2)}=0

(5)由此不断迭代

(6)直到w_7=(1,1)^{T},b_7=-3

线性模型:w_7\cdot x+b_7=x^{(1)}+x^{(2)}-3=0

对所有数据点y_i(w_1\cdot x_i+b_1)>0,则确定分离超平面:x^{(1)}+x^{(2)}-3=0

感知机模型f(x)=sign(x^{(1)}+x^{(2)}-3)

分离超平面x^{(1)}+x^{(2)}-3=0是按照x_1,x_3,x_3,x_3,x_1,x_3,x_3的取点顺序得到的

例1如果更换取点顺序为x_1,x_3,x_3,x_3,x_2,x_3,x_3,x_3,x_1,x_3,x_3,得到的分离超平面为:

2x^{(1)}+x^{(2)}-5=0

由此,可知结论:感知机算法采用不同的初值或选取不同的误分类点顺序,解可以不同

感知机算法对偶形式例题及详解

例2 训练数据集如图所示,正实例点为x_1=(3,3)^{T},x_2=(4,3)^{T},负实例点为x_3=(1,1)^{T},试用感知机算法对偶形式求感知机模型,令w=(w^{(1)},w^{(2)})^{T},x=(x^{(1)},x^{(2)})^{T}

解答:

(1)取\alpha_1=0,i=1,2,3,b=0,\eta =1;

(2)计算Gram矩阵

G=\begin{bmatrix} 18 & 21 &6 \\ 21& 25&7 \\ 6 & 7 & 2 \end{bmatrix}

(3)误分条件

y_i (\sum_{j=1}^{N} \alpha _jy_jx_j\cdot x+ b)\leq 0

(4)参数更新

\alpha_i\leftarrow \alpha_i+1,b\leftarrow b+y_i

(5)迭代

(6)最终得到

w=\alpha_1x_1+\alpha_2x_2+\alpha_3x_3=2x_1+0x_2+5x_3=(1,1)^{T}

b=-3

则,分离超平面:x^{(1)}+x^{(2)}-3=0

感知机模型:f(x)=sign(x^{(1)}+x^{(2)}-3)

与原始形式一致,感知机学习算法的对偶形式迭代收敛,且存在多个解

http://www.xdnf.cn/news/1264339.html

相关文章:

  • 在 Elasticsearch/Kibana (ELK Stack) 中搜索包含竖线 (|)​​ 这类特殊字符的日志消息 (msg 字段) ​确实需要转义
  • 基于LLM的Chat应用测试方法探索:系统化评估与持续优化
  • java分布式定时任务
  • B4263 [GESP202503 四级] 荒地开垦 题解
  • 操作系统:多线程模型(Multithreading Models)与超线程技术(Hyperthreading)
  • 飞算JavaAI深度解析:专为Java生态而生的智能引擎
  • YOLO-Count:用于文本到图像生成的可微分目标计数
  • C++中的继承:从基础到复杂
  • 【数据结构】排序(sort) -- 计数排序
  • Sum of Four Values(sorting and searching)
  • 文件管理从基础到高级:文件描述符、超大文件切片重组与快速删除实战
  • SVM实战:从线性可分到高维映射再到实战演练
  • 《在 Spring Boot 中安全使用 Qwen API-KEY:环境变量替代明文配置的最佳实践》
  • Word中怎样插入特殊符号
  • 智慧社区(九)——事务加持下的小区删除操作
  • Vue 路由跳转
  • 【JAVA EE初阶】多线程(进阶)
  • [案例十] NX二次开发批量替换组件功能(装配环境)
  • C 语言链表数据结构
  • 智驭全球波动:跨境量化交易系统2025解决方案
  • 嵌入式Linux学习 - 数据结构6
  • 机器学习——支持向量机(SVM)实战案例
  • wodpress结构化数据对SEO的作用
  • 在 Debian 系统上安装 Redis服务
  • R语言代码加密(1)
  • OpenBMC中libgpio架构与驱动交互全解析:从硬件映射到应用控制
  • 《Graph machine learning for integrated multi-omics analysis》
  • 机器学习——KMeans聚类算法(算法原理+超参数详解+实战案例)
  • Vuex 数据共享
  • Shell脚本实现自动封禁恶意扫描IP