深度学习基础知识
- 神经网络是通过对人脑的基本单元——神经元的建模和联接,探索模拟人脑神经系统功能的模型,并研制一种具有学习、联想、记忆和模式识别等智能信息处理功能的人工系统。
- 神经网络的学习是一个过程,在其所处环境的激励下,相继给网络输入一些样本模式,并按照一定的规则(学习算法)调整网络各层的权值矩阵,待网络各层权值都收敛到一定值,学习过程结束。
神经元与神经网络
- 神经网络的基本单位是神经元,神经元是具有标量输入和输出的计算单元,每个输入都有和它相关的权重,每个神经元分别乘以权重并相加,使结果通过一个非线性函数,最终传递给其输出。
- 一个神经元结构:输入,输出,神经元。b是偏置,f是激活函数,常见的激活函数有sigmoid函数、tanh函数和ReLU函数。w和u是权重,通过反向传播来更新权重矩阵。
- 一个神经网络包括输入层,输出层和隐藏层,由多个神经元组成。
- 当每个神经元都连接到下一层所有的神经元时,叫做全连接层或仿射层。如下:
- 以此类推,最后要使用softmax函数进行归一化操作,使输出为正且和为1.
激活函数
当需要分类的点比较复杂,没法使用单层感知器进行分类时,需要采用多层感知器进行分类,但比较复杂,于是引入激活函数。
sigmoid函数
- sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1) ,它可以将一个实数映射到 (0,1)的区间,可以用来做二分类,公式表述为
- 函数和导数图像:
- 在特征相差比较复杂或是相差不是特别大时效果比较好。但是在做反向传播时,会发生梯度消失的现象,这是因为sigmiod的导数很快会趋近于零。
tanh函数
- 双曲正切函数,取值范围为【0,1】,公式为
- 函数和导数图像
ReLU函数
- 公式为
- 函数和导数图像为
- 优点:有效缓和梯度消失的问题,计算也更加简单,设置一个特定的阈值就可以计算激活值。
- 缺点:导数的阈值不是(0, 1)了,好像可以避免梯度消失,但是如果存在负数权重,那某些神经元可能永远不会被激活,梯度为0,导致相应参数永远不会被更新。从某种意义上来说,ReLU还是存在部分梯度消失问题。
常用的神经网络
深度神经网络
深度神经网络包括一个输入层,输出层和若干隐藏层。每个节点是一个神经元,在神经元中对输入数据做非线性变换,然后输出,做非线性变换是通过激活函数来进行的。
循环神经网络
循环神经网络是一类为了处理序列数据的神经网络,比如说一段语音,一段文字,往往序列长短不一,难以拆分为独立样本进行训练。
当我们去理解一句话的时候,不会只根据每个词的含义去理解,还需要将这些词连接起来,整体的去理解句子,对每个词的理解都会受到之前词的理解的影响。
长短记忆网络
长短期记忆网络是RNN的一种变体,RNN由于梯度消失的原因只能有短期记忆,LSTM网络通过精妙的门控制将短期记忆与长期记忆结合起来,并且一定程度上解决了梯度消失的问题。