三、西瓜书——神经网络

news/发布时间2024/6/16 19:28:51

  一、神经元模型

        在M-P神经网络模型中,神经元接 收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出.

        理想中的激活函数是图5.2(a)所示的阶跃函数,它将输入值映射为输出值“0”或“1”,显然“1”对应于神经元兴奋,“0”对应于神经元抑制.然 而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数.典型的Sigmoid函数如图5.2(b)所示,它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为“挤压函数”(squashing function).

                把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络.

二、感知机与多层网络

        感知机(Perceptron)由两层神经元组成,如图5.3所示,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit).

      

        需注意的是,感知机只有输出层神经 元进行激活 函数处理,即只拥有一层 功能神经(functional neuron),其学习能力非常有限.事实上,上述与、或、 非问题都是线性可分(linearly separable )的问题.可以 证明[ Minsky and Papert, 1969],若两类模式是线性可分的,即存在一个线性超平面能将它们分开,如图 5.4(a)-(c)所示,则感知机的学习过程一定会收敛(converge)而求得适当的权向 量w=(wi;w2;…;wn+1);否则感知机学习过程将会发生振荡(fluctuation),w 难以稳定下来,不能求得合适解,例如 感知机甚至不能解决如图5.4(d)所示的异或这样简单的非线性可分问题.

        要解决非线性可分问题,需考虑使用多层功能神经元. 

三、误差逆传播算法

         

         

        

        

        

        

        累积B P算 准B P 都很常用.一般来说,标准BP算法每次更新只针对单 个样例,参数更新得非常频 繁,而且对不同样例进行更新的效果可 能出现“抵消 ”现象.因此,为了达到同
样的累积误差极小点,标准BP算法往往需进行更多次数的迭代.累积BP算法 直接针对累积误差最小化,它在读取整个训练集D一遍后才对参数进行更新,其参数更新的频率低得多.但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢,这时标准BP往往会更快获得较好的解,尤其是在训练集D非常大时更明显.
        
        [H o rn i k e t a l . , 1 9 8 9 ] 经元的隐前馈络就能以任意精度逼近任意复杂度的连续函数.然而,如何设置隐层神经元的个数仍是个未决问题,实际应用中通常靠“试错法”(trial-by-error)调整.
        
        正是由于其强大的表示能力,BP神经 网络经常遭 遇过拟合,其训练误差持 续降低,但测试误差却可能上升.有两 种策略常用来 缓解BP网络的过拟合.
  • 一种策略(early stopping):成训练集来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但止训验证误差的连.
  • 第二种策略是“正则化”(regularization)[Barron,1991; Girosi et al.,1995],其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和.仍令Er表示第k个训练样例上的误差,w;表示连接权和阈值,则误差目标函数(5.16)改变为

 四、全局最小与局部极小

        若用E表示神经网络在训练集上的误差,则它显然是关于连接权w和阈值θ的函数.此时,神经网络的训练过程可看作一个参数寻优过程,即在参数空间中,寻找一组最优参数使得E最小.

        基于梯度的搜索是使用最为广泛的参数寻优方法.在此类方法中,我们从某些初始解出发,迭代寻找最优参数值.每次迭代中,我们先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向.这种方法很容易陷入局部最小。

           

在现实任务中,人们常采用以下策略来试图“跳出”局部极小,从而进一 步接近全局最小:
  • 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数.这相当于从多个不同的初始点开始搜索,这样就 可能陷入不同的局部极小,从中进行选择有可能获得更接近全局最小的.
使用“模拟退火”(simulated annealing)技术[Aarts and Korst,1989]. 模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助 于“跳出”局部极小.在每步迭代过程中,接受“次优解”的概率要随着 时间的推移而逐渐降低,从而保证算法稳定.
使用随机梯度下降.与标准梯度下降法精确计算梯度不同,随机梯度下降 法在计算梯度时加入了随机因素.于是,即便陷入局部极小点,它计算出 的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索.
         此外,遗传算法(genetic algorithms)[Goldberg,1989]也常用来训练神经网 络以更好地逼近全局最小.需注意的是,上述用于跳出局部极小的技术大多是 启发式,理论上尚缺乏保障.

五.其他常见神经网络

        1.RBF

                 

        2 ART 

        竞争型学习(competitive learning)是神经网络中一种常用的无监督学习策略,在使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制.这种机制亦称“胜者通吃”(winner-take-all)原则.

        ART(Adaptive Resonance Theory,自适应谐振理论)网络[Carpenter andGrossberg,1987]是竞争型学习的重要代表.该网络由比较层、识别层、识别阙值和重置模块构成.其中,比较层负责接收输入样本,并将其传递给识别层神经元.识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类.

        在接别层经元间相获胜神经元.竞争的最简单方式是,计算输入向量与每个识别层神经元所对应的模式类的代表向量之间的距离,距离最小者胜.获胜神经元将向其他识别层神经元发送信号,抑制其激活.若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别,同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜;若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量.

        显然,识别阈值对ART网络的性能有重要影响.当识别阈值较高时,输入样本将会被分成比较多、比较精细的模式类,而如果识别阈值较低,则会产生比较少、比较粗略的模式类.

        ART比较好地缓解了竞争型学习中的“可塑性-稳定性窘境”(stability-plasticity dilemma),塑性有学知识稳定性是指神经网络在学习新知识时要保持对旧知识的记忆.这就使得ART网络具有一个很重要的优点:可进行增量学习(incremental learning)或在线学习(online learning).

        3 SOM

        SOM(Self-Organizing Map,自组织映射)网络[Kohonen,1982]是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元.

        如图5.11所示,SOM网络中的输出层神经元以矩阵方式排列在二维空间中,每个神经元都拥有一个权向量,网络在接收输入向量后,将会确定输出层获胜神经元,它决定了该输入向量在低维空间中的位置.SOM的训练目标就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的.

        SOM的训练过程很简单:在接收到一个训练样本后,每个输出层神经元会计算该样本与自身携带的权向量之间的距离,距离最近的神经元成为竞争获胜者,称为最佳匹配单元(best matching unit).然后,最佳匹配单元及其邻近神经元的权向将被使得些权样本的离缩.程不收敛.

        

        4.级联相关网络 

        一般的神经网络模型通常假定网络结构是事先固定的,训练的目的是利用训练样本来确定合适的连接权、阈值等参数.与此不同,结构自适应网络则将 网络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点 的网络结构.级联相关(Cascade-Correlation)网络[Fahlmanand Lcbicre,1990]是结构自适应网络的重要代表.

        

        级联相关网络有两个主要成分:“级联”和“相关”.级联是指建立层次连接的层级结构.在开始训练时,网络只有输入层和输出层,处于最小拓扑结构;随着训练的进行,如图5.12所示,新的隐层神经元逐渐加入,从而创建起层级结构.当新的隐层神经元加入时,其输入端连接权值是冻结固定的.相关是指通过最大化新神经元的输出与网络误差之间的相关性(correlation)来训练相关的参数.

        与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合.

        5 Elman

        与前馈神经网络不同,“递归神经网络”(recurrent neural networks)允许网络中出现环形结构,从而可让一些神经元的输出反馈回来作为输入信号.这样的结构与信息反馈过程,使得网络在t时刻的输出状态不仅与t时刻的输入有关,还与t-1时刻的网络状态有关,从而能处理与时间有关的动态变化.

         Elman网络[Elman,1990]是最常用的递归神经网络之一,其结构如图5.13所示,它的结构与多层前馈网络很相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入.隐层神经元通常采用Sigmoid激活函数,而网络的训练则常通过推广的BP算法进行[Pineda,1987].

        

     6 Boltzmann 

        

         

         

        

六、

        无监督逐层训练(unsupervised layer-wise training)是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这称为“预训练”(pre-training);在预训练全部完成后,再对整个网络进行“微调”(fine-tuning)训练.例如,在深度信念网络(deep belief network,简称DBN)[Hinton et al.,2006]中,每层都是一个受限Boltzmann机,即整个网络可视为若干个RBM堆叠而得.在使用无监督逐层训练时,首先训练第一层,这是关于训练样本的RBM模型,可按标准的RBM训练;然后,将第一层预训练好的隐结点视为第二层的输入结点,对第二层进行预训练;……各层预训练完成后,再利用BP算法等对整个网络进行训练.

        事实上,“预训练+微调”的做法可视为将大量参数分组,对每组先找到局部看来比较好的设置,然后再基于这些局部较优的结果联合起来进行全局寻优.这样就在利用了模型大量参数所提供的自由度的同时,有效地节省了训练开销.

        另一种节省训练开销的策略是“权共享”(weight sharing),即让一组神经元使用相同的连接权.这个策略在卷积神经网络(Convolutional NeuralNetwork,简称CNN)[LeCun and Bengio,1995;LeCun et al.,1998]中发挥了重要作用.

        

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

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

安卓使用okhttpfinal下载文件,附带线程池下载使用

1.导入okhttp包 implementation cn.finalteam:okhttpfinal:2.0.7 2.单个下载 package com.example.downloading;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.util.Log; import android.view.View;import java.io.File;import c…

5 分钟配置好 Electron 应用的图标

最近在开发博客本地客户端 HexoPress,应用做好后,需要打包,如果不希望打包出来 App 的图标用的是 Electron 默认的星球环绕的图标,那么需要自己制作图标。 制作图标 首先,你需要给各种操作系统制作一个满足要求的图标…

Outlook邮箱IMAP怎么开启?服务器怎么填?

Outlook邮箱IMAP服务器如何开启?Outlook设置IMAP的方法? Outlook邮箱作为其中的佼佼者,被广大用户所青睐。但在使用Outlook邮箱时,许多用户可能会碰到一个问题:如何开启IMAP服务?下面,蜂邮EDM就…

hadoop学习中遇到的问题一

由于看视频总是断断续续,经常遇到各种报错,现将遇到的问题进行总结。 hadoop学习中遇到的问题:hadoop拒绝连接 hadoop安装好之后,在本地浏览器输入地址http://192.168.222.102:9870,提示拒绝连接。在网上找了很多相关…

5G双域快网

目录 一、业务场景 二、三类技术方案 2.1、专用DNN方案 2.2、ULCL方案:通用/专用DNNULCL分流 2.3、 多DNN方案-定制终端无感分流方案 漫游场景 一、业务场景 初期双域专网业务可划分为三类业务场景,学校、政务、文旅等行业均已提出公/专网融合访问需…

【Linux】云服务器的Redis被黑

📝个人主页:五敷有你 🔥系列专栏:Linux ⛺️稳中求进,晒太阳 攻击发现: 这个异常情况是在腾讯云被入侵后,短信提醒发现的。并没有系统的学习过关于服务器安防相关的知识,遇到…

第三节-docker-cs架构分析

一、组成 docker engine:docker-client、rest-api、dockerd containerd: 1、管理容器生命周期 2、拉取/推送镜像 3、存储管理 4、调用runc 5、管理网络 containerd-shim:相当于一个驱动,containerd通过containerd-shim驱使…

数据结构(算法竞赛、蓝桥杯)--线段树+懒标记

1、B站视频链接:C02【模板】线段树懒标记 Luogu P3372 线段树 1_哔哩哔哩_bilibili 题目链接:P3372 【模板】线段树 1 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) void build(int p,int l,int r){tr[p]{l,r,w[l],0};if(lr)return;//叶子节点返回int…

【Excel PDF 系列】iText 库直接实现表格 PDF

你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,欢迎指教: 企鹅:869192208 文章目录 前言生成表格 PDF 效果引入 pom 配置代码实现定义 CreateExcelToPdfModel 对象主方法 前言 最近遇到生成 E…

C#,数值计算,求解微分方程的吉尔(Gear)四阶方法与源代码

1 微分方程 微分方程,是指含有未知函数及其导数的关系式。解微分方程就是找出未知函数。 微分方程是伴随着微积分学一起发展起来的。微积分学的奠基人Newton和Leibniz的著作中都处理过与微分方程有关的问题。微分方程的应用十分广泛,可以解决许多与导数…

施耐德M340和M200 Modbus 通讯实现

Unity平台下M340和M200通过Modbus TCP通讯 两者通过RJ45连接,M340内IO scanning配置: IP address是各个M200的地址,通过这个配置,可以将各server的指定数据区映射到M340的内部数据区。 相比于M200作Modbus TCP Client&#xff0…

【Node.js】自动生成 API 文档

目录 1、直接使用swagger-ui-express 2、配合swagger-jsdoc 如何在Node.js项目中使用 Swagger 来自动生成 API接口文档,使用生成方式有很多种。本文基于swagger-jsdocswagger-ui-express快速实现 1、直接使用swagger-ui-express // 方便来浏览和测试api npm i sw…

vue - - - - - vue3使用draggable拖拽组件

vue3使用draggable拖拽组件 一、组件安装二、插件使用三、遇到的问题1. missing required prop&#xff1a; “itemKey” 一、组件安装 yarn add vuedraggablenext // or npm i -S vuedraggablenext二、插件使用 <template><draggableitem-key"id"class&q…

了解docker与k8s

随着 k8s 作为容器编排解决方案变得越来越流行&#xff0c;有些人开始拿 Docker 和 k8s 进行对比&#xff0c;不禁问道&#xff1a;Docker 不香吗&#xff1f; k8s 是 kubernetes 的缩写&#xff0c;8 代表中间的八个字符。 其实 Docker 和 k8s 并非直接的竞争对手两者相互依存…

【Golang数组】

数组 数组的引入内存分析数组遍历数组的初始化方式注意事项二维数组二维数组的遍历 数组的引入 【1】练习引入&#xff1a; package main import "fmt" func main(){//实现的功能&#xff1a;给出五个学生的成绩&#xff0c;求出成绩的总和&#xff0c;平均数&…

考研408深度分析+全年规划

408确实很难&#xff0c;他的难分两方面 一方面是408本身的复习难度&#xff0c;我们都知道&#xff0c;408的考察科目有四科&#xff0c;分别是数据结构&#xff0c;计算机组成原理&#xff0c;操作系统和计算机网络。大家回想一下自己在大学本科时候学习这些专业课的难度&am…

Jenkins详解

目录 一、Jenkins CI/CD 1、 Jenkins CI/CD 流程图 2、介绍 Jenkins 1、Jenkins概念 2、Jenkins目的 3、特性 4、产品发布流程 3、安装Jenkins 1、安装JDK 2、安装tomcat 3.安装maven 4安装jenkins 5.启动tomcat&#xff0c;并页面访问 5.添加节点 一、Jenkins CI/…

UV-K5

该方法是安装到python的安装目录了&#xff0c;建立项目的时候勾选 Inherit globel site-packages (使用全局的站点包) &#xff0c;就能调用安装路径的包文件环境。 cmd进入Dos窗口安装 pyserial 模块&#xff1a; pip install pyserial

jmeter 压测数据库

当前版本&#xff1a; jmeter 5.6.3mysql 5.7.39 简介 JMeter 是一个开源的 Java 应用程序&#xff0c;主要用于进行性能测试和负载测试。它支持多种协议&#xff0c;包括但不限于 HTTP、HTTPS、FTP、JDBC 以及各种 Web Services。对于数据库的压力测试可以使用 JDBC 协议与数…

Java学习笔记------权限修饰符和抽象类、抽象方法

权限修饰符的分类 代码块 局部代码块 public class test{public static void main(String[] args){int a10;System.out.println(a);} } { int a10; System.out.println(a); }即是局部代码块 构造代码块 构造代码块优先于构造方法执行 静态代码块 格式…
推荐文章