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)
相关文章:
HNU_多传感器(专选)_作业4(构建单层感知器实现分类)
1. (论述题)(共1题,100分) 假设平面坐标系上有四个点,要求构建单层感知器实现分类。 (3,3),(4,3) 两个点的标签为1; (1,1),(0,2) 两个点的标签为-1。 思路:要分类的数据是2维数据,需要2个输入…...
以太网链路详情
文章目录 1、交换机1、常见的概念1、冲突域2、广播域3、以太网卡1、以太网卡帧 4、mac地址1、mac地址表示2、mac地址分类3、mac地址转换为二进制 2、交换机的工作原理1、mac地址表2、交换机三种数据帧处理行为3、为什么会泛洪4、转发5、丢弃 3、mac表怎么获得4、同网段数据通信…...
vue3 setup语法,子组件点击一个元素打印了这个元素的下标id,怎么传递给父组件,让父组件去使用
问: vue3 setup语法,子组件点击一个元素打印了这个元素的下标id,怎么传递给父组件,让父组件去使用 回答: 在 Vue 3 中,你可以使用 setup 语法糖和组合式 API 来实现子组件向父组件传递数据。具体来说&am…...
《Keras3 minist 手写数字AI模型训练22秒精度达到:0.97》
《Keras3 minist 手写数字AI模型训练22秒精度达到:0.97》 一、修改源码加上如下两条代码二、源码修改如下三、Keras3 minist 训练22秒结束,训练过程截图四、Keras3 minist 源码截图 一、修改源码加上如下两条代码 import os os.environ["KERAS_BAC…...
【.net core】【sqlsugar】大数据写入配置(需要版本5.0.45)
官网连接 https://www.donet5.com/home/Doc?typeId2404 泛型方法 /// <summary> /// 大数据写入(泛型方法) /// </summary> /// <param name"entitys"></param> /// <returns></returns> ///代码中_d…...
ansible运维实战
通过学习ansible自动化运维,初步对ansible有了一定的了解,此次分享两个案例,希望对大家有所帮助 案例一:自动化安装nginx 本次案例目的是ansible自动化安装nginx并配置 首先创建如图所示目录 在主机上安装好nginx,如…...
DDOS分布式拒绝服务攻击
DDOS分布式拒绝服务攻击 简单来说 传统的DOS就是一台或者多台服务对一个受害目标(服务器,路由,ip,国家)进行攻击,当范围过大时就是DDOS。目的就是通过大规模的网络流量使得正常流量不能访问受害目标&…...
如何使用 Python 实现 UDP 通信?
1. UDP通信基础 UDP(用户数据报协议)是一种无连接的传输层协议,它提供了一种不可靠的数据传输服务,但具有较低的延迟和较小的开销。在Python中,可以使用socket模块来实现UDP通信。 2. 实现UDP服务端 import socketd…...
MTK 配置文件梳理
文章目录 MTK 日常配置总结屏幕默认横竖屏显示ro.build.characteristics 属性修改修改点一:build\core\product_config.mk修改点二:build\make\core\main.mk修改是否成功,adb 验证 配置部分系统app handheld_product.mk配置系统属性、第三方应…...
论文笔记:Treat Visual Tokens as Text? But Your MLLM Only Needs Fewer Efforts to See
2024 10月的arxiv 1 主要idea 针对多模态大模型(如LLaVA),提出了一系列高效的剪枝策略 在显著降低计算开销(多达 88%)的同时,保持了模型在多模态任务中的性能表现 2 目前的问题 与文本 token 相比&…...
软考高级架构 —— 10.6 大型网站系统架构演化实例 + 软件架构维护
10.6 大型网站系统架构演化实例 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,主要解决这类问题。 1. 单体架构 特点: 所有资源(应用程序、数据库、文件)集中在一台服务器上。适用场景: 小型网站&am…...
2024美赛数学建模C题:网球比赛中的动量,用马尔可夫链求解!详细分析
文末获取历年美赛数学建模论文,交流思路模型 接下来讲解马尔可夫链在2024年C题中的运用 1. 马尔科夫链的基本原理 马尔科夫链是描述随机过程的一种数学模型,其核心特征是无记忆性。 简单来说,系统在某一时刻的状态只取决于当前状态&#x…...
23种设计模式之状态模式
目录 1. 简介2. 代码2.1 State (定义抽象状态接口)2.2 StartState (实现具体状态类)2.3 EndState (实现具体状态类)2.4 Context (定义上下文类)2.5 Test (测试类…...
Elasticsearch Serverless 中的数据流自动分片
作者:来自 Elastic Andrei Dan 在 Elastic Cloud Serverless 中,我们根据索引负载自动为数据流配置最佳分片数量,从而使用户无需摆弄分片。 传统上,用户会更改数据流的分片配置,以处理各种工作负载并充分利用可用资源。…...
YOLOv10改进,YOLOv10添加U-Netv2分割网络中SDI信息融合模块+GSConv卷积,助力小目标
理论介绍 完成本篇需要参考以下两篇文章,并已添加到YOLOv10代码中 YOLOv10改进,YOLOv10添加U-Netv2分割网络中SDI信息融合模块,助力小目标检测YOLOv10改进,YOLOv10添加GSConv卷积+Slim-neck,助力小目标检测,二次创新C2f结构下文都是手把手教程,跟着操作即可添加成功 目…...
xshell连接虚拟机,更换网络模式:NAT->桥接模式
NAT模式:虚拟机通过宿主机的网络访问外网。优点在于不需要手动配置IP地址和子网掩码,只要宿主机能够访问网络,虚拟机也能够访问。对外部网络而言,它看到的是宿主机的IP地址,而不是虚拟机的IP。但是,宿主机可…...
sql的where条件中使用case when
场景: 1、使用oracle数据库,数据类型为number,需要正无穷值。 2、数据表中有两个金额值,最大值和最小值, 如10~20, 30 ~40,40以上,数据库中这样设计 id name min max 1 j 10 20 2 …...
MacOS 上以源码形式安装 MySQL 5.7
以下是在 macOS 上从源码安装 MySQL 5.7 的步骤: 前置条件 安装 Homebrew:如果你还没有安装 Homebrew,可以在终端中运行以下命令进行安装: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install…...
MySQL 事务隔离级别详解
一、事务的基本概念 (一)什么是事务 事务是一个逻辑工作单元,由一组数据库操作组成。这些操作要么全部成功执行,要么全部回滚,以确保数据库的一致性。事务具有以下四个特性,通常被称为 ACID 特性ÿ…...
C语言——高精度问题
1、高精度计算的本质:竖式计算; 2、适用解决超出long long int 范围的大整数计算 #include<stdio.h> #include<string.h> #define N 100 char str1[N4]{0},str2[N4]{0}; int arr1[N4]{0},arr2[N4]{0}; int ans[N5]{0};//将字符串转化成整型…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

