HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    神经网络的设计(神经网络的设计时需注意)

    发布时间:2023-04-21 23:48:21     稿源: 创意岭    阅读: 67        

    大家好!今天让创意岭的小编来大家介绍下关于神经网络的设计的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    神经网络的设计(神经网络的设计时需注意)

    一、神经网络设计的基本信息

    英文名: Neural Network Design

    作者: [美] 哈根等

    译者: 戴葵等

    定价: 49.00

    神经网络的设计(神经网络的设计时需注意)

    二、建立BP神经网络地面沉降预测模型

    基坑降水引起地面沉降的BP神经网络预测模型建模过程如下:

    (1)样本选择

    因基坑降水引起的地面沉降量和距离基坑的距离关系密切,因此建模选用“基坑降水引起沉降工程数据(第二类)”(见表4.1)中的相关数据作为样本进行学习训练和检验。

    (2)BP神经网络结构设计

    对于BP网络,对于任何在闭区间内的一个连续函数都可以用单隐层的BP网络逼近,因而一个三层BP网络就可以完成任意的n维到m维的映射。根据网络结构简单化的原则,确定采用三层BP网络结构,即输入层为沉降点距基坑的距离L(m)、等效压缩模量E(MPa)、水位降深H(m)和支护刚度n四个参数,输出层为地面累积沉降量(mm),隐层层数为1层。隐层的神经元数目选择是一个十分复杂的问题,往往需要根据设计者的经验和多次实验来确定,因而不存在一个理想的解析式来表示。隐单元的数目与问题的要求,与输入、输出单元的数目有直接的关系。隐单元数目太多会导致学习时间过长,误差不一定最佳,也会导致容错性差、不能识别以前没有看到的样本,因此一定存在一个最佳的隐单元数。研究通过一次编程比较了隐层神经元个数分别为5、10、15、20、25、30、40时训练速度及检验精度。

    图4.2 BP神经网络程序框图

    (3)网络训练及检验

    BP网络采用梯度下降法来降低网络的训练误差,考虑到基坑降水地面沉降范围内沉降量变化幅度较小的特点,训练时以训练目标取0.001为控制条件,考虑到网络的结构比较复杂,神经元个数比较多,需要适当增加训练次数和学习速率,因此初始训练次数设为10000次,学习速率取0.1,中间层的神经元传递函数采用S型正切函数tansig,传输函数采用logsig,训练函数采用trainlm,选用38组数据中的33组作为训练样本,5组作为检验样本。

    (4)网络实现及检验效果

    使用MATLAB6.0编程建立基于BP神经网络的基坑降水地面沉降预测模型(程序代码见附件1),其训练误差及检验效果如下:

    图4.3 训练误差曲线

    图4.4 预测误差曲线

    由图4.3、图4.4可见:样本数据收敛,训练误差较小,中间层神经单元个数为10时预测精度较好,误差小于20%,误差满足工程需求。

    三、如何设计神经网络实现一对数组的函数关系

    测试BP神经网络的拟合能力和泛化能力,按这种说法是同一概念,但是拟合和泛化在其它领域是完全不同的,这个要区分清楚。测试一个神经网络的拟合能力,这种说法很少用,大家经常用的是测试神经网络的泛化能力。

    四、BP神经网络的梳理

    BP神经网络被称为“深度学习之旅的开端”,是神经网络的入门算法。

    各种高大上的神经网络都是基于BP网络出发的,最基础的原理都是由BP网络而来 [1] ,另外由于BP神经网络结构简单,算法经典, 是神经网络中应用最广泛的一种。

    BP神经网络(back propagation neural network)全称是反向传播神经网络。

    神经网络发展部分背景如下 [2] :

    为解决非线性问题,BP神经网络应运而生。

    那么什么是BP神经网络?稍微专业点的解释要怎么说呢?

    很喜欢 最简单的神经网络--Bp神经网络 一文对算法原理的解释,语言活泼,案例简单,由浅入深。

    文中提到所谓的 AI 技术,本质上是一种数据处理处理技术,它的强大来自于两方面:1.互联网的发展带来的海量数据信息;2.计算机深度学习算法的快速发展。AI 其实并没有什么神秘,只是在算法上更为复杂 [3] 。

    我们从上面的定义出发来解释BP神经网络的原理。

    BP神经网络整个网络结构包含了:一层输入层,一到多层隐藏层,一层输出层。

    一般说L层神经网络,指的是有L个隐层,输入层和输出层都不计算在内的 [6] 。

    BP神经网络模型训练的学习过程由信号的 正向传播 和误差的 反向传播 两个过程组成。

    什么是信号的正向传播?顾名思义,就是结构图从左到右的运算过程。

    我们来看看结构图中每个小圆圈是怎么运作的。我们把小圈圈叫做神经元,是组成神经网络的基本单元。

    正向传播就是输入数据经过一层一层的神经元运算、输出的过程,最后一层输出值作为算法预测值y'。

    前面正向传播的时候我们提到权重w、偏置b,但我们并不知道权重w、偏置b的值应该是什么。关于最优参数的求解,我们在 线性回归 、 逻辑回归 两章中有了详细说明。大致来讲就是:

    BP神经网络全称 back propagation neural network,back propagation反向传播是什么?

    反向传播的建设本质上就是寻找最优的参数组合,和上面的流程差不多,根据算法预测值和实际值之间的损失函数L(y',y),来反方向地计算每一层的z、a、w、b的偏导数,从而更新参数。

    对反向传播而言,输入的内容是预测值和实际值的误差,输出的内容是对参数的更新,方向是从右往左,一层一层的更新每一层的参数。

    BP神经网络通过先正向传播,构建参数和输入值的关系,通过预测值和实际值的误差,反向传播修复权重;读入新数据再正向传播预测,再反向传播修正,...,通过多次循环达到最小损失值,此时构造的模型拥有最优的参数组合。

    以一个简单的BP神经网络为例,由3个输入层,2层隐藏层,每层2个神经元,1个输出层组成。

    【输入层】传入

    【第一层隐藏层】

    对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;

    对于 神经元而言,传入 ,加权求和加偏置函数处理后,输出 ;

    输出:

    【第二层隐藏层】

    对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;

    对于 神经元而言,传入 ,加权求和加偏置激活函数处理后,输出 ;

    输出:

    【输出层】

    对于输出层神经元而言,输入 ,加权求和加偏置激活函数处理后,输出 ,输出的是一个值

    第一次运行正向传播这个流程时随用随机参数就好,通过反向传播不断优化。因此需要在一开始对 设置一个随机的初始值。

    首先计算正向传播输出值 与实际值的损失 ,是一个数值。所谓反向是从右到左一步步来的,先回到 ,修正参数 。

    以此类推,通过对损失函数求偏导跟新参数 ,再跟新参数 。这时又回到了起点,新的数据传入又可以开始正向传播了。

    keras可以快速搭建神经网络,例如以下为输入层包含7129个结点,一层隐藏层,包含128个结点,一个输出层,是二分类模型。

    神经网络反向传播的优化目标为loss,可以观察到loss的值在不断的优化。

    可以通过model.get_layer().get_weights()获得每一层训练后的参数结果。通过model.predict()预测新数据。

    至此,BP神经网络的整个运算流程已经过了一遍。之前提到BP神经网络是为解决非线性问题应运而生的,那么为什么BP神经网络可以解决非线性问题呢?

    还记得神经元里有一个激活函数的操作吗?神经网络通过激活函数的使用加入非线性因素。

    通过使用非线性的激活函数可以使神经网络随意逼近复杂函数,从而使BP神经网络既可以处理线性问题,也可以处理非线性问题。

    为什么激活函数的使用可以加入非线性因素 [7] ?

    其实逻辑回归算法可以看作只有一个神经元的单层神经网络,只对线性可分的数据进行分类。

    输入参数,加权求和,sigmoid作为激活函数计算后输出结果,模型预测值和实际值计算损失Loss,反向传播梯度下降求编导,获得最优参数。

    BP神经网络是比 Logistic Regression 复杂得多的模型,它的拟合能力很强,可以处理很多 Logistic Regression处理不了的数据,但是也更容易过拟合。

    具体用什么算法还是要看训练数据的情况,没有一种算法是使用所有情况的。

    常见的前馈神经网络有BP网络,RBF网络等。

    BP神经网络的一个主要问题是:结构不好设计。

    网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。

    但是BP神经网络简单、易行、计算量小、并行性强,目前仍是多层前向网络的首选算法。

    [1] 深度学习开端---BP神经网络: https://blog.csdn.net/Chile_Wang/article/details/100557010

    [2] BP神经网络发展历史: https://zhuanlan.zhihu.com/p/47998728

    [3] 最简单的神经网络--Bp神经网络: https://blog.csdn.net/weixin_40432828/article/details/82192709

    [4] 神经网络的基本概念: https://blog.csdn.net/jinyuan7708/article/details/82466653

    [5] 神经网络中的 “隐藏层” 理解: https://blog.csdn.net/nanhuaibeian/article/details/100183000

    [6] AI学习笔记:神经元与神经网络: https://www.jianshu.com/p/65eb2fce0e9e

    [7] 线性模型和非线性模型的区别: https://www.cnblogs.com/toone/p/8574294.html

    [8] BP神经网络是否优于logistic回归: https://www.zhihu.com/question/27823925/answer/38460833

    以上就是关于神经网络的设计相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    神经网络分类器(神经网络分类器原理)

    图神经网络和神经网络的区别

    神经网络分类器原理(神经网络分类器原理图解)

    国产唇膏排行榜前十名(国产唇膏排行榜前十名有哪些)

    景观设计如何考编(景观设计如何考编制证书)