原理的学习

news2024/10/6 1:46:16

参考的是这个书:Python神经网络编程 (豆瓣) (douban.com)

小白,0基础,也看不懂其它更复杂的书……

01.正向计算

从左到右,根据输入值,得到输出值

总览

这就是神经元的数学形式:

阈值函数

sigmoid函数:

具体是这个形状:

输入输出

大概是这么算的:

里面有个组合输入的概念

这个是具体的计算过程:

矩阵形式

组合输入,是个先乘法再加法的过程;

矩阵乘法,好像也是;

所以,可以把组合输入写成矩阵乘法的形式:

这是封装啊……封装成框架,然后就通用了:

X=WI

W是权重矩阵:weight

每层2个节点,它就是2*2的规模;

I是输入矩阵,input

每层2个节点,它就是2*1的规模;

这个矩阵的规模,和上一层,当前层的节点数,都是相关的。

02.反向计算

从右到左,计算出预期的值与实际的值的差异。

这个差异值是用来调节权重的,所以,要为每个权重分别计算差异值。

怎么算?

它是组合输入的,所以这个误差是多个权重共同造成的

权重,是边的权重,两头都有的才叫边,只有一头的叫点

情况1

输出层3和隐藏层2,之间的链接,怎么分误差?

没毛病,完了吗?还没完;输入层1和隐藏层2之间的链接,还没分到误差。这个怎么算?

情况2

首先,得有误差,才能反向传播

哪来的误差,这个又不是输出层

通过重组,得到误差:重组误差等于链接上误差的和;链接上的误差是什么?就是上一步按比例分割得到的。

矩阵形式

能不能也封装成矩阵形式?

重组误差等于各链接上分割误差的和,分割误差是用乘法算出来的;先乘法再加法……矩阵乘法也是这俩

而且,从矩阵下标上,可以看出来,它确实是反向传播。

这个矩阵,也可以当成是正向计算时候用的权重矩阵的转置。

03.求导与更新

猜数字,如果5大了,可能会改成3。

现在,每个权重都按比例分到了相应的误差。怎么根据误差逐个更新权重?

从计算的过程可以看出来:误差和输出有关,输出又和权重有关,所以误差和权重有关;

梯度下降

(14条消息) 牛顿法-梯度下降法_leo_fighting的博客-CSDN博客_梯度下降示意图

根据误差更新权重,单个权重是个标量

已有标量X,更新后是X+ΔX

那么,ΔX,是正是负?

和斜率反着来就行了;斜率正数,就正,斜率负数,就负

负号有了,具体的值是多少呢?大概和斜率绝对值有关吧

一个标量X,就是这么更新的。

如果误差和8个权重标量有关呢?如上图。

一元的是斜率;多元的就叫梯度了,梯度是个向量,每个分量都是偏导的形状

无非就是1+1和的关系,重复而已

偏导

那么,误差关于权重的偏导怎么求?

2和3之间的是这么算的:

1和2之间的可以类比:

矩阵形式

能不能也封装成矩阵形式?

这个不存在什么先乘法再加法的情况;但是先写写看吧

可以把那3个部分,抽象成函数的形式,俩变量,ij

怎么看呢?

先按住j——让j当常数【偏导就是这么干的】;

再放开i——让i作变量

就看到结构上的规律了。

后记

原理大概就这么多。

书的后面好像还有个实际应用。

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

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

相关文章

TIA博途_通过不定长数组实现冒泡排序的具体方法示例(封装FC全局库)

通过不定长数组实现冒泡排序的具体方法示例(封装FC全局库) 使用这种不定长数组时要注意,低版本的博途可能不支持这种方法(我自己尝试的V15版本时失败了,无法实现),本例中使用的是TIA博途V17版本。 具体步骤可参考如下: 如下图所示,打开博途后新建一个项目,添加一个12…

Java监听器的理解与实现

文章目录初识监听器Listener接口分类ServletContext监听器HttpSession监听器ServletRequest监听器Java代码实现ServletContextListenerServletContextAttributeListenerHttpSessionListenerHttpSessionAttributeListenerHttpSessionActivationListenerHttpSessionBindingListen…

在 4G 内存的机器上,申请 8G 内存会怎么样?

在 4GB 物理内存的机器上,申请 8G 内存会怎么样? 这个问题在没有前置条件下,就说出答案就是耍流氓。这个问题要考虑三个前置条件: 操作系统是 32 位的,还是 64 位的?申请完 8G 内存后会不会被使用&#x…

【机器学习】集成学习

1.什么是集成学习 集成学习的基本思想是结合多个学习器组合成一个性能更好的学习器。这类方法会训练多个弱学习器(基学习器)并将它们输出的结果以某种策略结合起来组成一个强学习器。 2.集成学习的几种方法 根据个体学习器的生成方式,集成学…

手把手教你用React Hook和TypeScript从零实现虚拟滚动列表组件

前言 k8s 全称 kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,集应用的部署和运维,负载均衡,服务发现和扩容,版本回滚于一身,越来越多的公司正在拥…

linux集群技术(二)--keepalived(高可用集群)(二)

案例1--keepalived案例2--keepalived Lvs集群1.案例1--keepalived 1.1 环境 初识keepalived,实现web服务器的高可用集群。 Server1: 192.168.26.144 Server2: 192.168.26.169 VIP: 192.168.26.190 1.2 server1 创建etc下的…

02-04 周六 图解机器学习 SVM 支持向量机分类学习

02-04 周六 图解机器学习 SVM 支持向量机分类学习时间版本修改人描述2023年2月4日11:15:16V0.1宋全恒新建文档 环境搭建 首先搭建jupyter环境,方便可视化 (base) rootnode33-a100:~# docker run --name sqh-learn -d -p 10088:8888 -it 10.101.12.128/framework/ju…

Qt-QProcess-启动子进程-控制台进程隐藏-获取子进程标准输出和返回码

文章目录1.隐藏控制台程序1.1.控制台程序生成即隐藏1.2.调用程序隐藏控制台2.QProcess2.1.基础用法-start和startDetached2.2.获取子进程的标准输出3.代码范例3.1.等待进程执行完毕,获取所有的输出3.2.子进程返回信号3.3.进程是否启动3.4.执行命令行3.5.与子进程交互…

GIT客户端安装

步骤1:运行“Git-2.13.1-64-bit.exe”,并点击“运行”按钮(默认)步骤2:许可信息页面,点击“Next”(默认)步骤3:选择安装路径(默认)步骤4&#xff…

记一次 .NET 某医保平台 CPU 爆高分析

一:背景 1. 讲故事 一直在追这个系列的朋友应该能感受到,我给这个行业中无数的陌生人分析过各种dump,终于在上周有位老同学找到我,还是个大妹子,必须有求必应 😁😁😁。 妹子公司的…

IDEA高效插件和设置

安装好Intellij idea之后,进行如下的初始化操作,工作效率提升十倍。 一. 安装插件 1. Codota 代码智能提示插件 只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。 原因是它学习了我的项目代码&…

力扣-从不订购的客户

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:183. 从不订购的客户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果总结前言…

2月编程语言排行榜谁还没有看?

近日,TIOBE公布了2023年2月编程语言排行榜,本月各个语言表现如何?谁又摘得桂冠?一起来看看吧! TIOBE 2月Top15编程语言: 详细榜单查看TIOBE官网 https://www.tiobe.com/tiobe-index/ 关注IT行业的小伙伴们…

Qt音视频开发15-动态切换解码内核的设计

一、前言 动态切换解码内核这个需求也是源自客户的真实需求,既然是动态切换,那肯定是运行期间切换,而不是通过改变标志位重新编译程序来切换,最开始做的就是这种方式,这样就是实现起来简单,但是用起来不够…

OpenGL ES基础简介

简介 视频的渲染源是 YUV 或者 RGBA 格式的数据,这种数据是描述画面最基础的格式,其中 YUV 常用在视频的原始格式中,RGBA 常用在一些图像的原始格式上。 目前各个平台最终渲染到屏幕上的都是 RGBA 格式的,因为硬件对屏幕上的设计…

【可视化实战】Python 绘制出来的数据大屏真的太惊艳了

今天我们在进行一个Python数据可视化的实战练习,用到的模块叫做Panel,我们通过调用此模块来绘制动态可交互的图表以及数据大屏的制作。 而本地需要用到的数据集,可在kaggle上面获取 https://www.kaggle.com/datasets/rtatman/188-million-us…

SpringBoot之DEBUG远程调试黑科技?

所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地 的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道 远程服务端的此时的内部状态。 简单的…

计算机408考研先导课---C语言难点

以下为小编在重温C语言时,容易犯错的一些点,希望列出来对大家有一定帮助! 一、整型变量数的范围 类型说明符长度(字节)数的范围int4/2(有些为4字节,有些为2字节)-32768~32767short2…

ArcMap出图小技巧:主图设计、图例、比例尺、指北针、标题

ArcMap一个重要的功能是出图!!!!! 因为图片对于一些文字描述来说更为直观,所以掌握一些出图技巧也是极为重要的,不仅能让我们在数据处理过程快速得到我们想要的图层,也可以让图层看起…

Teradata退了? 无所谓,GBASE会出手

近期,就在2月15日,国内IT界有搞出个大瓜,Teradata以对中国当前及未来商业环境的不确定性,慎重考虑后决定退出中国运营,后续将进入中国公司关闭程序。Teradata是一家有着40多年历史的数据仓库企业,被业界专业…