赞
踩
目录
在学习过程中,主要以邱锡鹏老师《神经网络与深度学习》为主要学习思路,并辅助网上已有的学习资料和学习网站。【之所以自己出一个总结,也是为了看过以后形成一个总结,方便后续查询】
邱老师的书里已经给出了系统的知识体系,强烈推荐大家去学习。
由于我主要学习目的就是CNN,所以只学神经网络—模型—前馈网络—卷积神经网络这个支线,如果有其他同学需要深度学习的,可以去看邱老师的书:https://nndl.github.io/nndl-book.pdf。
神经网络是受人脑神经系统的启发,模拟人脑神经系统的数字模型,称为人工神经网络,简称神经网络。在机器学习领域,神经网络是指由很多人工神经元构成的网络结构模型,这些人工神经元之间的连接强度是可学习的参数。
神经元(Neuron),也叫神经细胞(Nerve Cell),是人脑中携带和传输信 息的细胞,是人脑神经系统中最基本的单元。
每个神经元有上千个突触和其 他神经元相连接。这些神经元和它们之间的连接形成巨大的复杂网络。
典型的神经元结构如下:
(1)细胞体(Soma)中的神经细胞膜上有各种受体和离子通道,胞膜的 受体可与相应的化学物质神经递质结合,引起离子通透性及膜内外电位差发生 改变,产生相应的生理活动:兴奋或抑制。
(2)细胞突起是由细胞体延伸出来的细长部分,又可分为树突和轴突:
神经元之间没有物理连接,但是可以向其他神经元收发信息。两个连接的神经元靠突触(Synapse)进行互联来传递信息,形成一个神经网络,即神经系统。突触可以理解为神经元之间的连接“接口”,将一个神经元的兴奋状态传到另一个神经元。 一个神经元可被视为一种只有两种状态的细胞:兴奋和抑制。
神经元的状态取决于从其他的神经细胞收到的输入信号量,以及突触的强度(抑制或加强)。当信 号量总和超过了某个阈值时,细胞体就会兴奋,产生电脉冲。电脉冲沿着轴突并通过突触传递到其他神经元。
在人脑神经网络中,不同神经元之间的突触有强有弱,其强度是可以通过学习(训练)来不断改变的,具有一定的可塑性。不同的连接形成了不同的记忆印痕。
突触可塑性原理:当神经元 A 的一个轴突和神经元 B 很近,足以对它产生影响,并且持续地、重复地参与了对神经元 B 的兴奋,那么在这两个神 经元或其中之一会发生某种生长过程或新陈代谢变化,以致神经元 A 作为能使神经元B兴奋的细胞之一,它的效能加强了。
Hebb认为人脑有两种记忆:长期记忆和短期记忆。短期记忆持续时间不超过一分钟。如果一个经验重复足够的次数,此经验就可储存在长期记忆中。短期记忆转化为长期记忆的过程就称为凝固作用。
人工神经网络是为模拟人脑神经网络而设计的一种计算模型,它从结构、实 现机理和功能上模拟人脑神经网络。
人工神经网络由多个节点(人工神经元)互相连接而成,可以用来对数据之间的复杂关系进行建模。不同节点之间的连接被赋予了不同的权重,每个权重代表了一个节点对另一个节点的影响大小。每个节点代表一种特定函数,来自其他节点的信息经过其相应的权重综合计算,输入到一个激活函数中并得到一个新的活性值(兴奋或抑制)。
由于人工神经网络可以用作一个通用的函数逼近器(一个两层的神经网络可以逼近任意的函数),因此我们可以将人工神经网络看作一个可学习的函数,并将其应用到机器学习中。
第一阶段:模型提出
第二阶段:冰河期
第三阶段:反向传播算法引起的复兴
第四阶段:流行度降低
第五阶段:深度学习的崛起
神经网络是一种打过莫的并行分布式处理器,从两个方面上模拟大脑:(1)网络获取的知识是通过学习来获取的;(2)内部神经元的连接强度,即突触权重,用来储存获取的知识。
神经网络有三个主要特性:(1)信息表示是分布式的(非局部的);(2)基于和知识是储藏在单元之间的连接上的;(3)通过逐渐改变单元之间的连接强度来学习新知识。
从机器学习的角度来看,神经网络一般可以看作一个非线性模型,其基本组成单元为具有非线性激活函数的神经元,通过大量神经元之间的连接,使得神经网络为具有非线性激活函数的神经元,通过大量神经元之间的连接,使得神经网络称为一种高度非线性的模型。神经元之间的连接权重就是需要学习的参数,可以在机器学习的框架下通过梯度下降方法来进行学习。
人工神经元,简称神经元,是构成神经网络的基本单元,主要是模拟生物神经元的结果和特性,接收一组输入信号并产生输出。
一个生物神经元通常具有多个树突和一条轴突。树突用来接收信息,轴突用来发送信息。当神经元所获得的输入信号的积累超过某个阈值时,它就处于兴奋状态,产生电脉冲。轴突尾端有许多末梢可以给其他神经元的树突产生连接(突触),并将电脉冲信号传递给其他神经元。
假设一个神经元接收D个输入x1,x2,…,xp,令向量x=[x1;x2;…;;xp]来表示这组输入,并用净输入(Net Input)z€R表示一个神经元所获得的输入信号x的加权和:
其中的是D维的权重向量,b是偏置。
净输入z在经过一个非线性函数f(⋅)后,得到神经元的活性值a:
其中的非线性函数f(⋅)成为激活函数(Activation Function).
为了增强网络的表示能力和学习能力,激活函数需要具备以下几点特质:
(1)连续并可导(允许少数点上不可导)的非线性函数.可导的激活函数可以直接利用数值优化的方法来学习网络参数;
(2)激活函数及其导函数要尽可能的简单,有利于提高网络计算效率;
(3)激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。
Sigmoid型函数是指一类S型曲线函数,为两端饱和函数.常用的Sigmoid型函数有Logistic函数和Tanh函数。
其实就是两端处,函数图形趋于直线。
函数定义为:
Logistic 函数可以看成是一个“挤压”函数,把一个实数域的输入“挤压”到 (0, 1)。当输入值在0附近时,Sigmoid型函数近似为线性函数;当输入值靠近两端时,对输入进行抑制。输入越小,越接近于 0;输入越大,越接近于 1。
和感知器使用的阶跃激活函数相比,Logistic函数是连续可导的, 其数学性质更好。
装备了Logistic激活函数的神经元具有以下两点性质:1)其输出直接可以看作概率分布,使得神经网络可以更好地和统计 学习模型进行结合;2)其可以看作一个软性门(Soft Gate),用来控制其他神经元输出信息的数量。
函数定义:
Tanh函数可以看作放大并平移的Logistic函数,其值域是(−1, 1)。
Tanh 函数的输出是零中心化的(Zero-Centered),而 Logistic 函数的输出恒大于 0。非零中心化的输出会使得其后一层的神经元的输入发生偏置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢。
ReLU(Rectified Linear Unit,修正线性单元),也叫Rectifier函数,是目前深度神经网络中经常使用的激活函数。ReLU实际上是一个斜坡(ramp)函数,定义为:
【优点】
采用 ReLU 的神经元只需要进行加、乘和比较的操作,计算上更加高效。
Sigmoid 型激活函数会导致一个非稀疏的神经网络,而 ReLU 却具有很好的稀疏性,大约50%的神经元会处于激活状态。
在优化方面,相比于Sigmoid型函数的两端饱和,ReLU函数为左饱和函数, 且在x > 0时导数为 1,在一定程度上缓解了神经网络的梯度消失问题,加速梯度下降的收敛速度。
【缺点】
死亡 ReLU 问题:在训练的时候,如果参数在一次不恰当的更新后,第一个隐藏层中的某个ReLU神经元在所有的训练数据上都不能被激活,说明这个神经元自身参数的梯度永远都为0,在以后得训练过程中永远不可能被激活。
在输入x<0时,保持一个很小的梯度,当神经元非激活时也能有一个非零的梯度可以更新参数,避免永远不会激活。
梯度是一个很小的常数,当梯度<1时,带泄露的ReLU也可以写为:
(其实就是为了当输入为负时,ReLU的导数为0,导致神经元的权重在反向传播过程中不会更新,所以允许负输入有一个非零的梯度)
ELU(Exponential Linear Unit,指数线性单元)是一个近似的零中心化的非线性函数。
(ELU函数在负值区域的梯度随着输入值的减小而逐渐增大,这有助于梯度在深层网络中的传播,缓解了梯度消失的问题。ELU的负值部分的梯度是连续的,这有助于提高训练过程中的稳定性。)
是一种自门控的激活函数,由谷歌的研究人员在2017年提出。
其中,声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。