HNU_多传感器(专选)_作业4(构建单层感知器实现分类)

1. (论述题)(共1题,100分)

假设平面坐标系上有四个点,要求构建单层感知器实现分类。

(3,3),(4,3) 两个点的标签为1;

(1,1),(0,2) 两个点的标签为-1。  

思路:要分类的数据是2维数据,需要2个输入节点,把神经元的偏置值也设置成一个节点(偏置也是一个输入,恒等于1),总共有3个输入节点。

输入数据有4组:

(1,3,3),(1,4,3),(1,1,1),(1,0,2)

对应的标签为(1,1,-1,-1) 

初始化权值w0,w1,w2取-1到1的随机数;

学习率设为0.11;

激活函数为sign函数。

我的答案:

1. 初始化:

  • (1)输入数据:X=[[1,3,3],[1,4,3],[1,1,1],[1,0,2]];
  • (2)标签:Y=[1,1,-1,-1]
  • (3)权值向量:W=[w0,w1,w2],随机在[-1,1]中;
  • (4)学习率:η= 0.11

2.激活函数:

  • sign(x) = 1 if x > 0 else -1

3.训练过程

  • (1)前向传播:神经元输出:

  • (2)计算误差:

  • (3)更新权值:

  • (4)若未达到“所有样本均正确分类/达到最大迭代次数”,则重复(1)~(3)

4.迭代过程:

可通过程序代码,进行迭代:(其中一次迭代如下):


初始权值: [ 0.58717924 -0.64675996  0.79238846]

=== 第 1 轮迭代 ===

样本: [1 1 1], 标签: -1, 预测: 1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [-0.22 -0.22 -0.22]

更新后的权值: [ 0.36717924 -0.86675996  0.57238846]

样本: [1 0 2], 标签: -1, 预测: 1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [-0.22 -0.   -0.44]

更新后的权值: [ 0.14717924 -0.86675996  0.13238846]

=== 第 2 轮迭代 ===

样本: [1 3 3], 标签: 1, 预测: -1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [0.22 0.66 0.66]

更新后的权值: [ 0.36717924 -0.20675996  0.79238846]

样本: [1 1 1], 标签: -1, 预测: 1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [-0.22 -0.22 -0.22]

更新后的权值: [ 0.14717924 -0.42675996  0.57238846]

样本: [1 0 2], 标签: -1, 预测: 1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [-0.22 -0.   -0.44]

更新后的权值: [-0.07282076 -0.42675996  0.13238846]

=== 第 3 轮迭代 ===

样本: [1 3 3], 标签: 1, 预测: -1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [0.22 0.66 0.66]

更新后的权值: [0.14717924 0.23324004 0.79238846]

样本: [1 1 1], 标签: -1, 预测: 1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [-0.22 -0.22 -0.22]

更新后的权值: [-0.07282076  0.01324004  0.57238846]

样本: [1 0 2], 标签: -1, 预测: 1

权值更新量(eta * (Y[i] - y_pred) * X[i]): [-0.22 -0.   -0.44]

更新后的权值: [-0.29282076  0.01324004  0.13238846]

=== 第 4 轮迭代 ===

训练在第 4 轮收敛

训练后的权值: [-0.29282076  0.01324004  0.13238846]


import numpy as np# 数据
X = np.array([[1, 3, 3],[1, 4, 3],[1, 1, 1],[1, 0, 2]
])
Y = np.array([1, 1, -1, -1])# 初始化权值和参数
W = np.random.uniform(-1, 1, 3)  # 权值初始化
eta = 0.11  # 学习率
max_epochs = 100  # 最大迭代次数# 激活函数
def sign(x):return 1 if x > 0 else -1# 训练
print("初始权值:", W)
for epoch in range(max_epochs):print(f"\n=== 第 {epoch + 1} 轮迭代 ===")errors = 0for i in range(len(X)):# 前向传播y_pred = sign(np.dot(X[i], W))# 检查预测是否正确if y_pred != Y[i]:errors += 1delta_W = eta * (Y[i] - y_pred) * X[i]  # 计算权值更新量W += delta_W  # 更新权值# 打印更新信息print(f"样本: {X[i]}, 标签: {Y[i]}, 预测: {y_pred}")print(f"权值更新量(eta * (Y[i] - y_pred) * X[i]): {delta_W}")print(f"更新后的权值: {W}")if errors == 0:  # 如果没有错误分类print(f"训练在第 {epoch + 1} 轮收敛")break
else:print("未在最大迭代次数内收敛")print("\n训练后的权值:", W)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内圆弧转子泵绘制工具开发

接着上期的Gerotor 泵的话题继续。最近有小伙伴找我开发一个内圆弧摆线泵的计算绘制工具,也就是把上次计算绘制的过程做成一个桌面应用工具,这样用起来会更方便、效率更高。那究竟是什么样的工具呢?一起来看看: 前面不是已经有了上…

面试技术点之安卓篇

一、基础 二、高级 三、组件 Android中SurfaceView和TextureView有什么区别? 参考 Android中SurfaceView和TextureView有什么区别? 四、三方框架 五、系统源码 六、性能优化

【汇编】思考汇编中的两个基本问题

1. 若干年前的疑问 几年前还在大学学习汇编时,不管是考试还是课程设计,其实都很顺利。但是心里一直对什么时候使用哪个寄存器存在疑惑,编写汇编时,没有十足的把握,都是抱着试一试的心态去完成了课程任务。 工作八年有…

在Ubuntu 2404上使用最新的PicGo

在转向Ubuntu之后,果断下载了今年最新的Ubuntu2404,但是随之而来的是底层组件的更新,很多以前可以畅快使用的软件,因为需要老版本的组件而不能正确运行,PicGo就是如此 我们从这里打开Release列表 其中Ubuntu可用的只有这个AppIma…

用ue5打开网址链接

需要用到 Launch URL 这个函数 字面意思就是打开填写的链接网页 这里填写的是百度,按下Tab键后就会打开百度的网页

ISP(Image Signal Processor)——HDR技术总结

传统多帧融合技术 拍摄一系列不同曝光时长的图像帧(LDR),然后使用融合算法进行融合成HDR图像。 融合算法可以分为两种 基于照度图估计的融合 基于照度估计需要拟合相机响应函数,详细可以参考如下论文: Recovering H…

C++打造局域网聊天室第七课: Socket编程初步2

文章目录 前言一、Socket的API函数二、服务端建立Socket步骤总结 前言 C打造局域网聊天室第七课: Socket编程初步2 一、Socket的API函数 接着上一课的内容,我们在chartroom.cpp中找到如下位置 插入断点,运行 运行到断点处后,按…

QT(QML语法)-属性(声明,初始化,赋值,属性绑定,属性组,对象列表。属性别名(双向))

目录 1.属性(Property) 2. 对象列表 3. 属性组 4.代码示例 1.属性(Property) 基本属性声明:property 用于声明可绑定的属性。属性绑定:属性可以绑定到对象属性或函数。属性别名:使用 prope…

【razor】echo搭配relay功能分析

echo 要搭配relay 实现作者说relay在linux上跑,可以模拟丢包、延迟目前没看到如何模拟。relay监听9200,有俩作用 echopeer1 发relay,replay 把peer1的包给peer2 ,实现p2p能力。 接收端:采集后发送发给relay的 接收端的地址就是自己,的地址就是本地的9200,因此是让relay接…

Wallpaper壁纸制作学习记录11

操控变形动画介绍 操控变形是使用Wallpaper Engine为角色和某些对象创建复杂动画的一种高级方法。操控变形是一个多步骤过程,要求您有一个单独的图像图层,其中包含要制作动画的角色或对象的剪切图。 操控变形功能相对复杂,您也可以创建仅包含…

黑马程序员Java项目实战《苍穹外卖》Day12

苍穹外卖-day12 课程内容 工作台Apache POI导出运营数据Excel报表 功能实现:工作台、数据导出 工作台效果图: 数据导出效果图: 在数据统计页面点击数据导出:生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原…

windows下Qt5自动编译配置QtMqtt环境

原文链接:windows下Qt5自动编译配置QtMqtt环境(11)-CSDN博客 1、概述 Qt默认是不包含mqtt库的,如果需要使用到mqtt库就只能自己编译配置;网络所有的QtMqtt配置的文章都是编译完成手动复制,非常麻烦&#x…

OpenCV相机标定与3D重建(15)计算给定图像点对应的极线(epipolar lines)函数computeCorrespondEpilines()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算给定图像点对应的极线(epipolar lines)。 对于立体图像对中一个图像的点,计算这些点在另一个图像中对应的…

阿里云服务器Linux(centos)系统安装nginx1.20.2

阿里云服务器Linux(centos)系统安装nginx1.20.2 1.安装依赖包 一共要安装4种依赖(基于c语言) yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2.下载nginx安装包并解压安装包 nginx官网下载:http://nginx.org/en/do…

启智畅想集装箱箱号识别算法,2台相机即可实现较高识别率

启智畅想集装箱箱号识别算法,在货车通道中使用时,一般配备2台相机即可。启智畅想集装箱箱号识别算法,在货车通道中使用时,一般配备2台相机即可实现对集装箱箱号的精准捕捉与识别。这两台相机分别安装在货车通道的后侧和随意侧面&a…

ESP32-S3模组上跑通ES8388(24)

接前一篇文章:ESP32-S3模组上跑通ES8388(23) 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回解析完了es8388_init函数中的第8段代码,本回继续往下解析。为了便于理解和回顾,再次贴出es8388_init函数源码,在components\audio_hal\driver\es8388\es8388.c中,如下: ​ …

【C++】三角形校验和算法优化的深入分析

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯老师的解法实现代码解法分析优势缺点 💯我的解法实现代码解法分析优势缺点 💯数学解释:为什么新增条件是冗余的&a…

【C++软件调试技术】dump文件类型与dump文件生成方法详解

目录 1、概述 2、dump文件的分类 2.1、dump按大小分类 2.2、查看dump文件中函数调用堆栈中变量的值 3、调用SetUnhandledExceptionFilter设置异常处理回调函数,然后调用MiniDumpWriteDump生成dump文件 4、使用Google开源库CrashRpt捕获异常,并自动…

持有CSPM证书可以用于评职称吗?

CSPM的诞生背景 CSPM(Certified Strategic Project Manager)即项目管理专业人员能力评价等级证书,是由中国标准化协会(CAS)根据国标《项目管理专业人员能力评价要求》(GB/T 41831-2022)推出的项…

SpringBoot左脚进门之常用注解

类级别注解 SpringBootApplication Configuration //表明这是一个配置类 EnableAutoConfiguration //开启自动配置 ComponentScan() //开启组件扫描1、Configuration: 当一个类被 Configuration 注解…