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

news2024/10/4 8:17:16

在这里插入图片描述

三、深度学习

(二)人工神经网络

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

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算法的权值和偏置更新计算公式。

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

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

相关文章

桌面型激光雕刻机的发展前景及TMC应用优势

一、行业现状 近两年来,激光雕刻行业正处于快速发展阶段。随着人们生活水平的提高,对个性化、定制化产品的需求日益增加,激光雕刻以其独特的创意和精美的效果,满足了消费者对个性化产品的追求。同时,随着科技的不断进…

svg完成鼠标样式并使用

本次分享的是通过svg标签实现的鼠标样式&#xff0c;并在页面中进行使用的整个过程&#xff0c;最后还会分享快速制作svg的简单方式。 如有改进的方法或者发现错误也可以在评论区留言啊。 一、鼠标的svg样式 1.小飞机型 <svg width"32" height"32" xml…

[行业原型] 汽车供应链多地分销一站式云端解决方案

互联网改变了企业经营模式、竞争环境&#xff0c;同时还在改变企业的交易方式&#xff0c;影响着企业间的协作。 全球化电子商务环境下&#xff0c;传统的供应链管理模式不能适应新环境下供应链管理要求&#xff0c;新的供应链管理模式—eSCM。 eSCM是将分销管理、客户资源管理…

Xilinx RFSOC 47DR 8收8发 信号处理板卡

系统资源如图所示&#xff1a;  FPGA采用XCZU47DR 1156芯片&#xff0c;PS端搭载一组64Bit DDR4,容量为4GB,最高支持速率&#xff1a;2400MT/s;  PS端挂载两片QSPI X4 FLASH&#xff1b;  PS支持一路NVME存储&#xff1b;  PS端挂载SD接口&#xff0c;用于存储程序&…

Django ORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…

Mac 苹果电脑下载安装《植物大战僵尸杂交版2.0.88》详细指南教程(含已损坏打不开等问题解决)

最近植物大战僵尸杂交版可是非常的火爆&#xff0c;各大主播都在玩&#xff0c;可是该游戏作者只发布了win版本&#xff0c;我只有一台 Macbook 一直都很想玩&#xff0c;经过一番折腾终于在Mac上成功安装运行了该游戏&#xff0c;并整理好了&#xff0c;大家想要在 Mac 上安装…

win11通过网线分享网络到Ubuntu工控机

1.条件&#xff1a;一个能无线联网的win11&#xff0c;一根网线&#xff0c;一台Ubuntu工控机&#xff0c;并且使用网线连接两者 2.在win11电脑上 2.1 打开控制面板的网络和Internet 2.2 进入网络和共享中心&#xff0c;在左侧进入 更改适配器设置 2.3 在WLAN上右键&#xff0…

客户案例 | 思腾合力助力国内某自动化研究所算力平台建设

国内某自动化研究所&#xff0c;其主要研究方向是机器人、智能制造与光电信息技术。其所着眼于国民经济和国家安全重大战略需求&#xff0c;凝练研究方向&#xff0c;在机器人与智能制造领域着重开展创新研究&#xff0c;在机器人学、工业机器人、水下机器人、空间机器人及自动…

“新高考”下分班怎么分?

来自安徽的张女士告诉我&#xff1a;上一年孩子升入了高中&#xff0c;但没想到才高一&#xff0c;孩子就面临了一个困难的挑选&#xff1a;312”分班&#xff01; 什么是312”分班呢&#xff1f;许多人或许不明白&#xff0c;便是要求学生在高一入学时&#xff0c;针对于3门必…

1882java密室逃脱管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java密室逃脱管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

Linux服务器扩容及磁盘分区(LVM和非LVM)

Linux扩容及磁盘分区&#xff08;LVM和非LVM&#xff09; 本文主要介绍了阿里云服务器centos的扩容方法&#xff1a;非LVM分区扩容方法&#xff08;系统盘&#xff09;&#xff0c;以及磁盘改LVM并分区&#xff08;数据盘&#xff09;。主要是ext4文件系统及xfs磁盘scsi MBR分…

GD32/STM32系列GPIO工作模式

知不足而奋进 望远山而前行 目录 文章目录 前言 浮空输入 上拉输入 下拉输入 模拟输入 推挽输出 开漏输出 复用推挽输出 复用开漏输出 附录(了解) 总结 前言 在嵌入式系统开发中&#xff0c;对于GPIO&#xff08;通用输入输出端口&#xff09;的配置和使用是至关重…

各大AI模型训练成本大比拼

像OpenAI的ChatGPT、谷歌的Gemini Ultra这样的高级AI模型&#xff0c;训练它们通常需要数百万美元的费用&#xff0c;且该成本还在迅速上升。随着计算需求的增加&#xff0c;训练它们所需的计算能力的费用也在飙升。为此&#xff0c;AI公司正在重新考虑如何训练这些生成式AI系统…

定制高温隧道炉,如何判断质量好坏

在现代工业生产中&#xff0c;高温隧道炉扮演着不可或缺的角色。对于特定工艺要求&#xff0c;如陶瓷烧制、金属热处理等&#xff0c;定制化的高温隧道炉更是不可或缺。然而&#xff0c;面对市场上琳琅满目的产品&#xff0c;如何判断高温隧道炉的质量好坏成为了企业决策者面临…

灵动岛动效:打造沉浸式用户体验

灵动岛是专属于 iPhone 14 Pro 系列交互UI&#xff0c;通过通知消息的展示和状态的查看与硬件相结合&#xff0c;让 iPhone 14 Pro 系列的前置摄像头和传感器的“感叹号”&#xff0c;发生不同形状的变化。这样做的好处是让虚拟软件和硬件的交互变得更为流畅&#xff0c;以便让…

Git 版本控制系统详解

目录 Git 版本控制系统详解一、Git 的作用1. 版本控制2. 分支管理3. 分布式开发4. 协作开发 二、Git 的安装和基本使用1. 安装 Git1.1 Windows1.2 macOS1.3 Linux 2. 配置 Git3. 创建和克隆仓库3.1 创建本地仓库3.2 克隆远程仓库 4. 基本操作4.1 添加文件到暂存区4.2 提交更改4…

【C++修行之道】类和对象(五)日期类的实现、const成员、取地址及const取地址操作符重载

目录 一、 日期类的实现 Date.h 1.1 GetMonthDay函数&#xff08;获取某年某月的天数&#xff09; 问&#xff1a;这个函数为什么不和其他的函数一样放在Date.cpp文件中实现呢&#xff1f; 1.2 CheckDate函数&#xff08;检查日期有效性&#xff09;、Print函数&#xff08;打…

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

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

Mysql root用户远程连接失败解决方案

最近&#xff0c;踩坑云服务器通过root用户远程连接Mysql数据库失败&#xff0c;Mysql 版本为 5.7.44&#xff0c;原因如下&#xff0c;因为root用户权限过大&#xff0c;可能会有风险操作&#xff0c;可以新增其他用户来解决此问题&#xff0c;如果一定要用root用户&#xff0…

【Vue】工程化开发和脚手架

一、开发Vue的两种方式 核心包传统开发模式&#xff1a;基于 html / css / js 文件&#xff0c;直接引入核心包&#xff0c;开发 Vue。工程化开发模式&#xff1a;基于构建工具&#xff08;例如&#xff1a;webpack&#xff09;的环境中开发Vue。 工程化开发模式优点&#xff…