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};//将字符串转化成整型…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...

