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

    设计神经网络的基本原则(设计神经网络的基本原则是)

    发布时间:2023-04-22 04:15:43     稿源: 创意岭    阅读: 128        

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

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

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

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

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

    本文目录:

    设计神经网络的基本原则(设计神经网络的基本原则是)

    一、BP神经网络原理

    人工神经网络有很多模型,但是日前应用最广、基本思想最直观、最容易被理解的是多层前馈神经网络及误差逆传播学习算法(Error Back-Prooaeation),简称为BP网络。

    在1986年以Rumelhart和McCelland为首的科学家出版的《Parallel Distributed Processing》一书中,完整地提出了误差逆传播学习算法,并被广泛接受。多层感知网络是一种具有三层或三层以上的阶层型神经网络。典型的多层感知网络是三层、前馈的阶层网络(图4.1),即:输入层、隐含层(也称中间层)、输出层,具体如下:

    图4.1 三层BP网络结构

    (1)输入层

    输入层是网络与外部交互的接口。一般输入层只是输入矢量的存储层,它并不对输入矢量作任何加工和处理。输入层的神经元数目可以根据需要求解的问题和数据表示的方式来确定。一般而言,如果输入矢量为图像,则输入层的神经元数目可以为图像的像素数,也可以是经过处理后的图像特征数。

    (2)隐含层

    1989年,Robert Hecht Nielsno证明了对于任何在闭区间内的一个连续函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映射。增加隐含层数虽然可以更进一步的降低误差、提高精度,但是也使网络复杂化,从而增加了网络权值的训练时间。误差精度的提高也可以通过增加隐含层中的神经元数目来实现,其训练效果也比增加隐含层数更容易观察和调整,所以一般情况应优先考虑增加隐含层的神经元个数,再根据具体情况选择合适的隐含层数。

    (3)输出层

    输出层输出网络训练的结果矢量,输出矢量的维数应根据具体的应用要求来设计,在设计时,应尽可能减少系统的规模,使系统的复杂性减少。如果网络用作识别器,则识别的类别神经元接近1,而其它神经元输出接近0。

    以上三层网络的相邻层之间的各神经元实现全连接,即下一层的每一个神经元与上一层的每个神经元都实现全连接,而且每层各神经元之间无连接,连接强度构成网络的权值矩阵W。

    BP网络是以一种有教师示教的方式进行学习的。首先由教师对每一种输入模式设定一个期望输出值。然后对网络输入实际的学习记忆模式,并由输入层经中间层向输出层传播(称为“模式顺传播”)。实际输出与期望输出的差即是误差。按照误差平方最小这一规则,由输出层往中间层逐层修正连接权值,此过程称为“误差逆传播”(陈正昌,2005)。所以误差逆传播神经网络也简称BP(Back Propagation)网。随着“模式顺传播”和“误差逆传播”过程的交替反复进行。网络的实际输出逐渐向各自所对应的期望输出逼近,网络对输入模式的响应的正确率也不断上升。通过此学习过程,确定下各层间的连接权值后。典型三层BP神经网络学习及程序运行过程如下(标志渊,2006):

    (1)首先,对各符号的形式及意义进行说明:

    网络输入向量Pk=(a1,a2,...,an);

    网络目标向量Tk=(y1,y2,...,yn);

    中间层单元输入向量Sk=(s1,s2,...,sp),输出向量Bk=(b1,b2,...,bp);

    输出层单元输入向量Lk=(l1,l2,...,lq),输出向量Ck=(c1,c2,...,cq);

    输入层至中间层的连接权wij,i=1,2,...,n,j=1,2,...p;

    中间层至输出层的连接权vjt,j=1,2,...,p,t=1,2,...,p;

    中间层各单元的输出阈值θj,j=1,2,...,p;

    输出层各单元的输出阈值γj,j=1,2,...,p;

    参数k=1,2,...,m。

    (2)初始化。给每个连接权值wij、vjt、阈值θj与γj赋予区间(-1,1)内的随机值。

    (3)随机选取一组输入和目标样本

    提供给网络。

    (4)用输入样本

    、连接权wij和阈值θj计算中间层各单元的输入sj,然后用sj通过传递函数计算中间层各单元的输出bj

    基坑降水工程的环境效应与评价方法

    bj=f(sj) j=1,2,...,p (4.5)

    (5)利用中间层的输出bj、连接权vjt和阈值γt计算输出层各单元的输出Lt,然后通过传递函数计算输出层各单元的响应Ct

    基坑降水工程的环境效应与评价方法

    Ct=f(Lt) t=1,2,...,q (4.7)

    (6)利用网络目标向量

    ,网络的实际输出Ct,计算输出层的各单元一般化误差

    基坑降水工程的环境效应与评价方法

    (7)利用连接权vjt、输出层的一般化误差dt和中间层的输出bj计算中间层各单元的一般化误差

    基坑降水工程的环境效应与评价方法

    (8)利用输出层各单元的一般化误差

    与中间层各单元的输出bj来修正连接权vjt和阈值γt

    基坑降水工程的环境效应与评价方法

    (9)利用中间层各单元的一般化误差

    ,输入层各单元的输入Pk=(a1,a2,...,an)来修正连接权wij和阈值θj

    基坑降水工程的环境效应与评价方法

    (10)随机选取下一个学习样本向量提供给网络,返回到步骤(3),直到m个训练样本训练完毕。

    (11)重新从m个学习样本中随机选取一组输入和目标样本,返回步骤(3),直到网路全局误差E小于预先设定的一个极小值,即网络收敛。如果学习次数大于预先设定的值,网络就无法收敛。

    (12)学习结束。

    可以看出,在以上学习步骤中,(8)、(9)步为网络误差的“逆传播过程”,(10)、(11)步则用于完成训练和收敛过程。

    通常,经过训练的网络还应该进行性能测试。测试的方法就是选择测试样本向量,将其提供给网络,检验网络对其分类的正确性。测试样本向量中应该包含今后网络应用过程中可能遇到的主要典型模式(宋大奇,2006)。这些样本可以直接测取得到,也可以通过仿真得到,在样本数据较少或者较难得到时,也可以通过对学习样本加上适当的噪声或按照一定规则插值得到。为了更好地验证网络的泛化能力,一个良好的测试样本集中不应该包含和学习样本完全相同的模式(董军,2007)。

    二、一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)

    在 CNN 出现之前,图像对于人工智能来说是一个难题,有2个原因:

    图像需要处理的数据量太大,导致成本很高,效率很低

    图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高

    下面就详细说明一下这2个问题:

    图像是由像素构成的,每个像素又是由颜色构成的。

    现在随随便便一张图片都是 1000×1000 像素以上的, 每个像素都有RGB 3个参数来表示颜色信息。

    假如我们处理一张 1000×1000 像素的图片,我们就需要处理3百万个参数!

    1000×1000×3=3,000,000

    这么大量的数据处理起来是非常消耗资源的,而且这只是一张不算太大的图片!

    卷积神经网络 – CNN 解决的第一个问题就是「将复杂问题简化」,把大量参数降维成少量参数,再做处理。

    更重要的是:我们在大部分场景下,降维并不会影响结果。比如1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫还是一只狗,机器也是如此。

    图片数字化的传统方式我们简化一下,就类似下图的过程:

    假如有圆形是1,没有圆形是0,那么圆形的位置不同就会产生完全不同的数据表达。但是从视觉的角度来看, 图像的内容(本质)并没有发生变化,只是位置发生了变化 。

    所以当我们移动图像中的物体,用传统的方式的得出来的参数会差异很大!这是不符合图像处理的要求的。

    而 CNN 解决了这个问题,他用类似视觉的方式保留了图像的特征,当图像做翻转,旋转或者变换位置时,它也能有效的识别出来是类似的图像。

    那么卷积神经网络是如何实现的呢?在我们了解 CNN 原理之前,先来看看人类的视觉原理是什么?

    深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。

    1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“ 发现了视觉系统的信息处理 ”,可视皮层是分级的。

    人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。下面是人脑进行人脸识别的一个示例:

    对于不同的物体,人类视觉也是通过这样逐层分级,来进行认知的:

    我们可以看到,在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。

    那么我们可以很自然的想到:可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?

    答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。

    典型的 CNN 由3个部分构成:

    卷积层

    池化层

    全连接层

    如果简单来描述的话:

    卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似传统神经网络的部分,用来输出想要的结果。

    下面的原理解释为了通俗易懂,忽略了很多技术细节,如果大家对详细的原理感兴趣,可以看这个视频《 卷积神经网络基础 》。

    卷积层的运算过程如下图,用一个卷积核扫完整张图片:

    这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。

    在具体应用中,往往有多个卷积核,可以认为,每个卷积核代表了一种图像模式,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。如果我们设计了6个卷积核,可以理解:我们认为这个图像上有6种底层纹理模式,也就是我们用6中基础模式就能描绘出一副图像。以下就是25种不同的卷积核的示例:

    总结:卷积层的通过卷积核的过滤提取出图片中局部的特征,跟上面提到的人类视觉的特征提取类似。

    池化层简单说就是下采样,他可以大大降低数据的维度。其过程如下:

    上图中,我们可以看到,原始图片是20×20的,我们对其进行下采样,采样窗口为10×10,最终将其下采样成为一个2×2大小的特征图。

    之所以这么做的原因,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。

    总结:池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。

    这个部分就是最后一步了,经过卷积层和池化层处理过的数据输入到全连接层,得到最终想要的结果。

    经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。

    典型的 CNN 并非只是上面提到的3层结构,而是多层结构,例如 LeNet-5 的结构就如下图所示:

    卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层

    在了解了 CNN 的基本原理后,我们重点说一下 CNN 的实际应用有哪些。

    卷积神经网络 – CNN 很擅长处理图像。而视频是图像的叠加,所以同样擅长处理视频内容。下面给大家列一些比较成熟的应用�:

    图像分类、检索

    图像分类是比较基础的应用,他可以节省大量的人工成本,将图像进行有效的分类。对于一些特定领域的图片,分类的准确率可以达到 95%+,已经算是一个可用性很高的应用了。

    典型场景:图像搜索…

    目标定位检测

    可以在图像中定位目标,并确定目标的位置及大小。

    典型场景:自动驾驶、安防、医疗…

    目标分割

    简单理解就是一个像素级的分类。

    他可以对前景和背景进行像素级的区分、再高级一点还可以识别出目标并且对目标进行分类。

    典型场景:美图秀秀、视频后期加工、图像生成…

    人脸识别

    人脸识别已经是一个非常普及的应用了,在很多领域都有广泛的应用。

    典型场景:安防、金融、生活…

    骨骼识别

    骨骼识别是可以识别身体的关键骨骼,以及追踪骨骼的动作。

    典型场景:安防、电影、图像视频生成、游戏…

    今天我们介绍了 CNN 的价值、基本原理和应用场景,简单总结如下:

    CNN 的价值:

    能够将大数据量的图片有效的降维成小数据量(并不影响结果)

    能够保留图片的特征,类似人类的视觉原理

    CNN 的基本原理:

    卷积层 – 主要作用是保留图片的特征

    池化层 – 主要作用是把数据降维,可以有效的避免过拟合

    全连接层 – 根据不同任务输出我们想要的结果

    CNN 的实际应用:

    图片分类、检索

    目标定位检测

    目标分割

    人脸识别

    骨骼识别

    本文首发在 easyAI - 人工智能知识库

    《 一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用) 》

    三、神经网络是什么

    神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

    生物神经网络主要是指人脑的神经网络,它是人工神经网络的技术原型。人脑是人类思维的物质基础,思维的功能定位在大脑皮层,后者含有大约10^11个神经元,每个神经元又通过神经突触与大约103个其它神经元相连,形成一个高度复杂高度灵活的动态网络。作为一门学科,生物神经网络主要研究人脑神经网络的结构、功能及其工作机制,意在探索人脑思维和智能活动的规律。

    人工神经网络是生物神经网络在某种简化意义下的技术复现,作为一门学科,它的主要任务是根据生物神经网络的原理和实际应用的需要建造实用的人工神经网络模型,设计相应的学习算法,模拟人脑的某种智能活动,然后在技术上实现出来用以解决实际问题。因此,生物神经网络主要研究智能的机理;人工神经网络主要研究智能机理的实现,两者相辅相成。

    设计神经网络的基本原则(设计神经网络的基本原则是)

    扩展资料:

    神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。主要的研究工作集中在以下几个方面:

    1、生物原型

    从生理学、心理学、解剖学、脑科学、病理学等方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。

    2、建立模型

    根据生物原型的研究,建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化学模型、数学模型等。

    3、算法

    在理论模型研究的基础上构作具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。

    神经网络用到的算法就是向量乘法,并且广泛采用符号函数及其各种逼近。并行、容错、可以硬件实现以及自我学习特性,是神经网络的几个基本优点,也是神经网络计算方法与传统方法的区别所在。

    参考资料:百度百科-神经网络(通信定义)

    四、AI面试题第二弹(神经网络基础)

    提取主要特征,减小网络参数量,减小计算量

    层层传递的梯度>1 梯度爆炸

    层层传递的梯度<1 梯度消失

    与权重有很大关系,激活函数的影响较小。

    每次训练一层隐节点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入,此过程就是逐层“预训练”(pre-training);在预训练完成后,再对整个网络进行“微调”(fine-tunning)。Hinton在训练深度信念网络(Deep Belief Networks中,使用了这个方法,在各层预训练完成后,再利用BP算法对整个网络进行训练。

    这个方案主要是针对梯度爆炸提出的,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸。

    比较常见的是l1l1l1正则,和l2l2l2正则,在各个深度框架中都有相应的API可以使用正则化

    反向传播中,经过每一层的梯度会乘以该层的权重。

    举个简单例子:

    为了得到一致假设而使假设变得过度复杂称为过拟合(overfitting), 过拟合表现在训练好的模型在训练集上效果很好,但是在测试集上效果差 。也就是说模型的泛化能力弱。

    过拟合主要由两个原因造成,数据集太小或模型太复杂

    (1). 数据集扩增(Data Augmentation)

    (2). 改进模型

    ·Early Stopping。在模型效果比较好的时候便提前停止训练

     ·正则化(regularization)

    L1:稀疏参数

    L2:更小参数

    ·Dropout

    ·多任务学习

    深度学习中两种多任务学习模式:隐层参数的硬共享和软共享

    硬共享机制是指在所有任务中共享隐藏层,同时保留几个特定任务的输出层来实现。硬共享机制降低了过拟合的风险。多个任务同时学习,模型就越能捕捉到多个任务的同一表示,从而导致模型在原始任务上的过拟合风险越小。

    软共享机制是指每个任务有自己的模型,自己的参数。模型参数之间的距离是正则化的,以便保障参数相似性。

    见后文

    leaky relu

    输入是x输出是y,正常的流程是:我们首先把x通过网络前向传播,然后把误差反向传播以决定如何更新参数让网络进行学习。使用Dropout之后,过程变成如下:

    (1)首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变(图中虚线为部分临时被删除的神经元)

    (2) 然后把输入x通过修改后的网络前向传播,然后把得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数(w,b)。

    (3)然后继续重复这一过程:

    恢复被删掉的神经元(此时被删除的神经元保持原样,而没有被删除的神经元已经有所更新)

    从隐藏层神经元中随机选择一个一半大小的子集临时删除掉(备份被删除神经元的参数)。

    对一小批训练样本,先前向传播然后反向传播损失并根据随机梯度下降法更新参数(w,b) (没有被删除的那一部分参数得到更新,删除的神经元参数保持被删除前的结果)。

    不断重复这一过程。

    没有对数据进行归一化

    忘记检查输入和输出

    没有对数据进行预处理

    没有对数据正则化

    使用过大的样本

    使用不正确的学习率

    在输出层使用错误的激活函数

    网络中包含坏梯度

    初始化权重错误

    过深的网络

    隐藏单元数量错误

    网络设计不合理(任务-网络不匹配)

    机器学习有个很重要的假设:就是假设训练数据和测试数据是满足独立同分布的,这保障了通过训练数据获得的优秀模型也能够在测试集获得好的效果。但是在机器学习训练中输入层的每个批量(X,Y)中X的分布是不一致的,并且神经网络的隐藏层的输入分布在每次训练迭代中发生变化。 BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的。

    BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前(激活前)的 输入值 (就是那个x=WU+B,U是输入) 随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近 (对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这 导致反向传播时低层神经网络的梯度消失 ,这是训练深层神经网络收敛越来越慢的 本质原因 , 而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布 ,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是 这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

    但是接下来的问题是:如果都通过BN,那么不就跟把非线性函数替换成线性函数效果相同了,意味着网络的非线性表达能力下降了, 所以BN为了保证非线性的获得,对变换后的满足均值为0方差为1的x又进行了scale加上shift操作(y=scale*x+shift), 每个神经元增加了两个参数scale和shift参数,这两个参数是通过训练学习到的,意思是通过scale和shift把这个值从标准正态分布左移或者右移一点并长胖一点或者变瘦一点,每个实例挪动的程度不一样,这样等价于激活前的值经过标准正太分布归一化后再从正中心周围的线性区往非线性区动了动。核心思想应该是想找到一个线性和非线性的较好平衡点,既能享受非线性的较强表达能力的好处,又避免太靠非线性区两头使得网络收敛速度太慢

    Batch Normalization 好处:(1)提高了训练速度,收敛速度也大大加快(2)另外调参过程也简单多了,对于初始化要求没那么高,而且可以使用大的学习率等 (3)可以防止梯度消失(4)BN类似于Dropout的一种防止过拟合的正则化表达方式,可以有效防止过拟合,不用太依赖dropou和正则化

    以下情况最好不要使用BN:(1)数据不平衡(2)batch_size太小

    batch_size是机器学习中的一个重要参数,决定了梯度下降的方向,如果数据集比较小,完全可以采用全数据集的形式计算梯度,由全数据集确定的梯度方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。对于大型数据集则需要使用mini-batch_size,因为随着数据集的海量增长和内存限制,一次性载入所有的数据进来变得越来越不可行。

    当batch_size=1,即在线学习,模型难以达到收敛 。

    合理增加batch_size好处 :

    (1)内存利用率提高了,大矩阵乘法的并行化效率提高

    (2)跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。

    (3)在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小

    盲目增大 Batch_Size 坏处 :

    (1)内存利用率提高了,但是内存容量可能撑不住了

    (2)跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同精度所需要的 epoch 数量越来越多,花费的时间越长

    (3)大的batchsize收敛到sharp minimum,而小的batchsize收敛到flat minimum,后者具有更好的泛化能力。

    总之batchsize在变得很大(超过一个临界点)时,会降低模型的泛化能力。在这个临界点之下,模型的性能变换随batch size通常没有学习率敏感

        目标所在的真实框(ground truth) 与算法预测的目标所在的框(bounding box)的交集与并集的比值,我们会用IOU阈值来判定预测的bounding box是否有效。一般阈值会设定在0.5,当IOU的值大于等于0.5时,我们会把这个预测的bounding box 归为正类,而小于0.5的归为负类。

    牛顿法使用的是目标函数的二阶导数,在高维情况下这个Hessian(n*n维度)矩阵非常大,计算复杂度是n*n,计算和存储都是问题

    (1) 通过控制卷积核个数实现升维或者降维,从而减少模型参数和计算量

    (2) 用于不同channel上特征的融合

    (3)1x1的卷积相当于全连接层的计算过程,并且加入了非线性激活函数,从而增加了网络的非线性,使得网络可以表达更加复杂的特征。

    它能够把输入的连续实值变换为0和1之间的输出,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1

    缺点:

    (1)函数的饱和区,导致梯度几乎为0,造成梯度消失问题

    (2)Sigmoid 的 output 不是0均值,具体解释见 https://blog.csdn.net/tyhj_sf/article/details/79932893

    (3)其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。

    它解决了Sigmoid函数的不是零均值输出问题,然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。

    (1)在正区间解决了梯度消失的问题

    (2)函数简单,计算速度快,收敛速度远快于sigmoid和tanh

    缺点:

    (1)Relu函数输出不是0均值

    (2)神经元坏死问题:指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新,有两个主要原因导致这种状况发生

            (1) 非常不幸的参数初始化,这种情况比较少见 

            (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法

    为了解决ReLU函数带来的神经元坏死问题 , 提出了将ReLU的前半段设为αx,α通常设为0.01,,另外一种直观的想法是基于参数的方法PReLU函数, α可由方向传播算法学习出来。

    ELU也是为解决ReLU存在的问题而提出,显然,ELU有ReLU的基本所有优点,以及:(1)不会有神经元坏死现象(2)函数输出均值接近于0

    但是ELU的小问题就是计算量稍微有点大。

    1、使用不同的激活函数,比如Relu,Leak-Relu,PRelu,elu等激活函数代替sigmoid函数

    2、使用Batch Normalizaion(批量归一化)

    3、使用残差网络

    4、预训练加微调

    1、梯度裁剪

    2、权重正则化

    两个3x3的卷积核的感受野比5x5的卷积核的感受野大,在保持相同感受野的同时,用3x3的卷积核可以提升网络的深度,可以很明显的减少计算量。

    1、局部连接

    2、权值共享:减小参数量

    3、池化操作:增大感受野

    4、多层次结构:可以提取low-level以及high-level的信息

    1、数据集太小,数据样本不足时,深度学习相对其它机器学习算法,没有明显优势。

    2、数据集没有局部相关特性,目前深度学习表现比较好的领域主要是图像/语音/自然语言处理等领域,这些领域的一个共性是局部相关性。图像中像素组成物体,语音信号中音位组合成单词,文本数据中单词组合成句子,这些特征元素的组合一旦被打乱,表示的含义同时也被改变。对于没有这样的局部相关性的数据集,不适于使用深度学习算法进行处理。举个例子:预测一个人的健康状况,相关的参数会有年龄、职业、收入、家庭状况等各种元素,将这些元素打乱,并不会影响相关的结果。

    作用 :对输入的特征图进行压缩,

    一方面使特征图变小,简化网络计算复杂度;

    一方面进行特征压缩,提取主要特征。

    通常来讲,max-pooling的效果更好,虽然max-pooling和average-pooling都对数据做了下采样,但是 max-pooling感觉更像是做了特征选择,选出了分类辨识度更好的特征,提供了非线性 。 pooling的主要作用一方面是去掉冗余信息,一方面要保留feature map的特征信息,在分类问题中,我们需要知道的是这张图像有什么object,而不大关心这个object位置在哪,在这种情况下显然max pooling比average pooling更合适。在 网络比较深的地方,特征已经稀疏了,从一块区域里选出最大的,比起这片区域的平均值来,更能把稀疏的特征传递下去 。

    average-pooling更强调对整体特征信息进行一层下采样,在减少参数维度的贡献上更大一点,更多的体现在 信息的完整传递这个维度 上,在一个很大很有代表性的模型中,比如说DenseNet中的模块之间的连接大多采用average-pooling,在减少维度的同时,更有利信息传递到下一个模块进行特征提取。

    average-pooling在 全局平均池化操作 中应用也比较广,在ResNet和Inception结构中最后一层都使用了平均池化。有的时候在模型接近 分类器的末端使用全局平均池化还可以代替Flatten操作 ,使输入数据变成一位向量。

    CNN网络中另外一个不可导的环节就是Pooling池化操作,因为Pooling操作使得feature map的尺寸变化,假如做2×2的池化(步长也为2),假设那么第l+1层的feature map有16个梯度,那么第l层就会有64个梯度,这使得梯度无法对位的进行传播下去。其实解决这个问题的思想也很简单,就是把1个像素的梯度传递给4个像素,但是需要保证传递的loss(或者梯度)总和不变。根据这条原则,mean pooling和max pooling的反向传播也是不同的

    mean pooling的前向传播就是把一个patch中的值求取平均来做pooling,那么反向传播的过程也就是把 某个元素的梯度等分为n份分配给前一层,这样就保证池化前后的梯度(残差)之和保持不变 ,图示如下 :

    (2) max pooling

    max pooling也要满足梯度之和不变的原则 ,max pooling的前向传播是把patch中最大的值传递给后一层,而其他像素的值直接被舍弃掉。那么 反向传播也就是把梯度直接传给前一层某一个像素,而其他像素不接受梯度,也就是为0。 所以max pooling操作和mean pooling操作不同点在于需要记录下池化操作时到底哪个像素的值是最大,也就是max id,这个变量就是记录最大值所在位置的,因为在反向传播中要用到,那么假设前向传播和反向传播的过程就如下图所示 :

    28、细粒度分类

    29、LSTM&RNN

    30、解释LSTM结构(相对于RNN)的好处

    31、RNN的梯度消失原因和解决办法

    32、Object Detection

    33、Unet的介绍

    34、FCN和Unet的区别

    35、RCNN系列的算法流程和区别

    36、Fast RCNN中 bbox 回归的损失函数什么

    37、解释 ROI Pooling 和 ROI Align

    38、Mask RCNN中 mask branch 如何接入 Faster RCNN中

    39、解释 FPN

    40、解释 ROI Align

    41、简述 YOLO 和 SSD

    42、简述 Hough 直线检测、Sobel 边缘检测算法流程

    43、Mask RCNN中的anchors如何判定为正负样本

    44、简述 NMS 算法流程

    45、attention起源是用在哪里?pixel还是frame,是soft还是hard

    46、anchor的正负样本比是多少

    47、算法和激活函数等

    48、BN的原理和作用

    49、BN层反向传播,怎么求导

    50、BN 的作用和缺陷,以及针对batch_size小的情况的改进(GN)

    51、BN层,先加BN还是激活,有什么区别

    52、手推BP

    53、优化算法举例和他们的区别(SGD、SGDM、RMSprop、Adam)

    54、随机梯度下降和梯度下降

    55、训练不收敛的原因有哪些

    56、简述 SVM 流程、核函数寻参及常见的核函数举例

    57、batch_size 和 learning rate 的关系(怎么平衡和调整二者)

    58、解释过拟合和欠拟合,以及解决方法

    59、激活函数有哪些,各自区别

    60、损失函数有哪些

    61、Sigmoid 和 ReLu 对比(各自优缺点)

    62、为什么不用sigmoid而用relu?做出了哪些改进?

    63、梯度消失和梯度爆炸的原因和解决方法

    64、Precision 和 Recall 的定义

    65、精确率高、召回率低是为什么

    66、SVM,线性回归和逻辑回归的原理及区别

    67、PCA原理,PCA和SVD的区别和联系

    68、正则化怎么选择,有哪些方式

    69、L1、L2范数,区别

    70、boost、Adaboost

    71、dropout和batch normalization

    72、讲一下决策树和随机森林

    73、讲一下GBDT的细节,写出GBDT的目标函数。 GBDT和Adaboost的区别与联系

    74、偏差、方差

    75、距离度量公式哪些,区别

    76、多标签识别怎么做

    77、data argumentation怎么处理的

    78、数据不均衡怎么处理、只有少量带标签怎么处理

    79、权重初始化方法都有哪些

    80、权值衰减这个参数怎么设置

    81、分类问题有哪些评价指标?每种的适用场景。

    82、无监督学习了解哪些

    83、图像处理Opencv

    84、边缘检测算子有哪些

    85、霍夫变换

    86、直方图是什么

    87、canny算子是怎么做的

    88、图像的特征提取有哪些算法,适用范围、优缺点

    参考:

    https://blog.csdn.net/bluesliuf/article/details/89389117

    https://zhuanlan.zhihu.com/p/107279000

    https://zhuanlan.zhihu.com/p/56475281

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


    推荐阅读:

    酒泉市内景观设计公司(酒泉市内景观设计公司排名)

    青岛景观设计哪家强点(青岛景观设计公司2020年招聘)

    杭州水景景观设计有限公司(杭州水景景观设计有限公司招聘)

    闪银邀请码怎么获得(闪银邀请码怎么获得的)

    女尊空间种田文排行榜