第四章.神经网络—单层感知器

news2024/11/14 3:10:19

第四章.神经网络

4.1 单层感知器

1.单层感知器示意图

1).第一种表示方法:

在这里插入图片描述

  • 举例说明:
    在这里插入图片描述

2).第二种表示方法:

在这里插入图片描述

  • 公式推导:
    在这里插入图片描述
  • 举例说明:
    在这里插入图片描述
    预测值(y)和标签值(t)相同,停止迭代循环.

2.学习率η

1).η取值说明:

  • η取值一般在0-1之间
  • η太大容易造成权值调整不稳定,η太小容易造成权值调整太慢,调整次数过多

2).不同学习率:

在这里插入图片描述

3.模型收敛条件

  • 误差小于某个预先设定的较小的值(例如:loss<0.1时,结束迭代)
  • 两次迭代之间的权值变化已经很小
  • 设定最大迭代次数,当迭代超过最大次数就停止(常用方式)

4.单层感知器示例1

1).题目:

  • 假设平面坐标系上有四个点,(3,3),(4,3)这两个点是标签1,(1,1),(0,2)这两个点的标签为-1,构建神经网络来分类。

2).思路:

  • 我们要分类的数据是一个二维数据,我们只需要两个输入节点,我们可以把神经元的偏置值也设置为一个输入节点,这样我们就有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函数

  • 斜率(k)和截距(b)的公式推导:
    ①.数据的输入:Xi=[1,xi ,yi ],对应的权重W=[w0 ,w1 ,w2 ]; 求∑ XiW=0;
    ②.即求:w0 +xiw1 +yiw2 = 0
    ③.所以:yiw2 = -w0 -xiw1
    ④.即:yi= -(w0/w2)-(w1/w2)xi
    ⑤.斜率k=-(w1/w2)
    ⑥.截距b=-(w0/w2)

3).代码:

import numpy as np
import matplotlib.pyplot as plt

# 输入数据
X = np.array([[1, 3, 3], [1, 4, 3], [1, 1, 1], [1, 0, 2]])  # shape:[4,3]

# 标签
Y = np.array([[1], [1], [-1], [-1]])  # shape:[4,1]

# 初始化权值,3行1列,取值范围[-1,1],有多少个输入就有多少行,有多少个输出就有多少列
W = (np.random.random([3, 1]) - 0.5) * 2  # shape:[3,1]

# 学习率
lr = 0.11

# 神经网络输出
Output = 0


# 更新权值的函数
def update():
    global X, Y, W, lr
    Output = np.sign(np.dot(X, W))  # shape:[4,1]
    Wi = lr * (X.T.dot(Y - Output)) / int(X.shape[0])  # 除以int(X.shape[0])是因为lr*(X.T.dot(Y-Output))是误差和
    W = W + Wi


epochs = 100
for i in range(epochs):
    update()
    print(i, W)
    Output = np.sign(np.dot(X, W))  # shape:[4,1]
    if (Output == Y).all():
        print('finished')
        print('epochs:', i)
        break

# 正样本
x1 = [3, 3]
y1 = [4, 3]

# 负样本
x2 = [1, 0]
y2 = [1, 2]

# 计算分界线的斜率以及截距
k = -W[1] / W[2]
b = -W[0] / W[2]

print('k=', k)
print('b=', b)

xdata = (0, 5)

# 创建画布
plt.figure()
plt.scatter(x1, y1, c='b', marker='o')
plt.scatter(x2, y2, c='y', marker='x')
plt.plot(xdata, xdata * k + b, 'r')
plt.show()

4).结果展示:

模型的测试结果不是很理想,存在分类错误的情况。
在这里插入图片描述

5.单层感知器示例2—异或问题

若a,b两个值相同,则异或结果为0,若a,b两个值不同,则异或结果为1。

1).代码:

import numpy as np
import matplotlib.pyplot as plt

# 输入数据
X = np.array([[1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]])

# 标签
Y = np.array([[-1], [1], [1], [-1]])

# 随机初始化权重
W = (np.random.random([3, 1]) - 0.5) * 2
print(W)

# 学习率
lr = 0.11

# 神经网络的输出
Output = 0


# 权重更新函数
def update():
    global X, Y, W, lr
    Output = np.sign(np.dot(X, W))
    Wi = lr * (X.T.dot(Y - Output)) / int(X.shape[0])
    W = W + Wi


epochs = 100
for i in range(epochs):
    update()
    if (Output == Y).all():
        print('Finished')
        print('Weight:', W, ',epoch:', i)
        break

# 正样本
x1 = [0, 1]
y1 = [1, 0]

# 负样本
x2 = [0, 1]
y2 = [0, 1]

# 计算分界线的斜率和截距
k = -W[1] / W[2]
b = -W[0] / W[2]
print('k=', k)
print('b=', b)

x_data = [-2, 3]
y_data = k * x_data + b

# 画图
plt.figure()
plt.scatter(x1, y1, c='b', marker='o')
plt.scatter(x2, y2, c='y', marker='x')
plt.plot(x_data, y_data, 'r')
plt.show()

2).结果展示:

通过模型的测试结果可知,该方法不适用于非线性的问题。
在这里插入图片描述

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

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

相关文章

Python流程控制语句之跳转语句

上一篇&#xff1a;Python流程控制语句之循环语句 文章目录前言一、break 语句二、continue 语句三、pass 空语句总结前言 上一篇博客我们讲解了Python中的循环语句&#xff0c;知道循环条件一直满足时&#xff0c;代码将会一直执行下去&#xff0c;就像一辆迷路的车&#xff…

《满江红》《流浪地球2》孰能胜出,元宇宙电影能否成为票房黑马?

截止1月28日12时&#xff0c;2023年春节档期总票房达67.57亿元。其中&#xff0c;《满江红》以26.05亿元票房居2023年春节档票房榜榜首&#xff1b;《流浪地球2》位居第二&#xff0c;票房成绩为21.63亿元。摆在未来人类面前就两条路,一条向外星辰大海,一条向内元宇宙。《流浪地…

微信小程序017音乐播放器系统 php java

小程序前端框架&#xff1a;uniapp 小程序运行软件&#xff1a;微信开发者 后端技术:javaSsm(SpringSpringMVCMyBatis)vue.js 后端开发环境:idea/eclipse 数据库:mysql 基于音乐播放器小程序的设计基于现有的手机&#xff0c;可以实现首页、个人中心、用户管理&#xff0c;音乐…

拉伯证券|开盘暴跌20%,三文鱼第一股业绩变脸!

超900家公司成绩预亏&#xff0c;多家公司发布成绩预告后大跌。 佳沃食品今天开盘20%跌停&#xff0c;这是该股史上开盘最大跌幅。早盘该股成交额显着扩展&#xff0c;半日成交额超越3.5亿元&#xff0c;收盘跌18.04%。 资料显现&#xff0c;佳沃食品是优质蛋白食品领域的大消…

python入门教程(非常详细),python贪吃蛇最简单代码

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python编程代码大全设计入门&#xff0c;python入门教程(非常详细)&#xff0c;现在让我们一起来看看吧&#xff01; 1、python编程例子有哪些&#xff1f; python编程经典例子&#xff1a; 1、画爱心表白、图形都是由…

除了Navicat破解版、DBeaver,免费还好用的数据库管理工具/SQL工具还有推荐吗?

很多国内SQL学习者和开发者对Navicat、DBeaver等国外数据库管理工具已经很熟悉了。但是&#xff0c;有没有比他们更适合SQL开发者的数据库管理/SQL工具呢&#xff1f;这里&#xff0c;笔者结合自己的调研来聊一下。 笔者做过一些用户调研。 Navicat虽然功能强大&#xff0c;但…

win10安装opencv

第一步&#xff1a;会有skbuild&#xff0c;cmake等依赖库报错&#xff0c;先安装依赖pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-buildpip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple cmake第二步&#xff1a;pip3 install opencv-python若…

Python数据可视化之折线图

Python数据可视化之折线图 提示&#xff1a;前言 Python数据可视化之折线图 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python数据可视化之折线图前言一、导入包二、选择数据集三、折线图四、图形的大小和图表…

什么游戏视频录制软件比较好?10 款的游戏录屏软件你值得收藏

市面上有各种各样的游戏捕捉软件&#xff0c;当然&#xff0c;它们都声称是有史以来最好的游戏软件。但有些比其他的更好&#xff0c;最适合您的游戏记录器在很大程度上取决于您要玩的游戏以及您运行的 PC 类型。 目前最好的游戏屏幕录像机 让我们来探索自称是最佳游戏屏幕录…

NetLogo 语法总结

NetLogo 语法总结NetLogo语法的怪异。。。。。。NetLogo语法关键在于你要把它当成一个软件使用&#xff0c;而不是一个通用的编程语言。首先&#xff0c;上网搜搜setup go是怎么用的&#xff0c;或者买本书&#xff0c;本文不再赘述NetLogo世界turtlespatcheslinksobserver(上帝…

np.savetxt()存储数据

前言 使用np.savetxt()方法可以将数据保存为txt文件或者是csv文件。 1 np.savetxt()存储txt文件 1-1 基础参数 numpy.savetxt(fname,arrry,fmt%.18e,delimiter ,newline\n,header,footer,comments# ,encodingNone,) 1-2 参数详解 fname:要存入的文件、文件名、或生成器。 ar…

令人窒息的百度面试题(正值换工作季,还不收藏???)

最近去网上找了一些百度的面经&#xff0c;冥冥之中在众多的面试题中打开了下边两个面试题&#xff1a; 2021百度前端社招面经 百度前端面试题分享&#xff0c;带答案 看完之后我直呼“哇哦~”&#xff0c;全部在我的射程范围之内。我该不会如此幸运到问的全会吧。 是的&am…

横扫150道MySQL大厂面试题【视频+文档】

MySQL是程序员面试的必考题&#xff0c;因其体系庞大&#xff0c;架构设计复杂&#xff0c;是面试的重点与难点。教程基于大厂面试的充分调研&#xff0c;深度挖掘用人企业的标准与要求&#xff0c;针对MySQL知识体系和高频面试题&#xff0c;把内容分为五大部分&#xff1a;My…

如何保障MES系统实施?实现“大物流、小生产”

MES系统的成功应用不只是单单将软件系统开发出来&#xff0c;然后直接安装应用就可以进行运行做工。MES系统的运行需要从多个方面出发&#xff0c;确保软件系统的成功实施部署&#xff0c;然后在生产当中发挥自己的作用。实际情况开发为了确保MES系统的正常运行&#xff0c;必须…

一年测试经验,终于找到大厂的工作了

前两天有个小伙伴在后台留言&#xff0c;最近的面试越来越难了&#xff0c;尤其是技术面&#xff0c;考察得越来越细&#xff0c;庆幸的是最终顺利找到了某大厂工作。 一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识 比如果这样的问题&#xff1a; 所…

Springboot+vue+vue在线日程管理系统 java

&#xff08;1&#xff09;应用主类SpringbootApplication应该放于根目录下springboot下&#xff0c;通常我们会在主类中做一些框架配置 扫描等配置&#xff0c;SpringbootApplication放在根目录下可以可以帮助程序减少手工配置来加载到我们希望被Spring加载的内容。   &…

调试日志:RK3568 配置GC2053摄像头驱动

在设备树文件代码中添加 gc2053 设备节点 &i2c2 {status "okay";pinctrl-0 <&i2c2m1_xfer>;/* split mode: lane0/1 */gc2053: gc205337 {status "okay";compatible "galaxycore,gc2053";// 需要与驱动中的匹配字符串一致reg …

2-3-1-2、MySQL中的目录和文件

目录bin 目录服务器程序mysqldmysqld_safemysql.servermysqld_multi客户端程序mysqladminmysqldumpmysqlbackup启动选项和参数配置参数文件参数的查看和修改数据目录MySQL 中的数据目录表在文件系统中的表示lnnoDB 是如何存储表数据的系统表空间(system tablespace)独立表空间(…

macOS 配置flutter 环境

flutter 中文网 https://book.flutterchina.club 官方 :https://docs.flutter.dev/get-started/install/macos (本文基于此) 1. 本文在 MacOS 环境下配置 2. 要安装和运行Flutter&#xff0c;您的开发环境必须满足以下最低要求: 操作系统:macOS 磁盘空间:2.8 GB(不包括IDE/to…

哪款无线耳机音质好又便宜?性价比高音质好的蓝牙耳机推荐

无线蓝牙耳机发展至今&#xff0c;在各种性能的表现上越来越稳定、先进。人们在选择蓝牙耳机时可以根据自身需求来选择最适合的那款&#xff0c;而性价比和音质也成为了大多数人选择的关键要素之一。那么&#xff0c;哪款无线耳机音质好又便宜&#xff1f;下面&#xff0c;我来…