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

生命在于学习——Python人工智能原理(3.2)

在这里插入图片描述

三、深度学习

(二)人工神经网络

人工神经网络是模仿人类大脑神经系统工作原理所创建的数学模型,有并行的分布处理能力、高容错性和自我学习等特征。

1、感知器

感知器由Frank Roseblatt于1957年提出,是一种广泛使用的线性分类器,感知器可谓是最简单的人工神经网络,只有一个神经元。
感知器是对生物神经元的简单数学模拟,有与生物神经元相对于的部件,如权重对应突触,偏置对应阈值,激活函数对应细胞体,输出为+1或-1。

2、神经网络模型

下图是神经网络的结构模型图,最左边的层是输入层,最右边的层是输出层,输入层和输出层之间的层叫做隐藏层,包含多个隐藏层的神经网络叫做深度神经网络。
对于拟合任何一个函数而言,浅层神经网络浅而宽,需要大量神经元,而深层神经网络深而窄,需要更多的层和较少的神经元。一般来说深层神经网络参数更少,更节省资源,但深层神经网络并不好训练,需要大量数据和很好的技巧才能训练出好的神经网络。
在这里插入图片描述

3、反向传播算法

学习规则可以用来修改神经网络的权重和偏置值,其目的是训练网络,更好的拟合特定任务的需求。常见的学习规则有Hebb学习规则、Delta算法及反向传播算法(BP)。
BP算法是人工神经网络较常采用的学习方法,其基本思想是逐一由样本集中的样本(Xk,Yk)计算出实际输出Ok和误差测度Ep,对w1,w2,…,wn权值做调整,重复这个循环,直到误差降至最低。
用输出层的误差调整输出层的权值矩阵,并因此误差估计输出层的直接前导误差,再用输出层直接前导层误差估计更前一层的误差,如此获得所有其他各层的误差估计,并用这些估计实现对权值矩阵的修改,形成将输出端出现的误差沿着与输入信号相反的方向逐级向输入端传递的链式求解过程。
BP算法学习过程应用到深度学习中分为两个子过程。输入数据正向传递子过程和误差数据方向传递子过程(正向传播求误差,反向传播求偏导)。
下面以三层神经网络为例,详细说明BP算法的原理及推导求解过程。

(1)正向传播求误差

网络分为三层,设输入层到隐藏层的权值为wji(0),隐藏层到输出层的权值为wji(1),权重和偏置的初始值一般根据实际情况采用随机值或经验值。输入层神经元个数为n,隐藏层神经元个数为m,输出层为1采用sigmod激活函数。
输入层的输入向量X(x1,x2,…,xn),隐藏层的输出向量H=(h1,h2,…,hm),有(式子1):
在这里插入图片描述
其中,netj(0)为未激活之前的神经网络计算输出,wji(0)为权值,bj(0)为节点hj的偏置值,f()为激活函数,θj(0)是阈值,用来改变神经元的活性,只有当神经元接收的信息达到阈值时才会被激活,同样,输出层向量O=(o1,o2,…,xl),有(式子2):
在这里插入图片描述

(2)反向传播求偏导

设d为期望输出,o为实际输出,E为损失函数(又称误差信号),则损失函数定义为(式子3):
在这里插入图片描述
dk是输出层第k个单元的期望输出,ok是输出层第k个单元的实际输出。将损失函数E展开到隐藏层,即把式子2带入到式子3中,可以得到(式子4):
在这里插入图片描述
再把损失函数E展开到输入层,即把式子1带入到式子4中,可以得到(式子5):
在这里插入图片描述
从式子5中可以看出,损失函数E是关于权值和偏置的函数,要使E最小,就要沿着梯度的反方向不断修改和调整权值和偏置。对于wkj(1)来说,可以选择任意初始点wki(1),从wki(1)沿着梯度下降的方向新进,所以取(式子6):
在这里插入图片描述
其中,η是学习率,取值0-1,可以用于避免陷入求解空间的局部最优值。同理可得(式子7):
在这里插入图片描述
对Δwki(1)和Δbk(1)进一步展开,可以得(式子8):
在这里插入图片描述
对隐藏层的Δwji(0)和Δbj(0)进一步展开,可以得(式子9):
在这里插入图片描述
对输出层和隐藏层各定义一个误差权值信号,令(式子10):
在这里插入图片描述
则(式子11)
在这里插入图片描述

(式子12)
在这里插入图片描述
ξko和ξjy又可以展开为(式子13):
在这里插入图片描述
由此,根据式子3,损失函数对o和h求偏导可得(式子14):
在这里插入图片描述
其中,由sigmod函数性质可知:
在这里插入图片描述
并将式子14带入式子13可得(式子15):
在这里插入图片描述
将式子15带入到式子11和式子12中,即可求得BP算法的权值和偏置更新计算公式。

相关文章:

生命在于学习——Python人工智能原理(3.2)

三、深度学习 (二)人工神经网络 人工神经网络是模仿人类大脑神经系统工作原理所创建的数学模型,有并行的分布处理能力、高容错性和自我学习等特征。 1、感知器 感知器由Frank Roseblatt于1957年提出,是一种广泛使用的线性分类…...

JAVA面试八股文----Mybatis

1、Mybatis 1.1#{}和${}的区别是什么? Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; Mybatis在处理 0 时,就是把 0时,就是把 0时,就是把{}替换成变量的值。 有了#{}为什么还需要${}? #{}会被预编译处理,可以有效的防止SQL注…...

[论文笔记]MemGPT: Towards LLMs as Operating Systems

引言 今天介绍一篇论文MemGPT: Towards LLMs as Operating Systems。翻过过来就是把LLM看成操作系统。 大语言模型已经在人工智能领域引起了革命性的变革,但受到有限上下文窗口的限制,在扩展对话和文档分析等任务中的效用受到了阻碍。为了能够利用超出…...

Sentinel1.8.6更改配置同步到nacos(项目是Gateway)

本次修改的源码在:https://gitee.com/stonic-open-source/sentinel-parent 一 下载源码 地址:https://github.com/alibaba/Sentinel/releases/tag/1.8.6 二 导入idea,等待maven下载好各种依赖 三 打开sentile-dashboard这个模块&#xf…...

材料科学领域科技查新点提炼方法!---附案例

材料科学是研究材料的组织结构、性质、生产流程、使用效能及它们之间的相互关系的科学,集物理学、化学、冶金学等于一体。随着科技的发展,纳米技术和生物技术也广泛应用到该领域中。从材质上可以分为金属材料、无机非金属材料、有机高分子材料和复合材料…...

深入理解HTTP与TCP:应用层与传输层的区分

一、前言 在互联网协议栈中,应用层和传输层是两个重要的层级,分别承载了不同的功能。HTTP(HyperText Transfer Protocol)作为应用层协议,而TCP(Transmission Control Protocol)则是传输层协议&…...

Unity3D Delaunay德罗内三角算法详解

Unity3D是一款强大的游戏开发引擎,它提供了丰富的功能和工具,使开发者能够轻松创建出色的游戏和应用程序。其中,Delaunay德罗内三角算法是一种常用的计算几何算法,用于生成三角形网格,其在Unity3D中的应用也非常广泛。…...

JAVA小案例-输出100-150中能被3整除的数,每5个换行

JAVA小案例-输出100-150中能被3整除的数,每5个换行 代码如下: public class Continue {/*** continue练习,输出100-150中能被3整除的数,每5个换行* param args*/public static void main(String[] args) {int count 0;//计数器…...

论程序员的职业素养

文章目录 前言一、命名规范1. HTML命名规范2. CSS命名规范3. JavaScript命名规范4. 文件和文件夹命名规范5. 代码案例 二、代码注释规范1. 注释规范2. 案例代码HTMLCSS (styles/main.css)JavaScript (scripts/main.js) 三、代码逻辑规范1.逻辑规范2. 代码案例清晰的函数和模块化…...

前端canvas绘图,利用canvas在图片上面绘制标记以及给canvas添加点击事件。

前端canvas绘图&#xff0c;利用canvas在图片上面绘制标记以及给canvas添加点击事件。 需要实现的效果如下图: 首先需要一个承载的核心画布 <canvas id"canvas" width"800" height"600"></canvas>全部代码&#xff1a; <!DOCT…...

38、Flink 的 WindowAssigner 之 GlobalWindows 示例

1、注意 使用 GlobalWindows 需要自定义 Trigger&#xff0c;否则窗口中的数据不会被计算。 2、代码示例 import org.apache.flink.streaming.api.datastream.DataStreamSource; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org…...

同事仅靠着自己写的npm包跳槽去了大厂,羡慕了一整天

同事们之间总会悄悄聊一些话题&#xff0c;比如聊一些八卦啦&#xff0c;聊一些领导啦&#xff0c;也会偶尔说想跳槽&#xff0c;但这年头&#xff0c;跳槽多费劲啊&#xff0c;谁没事敢动。还别说&#xff0c;边上做了个同事&#xff0c;前两天还真要撤了&#xff0c;聊了半天…...

Yocto - bitbake任务中clean和cleanall的区别

在 BitBake 中&#xff0c;clean 和 cleanall 命令都用于删除构建工件&#xff0c;但它们的范围和执行的清理程度不同。 1. clean 命令&#xff1a; 目的&#xff1a;clean命令用于删除与特定任务或配方相关的临时构建文件和工件。 范围&#xff1a;它只清除指定任务或配方生…...

Spring 中如何控制 Bean 的加载顺序?

如果你脱口而出说添加 Order 注解或者是实现 Ordered 接口&#xff0c;那么恭喜&#xff0c;你掉坑了。 一 Order 注解和 Ordered 接口 在 Spring 框架中&#xff0c;Order 是一个非常实用的元注解&#xff0c;它位于 spring-core 包下&#xff0c;主要用于控制某些特定上下文…...

【学习笔记】Windows GDI绘图(十)Graphics详解(中)

文章目录 Graphics的方法AddMetafileComment添加注释BeginContainer和EndContainer新建、还原图形容器不指定指定源与目标矩形指定源与目标矩形 Clear清空并填充指定颜色CopyFromScreen截图CopyPixelOperation DrawImage绘制图像DrawImage的GraphicsDrawImageAbort回调ExcludeC…...

web学习笔记(六十二)

目录 1.键盘事件 2.KeepAlive 3.组件传值 3.1 兄弟组件传值 3.2 组件树传值 3.3 发布订阅者传值 1.键盘事件 keydown表示键盘事件&#xff0c;在不加修饰符的情况下&#xff0c;点击键盘上的任意位置都可以触发键盘事件&#xff0c; <template><div><!--…...

每天CTF小练一点--ctfshow年CTF

初一 题目&#xff1a; 2023是兔年&#xff0c;密码也是。聪明的小伙伴们&#xff0c;你能破解出下面的密码吗&#xff1f; 感谢大菜鸡师傅出题 flag格式是ctfshow{xxxxxx}.或许密码也有密码。 密文是&#xff1a; U2FsdGVkX1M7duRffUvQgJlESPfOTV2i4TJpc9YybgZ9ONmPk/RJje …...

Java Set接口 - TreeSet类

TreeSet 是 Java 集合框架中的一个类&#xff0c;它实现了 NavigableSet 接口&#xff0c;而 NavigableSet 是 SortedSet 接口的一个子接口。TreeSet 基于红黑树&#xff08;一种自平衡的二叉搜索树&#xff09;实现&#xff0c;因此它可以保证集合中的元素以升序排列。 以下是…...

css 理解了原理,绘制三角形就简单了

1.border-位置 注意&#xff1a;border-bottom/up/right/left 主要是以三角形的结构搭建而成&#xff0c;而border也是如此。而且从边框的外围开始计算像素尺寸。在理解了这一点之后&#xff0c;绘制三角形就简单多了。 1.transparent 注意&#xff1a;该属性主要是颜色透明…...

【JavaEE进阶】——MyBatis操作数据库 (#{}与${} 以及 动态SQL)

目录 &#x1f6a9;#{}和${} &#x1f388;#{} 和 ${}区别 &#x1f388;${}使用场景 &#x1f4dd;排序功能 &#x1f4dd;like 查询 &#x1f6a9;数据库连接池 &#x1f388;数据库连接池使⽤ &#x1f6a9;MySQL开发企业规范 &#x1f6a9;动态sql &#x1f388…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...