深度学习 -- 神经网络

news2024/11/24 20:37:54

1、神经网络的历史

2、 M-P模型

M-P模型是首个通过模仿神经元而形成的模型。在M-P模型中,多个输入节点x_i | i=1,2....,n对应一个输出节点y。每个输入x,乘以相应的连接权重w,然后相加得到输出y。结果之和如果大于阈值h,则输出1,否则输出0。输入和输出均是0或1。

公式2.1:    y = f( \sum_{i=1}^{n}w_ix_i-h)       

M-P模型可以表示AND和OR等逻辑运算。M-P模型在表示各种逻辑运算时,可以转化为单输入单输出或双输入单输出的模型。

取反运算符(NOT运算符)可以使用的单输入单输出的M-P模型来表示。使用取反运算符时,如果输入0则输出1,输入1则输出0,把它们代人M-P模型的公式(2.1),可以得到w_i=-2h = -1

逻辑或(OR运算符)和逻辑与(AND运算符)可以使用双输入单输出M-P模型来表示。各运算符的输人与输出的关系如下表所示。根据表中关系,以OR运算为例时,公式(2.1)中的w,和h分别为w1=1,w2=1,h=0.5,把它们代人公式(2.1)可以得到下式:

公式2.2:y = f(x_1 + x_2 -0.5)

以AND运算为例时,w1=1,w2=1,h=1.5,把它们代人公式(2.1)可以得到下式。
公式2.3:y = f(x_1 + x_2 -1.5)

输入x1输入x2OR运算符的输出AND运算符的输出
0000
0110
1010
1111

由此可见,使用M-P模型可以进行逻辑运算。但是,上述的w,和h是如何确定的呢?当时还没有通过对训练样本进行训练来确定参数的方法,只能人为事先计算后确定。此外,M-P模型已通过电阻得到了物理实现。
 

3、感知器

上节中的逻辑运算符比较简单,还可以人为事先确定参数,但且逻辑运算符w,和h的组合并不仅仅限于前面提到的这几种。罗森布拉特提出的感知器能够根据训练样本自动获取样本的组合。与M-P模型
需要人为确定参数不同,感知器能够通过训练自动确定参数。训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式(误差修正学习)。误差修正学习可用公式(3.1)和(3.2)表示。

公式3.1:w_i \leftarrow w_i + a(r-y)x_i

公式3.2:h \leftarrow h - a(r-y)

a是确定连接权重调整值的参数。a增大则误差修正速度增加,a减小则误差修正速度降低。


感知器中调整权重的基本思路如下所示。

  • 实际输出y与期望输出r相等时,w和h不变
  • 实际输出y与期望输出r不相等时,调整w,和h的值

参数w和h的调整包括下面这两种情况。

1:实际输出y=0、期望输出r=1时(未激活)

  • 减小h
  • 增大x7=1的连接权重w
  • x=0的连接权重不变

2:实际输出y=1、期望输出r=0时(激活过度)

  • 增大h
  • 降低x=1的连接权重w
  • x=0的连接权重不变

使用误差修正学习,我们可以自动获取参数,这是感知器引发的一场巨大变革。但是,感知器训练只能解决如下(a)图所示的线性可分问题,不能解决如下(b)图所示的线性不可分问题。为了解决线性不可分问题,我们需要使用多层感知器。

4、多层感知器

为了解决线性不可分等更复杂的问题,人们提出了多层感器印(multilayer perceptron)模型。多层感知器指的是由多多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。

多层感知器通常采用三层结构,由输入层、中间层及输出层组成与公式(2.1)中的M-P模型相同,中间层的感知器通过权重与输入层的各单元(unit)相连接,通过阈值函数计算中间层各单元的输出值。中
间层与输出层之间同样是通过权重相连接。那么,如何确定各层之间的连接权重呢?单层感知器是通过误差修正学习确定输入层与输出层之间的连接权重的。同样地,多层感知器也可以通过误差修正学习确定两层之间的连接权重。误差修正学习是根据输入数据的期望输出和实际输出之间的误差来调整连接权重,但是不能跨层调整,所以无法进行多层训练。因此,初期的多层感知器使用随机数确定输入层与中间层之间的连接权重,只对中间层与输出层之间的连接权重进行误差修正学习。所以,就会出现输入数据虽然不同,但是中间层的输出值却相同,以至于无法准确分类的情况。那么,多层网络中应该如何训练连接权重呢?人们提出了误差反向传播算法。

5、误差反向传播算法

多层感知器中,输入数据从输入层输入,经过中间层,最终从输出层输出。因此,误差反向传播算法就是通过比较实际输出利期望输出得到误差信号,把误差信号从输出层逐层向前传播得到各层的的误差信号,再通过调整各层的连接权重以减小误差。权重的调整主要用梯度下降法(gradient descent method)。如图所示,通过实际输出和期望输出之间的误差E和梯度,确定连接权重w的调整值,得到新的连接权重w'。然后像这样不断地调整权重以使误差达到最小,从中学习得到最优的连接权重w^{opt}。这就是梯度下降法。

下面我们就来看看误差和权重调整值的计算方法。计算误差可以使用最小二乘误差函数(公式6.3)。通过期望输出r和网络的实际输出y计算最小二乘误差函数E。E趋近于0,表示实际输出与期望里输出更加接近。所以,多层感知器的训练过程就是不断调整连接权重w,以使最小二乘误差函数趋近于0。


接着再来看一下权重调整值。根据上述说明,权重需要进行调整以使最小二乘误差函数趋近于0。对误差函数求导就能得到上图中给定点的梯度,即可在误差大时增大调整值,误差小时减小调整值,所以连接权重调整值\Delta w 可以用公式(5.1)表示。

公式5.1:\Delta w = -\eta \frac{\partial E}{\partial w}

\eta 表示学习率,这个值用于根据误差的程度进行权重调整。

通过误差反向传播算法调整多层感知器的连接权重时,一个瓶颈问题就是激活函数。M-P模型中使用step函数作为激活函数,只能输出0或1,不连续所以不可导。为了使误差能够传播,鲁梅尔哈特等人提出使用可导函数sigmoid作为激活函数f(u)。

为了让大家更好地理解误差反向传播算法的过程,下面我们首先以单层感知器为例进行说明。根据复合函数求导法则,误差函数求导如下所示。

公式5.2:\frac{\partial E}{\partial w_i} = \frac{\partial E}{\partial y} \frac{\partial y}{\partial w_i}

设y=f(u),求误差函数E对w的导数。

公式5.3:\frac{\partial E}{\partial w_i} = -(r-y) \frac{\partial y}{\partial w_i} = -(r-y) \frac{\partial f(u)}{\partial w_i}

f(u)的导数就是对复合函数求导。

公式5.4:\frac{\partial E}{\partial w_i} = -(r-y) \frac{\partial f(u)}{\partial u}\frac{\partial u}{\partial w_i}

u对w,求导的结果只和x,相关,如下所示。
公式5.5:\frac{\partial u}{\partial w_i} = x_i

将公式(5.5)带入到公式(5.4)中得到下式。

公式5.6:\frac{\partial E}{\partial w_i} = -(r-y)x_i\frac{\partial f(u)}{\partial u}

这里对sigmoid函数求导。

公式5.7:\frac{\partial E}{\partial w_{ij}} = -(r_j-y_j)\frac{\partial y_j}{\partial u_j}\frac{\partial u_j}{\partial w_{ij}}

下面就和单层感知器一样,对误差函数求导。

公式5.8:\frac{\partial E}{\partial w_{ij}} = -(r_j-y_j)y_j(1-y_j)x_i

权重调整值如下所示

公式5.9:\Delta w_{ij} = \eta (r_j-y_j)y_j(1-y_j)x_i

由上可知,多层感知器中,只需使用与连接权重w_{ij}相关的输入x_i和输出y_i即可计算连接权重调整值。


下面再来看一下包含中间层的多层感知器。首先是只有一个输出单元y的多层感知器,如图所示。w_{1ij} 表示输入层与中间层之间的连接权重,w_{2j1}表示中间层与输出层之间的连接权重。i表示输入层单元, j表示中间层单元。

首先来调整中间层与输出层之间的连接权重。和上面的步骤聚一样,把误差函数E对连接权重w_{2j1}求导展开成复合函数求导。

公式5.10:\frac{\partial E}{\partial w_{2j1}} = \frac{\partial E}{\partial y} \frac{\partial y}{\partial u_{21}} \frac{\partial u_{21}}{\partial w_{2j1}}


与单层感知器一样,对误差函数求导。


公式5.11:\frac{\partial E}{\partial w_{2j1}} = -(r-y) y (1-y)z_j


这里的z表示的是中间层的值。于是,连接权重调整值如下所示。

公式5.12:\Delta w_{2j1} = \eta (r-y)y(1-y)z_j

接下来调整输入层与中间层之间的连接权重。输入层与中间层之间的连接权重调整值是根据输出层的误差函数确定的,求导公式如下所示。

公式5.13:\frac{\partial E}{\partial w_{1ij}} = \frac{\partial E}{\partial y} \frac{\partial y}{\partial u_{21}} \frac{\partial u_{21}}{\partial w_{1ij}} = -(r-y)y(1-y)\frac{\partial u_{21}}{\partial w_{1ij}}

与中间层与输出层之间的权重调整值的计算方法相同,输出y也是把公式展开后进行复合函数求导。与前面不同的是,这里是中间层与输出层单元之间的激活值u_{21}对输入层与中间层之间的连接权重w_{1ij}求导。u_{21}由中间层的值z_{j}和连接权重w_{2j1}计算得到。对z_{j}求导可以得到下式。

公式5.14:\frac{\partial u_{21}}{\partial w_{1ij}} = \frac{\partial u_{21}}{\partial z_{j}}\frac{\partial z_{j}}{\partial w_{1ij}}

最后展开得到的输入层与中间层之间的连接权重调整值如下所示。

公式5.15:\Delta w_{1ij} = \eta (r-y)y(1-y)w_{2j1}z_{j}(1-z_j)x_i

上述步骤的汇总结果如下图所示。由此可见,权重调整值的计算就是对误差函数、激活函数以及连接权重分别进行求导的过程。把得到的导数合并起来就得到了中间层与输出层之间的连接权重。而输入层与中间层之间的连接权重继承了上述误差函数和激活函数的导导数。所以,对连接权重求导就是对上一层的连接权重、中间层与输入层的激活函数以及连接权重进行求导的过程。像这种从后往前逐层求导的过程就称为链式法则(chain rule)。




同理下面让我们看一下有多个输出的多层感知器的权重调整:



多个输出与单个输出的不同之处在于,输入层与中间层之间的权重调整值是相关单元在中间层与输出层之间的权重调整总和。这就会出现无法调整链接权重。这就是误差反向传播算法中梯度消失导致无法调整链接权重。对于这个问题,需要在训练过程中调整学习率\eta以防止梯度消失。

6、误差函数和激活函数

那么,有哪些函数可以作为误差函数呢?在多分类问题中,一般使用交叉恼代价雨数,公式如下所示 :

公式6.1:E = -\sum_{c=1}^{C}\sum_{n=1}^{N}r_{cn}lny_{cn}

二分类中的函数则如下所示 :

公式6.2:E = -\sum_{n=1}^{N}(r_nlny_n+(1-r_n)ln(1-y_n))

递归问题巾使用最小二乘误差函数 

公式6.3:E = \sum_{n=1}^{N}||r_n-y_n||^2

这些是经常使用的误差函数,但误差函数的种类并不仅限于此,我们也可以根据实际问题自行定义误差函数 。

激活函数类似于人类神经元,对输入信号进行线性或非线性变换。 M-P模型中使用 step 函数作为激活函数,多层感知器中使用的 是 sigmoid 函数。 这里,用输入层与中间层之间,或中间层与输 出层之间的连接权重 w_i乘以相应单元的输入值 x_i并将该乘积之和经 sigmoid 函数计算后得到激活值 u。

公式6.4:f(u) = \frac{1}{1+e^{-u}}

公式6.5: u = \sum_{i=1}^{n}w_ix_i

如下图蓝线所示,使用 sigmoid 函数时,如果对输入数据进行 加权求和得到的结果 u 较大则输 1,较小则输出 0。 而 M-P 模型中使 用的是 step 两数(如图中的红线所示),当 u 等于 0 时,输出结果 在 0和1 之间发生刷烈变动 。 另外, sigmoid 函数的曲线变化则较平缓 。

7、似然函数

我们可以根据问题的种类选择似然函数,计算多层感知器的输出结果。 多分类问题中,通常以 softmax函数(公式(7.1))作为似然函数

公式7.1:p(y^k) = \frac{exp(U_{2k})}{\sum_{q=1}^{Q}exp(U_{2q})}

softmax函数的分母是对输出层所有单元(q=l, ...,Q) 的激活 值进行求和,起到了归一化的作用, 输出层中每个单元取值都是介于 0 和 l 之间的概率值,我们选择其中概率值最大的类别作为最终分类结果输出

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

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

相关文章

基于ssm+jsp的精品酒销售管理系统论文

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于精品酒销售管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了精品酒销售管理系统,它彻底改变…

MyBatisPlus+SpringBoot+JavaFX连接查询

前言 一般使用SprootBoot是使用SprootBootTest和Junit配合,但如果不是写测试类,怎么与javafx配合使用?笔者不知道,经过多次搜索以及问了各种AI,最后误打误撞,终于想通了,其实很简单。 用了许久…

碳信用市场的未来:中碳CCNG的愿景

在全球碳减排努力日益增强的背景下,中国碳中和发展集团有限公司(简称中碳CCNG)正以其创新的碳交易平台引领行业新趋势。中碳CCNG提供的一站式综合服务不仅包括碳信用的托管、买卖和抵消,而且通过其综合性数字平台,促进…

【CodeTop】TOP 100 刷题 31-40

文章目录 31. 二叉树中的最大路径和题目描述代码与解题思路 32. 合并区间题目描述代码与解题思路 33. 编辑距离题目描述代码与解题思路 34. 二叉树的中序遍历题目描述代码与解题思路 35. 最长公共子序列题目描述代码与解题思路 36. 二分查找题目描述代码与解题思路 37. 二叉树的…

STM32F407-14.3.13-01发生外部事件时清除 OCxREF 信号

发生外部事件时清除 OCxREF 信号 对于给定通道,在 ETRF⑧ 输入施加高电平(相应 TIMx_CCMRx 寄存器中的 OCxCE⑦ 使能位置“1”),可使 OCxREF⑨ 信号变为低电平。OCxREF⑨ 信号将保持低电平,直到发生下一更新事件 (UEV)…

SAM+使用SAM应用数据集完成分割

什么是SAM? SAM(Segment Anything Model)是由 Meta 的研究人员团队创建和训练的深度学习模型。在 Segment everything 研究论文中,SAM 被称为“基础模型”。 基础模型是在大量数据上训练的机器学习模型(通常通过自监督或半监督学习…

农业杀虫剂市场分析:我国实现销售收入319.3亿元

农业杀虫剂,指的是农业用的杀虫化学制剂。主要用于防治农业害虫和城市卫生害虫的药品,使用历史长远、用量大、品种多。 按毒理作用可分为:①神经毒剂。作用于害虫的神经系统,如滴滴涕、对硫磷、呋喃丹、除虫菊酯等。②呼吸毒剂。抑…

ssm党务政务服务热线平台源码和论文答辩PPT

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计…

易点易动设备管理系统--提升设备能耗管理效率的工具

在当今的节能环保意识日益增强的社会背景下,设备能耗管理成为了市场推广人员关注的焦点之一。为了帮助市场推广人员提升设备能耗管理效率,易点易动设备管理系统应运而生。本文将详细介绍易点易动设备管理系统的功能和优势,以及如何借助该系统…

class050 双指针技巧与相关题目【算法】

class050 双指针技巧与相关题目【算法】 算法讲解050【必备】双指针技巧与相关题目 code1 922. 按奇偶排序数组 II // 按奇偶排序数组II // 给定一个非负整数数组 nums。nums 中一半整数是奇数 ,一半整数是偶数 // 对数组进行排序,以便当 nums[i] 为…

springboot项目中注入bean后,调用时报n

需求: 在socket接收到上报数据后,在handler中调用工具类中ProtocolAnalyse的conAnalyse(byte[] data, int dataLen)解析数据。解析数据后,将解析后的结果保存至数据库。注入了三个bean: Autowiredprivate PersonTeService person…

8个Python高效数据分析的技巧!

一行代码定义List 定义某种列表时,写For 循环过于麻烦,幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题。下面是使用For循环创建列表和用一行代码创建列表的对比。 x [1,2,3,4] out [] for item in x:out.append(item**2) …

通付盾连续九年荣登《中国网络安全企业100强》榜单,再次彰显创新与实力!

2023年12月1日,由中国计算机学会抗恶劣环境计算机专业委员会、信息产业信息安全测评中心、安全牛联合发起的第十一版《中国网络安全企业100强》正式发布。通付盾凭借强大的创新技术和优质的服务能力,再度入选百强榜单。此为自2015年起,通付盾…

YOLOv5改进: RT-DETR引入YOLOv5,neck和检测头助力检测

💡💡💡本文独家改进: 1) RT-DETR neck代替YOLOv5 neck部分; 2)引入RTDETRDecoder 多个订阅者要求(多个订阅者有需求会在专栏里进行更新),想出一期RT-DETR的neck引入到YOLOv5,那就安排 💡💡💡Yolov5/Yolov7魔术师,独家首发创新(原创),适用于Yolov5、Yo…

C++ 操作MinIO做文件数据的上传和下载(踩坑与经验)包含编译包

前言 最近在做项目流程优化,准备将之前的java对文件的操作转换到c端,因此做了基于c的minio操作的测试demo。期间的各种踩坑与问题,花了一天时间总算是成功了,当然还有一些小问题,等待后续其他大拿解决。 项目环境 v…

【Android】Glide的简单使用(上)

文章目录 引入Glide的优点:缺点: 使用常用方法:从网络加载图片从文件加载图片加载resource资源加载URI地址设置占位图出错时的图片占位图图片过渡的Transitions自定义过渡动画图片大小调整缩放图片播放gifasGif()把Gif当作Bitmap播放显示本地视频缩略图 引入 Glide是Google员工…

ISNAS-DIP: Image-Specific Neural Architecture Search for Deep Image Prior

ISNAS-DIP:用于深度图像先验的图像特定神经架构搜索 论文链接:https://arxiv.org/abs/2111.15362v2 项目链接:https://github.com/ozgurkara99/ISNAS-DIP Abstract 最近的研究表明,卷积神经网络(CNN)架构在频谱上偏向较低频率&…

装修风格及要求

水电改造 报价? 电线 3C认证国标BV线(非BVR),电线上有厂名,买足百米的 厨卫空调4平方线普通插座2.5平方线冰箱2.5平方线照明2.5平方线入户主线6平方或10平方 地面电线点对点,线和线管连接处要有锁扣 品…

Pandas使用过程中的神器加持 你不用不要怪我

Pandas是我们日常处理表格数据最常用的包,但是对于数据分析来说,Pandas的DataFrame还不够直观,所以今天我们将介绍4个和Pandas相关的Python包,可以将Pandas的DataFrame转换交互式表格,让我们可以直接在上面进行数据分析…

将文件夹中所有文件名取出

dir C:\Users\是啊\Desktop\实验五/b>C:\Users\是啊\Desktop\1111.xls C:\Users\是啊\Desktop\实验五(这个是文件夹路径) /b (参数) C:\Users\是啊\Desktop\1111.xls(文件名输出的文件路径)