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

15、深度学习-自学之路-反向传播程序展示、激活函数的应用,反向权重的更新、2层神经网络的应用,输入输出相关性的理解。

这个里面要学习和展示的内容会比较多,需要好好的认真思考

第一个要思考的就是:输入和输出相关性的理解,我们先拿一层的神经网络来说明一下,

输入有2个因素,对应有两个权重,输出有一个结果。

输入的两个因素,对应和两个权重乘积相加后,就是我们的预测值,这个过程大家应该是没有什么问题吧,那么我们发现一个问题,如果此时预测值和真实值的误差是一个负值,那么也就是说现在的输入的两个因素中的,权重较大的那个带来的误差比较大。

反过来说,如果输入的2个因素和权重乘积后相加的预测值和真实值之间的误差是一个真值,且误差很小,那么说明此时的在输入中的权重大的那个值和输出的相关性就高。

这个里面就引入了相关性的问题,因为我们在找误差最小值,更新权重的时候,其实就是在找每个输入的因素和输出因素的之间的相关性,也就是找到决定性的因素。就如同红绿灯一样,如果绿灯时亮(输入绿灯为1),那么现在就是可以行走(输出结果是1)。也就是是否可以行走和绿灯的亮灭是由关键作用的。相关性特别高。

第二个要思考的就是:如果一个人在处理输入数据的时候,他不知道输入和输出的相关性由多大。他给的数据很多,有的输入和输出有相关性,有的输入和输出没有相关性。没有相关性的输入就会把权重分走一部分,那么就导致强相关的不能强影响。导致我们识别的概率变小。或者我们也识别不出来。就如同红绿灯的问题,本来你只需看红绿灯就行,但是你不仅仅观察了红绿灯的亮灭,你又去观察了行人男人的数量,或者是汽车的数量,或者是马路的宽度,或者是别的很多的输入值。那么这样你就输入值由2个变成了很多。如果数量足够多的时候,你会发现,绿灯和是否行走的权重被拉低了很多,当绿灯的权重被拉低到0.5以下的时候,即使现在是绿灯,我们也不敢随便行走了。不知道大家是否明白,可以自己再想想。

第三个要思考的就是:基于上面的两个思考,于是我们想到了一个办法,一个可以增强和消弱权重的方法,就是引入2层神经网络,同时引入激活函数和反向传播。

为什么引入2层神经网络呢,是因为如果一层神经网络,输入和输出的值之间永远都是线性的,就是没有办法排查其他干扰项。

如果引入了2层神经网络,当输入和权重计算完成给第一层的输出时,如果此时第一层的输出值大于0的,那么说明你这个值会对第二层的预测值产生影响,那么我们就保留这个值,如果此时第一层的输出值小于0的,我们就认为对输出没有影响,或者由反的影响,那我们就把第一层输出的小于0的值让它归0,这样减少反向的影响。

同时在第二层输出到第一层输出的权重更新时,如果第一层的输出值是大于0的,那我们就把第一层的输出值变成1,反向增强这个层的值,在经过第一层输出层到输入层时,就是把输入层到第一层输出层的权重进行加强。

这样经过多轮训练以后,输入层和第一层输出层的权重大的,就是相关性强的,权重小的就是相关性弱的,这样就权重弱的可以分的相关性会少很多。保证了输入和输出的强相关性。

在这里的使用的就是relu激活函数。

具体的程序如下;

import numpy as npnp.random.seed(1)
def relu(x):return (x>0)*xdef relu2deriv(output):return output>0streetlights = np.array([[1,0,1],#红灯亮,绿灯灭,黄灯亮[0,1,1],#红灯灭,绿灯亮,黄灯亮[0,0,1],#红灯灭,绿灯灭,黄灯亮[1,1,1]#红灯亮,绿灯亮,黄灯亮
])#沃恩会发现单单用肉眼观察我们是不知道输入和输出的相关性的,但是经过处理之后,我们依然可以得到强相关的输入因素绿灯。从最后的测试中我们也知道了我们计算权重是对的。walk_vs_stop = np.array([0,1,0,1]).T
#print("walk_vs_stop"+str(walk_vs_stop))
alpha = 0.2hidden_size = 4
weights_0_1 = 2*np.random.random((3,hidden_size)) - 1
#print("weight_0_1"+str(weights_0_1))
weights_1_2 = 2*np.random.random((hidden_size,1)) - 1
#print("weight_1_2"+str(weights_1_2))for interation in range(60):layer_2_error = 0for i in range(len(streetlights)):layer_0 = streetlights[i:i+1]#print("streetlights[i:i+1]"+str(streetlights[i:i+1]))layer_1 = relu(np.dot(layer_0,weights_0_1))#print("layer_1"+str(layer_1))layer_2 = np.dot(layer_1,weights_1_2)#print("layer_2"+str(layer_2))layer_2_error +=np.sum((layer_2 - walk_vs_stop[i:i+1])**2)#print("layer_2_error"+str(layer_2_error))#print("walk_vs_stop[i:i+1]"+str(walk_vs_stop[i:i+1]))layer_2_delta = (layer_2 - walk_vs_stop[i:i+1])#print("layer_2_delta"+str(layer_2_delta))layer_1_delta = layer_2_delta.dot(weights_1_2.T)*relu2deriv(layer_1)#print("relu2deriv(layer_1)"+str(relu2deriv(layer_1)))#print("layer_1_delta"+str(layer_1_delta))weights_1_2 -= alpha*layer_1.T.dot(layer_2_delta)#print("weights_1_2"+str(weights_1_2))weights_0_1 -= alpha*layer_0.T.dot(layer_1_delta)#print("weights_0_1"+str(weights_0_1))if(interation%10==9):print("error"+str(layer_2_error))print("weights_0_1"+str(weights_0_1))print("weights_1_2"+str(weights_1_2))print()print()print()#代入数据测试使用,如程序
#激活函数不能变,延续使用激活函数可以得到最精确的数据,在数据量不够的情况下       
layer_text = [0,1,0]
layer_0 = layer_text
layer_1 = relu(np.dot(layer_0,weights_0_1))
print("text_layer_1"+str(layer_1))
layer_2 = np.dot(layer_1,weights_1_2)
print("text"+str(layer_2))

运行结果为:

相关文章:

15、深度学习-自学之路-反向传播程序展示、激活函数的应用,反向权重的更新、2层神经网络的应用,输入输出相关性的理解。

这个里面要学习和展示的内容会比较多,需要好好的认真思考 第一个要思考的就是:输入和输出相关性的理解,我们先拿一层的神经网络来说明一下, 输入有2个因素,对应有两个权重,输出有一个结果。 输入的两个因…...

【JavaEE进阶】依赖注入 DI详解

目录 🌴什么是依赖注入 🎄依赖注入的三种方法 🚩属性注⼊(Field Injection) 🚩Setter注入 🚩构造方法注入 🚩三种注⼊的优缺点 🌳Autowired存在的问题 🌲解决Autowired存在的…...

医疗影响分割 | 使用 Swin UNETR 训练自己的数据集(3D医疗影像分割教程)

<Swin UNETR: Swin Transformers for Semantic Segmentation of Brain Tumors in MRI Images> 代码地址:unetr 论文地址:https://arxiv.org/pdf/2201.01266 一、下载代码 在Github上下载代码,然后进入SWINUNETR,前两个是针对两个数据集(BRATS21、BTCV)的操作,这里…...

IGBT的两级关断

IGBT&#xff08;绝缘栅双极型晶体管&#xff09;的两级关断&#xff08;Two-stage turn-off&#xff09;是一种优化关断过程的方法&#xff0c;主要用于减少关断时的电压过冲和dv/dt&#xff08;电压变化率&#xff09;过高的问题&#xff0c;特别是在大功率应用中&#xff08…...

微服务与网关

什么是网关 背景 单体项目中&#xff0c;前端只用访问指定的一个端口8080&#xff0c;就可以得到任何想要的数据 微服务项目中&#xff0c;ip是不断变化的&#xff0c;端口是多个的 解决方案&#xff1a;网关 网关&#xff1a;就是网络的关口&#xff0c;负责请求的路由、转发…...

“云计算一哥”一口气发布6个大模型、3nm芯片!多模态还要搞Any-to-Any

金磊 发自 拉斯维加斯量子位 | 公众号 QbitAI 就在刚刚&#xff0c;云计算一哥亚马逊云科技&#xff0c;在大模型这件事儿上搞了波大的—— 亚马逊CEO Andy Jassy亲自站台re:Invent24&#xff0c;发布自家新款AI多模态系列大模型&#xff0c;名曰Amazon Nova。 而且是一口气涵盖…...

pytest生成报告no tests ran in 0.01s

除了基本的环境配置、用例名要以test_开头&#xff0c;有个地方是我自己忽略了&#xff0c;在执行时没有指定用例文件&#xff0c;所以没有找到。 if __name__ __main__:pytest.main(["testcases/test_demo.py","-svq", __file__, --alluredir./allure-r…...

如何修改DNS解析?

DNS(域名系统)就像互联网的“电话簿”&#xff0c;负责将我们输入的网址转换为计算机能够理解的IP地址。如果DNS解析出现问题&#xff0c;访问网站就会受到影响。那我们该如何修改DNS解析呢?接下来&#xff0c;我们就来介绍一下这个话题。 为什么要修改DNS解析? 使用默认的…...

PyTorch 中 `torch.cuda.amp` 相关警告的解决方法

在最近的写代码过程中&#xff0c;遇到了两个与 PyTorch 的混合精度训练相关的警告信息。这里随手记录一下。 警告内容 警告 1: torch.cuda.amp.autocast FutureWarning: torch.cuda.amp.autocast(args...) is deprecated. Please use torch.amp.autocast(cuda, args...) i…...

微服务组件LoadBalancer负载均衡

SpringCloud 从 2020.0.1 版本开始,移除了 Ribbon 组件&#xff0c;使⽤Spring Cloud LoadBalancer 组件来代 替 Ribbon 实现客户端负载均衡 loadbalancer负载均衡&#xff1a; 复制一份provider项目&#xff0c;服务名一致&#xff0c;端口号不一致&#xff0c;让consumer调…...

如何本地部署DeepSeek

第一步&#xff1a;安装ollama https://ollama.com/download 打开官网&#xff0c;选择对应版本 第二步&#xff1a;选择合适的模型 https://ollama.com/ 模型名称中的 1.5B、7B、8B 等数字代表模型的参数量&#xff08;Parameters&#xff09;&#xff0c;其中 B 是英文 B…...

vite + axios 代理不起作用 404 无效

vite axios 代理不起作用 先看官方示例 export default defineConfig({server: {proxy: {// 字符串简写写法/foo: http://localhost:4567,// 选项写法/api: {target: http://jsonplaceholder.typicode.com,changeOrigin: true,rewrite: (path) > path.replace(/^\/api/, )…...

centos7 升级openssl并安装python3

参考文章&#xff1a;https://www.cnblogs.com/chuanzhang053/p/17653635.html 卸载已有版本 yum remove -y openssl openssl-devel下载1.1版本 wget https://www.openssl.org/source/openssl-1.1.1v.tar.gztar -zxf openssl-1.1.1v.tar.gz 查看openssl.conf文件的目录 fin…...

使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8

文章目录 1. 安装 SDKMAN!2. 查找可用的 Java 8 版本3. 安装 Java 84. 验证安装5. 切换 Java 版本&#xff08;可选&#xff09;6. 解决 ARM 架构兼容性问题总结 可以使用 SDKMAN! 在 Mac&#xff08;包括 ARM 架构的 M1/M2 芯片&#xff09;上安装 Java 8。SDKMAN! 是一个强大…...

【干活分享】2025年可以免费问答的一些GPT网站-deepseek等免费gpt

2025年已经到来&#xff0c;大家也都陆续回归到忙碌的工作中。在新的一年里&#xff0c;如何更高效地完成工作任务&#xff0c;提升工作效率&#xff0c;是很多人关心的问题。今天&#xff0c;就为大家分享一些实用性很强的GPT网站&#xff0c;帮助大家在工作中事半功倍。 Dee…...

20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题

20250211解决荣品的RK3566核心板在Android13下出现charge_extrem_low_power的问题 2025/2/11 17:45 缘起&#xff1a;荣品的RK3566核心板在Android13下&#xff0c;出现charge_extrem_low_power之后就直接挂住了。 由于我司使用了CW2217这个电量计&#xff0c;没有使用核心板自…...

MapReduce到底是个啥?

在聊 MapReduce 之前不妨先看个例子&#xff1a;假设某短视频平台日活用户大约在7000万左右&#xff0c;若平均每一个用户产生3条行为日志&#xff1a;点赞、转发、收藏&#xff1b;这样就是两亿条行为日志&#xff0c;再假设每条日志大小为100个字节&#xff0c;那么一天就会产…...

算法02-各种排序算法

各种常见排序算法总结 一. 冒泡排序 (Bubble Sort) 冒泡排序是一种简单的排序算法。它重复地遍历要排序的列表&#xff0c;比较相邻的元素&#xff0c;并交换它们的位置&#xff0c;直到整个列表排序完成。 A、说明&#xff1a; 特点&#xff1a; 通过不断交换相邻元素&am…...

python基础入门:8.1项目1:爬虫与数据分析

Python爬虫与数据分析全流程实战&#xff1a;从数据采集到可视化呈现 # 综合案例&#xff1a;电商价格监控分析系统 import requests from bs4 import BeautifulSoup import pandas as pd import matplotlib.pyplot as plt# 配置参数 HEADERS {User-Agent: Mozilla/5.0 (Wind…...

git 克隆指定 tag 的项目

git 克隆指定 tag 的项目 一、克隆指定tag的项目二、验证克隆结果 一、克隆指定tag的项目 以 tinyxml2项目 为例说明&#xff1a; git clone --branch V10.0.0 https://github.com/leethomason/tinyxml2.git解释&#xff1a; git clone&#xff1a;这是克隆一个远程仓库的命…...

DeepSeek学习笔记之——初识DeepSeek

春节假期回来已经有一周时间了&#xff0c;这假期综合症的症状是一点没减~~~ 假期期间除了这个欢乐详和的节日气氛&#xff0c;就数DeepSeek最火热了&#xff01;&#xff01;&#xff01; 什么是DeepSeek? DeepSeek是一款由国内人工智能公司研发的大型语言模型&#xff0c;…...

Linux 调用可执行程序

Linux 调用可执行程序 1. system() 函数1.1 system() 函数的声明1.2 system() 函数的不同场景返回值1.3 system() 函数的代码示例 2. exec() 函数族2.1 exec() 函数族的声明2.2 exec() 函数族执行失败的情况2.3 exec() 函数族的代码示例 3. exec() 与 system() 的区别以及使用注…...

MVCC面试怎么答

说到mvcc这个比较抽象的概念&#xff0c;很多人都有点束手无策。因为它实际上偏理论&#xff0c;实际应用中很难用到。但在面试中出现频率又很高&#xff0c;一问大部分都G。所以怎么精简回答并且能抓住重点就很关键了。往上详细解说MVCC的太多了&#xff0c;我这里没那么多废话…...

用Go实现 SSE 实时推送消息(消息通知)——思悟项目技术4

目录 简介 工作原理 例子 使用场景 简介 SSE&#xff08;Server - Sent Events&#xff09;是一种允许服务器向客户端实时推送更新的 Web 技术。是一种基于 HTTP 协议的单向通信机制&#xff0c;服务器可以在客户端建立连接后&#xff0c;持续不断地向客户端发送事件流。客…...

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 0基础…...

vue3:动态渲染后端返回的图片

问&#xff1a; div classleft-png 这里我用css设置了他的背景图片&#xff0c;但是现在我希望改为后端返回的图片&#xff0c;怎么写&#xff1f; 后端返回数据&#xff1a; const centerdata {img:;xxxx,title,xxxx,num:xxxx}&#xff1f; 回答&#xff1a; 好的&#xff…...

DeepSeek小白初识指南

1.什么是DeepSeek&#xff1f; DeepSeek是一个基于大语言模型&#xff08;LLM&#xff09;的智能助手&#xff0c;能够处理自然语言理解、生成、对话等任务。它广泛应用于聊天机器人、内容生成、数据分析等领域。 2.DeepSeek和OpenAI等大模型差异&#xff1f; 虽然DeepSeek和Op…...

图像锐化(QT)

如果不使用OpenCV&#xff0c;我们可以直接使用Qt的QImage类对图像进行像素级操作来实现锐化。锐化算法的核心是通过卷积核&#xff08;如拉普拉斯核&#xff09;对图像进行处理&#xff0c;增强图像的边缘和细节。 以下是一个完整的Qt应用程序示例&#xff0c;展示如何使用Qt…...

38.社区信息管理系统(基于springboothtml)

目录 1.系统的受众说明 2.需求分析及相关技术 2.1设计目的 2.2社区信息管理系统的特点 2.3可行性分析 2.3.1技术可行性 2.3.2运行可行性 2.4系统设计 2.4.1系统功能分析 2.4.2管理员权限功能设计 2.4.3业主权限功能设计 2.5系统的技术介绍 2.5.1 Html 2.5.2 Aja…...

游戏引擎学习第98天

仓库:https://gitee.com/mrxiao_com/2d_game_2 开始进行一点回顾 今天的目标是继续实现正常贴图的操作&#xff0c;尽管目前我们还没有足够的光照信息来使其完全有用。昨日完成了正常贴图相关的基础工作&#xff0c;接下来将集中精力实现正常贴图的基本操作&#xff0c;并准备…...